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