| | |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.MessageUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | @Autowired |
| | | private SubTablePageInfoService subService; |
| | | |
| | | @Autowired |
| | | @Lazy |
| | | private StationInfService stationInfService; |
| | | |
| | | //查询所有的告警 |
| | | public Response getAll() { |
| | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 这里面的层级比getByLevel的层级要多一个层级,StationnName5,通过Map<String,levelMap> |
| | | * @param userId |
| | | * @return 返回的结构示例为: |
| | | * { |
| | | * "1号线": { |
| | | * "level1":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * }, |
| | | * "level2":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * }, |
| | | * "level3":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * }, |
| | | * "level4":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * } |
| | | * }, |
| | | * "2号线": { |
| | | * "level1":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * }, |
| | | * "level2":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * }, |
| | | * "level3":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * }, |
| | | * "level4":{ |
| | | * battAlarmCount: 0, |
| | | * deviceAlarmCount: 0, |
| | | * powerAlarmCount: 0 |
| | | * } |
| | | * } |
| | | * |
| | | * 步骤: |
| | | * 1) 查询所有的区县 |
| | | * 2) 获取包含告警级别,区县的电池列表 |
| | | * 3) 根据区县分组 |
| | | * |
| | | * } |
| | | */ |
| | | public Response getByLevelAndStationName5(int userId) { |
| | | //返回的结果结构初始化 |
| | | Map<String,Map<String,AlarmCountDTO>> subwayLineLevelMap = new LinkedHashMap<>(); |
| | | //查询所有的区县 |
| | | List<String> stationName5List = (List<String>) stationInfService.searchAllStationName5(userId,null,null).getData(); |
| | | List<BattalarmData> battAlarmListAll = getLevelListByUserId(userId); |
| | | List<DevalarmData> deviceAlarmListAll = devalarmDataMapper.getLevelListByUserId(userId); |
| | | List<PwrdevAlarm> powerAlarmListAll = pwrdevAlarmMapper.getLevelListByUserId(userId); |
| | | |
| | | for (String stationName5 : stationName5List) { |
| | | |
| | | Map<String,AlarmCountDTO> levelMap = new HashMap<>(); |
| | | AlarmCountDTO alarmCount1 = new AlarmCountDTO(); |
| | | AlarmCountDTO alarmCount2 = new AlarmCountDTO(); |
| | | AlarmCountDTO alarmCount3 = new AlarmCountDTO(); |
| | | AlarmCountDTO alarmCount4 = new AlarmCountDTO(); |
| | | |
| | | //电池 |
| | | List<BattalarmData> battAlarmList = battAlarmListAll.stream().filter(battalarmData -> battalarmData.getStationName5().equals(stationName5)).collect(Collectors.toList()); |
| | | int battAlarmCountLevel1 = 0; |
| | | int battAlarmCountLevel2 = 0; |
| | | int battAlarmCountLevel3 = 0; |
| | | int battAlarmCountLevel4 = 0; |
| | | for (BattalarmData battalarmData : battAlarmList) { |
| | | Integer almLevel = battalarmData.getAlmLevel(); |
| | | if(almLevel == 1){ |
| | | battAlarmCountLevel1++; |
| | | } |
| | | else if(almLevel == 2){ |
| | | battAlarmCountLevel2++; |
| | | } |
| | | else if(almLevel == 3){ |
| | | battAlarmCountLevel3++; |
| | | } |
| | | else if(almLevel == 4){ |
| | | battAlarmCountLevel4++; |
| | | } |
| | | } |
| | | alarmCount1.setBattAlarmCount(battAlarmCountLevel1); |
| | | alarmCount2.setBattAlarmCount(battAlarmCountLevel2); |
| | | alarmCount3.setBattAlarmCount(battAlarmCountLevel3); |
| | | alarmCount4.setBattAlarmCount(battAlarmCountLevel4); |
| | | //设备 |
| | | List<DevalarmData> deviceAlarmList = deviceAlarmListAll.stream().filter(devalarmData -> devalarmData.getStationName5().equals(stationName5)).collect(Collectors.toList()); |
| | | int deviceAlarmCountLevel1 = 0; |
| | | int deviceAlarmCountLevel2 = 0; |
| | | int deviceAlarmCountLevel3 = 0; |
| | | int deviceAlarmCountLevel4 = 0; |
| | | for (DevalarmData deviceAlarmData : deviceAlarmList) { |
| | | Integer almLevel = deviceAlarmData.getAlmLevel(); |
| | | if(almLevel == 1){ |
| | | deviceAlarmCountLevel1++; |
| | | } |
| | | else if(almLevel == 2){ |
| | | deviceAlarmCountLevel2++; |
| | | } |
| | | else if(almLevel == 3){ |
| | | deviceAlarmCountLevel3++; |
| | | } |
| | | else if(almLevel == 4){ |
| | | deviceAlarmCountLevel4++; |
| | | } |
| | | } |
| | | alarmCount1.setDeviceAlarmCount(deviceAlarmCountLevel1); |
| | | alarmCount2.setDeviceAlarmCount(deviceAlarmCountLevel2); |
| | | alarmCount3.setDeviceAlarmCount(deviceAlarmCountLevel3); |
| | | alarmCount4.setDeviceAlarmCount(deviceAlarmCountLevel4); |
| | | //电源 |
| | | List<PwrdevAlarm> powerAlarmList = powerAlarmListAll.stream().filter(pwrdevAlarm -> pwrdevAlarm.getStationName5().equals(stationName5)).collect(Collectors.toList()); |
| | | int powerAlarmCountLevel1 = 0; |
| | | int powerAlarmCountLevel2 = 0; |
| | | int powerAlarmCountLevel3 = 0; |
| | | int powerAlarmCountLevel4 = 0; |
| | | for (PwrdevAlarm powerAlarmData : powerAlarmList) { |
| | | Integer almLevel = powerAlarmData.getAlmLevel(); |
| | | if(almLevel == 1){ |
| | | powerAlarmCountLevel1++; |
| | | } |
| | | else if(almLevel == 2){ |
| | | powerAlarmCountLevel2++; |
| | | } |
| | | else if(almLevel == 3){ |
| | | powerAlarmCountLevel3++; |
| | | } |
| | | else if(almLevel == 4){ |
| | | powerAlarmCountLevel4++; |
| | | } |
| | | } |
| | | alarmCount1.setPowerAlarmCount(powerAlarmCountLevel1); |
| | | alarmCount2.setPowerAlarmCount(powerAlarmCountLevel2); |
| | | alarmCount3.setPowerAlarmCount(powerAlarmCountLevel3); |
| | | alarmCount4.setPowerAlarmCount(powerAlarmCountLevel4); |
| | | |
| | | levelMap.put("level1",alarmCount1); |
| | | levelMap.put("level2",alarmCount2); |
| | | levelMap.put("level3",alarmCount3); |
| | | levelMap.put("level4",alarmCount4); |
| | | subwayLineLevelMap.put(stationName5,levelMap); |
| | | |
| | | } |
| | | return new Response().set(1,subwayLineLevelMap); |
| | | |
| | | } |
| | | |
| | | private List<BattalarmData> getLevelListByUserId(int userId) { |
| | | return mapper.getLevelListByUserId(userId); |
| | | } |