From 5e2d78f61bf7d1513d5d5c8cd55442133a6e898e Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 14 七月 2025 18:23:36 +0800 Subject: [PATCH] 保洁巡检本周代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java | 144 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 115 insertions(+), 29 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java index 5d89022..014a8f3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java @@ -135,7 +135,7 @@ if (patrolInspectorIds.isEmpty()) { return R.ok(new PageInfo<>()); } - if (!query.getPatrolInspectorIds().isEmpty()) { + if (query.getPatrolInspectorIds()!=null&&!query.getPatrolInspectorIds().isEmpty()) { // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } @@ -234,13 +234,21 @@ public void taskProgressExport(@RequestBody TaskProgressQuery query) { List<SysUser> sysUsers = sysUserService.selectAllList(); if (StringUtils.hasLength(query.getDeptName())) { - List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() + List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); + List<String> projectIds = list .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); + for (TProjectDept projectDept : list) { + if (projectDept.getParentId().equals("0")){ + List<TProjectDept> list1 = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, projectDept.getId()).list(); + List<String> collect = list1.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.addAll(collect); + } + } projectIds.addAll(deptIds); if (projectIds.isEmpty()) { - projectIds.add("-1"); + projectIds.add("0"); } // 用户ids List<Long> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 && projectIds.contains(e.getDeptId())).map(SysUser::getUserId) @@ -249,7 +257,7 @@ .collect(Collectors.toList()); collect.addAll(collect1); if (collect.isEmpty()) { - collect.add(0L); +projectIds.add("0"); } query.setPatrolInspectorIds(collect); @@ -381,6 +389,9 @@ List<TLocation> locations = locationService.list(); LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.hasLength(query.getStartTime()) && StringUtils.hasLength(query.getEndTime())) { + String endTime = query.getEndTime(); + String replace = endTime.replace(" 00:00:00", " 23:59:59"); + query.setEndTime(replace); tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, query.getStartTime()); tTaskLambdaQueryWrapper.le(TTask::getImplementTime, query.getEndTime()); } @@ -511,11 +522,15 @@ List<TLocation> locations = locationService.list(); LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.hasLength(query.getStartTime()) && StringUtils.hasLength(query.getEndTime())) { + String endTime = query.getEndTime(); + String replace = endTime.replace(" 00:00:00", " 23:59:59"); + query.setEndTime(replace); tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, query.getStartTime()); tTaskLambdaQueryWrapper.le(TTask::getImplementTime, query.getEndTime()); } List<ProjectDeptDetailsVO> res = new ArrayList<>(); List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper); + List<TTaskDetail> taskDetails = taskDetailService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).list(); List<String> collect = tasks.stream().map(TTask::getProjectId).distinct().collect(Collectors.toList()); List<TProjectDept> projectDepts = projectDeptService.list(); @@ -885,7 +900,7 @@ .divide(new BigDecimal(status4.size()).add(new BigDecimal(status5.size())), 2, RoundingMode.HALF_DOWN) .multiply(new BigDecimal(100)) : BigDecimal.ZERO); patrolInspectorVO.setNum10(status6.size()); - patrolInspectorVO.setNum11(!taskList.isEmpty() ? new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()), 2, RoundingMode.HALF_DOWN) : BigDecimal.ZERO); + patrolInspectorVO.setNum11(!taskList.isEmpty() ? new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()), 2, RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)) : BigDecimal.ZERO); List<TLeave> collect1 = leaves.stream().filter(e -> e.getLeavePerson().equals(sysUser.getUserId() + "")).collect(Collectors.toList()); patrolInspectorVO.setNum12(collect1.size()); res.add(patrolInspectorVO); @@ -906,10 +921,18 @@ tLeaveLambdaQueryWrapper.eq(TLeave::getAuditStatus, 2); List<TLeave> leaves = leaveService.list(tLeaveLambdaQueryWrapper); if (StringUtils.hasLength(query.getDeptName())) { - List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() + List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); + List<String> projectIds = list .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); + for (TProjectDept projectDept : list) { + if (projectDept.getParentId().equals("0")){ + List<TProjectDept> list1 = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, projectDept.getId()).list(); + List<String> collect = list1.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.addAll(collect); + } + } projectIds.addAll(deptIds); if (projectIds.isEmpty()) { projectIds.add("-1"); @@ -1096,37 +1119,71 @@ List<TTask> listAll = taskCleanerService.list(); List<String> listAllTaskIds = listAll.stream().map(TTask::getId).collect(Collectors.toList()); if (StringUtils.hasLength(query.getDeptName())) { - List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() + List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); + List<String> projectIds = list .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); + for (TProjectDept projectDept : list) { + if (projectDept.getParentId().equals("0")){ + List<TProjectDept> list1 = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, projectDept.getId()).list(); + List<String> collect = list1.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.addAll(collect); + } + } projectIds.addAll(deptIds); if (projectIds.isEmpty()) { - return R.ok(new ArrayList<>()); + projectIds.add("0"); } + // 用户ids + List<Long> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 && projectIds.contains(e.getDeptId())).map(SysUser::getUserId) + .collect(Collectors.toList()); + List<Long> collect1 = sysUsers.stream().filter(e -> e.getDeptType() == 2 && deptIds.contains(e.getDeptId())).map(SysUser::getUserId) + .collect(Collectors.toList()); + collect.addAll(collect1); + if (collect.isEmpty()) { + collect.add(-1L); + } + query.setPatrolInspectorIds(collect); + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) && projectIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); if (patrolInspectorIds.isEmpty()) { - return R.ok(new ArrayList<>()); + patrolInspectorIds.add(-1L); + } else { + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + query.setPatrolInspectorIds(patrolInspectorIds); } - query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())) { + if (StringUtils.hasLength(query.getNickName())){ List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> - sysUser.getPhonenumber().equals(query.getPhonenumber()) + sysUser.getNickName().contains(query.getNickName()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (!query.getPatrolInspectorIds().isEmpty()) { + if (query.getPatrolInspectorIds()!=null&&!query.getPatrolInspectorIds().isEmpty()){ // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } - query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()) { - return R.ok(new ArrayList<>()); + if (patrolInspectorIds.isEmpty()){ + patrolInspectorIds.add(-1L); } + query.setPatrolInspectorIds(patrolInspectorIds); + } + if (StringUtils.hasLength(query.getPhonenumber())){ + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + sysUser.getPhonenumber().contains(query.getPhonenumber()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (query.getPatrolInspectorIds()!=null&&!query.getPatrolInspectorIds().isEmpty()){ + // 取交集 + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + } + if (patrolInspectorIds.isEmpty()){ + patrolInspectorIds.add(-1L); + } + query.setPatrolInspectorIds(patrolInspectorIds); } LambdaQueryWrapper<TInspector> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus, 1); @@ -1146,8 +1203,11 @@ } List<InspectorVO> res = new ArrayList<>(); List<TInspector> inspectors = inspectorService.list(tTaskLambdaQueryWrapper); - sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1).collect(Collectors.toList()); - for (SysUser sysUser : sysUsers) { + List<String> users = inspectors.stream().map(TInspector::getCommitPerson).collect(Collectors.toList()); + if (users.isEmpty()){ + users.add("0"); + } + sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1&&users.contains(e.getUserId()+"")).collect(Collectors.toList()); for (SysUser sysUser : sysUsers) { InspectorVO inspectorVO = new InspectorVO(); inspectorVO.setNickName(sysUser.getNickName()); inspectorVO.setPhonenumber(sysUser.getPhonenumber()); @@ -1195,37 +1255,59 @@ List<TTask> listAll = taskCleanerService.list(); List<String> listAllTaskIds = listAll.stream().map(TTask::getId).collect(Collectors.toList()); if (StringUtils.hasLength(query.getDeptName())) { - List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() + List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); + List<String> projectIds = list .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); + for (TProjectDept projectDept : list) { + if (projectDept.getParentId().equals("0")){ + List<TProjectDept> list1 = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, projectDept.getId()).list(); + List<String> collect = list1.stream().map(TProjectDept::getId).collect(Collectors.toList()); + projectIds.addAll(collect); + } + } projectIds.addAll(deptIds); if (projectIds.isEmpty()) { - projectIds.add("-1"); + projectIds.add("0"); } + // 用户ids + List<Long> collect = sysUsers.stream().filter(e -> e.getDeptType() == 1 && projectIds.contains(e.getDeptId())).map(SysUser::getUserId) + .collect(Collectors.toList()); + List<Long> collect1 = sysUsers.stream().filter(e -> e.getDeptType() == 2 && deptIds.contains(e.getDeptId())).map(SysUser::getUserId) + .collect(Collectors.toList()); + collect.addAll(collect1); + if (collect.isEmpty()) { + collect.add(-1L); + } + query.setPatrolInspectorIds(collect); + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) && projectIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); if (patrolInspectorIds.isEmpty()) { - patrolInspectorIds.add(0L); + patrolInspectorIds.add(-1L); + } else { + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + query.setPatrolInspectorIds(patrolInspectorIds); } - query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())) { + if (StringUtils.hasLength(query.getPhonenumber())){ List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> - sysUser.getPhonenumber().equals(query.getPhonenumber()) + sysUser.getPhonenumber().contains(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (!query.getPatrolInspectorIds().isEmpty()) { + if (query.getPatrolInspectorIds()!=null&&!query.getPatrolInspectorIds().isEmpty()){ // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } - query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()) { - patrolInspectorIds.add(0L); + if (patrolInspectorIds.isEmpty()){ + patrolInspectorIds.add(-1L); } + query.setPatrolInspectorIds(patrolInspectorIds); + } LambdaQueryWrapper<TInspector> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus, 1); @@ -1245,7 +1327,11 @@ } List<InspectorVO> res = new ArrayList<>(); List<TInspector> inspectors = inspectorService.list(tTaskLambdaQueryWrapper); - sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1).collect(Collectors.toList()); + List<String> users = inspectors.stream().map(TInspector::getCommitPerson).collect(Collectors.toList()); + if (users.isEmpty()){ + users.add("0"); + } + sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1&&users.contains(e.getUserId()+"")).collect(Collectors.toList()); for (SysUser sysUser : sysUsers) { InspectorVO inspectorVO = new InspectorVO(); inspectorVO.setNickName(sysUser.getNickName()); -- Gitblit v1.7.1