From 5e2d78f61bf7d1513d5d5c8cd55442133a6e898e Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 14 七月 2025 18:23:36 +0800
Subject: [PATCH] 保洁巡检本周代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java |  158 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 135 insertions(+), 23 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
index aa13f5f..4fc03de 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
@@ -229,8 +229,20 @@
             }
             // 超级管理员 查询所有任务列表
             List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
-                    .between(TTask::getImplementTime, startTime, endTime));
+                    .in(TTask::getPatrolInspector, userId));
             if(CollectionUtils.isEmpty(query.getProjectId())){
+                // 查询点位类型
+//                if(StringUtils.isNotEmpty(query.getLocationTypeId())){
+//                    // 查询点位
+//                    List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class)
+//                            .in(TLocation::getLocationType, query.getLocationTypeId()));
+//                    if(!CollectionUtils.isEmpty(locationList)){
+//                        List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList());
+//                        taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+//                                .in(TTask::getLocationId, locationIds)
+//                                .between(TTask::getImplementTime, startTime, endTime));
+//                    }
+//                }
                 // 查询所有项目部的任务列表
                 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                         .eq(TProjectDept::getStatus, 1));
@@ -459,18 +471,23 @@
                 list.addAll(taskList);
             }
             list = list.stream().distinct().collect(Collectors.toList());
-            map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count());
+            int timeoutWarn = 0;
             int unqualifiedWarn = 0;
             List<TEarlyWarning> earlyWarnings = earlyWarningService.list(Wrappers.lambdaQuery(TEarlyWarning.class));
             if(CollectionUtils.isEmpty(earlyWarnings)){
                 map.put("unqualifiedWarn", unqualifiedWarn);
             }else {
                 // 将earlyWarnings列表的taskId用逗号拼接
-                String taskIds = earlyWarnings.stream().map(TEarlyWarning::getTaskId).collect(Collectors.joining(","));
-                for (TTask task : list) {
-                    if(taskIds.contains(task.getId())){
-                        unqualifiedWarn++;
-                    }
+                List<TEarlyWarning> timeoutWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 1).collect(Collectors.toList());
+                for (TEarlyWarning earlyWarning : timeoutWarnList) {
+                    List<TTask> timeoutWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList());
+                    timeoutWarn = timeoutWarn + timeoutWarnTasks.size();
+                }
+                map.put("timeoutWarn", timeoutWarn);
+                List<TEarlyWarning> unqualifiedWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 2).collect(Collectors.toList());
+                for (TEarlyWarning earlyWarning : unqualifiedWarnList) {
+                    List<TTask> unqualifiedWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList());
+                    unqualifiedWarn = unqualifiedWarn + unqualifiedWarnTasks.size();
                 }
                 map.put("unqualifiedWarn", unqualifiedWarn);
             }
@@ -487,9 +504,20 @@
                 }
             }
             // 超级管理员 查询所有的任务列表
-            List<TTask> taskList = new ArrayList<>();
+            List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+                    .in(TTask::getPatrolInspector, userId));
             if(CollectionUtils.isEmpty(query.getProjectId())){
-                taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class));
+//                // 查询点位类型
+//                if(StringUtils.isEmpty(query.getLocationTypeId())){
+//                    // 查询点位
+//                    List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class)
+//                            .in(TLocation::getLocationType, query.getLocationTypeId()));
+//                    if(!CollectionUtils.isEmpty(locationList)){
+//                        List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList());
+//                        taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+//                                .in(TTask::getLocationId, locationIds));
+//                    }
+//                }
                 // 查询所有项目部的任务列表
                 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                         .eq(TProjectDept::getStatus, 1));
@@ -514,18 +542,23 @@
                 list.addAll(taskList);
             }
             list = list.stream().distinct().collect(Collectors.toList());
-            map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count());
+            int timeoutWarn = 0;
             int unqualifiedWarn = 0;
             List<TEarlyWarning> earlyWarnings = earlyWarningService.list(Wrappers.lambdaQuery(TEarlyWarning.class));
             if(CollectionUtils.isEmpty(earlyWarnings)){
                 map.put("unqualifiedWarn", unqualifiedWarn);
             }else {
                 // 将earlyWarnings列表的taskId用逗号拼接
-                String taskIds = earlyWarnings.stream().map(TEarlyWarning::getTaskId).collect(Collectors.joining(","));
-                for (TTask task : list) {
-                    if(taskIds.contains(task.getId())){
-                        unqualifiedWarn++;
-                    }
+                List<TEarlyWarning> timeoutWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 1).collect(Collectors.toList());
+                for (TEarlyWarning earlyWarning : timeoutWarnList) {
+                    List<TTask> timeoutWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList());
+                    timeoutWarn = timeoutWarn + timeoutWarnTasks.size();
+                }
+                map.put("timeoutWarn", timeoutWarn);
+                List<TEarlyWarning> unqualifiedWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 2).collect(Collectors.toList());
+                for (TEarlyWarning earlyWarning : unqualifiedWarnList) {
+                    List<TTask> unqualifiedWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList());
+                    unqualifiedWarn = unqualifiedWarn + unqualifiedWarnTasks.size();
                 }
                 map.put("unqualifiedWarn", unqualifiedWarn);
             }
@@ -613,6 +646,15 @@
                     .eq(TTaskDetail::getClearStatus, 2)
                     .eq(TTaskDetail::getHandleType,1)
                     .orderByDesc(TTaskDetail::getCreateTime));
+            taskDetails = new ArrayList<>(taskDetails.stream()
+                    .collect(Collectors.groupingBy(
+                            TTaskDetail::getTaskId,
+                            Collectors.collectingAndThen(
+                                    Collectors.toList(),
+                                    listAll -> listAll.get(0)
+                            )
+                    ))
+                    .values());
             List<TTaskDetail> taskDetailList = new ArrayList<>();
             for (TTask task : list) {
                 TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null);
