elkers
6 天以前 01136df34a1d8edb6972bbec725b656a602b83af
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,29 @@
                            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,"B001Start", vo.getValue());
                            break;
                        case "B002Start":
                            waterPumpStartNumber(recordPOList,facilityPO,"B002Start", vo.getValue());
                            break;
//                        case "B001Time":
//
//                            break;
//                        case "B002Time":
//                            break;
//                        case "B001TimeSum":
//                            break;
//                        case "B002TimeSum":
//                            break;
                    }
                    parameterList.add(parameterPO1);
                }
                waterFacilityParameterMapper.updateById(parameterList);
@@ -423,7 +441,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 +533,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){