From b871e526e794c09708de431899ef6de75886bbc4 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 20 十月 2026 15:22:32 +0800
Subject: [PATCH] feat: 设备巡检优化,巡检项目拆分

---
 src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskJob.java |   80 +++++++++++++++++++++++++++++++--------
 1 files changed, 63 insertions(+), 17 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 adc2416..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,10 +1,19 @@
 package com.ruoyi.inspectiontask.service.impl;
 
-import com.ruoyi.inspectiontask.mapper.InspectionTaskMapper;
-import com.ruoyi.inspectiontask.pojo.InspectionTask;
-import com.ruoyi.inspectiontask.pojo.TimingTask;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.utils.StringUtils;
-import org.quartz.*;
+import com.ruoyi.inspectiontask.mapper.InspectionTaskItemMapper;
+import com.ruoyi.inspectiontask.mapper.InspectionTaskMapper;
+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.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;
@@ -22,10 +31,14 @@
 @Component
 @DisallowConcurrentExecution // 绂佹骞跺彂鎵ц鍚屼竴涓狫ob
 public class TimingTaskJob implements Job, Serializable {
-    private static final long serialVersionUID = 1L; // 蹇呴』瀹氫箟搴忓垪鍖朓D
+    private static final long serialVersionUID = 1L;
 
     @Autowired
     private InspectionTaskMapper inspectionTaskMapper;
+    @Autowired
+    private TimingTaskItemMapper timingTaskItemMapper;
+    @Autowired
+    private InspectionTaskItemMapper inspectionTaskItemMapper;
     @Autowired
     private JdbcTemplate jdbcTemplate;
 
@@ -38,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),
@@ -59,6 +72,7 @@
             // 2. 鍒涘缓骞朵繚瀛樺贰妫�浠诲姟璁板綍 - 杩欏氨鏄偍鎻愪緵鐨勪唬鐮佸簲璇ユ斁鐨勪綅缃�
             InspectionTask inspectionTask = createInspectionTask(timingTask);
             inspectionTaskMapper.insert(inspectionTask);
+            copyTaskItemsToRecord(timingTask.getId(), inspectionTask.getId());
 
             // 3. 鏇存柊瀹氭椂浠诲姟鐨勬墽琛屾椂闂�
             if (!tasks.isEmpty()) {
@@ -75,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,
@@ -103,7 +117,6 @@
 
         // 澶嶅埗鍩烘湰灞炴��
         inspectionTask.setTaskName(timingTask.getTaskName());
-        inspectionTask.setInspectionProject(timingTask.getInspectionProject());
         inspectionTask.setTaskId(timingTask.getTaskId());
         inspectionTask.setInspectorId(timingTask.getInspectorIds());
         inspectionTask.setInspectionLocation(timingTask.getInspectionLocation());
@@ -118,6 +131,25 @@
         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);
+        }
     }
 
 
@@ -243,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