From ee690149bcf516b72df8f12916d5d93319bf55d5 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 27 五月 2026 17:18:36 +0800
Subject: [PATCH] feat 页面显示巡检状态
---
src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java | 63 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
index 215d605..14501fd 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -18,7 +18,9 @@
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.inspectiontask.dto.InspectionTaskDto;
import com.ruoyi.inspectiontask.mapper.InspectionTaskMapper;
+import com.ruoyi.inspectiontask.mapper.TimingTaskMapper;
import com.ruoyi.inspectiontask.pojo.InspectionTask;
+import com.ruoyi.inspectiontask.pojo.TimingTask;
import com.ruoyi.inspectiontask.service.InspectionTaskService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -31,6 +33,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
+import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
@@ -71,6 +74,9 @@
@Autowired
private CommonFileServiceImpl commonFileService;
+
+ @Autowired
+ private TimingTaskMapper timingTaskMapper;
@Override
public IPage<InspectionTaskDto> selectInspectionTaskList(Page<InspectionTask> page, InspectionTaskDto inspectionTaskDto) {
@@ -134,6 +140,20 @@
}
List<CommonFile> finalCommonFiles = commonFiles;
+ // 鎵归噺鏌ヨ瀹氭椂浠诲姟鑾峰彇nextExecutionTime
+ List<Long> timingTaskIds = entityPage.getRecords().stream()
+ .map(InspectionTask::getTimingTaskId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ Map<Long, TimingTask> timingTaskMap = new HashMap<>();
+ if (!timingTaskIds.isEmpty()) {
+ List<TimingTask> timingTasks = timingTaskMapper.selectBatchIds(timingTaskIds);
+ timingTaskMap = timingTasks.stream()
+ .collect(Collectors.toMap(TimingTask::getId, Function.identity()));
+ }
+ final Map<Long, TimingTask> finalTimingTaskMap = timingTaskMap;
+ final LocalDateTime now = LocalDateTime.now();
+
List<InspectionTaskDto> dtoList = entityPage.getRecords().stream().map(inspectionTask -> {
InspectionTaskDto dto = new InspectionTaskDto();
BeanUtils.copyProperties(inspectionTask, dto); // 澶嶅埗涓诲璞″睘鎬�
@@ -173,6 +193,17 @@
.filter(commonFile -> commonFile.getCommonId().equals(taskId) && commonFile.getType().equals(FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue()))
.collect(Collectors.toList()));
+ // 璁$畻鐘舵�侊細宸茶繃鏈� > 宸℃涓� > 寰呭贰妫�
+ String status = calculateStatus(inspectionTask, finalTimingTaskMap, now);
+ dto.setStatus(status);
+
+ // 璁剧疆nextExecutionTime鐢ㄤ簬鍓嶇灞曠ず
+ if (inspectionTask.getTimingTaskId() != null) {
+ TimingTask timingTask = finalTimingTaskMap.get(inspectionTask.getTimingTaskId());
+ if (timingTask != null) {
+ dto.setNextExecutionTime(timingTask.getNextExecutionTime());
+ }
+ }
return dto;
}).collect(Collectors.toList());
@@ -206,6 +237,38 @@
return dto;
}
+ /**
+ * 璁$畻宸℃浠诲姟鐘舵��
+ * 浼樺厛绾э細宸茶繃鏈� > 宸℃涓� > 寰呭贰妫�
+ * @param inspectionTask 宸℃浠诲姟
+ * @param timingTaskMap 瀹氭椂浠诲姟Map
+ * @param now 褰撳墠鏃堕棿
+ * @return 鐘舵�侊細EXPIRED-宸茶繃鏈燂紝IN_PROGRESS-宸℃涓紝PENDING-寰呭贰妫�
+ */
+ private String calculateStatus(InspectionTask inspectionTask, Map<Long, TimingTask> timingTaskMap, LocalDateTime now) {
+ // 1. 鍒ゆ柇鏄惁宸茶繃鏈�
+ if (inspectionTask.getTimingTaskId() != null) {
+ TimingTask timingTask = timingTaskMap.get(inspectionTask.getTimingTaskId());
+ if (timingTask != null && timingTask.getNextExecutionTime() != null) {
+ if (now.isAfter(timingTask.getNextExecutionTime())) {
+ return "EXPIRED";
+ }
+ }
+ }else {
+ return "EXPIRED";
+ }
+
+ // 2. 鍒ゆ柇鏄惁宸℃涓紙浠讳竴寮傚父瀛楁涓嶄负null锛�
+ if (inspectionTask.getHasExceptionBefore() != null
+ || inspectionTask.getHasExceptionAfter() != null
+ || inspectionTask.getHasExceptionIssue() != null) {
+ return "IN_PROGRESS";
+ }
+
+ // 3. 寰呭贰妫�
+ return "PENDING";
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) throws IOException {
--
Gitblit v1.9.3