From 6a49247e27307c35bc8e4dd4ce368c7d8850318a Mon Sep 17 00:00:00 2001 From: liulin <lin.liu@88.com> Date: 星期日, 27 四月 2025 11:06:46 +0800 Subject: [PATCH] 修改运行状态判断 --- src/main/java/com/nanjing/water/service/DataUploadRecordService.java | 76 ++++++++++++++++++++++++++++++-------- 1 files changed, 60 insertions(+), 16 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..9a82468 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(); @@ -359,17 +362,16 @@ //循环上报数据 for(CountVO vo:entry.getValue()){ //保存数据 +// if(vo.getCode().equals("B001Time")||vo.getCode().equals("B002Time")){ +// if(vo.) +// } WaterFacilityParameterPO parameterPO1 = parameterPOList.stream().filter(item -> item.getFacilityId().equals(facilityPO.getId()) && item.getColumnsCode().equals(vo.getCode())).findFirst().orElse(null); if(Objects.nonNull(parameterPO1)){ parameterPO1.setColumnValue(vo.getValue()); parameterPO1.setLastTime(asJsonObject); - parameterList.add(parameterPO1); + } - //判断报警 - // AlarmHistoryPO alarmHistoryPO=null; -// if(ListUtil.isNotNullOrEmpty(historyPOList)){ -// alarmHistoryPO = historyPOList.stream().filter(item -> item.getFacilityId().equals(parameterPO1.getFacilityId()) && item.getCode().equals(parameterPO1.getColumnsCode()) && item.getIsSolve() == 0).findFirst().orElse(null); -// } + switch (vo.getCode()){ case "QF1": //1号空开吸合关闭报警 @@ -409,13 +411,20 @@ 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 "B001Run": + waterPumpStartNumber(recordPOList,facilityPO,"B001Run", vo.getValue()); + break; + case "B002Run": + waterPumpStartNumber(recordPOList,facilityPO,"B002Run", vo.getValue()); break; } + parameterList.add(parameterPO1); } waterFacilityParameterMapper.updateById(parameterList); @@ -423,7 +432,39 @@ } } - + public void waterPumpStartNumber(List<WaterPumpOperatingRecordPO> recordPOList,WaterFacilityPO facility,String key,String value){ + WaterPumpOperatingRecordPO recordPO = recordPOList.stream().filter(item -> item.getFacilityId().equals(facility.getId()) && item.getCode().equals(key)).findFirst().orElse(null); + if("true".equals(value)){ + if(Objects.nonNull(recordPO)){ + if(recordPO.getStart().equals("false")){ + recordPO.setStartNumber(recordPO.getStartNumber()+1); + } + recordPO.setLastTime(LocalDateTimeUtil.nowDateTimeStr()); + recordPO.setStart("true"); + recordPO.setStartTime(recordPO.getStartTime()+3); + recordPO.setSumStartTime(recordPO.getSumStartTime()+3); + waterPumpOperatingRecordMapper.updateById(recordPO); + }else { + recordPO=new WaterPumpOperatingRecordPO(); + recordPO.setPointId(facility.getPointId()); + recordPO.setFacilityId(facility.getId()); + recordPO.setCode(key); + recordPO.setStartNumber(1); + recordPO.setStartTime(3); + recordPO.setSumStartTime(3); + recordPO.setStart("true"); + recordPO.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); + recordPO.setLastTime(LocalDateTimeUtil.nowDateTimeStr()); + waterPumpOperatingRecordMapper.insert(recordPO); + } + }else { + if(Objects.nonNull(recordPO)){ + recordPO.setStartTime(0); + recordPO.setStart("false"); + waterPumpOperatingRecordMapper.updateById(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 +524,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