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 b8904aa..67802e6 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java @@ -6,7 +6,6 @@ import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; -import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -15,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.config.R; import org.springnewfiber.dataadapter.entity.MqNodeData; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; @@ -40,6 +40,7 @@ @Slf4j public class MonitorDataController { private final RabbitTemplate rabbitTemplate; + private final BladeRedis redis; @Value("${business.hankouSaveUrl}") private String hankouSaveUrl; @@ -67,6 +68,9 @@ DTO = JSONObject.parseArray(data, MonitorMeteorologicalData.class); } else if (xfDataEnum == XfDataEnum.PptnData) { DTO = JSONObject.parseArray(data, MonitorPptnData.class); + DTO.forEach(i->{ + checkSet((MonitorPptnData) i); + }); } else if (xfDataEnum == XfDataEnum.PumpData) { DTO = JSONObject.parseArray(data, MonitorPumpData.class); } else if (xfDataEnum == XfDataEnum.RiverData) { @@ -98,6 +102,19 @@ } } + private void checkSet(MonitorPptnData pptnData) { + String st = pptnData.getStcd(); + Date tm = pptnData.getTm(); + MonitorPptnData old; + if (redis.exists(st) && (old = redis.get(st)) != null && tm.compareTo(old.getTm()) > 0) { + pptnData.setPt(old.getPt().add(pptnData.getDrp())); + redis.set(pptnData.getStcd(), pptnData); + } else if (!redis.exists(st)) { + redis.set(pptnData.getStcd(), pptnData); + } + + } + private PtReceiveBaseModel build(MonitorForcastData DTO) { PtReceiveBaseModel model = new PtReceiveBaseModel(); Map dataMap = Maps.newHashMap(); 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 b8904aa..67802e6 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/controller/MonitorDataController.java @@ -6,7 +6,6 @@ import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; -import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -15,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.config.BladeRedis; import org.springnewfiber.dataadapter.config.R; import org.springnewfiber.dataadapter.entity.MqNodeData; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; @@ -40,6 +40,7 @@ @Slf4j public class MonitorDataController { private final RabbitTemplate rabbitTemplate; + private final BladeRedis redis; @Value("${business.hankouSaveUrl}") private String hankouSaveUrl; @@ -67,6 +68,9 @@ DTO = JSONObject.parseArray(data, MonitorMeteorologicalData.class); } else if (xfDataEnum == XfDataEnum.PptnData) { DTO = JSONObject.parseArray(data, MonitorPptnData.class); + DTO.forEach(i->{ + checkSet((MonitorPptnData) i); + }); } else if (xfDataEnum == XfDataEnum.PumpData) { DTO = JSONObject.parseArray(data, MonitorPumpData.class); } else if (xfDataEnum == XfDataEnum.RiverData) { @@ -98,6 +102,19 @@ } } + private void checkSet(MonitorPptnData pptnData) { + String st = pptnData.getStcd(); + Date tm = pptnData.getTm(); + MonitorPptnData old; + if (redis.exists(st) && (old = redis.get(st)) != null && tm.compareTo(old.getTm()) > 0) { + pptnData.setPt(old.getPt().add(pptnData.getDrp())); + redis.set(pptnData.getStcd(), pptnData); + } else if (!redis.exists(st)) { + redis.set(pptnData.getStcd(), pptnData); + } + + } + private PtReceiveBaseModel build(MonitorForcastData DTO) { PtReceiveBaseModel model = new PtReceiveBaseModel(); Map dataMap = Maps.newHashMap(); 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 91cfb06..d20843b 100644 --- a/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java +++ b/src/main/java/org/springnewfiber/dataadapter/xf/entity/MonitorPptnData.java @@ -21,4 +21,7 @@ @JsonProperty(value ="intv") @ApiModelProperty(value = "时段长") private BigDecimal intv; + @JsonProperty(value ="pt") + @ApiModelProperty(value = "内存统计") + private BigDecimal pt=BigDecimal.ZERO; }