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 | 68 ++++++++++++++++++++++++++++----- 1 files changed, 57 insertions(+), 11 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 2931add..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 @@ -181,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; @@ -221,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; } @@ -290,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 { @@ -298,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(); @@ -319,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()) @@ -346,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()); } } @@ -379,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)); @@ -412,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()); @@ -429,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) { @@ -503,6 +520,8 @@ } todayTask.add(taskTodayVO); } + // 将todayTask进行排序 优先根据status状态排序,优先展示未执行、超时、待整改、待确认、整改完成、已完成,然后状态一样再根据距离排序 + sortTodayTasks(todayTask); res.setTodayTask(todayTask); List<TaskTomorrowVO> tomorrowTask = new ArrayList<>(); @@ -513,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