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/WorkbenchesController.java |  188 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 162 insertions(+), 26 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 1f7c0b0..e8fd4c7 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
@@ -204,6 +204,10 @@
                     }
                     query.setProjectId(projectIds);
                 }
+
+                // 巡检员数
+                Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType);
+                map.put("totalEmployeeNum", totalEmployeeNum);
             }else {
                 // 公司人员
                 // 查询自己的任务列表
@@ -218,6 +222,9 @@
                         query.setProjectId(projectIds);
                     }
                 }
+                // 巡检员数
+                Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),1);
+                map.put("totalEmployeeNum", totalEmployeeNum+1);
             }
 
             // 查询片区
@@ -253,9 +260,20 @@
                 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));
+                // 查询点位类型
+//                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));
@@ -283,6 +301,16 @@
                 list.addAll(taskList);
             }
             list = list.stream().distinct().collect(Collectors.toList());
+
+            // 巡检员数
+            if(CollectionUtils.isEmpty(query.getProjectId())){
+                Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType);
+                Integer totalEmployeeNum1 = sysUserService.selectUserCount(query.getProjectId(),1);
+                map.put("totalEmployeeNum", totalEmployeeNum+totalEmployeeNum1);
+            }else {
+                Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),1);
+                map.put("totalEmployeeNum", totalEmployeeNum);
+            }
         }
 
         // 查询任务相关数据
@@ -294,11 +322,11 @@
         map.put("waitTaskNum", list.stream().filter(tTask -> tTask.getStatus() == 1).count());
 
         // 总计员工数
-        Integer totalEmployeeNum = sysUserService.selectUserCount(null,deptType);
-        if (deptType != 1) {
-            totalEmployeeNum = totalEmployeeNum + 1;
-        }
-        map.put("totalEmployeeNum", totalEmployeeNum);
+//        Integer totalEmployeeNum = sysUserService.selectUserCount(null,deptType);
+//        if (deptType != 1) {
+//            totalEmployeeNum = totalEmployeeNum + 1;
+//        }
+//        map.put("totalEmployeeNum", totalEmployeeNum);
 
         // 今日请假员工数量
         List<TLeave> leaves = leaveService.list(Wrappers.lambdaQuery(TLeave.class)
@@ -444,10 +472,21 @@
                 }
             }
             // 超级管理员 查询所有的任务列表
-            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, query.getStartTime(), query.getEndTime()));
+                // 查询点位类型
+//                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, query.getStartTime(), query.getEndTime()));
+//                    }
+//                }
                 // 查询所有项目部的任务列表
                 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class)
                         .eq(TProjectDept::getStatus, 1));
@@ -499,12 +538,38 @@
                 && task.getStatus() != 3 && task.getStatus() != 4).collect(Collectors.toList());
         if(CollectionUtils.isEmpty(tasks)){
             taskSituationVO.setPassRate(BigDecimal.ZERO);
+            for (long i = 0; i <= daysBetween; i++) {
+                TaskSituationDayVO taskSituationDayVO = new TaskSituationDayVO();
+                if(i == 0){
+                    format = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                }else {
+                    format = DateUtils.stringToLocalDate(format).plusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                }
+                taskSituationDayVO.setTaskTime(format);
+                // 任务数
+                taskSituationDayVO.setTaskNum(0);
+                // 完成数
+                taskSituationDayVO.setCompletedNum(0);
+                taskSituationDayVO.setCompleteRate(BigDecimal.ZERO);
+                taskSituationDayVOList.add(taskSituationDayVO);
+            }
+            taskSituationVO.setTaskSituationDayVO(taskSituationDayVOList);
             return R.ok(taskSituationVO);
         }
         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);
@@ -541,7 +606,7 @@
             if(tTasks.isEmpty()){
                 taskSituationDayVO.setCompleteRate(BigDecimal.ZERO);
             }else {
-                taskSituationDayVO.setCompleteRate(new BigDecimal(qualifiedWarnChild).divide(new BigDecimal(tTasks.size()), 2, RoundingMode.HALF_DOWN));
+                taskSituationDayVO.setCompleteRate(new BigDecimal(qualifiedWarnChild).divide(new BigDecimal(taskSituationDayVO.getCompletedNum()), 2, RoundingMode.HALF_DOWN));
             }
             taskSituationDayVOList.add(taskSituationDayVO);
         }
@@ -563,6 +628,9 @@
         String startTime = LocalDate.now() + " 00:00:00";
         String endTime = LocalDate.now() + " 23:59:59";
 //        wrapper.between(TTask::getImplementTime, startTime, endTime);
+
+        List<TTask> result = new ArrayList<>();
+
         if (userId != 1L) {
             // 查询点位类型
             if(StringUtils.isNotEmpty(query.getLocationTypeId())){
@@ -645,6 +713,20 @@
                 }
             }
 
+            for (TTask task : list) {
+                TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null);
+                if(Objects.nonNull(tLocation)) {
+                    task.setLocationName(tLocation.getLocationName());
+                }
+            }
+
+            for (TEarlyWarning earlyWarning : earlyWarnings) {
+                List<TTask> tTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList());
+                tTasks.forEach(task -> {
+                    task.setWarningType(earlyWarning.getWarningType());
+                });
+                result.addAll(tTasks);
+            }
 //            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)){
@@ -668,13 +750,7 @@
 //                    }
 //                }
 //            }
-//            for (TTask task : result) {
-//                TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null);
-//                if(Objects.nonNull(tLocation)) {
-//                    task.setLocationName(tLocation.getLocationName());
-//                }
-//            }
-            return R.ok(list);
+            return R.ok(result);
         }else {
             // 超级管理员
             // 查询点位类型
@@ -689,8 +765,19 @@
             }
             // 超级管理员 查询所有的任务列表
             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));
@@ -734,6 +821,21 @@
                 }
             }
 
+            for (TTask task : list) {
+                TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null);
+                if(Objects.nonNull(tLocation)) {
+                    task.setLocationName(tLocation.getLocationName());
+                }
+            }
+
+            for (TEarlyWarning earlyWarning : earlyWarnings) {
+                List<TTask> tTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList());
+                tTasks.forEach(task -> {
+                    task.setWarningType(earlyWarning.getWarningType());
+                });
+                result.addAll(tTasks);
+            }
+
 //            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)){
@@ -763,7 +865,7 @@
 //                    task.setLocationName(tLocation.getLocationName());
 //                }
 //            }
-            return R.ok(list);
+            return R.ok(result);
         }
     }
 
@@ -859,9 +961,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));
@@ -1019,9 +1132,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));
@@ -1196,6 +1320,7 @@
                 analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size());
                 analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO);
             }
+            analysisUnqualifiedCleaningDetailVOS.sort(Comparator.comparingInt(AnalysisUnqualifiedCleaningDetailVO::getCount).reversed());
             analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS);
         }else {
             // 超级管理员
@@ -1210,9 +1335,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));

--
Gitblit v1.7.1