From 4b8477f30194cf6dea7f1cecf405e29efb0f7bed Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 12 七月 2025 14:51:19 +0800 Subject: [PATCH] 保洁巡检本周代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java | 416 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 295 insertions(+), 121 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 61560a3..5501de8 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 @@ -65,7 +65,8 @@ private TCleanerService cleanerService; @Resource private TLeaveService leaveService; - + @Resource + private TEarlyWarningService earlyWarningService; @ApiOperation(value = "查询部门 项目部列表 不分页") @GetMapping(value = "/listDepts") public R<List<DeptNoLimitVO>> listDepts() { @@ -196,12 +197,17 @@ .eq(TProjectDept::getStatus, 1) .eq(TProjectDept::getParentId, projectDept.getId())); List<String> ids = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.add(projectDept.getId()); projectIds.addAll(ids); }else { projectIds.add(deptId); } query.setProjectId(projectIds); } + + // 巡检员数 + Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType); + map.put("totalEmployeeNum", totalEmployeeNum); }else { // 公司人员 // 查询自己的任务列表 @@ -210,17 +216,20 @@ if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } + // 巡检员数 + Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),1); + map.put("totalEmployeeNum", totalEmployeeNum+1); } // 查询片区 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 +245,7 @@ if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } + list = list.stream().distinct().collect(Collectors.toList()); }else { // 超级管理员 // 查询点位类型 @@ -250,12 +260,12 @@ map.put("totalLocationNum", locationList.size()); } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); + List<TTask> taskList = new ArrayList<>(); if(CollectionUtils.isEmpty(query.getProjectId())){ + taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -264,6 +274,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 +289,17 @@ if(!CollectionUtils.isEmpty(taskList)){ 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); + } } // 查询任务相关数据 @@ -289,11 +311,11 @@ map.put("waitTaskNum", list.stream().filter(tTask -> tTask.getStatus() == 1).count()); // 总计员工数 - Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),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) @@ -338,6 +360,16 @@ wrapper.between(TTask::getImplementTime, query.getStartTime(), query.getEndTime()); + // 过滤每天的任务 + LocalDateTime start = DateUtils.stringToLocalDateTime(query.getStartTime()); + LocalDateTime end = DateUtils.stringToLocalDateTime(query.getEndTime()); + + long daysBetween = ChronoUnit.DAYS.between(start, end); + List<TaskSituationDayVO> taskSituationDayVOList = new ArrayList<>(); + + LocalDateTime localDateTime = DateUtils.stringToLocalDateTime(query.getStartTime()); + String format = null; + List<TTask> list; if (userId != 1L) { // 查询点位类型 @@ -361,6 +393,7 @@ .eq(TProjectDept::getStatus, 1) .eq(TProjectDept::getParentId, projectDept.getId())); List<String> ids = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.add(projectDept.getId()); projectIds.addAll(ids); }else { projectIds.add(deptId); @@ -376,8 +409,7 @@ if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -387,17 +419,35 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ - return R.ok(); + 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); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } + list = list.stream().distinct().collect(Collectors.toList()); }else { // 超级管理员 // 查询点位类型 @@ -411,13 +461,13 @@ } } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .between(TTask::getImplementTime, query.getStartTime(), query.getEndTime())); + List<TTask> taskList = new ArrayList<>(); if(CollectionUtils.isEmpty(query.getProjectId())){ + taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) + .between(TTask::getImplementTime, query.getStartTime(), query.getEndTime())); // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -426,27 +476,62 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ - return R.ok(); + 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); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } + list = list.stream().distinct().collect(Collectors.toList()); } // 任务总数 taskSituationVO.setTotalTaskNum(list.size()); - List<TTask> result = list.stream().filter(task -> task.getStatus() == 6).collect(Collectors.toList()); + List<TTask> result = list.stream().filter(task -> task.getStatus() == 6 || task.getStatus() == 5).collect(Collectors.toList()); // 已完成任务数 taskSituationVO.setCompletedTaskNum(result.size()); // 匹配任务详情查看合格数量 - List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); + List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2 + && 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()); @@ -462,18 +547,7 @@ } } } - taskSituationVO.setPassRate(new BigDecimal(qualifiedWarn).divide(new BigDecimal(tasks.size()), 2, RoundingMode.HALF_UP)); - - // 过滤每天的任务 - LocalDateTime start = DateUtils.stringToLocalDateTime(query.getStartTime()); - LocalDateTime end = DateUtils.stringToLocalDateTime(query.getEndTime()); - - long daysBetween = ChronoUnit.DAYS.between(start, end); - - List<TaskSituationDayVO> taskSituationDayVOList = new ArrayList<>(); - - LocalDateTime localDateTime = DateUtils.stringToLocalDateTime(query.getStartTime()); - String format = null; + taskSituationVO.setPassRate(new BigDecimal(qualifiedWarn).divide(new BigDecimal(tasks.size()), 2, RoundingMode.HALF_DOWN)); for (long i = 0; i <= daysBetween; i++) { TaskSituationDayVO taskSituationDayVO = new TaskSituationDayVO(); if(i == 0){ @@ -487,7 +561,7 @@ // 任务数 taskSituationDayVO.setTaskNum(tTasks.size()); // 完成数 - taskSituationDayVO.setCompletedNum(tTasks.stream().filter(task -> task.getStatus() == 6).collect(Collectors.toList()).size()); + taskSituationDayVO.setCompletedNum(tTasks.stream().filter(task -> task.getStatus() == 6 || task.getStatus() == 5).collect(Collectors.toList()).size()); int qualifiedWarnChild = 0; for (TTask task : tTasks) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); @@ -500,7 +574,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(taskSituationDayVO.getCompletedNum()), 2, RoundingMode.HALF_DOWN)); } taskSituationDayVOList.add(taskSituationDayVO); } @@ -521,7 +595,7 @@ LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); String startTime = LocalDate.now() + " 00:00:00"; String endTime = LocalDate.now() + " 23:59:59"; - wrapper.between(TTask::getImplementTime, startTime, endTime); +// wrapper.between(TTask::getImplementTime, startTime, endTime); if (userId != 1L) { // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ @@ -544,6 +618,7 @@ .eq(TProjectDept::getStatus, 1) .eq(TProjectDept::getParentId, projectDept.getId())); List<String> ids = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.add(projectDept.getId()); projectIds.addAll(ids); }else { projectIds.add(deptId); @@ -554,13 +629,14 @@ // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .eq(TTask::getPatrolInspector, userId) - .between(TTask::getImplementTime, startTime, endTime)); + .eq(TTask::getPatrolInspector, userId)); +// taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) +// .eq(TTask::getPatrolInspector, userId) +// .between(TTask::getImplementTime, startTime, endTime)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -570,47 +646,68 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ - return R.ok(); + return R.ok(new ArrayList<>()); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } - 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)){ - 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(result); + list = list.stream().distinct().collect(Collectors.toList()); + + // 查询预警数据 + List<TEarlyWarning> earlyWarnings = earlyWarningService.list(Wrappers.lambdaQuery(TEarlyWarning.class) + .between(TEarlyWarning::getCreateTime, startTime, endTime)); + + if(CollectionUtils.isEmpty(earlyWarnings)){ + return R.ok(new ArrayList<>()); } - List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); - List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) - .in(TTaskDetail::getTaskId, taskIds) - .orderByDesc(TTaskDetail::getCreateTime)); - for (TTask task : list) { - TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); - if(Objects.nonNull(tTaskDetail)){ - if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ - result.add(task); - } + + String taskIds = earlyWarnings.stream().map(TEarlyWarning::getTaskId).collect(Collectors.joining(",")); + + Iterator<TTask> iterator = list.iterator(); + while (iterator.hasNext()) { + TTask task = iterator.next(); + if(!taskIds.contains(task.getId())){ + iterator.remove(); } } - 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(result); + +// 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)){ +// 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(result); +// } +// List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); +// List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) +// .in(TTaskDetail::getTaskId, taskIds) +// .orderByDesc(TTaskDetail::getCreateTime)); +// for (TTask task : list) { +// TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); +// if(Objects.nonNull(tTaskDetail)){ +// if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ +// result.add(task); +// } +// } +// } +// 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); }else { // 超级管理员 // 查询点位类型 @@ -629,8 +726,7 @@ if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -639,47 +735,68 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ - return R.ok(); + return R.ok(new ArrayList<>()); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } - 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)){ - 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(result); + list = list.stream().distinct().collect(Collectors.toList()); + + // 查询预警数据 + List<TEarlyWarning> earlyWarnings = earlyWarningService.list(Wrappers.lambdaQuery(TEarlyWarning.class) + .between(TEarlyWarning::getCreateTime, startTime, endTime)); + + if(CollectionUtils.isEmpty(earlyWarnings)){ + return R.ok(new ArrayList<>()); } - List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); - List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) - .in(TTaskDetail::getTaskId, taskIds) - .orderByDesc(TTaskDetail::getCreateTime)); - for (TTask task : list) { - TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); - if(Objects.nonNull(tTaskDetail)){ - if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ - result.add(task); - } + + String taskIds = earlyWarnings.stream().map(TEarlyWarning::getTaskId).collect(Collectors.joining(",")); + + Iterator<TTask> iterator = list.iterator(); + while (iterator.hasNext()) { + TTask task = iterator.next(); + if(!taskIds.contains(task.getId())){ + iterator.remove(); } } - 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(result); + +// 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)){ +// 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(result); +// } +// List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); +// List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) +// .in(TTaskDetail::getTaskId, taskIds) +// .orderByDesc(TTaskDetail::getCreateTime)); +// for (TTask task : list) { +// TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); +// if(Objects.nonNull(tTaskDetail)){ +// if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ +// result.add(task); +// } +// } +// } +// 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); } } @@ -716,6 +833,7 @@ .eq(TProjectDept::getStatus, 1) .eq(TProjectDept::getParentId, projectDept.getId())); List<String> ids = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.add(projectDept.getId()); projectIds.addAll(ids); }else { projectIds.add(deptId); @@ -730,8 +848,7 @@ if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -741,6 +858,7 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } @@ -752,6 +870,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); @@ -773,12 +892,12 @@ } } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); + List<TTask> taskList = new ArrayList<>(); if(CollectionUtils.isEmpty(query.getProjectId())){ + taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -787,6 +906,7 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } @@ -798,6 +918,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); @@ -839,6 +960,7 @@ .eq(TProjectDept::getStatus, 1) .eq(TProjectDept::getParentId, projectDept.getId())); List<String> ids = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.add(projectDept.getId()); projectIds.addAll(ids); }else { projectIds.add(deptId); @@ -853,8 +975,7 @@ if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -864,6 +985,7 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } @@ -875,7 +997,9 @@ if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } - List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); + list = list.stream().distinct().collect(Collectors.toList()); + List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2 + && task.getStatus() != 3 && task.getStatus() != 4).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ map.put("unqualifiedWarn", 0); map.put("qualifiedWarn", 0); @@ -884,7 +1008,19 @@ 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(), + list1 -> list1.get(0) + ) + )) + .values()); + int unqualifiedWarn = 0; int qualifiedWarn = 0; for (TTask task : list) { @@ -916,12 +1052,12 @@ } } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); + List<TTask> taskList = new ArrayList<>(); if(CollectionUtils.isEmpty(query.getProjectId())){ + taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -930,6 +1066,7 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } @@ -941,7 +1078,9 @@ if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } - List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); + list = list.stream().distinct().collect(Collectors.toList()); + List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2 + && task.getStatus() != 3 && task.getStatus() != 4).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ map.put("unqualifiedWarn", 0); map.put("qualifiedWarn", 0); @@ -951,6 +1090,15 @@ List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); + taskDetails = new ArrayList<>(taskDetails.stream() + .collect(Collectors.groupingBy( + TTaskDetail::getTaskId, + Collectors.collectingAndThen( + Collectors.toList(), + list1 -> list1.get(0) + ) + )) + .values()); int unqualifiedWarn = 0; int qualifiedWarn = 0; for (TTask task : list) { @@ -1003,6 +1151,7 @@ .eq(TProjectDept::getStatus, 1) .eq(TProjectDept::getParentId, projectDept.getId())); List<String> ids = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.add(projectDept.getId()); projectIds.addAll(ids); }else { projectIds.add(deptId); @@ -1017,8 +1166,7 @@ if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -1028,6 +1176,7 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } @@ -1039,10 +1188,11 @@ if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } - - List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); + list = list.stream().distinct().collect(Collectors.toList()); + List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2 + && task.getStatus() != 3 && task.getStatus() != 4).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ - return R.ok(); + return R.ok(analysisUnqualifiedCleaningVO); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) @@ -1050,6 +1200,15 @@ .eq(TTaskDetail::getClearStatus, 2) .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); @@ -1084,12 +1243,12 @@ } } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); + List<TTask> taskList = new ArrayList<>(); if(CollectionUtils.isEmpty(query.getProjectId())){ + taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getStatus, 1) - .ne(TProjectDept::getParentId, 0)); + .eq(TProjectDept::getStatus, 1)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); @@ -1098,21 +1257,25 @@ // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ + query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ - return R.ok(); + return R.ok(analysisUnqualifiedCleaningVO); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } - List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); + list = list.stream().distinct().collect(Collectors.toList()); + + List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2 + && task.getStatus() != 3 && task.getStatus() != 4).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ - return R.ok(); + return R.ok(analysisUnqualifiedCleaningVO); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) @@ -1120,6 +1283,15 @@ .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); @@ -1140,6 +1312,8 @@ analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size()); analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO); } + // 按照数量倒序排序 + analysisUnqualifiedCleaningDetailVOS.sort(Comparator.comparingInt(AnalysisUnqualifiedCleaningDetailVO::getCount).reversed()); analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS); } -- Gitblit v1.7.1