diff --git a/mh-admin/src/main/java/com/mh/web/controller/system/SysLoginController.java b/mh-admin/src/main/java/com/mh/web/controller/system/SysLoginController.java index da0053e..07172ab 100644 --- a/mh-admin/src/main/java/com/mh/web/controller/system/SysLoginController.java +++ b/mh-admin/src/main/java/com/mh/web/controller/system/SysLoginController.java @@ -92,6 +92,6 @@ public class SysLoginController { Long userId = SecurityUtils.getUserId(); List menus = menuService.selectMenuTreeByUserId(userId); - return AjaxResult.success(menuService.buildMenus(menus)); + return AjaxResult.success(menuService.buildMenus(menus,userId)); } } diff --git a/mh-admin/src/test/java/com/mh/MHApplicationTest.java b/mh-admin/src/test/java/com/mh/MHApplicationTest.java index 050a319..98231c4 100644 --- a/mh-admin/src/test/java/com/mh/MHApplicationTest.java +++ b/mh-admin/src/test/java/com/mh/MHApplicationTest.java @@ -2,6 +2,7 @@ package com.mh; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.mh.common.core.domain.dto.ProProfileDTO; import com.mh.common.core.domain.entity.DeviceReport; import com.mh.common.core.domain.entity.SysParams; import com.mh.common.core.domain.entity.SysUser; @@ -16,6 +17,7 @@ import com.mh.system.service.ISysParamsService; import com.mh.system.service.ISysUserService; import com.mh.system.service.device.IDeviceQrManageService; import com.mh.system.service.operation.IAlarmRecordsService; +import com.mh.system.service.overview.IProOverviewService; import com.mh.system.service.report.IMeterReadingsHisService; import com.mh.system.service.report.IReportHotWaterService; import jakarta.annotation.Resource; @@ -56,6 +58,17 @@ public class MHApplicationTest { @Autowired private IReportHotWaterService reportHotWaterService; + @Autowired + private IProOverviewService proOverviewService; + + @Test + public void testHome() throws Exception { + // 开始计时 + long startTime = System.currentTimeMillis(); + List proProfile = proOverviewService.getProProfile(); + System.out.println("耗时:" + (System.currentTimeMillis() - startTime) + "ms"); + } + @Test public void reportHotWater() { reportHotWaterService.execProRunParamHis(); @@ -88,31 +101,59 @@ public class MHApplicationTest { @Test public void calcEnergyData() { - for (int i = 7; i < 8; i++) { - hotWaterTask.calcEnergyData("2025-10-0"+i+" 00:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 01:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 02:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 03:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 04:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 05:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 06:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 07:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 08:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 09:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 10:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 11:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 12:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 13:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 14:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 15:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 16:00:00"); - hotWaterTask.calcEnergyData("2025-10-0"+i+" 17:00:00"); -// hotWaterTask.calcEnergyData("2025-10-0"+i+" 18:00:00"); -// hotWaterTask.calcEnergyData("2025-10-0"+i+" 19:00:00"); -// hotWaterTask.calcEnergyData("2025-10-0"+i+" 20:00:00"); -// hotWaterTask.calcEnergyData("2025-10-0"+i+" 21:00:00"); -// hotWaterTask.calcEnergyData("2025-10-0"+i+" 22:00:00"); -// hotWaterTask.calcEnergyData("2025-10-0"+i+" 23:00:00"); + for (int i = 1; i < 17; i++) { + // i < 10,则前面添加0 + if (i < 10) { + hotWaterTask.calcEnergyData("2025-10-0"+i+" 00:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 01:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 02:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 03:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 04:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 05:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 06:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 07:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 08:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 09:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 10:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 11:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 12:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 13:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 14:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 15:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 16:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 17:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 18:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 19:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 20:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 21:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 22:00:00"); + hotWaterTask.calcEnergyData("2025-10-0"+i+" 23:00:00"); + } else { + hotWaterTask.calcEnergyData("2025-10-" + i + " 00:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 01:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 02:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 03:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 04:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 05:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 06:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 07:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 08:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 09:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 10:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 11:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 12:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 13:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 14:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 15:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 16:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 17:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 18:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 19:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 20:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 21:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 22:00:00"); + hotWaterTask.calcEnergyData("2025-10-" + i + " 23:00:00"); + } } } diff --git a/mh-system/src/main/java/com/mh/system/service/ISysMenuService.java b/mh-system/src/main/java/com/mh/system/service/ISysMenuService.java index d0b9d63..12e9ba8 100644 --- a/mh-system/src/main/java/com/mh/system/service/ISysMenuService.java +++ b/mh-system/src/main/java/com/mh/system/service/ISysMenuService.java @@ -68,7 +68,7 @@ public interface ISysMenuService * @param menus 菜单列表 * @return 路由列表 */ - public List buildMenus(List menus); + public List buildMenus(List menus, Long userId); /** * 构建前端所需要树结构 diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java index dd0cbe1..f4be75b 100644 --- a/mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java +++ b/mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java @@ -1000,11 +1000,11 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag vo.setSwitchStatusId(item.getCpmId()); break; case "3": - vo.setFrequencySet(BigDecimal.valueOf(item.getCurValue().intValue())); + vo.setFrequencySet(item.getCurValue()); vo.setFrequencySetId(item.getCpmId()); break; case "4": - vo.setFrequency(BigDecimal.valueOf(item.getCurValue().intValue())); + vo.setFrequency(item.getCurValue()); vo.setFrequencyId(item.getCpmId()); break; case "5": @@ -1033,19 +1033,19 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag vo.setWaterLevelId(item.getCpmId()); break; case "12": - vo.setTemp(BigDecimal.valueOf(item.getCurValue().intValue())); + vo.setTemp(item.getCurValue()); vo.setTempId(item.getCpmId()); break; case "13": - vo.setPressure(BigDecimal.valueOf(item.getCurValue().intValue())); + vo.setPressure(item.getCurValue()); vo.setPressureId(item.getCpmId()); break; case "14": - vo.setTempSet(BigDecimal.valueOf(item.getCurValue().intValue())); + vo.setTempSet(item.getCurValue()); vo.setTempSetId(item.getCpmId()); break; case "15": - vo.setPressureSet(BigDecimal.valueOf(item.getCurValue().intValue())); + vo.setPressureSet(item.getCurValue()); vo.setPressureSetId(item.getCpmId()); break; case "34": diff --git a/mh-system/src/main/java/com/mh/system/service/impl/SysMenuServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/impl/SysMenuServiceImpl.java index 3db4904..c23d439 100644 --- a/mh-system/src/main/java/com/mh/system/service/impl/SysMenuServiceImpl.java +++ b/mh-system/src/main/java/com/mh/system/service/impl/SysMenuServiceImpl.java @@ -162,7 +162,7 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 路由列表 */ @Override - public List buildMenus(List menus) + public List buildMenus(List menus, Long userId) { List routers = new LinkedList(); for (SysMenu menu : menus) @@ -179,7 +179,7 @@ public class SysMenuServiceImpl implements ISysMenuService { router.setAlwaysShow(true); router.setRedirect("noRedirect"); - router.setChildren(buildMenus(cMenus)); + router.setChildren(buildMenus(cMenus, userId)); } else if (isMenuFrame(menu)) { @@ -210,6 +210,10 @@ public class SysMenuServiceImpl implements ISysMenuService } routers.add(router); } + if (10005L == userId) { + // 过滤掉name=Tool,Monitor,System菜单以及对应子菜单 + routers.removeIf(router -> "Tool".equals(router.getName()) || "Monitor".equals(router.getName()) || "System".equals(router.getName())); + } return routers; } diff --git a/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java index ced8bce..567fd94 100644 --- a/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java +++ b/mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java @@ -98,12 +98,14 @@ public class ProOverviewServiceImpl implements IProOverviewService { List realInAndOutTempParams = queryCollectionParams("12", "1", 140, null, true); BigDecimal avgInTemp = new BigDecimal("0.00"); BigDecimal avgOutTemp = new BigDecimal("0.00"); + BigDecimal avgInTemp1 = new BigDecimal("0.00"); + BigDecimal avgOutTemp1 = new BigDecimal("0.00"); if (null != realInAndOutTempParams && !realInAndOutTempParams.isEmpty()) { - // 查询供水温度的平均值 + // 查询高中区供水温度的平均值 List filteredValues = realInAndOutTempParams.stream() .filter(param -> param != null && param.getOtherName() != null - && param.getOtherName().contains("供水")) + && (param.getOtherName().contains("高区供水") || param.getOtherName().contains("中区供水"))) .map(CollectionParamsManage::getCurValue) .filter(Objects::nonNull) .toList(); @@ -114,11 +116,11 @@ public class ProOverviewServiceImpl implements IProOverviewService { avgOutTemp = filteredValues.isEmpty() ? BigDecimal.ZERO : sum.divide(BigDecimal.valueOf(filteredValues.size()), 2, BigDecimal.ROUND_HALF_UP); - // 查询回水温度的平均值 + // 查询高中区回水温度的平均值 List filteredValues1 = realInAndOutTempParams.stream() .filter(param -> param != null && param.getOtherName() != null - && param.getOtherName().contains("回水")) + && (param.getOtherName().contains("高区回水") || param.getOtherName().contains("中区回水"))) .map(CollectionParamsManage::getCurValue) .filter(Objects::nonNull) .toList(); @@ -128,12 +130,44 @@ public class ProOverviewServiceImpl implements IProOverviewService { avgInTemp = filteredValues1.isEmpty() ? BigDecimal.ZERO : sum1.divide(BigDecimal.valueOf(filteredValues1.size()), 2, BigDecimal.ROUND_HALF_UP); + + // 查询裙楼中厨供水温度的平均值 + List filteredValues2 = realInAndOutTempParams.stream() + .filter(param -> param != null + && param.getOtherName() != null + && (param.getOtherName().contains("裙楼供水") || param.getOtherName().contains("中厨供水"))) + .map(CollectionParamsManage::getCurValue) + .filter(Objects::nonNull) + .toList(); + + BigDecimal sum2 = filteredValues2.stream() + .reduce(BigDecimal.ZERO, BigDecimal::add); + + avgOutTemp1 = filteredValues2.isEmpty() ? BigDecimal.ZERO : + sum2.divide(BigDecimal.valueOf(filteredValues2.size()), 2, BigDecimal.ROUND_HALF_UP); + + // 查询裙楼中厨回水温度的平均值 + List filteredValues3 = realInAndOutTempParams.stream() + .filter(param -> param != null + && param.getOtherName() != null + && (param.getOtherName().contains("裙楼回水") || param.getOtherName().contains("中厨回水"))) + .map(CollectionParamsManage::getCurValue) + .filter(Objects::nonNull) + .toList(); + + BigDecimal sum3 = filteredValues3.stream() + .reduce(BigDecimal.ZERO, BigDecimal::add); + + avgInTemp1 = filteredValues3.isEmpty() ? BigDecimal.ZERO : + sum3.divide(BigDecimal.valueOf(filteredValues3.size()), 2, BigDecimal.ROUND_HALF_UP); } - ColumnFilter inTempColumn = new ColumnFilter("回水平均温度", avgInTemp.toString()); - ColumnFilter outTempColumn = new ColumnFilter("供水平均温度", avgOutTemp.toString()); + ColumnFilter inTempColumn = new ColumnFilter("高中区回水平均温度", avgInTemp.toString()); + ColumnFilter outTempColumn = new ColumnFilter("高中区供水平均温度", avgOutTemp.toString()); + ColumnFilter inTempColumn1 = new ColumnFilter("裙楼中厨回水平均温度", avgInTemp1.toString()); + ColumnFilter outTempColumn1 = new ColumnFilter("裙楼中厨供水平均温度", avgOutTemp1.toString()); DeviceMonitorDTO deviceMonitorDTO2 = new DeviceMonitorDTO(); deviceMonitorDTO2.setName(sysDictData.getDictLabel()); - deviceMonitorDTO2.setValues(Stream.of(inTempColumn, outTempColumn).collect(Collectors.toList())); + deviceMonitorDTO2.setValues(Stream.of(inTempColumn, outTempColumn, inTempColumn1, outTempColumn1).collect(Collectors.toList())); deviceMonitorDTOList.add(deviceMonitorDTO2); break; case 2: @@ -291,7 +325,7 @@ public class ProOverviewServiceImpl implements IProOverviewService { case "18": return "总用水量"; case "19": - return "总用气量"; + return "总蒸汽流量"; default: throw new IllegalArgumentException("Invalid param type: " + paramType); }