From 02bb94e413f6950b9786c5ee86c0937bc20f8ae8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 12 七月 2025 14:42:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java | 242 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 161 insertions(+), 81 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java index f57fade..d0cae9a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java @@ -65,6 +65,8 @@ private TAppealService appealService; @Resource private TDictDataService dictDataService; + @Resource + private TEarlyWarningService earlyWarningService; @ApiOperation(value = "查询片区") @GetMapping(value = "/queryProject") @@ -169,6 +171,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); @@ -184,8 +187,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); @@ -231,8 +233,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); @@ -243,6 +244,9 @@ if(!CollectionUtils.isEmpty(query.getProjectId())){ query.setProjectId(query.getProjectId().stream().distinct().collect(Collectors.toList())); wrapper.in(TTask::getProjectId, query.getProjectId()); + taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) + .in(TTask::getProjectId, query.getProjectId()) + .between(TTask::getImplementTime, startTime, endTime)); } List<TTask> list = taskCleanService.list(wrapper); @@ -293,6 +297,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); @@ -303,8 +308,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()); List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) @@ -350,8 +354,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()); List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) @@ -418,6 +421,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); @@ -432,8 +436,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); @@ -457,25 +460,20 @@ } list = list.stream().distinct().collect(Collectors.toList()); map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count()); - List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); - if(CollectionUtils.isEmpty(tasks)){ - map.put("unqualifiedWarn", 0); - return R.ok(map); - } - 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)); int unqualifiedWarn = 0; - 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){ + List<TEarlyWarning> earlyWarnings = earlyWarningService.list(Wrappers.lambdaQuery(TEarlyWarning.class)); + if(CollectionUtils.isEmpty(earlyWarnings)){ + map.put("unqualifiedWarn", unqualifiedWarn); + }else { + // 将earlyWarnings列表的taskId用逗号拼接 + String taskIds = earlyWarnings.stream().map(TEarlyWarning::getTaskId).collect(Collectors.joining(",")); + for (TTask task : list) { + if(taskIds.contains(task.getId())){ unqualifiedWarn++; } } + map.put("unqualifiedWarn", unqualifiedWarn); } - map.put("unqualifiedWarn", unqualifiedWarn); }else { // 超级管理员 // 查询点位类型 @@ -489,12 +487,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); @@ -517,25 +515,20 @@ } list = list.stream().distinct().collect(Collectors.toList()); map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count()); - List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); - if(CollectionUtils.isEmpty(tasks)){ - map.put("unqualifiedWarn", 0); - return R.ok(map); - } - 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)); int unqualifiedWarn = 0; - 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){ + List<TEarlyWarning> earlyWarnings = earlyWarningService.list(Wrappers.lambdaQuery(TEarlyWarning.class)); + if(CollectionUtils.isEmpty(earlyWarnings)){ + map.put("unqualifiedWarn", unqualifiedWarn); + }else { + // 将earlyWarnings列表的taskId用逗号拼接 + String taskIds = earlyWarnings.stream().map(TEarlyWarning::getTaskId).collect(Collectors.joining(",")); + for (TTask task : list) { + if(taskIds.contains(task.getId())){ unqualifiedWarn++; } } + map.put("unqualifiedWarn", unqualifiedWarn); } - map.put("unqualifiedWarn", unqualifiedWarn); } return R.ok(map); } @@ -570,6 +563,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); @@ -584,8 +578,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); @@ -609,7 +602,8 @@ } list = list.stream().distinct().collect(Collectors.toList()); - 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)){ return R.ok(); } @@ -619,6 +613,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); @@ -653,12 +656,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); @@ -681,7 +684,8 @@ } list = list.stream().distinct().collect(Collectors.toList()); - 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)){ return R.ok(); } @@ -691,6 +695,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); @@ -774,6 +787,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); @@ -789,8 +803,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); @@ -833,15 +846,27 @@ } list = list.stream().distinct().collect(Collectors.toList()); - 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)){ return R.ok(); } 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::getClearStatus, 1) + .eq(TTaskDetail::getHandleType,1) .orderByDesc(TTaskDetail::getCreateTime)); + + // 使用 stream 去重,保留每个 taskId 最新的一条 + taskDetails = new ArrayList<>(taskDetails.stream() + .collect(Collectors.groupingBy( + TTaskDetail::getTaskId, + Collectors.collectingAndThen( + Collectors.toList(), + list1 -> list1.get(0) + ) + )) + .values()); if(query.getRankType() == 1){ // 用户排名 @@ -850,8 +875,10 @@ dataStatisticsRankVO.setName(sysUser.getNickName()); List<String> taskIdList = tasks.stream().filter(task -> task.getPatrolInspector().equals(String.valueOf(sysUser.getUserId()))).map(TTask::getId).collect(Collectors.toList()); dataStatisticsRankVO.setTaskCount(taskIdList.size()); - long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); + long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId()) + && taskDetail.getClearStatus() == 1).count(); dataStatisticsRankVO.setQualifiedCount(count); + result.add(dataStatisticsRankVO); } }else { // 查询项目部 @@ -860,6 +887,9 @@ projectDepts = new ArrayList<>(); // 当前项目部 TProjectDept projectDept = projectDeptService.getById(deptId); + if(Objects.nonNull(projectDept) && !"0".equals(projectDept.getParentId())){ + projectDept = projectDeptService.getById(projectDept.getParentId()); + } projectDepts.add(projectDept); }else { if (CollectionUtils.isEmpty(query.getProjectId())){ @@ -888,7 +918,7 @@ dataStatisticsRankVO.setName(projectDept.getProjectName()); List<String> taskIdList; if(!CollectionUtils.isEmpty(tProjectDeptList)){ - List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + List<String> projectIds = tProjectDeptList.stream().filter(e -> e.getParentId().equals(projectDept.getId())).map(TProjectDept::getId).collect(Collectors.toList()); taskIdList = tasks.stream().filter(task -> projectIds.contains(task.getProjectId())).map(TTask::getId).collect(Collectors.toList()); } else { taskIdList = new ArrayList<>(); @@ -898,8 +928,10 @@ dataStatisticsRankVO.setQualifiedCount(0L); continue; } - long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); + long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId()) + && taskDetail.getClearStatus() == 1).count(); dataStatisticsRankVO.setQualifiedCount(count); + result.add(dataStatisticsRankVO); } } }else { @@ -967,15 +999,27 @@ } list = list.stream().distinct().collect(Collectors.toList()); - 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)){ return R.ok(); } 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::getClearStatus, 1) + .eq(TTaskDetail::getHandleType,1) .orderByDesc(TTaskDetail::getCreateTime)); + + // 使用 stream 去重,保留每个 taskId 最新的一条 + taskDetails = new ArrayList<>(taskDetails.stream() + .collect(Collectors.groupingBy( + TTaskDetail::getTaskId, + Collectors.collectingAndThen( + Collectors.toList(), + list1 -> list1.get(0) + ) + )) + .values()); if(query.getRankType() == 1){ // 用户排名 @@ -984,8 +1028,10 @@ dataStatisticsRankVO.setName(sysUser.getNickName()); List<String> taskIdList = tasks.stream().filter(task -> task.getPatrolInspector().equals(String.valueOf(sysUser.getUserId()))).map(TTask::getId).collect(Collectors.toList()); dataStatisticsRankVO.setTaskCount(taskIdList.size()); - long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); + long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId()) + && taskDetail.getClearStatus() == 1).count(); dataStatisticsRankVO.setQualifiedCount(count); + result.add(dataStatisticsRankVO); } }else { // 超级管理员 查询所有项目部 @@ -1015,7 +1061,7 @@ dataStatisticsRankVO.setName(projectDept.getProjectName()); List<String> taskIdList; if(!CollectionUtils.isEmpty(tProjectDeptList)){ - List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); + List<String> projectIds = tProjectDeptList.stream().filter(e -> e.getParentId().equals(projectDept.getId())).map(TProjectDept::getId).collect(Collectors.toList()); taskIdList = tasks.stream().filter(task -> projectIds.contains(task.getProjectId())).map(TTask::getId).collect(Collectors.toList()); } else { taskIdList = new ArrayList<>(); @@ -1025,12 +1071,21 @@ dataStatisticsRankVO.setQualifiedCount(0L); continue; } - long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); + long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId()) + && taskDetail.getClearStatus() == 1).count(); dataStatisticsRankVO.setQualifiedCount(count); + result.add(dataStatisticsRankVO); } } } - + // 先根据任务总数排序,再根据合格数进行排序 + result.sort((o1, o2) -> { + if (o1.getTaskCount().equals(o2.getTaskCount())) { + return o2.getQualifiedCount().compareTo(o1.getQualifiedCount()); + }else{ + return o2.getTaskCount().compareTo(o1.getTaskCount()); + } + }); return R.ok(result); } @@ -1074,27 +1129,36 @@ .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 { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .eq(TTask::getPatrolInspector, userId)); + .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); } + }else { + } + // 巡检员数 + Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),1); + map.put("totalEmployeeNum", totalEmployeeNum+1); } // 查询片区 @@ -1116,6 +1180,7 @@ list.addAll(taskList); } list = list.stream().distinct().collect(Collectors.toList()); + }else { // 超级管理员 // 查询点位类型 @@ -1130,12 +1195,13 @@ 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) + .between(TTask::getImplementTime, startTime, endTime)); // 查询所有项目部的任务列表 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); @@ -1149,6 +1215,9 @@ List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getProjectId, query.getProjectId())); map.put("totalLocationNum", locationList.size()); + taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) + .in(TTask::getProjectId, query.getProjectId()) + .between(TTask::getImplementTime, startTime, endTime)); } list = taskCleanService.list(wrapper); @@ -1160,6 +1229,17 @@ 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); + } + } // 查询任务相关数据 @@ -1168,16 +1248,10 @@ // 片区数量 map.put("totalProjectNum", query.getProjectId().size()); - // 巡检员数 - Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType); - if (deptType != 1) { - totalEmployeeNum = totalEmployeeNum + 1; - } - map.put("totalEmployeeNum", totalEmployeeNum); - // 合格率 // 匹配任务详情查看合格数量 - 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)){ map.put("qualifiedRate",BigDecimal.ZERO); return R.ok(map); @@ -1234,6 +1308,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); @@ -1245,8 +1320,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); @@ -1258,8 +1332,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); @@ -1302,17 +1375,24 @@ TLocationStatisticsVO locationStatisticsVO = new TLocationStatisticsVO(); BeanUtils.copyProperties(location, locationStatisticsVO); + // 查询点位类型 + TLocationType locationType = locationTypeService.getById(location.getLocationType()); + if(Objects.nonNull(locationType)){ + locationStatisticsVO.setLocationIcon(locationType.getLocationIcon()); + } + List<TTask> list = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getLocationId, query.getLocationId())); // 总数 locationStatisticsVO.setTotalInspection(list.size()); // 完成数 - long completeInspection = list.stream().filter(task -> task.getStatus() == 6).count(); + long completeInspection = list.stream().filter(task -> task.getStatus() == 6 || task.getStatus() == 5).count(); locationStatisticsVO.setCompleteInspection(completeInspection); // 合格率 - 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)){ locationStatisticsVO.setPassRate(new BigDecimal(0)); return R.ok(locationStatisticsVO); -- Gitblit v1.7.1