diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java index cbcbb40..459beae 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java @@ -23,6 +23,7 @@ import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -94,7 +95,6 @@ model.setDataMap(dataMap); return model; } - public static PtReceiveBaseModel xfObjectToRealMap(BaseXfInterfaceEntity object) { if (null == object) { return null; @@ -111,14 +111,13 @@ } if (annotation != null) { String name = annotation.value(); -// System.out.println(name); MqNodeData data = new MqNodeData(); data.setSn(filedName); data.setKey(name); data.setValue(filed.get(object)); - if(dataMap.containsKey(name)){ + if (dataMap.containsKey(name)) { dataMap.put(filedName, data); - }else { + } else { dataMap.put(name, data); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java index cbcbb40..459beae 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java @@ -23,6 +23,7 @@ import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -94,7 +95,6 @@ model.setDataMap(dataMap); return model; } - public static PtReceiveBaseModel xfObjectToRealMap(BaseXfInterfaceEntity object) { if (null == object) { return null; @@ -111,14 +111,13 @@ } if (annotation != null) { String name = annotation.value(); -// System.out.println(name); MqNodeData data = new MqNodeData(); data.setSn(filedName); data.setKey(name); data.setValue(filed.get(object)); - if(dataMap.containsKey(name)){ + if (dataMap.containsKey(name)) { dataMap.put(filedName, data); - }else { + } else { dataMap.put(name, data); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java index 7bd0e50..cba273b 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java @@ -1,11 +1,15 @@ package org.springnewfiber.dataadapter.xf.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -18,6 +22,7 @@ import org.springnewfiber.dataadapter.xf.entity.*; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -33,9 +38,93 @@ @Api(value = "讯飞数据接受接口", tags = "讯飞数据接受接口") @Slf4j public class MonitorDataController { + private final RabbitTemplate rabbitTemplate; + @Value("${business.hankouSaveUrl}") + private String hankouSaveUrl; + @PostMapping("/xfInterface") public R xfInterface(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); + List DTO = null; + try { + if (xfDataEnum == XfDataEnum.ChnlData) { + DTO = JSONObject.parseArray(data, MonitorChnlDataDto.class); + } else { + if (xfDataEnum == XfDataEnum.ForcastData) { + List dataList = JSONObject.parseArray(data, MonitorForcastData.class); + dataList.forEach((i) -> { +// this.build(i); + log.info("cover:{}", JSONObject.toJSONString(i)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(i), 30000); + log.info("发送汉口站数据:{}", request); + }); + return R.status(true); + } + if (xfDataEnum == XfDataEnum.LakeData) { + DTO = JSONObject.parseArray(data, MonitorLakeData.class); + } else if (xfDataEnum == XfDataEnum.Meteorological) { + DTO = JSONObject.parseArray(data, MonitorMeteorologicalData.class); + } else if (xfDataEnum == XfDataEnum.PptnData) { + DTO = JSONObject.parseArray(data, MonitorPptnData.class); + } else if (xfDataEnum == XfDataEnum.PumpData) { + DTO = JSONObject.parseArray(data, MonitorPumpData.class); + } else if (xfDataEnum == XfDataEnum.RiverData) { + DTO = JSONObject.parseArray(data, MonitorRiverData.class); + } else if (xfDataEnum == XfDataEnum.SoilData) { + DTO = JSONObject.parseArray(data, MonitorSoilData.class); + } else if (xfDataEnum == XfDataEnum.WasData) { + DTO = JSONObject.parseArray(data, MonitorWasData.class); + } else if (xfDataEnum == XfDataEnum.WetlogData) { + DTO = JSONObject.parseArray(data, MonitorWetlogData.class); + } else { + throw new RuntimeException("暂未开发"); + } + } + + if (CollUtil.isNotEmpty(DTO)) { + DTO.forEach((i) -> { + PtReceiveBaseModel model = RealTimeSerializer.xfObjectToRealMap(i); + log.info("cover:{}", JSONObject.toJSONString(model)); +// rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + }); + return R.status(true); + } else { + throw new RuntimeException("类型转换错误"); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); + throw new RuntimeException("类型转换错误"); + } + } + + private PtReceiveBaseModel build(MonitorForcastData DTO) { + PtReceiveBaseModel model = new PtReceiveBaseModel(); + Map dataMap = Maps.newHashMap(); + MqNodeData dataQ = new MqNodeData(); + dataQ.setSn("q"); + dataQ.setKey("q"); + dataQ.setValue(DTO.getQ()); + MqNodeData dataZ = new MqNodeData(); + dataZ.setSn("z"); + dataZ.setKey("z"); + dataZ.setValue(DTO.getZ()); + MqNodeData dataYbt = new MqNodeData(); + dataYbt.setSn("ybt"); + dataYbt.setKey("ybt"); + dataYbt.setValue(DTO.getFocTime()); + dataMap.put("q", dataQ); + dataMap.put("z", dataZ); + dataMap.put("ybt", dataYbt); + model.setDataMap(dataMap); + model.setSt(DTO.getStcd()); + model.setTt(DTO.getPubTime()); + model.setUt(new Date()); + return model; + } + + @PostMapping("/xfInterface/single") + public R xfInterfaceSingle(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { + log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); PtReceiveBaseModel model = new PtReceiveBaseModel(); try { if (xfDataEnum == XfDataEnum.ChnlData) { @@ -43,27 +132,11 @@ model = RealTimeSerializer.xfObjectToRealMap(DTO); } else if (xfDataEnum == XfDataEnum.ForcastData) { MonitorForcastData DTO = JSONObject.parseObject(data, MonitorForcastData.class); - model = new PtReceiveBaseModel(); - Map dataMap = Maps.newHashMap(); - MqNodeData dataQ = new MqNodeData(); - dataQ.setSn("q"); - dataQ.setKey("q"); - dataQ.setValue(DTO.getQ()); - MqNodeData dataZ = new MqNodeData(); - dataZ.setSn("z"); - dataZ.setKey("z"); - dataZ.setValue(DTO.getZ()); - MqNodeData dataYbt = new MqNodeData(); - dataYbt.setSn("ybt"); - dataYbt.setKey("ybt"); - dataYbt.setValue(DTO.getFocTime()); - dataMap.put("q", dataQ); - dataMap.put("z", dataZ); - dataMap.put("ybt", dataYbt); - model.setDataMap(dataMap); - model.setSt(DTO.getStcd()); - model.setTt(DTO.getPubTime()); - model.setUt(new Date()); +// model = this.build(DTO); + log.info("cover:{}", JSONObject.toJSONString(DTO)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(DTO), 30000); + log.info("发送汉口站数据:{}", request); + return R.status(true); } else if (xfDataEnum == XfDataEnum.LakeData) { MonitorLakeData DTO = JSONObject.parseObject(data, MonitorLakeData.class); model = RealTimeSerializer.xfObjectToRealMap(DTO); @@ -92,9 +165,14 @@ throw new RuntimeException("暂未开发"); } log.info("cover:{}", JSONObject.toJSONString(model)); - return R.status(true); - } catch (Exception e) { - log.error("解析错误,:{}", e.getStackTrace()); + if (CollUtil.isEmpty(model.getDataMap())) { + throw new RuntimeException("数据转换错误"); + } else { + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + return R.status(true); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); throw new RuntimeException("类型转换错误"); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java index cbcbb40..459beae 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java @@ -23,6 +23,7 @@ import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -94,7 +95,6 @@ model.setDataMap(dataMap); return model; } - public static PtReceiveBaseModel xfObjectToRealMap(BaseXfInterfaceEntity object) { if (null == object) { return null; @@ -111,14 +111,13 @@ } if (annotation != null) { String name = annotation.value(); -// System.out.println(name); MqNodeData data = new MqNodeData(); data.setSn(filedName); data.setKey(name); data.setValue(filed.get(object)); - if(dataMap.containsKey(name)){ + if (dataMap.containsKey(name)) { dataMap.put(filedName, data); - }else { + } else { dataMap.put(name, data); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java index 7bd0e50..cba273b 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java @@ -1,11 +1,15 @@ package org.springnewfiber.dataadapter.xf.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -18,6 +22,7 @@ import org.springnewfiber.dataadapter.xf.entity.*; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -33,9 +38,93 @@ @Api(value = "讯飞数据接受接口", tags = "讯飞数据接受接口") @Slf4j public class MonitorDataController { + private final RabbitTemplate rabbitTemplate; + @Value("${business.hankouSaveUrl}") + private String hankouSaveUrl; + @PostMapping("/xfInterface") public R xfInterface(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); + List DTO = null; + try { + if (xfDataEnum == XfDataEnum.ChnlData) { + DTO = JSONObject.parseArray(data, MonitorChnlDataDto.class); + } else { + if (xfDataEnum == XfDataEnum.ForcastData) { + List dataList = JSONObject.parseArray(data, MonitorForcastData.class); + dataList.forEach((i) -> { +// this.build(i); + log.info("cover:{}", JSONObject.toJSONString(i)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(i), 30000); + log.info("发送汉口站数据:{}", request); + }); + return R.status(true); + } + if (xfDataEnum == XfDataEnum.LakeData) { + DTO = JSONObject.parseArray(data, MonitorLakeData.class); + } else if (xfDataEnum == XfDataEnum.Meteorological) { + DTO = JSONObject.parseArray(data, MonitorMeteorologicalData.class); + } else if (xfDataEnum == XfDataEnum.PptnData) { + DTO = JSONObject.parseArray(data, MonitorPptnData.class); + } else if (xfDataEnum == XfDataEnum.PumpData) { + DTO = JSONObject.parseArray(data, MonitorPumpData.class); + } else if (xfDataEnum == XfDataEnum.RiverData) { + DTO = JSONObject.parseArray(data, MonitorRiverData.class); + } else if (xfDataEnum == XfDataEnum.SoilData) { + DTO = JSONObject.parseArray(data, MonitorSoilData.class); + } else if (xfDataEnum == XfDataEnum.WasData) { + DTO = JSONObject.parseArray(data, MonitorWasData.class); + } else if (xfDataEnum == XfDataEnum.WetlogData) { + DTO = JSONObject.parseArray(data, MonitorWetlogData.class); + } else { + throw new RuntimeException("暂未开发"); + } + } + + if (CollUtil.isNotEmpty(DTO)) { + DTO.forEach((i) -> { + PtReceiveBaseModel model = RealTimeSerializer.xfObjectToRealMap(i); + log.info("cover:{}", JSONObject.toJSONString(model)); +// rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + }); + return R.status(true); + } else { + throw new RuntimeException("类型转换错误"); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); + throw new RuntimeException("类型转换错误"); + } + } + + private PtReceiveBaseModel build(MonitorForcastData DTO) { + PtReceiveBaseModel model = new PtReceiveBaseModel(); + Map dataMap = Maps.newHashMap(); + MqNodeData dataQ = new MqNodeData(); + dataQ.setSn("q"); + dataQ.setKey("q"); + dataQ.setValue(DTO.getQ()); + MqNodeData dataZ = new MqNodeData(); + dataZ.setSn("z"); + dataZ.setKey("z"); + dataZ.setValue(DTO.getZ()); + MqNodeData dataYbt = new MqNodeData(); + dataYbt.setSn("ybt"); + dataYbt.setKey("ybt"); + dataYbt.setValue(DTO.getFocTime()); + dataMap.put("q", dataQ); + dataMap.put("z", dataZ); + dataMap.put("ybt", dataYbt); + model.setDataMap(dataMap); + model.setSt(DTO.getStcd()); + model.setTt(DTO.getPubTime()); + model.setUt(new Date()); + return model; + } + + @PostMapping("/xfInterface/single") + public R xfInterfaceSingle(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { + log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); PtReceiveBaseModel model = new PtReceiveBaseModel(); try { if (xfDataEnum == XfDataEnum.ChnlData) { @@ -43,27 +132,11 @@ model = RealTimeSerializer.xfObjectToRealMap(DTO); } else if (xfDataEnum == XfDataEnum.ForcastData) { MonitorForcastData DTO = JSONObject.parseObject(data, MonitorForcastData.class); - model = new PtReceiveBaseModel(); - Map dataMap = Maps.newHashMap(); - MqNodeData dataQ = new MqNodeData(); - dataQ.setSn("q"); - dataQ.setKey("q"); - dataQ.setValue(DTO.getQ()); - MqNodeData dataZ = new MqNodeData(); - dataZ.setSn("z"); - dataZ.setKey("z"); - dataZ.setValue(DTO.getZ()); - MqNodeData dataYbt = new MqNodeData(); - dataYbt.setSn("ybt"); - dataYbt.setKey("ybt"); - dataYbt.setValue(DTO.getFocTime()); - dataMap.put("q", dataQ); - dataMap.put("z", dataZ); - dataMap.put("ybt", dataYbt); - model.setDataMap(dataMap); - model.setSt(DTO.getStcd()); - model.setTt(DTO.getPubTime()); - model.setUt(new Date()); +// model = this.build(DTO); + log.info("cover:{}", JSONObject.toJSONString(DTO)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(DTO), 30000); + log.info("发送汉口站数据:{}", request); + return R.status(true); } else if (xfDataEnum == XfDataEnum.LakeData) { MonitorLakeData DTO = JSONObject.parseObject(data, MonitorLakeData.class); model = RealTimeSerializer.xfObjectToRealMap(DTO); @@ -92,9 +165,14 @@ throw new RuntimeException("暂未开发"); } log.info("cover:{}", JSONObject.toJSONString(model)); - return R.status(true); - } catch (Exception e) { - log.error("解析错误,:{}", e.getStackTrace()); + if (CollUtil.isEmpty(model.getDataMap())) { + throw new RuntimeException("数据转换错误"); + } else { + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + return R.status(true); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); throw new RuntimeException("类型转换错误"); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java index 5c89b26..91cfb06 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java @@ -15,7 +15,7 @@ **/ @Data public class MonitorPptnData extends BaseXfInterfaceEntity{ - @JsonProperty(value ="drp") + @JsonProperty(value ="p1") @ApiModelProperty(value = "时段降雨量") private BigDecimal drp; @JsonProperty(value ="intv") diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java index cbcbb40..459beae 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java @@ -23,6 +23,7 @@ import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -94,7 +95,6 @@ model.setDataMap(dataMap); return model; } - public static PtReceiveBaseModel xfObjectToRealMap(BaseXfInterfaceEntity object) { if (null == object) { return null; @@ -111,14 +111,13 @@ } if (annotation != null) { String name = annotation.value(); -// System.out.println(name); MqNodeData data = new MqNodeData(); data.setSn(filedName); data.setKey(name); data.setValue(filed.get(object)); - if(dataMap.containsKey(name)){ + if (dataMap.containsKey(name)) { dataMap.put(filedName, data); - }else { + } else { dataMap.put(name, data); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java index 7bd0e50..cba273b 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java @@ -1,11 +1,15 @@ package org.springnewfiber.dataadapter.xf.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -18,6 +22,7 @@ import org.springnewfiber.dataadapter.xf.entity.*; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -33,9 +38,93 @@ @Api(value = "讯飞数据接受接口", tags = "讯飞数据接受接口") @Slf4j public class MonitorDataController { + private final RabbitTemplate rabbitTemplate; + @Value("${business.hankouSaveUrl}") + private String hankouSaveUrl; + @PostMapping("/xfInterface") public R xfInterface(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); + List DTO = null; + try { + if (xfDataEnum == XfDataEnum.ChnlData) { + DTO = JSONObject.parseArray(data, MonitorChnlDataDto.class); + } else { + if (xfDataEnum == XfDataEnum.ForcastData) { + List dataList = JSONObject.parseArray(data, MonitorForcastData.class); + dataList.forEach((i) -> { +// this.build(i); + log.info("cover:{}", JSONObject.toJSONString(i)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(i), 30000); + log.info("发送汉口站数据:{}", request); + }); + return R.status(true); + } + if (xfDataEnum == XfDataEnum.LakeData) { + DTO = JSONObject.parseArray(data, MonitorLakeData.class); + } else if (xfDataEnum == XfDataEnum.Meteorological) { + DTO = JSONObject.parseArray(data, MonitorMeteorologicalData.class); + } else if (xfDataEnum == XfDataEnum.PptnData) { + DTO = JSONObject.parseArray(data, MonitorPptnData.class); + } else if (xfDataEnum == XfDataEnum.PumpData) { + DTO = JSONObject.parseArray(data, MonitorPumpData.class); + } else if (xfDataEnum == XfDataEnum.RiverData) { + DTO = JSONObject.parseArray(data, MonitorRiverData.class); + } else if (xfDataEnum == XfDataEnum.SoilData) { + DTO = JSONObject.parseArray(data, MonitorSoilData.class); + } else if (xfDataEnum == XfDataEnum.WasData) { + DTO = JSONObject.parseArray(data, MonitorWasData.class); + } else if (xfDataEnum == XfDataEnum.WetlogData) { + DTO = JSONObject.parseArray(data, MonitorWetlogData.class); + } else { + throw new RuntimeException("暂未开发"); + } + } + + if (CollUtil.isNotEmpty(DTO)) { + DTO.forEach((i) -> { + PtReceiveBaseModel model = RealTimeSerializer.xfObjectToRealMap(i); + log.info("cover:{}", JSONObject.toJSONString(model)); +// rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + }); + return R.status(true); + } else { + throw new RuntimeException("类型转换错误"); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); + throw new RuntimeException("类型转换错误"); + } + } + + private PtReceiveBaseModel build(MonitorForcastData DTO) { + PtReceiveBaseModel model = new PtReceiveBaseModel(); + Map dataMap = Maps.newHashMap(); + MqNodeData dataQ = new MqNodeData(); + dataQ.setSn("q"); + dataQ.setKey("q"); + dataQ.setValue(DTO.getQ()); + MqNodeData dataZ = new MqNodeData(); + dataZ.setSn("z"); + dataZ.setKey("z"); + dataZ.setValue(DTO.getZ()); + MqNodeData dataYbt = new MqNodeData(); + dataYbt.setSn("ybt"); + dataYbt.setKey("ybt"); + dataYbt.setValue(DTO.getFocTime()); + dataMap.put("q", dataQ); + dataMap.put("z", dataZ); + dataMap.put("ybt", dataYbt); + model.setDataMap(dataMap); + model.setSt(DTO.getStcd()); + model.setTt(DTO.getPubTime()); + model.setUt(new Date()); + return model; + } + + @PostMapping("/xfInterface/single") + public R xfInterfaceSingle(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { + log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); PtReceiveBaseModel model = new PtReceiveBaseModel(); try { if (xfDataEnum == XfDataEnum.ChnlData) { @@ -43,27 +132,11 @@ model = RealTimeSerializer.xfObjectToRealMap(DTO); } else if (xfDataEnum == XfDataEnum.ForcastData) { MonitorForcastData DTO = JSONObject.parseObject(data, MonitorForcastData.class); - model = new PtReceiveBaseModel(); - Map dataMap = Maps.newHashMap(); - MqNodeData dataQ = new MqNodeData(); - dataQ.setSn("q"); - dataQ.setKey("q"); - dataQ.setValue(DTO.getQ()); - MqNodeData dataZ = new MqNodeData(); - dataZ.setSn("z"); - dataZ.setKey("z"); - dataZ.setValue(DTO.getZ()); - MqNodeData dataYbt = new MqNodeData(); - dataYbt.setSn("ybt"); - dataYbt.setKey("ybt"); - dataYbt.setValue(DTO.getFocTime()); - dataMap.put("q", dataQ); - dataMap.put("z", dataZ); - dataMap.put("ybt", dataYbt); - model.setDataMap(dataMap); - model.setSt(DTO.getStcd()); - model.setTt(DTO.getPubTime()); - model.setUt(new Date()); +// model = this.build(DTO); + log.info("cover:{}", JSONObject.toJSONString(DTO)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(DTO), 30000); + log.info("发送汉口站数据:{}", request); + return R.status(true); } else if (xfDataEnum == XfDataEnum.LakeData) { MonitorLakeData DTO = JSONObject.parseObject(data, MonitorLakeData.class); model = RealTimeSerializer.xfObjectToRealMap(DTO); @@ -92,9 +165,14 @@ throw new RuntimeException("暂未开发"); } log.info("cover:{}", JSONObject.toJSONString(model)); - return R.status(true); - } catch (Exception e) { - log.error("解析错误,:{}", e.getStackTrace()); + if (CollUtil.isEmpty(model.getDataMap())) { + throw new RuntimeException("数据转换错误"); + } else { + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + return R.status(true); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); throw new RuntimeException("类型转换错误"); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java index 5c89b26..91cfb06 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java @@ -15,7 +15,7 @@ **/ @Data public class MonitorPptnData extends BaseXfInterfaceEntity{ - @JsonProperty(value ="drp") + @JsonProperty(value ="p1") @ApiModelProperty(value = "时段降雨量") private BigDecimal drp; @JsonProperty(value ="intv") diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java index 87d74ec..abaebc8 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java @@ -1,6 +1,5 @@ package org.springnewfiber.dataadapter.xf.entity; -import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,7 @@ **/ @Data public class MonitorWetlogData extends BaseXfInterfaceEntity { - @JsonProperty(value ="z") + @JsonProperty(value = "z") @ApiModelProperty(value = "水位") - private BigDecimal upz; + private BigDecimal z; } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java index cbcbb40..459beae 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/util/RealTimeSerializer.java @@ -23,6 +23,7 @@ import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -94,7 +95,6 @@ model.setDataMap(dataMap); return model; } - public static PtReceiveBaseModel xfObjectToRealMap(BaseXfInterfaceEntity object) { if (null == object) { return null; @@ -111,14 +111,13 @@ } if (annotation != null) { String name = annotation.value(); -// System.out.println(name); MqNodeData data = new MqNodeData(); data.setSn(filedName); data.setKey(name); data.setValue(filed.get(object)); - if(dataMap.containsKey(name)){ + if (dataMap.containsKey(name)) { dataMap.put(filedName, data); - }else { + } else { dataMap.put(name, data); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java index 7bd0e50..cba273b 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java @@ -1,11 +1,15 @@ package org.springnewfiber.dataadapter.xf.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -18,6 +22,7 @@ import org.springnewfiber.dataadapter.xf.entity.*; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -33,9 +38,93 @@ @Api(value = "讯飞数据接受接口", tags = "讯飞数据接受接口") @Slf4j public class MonitorDataController { + private final RabbitTemplate rabbitTemplate; + @Value("${business.hankouSaveUrl}") + private String hankouSaveUrl; + @PostMapping("/xfInterface") public R xfInterface(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); + List DTO = null; + try { + if (xfDataEnum == XfDataEnum.ChnlData) { + DTO = JSONObject.parseArray(data, MonitorChnlDataDto.class); + } else { + if (xfDataEnum == XfDataEnum.ForcastData) { + List dataList = JSONObject.parseArray(data, MonitorForcastData.class); + dataList.forEach((i) -> { +// this.build(i); + log.info("cover:{}", JSONObject.toJSONString(i)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(i), 30000); + log.info("发送汉口站数据:{}", request); + }); + return R.status(true); + } + if (xfDataEnum == XfDataEnum.LakeData) { + DTO = JSONObject.parseArray(data, MonitorLakeData.class); + } else if (xfDataEnum == XfDataEnum.Meteorological) { + DTO = JSONObject.parseArray(data, MonitorMeteorologicalData.class); + } else if (xfDataEnum == XfDataEnum.PptnData) { + DTO = JSONObject.parseArray(data, MonitorPptnData.class); + } else if (xfDataEnum == XfDataEnum.PumpData) { + DTO = JSONObject.parseArray(data, MonitorPumpData.class); + } else if (xfDataEnum == XfDataEnum.RiverData) { + DTO = JSONObject.parseArray(data, MonitorRiverData.class); + } else if (xfDataEnum == XfDataEnum.SoilData) { + DTO = JSONObject.parseArray(data, MonitorSoilData.class); + } else if (xfDataEnum == XfDataEnum.WasData) { + DTO = JSONObject.parseArray(data, MonitorWasData.class); + } else if (xfDataEnum == XfDataEnum.WetlogData) { + DTO = JSONObject.parseArray(data, MonitorWetlogData.class); + } else { + throw new RuntimeException("暂未开发"); + } + } + + if (CollUtil.isNotEmpty(DTO)) { + DTO.forEach((i) -> { + PtReceiveBaseModel model = RealTimeSerializer.xfObjectToRealMap(i); + log.info("cover:{}", JSONObject.toJSONString(model)); +// rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + }); + return R.status(true); + } else { + throw new RuntimeException("类型转换错误"); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); + throw new RuntimeException("类型转换错误"); + } + } + + private PtReceiveBaseModel build(MonitorForcastData DTO) { + PtReceiveBaseModel model = new PtReceiveBaseModel(); + Map dataMap = Maps.newHashMap(); + MqNodeData dataQ = new MqNodeData(); + dataQ.setSn("q"); + dataQ.setKey("q"); + dataQ.setValue(DTO.getQ()); + MqNodeData dataZ = new MqNodeData(); + dataZ.setSn("z"); + dataZ.setKey("z"); + dataZ.setValue(DTO.getZ()); + MqNodeData dataYbt = new MqNodeData(); + dataYbt.setSn("ybt"); + dataYbt.setKey("ybt"); + dataYbt.setValue(DTO.getFocTime()); + dataMap.put("q", dataQ); + dataMap.put("z", dataZ); + dataMap.put("ybt", dataYbt); + model.setDataMap(dataMap); + model.setSt(DTO.getStcd()); + model.setTt(DTO.getPubTime()); + model.setUt(new Date()); + return model; + } + + @PostMapping("/xfInterface/single") + public R xfInterfaceSingle(@ApiParam(value = "数据json") @RequestParam("data") String data, @ApiParam(value = "数据类型") @RequestParam("xfBaseData") XfDataEnum xfDataEnum) { + log.error("data:{},flag:{}", JSONObject.toJSONString(data), xfDataEnum.getRemark()); PtReceiveBaseModel model = new PtReceiveBaseModel(); try { if (xfDataEnum == XfDataEnum.ChnlData) { @@ -43,27 +132,11 @@ model = RealTimeSerializer.xfObjectToRealMap(DTO); } else if (xfDataEnum == XfDataEnum.ForcastData) { MonitorForcastData DTO = JSONObject.parseObject(data, MonitorForcastData.class); - model = new PtReceiveBaseModel(); - Map dataMap = Maps.newHashMap(); - MqNodeData dataQ = new MqNodeData(); - dataQ.setSn("q"); - dataQ.setKey("q"); - dataQ.setValue(DTO.getQ()); - MqNodeData dataZ = new MqNodeData(); - dataZ.setSn("z"); - dataZ.setKey("z"); - dataZ.setValue(DTO.getZ()); - MqNodeData dataYbt = new MqNodeData(); - dataYbt.setSn("ybt"); - dataYbt.setKey("ybt"); - dataYbt.setValue(DTO.getFocTime()); - dataMap.put("q", dataQ); - dataMap.put("z", dataZ); - dataMap.put("ybt", dataYbt); - model.setDataMap(dataMap); - model.setSt(DTO.getStcd()); - model.setTt(DTO.getPubTime()); - model.setUt(new Date()); +// model = this.build(DTO); + log.info("cover:{}", JSONObject.toJSONString(DTO)); + String request = HttpUtil.post(hankouSaveUrl, JSONObject.toJSONString(DTO), 30000); + log.info("发送汉口站数据:{}", request); + return R.status(true); } else if (xfDataEnum == XfDataEnum.LakeData) { MonitorLakeData DTO = JSONObject.parseObject(data, MonitorLakeData.class); model = RealTimeSerializer.xfObjectToRealMap(DTO); @@ -92,9 +165,14 @@ throw new RuntimeException("暂未开发"); } log.info("cover:{}", JSONObject.toJSONString(model)); - return R.status(true); - } catch (Exception e) { - log.error("解析错误,:{}", e.getStackTrace()); + if (CollUtil.isEmpty(model.getDataMap())) { + throw new RuntimeException("数据转换错误"); + } else { + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + return R.status(true); + } + } catch (Exception var5) { + log.error("解析错误,:{}", var5.getStackTrace()); throw new RuntimeException("类型转换错误"); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java index 5c89b26..91cfb06 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java @@ -15,7 +15,7 @@ **/ @Data public class MonitorPptnData extends BaseXfInterfaceEntity{ - @JsonProperty(value ="drp") + @JsonProperty(value ="p1") @ApiModelProperty(value = "时段降雨量") private BigDecimal drp; @JsonProperty(value ="intv") diff --git a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java index 87d74ec..abaebc8 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorWetlogData.java @@ -1,6 +1,5 @@ package org.springnewfiber.dataadapter.xf.entity; -import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +14,7 @@ **/ @Data public class MonitorWetlogData extends BaseXfInterfaceEntity { - @JsonProperty(value ="z") + @JsonProperty(value = "z") @ApiModelProperty(value = "水位") - private BigDecimal upz; + private BigDecimal z; } diff --git a/src/main/java/org/springnewfiber/dataadapter/ziguang/yl/action/YlAction.java b/src/main/java/org/springnewfiber/dataadapter/ziguang/yl/action/YlAction.java index 14cfdf8..e990643 100644 --- a/src/main/java/org/springnewfiber/dataadapter/ziguang/yl/action/YlAction.java +++ b/src/main/java/org/springnewfiber/dataadapter/ziguang/yl/action/YlAction.java @@ -120,7 +120,7 @@ public void realTimeData(YlDto realYl) { try { Map listByPramMap = ImmutableMap.of("searchFilters", ImmutableMap.of("stcd", realYl.getSTCD(), "datatime", DateUtil.today())); - HttpRequest request = loginAction.getPostAuthRequest(ziGuangConfig.getYl().getRealUrl()); + HttpRequest request = loginAction.getPostAuthRequest(ziGuangConfig.getYl().getOneHourUrl()); request.body(JSONObject.toJSONString(listByPramMap)); HttpResponse response = request.execute(); log.info("单个雨量实时数据:stcd:{},数据:{}", realYl.getSTCD(), response.body());