From a858d0f96cd50b7587cd0ac7291e0432e48ac759 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 12 七月 2025 10:19:26 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java | 120 ++++++++++++++++++++------------------- ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java | 56 ++++++++++++------ 2 files changed, 99 insertions(+), 77 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java index c20d223..b7d84a6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java @@ -32,6 +32,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -411,80 +412,83 @@ public void exportExcel(@RequestBody TaskListQuery query) { List<SysUser> sysUsers = sysUserService.selectAllList(); List<TLocation> locationList = locationService.list(); - if (StringUtils.hasLength(query.getDeptName())){ - List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); - List<String> listIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() - .stream().map(TProjectDept::getId).collect(Collectors.toList()); - for (TProjectDept tProjectDept : list) { - if (tProjectDept.getParentId().equals("0")){ - List<String> collect = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, tProjectDept.getId()).list() - .stream().map(TProjectDept::getId).collect(Collectors.toList()); - listIds.addAll(collect); + if(CollectionUtils.isEmpty(query.getTaskIds())){ + + if (StringUtils.hasLength(query.getDeptName())){ + List<TProjectDept> list = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list(); + List<String> listIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() + .stream().map(TProjectDept::getId).collect(Collectors.toList()); + for (TProjectDept tProjectDept : list) { + if (tProjectDept.getParentId().equals("0")){ + List<String> collect = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, tProjectDept.getId()).list() + .stream().map(TProjectDept::getId).collect(Collectors.toList()); + listIds.addAll(collect); + } + } + List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() + .stream().map(TDept::getId).collect(Collectors.toList()); + listIds.addAll(deptIds); + if (listIds.isEmpty()){ + listIds.add("0"); + } + List<Long> collect = sysUsers.stream().filter(e -> listIds.contains(e.getDeptId())) + .map(SysUser::getUserId).collect(Collectors.toList()); + query.setPatrolInspectorIds( collect); + if (StringUtils.hasLength(query.getPhonenumber())){ + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + sysUser.getPhonenumber().contains(query.getPhonenumber()) + && listIds.contains(sysUser.getDeptId()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (patrolInspectorIds.isEmpty()){ + patrolInspectorIds.add(0L); + } + query.setPatrolInspectorIds(patrolInspectorIds); } } - List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() - .stream().map(TDept::getId).collect(Collectors.toList()); - listIds.addAll(deptIds); - if (listIds.isEmpty()){ - listIds.add("0"); - } - List<Long> collect = sysUsers.stream().filter(e -> listIds.contains(e.getDeptId())) - .map(SysUser::getUserId).collect(Collectors.toList()); - query.setPatrolInspectorIds( collect); if (StringUtils.hasLength(query.getPhonenumber())){ List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().contains(query.getPhonenumber()) - && listIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); + query.setPatrolInspectorIds(patrolInspectorIds); + if (!query.getPatrolInspectorIds().isEmpty()){ + // 取交集 + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + } + query.setPatrolInspectorIds(patrolInspectorIds); if (patrolInspectorIds.isEmpty()){ patrolInspectorIds.add(0L); } - 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()); - query.setPatrolInspectorIds(patrolInspectorIds); - if (!query.getPatrolInspectorIds().isEmpty()){ - // 取交集 - patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + if (query.getClearStatus()!=null){ + List<String> collect = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getClearStatus, query.getClearStatus()) + .list().stream().distinct().map(TTaskDetail::getTaskId).collect(Collectors.toList()); + query.setTaskIds(collect); + if (collect.isEmpty()){ + collect.add("0"); + } } - query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ - patrolInspectorIds.add(0L); - } - } - if (query.getClearStatus()!=null){ - List<String> collect = tTaskDetailService.lambdaQuery().eq(TTaskDetail::getClearStatus, query.getClearStatus()) - .list().stream().distinct().map(TTaskDetail::getTaskId).collect(Collectors.toList()); - query.setTaskIds(collect); - if (collect.isEmpty()){ - collect.add("0"); - } - } - if (StringUtils.hasLength(query.getLocationType())){ - List<String> collect = locationList.stream().filter(e -> e.getLocationType().equals(query.getLocationType())).map(TLocation::getId) - .collect(Collectors.toList()); - if (collect.isEmpty()){ - collect.add("0"); - } - query.setLocationIds(collect); - } - if (StringUtils.hasLength(query.getLocationName())){ - List<String> collect = locationList.stream().filter(e -> e.getLocationName().contains(query.getLocationName())).map(TLocation::getId) - .collect(Collectors.toList()); - query.setLocationIds(collect); - if (collect.isEmpty()){ - collect.add("0"); - }else{ - collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList()); + if (StringUtils.hasLength(query.getLocationType())){ + List<String> collect = locationList.stream().filter(e -> e.getLocationType().equals(query.getLocationType())).map(TLocation::getId) + .collect(Collectors.toList()); if (collect.isEmpty()){ collect.add("0"); } query.setLocationIds(collect); } + if (StringUtils.hasLength(query.getLocationName())){ + List<String> collect = locationList.stream().filter(e -> e.getLocationName().contains(query.getLocationName())).map(TLocation::getId) + .collect(Collectors.toList()); + query.setLocationIds(collect); + if (collect.isEmpty()){ + collect.add("0"); + }else{ + collect = collect.stream().filter(query.getLocationIds()::contains).collect(Collectors.toList()); + if (collect.isEmpty()){ + collect.add("0"); + } + query.setLocationIds(collect); + } + } } List<TaskListVO> list = taskCleanerService.exportList(query); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java index de1f249..79c63b8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java @@ -62,6 +62,8 @@ private TTemplateCountService templateCountService; @Autowired private TEarlyWarningService earlyWarningService; + @Autowired + private TLeaveService leaveService; // 每一个小时执行一次 @@ -80,17 +82,6 @@ createInspection(template); }); - // 查询前一天为执行的所有任务,改成已超时状态 - List<TTask> taskCleanList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .like(TTask::getImplementTime, LocalDate.now().minusDays(1)) - .eq(TTask::getStatus, 1)); - if (!CollectionUtils.isEmpty(taskCleanList)) { - taskCleanList.forEach(task -> { - task.setStatus(2); - }); - taskCleanService.updateBatchById(taskCleanList); - } - } catch (Exception e) { e.printStackTrace(); } @@ -101,7 +92,7 @@ try { // 查询前一天为执行的所有任务,改成已超时状态 List<TTask> taskCleanList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) - .like(TTask::getImplementTime, LocalDate.now().minusDays(1)) + .like(TTask::getImplementTime, LocalDate.now()) .eq(TTask::getStatus, 1)); if (!CollectionUtils.isEmpty(taskCleanList)) { List<TEarlyWarning> earlyWarningList = new ArrayList<>(); @@ -172,18 +163,30 @@ int taskCount = 0; for (SysUser sysUser : sysUsers) { + + if("1".equals(sysUser.getStatus())){ + continue; + } + List<TProjectDept> projectDeptLists = new ArrayList<>(); if(sysUser.getDeptType() == 1){ TProjectDept projectDept = projectDeptService.getById(sysUser.getDeptId()); - if("0".equals(projectDept.getParentId())){ - projectDeptLists = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .eq(TProjectDept::getParentId, projectDept.getId())); - }else { - projectDeptLists.add(projectDept); + if(projectDept.getStatus() == 1){ + if("0".equals(projectDept.getParentId())){ + projectDeptLists = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) + .eq(TProjectDept::getParentId, projectDept.getId()) + .eq(TProjectDept::getStatus, 1)); + }else { + projectDeptLists.add(projectDept); + } } }else { projectDeptLists = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) - .ne(TProjectDept::getParentId,0)); + .ne(TProjectDept::getParentId,0) + .eq(TProjectDept::getStatus, 1)); + } + if(CollectionUtils.isEmpty(projectDeptLists)){ + continue; } List<String> proDeptIds = projectDeptLists.stream().map(TProjectDept::getId).collect(Collectors.toList()); @@ -335,6 +338,14 @@ redisCache.deleteObject(detail.getId() + CLEANER_WEIGHT); } + + // 查询请假记录 + TLeave leave = leaveService.getOne(Wrappers.lambdaQuery(TLeave.class) + .eq(TLeave::getLeavePerson, sysUser.getUserId()) + .eq(TLeave::getAuditStatus, 2) + .orderByDesc(TLeave::getCreateTime) + .last("LIMIT 1")); + // 创建任务 List<TTask> tasks = new ArrayList<>(); for (TLocation tLocation : tLocationList) { @@ -350,7 +361,14 @@ task.setUserId(sysUser.getUserId()); task.setStatus(1); task.setLocationId(tLocation.getId()); - task.setImplementTime(LocalDateTime.now().plusDays(1)); + + // 判断今天是否在请假时间内 + if(Objects.nonNull(leave) && ((leave.getStartTime().toLocalDate().isBefore(LocalDate.now().plusDays(1)) && leave.getEndTime().toLocalDate().isAfter(LocalDate.now().plusDays(1))) + || (leave.getStartTime().toLocalDate().isEqual(LocalDate.now().plusDays(1)) || leave.getEndTime().toLocalDate().isEqual(LocalDate.now().plusDays(1))))){ + task.setImplementTime(leave.getEndTime().plusDays(1)); + }else { + task.setImplementTime(LocalDateTime.now().plusDays(1)); + } task.setTaskType(1); task.setTemplateId(detail.getTemplateId()); String nameAndCode = CodeGenerateUtils.generateVolumeSn(); -- Gitblit v1.7.1