Преглед на файлове

pms 瑞恒看板 日报汇总页面 统一设备利用率的计算逻辑。

zhangcl преди 1 ден
родител
ревизия
8cdccf8b86

+ 6 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrhdailyreport/IotRhDailyReportController.java

@@ -518,6 +518,8 @@ public class IotRhDailyReportController {
         Set<String> projectDeptNames = new HashSet<>();
         // 项目部id集合
         Set<Long> projectDeptIds = new HashSet<>();
+        // 队伍id集合
+        Set<Long> teamIds = new HashSet<>();
         // key项目部id   value项目部名称
         Map<Long, String> projectPair = new HashMap<>();
         // key施工队伍id   value状态为LY的项目部id
@@ -563,12 +565,15 @@ public class IotRhDailyReportController {
                         projectDeptNames.add(dept.getName());
                         projectPair.put(departmentId, dept.getName());
                     }
+                    if ("3".equals(dept.getType())) {
+                        teamIds.add(departmentId);
+                    }
                 });
                 // 遍历所有部门 只筛选出有设备的队伍
                 allDeptPair.forEach((departmentId, dept) -> {
                     // 不需要找出每个项目部下的队伍 根据筛选的日期和部门 统计数据
                     if (haveDeviceDeptIds.contains(departmentId)) {
-                        if (projectPair.containsKey(dept.getParentId())) {
+                        if (projectPair.containsKey(dept.getParentId()) && teamIds.contains(departmentId)) {
                             // 获得队伍的上级项目部(LY状态的项目部)
                             teamProjectIdPair.put(dept.getId(), dept.getParentId());
                         }

+ 3 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java

@@ -1413,7 +1413,9 @@ public class IotStaticController {
             // 将日期格式转换成 字符串
             String reportDateStr = LocalDateTimeUtil.format(reportLocalDate, DatePattern.NORM_DATE_PATTERN);
             Long deptId = report.getDeptId();
-            if (haveDeviceDeptIds.contains(deptId)) {
+            BigDecimal dailyGasInjection = report.getDailyGasInjection();
+            BigDecimal dailyWaterInjection = report.getDailyWaterInjection();
+            if (haveDeviceDeptIds.contains(deptId) && dailyGasInjection.compareTo(BigDecimal.ZERO)>0 || dailyWaterInjection.compareTo(BigDecimal.ZERO)>0) {
                 if (dateReportCountPair.containsKey(reportDateStr)) {
                     Integer tempNum = dateReportCountPair.get(reportDateStr);
                     dateReportCountPair.put(reportDateStr, ++tempNum);