| | |
| | | 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() { |
| | |
| | | wrapper.eq("num",num); |
| | | flag=mapper.update((BattalarmData) ActionUtil.objeNull,wrapper); |
| | | } |
| | | return new Response().set(flag); |
| | | return new Response().set(1,true,"批量确认告警"); |
| | | } |
| | | //电池告警实时查询(删除告警) |
| | | public Response delete(int num) { |
| | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 这里面的层级比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); |
| | | } |
| | |
| | | 119007 13 单体内阻高告警 默认关闭 |
| | | 14 单体内阻低告警 默认关闭 |
| | | */ |
| | | List battList=new ArrayList(); |
| | | /*List battList=new ArrayList(); |
| | | battList.add(119001); |
| | | battList.add(119002); |
| | | battList.add(119004); |
| | |
| | | QueryWrapper battWrapper=new QueryWrapper(); |
| | | battWrapper.eq("BattGroupId",battGroupId); |
| | | battWrapper.in("alm_id",battList); |
| | | List<BattalarmData> battAlm=mapper.selectList(battWrapper); |
| | | List<BattalarmData> battAlm=mapper.selectList(battWrapper);*/ |
| | | |
| | | //查询是否存在设备告警 |
| | | /* 119020 |
| | |
| | | */ |
| | | List devList=new ArrayList(); |
| | | devList.add(119020); |
| | | devList.add(618501); |
| | | //devList.add(618501); |
| | | devList.add(618502); |
| | | devList.add(618503); |
| | | devList.add(618504); |
| | | devList.add(618505); |
| | | //devList.add(618503); |
| | | //devList.add(618504); |
| | | //devList.add(618505); |
| | | QueryWrapper devWrapper=new QueryWrapper(); |
| | | devWrapper.eq("dev_id",devId); |
| | | devWrapper.in("alm_type",devList); |
| | | List<DevalarmData> devAlm=devalarmDataMapper.selectList(devWrapper); |
| | | map.put("battAlm",battAlm.size()); |
| | | map.put("battAlm",0); |
| | | map.put("devAlm",devAlm.size()); |
| | | return new Response().set(1,map,"61853检测是否存在告警"); |
| | | } |
| | | //插入初始数据 |
| | | public void setDefalut( Map<String,Object> map){ |
| | | Map<String,Object> levelMap=new HashMap<>(); |
| | | Map<Integer,Object> map1=new HashMap<>(); |
| | | map1.put(1,0); |
| | | map1.put(2,0); |
| | | map1.put(3,0); |
| | | map1.put(4,0); |
| | | levelMap.put("3",map1); |
| | | levelMap.put("5",map1); |
| | | levelMap.put("6",map1); |
| | | levelMap.put("7",map1); |
| | | levelMap.put("8",map1); |
| | | map.put("level",levelMap); |
| | | Map<String,Object> typelMap=new HashMap<>(); |
| | | Map<String,Object> map2=new HashMap<>(); |
| | | map2.put("在线电压告警",0); |
| | | map2.put("组端电压告警",0); |
| | | map2.put("充电电流告警",0); |
| | | map2.put("放电电流告警",0); |
| | | map2.put("单体电压告警",0); |
| | | map2.put("单体温度告警",0); |
| | | map2.put("单体内阻告警",0); |
| | | typelMap.put("3",map2); |
| | | typelMap.put("5",map2); |
| | | typelMap.put("6",map2); |
| | | typelMap.put("7",map2); |
| | | typelMap.put("8",map2); |
| | | map.put("type",typelMap); |
| | | } |
| | | //2.统计电池告警 |
| | | public Response getAllBattAlarmInSz2(Integer userId) { |
| | | Map<String,Object> map=new HashMap<>(); |
| | | Map<Integer,Integer> allLevelmap=new HashMap<>(); |
| | | Map<String,Integer> allTypemap=new HashMap<>(); |
| | | Map<String,List<BattalarmData>> listmap=new HashMap<>(); |
| | | //setDefalut(map); |
| | | try { |
| | | //查询b所有实时电池告警信息 |
| | | List<BattalarmData> list=mapper.getAllBattAlarmInSz2(userId); |
| | | for (BattalarmData adata : list) { |
| | | adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), "zh_CN")); |
| | | } |
| | | listmap.put("allList",list.stream().limit(10).collect(Collectors.toList())); |
| | | Map<String, List<BattalarmData>> ListMap = list.stream().collect(Collectors.groupingBy(BattalarmData::getStationName9)); |
| | | Map<String,Object> levelMap=new HashMap<>(); |
| | | Map<String,Object> typelMap=new HashMap<>(); |
| | | for (String stationName9 : ListMap.keySet()) { |
| | | List<BattalarmData> name9List=ListMap.get(stationName9); |
| | | listmap.put(stationName9,name9List.stream().limit(10).collect(Collectors.toList())); |
| | | Map<Integer, List<BattalarmData>> levelName9Map = name9List.stream().collect(Collectors.groupingBy(BattalarmData::getAlmLevel)); |
| | | Map<Integer, Integer> levelNumMap = new HashMap<>(); |
| | | levelNumMap.put(1,0); |
| | | levelNumMap.put(2,0); |
| | | levelNumMap.put(3,0); |
| | | levelNumMap.put(4,0); |
| | | for (Integer level : levelName9Map.keySet()) { |
| | | levelNumMap.put(level,levelName9Map.get(level).size()); |
| | | int levelnum=0; |
| | | if(allLevelmap.get(level)==null){ |
| | | levelnum=levelName9Map.get(level).size(); |
| | | }else{ |
| | | levelnum=allLevelmap.get(level)+levelName9Map.get(level).size(); |
| | | } |
| | | allLevelmap.put(level,levelnum); |
| | | } |
| | | levelMap.put(stationName9,levelNumMap); |
| | | |
| | | Map<Integer, List<BattalarmData>> typeName9Map = name9List.stream().collect(Collectors.groupingBy(BattalarmData::getAlmId)); |
| | | Map<String, Object> typeNumMap = new HashMap<>(); |
| | | typeNumMap.put("在线电压告警",0); |
| | | typeNumMap.put("组端电压告警",0); |
| | | typeNumMap.put("充电电流告警",0); |
| | | typeNumMap.put("放电电流告警",0); |
| | | typeNumMap.put("单体电压告警",0); |
| | | typeNumMap.put("单体温度告警",0); |
| | | typeNumMap.put("单体内阻告警",0); |
| | | for (Integer type : typeName9Map.keySet()) { |
| | | typeNumMap.put(AlarmConstant.getSzBattAlmName(type),typeName9Map.get(type).size()); |
| | | int typenum=0; |
| | | if(allTypemap.get(AlarmConstant.getSzBattAlmName(type))==null){ |
| | | typenum=typeName9Map.get(type).size(); |
| | | }else{ |
| | | typenum=allTypemap.get(AlarmConstant.getSzBattAlmName(type))+typeName9Map.get(type).size(); |
| | | } |
| | | allTypemap.put(AlarmConstant.getSzBattAlmName(type),typenum); |
| | | } |
| | | typelMap.put(stationName9,typeNumMap); |
| | | } |
| | | map.put("level",levelMap); |
| | | map.put("type",typelMap); |
| | | map.put("allLevel",allLevelmap); |
| | | map.put("allType",allTypemap); |
| | | map.put("list",listmap); |
| | | return new Response<>().setII(1,true,map,""); |
| | | } catch (Exception e) { |
| | | return new Response<>().set(1,false,""); |
| | | } |
| | | } |
| | | } |