From d8ad5605a031477c252e029149a4735a1a20ffbd Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 11 七月 2025 20:46:27 +0800
Subject: [PATCH] 保洁巡检本周代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java
index 931929f..96bf44f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java
@@ -221,6 +221,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
                 // 查询点位数
                 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class)
@@ -236,6 +237,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
         }else {
             // 超级管理员
             // 查询点位类型
@@ -264,6 +266,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
                 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class)
                         .in(TLocation::getProjectId, query.getProjectId()));
@@ -278,6 +281,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
         }
 
         // 查询任务相关数据
@@ -289,7 +293,7 @@
         map.put("waitTaskNum", list.stream().filter(tTask -> tTask.getStatus() == 1).count());
 
         // 总计员工数
-        Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType);
+        Integer totalEmployeeNum = sysUserService.selectUserCount(null,deptType);
         if (deptType != 1) {
             totalEmployeeNum = totalEmployeeNum + 1;
         }
@@ -387,6 +391,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -398,6 +403,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
         }else {
             // 超级管理员
             // 查询点位类型
@@ -426,6 +432,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -437,6 +444,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
         }
         // 任务总数
         taskSituationVO.setTotalTaskNum(list.size());
@@ -462,7 +470,7 @@
                 }
             }
         }
-        taskSituationVO.setPassRate(new BigDecimal(qualifiedWarn).divide(new BigDecimal(tasks.size()), 2, RoundingMode.HALF_UP));
+        taskSituationVO.setPassRate(new BigDecimal(qualifiedWarn).divide(new BigDecimal(tasks.size()), 2, RoundingMode.HALF_DOWN));
 
         // 过滤每天的任务
         LocalDateTime start = DateUtils.stringToLocalDateTime(query.getStartTime());
@@ -500,7 +508,7 @@
             if(tTasks.isEmpty()){
                 taskSituationDayVO.setCompleteRate(BigDecimal.ZERO);
             }else {
-                taskSituationDayVO.setCompleteRate(new BigDecimal(qualifiedWarnChild).divide(new BigDecimal(tTasks.size()), 2, RoundingMode.HALF_UP));
+                taskSituationDayVO.setCompleteRate(new BigDecimal(qualifiedWarnChild).divide(new BigDecimal(tTasks.size()), 2, RoundingMode.HALF_DOWN));
             }
             taskSituationDayVOList.add(taskSituationDayVO);
         }
@@ -570,6 +578,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -581,6 +590,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
             List<TTask> result = list.stream().filter(task -> task.getStatus() == 2).collect(Collectors.toList());
             List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList());
             if(CollectionUtils.isEmpty(tasks)){
@@ -639,6 +649,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -650,6 +661,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
             List<TTask> result = list.stream().filter(task -> task.getStatus() == 2).collect(Collectors.toList());
             List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList());
             if(CollectionUtils.isEmpty(tasks)){
@@ -741,6 +753,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -752,6 +765,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
             List<TTask> result = list.stream().filter(task -> task.getStatus() == 3).collect(Collectors.toList());
             for (TTask task : result) {
                 TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null);
@@ -787,6 +801,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -798,6 +813,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
             List<TTask> result = list.stream().filter(task -> task.getStatus() == 3).collect(Collectors.toList());
             for (TTask task : result) {
                 TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null);
@@ -864,6 +880,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -875,6 +892,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
             List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList());
             if(CollectionUtils.isEmpty(tasks)){
                 map.put("unqualifiedWarn", 0);
@@ -930,6 +948,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -941,6 +960,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
+            list = list.stream().distinct().collect(Collectors.toList());
             List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList());
             if(CollectionUtils.isEmpty(tasks)){
                 map.put("unqualifiedWarn", 0);
@@ -1028,6 +1048,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -1039,7 +1060,7 @@
             if(!CollectionUtils.isEmpty(taskList)){
                 list.addAll(taskList);
             }
-
+            list = list.stream().distinct().collect(Collectors.toList());
             List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList());
             if(CollectionUtils.isEmpty(tasks)){
                 return R.ok();
@@ -1048,8 +1069,17 @@
             List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class)
                     .in(TTaskDetail::getTaskId, taskIds)
                     .eq(TTaskDetail::getClearStatus, 2)
-                            .eq(TTaskDetail::getHandleType,1)
+                    .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);
@@ -1098,6 +1128,7 @@
 
             // 查询片区
             if(!CollectionUtils.isEmpty(query.getProjectId())){
+                query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList()));
                 wrapper.in(TTask::getProjectId, query.getProjectId());
             }
 
@@ -1110,6 +1141,8 @@
                 list.addAll(taskList);
             }
 
+            list = list.stream().distinct().collect(Collectors.toList());
+
             List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList());
             if(CollectionUtils.isEmpty(tasks)){
                 return R.ok();
@@ -1117,8 +1150,18 @@
             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)
                     .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);
@@ -1139,6 +1182,8 @@
                 analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size());
                 analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO);
             }
+            // 按照数量倒序排序
+            analysisUnqualifiedCleaningDetailVOS.sort(Comparator.comparingInt(AnalysisUnqualifiedCleaningDetailVO::getCount).reversed());
             analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS);
         }
 

--
Gitblit v1.7.1