From b7080587bc00e5451aa8435f093f0d8cc6f80320 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 16 十月 2026 22:39:04 +0800
Subject: [PATCH] feat: 设备巡检优化,巡检项目拆分
---
src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java | 96 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 70 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java
index 44ad63d..c439b6e 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java
@@ -1,18 +1,24 @@
package com.ruoyi.inspectiontask.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.inspectiontask.mapper.InspectionTaskItemMapper;
import com.ruoyi.inspectiontask.mapper.InspectionTaskMapper;
-import com.ruoyi.inspectiontask.mapper.TimingTaskMapper;
+import com.ruoyi.inspectiontask.mapper.TimingTaskItemMapper;
import com.ruoyi.inspectiontask.pojo.InspectionTask;
+import com.ruoyi.inspectiontask.pojo.InspectionTaskItem;
import com.ruoyi.inspectiontask.pojo.TimingTask;
-import com.ruoyi.inspectiontask.service.TimingTaskService;
-import org.quartz.*;
+import com.ruoyi.inspectiontask.pojo.TimingTaskItem;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.Job;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
-import javax.annotation.Resource;
-import javax.sql.DataSource;
import java.io.Serializable;
import java.time.DayOfWeek;
import java.time.LocalDateTime;
@@ -25,17 +31,14 @@
@Component
@DisallowConcurrentExecution // 绂佹骞跺彂鎵ц鍚屼竴涓狫ob
public class TimingTaskJob implements Job, Serializable {
- private static final long serialVersionUID = 1L; // 蹇呴』瀹氫箟搴忓垪鍖朓D
-
- @Autowired
- private TimingTaskMapper timingTaskMapper;
-
- @Autowired
- private TimingTaskService timingTaskService;
+ private static final long serialVersionUID = 1L;
@Autowired
private InspectionTaskMapper inspectionTaskMapper;
-
+ @Autowired
+ private TimingTaskItemMapper timingTaskItemMapper;
+ @Autowired
+ private InspectionTaskItemMapper inspectionTaskItemMapper;
@Autowired
private JdbcTemplate jdbcTemplate;
@@ -48,7 +51,7 @@
try {
// 3. 灏濊瘯鏌ヨ浣犵殑涓氬姟鏁版嵁
// 閫氳繃JDBC妯℃澘鏌ヨ瀹氭椂浠诲姟淇℃伅锛屼娇鐢ㄥ弬鏁板寲鏌ヨ闃叉SQL娉ㄥ叆
- String yourSql = "SELECT * FROM timing_task where id = ?";
+ String yourSql = "SELECT * FROM timing_task WHERE id = ?";
List<TimingTask> tasks = jdbcTemplate.query(
yourSql,
new BeanPropertyRowMapper<>(TimingTask.class),
@@ -58,7 +61,10 @@
if (timingTask == null) {
throw new JobExecutionException("鎵句笉鍒板畾鏃朵换鍔�: " + taskId);
}
-
+ if (timingTask.getIsEnabled() != null && timingTask.getIsEnabled() == 0) {
+ return;
+ }
+
// if (!timingTask.isActive()) {
// throw new JobExecutionException("瀹氭椂浠诲姟宸茬鐢�: " + taskId);
// }
@@ -66,6 +72,7 @@
// 2. 鍒涘缓骞朵繚瀛樺贰妫�浠诲姟璁板綍 - 杩欏氨鏄偍鎻愪緵鐨勪唬鐮佸簲璇ユ斁鐨勪綅缃�
InspectionTask inspectionTask = createInspectionTask(timingTask);
inspectionTaskMapper.insert(inspectionTask);
+ copyTaskItemsToRecord(timingTask.getId(), inspectionTask.getId());
// 3. 鏇存柊瀹氭椂浠诲姟鐨勬墽琛屾椂闂�
if (!tasks.isEmpty()) {
@@ -82,9 +89,9 @@
);
// 鎵ц鏇存柊鎿嶄綔
- String updateSql = "UPDATE timing_task " +
- "SET last_execution_time = ?, next_execution_time = ? " +
- "WHERE id = ?";
+ String updateSql = "UPDATE timing_task "
+ + "SET last_execution_time = ?, next_execution_time = ? "
+ + "WHERE id = ?";
jdbcTemplate.update(
updateSql,
@@ -113,13 +120,36 @@
inspectionTask.setTaskId(timingTask.getTaskId());
inspectionTask.setInspectorId(timingTask.getInspectorIds());
inspectionTask.setInspectionLocation(timingTask.getInspectionLocation());
- inspectionTask.setRemarks("鑷姩鐢熸垚鑷畾鏃朵换鍔D: " + timingTask.getId());
+ String remarks = "鑷姩鐢熸垚鑷畾鏃朵换鍔D: " + timingTask.getId();
+ if (StringUtils.isNotBlank(timingTask.getRemarks())) {
+ remarks = remarks + "锛�" + timingTask.getRemarks();
+ }
+ inspectionTask.setRemarks(remarks);
inspectionTask.setRegistrantId(timingTask.getRegistrantId());
inspectionTask.setFrequencyType(timingTask.getFrequencyType());
inspectionTask.setFrequencyDetail(timingTask.getFrequencyDetail());
inspectionTask.setTenantId(timingTask.getTenantId());
return inspectionTask;
+ }
+
+ private void copyTaskItemsToRecord(Long timingTaskId, Long inspectionTaskId) {
+ List<TimingTaskItem> taskItems = timingTaskItemMapper.selectList(
+ new LambdaQueryWrapper<TimingTaskItem>()
+ .eq(TimingTaskItem::getTimingTaskId, timingTaskId)
+ .orderByAsc(TimingTaskItem::getSortNum));
+ for (TimingTaskItem source : taskItems) {
+ InspectionTaskItem recordItem = new InspectionTaskItem();
+ recordItem.setInspectionTaskId(inspectionTaskId);
+ recordItem.setInspectionItemId(source.getInspectionItemId());
+ recordItem.setItemProject(source.getItemProject());
+ recordItem.setItemContent(source.getItemContent());
+ recordItem.setItemStatus(0);
+ recordItem.setSortNum(source.getSortNum());
+ recordItem.setTenantId(source.getTenantId());
+ recordItem.setDeptId(source.getDeptId());
+ inspectionTaskItemMapper.insert(recordItem);
+ }
}
@@ -245,13 +275,27 @@
for (String dayStr : dayStrs) {
switch (dayStr) {
- case "MON": days.add(DayOfWeek.MONDAY); break;
- case "TUE": days.add(DayOfWeek.TUESDAY); break;
- case "WED": days.add(DayOfWeek.WEDNESDAY); break;
- case "THU": days.add(DayOfWeek.THURSDAY); break;
- case "FRI": days.add(DayOfWeek.FRIDAY); break;
- case "SAT": days.add(DayOfWeek.SATURDAY); break;
- case "SUN": days.add(DayOfWeek.SUNDAY); break;
+ case "MON":
+ days.add(DayOfWeek.MONDAY);
+ break;
+ case "TUE":
+ days.add(DayOfWeek.TUESDAY);
+ break;
+ case "WED":
+ days.add(DayOfWeek.WEDNESDAY);
+ break;
+ case "THU":
+ days.add(DayOfWeek.THURSDAY);
+ break;
+ case "FRI":
+ days.add(DayOfWeek.FRIDAY);
+ break;
+ case "SAT":
+ days.add(DayOfWeek.SATURDAY);
+ break;
+ case "SUN":
+ days.add(DayOfWeek.SUNDAY);
+ break;
default: throw new IllegalArgumentException("鏃犳晥鐨勬槦鏈熷嚑: " + dayStr);
}
}
--
Gitblit v1.9.3