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/LeaderHomeService.java | 94 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 79 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/whyc/service/LeaderHomeService.java b/src/main/java/com/whyc/service/LeaderHomeService.java index 2648e42..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; @@ -18,6 +17,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.time.LocalTime; import java.util.*; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ThreadPoolExecutor; @@ -60,7 +61,6 @@ private BatttestdataIdService battTestDataIdService; - public Response getAll(Integer userId) { Response response = new Response(); Map<String,Object> map = new HashMap<>(); @@ -89,9 +89,9 @@ testDataInfoStatistics(userId, map); latch.countDown(); }); - //TODO 璁惧鏁伴噺淇℃伅缁熻 + //10绫诲熀纭�璧勪骇淇℃伅缁熻 poolExecutor.execute(() -> { - //deviceInfoStatistics(userId, map); + deviceInfoStatistics(userId, map); latch.countDown(); }); @@ -109,10 +109,73 @@ return response; } + private void deviceInfoStatistics(Integer userId, Map<String, Object> map) { + NameValueIntDto baseDto = new NameValueIntDto(); + int powerCount = powerInfService.getListByUserId(userId).size(); + map.put("powerCount", powerCount); + List<BattInf> battInfList = battInfService.getListByUserId(userId); + int battCount = battInfList.size(); + Map<Integer, List<BattInf>> devIdMap = battInfList.stream().collect(Collectors.groupingBy(BattInf::getDevId)); + map.put("devCount", devIdMap.size()); + map.put("battCount",battCount); + int monCountTotal = 0; + for (int i = 0; i < battCount; i++) { + int monCount = battInfList.get(i).getMoncount().intValue(); + monCountTotal += monCount; + } + map.put("monCount", monCountTotal); + + LocalDateTime now = LocalDateTime.now(); + //鏈勾绗竴澶� + LocalDateTime yearStart = now.withDayOfYear(1).withHour(0).withMinute(0).withSecond(0).withNano(0); + Date yearStartTime = DateUtil.convertToDate(yearStart); + //鍘诲勾鐨勭涓�澶� + LocalDateTime lastYearStart = now.minusYears(1).withDayOfYear(1).withHour(0).withMinute(0).withSecond(0).withNano(0); + //鍘诲勾鐨勬渶鍚庝竴澶� + int lastYear = now.minusYears(1).getYear(); + LocalDate lastDayOfLastYear = LocalDate.of(lastYear, 12, 31); + LocalDateTime lastYearEnd = lastDayOfLastYear.atTime(LocalTime.MAX); + Date lastYearStartTime = DateUtil.convertToDate(lastYearStart); + Date lastYearEndTime = DateUtil.convertToDate(lastYearEnd); + + //鏈勾宸叉斁鐢电數姹犳暟閲� + //鏈勾鏈斁鐢电數姹犳暟閲� + //鍘诲勾宸叉斁鐢电數姹犳暟閲� + //鍘诲勾鏈斁鐢电數姹犳暟閲� + int hrDisBattCount = battTestDataInfService.getHrDisCount(userId,yearStartTime,null); + int hrNoDisBattCount = battCount - hrDisBattCount; + int hrDisBattCountLastYear = battTestDataInfService.getHrDisCount(userId,lastYearStartTime,lastYearEndTime); + int hrNoDisBattCountLastYear = battCount - hrDisBattCountLastYear; + map.put("hrDisBattCount", hrDisBattCount); + map.put("hrNoDisBattCount", hrNoDisBattCount); + map.put("hrDisBattCountLastYear", hrDisBattCountLastYear); + map.put("hrNoDisBattCountLastYear", hrNoDisBattCountLastYear); + + //鏈勾浼樿壇鍔e寲鎹熷潖鏁伴噺 + List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,yearStartTime,null); + long battGoodCount = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_1.getStateName())).count(); + long battBadCount = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())).count(); + long battDamageCount = battCapInfoList.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())).count(); + //鍘诲勾浼樿壇鍔e寲鎹熷潖鏁伴噺 + List<BattCapInfoDto> battCapInfoListLastYear = getBattCapInfo(battInfList,lastYearStartTime,lastYearEndTime); + long battGoodCountLastYear = battCapInfoListLastYear.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_1.getStateName())).count(); + long battBadCountLastYear = battCapInfoListLastYear.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_2.getStateName())).count(); + long battDamageCountLastYear = battCapInfoListLastYear.stream().filter(battCapInfo -> battCapInfo.getPerformance().equals(Capperformance.BATTSTATE_3.getStateName())).count(); + map.put("battGoodCount", battGoodCount); + map.put("battBadCount", battBadCount); + map.put("battDamageCount", battDamageCount); + map.put("battGoodCountLastYear", battGoodCountLastYear); + map.put("battBadCountLastYear", battBadCountLastYear); + map.put("battDamageCountLastYear", battDamageCountLastYear); + //TODO 浼樿壇鐢垫簮鏁伴噺 + map.put("powerGoodCount","浼樿壇鍒ゅ畾鏍囧噯寰呯‘瀹�" ); + } + + 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) @@ -141,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())); @@ -149,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鎬绘晠闅滃憡璀�"), @@ -625,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(); @@ -702,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)); @@ -722,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)); @@ -792,7 +855,7 @@ battInf.setProduct(brand); //鏌ヨ婊¤冻鏉′欢鐨勮搫鐢垫睜鍒楄〃 List<BattInf> battInfList = battInfService.getListByCondition(userId,battInf); - List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList); + List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,null,null); //data,鍜宒ata2鍒嗗埆杩斿洖 缁熻鏁伴噺鍜� 绔欑偣浼樿壇,鍔e寲,鎹熷潖 鍓嶄簩鐨勪俊鎭� List<NameValueIntDto> data = new ArrayList<>(); List<NameValueListDto> data2 = new ArrayList<>(); @@ -836,7 +899,7 @@ battInf.setInuseTime(inuseTimeStart); //鏌ヨ婊¤冻鏉′欢鐨勮搫鐢垫睜鍒楄〃 List<BattInf> battInfList = battInfService.getListByCondition(userId,battInf); - List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList); + List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,null,null); //data,鏍规嵁鍝佺墝鍒嗙粍缁熻鐧惧垎姣� Map<String, List<BattCapInfoDto>> brandMap = battCapInfoList.stream().collect(Collectors.groupingBy(BattCapInfoDto::getProduct)); @@ -943,7 +1006,7 @@ battInf.setProduct(brand); //鏌ヨ婊¤冻鏉′欢鐨勮搫鐢垫睜鍒楄〃 List<BattInf> battInfList = battInfService.getListByCondition(userId,battInf); - List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList); + List<BattCapInfoDto> battCapInfoList = getBattCapInfo(battInfList,null,null); //data,TODO 鎶曡繍鏃堕棿鐨勭淮搴﹀弬鏁�,鍏堝浐瀹氬彉閲�,鍚庣画浠庢暟鎹簱鑾峰彇 //time1鍜宼ime2鐨勫崟浣嶄负骞� @@ -1055,7 +1118,7 @@ } - public List<BattCapInfoDto> getBattCapInfo(List<BattInf> battInfList) { + public List<BattCapInfoDto> getBattCapInfo(List<BattInf> battInfList,Date startTime, Date endTime) { //鑾峰彇鏍稿浼樺姡锛屾崯鍧忓弬鏁� List<AppParam> paramList=appParamService.getHrParam(); Float badValue=0f; @@ -1086,7 +1149,8 @@ capInfo.setInuseTime(battInf.getInuseTime()); //2.鑾峰彇鐢垫睜缁勫湪缁欏畾鏃堕棿娈电殑鏀剧數璁板綍(鎸囧畾鏃堕棿娈电殑鏍囧噯鏍稿鏀剧數) - BatttestdataInf testInf = battTestDataInfService.getLastStandardTestDataByTime(battInf.getBattgroupId(), battInf.getInuseTime(),null); + //BatttestdataInf testInf = battTestDataInfService.getLastStandardTestDataByTime(battInf.getBattgroupId(), battInf.getInuseTime(),null); + BatttestdataInf testInf = battTestDataInfService.getLastStandardTestDataByTime(battInf.getBattgroupId(), startTime,endTime); if (testInf == null) { capInfo.setRealCap(0f); capInfo.setCapPercentage("0"); -- Gitblit v1.9.1