diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4ddeda5..35a7f3f 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -13,6 +13,7 @@ import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; import org.springnewfiber.dataadapter.sswj.entity.*; +import org.springnewfiber.dataadapter.sswj.mapper.ZgRainDataMapper; import org.springnewfiber.dataadapter.sswj.service.impl.*; import org.springnewfiber.dataadapter.sswj.util.RealTimeSerializer; @@ -40,6 +41,7 @@ private final SzGssydServiceImpl szGssydService; private final SzyRServiceImpl szyRService; private final TrsqTjhsRServiceImpl trsqTjhsRService; + private final ZgRainDataMapper zgRainDataMapper; @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { @@ -53,6 +55,7 @@ checkHasRealDate(new SzGssyd(), szGssydService); checkHasRealDate(new SzyR(), szyRService); checkHasRealDate(new TrsqTjhsR(), trsqTjhsRService); + zgRainData(); } private void checkHasRealDate(BaseSwjEntity baseSwjEntity, ServiceImpl service) { @@ -115,6 +118,70 @@ } catch (Exception e) { log.error("发生错误:{},e:{}", baseSwjEntity.getClass().getSimpleName(), e.getStackTrace()); } + } + + private void zgRainData() { + try { + String name = ZgRainData.class.getSimpleName(); + if (CollUtil.isNotEmpty(redis.keys(name.concat(StringPool.COLON).concat(StringPool.ASTERISK)))) { + //已经有 + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + String key = name.concat(StringPool.COLON).concat(i.getSTCD()); + ZgRainData redisObject; + if (redis.exists(key) && (redisObject = redis.get(key)) != null && redisObject.getTM() != null) { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.eq("STCD", redisObject.getSTCD()); + selectQwId.gt("TM", redisObject.getTM()); + List nowList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(nowList)) { + for (ZgRainData zgRainData : nowList) { + redisObject=redis.get(key); + zgRainData.setPt(redisObject.getPt().add(zgRainData.getDRP())); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(zgRainData); + redis.set(key, zgRainData); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, zgRainData.getSTCD(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + } + }); + } else { + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.last("limit 0,1"); + selectQwId.eq("STCD", i.getSTCD()); + List stRealDataList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(stRealDataList)) { + ZgRainData entity = stRealDataList.get(0); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(entity); + if (null == model) { + return; + } else { + redis.set(name.concat(StringPool.COLON).concat(model.getSt()), entity); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, model.getSt(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + }); + } + } catch (Exception e) { + log.error("发生错误:{},e:{}", "紫光雨量数据", e.getStackTrace()); + } } + } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4ddeda5..35a7f3f 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -13,6 +13,7 @@ import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; import org.springnewfiber.dataadapter.sswj.entity.*; +import org.springnewfiber.dataadapter.sswj.mapper.ZgRainDataMapper; import org.springnewfiber.dataadapter.sswj.service.impl.*; import org.springnewfiber.dataadapter.sswj.util.RealTimeSerializer; @@ -40,6 +41,7 @@ private final SzGssydServiceImpl szGssydService; private final SzyRServiceImpl szyRService; private final TrsqTjhsRServiceImpl trsqTjhsRService; + private final ZgRainDataMapper zgRainDataMapper; @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { @@ -53,6 +55,7 @@ checkHasRealDate(new SzGssyd(), szGssydService); checkHasRealDate(new SzyR(), szyRService); checkHasRealDate(new TrsqTjhsR(), trsqTjhsRService); + zgRainData(); } private void checkHasRealDate(BaseSwjEntity baseSwjEntity, ServiceImpl service) { @@ -115,6 +118,70 @@ } catch (Exception e) { log.error("发生错误:{},e:{}", baseSwjEntity.getClass().getSimpleName(), e.getStackTrace()); } + } + + private void zgRainData() { + try { + String name = ZgRainData.class.getSimpleName(); + if (CollUtil.isNotEmpty(redis.keys(name.concat(StringPool.COLON).concat(StringPool.ASTERISK)))) { + //已经有 + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + String key = name.concat(StringPool.COLON).concat(i.getSTCD()); + ZgRainData redisObject; + if (redis.exists(key) && (redisObject = redis.get(key)) != null && redisObject.getTM() != null) { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.eq("STCD", redisObject.getSTCD()); + selectQwId.gt("TM", redisObject.getTM()); + List nowList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(nowList)) { + for (ZgRainData zgRainData : nowList) { + redisObject=redis.get(key); + zgRainData.setPt(redisObject.getPt().add(zgRainData.getDRP())); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(zgRainData); + redis.set(key, zgRainData); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, zgRainData.getSTCD(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + } + }); + } else { + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.last("limit 0,1"); + selectQwId.eq("STCD", i.getSTCD()); + List stRealDataList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(stRealDataList)) { + ZgRainData entity = stRealDataList.get(0); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(entity); + if (null == model) { + return; + } else { + redis.set(name.concat(StringPool.COLON).concat(model.getSt()), entity); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, model.getSt(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + }); + } + } catch (Exception e) { + log.error("发生错误:{},e:{}", "紫光雨量数据", e.getStackTrace()); + } } + } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java new file mode 100644 index 0000000..0a3ec2d --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java @@ -0,0 +1,40 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @program: newfiber-data-adapter + * @description: 紫光雨量数据 + * @author: djt + * @create: 2022-04-26 20:26 + **/ +@Data +@TableName("zg_rainfall_data") +@ApiModel(value = "紫光雨量数据对象", description = "紫光雨量数据对象") +public class ZgRainData implements Serializable { + @TableField(value = "STCD") + @JSONField(name = "st") + private String STCD; + @TableField(value = "STNM") + @JSONField(serialize = false) + private String STNM; + @TableField(value = "DRP") + @JSONField(name = "p1") + private BigDecimal DRP; + @TableField(value = "TM") + @JSONField(name = "tt", format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date TM; + @TableField(exist = false) + @JSONField(name = "pt") + private BigDecimal pt=BigDecimal.ZERO; +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4ddeda5..35a7f3f 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -13,6 +13,7 @@ import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; import org.springnewfiber.dataadapter.sswj.entity.*; +import org.springnewfiber.dataadapter.sswj.mapper.ZgRainDataMapper; import org.springnewfiber.dataadapter.sswj.service.impl.*; import org.springnewfiber.dataadapter.sswj.util.RealTimeSerializer; @@ -40,6 +41,7 @@ private final SzGssydServiceImpl szGssydService; private final SzyRServiceImpl szyRService; private final TrsqTjhsRServiceImpl trsqTjhsRService; + private final ZgRainDataMapper zgRainDataMapper; @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { @@ -53,6 +55,7 @@ checkHasRealDate(new SzGssyd(), szGssydService); checkHasRealDate(new SzyR(), szyRService); checkHasRealDate(new TrsqTjhsR(), trsqTjhsRService); + zgRainData(); } private void checkHasRealDate(BaseSwjEntity baseSwjEntity, ServiceImpl service) { @@ -115,6 +118,70 @@ } catch (Exception e) { log.error("发生错误:{},e:{}", baseSwjEntity.getClass().getSimpleName(), e.getStackTrace()); } + } + + private void zgRainData() { + try { + String name = ZgRainData.class.getSimpleName(); + if (CollUtil.isNotEmpty(redis.keys(name.concat(StringPool.COLON).concat(StringPool.ASTERISK)))) { + //已经有 + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + String key = name.concat(StringPool.COLON).concat(i.getSTCD()); + ZgRainData redisObject; + if (redis.exists(key) && (redisObject = redis.get(key)) != null && redisObject.getTM() != null) { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.eq("STCD", redisObject.getSTCD()); + selectQwId.gt("TM", redisObject.getTM()); + List nowList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(nowList)) { + for (ZgRainData zgRainData : nowList) { + redisObject=redis.get(key); + zgRainData.setPt(redisObject.getPt().add(zgRainData.getDRP())); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(zgRainData); + redis.set(key, zgRainData); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, zgRainData.getSTCD(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + } + }); + } else { + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.last("limit 0,1"); + selectQwId.eq("STCD", i.getSTCD()); + List stRealDataList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(stRealDataList)) { + ZgRainData entity = stRealDataList.get(0); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(entity); + if (null == model) { + return; + } else { + redis.set(name.concat(StringPool.COLON).concat(model.getSt()), entity); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, model.getSt(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + }); + } + } catch (Exception e) { + log.error("发生错误:{},e:{}", "紫光雨量数据", e.getStackTrace()); + } } + } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java new file mode 100644 index 0000000..0a3ec2d --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java @@ -0,0 +1,40 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @program: newfiber-data-adapter + * @description: 紫光雨量数据 + * @author: djt + * @create: 2022-04-26 20:26 + **/ +@Data +@TableName("zg_rainfall_data") +@ApiModel(value = "紫光雨量数据对象", description = "紫光雨量数据对象") +public class ZgRainData implements Serializable { + @TableField(value = "STCD") + @JSONField(name = "st") + private String STCD; + @TableField(value = "STNM") + @JSONField(serialize = false) + private String STNM; + @TableField(value = "DRP") + @JSONField(name = "p1") + private BigDecimal DRP; + @TableField(value = "TM") + @JSONField(name = "tt", format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date TM; + @TableField(exist = false) + @JSONField(name = "pt") + private BigDecimal pt=BigDecimal.ZERO; +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java new file mode 100644 index 0000000..2b65029 --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java @@ -0,0 +1,15 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springnewfiber.dataadapter.sswj.entity.ZgRainData; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-04-26 20:32 + **/ +@Mapper +public interface ZgRainDataMapper extends BaseMapper { +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4ddeda5..35a7f3f 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -13,6 +13,7 @@ import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; import org.springnewfiber.dataadapter.sswj.entity.*; +import org.springnewfiber.dataadapter.sswj.mapper.ZgRainDataMapper; import org.springnewfiber.dataadapter.sswj.service.impl.*; import org.springnewfiber.dataadapter.sswj.util.RealTimeSerializer; @@ -40,6 +41,7 @@ private final SzGssydServiceImpl szGssydService; private final SzyRServiceImpl szyRService; private final TrsqTjhsRServiceImpl trsqTjhsRService; + private final ZgRainDataMapper zgRainDataMapper; @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { @@ -53,6 +55,7 @@ checkHasRealDate(new SzGssyd(), szGssydService); checkHasRealDate(new SzyR(), szyRService); checkHasRealDate(new TrsqTjhsR(), trsqTjhsRService); + zgRainData(); } private void checkHasRealDate(BaseSwjEntity baseSwjEntity, ServiceImpl service) { @@ -115,6 +118,70 @@ } catch (Exception e) { log.error("发生错误:{},e:{}", baseSwjEntity.getClass().getSimpleName(), e.getStackTrace()); } + } + + private void zgRainData() { + try { + String name = ZgRainData.class.getSimpleName(); + if (CollUtil.isNotEmpty(redis.keys(name.concat(StringPool.COLON).concat(StringPool.ASTERISK)))) { + //已经有 + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + String key = name.concat(StringPool.COLON).concat(i.getSTCD()); + ZgRainData redisObject; + if (redis.exists(key) && (redisObject = redis.get(key)) != null && redisObject.getTM() != null) { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.eq("STCD", redisObject.getSTCD()); + selectQwId.gt("TM", redisObject.getTM()); + List nowList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(nowList)) { + for (ZgRainData zgRainData : nowList) { + redisObject=redis.get(key); + zgRainData.setPt(redisObject.getPt().add(zgRainData.getDRP())); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(zgRainData); + redis.set(key, zgRainData); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, zgRainData.getSTCD(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + } + }); + } else { + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.last("limit 0,1"); + selectQwId.eq("STCD", i.getSTCD()); + List stRealDataList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(stRealDataList)) { + ZgRainData entity = stRealDataList.get(0); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(entity); + if (null == model) { + return; + } else { + redis.set(name.concat(StringPool.COLON).concat(model.getSt()), entity); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, model.getSt(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + }); + } + } catch (Exception e) { + log.error("发生错误:{},e:{}", "紫光雨量数据", e.getStackTrace()); + } } + } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java new file mode 100644 index 0000000..0a3ec2d --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java @@ -0,0 +1,40 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @program: newfiber-data-adapter + * @description: 紫光雨量数据 + * @author: djt + * @create: 2022-04-26 20:26 + **/ +@Data +@TableName("zg_rainfall_data") +@ApiModel(value = "紫光雨量数据对象", description = "紫光雨量数据对象") +public class ZgRainData implements Serializable { + @TableField(value = "STCD") + @JSONField(name = "st") + private String STCD; + @TableField(value = "STNM") + @JSONField(serialize = false) + private String STNM; + @TableField(value = "DRP") + @JSONField(name = "p1") + private BigDecimal DRP; + @TableField(value = "TM") + @JSONField(name = "tt", format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date TM; + @TableField(exist = false) + @JSONField(name = "pt") + private BigDecimal pt=BigDecimal.ZERO; +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java new file mode 100644 index 0000000..2b65029 --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java @@ -0,0 +1,15 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springnewfiber.dataadapter.sswj.entity.ZgRainData; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-04-26 20:32 + **/ +@Mapper +public interface ZgRainDataMapper extends BaseMapper { +} diff --git a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java index fa9bc5e..863a4f0 100644 --- a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java @@ -27,13 +27,13 @@ private final HpAction hpAction; private final YlAction ylAction; private final ZsAction zsAction; -// @Scheduled(cron = "0 0/1 * * * ?") + @Scheduled(cron = "0 0/1 * * * ?") public void synchronize() { bzAction.list(); gqAction.list(); hdAction.list(); hpAction.list(); - ylAction.list(); +// ylAction.list(); zsAction.list(); } } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4ddeda5..35a7f3f 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -13,6 +13,7 @@ import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; import org.springnewfiber.dataadapter.sswj.entity.*; +import org.springnewfiber.dataadapter.sswj.mapper.ZgRainDataMapper; import org.springnewfiber.dataadapter.sswj.service.impl.*; import org.springnewfiber.dataadapter.sswj.util.RealTimeSerializer; @@ -40,6 +41,7 @@ private final SzGssydServiceImpl szGssydService; private final SzyRServiceImpl szyRService; private final TrsqTjhsRServiceImpl trsqTjhsRService; + private final ZgRainDataMapper zgRainDataMapper; @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { @@ -53,6 +55,7 @@ checkHasRealDate(new SzGssyd(), szGssydService); checkHasRealDate(new SzyR(), szyRService); checkHasRealDate(new TrsqTjhsR(), trsqTjhsRService); + zgRainData(); } private void checkHasRealDate(BaseSwjEntity baseSwjEntity, ServiceImpl service) { @@ -115,6 +118,70 @@ } catch (Exception e) { log.error("发生错误:{},e:{}", baseSwjEntity.getClass().getSimpleName(), e.getStackTrace()); } + } + + private void zgRainData() { + try { + String name = ZgRainData.class.getSimpleName(); + if (CollUtil.isNotEmpty(redis.keys(name.concat(StringPool.COLON).concat(StringPool.ASTERISK)))) { + //已经有 + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + String key = name.concat(StringPool.COLON).concat(i.getSTCD()); + ZgRainData redisObject; + if (redis.exists(key) && (redisObject = redis.get(key)) != null && redisObject.getTM() != null) { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.eq("STCD", redisObject.getSTCD()); + selectQwId.gt("TM", redisObject.getTM()); + List nowList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(nowList)) { + for (ZgRainData zgRainData : nowList) { + redisObject=redis.get(key); + zgRainData.setPt(redisObject.getPt().add(zgRainData.getDRP())); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(zgRainData); + redis.set(key, zgRainData); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, zgRainData.getSTCD(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + } + }); + } else { + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.last("limit 0,1"); + selectQwId.eq("STCD", i.getSTCD()); + List stRealDataList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(stRealDataList)) { + ZgRainData entity = stRealDataList.get(0); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(entity); + if (null == model) { + return; + } else { + redis.set(name.concat(StringPool.COLON).concat(model.getSt()), entity); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, model.getSt(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + }); + } + } catch (Exception e) { + log.error("发生错误:{},e:{}", "紫光雨量数据", e.getStackTrace()); + } } + } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java new file mode 100644 index 0000000..0a3ec2d --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java @@ -0,0 +1,40 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @program: newfiber-data-adapter + * @description: 紫光雨量数据 + * @author: djt + * @create: 2022-04-26 20:26 + **/ +@Data +@TableName("zg_rainfall_data") +@ApiModel(value = "紫光雨量数据对象", description = "紫光雨量数据对象") +public class ZgRainData implements Serializable { + @TableField(value = "STCD") + @JSONField(name = "st") + private String STCD; + @TableField(value = "STNM") + @JSONField(serialize = false) + private String STNM; + @TableField(value = "DRP") + @JSONField(name = "p1") + private BigDecimal DRP; + @TableField(value = "TM") + @JSONField(name = "tt", format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date TM; + @TableField(exist = false) + @JSONField(name = "pt") + private BigDecimal pt=BigDecimal.ZERO; +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java new file mode 100644 index 0000000..2b65029 --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java @@ -0,0 +1,15 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springnewfiber.dataadapter.sswj.entity.ZgRainData; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-04-26 20:32 + **/ +@Mapper +public interface ZgRainDataMapper extends BaseMapper { +} diff --git a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java index fa9bc5e..863a4f0 100644 --- a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java @@ -27,13 +27,13 @@ private final HpAction hpAction; private final YlAction ylAction; private final ZsAction zsAction; -// @Scheduled(cron = "0 0/1 * * * ?") + @Scheduled(cron = "0 0/1 * * * ?") public void synchronize() { bzAction.list(); gqAction.list(); hdAction.list(); hpAction.list(); - ylAction.list(); +// ylAction.list(); zsAction.list(); } } 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 0f0473c..f034a84 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 @@ -18,6 +18,7 @@ import org.springnewfiber.dataadapter.ziguang.yl.util.RainfallAccumulationUtil; import java.math.BigDecimal; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; @@ -71,6 +72,46 @@ }); } +// private void realTimeHourData(YlDto realYl) { +// Map childPramMap = Maps.newHashMap(); +// childPramMap.put("stcd", realYl.getSTCD()); +// childPramMap.put("addvcd", "420113"); +// childPramMap.put("drp", "1"); +// childPramMap.put("daydrp", ""); +// childPramMap.put("type", ""); +// Map listByPramMap = ImmutableMap.of("searchFilters", childPramMap); +// HttpRequest request = loginAction.getPostAuthRequest(ziGuangConfig.getYl().getOneHourUrl()); +// request.body(JSONObject.toJSONString(listByPramMap)); +// HttpResponse response = request.execute(); +// log.info("单个雨量小时数据:stcd:{},数据:{}", realYl.getSTCD(), response.body()); +// List list = JSONObject.parseArray(response.body(), YlDto.class); +// if (CollectionUtil.isNotEmpty(list)) { +// Boolean flag = bladeRedis.exists("yl:" + realYl.getSTCD()); +// List newList = CollectionUtil.reverseNew(list); +// newList.forEach(i -> { +// YlDto dto = new YlDto(); +// if ((flag && (dto = bladeRedis.get("yl:" + realYl.getSTCD())) != null && dto.getTM().before(i.getTM())) || !flag) { +// i.setCountPt(dto.getCountPt().add(new BigDecimal(i.getDRP()))); +// +// } else if () { +// +// } +// }); +// } +// } + +// private void checkTime(YlDto redisDto, YlDto nowDto) { +// Date redisDtoTM = redisDto.getTM(); +// Date nowDtoTm = nowDto.getTM(); +// Calendar redisC= Calendar.getInstance(); +// redisC.setTime(redisDtoTM); +// Calendar nowDtoC= Calendar.getInstance(); +// nowDtoC.setTime(nowDtoTm); +// if (redisDtoTM.before(nowDtoTm)&&redisC.get) { +// +// } +// } + /** * 获取实时数据 * diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4ddeda5..35a7f3f 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -13,6 +13,7 @@ import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; import org.springnewfiber.dataadapter.sswj.entity.*; +import org.springnewfiber.dataadapter.sswj.mapper.ZgRainDataMapper; import org.springnewfiber.dataadapter.sswj.service.impl.*; import org.springnewfiber.dataadapter.sswj.util.RealTimeSerializer; @@ -40,6 +41,7 @@ private final SzGssydServiceImpl szGssydService; private final SzyRServiceImpl szyRService; private final TrsqTjhsRServiceImpl trsqTjhsRService; + private final ZgRainDataMapper zgRainDataMapper; @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { @@ -53,6 +55,7 @@ checkHasRealDate(new SzGssyd(), szGssydService); checkHasRealDate(new SzyR(), szyRService); checkHasRealDate(new TrsqTjhsR(), trsqTjhsRService); + zgRainData(); } private void checkHasRealDate(BaseSwjEntity baseSwjEntity, ServiceImpl service) { @@ -115,6 +118,70 @@ } catch (Exception e) { log.error("发生错误:{},e:{}", baseSwjEntity.getClass().getSimpleName(), e.getStackTrace()); } + } + + private void zgRainData() { + try { + String name = ZgRainData.class.getSimpleName(); + if (CollUtil.isNotEmpty(redis.keys(name.concat(StringPool.COLON).concat(StringPool.ASTERISK)))) { + //已经有 + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + String key = name.concat(StringPool.COLON).concat(i.getSTCD()); + ZgRainData redisObject; + if (redis.exists(key) && (redisObject = redis.get(key)) != null && redisObject.getTM() != null) { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.eq("STCD", redisObject.getSTCD()); + selectQwId.gt("TM", redisObject.getTM()); + List nowList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(nowList)) { + for (ZgRainData zgRainData : nowList) { + redisObject=redis.get(key); + zgRainData.setPt(redisObject.getPt().add(zgRainData.getDRP())); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(zgRainData); + redis.set(key, zgRainData); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, zgRainData.getSTCD(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + } + }); + } else { + QueryWrapper qw = new QueryWrapper<>(); + qw.groupBy("STCD"); + qw.select("STCD"); + //第一次初始化执行 + List list = zgRainDataMapper.selectList(qw); + list.forEach(i -> { + QueryWrapper selectQwId = new QueryWrapper<>(); + selectQwId.orderByAsc("TM"); + selectQwId.last("limit 0,1"); + selectQwId.eq("STCD", i.getSTCD()); + List stRealDataList = zgRainDataMapper.selectList(selectQwId); + if (CollUtil.isNotEmpty(stRealDataList)) { + ZgRainData entity = stRealDataList.get(0); + PtReceiveBaseModel model = RealTimeSerializer.objectToRealMap(entity); + if (null == model) { + return; + } else { + redis.set(name.concat(StringPool.COLON).concat(model.getSt()), entity); + //发送mq + log.info("发送数据:{},点位:{},具体数据:{}", name, model.getSt(), JSONObject.toJSONString(model)); + rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); + } + } + }); + } + } catch (Exception e) { + log.error("发生错误:{},e:{}", "紫光雨量数据", e.getStackTrace()); + } } + } diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java new file mode 100644 index 0000000..0a3ec2d --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/ZgRainData.java @@ -0,0 +1,40 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @program: newfiber-data-adapter + * @description: 紫光雨量数据 + * @author: djt + * @create: 2022-04-26 20:26 + **/ +@Data +@TableName("zg_rainfall_data") +@ApiModel(value = "紫光雨量数据对象", description = "紫光雨量数据对象") +public class ZgRainData implements Serializable { + @TableField(value = "STCD") + @JSONField(name = "st") + private String STCD; + @TableField(value = "STNM") + @JSONField(serialize = false) + private String STNM; + @TableField(value = "DRP") + @JSONField(name = "p1") + private BigDecimal DRP; + @TableField(value = "TM") + @JSONField(name = "tt", format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date TM; + @TableField(exist = false) + @JSONField(name = "pt") + private BigDecimal pt=BigDecimal.ZERO; +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java new file mode 100644 index 0000000..2b65029 --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ZgRainDataMapper.java @@ -0,0 +1,15 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springnewfiber.dataadapter.sswj.entity.ZgRainData; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-04-26 20:32 + **/ +@Mapper +public interface ZgRainDataMapper extends BaseMapper { +} diff --git a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java index fa9bc5e..863a4f0 100644 --- a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java @@ -27,13 +27,13 @@ private final HpAction hpAction; private final YlAction ylAction; private final ZsAction zsAction; -// @Scheduled(cron = "0 0/1 * * * ?") + @Scheduled(cron = "0 0/1 * * * ?") public void synchronize() { bzAction.list(); gqAction.list(); hdAction.list(); hpAction.list(); - ylAction.list(); +// ylAction.list(); zsAction.list(); } } 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 0f0473c..f034a84 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 @@ -18,6 +18,7 @@ import org.springnewfiber.dataadapter.ziguang.yl.util.RainfallAccumulationUtil; import java.math.BigDecimal; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; @@ -71,6 +72,46 @@ }); } +// private void realTimeHourData(YlDto realYl) { +// Map childPramMap = Maps.newHashMap(); +// childPramMap.put("stcd", realYl.getSTCD()); +// childPramMap.put("addvcd", "420113"); +// childPramMap.put("drp", "1"); +// childPramMap.put("daydrp", ""); +// childPramMap.put("type", ""); +// Map listByPramMap = ImmutableMap.of("searchFilters", childPramMap); +// HttpRequest request = loginAction.getPostAuthRequest(ziGuangConfig.getYl().getOneHourUrl()); +// request.body(JSONObject.toJSONString(listByPramMap)); +// HttpResponse response = request.execute(); +// log.info("单个雨量小时数据:stcd:{},数据:{}", realYl.getSTCD(), response.body()); +// List list = JSONObject.parseArray(response.body(), YlDto.class); +// if (CollectionUtil.isNotEmpty(list)) { +// Boolean flag = bladeRedis.exists("yl:" + realYl.getSTCD()); +// List newList = CollectionUtil.reverseNew(list); +// newList.forEach(i -> { +// YlDto dto = new YlDto(); +// if ((flag && (dto = bladeRedis.get("yl:" + realYl.getSTCD())) != null && dto.getTM().before(i.getTM())) || !flag) { +// i.setCountPt(dto.getCountPt().add(new BigDecimal(i.getDRP()))); +// +// } else if () { +// +// } +// }); +// } +// } + +// private void checkTime(YlDto redisDto, YlDto nowDto) { +// Date redisDtoTM = redisDto.getTM(); +// Date nowDtoTm = nowDto.getTM(); +// Calendar redisC= Calendar.getInstance(); +// redisC.setTime(redisDtoTM); +// Calendar nowDtoC= Calendar.getInstance(); +// nowDtoC.setTime(nowDtoTm); +// if (redisDtoTM.before(nowDtoTm)&&redisC.get) { +// +// } +// } + /** * 获取实时数据 * diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index f78c9fc..6507551 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -84,10 +84,10 @@ # realurl: http://58.49.51.33:8081/iwp/dynamic/hd/rvnm_order/list realurl: http://58.49.51.33:8081/iwp/dynamic/hd/wh_daylive/list login: - username: data-service1 - password: data-service11 -# username: data-service2 -# password: data-service212345678 +# username: data-service1 +# password: data-service11 + username: data-service2 + password: data-service212345678 loginurl: http://58.49.51.33:8081/jkfc/user/login #rabbitmq: # exchange: amq.topic