From f287dfb5249618bf821626e76b7ce8d8f74d6b99 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 02 七月 2025 16:15:12 +0800
Subject: [PATCH] 保洁巡检本周代码

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java |   93 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 73 insertions(+), 20 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 b4fc93a..3506451 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
@@ -29,6 +29,7 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -141,7 +142,7 @@
             }
         } else {
             // 根据当前登录人查询部门
-            Long userId = tokenService.getLoginUser().getUserId();
+            Long userId = tokenService.getLoginUserApplet().getUserId();
             SysUser sysUser = sysUserService.selectUserById(userId);
             if (sysUser.getDeptType() == 1) {
                 TProjectDept projectDept = projectDeptService.getById(sysUser.getDeptId());
@@ -180,8 +181,19 @@
         List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper);
         HashMap<String, Integer> taskMap = new HashMap<>();
         HashMap<String, Integer> statusMap = new HashMap<>();
+        statusMap.put("未执行", 0);
+        statusMap.put("超时", 0);
+        statusMap.put("待确认", 0);
+        statusMap.put("已驳回", 0);
+        statusMap.put("已完成", 0);
         HashMap<String, Integer> clearMap = new HashMap<>();
+        clearMap.put("合格", 0);
+        clearMap.put("不合格", 0);
         HashMap<String, Integer> unqualifiedMap = new HashMap<>();
+        List<TDictData> dictData = dataList.stream().filter(e -> e.getDataType() == 2).collect(Collectors.toList());
+        for (TDictData dictDatum : dictData) {
+            unqualifiedMap.put(dictDatum.getDataContent(), 0);
+        }
         for (TTask task : tasks) {
             TProjectDept tProjectDept = projectDepts.stream().filter(e -> e.getId().equals(task.getProjectId())).findFirst().orElse(null);
             if (tProjectDept == null) continue;
@@ -220,7 +232,7 @@
                         temp1.append("不合格");
                         TDictData tDictData = dataList.stream().filter(e -> e.getId().equals(tTaskDetail.getUnqualified())).findFirst().orElse(null);
                         if (tDictData != null){
-                            unqualifiedMap.put(tTaskDetail.getUnqualifiedName(), unqualifiedMap.getOrDefault(tDictData.getDataContent(), 0) + 1);
+                            unqualifiedMap.put(tDictData.getDataContent(), unqualifiedMap.getOrDefault(tDictData.getDataContent(), 0) + 1);
                         }
                         break;
                 }
@@ -289,15 +301,21 @@
         }
         return R.ok(projectDeptListNoLimitVOS);
     }
-
+@Resource
+private TNoticeService noticeService;
     @ApiOperation(value = "首页")
     @PostMapping(value = "/index")
     public R<IndexVO> index(@RequestBody IndexDTO dto) throws IOException {
-        if (!StringUtils.hasLength(dto.getLon()) || !StringUtils.hasLength(dto.getLat())) {
-            return R.fail("请上传经纬度");
-        }
+//        if (!StringUtils.hasLength(dto.getLon()) || !StringUtils.hasLength(dto.getLat())) {
+//            return R.fail("请上传经纬度");
+//        }
         IndexVO res = new IndexVO();
-        Long userId = tokenService.getLoginUser().getUserId();
+        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();
@@ -355,11 +373,12 @@
 
             }
         }
-        List<TaskTodayVO> pendingTask = new ArrayList<>();
+        List<TaskPendingVO> pendingTask = new ArrayList<>();
 
         res.setTotalUserCount(users.size());
         if (!users.isEmpty()) {
-            List<TTask> tasks = taskCleanerService.lambdaQuery().in(TTask::getPatrolInspector, users).list();
+            List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
+            List<TTask> tasks = taskCleanerService.lambdaQuery().in(TTask::getPatrolInspector, userIds).list();
             List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList());
             if (!tasks.isEmpty()) {
                 List<TTask> status1 = tasks.stream().filter(e -> e.getStatus() == 5 || e.getStatus() == 6).collect(Collectors.toList());
@@ -410,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());
@@ -419,7 +439,7 @@
                     .eq(TTaskDetail::getClearStatus, 2)
                     .groupBy(TTaskDetail::getTaskId)
                     .orderByDesc(TTaskDetail::getCreateTime).list();
-            TaskTodayVO taskTodayVO = new TaskTodayVO();
+            TaskPendingVO taskTodayVO = new TaskPendingVO();
             BeanUtils.copyProperties(tTask, taskTodayVO);
             TLocation tLocation = locationList.stream().filter(e -> e.getId().equals(tTask.getLocationId())).findFirst().orElse(null);
             if (tLocation != null) {
@@ -428,10 +448,14 @@
                 taskTodayVO.setLocationLat(tLocation.getLocationLat());
                 taskTodayVO.setLocationName(tLocation.getLocationName());
                 // todo
-                Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
-                if (distance != null) {
-                    taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                } else {
+                if(StringUtils.hasLength(dto.getLon())){
+                    Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
+                    if (distance != null) {
+                        taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+                    } else {
+                        taskTodayVO.setDistance(new BigDecimal("0"));
+                    }
+                }else {
                     taskTodayVO.setDistance(new BigDecimal("0"));
                 }
                 TLocationType tLocationType = locationTypeList.stream().filter(e -> e.getId().equals(tLocation.getLocationType())).findFirst().orElse(null);
@@ -453,10 +477,14 @@
         res.setPendingTask(pendingTask);
         res.setLeaveList(leaveList);
         List<TaskTodayVO> todayTask = new ArrayList<>();
+        List<String> collect = taskAll.stream().map(TTask::getId).collect(Collectors.toList());
         for (TTask tTask : taskToday) {
             TaskTodayVO taskTodayVO = new TaskTodayVO();
+            if(CollectionUtils.isEmpty(collect)){
+                break;
+            }
             List<TTaskDetail> taskDetailsStatus1 = taskDetailService.lambdaQuery()
-                    .eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, taskIds)
+                    .eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, collect)
                     .eq(TTaskDetail::getClearStatus, 2)
                     .groupBy(TTaskDetail::getTaskId)
                     .orderByDesc(TTaskDetail::getCreateTime).list();
@@ -467,10 +495,14 @@
                 taskTodayVO.setLocationLon(tLocation.getLocationLon());
                 taskTodayVO.setLocationLat(tLocation.getLocationLat());
                 taskTodayVO.setLocationName(tLocation.getLocationName());
-                Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
-                if (distance != null) {
-                    taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                } else {
+                if(StringUtils.hasLength(dto.getLon())){
+                    Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
+                    if (distance != null) {
+                        taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+                    } else {
+                        taskTodayVO.setDistance(new BigDecimal("0"));
+                    }
+                }else {
                     taskTodayVO.setDistance(new BigDecimal("0"));
                 }
                 TLocationType tLocationType = locationTypeList.stream().filter(e -> e.getId().equals(tLocation.getLocationType())).findFirst().orElse(null);
@@ -490,9 +522,30 @@
             todayTask.add(taskTodayVO);
         }
         res.setTodayTask(todayTask);
-        List<TaskTodayVO> tomorrowTask = new ArrayList<>(todayTask);
+        List<TaskTomorrowVO> tomorrowTask = new ArrayList<>();
+
+        for (TaskTodayVO taskTodayVO : todayTask) {
+            TaskTomorrowVO taskTomorrowVO = new TaskTomorrowVO();
+            BeanUtils.copyProperties(taskTodayVO, taskTomorrowVO);
+            tomorrowTask.add(taskTomorrowVO);
+        }
         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);
     }
 }

--
Gitblit v1.7.1