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