whycxzp
2025-04-02 241ecdb5198a066bcc56f310605ce6942b44ac69
src/main/java/com/whyc/schedule/BattStationTempScheduleService.java
@@ -116,19 +116,30 @@
                    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 {