From 167236d51d359745c6abe0b6ed827b2ff7d37a4b Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期二, 17 六月 2025 17:39:42 +0800 Subject: [PATCH] 领导层首页-运行监控界面 --- src/main/java/com/whyc/service/MonitorService.java | 230 ++++++++++++++++++++++++++++ src/main/java/com/whyc/mapper/DevalarmDataMapper.java | 3 src/main/java/com/whyc/service/BattalarmDataService.java | 9 src/main/java/com/whyc/webSocket/MonitorSocket.java | 75 +++++++++ src/main/resources/mapper/BattalarmDataMapper.xml | 16 + src/main/java/com/whyc/pojo/db_user/BaojigroupPower.java | 3 src/main/java/com/whyc/service/LeaderHomeService.java | 13 src/main/resources/mapper/PwrdevAlarmMapper.xml | 3 src/main/java/com/whyc/mapper/BattalarmDataMapper.java | 4 src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java | 2 src/main/java/com/whyc/mapper/BaojigroupPowerMapper.java | 3 src/main/java/com/whyc/service/DeviceStateService.java | 4 src/main/java/com/whyc/service/DevalarmDataService.java | 4 src/main/resources/mapper/DeviceStateMapper.xml | 9 + src/main/java/com/whyc/service/BaoJiGroupPowerService.java | 20 ++ src/main/resources/mapper/BaojigroupPowerMapper.xml | 13 + src/main/resources/mapper/DevalarmDataMapper.xml | 3 src/main/java/com/whyc/mapper/DeviceStateMapper.java | 3 src/main/java/com/whyc/service/PwrdevAlarmService.java | 4 19 files changed, 403 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/whyc/mapper/BaojigroupPowerMapper.java b/src/main/java/com/whyc/mapper/BaojigroupPowerMapper.java index c00d1a2..30a4e19 100644 --- a/src/main/java/com/whyc/mapper/BaojigroupPowerMapper.java +++ b/src/main/java/com/whyc/mapper/BaojigroupPowerMapper.java @@ -20,4 +20,7 @@ List<PowerInf> getPowerList(@Param("id") int id); //鏌ヨ鍏朵粬鐨勭粍,鍖呭惈鐨勬墍鏈夌珯鐐� List<BaojigroupPower> getStationIdListWithDischargePlanFlag(); + + List<BaojigroupPower> getListByUserId(Integer userId); + } \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BattalarmDataMapper.java b/src/main/java/com/whyc/mapper/BattalarmDataMapper.java index cc1f2f3..4850c28 100644 --- a/src/main/java/com/whyc/mapper/BattalarmDataMapper.java +++ b/src/main/java/com/whyc/mapper/BattalarmDataMapper.java @@ -14,6 +14,10 @@ List<AlarmInspection> getListGreatThan(Long battAlarmId); + List<AlarmDto> getListByUserId(Integer userId, Integer almLevel); + + List<BattalarmData> getMonAlarm(Integer userId); + List<AlarmDto> getListByUserId(Integer userId); //棰勮鍒嗘瀽绠$悊 List<BattalarmData> getBattAlmAnalyse(AlmAnalyseDto dto); diff --git a/src/main/java/com/whyc/mapper/DevalarmDataMapper.java b/src/main/java/com/whyc/mapper/DevalarmDataMapper.java index a205ecd..8c7b48c 100644 --- a/src/main/java/com/whyc/mapper/DevalarmDataMapper.java +++ b/src/main/java/com/whyc/mapper/DevalarmDataMapper.java @@ -2,7 +2,6 @@ import com.whyc.dto.AlarmDto; import com.whyc.dto.Real.AlmDto; -import com.whyc.pojo.db_alarm.BattalarmData; import com.whyc.pojo.db_alarm.DevalarmData; import com.whyc.pojo.web_site.AlarmInspection; @@ -14,6 +13,6 @@ List<AlarmInspection> getListGreatThan(Long devAlarmId); - List<AlarmDto> getListByUserId(Integer userId); + List<AlarmDto> getListByUserId(Integer userId, Integer almLevel); } \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/DeviceStateMapper.java b/src/main/java/com/whyc/mapper/DeviceStateMapper.java index 8270098..a3a71d5 100644 --- a/src/main/java/com/whyc/mapper/DeviceStateMapper.java +++ b/src/main/java/com/whyc/mapper/DeviceStateMapper.java @@ -9,4 +9,7 @@ public interface DeviceStateMapper extends CustomMapper<DeviceState>{ //璁惧宸ヤ綔鐘舵�佺粺璁� List<DeviceState> getDeviceStateStatistic(@Param("stic") DeviceStateStic stic); + + List<DeviceState> getListByUserId(Integer userId); + } \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java b/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java index 32331e4..910fec1 100644 --- a/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java +++ b/src/main/java/com/whyc/mapper/PwrdevAlarmMapper.java @@ -13,6 +13,6 @@ List<AlarmInspection> getListGreatThan(Long id); - List<AlarmDto> getListByUserId(Integer userId); + List<AlarmDto> getListByUserId(Integer userId, Integer alarmLevel); } \ No newline at end of file diff --git a/src/main/java/com/whyc/pojo/db_user/BaojigroupPower.java b/src/main/java/com/whyc/pojo/db_user/BaojigroupPower.java index 799ce8a..2ea69be 100644 --- a/src/main/java/com/whyc/pojo/db_user/BaojigroupPower.java +++ b/src/main/java/com/whyc/pojo/db_user/BaojigroupPower.java @@ -52,5 +52,8 @@ @TableField(exist = false) private String powerName; + @TableField(exist = false) + private String baoJiGroupName; + } diff --git a/src/main/java/com/whyc/service/BaoJiGroupPowerService.java b/src/main/java/com/whyc/service/BaoJiGroupPowerService.java new file mode 100644 index 0000000..163c243 --- /dev/null +++ b/src/main/java/com/whyc/service/BaoJiGroupPowerService.java @@ -0,0 +1,20 @@ +package com.whyc.service; + +import com.whyc.mapper.BaojigroupPowerMapper; +import com.whyc.pojo.db_user.BaojigroupPower; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BaoJiGroupPowerService { + + @Autowired + private BaojigroupPowerMapper mapper; + + + public List<BaojigroupPower> getListByUserId(Integer userId) { + return mapper.getListByUserId(userId); + } +} diff --git a/src/main/java/com/whyc/service/BattalarmDataService.java b/src/main/java/com/whyc/service/BattalarmDataService.java index e07f562..eb5d9bb 100644 --- a/src/main/java/com/whyc/service/BattalarmDataService.java +++ b/src/main/java/com/whyc/service/BattalarmDataService.java @@ -7,7 +7,6 @@ import com.github.pagehelper.PageInfo; import com.whyc.constant.BattAlarmIdEnum; import com.whyc.constant.BattSingalIdEnum; -import com.whyc.constant.DevAlarmEnum; import com.whyc.dto.AlarmDto; import com.whyc.dto.Param.AlmAnalyseDto; import com.whyc.dto.Real.AlmDto; @@ -75,8 +74,8 @@ return listGreatThan; } - public List<AlarmDto> getListByUserId(Integer userId) { - return mapper.getListByUserId(userId); + public List<AlarmDto> getListByUserId(Integer userId, Integer almLevel) { + return mapper.getListByUserId(userId,almLevel); } public List<Long> getNumListInDB(List<Long> battAlarmNumList) { @@ -85,6 +84,10 @@ query.in("num",battAlarmNumList); return mapper.selectList(query).stream().map(BattalarmData::getNum).collect(Collectors.toList()); } + + public List<BattalarmData> getMonAlarm(Integer userId) { + return mapper.getMonAlarm(userId); + } //棰勮鍒嗘瀽绠$悊 public Response getBattAlmAnalyse(AlmAnalyseDto dto) { PageHelper .startPage(dto.getPageNum(),dto.getPageSize()); diff --git a/src/main/java/com/whyc/service/DevalarmDataService.java b/src/main/java/com/whyc/service/DevalarmDataService.java index 79a88c5..31bef6d 100644 --- a/src/main/java/com/whyc/service/DevalarmDataService.java +++ b/src/main/java/com/whyc/service/DevalarmDataService.java @@ -81,7 +81,7 @@ return mapper.selectList(query).stream().map(DevalarmData::getNum).collect(Collectors.toList()); } - public List<AlarmDto> getListByUserId(Integer userId) { - return mapper.getListByUserId(userId); + public List<AlarmDto> getListByUserId(Integer userId,Integer almLevel) { + return mapper.getListByUserId(userId,almLevel); } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/DeviceStateService.java b/src/main/java/com/whyc/service/DeviceStateService.java index ceead8b..7f5568e 100644 --- a/src/main/java/com/whyc/service/DeviceStateService.java +++ b/src/main/java/com/whyc/service/DeviceStateService.java @@ -38,4 +38,8 @@ Map<Integer,String> map= DevStateEnum.getOpInfo(); return new Response().setII(1,true,map,"鑾峰彇璁惧宸ヤ綔绫诲瀷(涓嬫媺)"); } + + public List<DeviceState> getListByUserId(Integer userId) { + return mapper.getListByUserId(userId); + } } \ No newline at end of file diff --git a/src/main/java/com/whyc/service/LeaderHomeService.java b/src/main/java/com/whyc/service/LeaderHomeService.java index e03a970..1281442 100644 --- a/src/main/java/com/whyc/service/LeaderHomeService.java +++ b/src/main/java/com/whyc/service/LeaderHomeService.java @@ -1,6 +1,5 @@ package com.whyc.service; -import com.sun.org.glassfish.gmbal.NameValue; import com.whyc.constant.BattSingalIdEnum; import com.whyc.constant.Capperformance; import com.whyc.constant.DevAlarmEnum; @@ -176,7 +175,7 @@ private void alarmRealtimeStatistics(Integer userId, Map<String, Object> map) { //鐢垫睜鍛婅淇℃伅缁熻 List<AlarmDto> battAlarmListNew = new ArrayList<>(); - List<AlarmDto> battAlarmList = battAlarmService.getListByUserId(userId); + List<AlarmDto> battAlarmList = battAlarmService.getListByUserId(userId, null); //鍚堝苟鍗曚綋鍛婅鐨勫憡璀︿俊鎭�,瀵笰larmDto涓瑼lmId 鍦�17~28涔嬮棿鐨勮繘琛屽悎骞�. Map<String, List<AlarmDto>> mergeMap = battAlarmList.stream() .filter(alarm -> alarm.getAlmId() >= 17 && alarm.getAlmId() <= 28) @@ -205,7 +204,7 @@ }); //璁惧鍛婅淇℃伅缁熻 - List<AlarmDto> devAlarmList = devAlarmService.getListByUserId(userId); + List<AlarmDto> devAlarmList = devAlarmService.getListByUserId(userId,null); //瀵瑰憡璀﹀悕绉拌祴鍊� devAlarmList.forEach(alarmDto -> { alarmDto.setAlmName(DevAlarmEnum.getValue(alarmDto.getAlmId())); @@ -213,7 +212,7 @@ //鐢垫簮鍛婅淇℃伅缁熻 List<AlarmDto> powerAlarmListNew = new ArrayList<>(); - List<AlarmDto> powerAlarmList = powerAlarmService.getListByUserId(userId); + List<AlarmDto> powerAlarmList = powerAlarmService.getListByUserId(userId,null); //鏁存祦鍣ㄦ�绘晠闅滃悎骞� //ALARM_3300001(3300001,"鏁存祦鍣�1鎬绘晠闅滃憡璀�"), // ALARM_3300002(3300002,"鏁存祦鍣�2鎬绘晠闅滃憡璀�"), @@ -689,7 +688,7 @@ } - private void testDataInfoStatistics(Integer userId, Map<String, Object> map) { + protected void testDataInfoStatistics(Integer userId, Map<String, Object> map) { List<BatttestdataInf> testInfList = battTestDataInfService.getListByUserId(userId); //杩囨护鍑烘湰鏈堢殑 LocalDateTime startOfMonth = DateUtil.getStartOfMonth(); @@ -766,7 +765,7 @@ return testInfOfMonth; } - private void batteryInfoStatistics(Integer userId, Map<String, Object> map) { + protected void batteryInfoStatistics(Integer userId, Map<String, Object> map) { List<BattInf> battInfList = battInfService.getListByUserId(userId); Map<String, List<BattInf>> brandMap = battInfList.stream().collect(Collectors.groupingBy(BattInf::getProduct)); Map<Float, List<BattInf>> volMap = battInfList.stream().collect(Collectors.groupingBy(BattInf::getMonvolstd)); @@ -786,7 +785,7 @@ map.put("battGroupInfo_vol",volList); } - private void powerInfoStatistics(Integer userId, Map<String, Object> map) { + protected void powerInfoStatistics(Integer userId, Map<String, Object> map) { List<PowerInf> powerInfList = powerInfService.getListByUserId(userId); Map<String, List<PowerInf>> brandMap = powerInfList.stream().collect(Collectors.groupingBy(PowerInf::getCompany)); Map<Integer, List<PowerInf>> typeMap = powerInfList.stream().collect(Collectors.groupingBy(PowerInf::getPowerType)); diff --git a/src/main/java/com/whyc/service/MonitorService.java b/src/main/java/com/whyc/service/MonitorService.java new file mode 100644 index 0000000..dad9daa --- /dev/null +++ b/src/main/java/com/whyc/service/MonitorService.java @@ -0,0 +1,230 @@ +package com.whyc.service; + +import com.whyc.constant.BattAlarmIdEnum; +import com.whyc.dto.NameValueIntDto; +import com.whyc.dto.Response; +import com.whyc.factory.ThreadPoolExecutorFactory; +import com.whyc.pojo.db_alarm.BattalarmData; +import com.whyc.pojo.db_ram_db.DeviceState; +import com.whyc.pojo.db_station.BattInf; +import com.whyc.pojo.db_station.StationInf; +import com.whyc.pojo.db_user.BaojigroupPower; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.stream.Collectors; + +@Service +public class MonitorService { + + @Autowired + private LeaderHomeService leaderHomeService; + + @Autowired + private StationInfService stationInfService; + + @Autowired + private PowerInfService powerInfService; + + @Autowired + private BattInfService battInfService; + + @Autowired + private PwrdevAlarmService powerAlarmService; + + @Autowired + private DevalarmDataService devAlarmDataService; + + @Autowired + private BattalarmDataService battAlarmDataService; + + @Autowired + private DeviceStateService deviceStateService; + + + @Autowired + private BaoJiGroupPowerService baoJiGroupPowerService; + + + public Response getAll(Integer userId) { + Response response = new Response(); + Map<String,Object> map = new HashMap<>(); + + CountDownLatch latch = new CountDownLatch(9); + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + + //TODO 浜ゆ祦鍛婅缁熻 寰呮槑纭憡璀﹀垎绫� + poolExecutor.execute(() -> { + //acAlarmStatistics(userId, map); + latch.countDown(); + }); + + //璧勪骇淇℃伅缁熻 + poolExecutor.execute(() -> { + assetsInfoStatistics(userId, map); + latch.countDown(); + }); + + //钃勭數姹犳牳瀹逛俊鎭粺璁� + poolExecutor.execute(() -> { + leaderHomeService.testDataInfoStatistics(userId, map); + latch.countDown(); + }); + + //鐢垫睜鍝佺墝淇℃伅缁熻 + poolExecutor.execute(() -> { + leaderHomeService.batteryInfoStatistics(userId, map); + latch.countDown(); + }); + + //鐢垫簮鍝佺墝淇℃伅缁熻 + poolExecutor.execute(() -> { + leaderHomeService.powerInfoStatistics(userId, map); + latch.countDown(); + }); + + //TODO 鐢垫簮鍛婅淇℃伅缁熻 寰呮槑纭憡璀﹀垎绫� + poolExecutor.execute(() -> { + //powerAlarmStatistics(userId, map); + latch.countDown(); + }); + + //鍗曡妭钃勭數姹犲憡璀︾粺璁� + poolExecutor.execute(() -> { + battMonAlarmStatistics(userId, map); + latch.countDown(); + }); + + //璁惧瀹炴椂鐘舵�佺粺璁� + poolExecutor.execute(() -> { + deviceStatusStatistics(userId, map); + latch.countDown(); + }); + + //鐝粍缁熻 鍙� 鍛婅缁熻 + poolExecutor.execute(() -> { + baoJiAndAlarmStatistics(userId, map); + latch.countDown(); + }); + + return response; + } + + private void baoJiAndAlarmStatistics(Integer userId, Map<String, Object> map) { + List<NameValueIntDto> baoJiGroupStationDtoList = new ArrayList<>(); + //鑾峰彇绠$悊鐨勬墍鏈夌彮缁勫拰绔欑偣 + List<BaojigroupPower> baoJiGroupStationList =baoJiGroupPowerService.getListByUserId(userId); + Map<String, List<BaojigroupPower>> baoJiGroupStationMap = baoJiGroupStationList.stream().collect(Collectors.groupingBy(BaojigroupPower::getBaoJiGroupName)); + baoJiGroupStationMap.forEach((baoJiGroupName, stationList) -> { + NameValueIntDto baoJiGroupStationDto = new NameValueIntDto(); + baoJiGroupStationDto.setName(baoJiGroupName); + baoJiGroupStationDto.setValue(stationList.size()); + baoJiGroupStationDtoList.add(baoJiGroupStationDto); + }); + map.put("baoJiStationStatistics", baoJiGroupStationDtoList); + + + List<NameValueIntDto> alarmStatisticsList = new ArrayList<>(); + long powerAlarmCount = powerAlarmService.getListByUserId(userId, 1).stream().count(); + long devAlarmCount = devAlarmDataService.getListByUserId(userId, 1).stream().count(); + long battAlarmCount = battAlarmDataService.getListByUserId(userId, 1).stream().count(); + NameValueIntDto powerAlarmDto = new NameValueIntDto("鐢垫簮鐩戞祴", (int) powerAlarmCount); + alarmStatisticsList.add(powerAlarmDto); + NameValueIntDto devAlarmDto = new NameValueIntDto("璁惧鐩戞祴", (int) devAlarmCount); + alarmStatisticsList.add(devAlarmDto); + NameValueIntDto battAlarmDto = new NameValueIntDto("鐢垫睜鐩戞祴", (int) battAlarmCount); + alarmStatisticsList.add(battAlarmDto); + map.put("alarmStatistics", alarmStatisticsList); + + + } + + private void deviceStatusStatistics(Integer userId, Map<String, Object> map) { + List<DeviceState> deviceStateList =deviceStateService.getListByUserId(userId); + long chargeCount = deviceStateList.stream().filter(deviceState -> deviceState.getDevWorkstate() == 0).count(); + long hrChargeCount = deviceStateList.stream().filter(deviceState -> deviceState.getDevWorkstate() == 1).count(); + long hrDischargeCount = deviceStateList.stream().filter(deviceState -> deviceState.getDevWorkstate() == 2).count(); + long powerOffDischargeCount = deviceStateList.stream().filter(deviceState -> deviceState.getDevWorkstate() == 3).count(); + long resTestCount = deviceStateList.stream().filter(deviceState -> deviceState.getDevWorkstate() == 4).count(); + + List<NameValueIntDto> nameValueList = new ArrayList<>(); + + NameValueIntDto chargeCountDto = new NameValueIntDto("鐩磋繛鍏呯數", (int) chargeCount); + nameValueList.add(chargeCountDto); + NameValueIntDto hrChargeCountDto = new NameValueIntDto("鏍稿鍏呯數", (int) hrChargeCount); + nameValueList.add(hrChargeCountDto); + NameValueIntDto hrDischargeCountDto = new NameValueIntDto("鏍稿鏀剧數", (int) hrDischargeCount); + nameValueList.add(hrDischargeCountDto); + NameValueIntDto powerOffDischargeCountDto = new NameValueIntDto("鍋滅數鏀剧數", (int) powerOffDischargeCount); + nameValueList.add(powerOffDischargeCountDto); + NameValueIntDto resTestCountDto = new NameValueIntDto("鍐呴樆娴嬭瘯", (int) resTestCount); + nameValueList.add(resTestCountDto); + + map.put("deviceStatusStatistics", nameValueList); + + } + + private void battMonAlarmStatistics(Integer userId, Map<String, Object> map) { + List<NameValueIntDto> nameValueList = new ArrayList<>(); + + List<BattalarmData> battAlarmDataList = battAlarmDataService.getMonAlarm(userId); + //鑾峰彇鐢靛帇寮傚父鍛婅 + List<BattalarmData> monVolAlarmList = battAlarmDataList.stream() + .filter(alarm -> alarm.getAlmId().intValue() == BattAlarmIdEnum.ALARM_119005.getStateId()).collect(Collectors.toList()); + Map<String, List<BattalarmData>> monVolAlarmMap = monVolAlarmList.stream().collect( + Collectors.groupingBy(alarm -> alarm.getBattgroupId() + "_" + alarm.getMonNum())); + nameValueList.add(new NameValueIntDto("鐢靛帇", monVolAlarmMap.size())); + + //鑾峰彇鍐呴樆寮傚父鍛婅 + List<BattalarmData> monResAlarmList = battAlarmDataList.stream() + .filter(alarm -> alarm.getAlmId().intValue() == BattAlarmIdEnum.ALARM_119007.getStateId()).collect(Collectors.toList()); + Map<String, List<BattalarmData>> monResAlarmMap = monResAlarmList.stream().collect( + Collectors.groupingBy(alarm -> alarm.getBattgroupId() + "_" + alarm.getMonNum())); + nameValueList.add(new NameValueIntDto("鍐呴樆", monResAlarmMap.size())); + + + //鑾峰彇娓╁害寮傚父鍛婅 + List<BattalarmData> monTmpAlarmList = battAlarmDataList.stream() + .filter(alarm -> alarm.getAlmId().intValue() == BattAlarmIdEnum.ALARM_119006.getStateId()).collect(Collectors.toList()); + Map<String, List<BattalarmData>> monTmpAlarmMap = monTmpAlarmList.stream().collect( + Collectors.groupingBy(alarm -> alarm.getBattgroupId() + "_" + alarm.getMonNum())); + nameValueList.add(new NameValueIntDto("娓╁害", monTmpAlarmMap.size())); + + map.put("battMonAlarmStatistics", nameValueList); + } + + private void assetsInfoStatistics(Integer userId, Map<String, Object> map) { + List<NameValueIntDto> nameValueList = new ArrayList<>(); + List<StationInf> stationInfList =stationInfService.getListByUserId(userId); + int stationCount = stationInfList.size(); + NameValueIntDto stationCountDto = new NameValueIntDto(); + stationCountDto.setName("绔欑偣鏁伴噺"); + stationCountDto.setValue(stationCount); + + int powerCount = powerInfService.getListByUserId(userId).size(); + NameValueIntDto powerCountDto = new NameValueIntDto(); + powerCountDto.setName("鐢垫簮鏁伴噺"); + powerCountDto.setValue(powerCount); + + List<BattInf> battInfList = battInfService.getListByUserId(userId); + int battCount = battInfList.size(); + Map<Integer, List<BattInf>> devIdMap = battInfList.stream().collect(Collectors.groupingBy(BattInf::getDevId)); + NameValueIntDto devCountDto = new NameValueIntDto(); + devCountDto.setName("璁惧鏁伴噺"); + devCountDto.setValue(devIdMap.size()); + + NameValueIntDto battCountDto = new NameValueIntDto(); + battCountDto.setName("鐢垫睜鏁伴噺"); + battCountDto.setValue(battCount); + + nameValueList.add(stationCountDto); + nameValueList.add(powerCountDto); + nameValueList.add(devCountDto); + nameValueList.add(battCountDto); + map.put("assetsInfoStatistics", nameValueList); + + } +} diff --git a/src/main/java/com/whyc/service/PwrdevAlarmService.java b/src/main/java/com/whyc/service/PwrdevAlarmService.java index 3c2eac4..19119fe 100644 --- a/src/main/java/com/whyc/service/PwrdevAlarmService.java +++ b/src/main/java/com/whyc/service/PwrdevAlarmService.java @@ -81,7 +81,7 @@ return mapper.selectList(query).stream().map(PwrdevAlarm::getNum).collect(Collectors.toList()); } - public List<AlarmDto> getListByUserId(Integer userId) { - return mapper.getListByUserId(userId); + public List<AlarmDto> getListByUserId(Integer userId,Integer alarmLevel) { + return mapper.getListByUserId(userId,alarmLevel); } } \ No newline at end of file diff --git a/src/main/java/com/whyc/webSocket/MonitorSocket.java b/src/main/java/com/whyc/webSocket/MonitorSocket.java new file mode 100644 index 0000000..474ac35 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/MonitorSocket.java @@ -0,0 +1,75 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.Response; +import com.whyc.pojo.db_user.User; +import com.whyc.service.LeaderHomeService; +import com.whyc.service.MonitorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpSession; +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; + +/** + * 杩愯鐩戞帶鐣岄潰 + */ +@Component +@ServerEndpoint(value = "/monitor",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class MonitorSocket { + + private Session session; + + private Thread thread; + + private static MonitorService monitorService; + + @Autowired + public void setMonitorService(MonitorService monitorService) { + MonitorSocket.monitorService = monitorService; + } + + @OnOpen + public void onOpen(Session session, EndpointConfig config){ + this.session = session; + HttpSession httpSession = (HttpSession) config.getUserProperties().get("httpSession"); + User user = (User) httpSession.getAttribute("user"); + Integer userId = user.getId(); + Thread thread = new Thread() { + @Override + public void run() { + try { + while (!currentThread().isInterrupted()) { + Response response = monitorService.getAll(userId); + session.getBasicRemote().sendObject(new Response().set(1, response)); + sleep(4000); + } + } catch (Exception e) { + this.interrupt(); + } + } + }; + thread.start(); + this.thread = thread; + } + + @OnClose + public void onClose(CloseReason closeReason) throws IOException { + System.err.println("closeReason = " + closeReason); + if(session.isOpen()){ + session.close(); + } + } + + @OnError + public void onError(Throwable error) throws IOException { + error.printStackTrace(); + thread.isInterrupted(); + if(session.isOpen()){ + session.close(); + } + } + +} diff --git a/src/main/resources/mapper/BaojigroupPowerMapper.xml b/src/main/resources/mapper/BaojigroupPowerMapper.xml index dc09980..1d3aff5 100644 --- a/src/main/resources/mapper/BaojigroupPowerMapper.xml +++ b/src/main/resources/mapper/BaojigroupPowerMapper.xml @@ -56,4 +56,17 @@ and gb.power_id = p.power_id and g.team_flag = 1 </select> + <select id="getListByUserId" resultType="com.whyc.pojo.db_user.BaojigroupPower"> + SELECT distinct gb.baoji_group_id,gb.station_id,g.baoji_group_name as baoJiGroupName,b.station_name + FROM db_user.tb_baojigroup g,db_user.tb_baojigroup_power gb,db_station.tb_station_inf b + where g.baoji_group_id = gb.baoji_group_id 0 + and gb.station_id = b.station_id + and g.team_flag = 1 + and gb.station_id in ( + select distinct station_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp + where bu.baoji_group_id = bp.baoji_group_id + and bu.uid = #{userId} + ) + order by g.baoji_group_name + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/BattalarmDataMapper.xml b/src/main/resources/mapper/BattalarmDataMapper.xml index 5f77042..bb85780 100644 --- a/src/main/resources/mapper/BattalarmDataMapper.xml +++ b/src/main/resources/mapper/BattalarmDataMapper.xml @@ -53,9 +53,13 @@ </select> <select id="getListByUserId" resultType="com.whyc.dto.AlarmDto"> select bd.mon_num,bd.alm_signal_id as alm_id,bd.alm_id as alm_id_origin,bd.alm_level,bd.alm_start_time, - bd.num as alm_num,bi.battgroup_id,bi.battgroup_name,bi.dev_id,bi.dev_name,si.station_id,si.station_name from db_alarm.tb_battalarm_data bd,db_station.tb_batt_inf bi,db_station.tb_station_inf si + bd.num as alm_num,bi.battgroup_id,bi.battgroup_name,bi.dev_id,bi.dev_name,si.station_id,si.station_name + from db_alarm.tb_battalarm_data bd,db_station.tb_batt_inf bi,db_station.tb_station_inf si where bd.battgroup_id=bi.battgroup_id and bi.station_id=si.station_id + <if test="almLevel !=null"> + and bd.alm_level=#{almLevel} + </if> and bd.battgroup_id in( select distinct battgroup_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp,db_station.tb_batt_inf bi where bu.baoji_group_id = bp.baoji_group_id @@ -63,6 +67,16 @@ and bu.uid = #{userId} ) </select> + <select id="getMonAlarm" resultType="com.whyc.pojo.db_alarm.BattalarmData"> + select bd.battgroup_id,bd.mon_num,bd.alm_signal_id,bd.alm_id,from db_alarm.tb_battalarm_data bd + where bd.alm_id in (119005,119006,119007) + and bd.battgroup_id in( + select distinct battgroup_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp,db_station.tb_batt_inf bi + where bu.baoji_group_id = bp.baoji_group_id + and bp.station_id = bi.station_id + and bu.uid = #{userId} + ) + </select> <select id="getBattAlmAnalyse" resultType="com.whyc.pojo.db_alarm.BattalarmData"> select tb_battalarm_data.*,tb_batt_inf.battgroup_name,tb_station_inf.station_name,tb_station_inf.provice,tb_station_inf.city,tb_station_inf.country,tb_station_inf.full_name from db_alarm.tb_battalarm_data,db_station.tb_batt_inf,db_station.tb_station_inf diff --git a/src/main/resources/mapper/DevalarmDataMapper.xml b/src/main/resources/mapper/DevalarmDataMapper.xml index ee0b724..4315459 100644 --- a/src/main/resources/mapper/DevalarmDataMapper.xml +++ b/src/main/resources/mapper/DevalarmDataMapper.xml @@ -53,6 +53,9 @@ select distinct dd.*,dd.num as alm_num,bi.dev_id,bi.dev_name,si.station_id,si.station_name from db_alarm.tb_devalarm_data dd,db_station.tb_batt_inf bi,db_station.tb_station_inf si where dd.dev_id=bi.dev_id and bi.station_id=si.station_id + <if test="almLevel != null"> + and dd.alm_level=#{almLevel} + </if> and dd.dev_id in ( select distinct dev_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp,db_station.tb_batt_inf bi where bu.baoji_group_id = bp.baoji_group_id diff --git a/src/main/resources/mapper/DeviceStateMapper.xml b/src/main/resources/mapper/DeviceStateMapper.xml index 33a5492..1ab7d7d 100644 --- a/src/main/resources/mapper/DeviceStateMapper.xml +++ b/src/main/resources/mapper/DeviceStateMapper.xml @@ -35,4 +35,13 @@ order by tb_device_state.dev_id asc </where> </select> + <select id="getListByUserId" resultType="com.whyc.pojo.db_ram_db.DeviceState"> + select distinct dev_id,dev_workstate from db_ram_db.tb_device_state + where dev_id in( + select distinct dev_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp,db_station.tb_batt_inf bi + where bu.baoji_group_id = bp.baoji_group_id + and bp.station_id = bi.station_id + and bu.uid = #{userId} + ) + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/PwrdevAlarmMapper.xml b/src/main/resources/mapper/PwrdevAlarmMapper.xml index ac14f51..5e67292 100644 --- a/src/main/resources/mapper/PwrdevAlarmMapper.xml +++ b/src/main/resources/mapper/PwrdevAlarmMapper.xml @@ -54,6 +54,9 @@ select pa.*,pa.num as alm_num,pi.power_name,pi.power_id,si.station_id,si.station_name from db_pwrdev_alarm.tb_pwrdev_alarm pa,db_station.tb_power_inf pi,db_station.tb_station_inf si where pa.power_id=pi.power_id and pi.station_id=si.station_id + <if test="alarmLevel !=null"> + and pa.alm_level=#{alarmLevel} + </if> and pa.power_id in ( select distinct power_id from db_user.tb_baojigroup_usr bu,db_user.tb_baojigroup_power bp where bu.baoji_group_id = bp.baoji_group_id -- Gitblit v1.9.1