From e9db31e49c790aff85a5ebe20dbb425ae59d6913 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 12 七月 2025 18:44:37 +0800 Subject: [PATCH] bug修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 141 insertions(+), 23 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 e32ef7d..4fc03de 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 @@ -229,8 +229,20 @@ } // 超级管理员 查询所有任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .between(TTask::getImplementTime, startTime, endTime)); + .in(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ + // 查询点位类型 +// if(StringUtils.isNotEmpty(query.getLocationTypeId())){ +// // 查询点位 +// List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) +// .in(TLocation::getLocationType, query.getLocationTypeId())); +// if(!CollectionUtils.isEmpty(locationList)){ +// List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); +// taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) +// .in(TTask::getLocationId, locationIds) +// .between(TTask::getImplementTime, startTime, endTime)); +// } +// } // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1)); @@ -459,18 +471,23 @@ list.addAll(taskList); } list = list.stream().distinct().collect(Collectors.toList()); - map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count()); + int timeoutWarn = 0; int unqualifiedWarn = 0; 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++; - } + List<TEarlyWarning> timeoutWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 1).collect(Collectors.toList()); + for (TEarlyWarning earlyWarning : timeoutWarnList) { + List<TTask> timeoutWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList()); + timeoutWarn = timeoutWarn + timeoutWarnTasks.size(); + } + map.put("timeoutWarn", timeoutWarn); + List<TEarlyWarning> unqualifiedWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 2).collect(Collectors.toList()); + for (TEarlyWarning earlyWarning : unqualifiedWarnList) { + List<TTask> unqualifiedWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList()); + unqualifiedWarn = unqualifiedWarn + unqualifiedWarnTasks.size(); } map.put("unqualifiedWarn", unqualifiedWarn); } @@ -487,9 +504,20 @@ } } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = new ArrayList<>(); + List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) + .in(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ - taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); +// // 查询点位类型 +// if(StringUtils.isEmpty(query.getLocationTypeId())){ +// // 查询点位 +// List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) +// .in(TLocation::getLocationType, query.getLocationTypeId())); +// if(!CollectionUtils.isEmpty(locationList)){ +// List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); +// taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) +// .in(TTask::getLocationId, locationIds)); +// } +// } // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1)); @@ -514,18 +542,23 @@ list.addAll(taskList); } list = list.stream().distinct().collect(Collectors.toList()); - map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count()); + int timeoutWarn = 0; int unqualifiedWarn = 0; 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++; - } + List<TEarlyWarning> timeoutWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 1).collect(Collectors.toList()); + for (TEarlyWarning earlyWarning : timeoutWarnList) { + List<TTask> timeoutWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList()); + timeoutWarn = timeoutWarn + timeoutWarnTasks.size(); + } + map.put("timeoutWarn", timeoutWarn); + List<TEarlyWarning> unqualifiedWarnList = earlyWarnings.stream().filter(e -> e.getWarningType() == 2).collect(Collectors.toList()); + for (TEarlyWarning earlyWarning : unqualifiedWarnList) { + List<TTask> unqualifiedWarnTasks = list.stream().filter(task -> earlyWarning.getTaskId().contains(task.getId())).collect(Collectors.toList()); + unqualifiedWarn = unqualifiedWarn + unqualifiedWarnTasks.size(); } map.put("unqualifiedWarn", unqualifiedWarn); } @@ -613,6 +646,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); @@ -647,9 +689,20 @@ } } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = new ArrayList<>(); + List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) + .in(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ - taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); + // 查询点位类型 +// if(StringUtils.isNotEmpty(query.getLocationTypeId())){ +// // 查询点位 +// List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) +// .in(TLocation::getLocationType, query.getLocationTypeId())); +// if(!CollectionUtils.isEmpty(locationList)){ +// List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); +// taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) +// .in(TTask::getLocationId, locationIds)); +// } +// } // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1)); @@ -686,6 +739,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); @@ -934,8 +996,20 @@ } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .between(TTask::getImplementTime, startTime, endTime)); + .in(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ + // 查询点位类型 +// if(StringUtils.isNotEmpty(query.getLocationTypeId())){ +// // 查询点位 +// List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) +// .in(TLocation::getLocationType, query.getLocationTypeId())); +// if(!CollectionUtils.isEmpty(locationList)){ +// List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); +// taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) +// .in(TTask::getLocationId, locationIds) +// .between(TTask::getImplementTime, startTime, endTime)); +// } +// } // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) @@ -1177,10 +1251,21 @@ map.put("totalLocationNum", locationList.size()); } // 超级管理员 查询所有的任务列表 - List<TTask> taskList = new ArrayList<>(); + List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) + .in(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ - taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .between(TTask::getImplementTime, startTime, endTime)); + // 查询点位类型 +// if(StringUtils.isNotEmpty(query.getLocationTypeId())){ +// // 查询点位 +// List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) +// .in(TLocation::getLocationType, query.getLocationTypeId())); +// if(!CollectionUtils.isEmpty(locationList)){ +// List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); +// taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) +// .in(TTask::getLocationId, locationIds) +// .between(TTask::getImplementTime, startTime, endTime)); +// } +// } // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1)); @@ -1241,7 +1326,17 @@ 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(), + listAll -> listAll.get(0) + ) + )) + .values()); int qualifiedWarn = 0; for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); @@ -1341,9 +1436,26 @@ List<TTask> tasks = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .in(TTask::getLocationId, locationIds)); + // 查询片区负责人 + List<SysUser> users = sysUserService.selectUserByNickName("片区负责人"); + for (TLocation tLocation : locationList) { - long count = tasks.stream().filter(task -> task.getLocationId().equals(tLocation.getId())).count(); - tLocation.setTaskNum(count); + if(!CollectionUtils.isEmpty(users)){ + List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList()); + List<TTask> taskList = taskCleanService.lambdaQuery().notIn(TTask::getPatrolInspector, userIds).list(); + if(!CollectionUtils.isEmpty(taskList)){ + List<String> collect = taskList.stream().map(TTask::getId).collect(Collectors.toList()); + long count = taskList.stream().filter(task -> task.getLocationId().equals(tLocation.getId()) + && collect.contains(task.getId())).count(); + tLocation.setTaskNum(count); + }else { + long count = tasks.stream().filter(task -> task.getLocationId().equals(tLocation.getId())).count(); + tLocation.setTaskNum(count); + } + }else { + long count = tasks.stream().filter(task -> task.getLocationId().equals(tLocation.getId())).count(); + tLocation.setTaskNum(count); + } } return R.ok(locationList); } @@ -1357,6 +1469,12 @@ 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())); // 总数 -- Gitblit v1.7.1