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

---
 src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java |   61 ++++++++++++++++++++++++++----
 1 files changed, 52 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
index 204667b..58693ca 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -1,6 +1,11 @@
 package com.ruoyi.device.service.impl;
 
 import com.ruoyi.device.pojo.DeviceMaintenance;
+import com.ruoyi.device.mapper.MaintenanceTaskItemMapper;
+import com.ruoyi.device.mapper.DeviceMaintenanceItemMapper;
+import com.ruoyi.device.pojo.MaintenanceTaskItem;
+import com.ruoyi.device.pojo.DeviceMaintenanceItem;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.device.pojo.MaintenanceTask;
 import lombok.RequiredArgsConstructor;
 import org.quartz.*;
@@ -29,6 +34,12 @@
     @Autowired
     private JdbcTemplate jdbcTemplate;
 
+    @Autowired
+    private MaintenanceTaskItemMapper maintenanceTaskItemMapper;
+
+    @Autowired
+    private DeviceMaintenanceItemMapper deviceMaintenanceItemMapper;
+
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
         JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
@@ -49,9 +60,26 @@
                 throw new JobExecutionException("MaintenanceTaskJob鎵句笉鍒板畾鏃朵换鍔�: " + taskId);
             }
 
-            // 2. 鍒涘缓骞朵繚瀛樺贰妫�浠诲姟璁板綍 - 杩欏氨鏄偍鎻愪緵鐨勪唬鐮佸簲璇ユ斁鐨勪綅缃�
+            List<MaintenanceTaskItem> taskItems = maintenanceTaskItemMapper.selectByTaskId(timingTask.getId());
+            if (taskItems.isEmpty()) {
+                throw new JobExecutionException("淇濆吇浠诲姟鏈厤缃繚鍏婚」鐩�: " + taskId);
+            }
+            // 鎸変换鍔¢」鐩揩鐓х敓鎴愭湰娆′繚鍏昏褰曞強椤圭洰娓呭崟銆�
             DeviceMaintenance deviceMaintenance = createInspectionTask(timingTask);
             deviceMaintenanceService.save(deviceMaintenance);
+            for (MaintenanceTaskItem taskItem : taskItems) {
+                DeviceMaintenanceItem recordItem = new DeviceMaintenanceItem();
+                recordItem.setDeviceMaintenanceId(deviceMaintenance.getId());
+                recordItem.setMaintenanceTaskItemId(taskItem.getId());
+                recordItem.setMaintenanceItemId(taskItem.getMaintenanceItemId());
+                recordItem.setItemProject(taskItem.getItemProject());
+                recordItem.setItemName(taskItem.getItemName());
+                recordItem.setItemStatus(0);
+                recordItem.setSortNum(taskItem.getSortNum());
+                recordItem.setTenantId(deviceMaintenance.getTenantId());
+                recordItem.setDeptId(timingTask.getDeptId());
+                deviceMaintenanceItemMapper.insert(recordItem);
+            }
 
             // 3. 鏇存柊瀹氭椂浠诲姟鐨勬墽琛屾椂闂�
             if (!tasks.isEmpty()) {
@@ -230,14 +258,29 @@
 
         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;
-                default: throw new IllegalArgumentException("鏃犳晥鐨勬槦鏈熷嚑: " + 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;
+                default:
+                    throw new IllegalArgumentException("鏃犳晥鐨勬槦鏈熷嚑: " + dayStr);
             }
         }
 

--
Gitblit v1.9.3