From 7b8b2456bb15aa733b8599fce2ada5d9549ba881 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 11 六月 2026 13:21:20 +0800
Subject: [PATCH] 销售台账,工艺路线配置设置是否完成;导出工艺路线

---
 src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
index 0c00da7..602eddc 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
@@ -1,7 +1,10 @@
 package com.ruoyi.device.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.device.mapper.MaintenanceTaskMapper;
 import com.ruoyi.device.pojo.MaintenanceTask;
@@ -39,8 +42,18 @@
     private MaintenanceTaskScheduler maintenanceTaskScheduler;
 
     @Override
-    public AjaxResult listPage(Page page, MaintenanceTask maintenanceTask) {
-        Page<MaintenanceTask> taskPage = maintenanceTaskMapper.selectPage(page, null);
+    public AjaxResult listPage(Page<MaintenanceTask> page, MaintenanceTask maintenanceTask) {
+        LambdaQueryWrapper<MaintenanceTask> queryWrapper = new LambdaQueryWrapper<>();
+        if (maintenanceTask != null) {
+            if (StringUtils.isNotEmpty(maintenanceTask.getTaskName())) {
+                queryWrapper.like(MaintenanceTask::getTaskName, maintenanceTask.getTaskName());
+            }
+            if (maintenanceTask.getIsActive() != null) {
+                queryWrapper.eq(MaintenanceTask::getIsActive, maintenanceTask.getIsActive());
+            }
+        }
+        queryWrapper.orderByDesc(MaintenanceTask::getCreateTime);
+        Page<MaintenanceTask> taskPage = maintenanceTaskMapper.selectPage(page, queryWrapper);
         // 2. 濡傛灉娌℃湁鏁版嵁锛岀洿鎺ヨ繑鍥炵┖鍒嗛〉
         if (taskPage.getRecords().isEmpty()) {
             return AjaxResult.success(taskPage);
@@ -54,6 +67,9 @@
             if (task.getRegistrantId() != null) {
                 userIds.add(task.getRegistrantId());
             }
+            if (task.getMaintenancePersonId() != null) {
+                userIds.add(task.getMaintenancePersonId());
+            }
         });
 
         // 4. 鎵归噺鏌ヨ鐢ㄦ埛淇℃伅
@@ -63,9 +79,11 @@
             users.forEach(user -> userNickNameMap.put(user.getUserId(), user.getNickName()));
         }
         taskPage.getRecords().forEach(task -> {
-            // 璁剧疆鐧昏浜烘樀绉�
             if (task.getRegistrantId() != null) {
                 task.setRegistrant(userNickNameMap.getOrDefault(task.getRegistrantId(), "鏈煡鐢ㄦ埛"));
+            }
+            if (task.getMaintenancePersonId() != null) {
+                task.setMaintenancePerson(userNickNameMap.getOrDefault(task.getMaintenancePersonId(), "鏈煡鐢ㄦ埛"));
             }
         });
         return AjaxResult.success(taskPage);
@@ -73,15 +91,20 @@
 
     @Override
     public AjaxResult add(MaintenanceTask maintenanceTask) {
-        maintenanceTask.setActive(true);
-        // 璁$畻棣栨鎵ц鏃堕棿
-        TimingTask task = new TimingTask();
-        task.setFrequencyType(maintenanceTask.getFrequencyType());
-        task.setFrequencyDetail(maintenanceTask.getFrequencyDetail());
-        LocalDateTime firstExecutionTime = timingTaskService.calculateFirstExecutionTime(task);
-        maintenanceTask.setNextExecutionTime(firstExecutionTime);
+        if (maintenanceTask == null){
+            throw new ServiceException("鏂板澶辫触,鏁版嵁涓嶈兘涓虹┖");
+        }
+        // 鍙湁鍚敤鐘舵�佹墠娣诲姞
+        if (maintenanceTask.getIsActive() != null && maintenanceTask.getIsActive() == 1) {
+            // 璁$畻棣栨鎵ц鏃堕棿
+            TimingTask task = new TimingTask();
+            task.setFrequencyType(maintenanceTask.getFrequencyType());
+            task.setFrequencyDetail(maintenanceTask.getFrequencyDetail());
+            LocalDateTime firstExecutionTime = timingTaskService.calculateFirstExecutionTime(task);
+            maintenanceTask.setNextExecutionTime(firstExecutionTime);
+        }
         int insert = maintenanceTaskMapper.insert(maintenanceTask);
-        if (insert > 0) {
+        if (insert > 0 && maintenanceTask.getIsActive() != null && maintenanceTask.getIsActive() == 1) {
             maintenanceTaskScheduler.scheduleMaintenanceTask(maintenanceTask);
         }
         return AjaxResult.success("娣诲姞鎴愬姛");
@@ -93,10 +116,23 @@
         if (maintenanceTask1 == null) {
             return AjaxResult.warn("娌℃湁姝ゆ暟鎹�");
         }
+
+        Integer oldIsActive = maintenanceTask1.getIsActive();
+        Integer newIsActive = maintenanceTask.getIsActive();
+
         BeanUtils.copyProperties(maintenanceTask, maintenanceTask1);
         int update = maintenanceTaskMapper.updateById(maintenanceTask1);
         if (update > 0) {
-            maintenanceTaskScheduler.rescheduleMaintenanceTask(maintenanceTask1);
+            // 鏍规嵁isActive鐘舵�佸彉鍖栨潵澶勭悊浠诲姟
+            if (oldIsActive != null && oldIsActive == 1 && newIsActive != null && newIsActive == 0) {
+                // 浠庡惎鐢ㄥ彉涓哄仠鐢紝绉婚櫎浠诲姟
+                maintenanceTaskScheduler.unscheduleMaintenanceTask(maintenanceTask.getId());
+            } else if ((oldIsActive == null || oldIsActive == 0) && newIsActive != null && newIsActive == 1) {
+                // 浠庡仠鐢ㄥ彉涓哄惎鐢紝娣诲姞
+                maintenanceTaskScheduler.scheduleMaintenanceTask(maintenanceTask1);
+            } else {
+                maintenanceTaskScheduler.rescheduleMaintenanceTask(maintenanceTask1);
+            }
         }
         return AjaxResult.success("鏇存柊鎴愬姛");
     }

--
Gitblit v1.9.3