feat: 增加微气象监测数据同步接口

dev
huangfeng 1 year ago
parent 86305a8d5e
commit 82712ffbac

@ -0,0 +1,108 @@
package com.shxy.xymanager_admin.controller;
import com.github.pagehelper.PageInfo;
import com.shxy.xymanager_common.base.BaseController;
import com.shxy.xymanager_common.util.StringUtils;
import com.shxy.xymanager_common.zhiping.OutModel;
import com.shxy.xymanager_common.zhiping.ZhipingReult;
import com.shxy.xymanager_common.entity.LeadPulls;
import com.shxy.xymanager_common.entity.Weathers;
import com.shxy.xymanager_common.util.DateUtil;
import com.shxy.xymanager_service.service.LeadPullsService;
import com.shxy.xymanager_service.service.WeatherService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
@Api(tags = {"微气象监测数据同步接口"})
@RequestMapping("zhiping")
@Slf4j
public class ZhipingController extends BaseController {
@Resource
LeadPullsService leadPullsService;
@Resource
WeatherService weatherService;
@GetMapping("query")
@ApiOperation("查询")
public ZhipingReult<List<OutModel>> query(String actiontype, String timestamp,
String beginTime, String endTime) throws Exception {
ZhipingReult result = new ZhipingReult();
result.setCode("0");
if (StringUtils.isBlank(beginTime)) {
result.setCode("400");
result.setMsg("beginTime不能为空");
} else if (StringUtils.isBlank(endTime)) {
result.setCode("400");
result.setMsg("endTime不能为空");
} else if (StringUtils.isBlank(timestamp)) {
result.setCode("400");
result.setMsg("timestamp不能为空");
} else if (!timestamp.contains("9186B579774441C58FB0867FF05C8CE2")) {
result.setCode("400");
result.setMsg("私钥不正确");
} else {
Date start = DateUtil.parse(beginTime);
Date end = DateUtil.parse(endTime);
if ("meteo".equals(actiontype)) {
PageInfo<Weathers> page = weatherService.list(null, null, null,
start.getTime() / 1000, end.getTime() / 1000, 1, 10000);
if (!CollectionUtils.isEmpty(page.getList())) {
List<OutModel> list = new ArrayList<>();
for (Weathers weather : page.getList()) {
OutModel item = new OutModel();
item.setCmonitorCode(weather.getCmdid());
item.setCupdateTime(DateUtil.format(weather.getUpdateDate()));
item.setCtemperature(String.valueOf(weather.getAirTemperature()));
item.setChumidity(String.valueOf(weather.getHumidity()));
item.setCwindSpeed(String.valueOf(weather.getStandardWindSpeed()));
item.setCwindDirection(String.valueOf(weather.getAvgWindDir10min()));
item.setCsunshine(String.valueOf(weather.getRadiationIntensity()));
item.setCrainAmount(String.valueOf(weather.getPrecipitation()));
list.add(item);
}
result.setDataCount(String.valueOf(list.size()));
result.setDataList(list);
}
} else if ("ice_weight".equals(actiontype)) {
PageInfo<LeadPulls> page = leadPullsService.list(null, null, null,
start.getTime() / 1000, end.getTime() / 1000, 1, 10000);
if (!CollectionUtils.isEmpty(page.getList())) {
List<OutModel> list = new ArrayList<>();
for (LeadPulls pull : page.getList()) {
OutModel item = new OutModel();
item.setCmonitorCode(pull.getCmdid());
item.setCupdateTime(DateUtil.format(pull.getUpdateDate()));
item.setCwindAngle(String.valueOf(pull.getWindSpeed()));
item.setCice(String.valueOf(0));
Integer x = (pull.getMaxpullPull() + pull.getMinpullPull()) / 2;
item.setCpull(String.valueOf(pull.getMaxpullPull()));
item.setCpullAngle(String.valueOf(x));
list.add(item);
}
result.setDataCount(String.valueOf(list.size()));
result.setDataList(list);
}
} else {
result.setCode("400");
result.setMsg("actiontype不正确");
}
}
result.setRTime(DateUtil.format(new Date()));
return result;
}
}

@ -70,5 +70,6 @@ public class SecurityConfig {
urlWhiteList.add("/xymanager/leadpulls/export");
urlWhiteList.add("/xymanager/weather/export");
urlWhiteList.add("/xymanager/upload/uploadLog");
urlWhiteList.add("/xymanager/zhiping/query");
}
}

@ -0,0 +1,21 @@
package com.shxy.xymanager_common.zhiping;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class OutModel {
private String cmonitorCode;
private String cupdateTime;
private String ctemperature;
private String chumidity;
private String cwindSpeed;
private String cwindDirection;
private String csunshine;
private String crainAmount;
private String cwindAngle;
private String cice;
private String cpull;
private String cpullAngle;
}

@ -0,0 +1,16 @@
package com.shxy.xymanager_common.zhiping;
import lombok.Data;
import java.io.Serializable;
@Data
public class ZhipingReult<T> implements Serializable {
private T dataList;
private String code;
private String msg;
private String dataCount;
private String rTime;
}
Loading…
Cancel
Save