|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (Device device:devices) { | 
|---|
|  |  |  | AlarmInfo alarmInfo = new AlarmInfo(); | 
|---|
|  |  |  | Map<String,Object> alarmInfoMap = new HashMap<>(); | 
|---|
|  |  |  | alarmInfo.setAlarmTime(alarmDate); | 
|---|
|  |  |  | alarmInfoMap.put("alarmTime",alarmTime); | 
|---|
|  |  |  | int deviceId = device.getId(); | 
|---|
|  |  |  | alarmInfo.setDeviceId(deviceId); | 
|---|
|  |  |  | alarmInfoMap.put("deviceId",deviceId); | 
|---|
|  |  |  | String timeUtils = alarmTime.replace("-",""); | 
|---|
|  |  |  | timeUtils = timeUtils.substring(0,6); | 
|---|
|  |  |  | String mac = device.getMac(); | 
|---|
|  |  |  | List<HistoryHourly> historyHourlys = null; | 
|---|
|  |  |  | historyHourlys = historyHourlyService.getValueByMacAndTime(device.getMac(), nearDate, nearDate); | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "站点["+device.getName()+"][PM2.5]浓度值["+PM2_5+"]超过限定的标准值[75]"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM2_5"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超限"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Double previousPM2_5 = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"]["+beforTime+"][PM2.5]浓度值["+PM2_5+"]超过上小时的浓度["+previousPM2_5+"]的"+multiple+"倍"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM2_5"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","突然高"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | sysAreaQueryWrapper.eq("area_code",cityCode); | 
|---|
|  |  |  | SysArea sysArea = sysAreaMapper.selectOne(sysAreaQueryWrapper); | 
|---|
|  |  |  | alarmInfo.setIndex("PM2_5"); | 
|---|
|  |  |  | alarmInfo.setAlarmType("超过市区均值"+multiple+"%"); | 
|---|
|  |  |  | alarmInfo.setAlarmType("超过市区均值"+percentage+"%"); | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][PM2.5]浓度值["+PM2_5+"]超过["+sysArea.getAreaName()+"]均值["+cityAqiPM2_5+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM2_5"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过市区均值"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | sysAreaQueryWrapper.eq("guid",guid); | 
|---|
|  |  |  | GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectOne(sysAreaQueryWrapper); | 
|---|
|  |  |  | alarmInfo.setIndex("PM2_5"); | 
|---|
|  |  |  | alarmInfo.setAlarmType("超过国控站"+multiple+"%"); | 
|---|
|  |  |  | alarmInfo.setAlarmType("超过国控站"+percentage+"%"); | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][PM2.5]浓度值["+PM2_5+"]超过["+govMonitorPoint.getName()+"]均值["+govMonitorPointPM2_5+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM2_5"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过国控站"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "站点["+device.getName()+"][PM10]浓度值["+PM10+"]超过限定的标准值[150]"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM10"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超限"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Double previousPM10 = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"]["+beforTime+"][PM10]浓度值["+PM10+"]超过上小时的浓度["+previousPM10+"]的"+multiple+"倍"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM10"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","突然高"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][PM10]浓度值["+PM10+"]超过["+sysArea.getAreaName()+"]均值["+cityAqiPM10+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM10"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过市区均值"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][PM10]浓度值["+PM10+"]超过["+govMonitorPoint.getName()+"]均值["+govMonitorPointPM10+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","PM10"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过国控站"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "站点["+device.getName()+"][SO2]浓度值["+SO2+"]超过限定的标准值[75]"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","SO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超限"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Double previousSO2 = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"]["+beforTime+"][SO2]浓度值["+SO2+"]超过上小时的浓度["+previousSO2+"]的"+multiple+"倍"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","SO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超突然高"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][SO2]浓度值["+SO2+"]超过["+sysArea.getAreaName()+"]均值["+cityAqiSO2+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","SO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过市区均值"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][SO2]浓度值["+SO2+"]超过["+govMonitorPoint.getName()+"]均值["+govMonitorPointSO2+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","SO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过国控站"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "站点["+device.getName()+"][NO2]浓度值["+NO2+"]超过限定的标准值[75]"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","NO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超限"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Double previousNO2 = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"]["+beforTime+"][NO2]浓度值["+NO2+"]超过上小时的浓度["+previousNO2+"]的"+multiple+"倍"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","NO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","突然高"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][NO2]浓度值["+NO2+"]超过["+sysArea.getAreaName()+"]均值["+cityAqiNO2+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","NO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过市区均值"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][NO2]浓度值["+NO2+"]超过["+govMonitorPoint.getName()+"]均值["+govMonitorPointNO2+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","NO2"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过国控站"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "站点["+device.getName()+"][CO]浓度值["+CO+"]超过限定的标准值[75]"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","CO"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超限"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Double previousCO = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"]["+beforTime+"][CO]浓度值["+CO+"]超过上小时的浓度["+previousCO+"]的"+multiple+"倍"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","CO"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","突然高"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][CO]浓度值["+CO+"]超过["+sysArea.getAreaName()+"]均值["+cityAqiCO+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","CO"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过市区均值"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][CO]浓度值["+CO+"]超过["+govMonitorPoint.getName()+"]均值["+govMonitorPointCO+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","CO"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过国控站"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "站点["+device.getName()+"][O3]浓度值["+O3+"]超过限定的标准值[75]"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","O3"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超限"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Double previousO3 = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"]["+beforTime+"][O3]浓度值["+O3+"]超过上小时的浓度["+previousO3+"]的"+multiple+"倍"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","O3"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","突然高"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][O3]浓度值["+O3+"]超过["+sysArea.getAreaName()+"]均值["+cityAqiO3+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","O3"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过市区均值"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | String alarmInformation = "["+device.getName()+"][O3]浓度值["+O3+"]超过["+govMonitorPoint.getName()+"]均值["+govMonitorPointO3+"]的"+percentage+"%"; | 
|---|
|  |  |  | alarmInfo.setAlarmInformation(alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insert(alarmInfo); | 
|---|
|  |  |  | alarmInfoMap.put("index","O3"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmType","超过国控站"+percentage+"%"); | 
|---|
|  |  |  | alarmInfoMap.put("alarmInformation",alarmInformation); | 
|---|
|  |  |  | alarmInfoMapper.insertAlarmInfo(timeUtils, alarmInfoMap); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|