whycxzp
2025-06-10 73bb5617e6aeb4ee8f7dfd4ad54b61d477969d86
src/main/java/com/whyc/schedule/BattStationTempScheduleService.java
@@ -49,7 +49,7 @@
    /**
     * 温度实时
     * */
    //@Scheduled(fixedRate = 4000,initialDelay = 2000)
    @Scheduled(fixedRate = 4000,initialDelay = 2000)
    public void startRecordAndCheck(){
        List<BattCamera> ipInfoList = HikTempUtil.cameraInfoList;
        List<PageParam> tempParmList = paramService.getTempParmList();
@@ -116,21 +116,32 @@
                    if(alarmInDB != null){ // TODO 校验温度点位和逻辑,很重要!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                        //如果存在,同时当前温度大于2级,则更新温度和告警等级
                        if(battStationTemp.getMaxTemp()>=level2AlarmTemp){
                            //温度相同,查看下告警等级是否一样
                            //温度相同,查看下告警等级是否需要调整
                            //查看数据库内温度的告警等级和当前级别是否一致
                            if(alarmInDB.getTemp().floatValue() == battStationTemp.getMaxTemp()){
                                if((alarmInDB.getTemp().floatValue() == level2AlarmTemp
                                        && alarmInDB.getLevel() == 2)
                                        ||
                                    (alarmInDB.getTemp().floatValue() == level1AlarmTemp
                                            && alarmInDB.getLevel() == 1)
                                ){
                                Float temp = alarmInDB.getTemp();
                                int levelInDB = alarmInDB.getLevel();
                                int levelNow;
                                if(temp>=level1AlarmTemp){
                                    levelNow = 1;
                                }else{
                                    levelNow = 2;
                                }
                                }else{ //告警等级不同,调整告警等级
                               if(levelInDB != levelNow){ //告警等级不同,调整告警等级
                                    BattStationTempAlarm alarm = new BattStationTempAlarm();
                                    alarm.setLevel(alarmInDB.getLevel()==1?2:1);
                                    alarm.setId(alarmInDB.getId());
                                    if(!alarmInDB.getMaxTempPoint().equals(battStationTemp.getMaxTempPoint())){
                                        alarm.setMaxTempPoint(battStationTemp.getMaxTempPoint());
                                    }
                                    alarmService.updateById(alarm);
                                }
                                }else if(!alarmInDB.getMaxTempPoint().equals(battStationTemp.getMaxTempPoint())){ //告警等级相同,最大温度点位不同则更新点位
                                   BattStationTempAlarm alarm = new BattStationTempAlarm();
                                   alarm.setId(alarmInDB.getId());
                                   alarm.setMaxTempPoint(battStationTemp.getMaxTempPoint());
                                   alarmService.updateById(alarm);
                               }
                            }
                            //温度不同
@@ -143,6 +154,9 @@
                                } else {
                                    alarm.setLevel(2);
                                }
                                if(!alarmInDB.getMaxTempPoint().equals(battStationTemp.getMaxTempPoint())){
                                    alarm.setMaxTempPoint(battStationTemp.getMaxTempPoint());
                                }
                                alarmService.updateById(alarm);
                            }
                        }else {