@@ -647,9 +689,20 @@
                 }
             }
             // 超级管理员 查询所有的任务列表
-            List<TTask> taskList = new ArrayList<>();
+            List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+                    .in(TTask::getPatrolInspector, userId));
             if(CollectionUtils.isEmpty(query.getProjectId())){
-                taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class));
+                // 查询点位类型
+//                if(StringUtils.isNotEmpty(query.getLocationTypeId())){
+//                    // 查询点位
+//                    List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class)
+//                            .in(TLocation::getLocationType, query.getLocationTypeId()));
+//                    if(!CollectionUtils.isEmpty(locationList)){
+//                        List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList());
+//                        taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+//                                .in(TTask::getLocationId, locationIds));
+//                    }
+//                }
                 // 查询所有项目部的任务列表
                 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                         .eq(TProjectDept::getStatus, 1));
@@ -686,6 +739,15 @@
                     .eq(TTaskDetail::getHandleType,1)
                     .eq(TTaskDetail::getClearStatus, 2)
                     .orderByDesc(TTaskDetail::getCreateTime));
+            taskDetails = new ArrayList<>(taskDetails.stream()
+                    .collect(Collectors.groupingBy(
+                            TTaskDetail::getTaskId,
+                            Collectors.collectingAndThen(
+                                    Collectors.toList(),
+                                    listAll -> listAll.get(0)
+                            )
+                    ))
+                    .values());
             List<TTaskDetail> taskDetailList = new ArrayList<>();
             for (TTask task : list) {
                 TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null);
@@ -934,8 +996,20 @@
             }
             // 超级管理员 查询所有的任务列表
             List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
-                    .between(TTask::getImplementTime, startTime, endTime));
+                    .in(TTask::getPatrolInspector, userId));
             if(CollectionUtils.isEmpty(query.getProjectId())){
+                // 查询点位类型
+//                if(StringUtils.isNotEmpty(query.getLocationTypeId())){
+//                    // 查询点位
+//                    List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class)
+//                            .in(TLocation::getLocationType, query.getLocationTypeId()));
+//                    if(!CollectionUtils.isEmpty(locationList)){
+//                        List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList());
+//                        taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+//                                .in(TTask::getLocationId, locationIds)
+//                                .between(TTask::getImplementTime, startTime, endTime));
+//                    }
+//                }
                 // 查询所有项目部的任务列表
                 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                         .eq(TProjectDept::getStatus, 1)
@@ -1177,10 +1251,21 @@
                 map.put("totalLocationNum", locationList.size());
             }
             // 超级管理员 查询所有的任务列表
-            List<TTask> taskList = new ArrayList<>();
+            List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+                    .in(TTask::getPatrolInspector, userId));
             if(CollectionUtils.isEmpty(query.getProjectId())){
-                taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
-                        .between(TTask::getImplementTime, startTime, endTime));
+                // 查询点位类型
+//                if(StringUtils.isNotEmpty(query.getLocationTypeId())){
+//                    // 查询点位
+//                    List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class)
+//                            .in(TLocation::getLocationType, query.getLocationTypeId()));
+//                    if(!CollectionUtils.isEmpty(locationList)){
+//                        List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList());
+//                        taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
+//                                .in(TTask::getLocationId, locationIds)
+//                                .between(TTask::getImplementTime, startTime, endTime));
+//                    }
+//                }
                 // 查询所有项目部的任务列表
                 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                         .eq(TProjectDept::getStatus, 1));
@@ -1241,7 +1326,17 @@
         List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList());
         List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class)
                 .in(TTaskDetail::getTaskId, taskIds)
+                .eq(TTaskDetail::getHandleType,1)
                 .orderByDesc(TTaskDetail::getCreateTime));
+        taskDetails = new ArrayList<>(taskDetails.stream()
+                .collect(Collectors.groupingBy(
+                        TTaskDetail::getTaskId,
+                        Collectors.collectingAndThen(
+                                Collectors.toList(),
+                                listAll -> listAll.get(0)
+                        )
+                ))
+                .values());
         int qualifiedWarn = 0;
         for (TTask task : list) {
             TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null);
@@ -1341,9 +1436,26 @@
         List<TTask> tasks = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)
                 .in(TTask::getLocationId, locationIds));
 
+        // 查询片区负责人
+        List<SysUser> users = sysUserService.selectUserByNickName("片区负责人");
+
         for (TLocation tLocation : locationList) {
-            long count = tasks.stream().filter(task -> task.getLocationId().equals(tLocation.getId())).count();
-            tLocation.setTaskNum(count);
+            if(!CollectionUtils.isEmpty(users)){
+                List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
+                List<TTask> taskList = taskCleanService.lambdaQuery().notIn(TTask::getPatrolInspector, userIds).list();
+                if(!CollectionUtils.isEmpty(taskList)){
+                    List<String> collect = taskList.stream().map(TTask::getId).collect(Collectors.toList());
+                    long count = taskList.stream().filter(task -> task.getLocationId().equals(tLocation.getId())
+                        && collect.contains(task.getId())).count();
+                    tLocation.setTaskNum(count);
+                }else {
+                    long count = tasks.stream().filter(task -> task.getLocationId().equals(tLocation.getId())).count();
+                    tLocation.setTaskNum(count);
+                }
+            }else {
+                long count = tasks.stream().filter(task -> task.getLocationId().equals(tLocation.getId())).count();
+                tLocation.setTaskNum(count);
+            }
         }
         return R.ok(locationList);
     }

--
Gitblit v1.7.1