From 256851a621c1f71eaecdfdcb7ef3c3e4fdce21c2 Mon Sep 17 00:00:00 2001
From: elkers <elkers@163.com>
Date: 星期三, 23 四月 2025 11:21:38 +0800
Subject: [PATCH] 添加启泵记录

---
 src/main/java/com/nanjing/water/service/DataUploadRecordService.java |   50 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/nanjing/water/service/DataUploadRecordService.java b/src/main/java/com/nanjing/water/service/DataUploadRecordService.java
index 71c95c4..5b7d954 100644
--- a/src/main/java/com/nanjing/water/service/DataUploadRecordService.java
+++ b/src/main/java/com/nanjing/water/service/DataUploadRecordService.java
@@ -86,6 +86,8 @@
     private StringRedisTemplate redisTemplate;
     @Autowired
     private ObjectMapper objectMapper;
+    @Autowired
+    private WaterPumpOperatingRecordMapperImpl waterPumpOperatingRecordMapper;
 
     public ExecutedResult<Long> create(ReqCreateDataUploadRecord request) {
         // 转换po
@@ -331,11 +333,12 @@
 
             List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList();
             List<WaterFacilityParameterPO> parameterPOList = waterFacilityParameterMapper.getList();
+            List<WaterPumpOperatingRecordPO> recordPOList = waterPumpOperatingRecordMapper.getList();
             //获取存入redis每天开始的启泵次数
-            List<FacilityParameterDataVO> dataVOList=new ArrayList<>();
+            List<WaterPumpOperatingRecordPO>dataVOList=new ArrayList<>();
             String objects = redisTemplate.opsForValue().get("pump_start_number");
             if(StringUtil.isNotNullOrEmpty(objects)){
-                dataVOList= SerializeUtil.toListObject(objects, FacilityParameterDataVO.class);
+                dataVOList= SerializeUtil.toListObject(objects, WaterPumpOperatingRecordPO.class);
             }
 
             // List<AlarmHistoryPO> historyPOList = alarmHistoryMapper.getList();
@@ -409,11 +412,17 @@
                             break;
                         case "B001StartNumber":
                             //1号泵启泵次数
-                            startNumber(facilityPO,parameterPO1, vo.getValue(),dataVOList);
+                            startNumber(facilityPO,parameterPO1, recordPOList,dataVOList);
                             break;
                         case "B002StartNumber":
                             //2号泵启泵次数
-                            startNumber(facilityPO,parameterPO1, vo.getValue(),dataVOList);
+                            startNumber(facilityPO,parameterPO1, recordPOList,dataVOList);
+                            break;
+                        case "B001Start":
+                            waterPumpStartNumber(recordPOList,facilityPO,"B001StartNumber", vo.getValue());
+                            break;
+                        case "B002Start":
+                            waterPumpStartNumber(recordPOList,facilityPO,"B002StartNumber", vo.getValue());
                             break;
                     }
                 }
@@ -423,7 +432,25 @@
         }
 
     }
-
+      public void waterPumpStartNumber(List<WaterPumpOperatingRecordPO> recordPOList,WaterFacilityPO facility,String key,String value){
+           if("true".equals(value)){
+               WaterPumpOperatingRecordPO recordPO = recordPOList.stream().filter(item -> item.getFacilityId().equals(facility.getId()) && item.getCode().equals(key)).findFirst().orElse(null);
+               if(Objects.nonNull(recordPO)){
+                   recordPO.setStartNumber(recordPO.getStartNumber()+1);
+                   recordPO.setLastTime(LocalDateTimeUtil.nowDateTimeStr());
+                   waterPumpOperatingRecordMapper.updateById(recordPO);
+               }else {
+                   recordPO=new WaterPumpOperatingRecordPO();
+                   recordPO.setPointId(facility.getPointId());
+                   recordPO.setFacilityId(facility.getId());
+                   recordPO.setCode(key);
+                   recordPO.setStartNumber(1);
+                   recordPO.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
+                   recordPO.setLastTime(LocalDateTimeUtil.nowDateTimeStr());
+                   waterPumpOperatingRecordMapper.insert(recordPO);
+               }
+           }
+      }
      public void QFCreateAlarm(WaterFacilityPO facilityPO,WaterFacilityParameterPO parameterPO,String value, Gson gson,BigDecimal delayTime) throws MqttException {
         if(value.equals("false")){
                 alarmHistoryMapper.deleteList(parameterPO.getFacilityId(),parameterPO.getColumnsCode());
@@ -483,12 +510,15 @@
         }
     }
 
-    public void startNumber(WaterFacilityPO facilityPO,WaterFacilityParameterPO parameterPO,String value,List<FacilityParameterDataVO> dataVOList){
+    public void startNumber(WaterFacilityPO facilityPO,WaterFacilityParameterPO parameterPO,List<WaterPumpOperatingRecordPO> value,List<WaterPumpOperatingRecordPO> dataVOList){
         if(ListUtil.isNotNullOrEmpty(dataVOList)){
-            FacilityParameterDataVO facilityParameterDataVO = dataVOList.stream().filter(item -> item.getFacilityCode().equals(facilityPO.getFacilityCode()) && item.getColumnsCode().equals(parameterPO.getColumnsCode())).findFirst().orElse(null);
-            if(Objects.nonNull(facilityParameterDataVO)){
-                Integer columnsValue = Integer.valueOf(facilityParameterDataVO.getColumnValue());
-                Integer value1 = Integer.valueOf(value);
+            //获取缓存启泵次数
+            WaterPumpOperatingRecordPO WaterPumpOperatingRecordPO = dataVOList.stream().filter(item -> item.getFacilityId().equals(facilityPO.getId()) && item.getCode().equals(parameterPO.getColumnsCode())).findFirst().orElse(null);
+            //获取实时启泵次数
+           WaterPumpOperatingRecordPO recordPO = value.stream().filter(item -> item.getFacilityId().equals(facilityPO.getId()) && item.getCode().equals(parameterPO.getColumnsCode())).findFirst().orElse(null);
+            if(Objects.nonNull(WaterPumpOperatingRecordPO)&&Objects.nonNull(recordPO)){
+                Integer columnsValue = Integer.valueOf(WaterPumpOperatingRecordPO.getStartNumber());
+                Integer value1 = Integer.valueOf(recordPO.getStartNumber());
                 Integer dataNumber=value1-columnsValue;
                 alarmHistoryMapper.deleteList(parameterPO.getFacilityId(),parameterPO.getColumnsCode());
                 if(dataNumber>5){

--
Gitblit v1.9.3