From 685e8c6d6eb33d883f41f4d9470d9909ac074d16 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 10 七月 2025 11:09:28 +0800
Subject: [PATCH] 保洁巡检本周代码

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java |   55 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
index 28d0bff..ac756dc 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
@@ -301,7 +301,8 @@
         }
         return R.ok(projectDeptListNoLimitVOS);
     }
-
+@Resource
+private TNoticeService noticeService;
     @ApiOperation(value = "首页")
     @PostMapping(value = "/index")
     public R<IndexVO> index(@RequestBody IndexDTO dto) throws IOException {
@@ -309,7 +310,12 @@
 //            return R.fail("请上传经纬度");
 //        }
         IndexVO res = new IndexVO();
+        res.setIsNotice(0);
         Long userId = tokenService.getLoginUserApplet().getUserId();
+        Long count = noticeService.lambdaQuery().eq(TNotice::getUserId, userId).eq(TNotice::getStatus, 1).count();
+        if (count>0){
+            res.setIsNotice(1);
+        }
         List<TLocation> locationList = locationService.list();
         List<TLocationType> locationTypeList = locationTypeService.list();
         List<TTask> taskAll = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId).list();
@@ -330,7 +336,7 @@
 
                 TProjectDept projectDept = projectDeptService.getById(sysUser.getDeptId());
                 if (projectDept != null) {
-                    if (!"0".equals(projectDept.getParentId())) {
+                    if ("0".equals(projectDept.getParentId())) {
                         // 查询片区下的所有人员
                         users = sysUsers.stream().filter(e -> e.getDeptId()
                                 .equals(projectDept.getId())
@@ -357,11 +363,11 @@
             } else {
                 TDept dept = deptService.getById(sysUser.getDeptId());
                 if (dept != null) {
-                    if (!dept.getDeptName().equals("公司")) {
-                        users = sysUsers.stream().filter(e -> e.getDeptId()
+                    if (!dept.getDeptName().contains("公司")) {
+                        users = sysUsers.stream().filter(e -> (e.getDeptId()
                                 .equals(sysUser.getDeptId())
-                                && e.getStatus().equals("0")
-                                && e.getDeptType() == 1).collect(Collectors.toList());
+                                && e.getStatus().equals("0"))
+                                || e.getDeptType() == 1).collect(Collectors.toList());
                     }
                 }
 
@@ -390,9 +396,9 @@
 
                 List<TTaskDetail> status3 = taskDetails.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList());
                 List<TTaskDetail> status4 = taskDetails.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList());
-                if (status3.size() + status4.size() != 0) {
-                    BigDecimal divide = new BigDecimal(status3.size() + status4.size())
-                            .divide(new BigDecimal(status3.size()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100));
+                if (!status3.isEmpty()) {
+                    BigDecimal divide = new BigDecimal(status3.size() )
+                            .divide(new BigDecimal(status3.size()+ status4.size()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100));
                     res.setRate(divide);
                 } else {
                     res.setRate(new BigDecimal(0));
@@ -423,6 +429,7 @@
             leaveUserListVO.setCreateTime1(tLeave.getCreateTime());
             leaveUserListVO.setStartTime1(tLeave.getStartTime());
             leaveUserListVO.setEndTime1(tLeave.getEndTime());
+            leaveList.add(leaveUserListVO);
         }
         List<TTask> taskList = taskAll.stream().filter(e -> e.getPatrolInspector().equals(userId + "") && e.getStatus() == 4).collect(Collectors.toList());
         List<String> taskIds = taskList.stream().map(TTask::getId).collect(Collectors.toList());
@@ -440,7 +447,6 @@
                 taskTodayVO.setLocationLon(tLocation.getLocationLon());
                 taskTodayVO.setLocationLat(tLocation.getLocationLat());
                 taskTodayVO.setLocationName(tLocation.getLocationName());
-                // todo
                 if(StringUtils.hasLength(dto.getLon())){
                     Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
                     if (distance != null) {
@@ -514,6 +520,8 @@
             }
             todayTask.add(taskTodayVO);
         }
+        // 将todayTask进行排序 优先根据status状态排序,优先展示未执行、超时、待整改、待确认、整改完成、已完成,然后状态一样再根据距离排序
+        sortTodayTasks(todayTask);
         res.setTodayTask(todayTask);
         List<TaskTomorrowVO> tomorrowTask = new ArrayList<>();
 
@@ -524,7 +532,34 @@
         }
         Collections.shuffle(tomorrowTask);
         res.setTomorrowTask(tomorrowTask);
+        res.setIsLeave(0);
+        // 查询请假状态
+        List<TLeave> list2 = leaveService.lambdaQuery().eq(TLeave::getLeavePerson, userId)
+                .eq(TLeave::getAuditStatus, 2)
+                .list();
+        for (TLeave tLeave : list2) {
+            LocalDate now = LocalDate.now();
+            LocalDate startDate = tLeave.getStartTime().toLocalDate();
+            LocalDate endDate = tLeave.getStartTime().toLocalDate();
+            if (now.isAfter(startDate) && now.isBefore(endDate)) {
+                res.setIsLeave(1);
+            } else if (now.isEqual(startDate) || now.isEqual(endDate)) {
+                res.setIsLeave(1);
+            }
+        }
         return R.ok(res);
     }
+    public static void sortTodayTasks(List<TaskTodayVO> taskList) {
+        Map<Integer, Integer> statusOrder = new HashMap<>();
+        statusOrder.put(1, 0);
+        statusOrder.put(2, 1);
+        statusOrder.put(4, 2);
+        statusOrder.put(3, 3);
+        statusOrder.put(5, 4);
+        statusOrder.put(6, 5);
+
+        taskList.sort(Comparator.comparingInt((TaskTodayVO o) -> statusOrder.getOrDefault(o.getStatus(), Integer.MAX_VALUE)).thenComparing(TaskTodayVO::getDistance));
+    }
+
 }
 

--
Gitblit v1.7.1