From 1704e30de33833817a5fce4c4ab0b94ac8ce1cc6 Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期一, 31 八月 2026 17:32:31 +0800
Subject: [PATCH] fix: 修复多处表单验证与数据流转的缺陷,优化系统消息推送逻辑

---
 src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java |   39 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 37 insertions(+), 2 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 09d5d77..049fe6f 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -8,7 +8,11 @@
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
+import com.ruoyi.project.system.service.ISysNoticeService;
+import com.ruoyi.project.system.domain.SysNotice;
 
+import com.ruoyi.project.system.service.impl.UnipushService;
+import java.util.Collections;
 import java.io.Serializable;
 import java.time.DayOfWeek;
 import java.time.LocalDateTime;
@@ -28,6 +32,12 @@
 
     @Autowired
     private JdbcTemplate jdbcTemplate;
+
+    @Autowired
+    private ISysNoticeService sysNoticeService;
+
+    @Autowired
+    private UnipushService unipushService;
 
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
@@ -52,6 +62,26 @@
             // 2. 鍒涘缓骞朵繚瀛樺贰妫�浠诲姟璁板綍 - 杩欏氨鏄偍鎻愪緵鐨勪唬鐮佸簲璇ユ斁鐨勪綅缃�
             DeviceMaintenance deviceMaintenance = createInspectionTask(timingTask);
             deviceMaintenanceService.save(deviceMaintenance);
+
+            // 缁欐墽琛屼汉鍙戦�佺郴缁熼�氱煡
+            if (timingTask.getExecutorId() != null) {
+                SysNotice notice = new SysNotice();
+                notice.setNoticeTitle("鏂颁繚鍏昏鍒掓彁閱�");
+                notice.setNoticeType("1"); // 1 閫氱煡
+                String dateStr = java.time.LocalDate.now().toString();
+                notice.setNoticeContent("浣犳湁涓�涓柊鐨勮澶囦繚鍏昏鍒� 锛�" + dateStr + " " + timingTask.getTaskName());
+                notice.setStatus("0"); // 姝e父
+                notice.setConsigneeId(timingTask.getExecutorId());
+                notice.setSenderId(0L); // 0浠h〃绯荤粺鍙戦��
+                notice.setTenantId(timingTask.getTenantId());
+                sysNoticeService.insertNotice(notice);
+                
+                try {
+                    unipushService.sendClientMessage(Collections.singletonList(notice));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
 
             // 3. 鏇存柊瀹氭椂浠诲姟鐨勬墽琛屾椂闂�
             if (!tasks.isEmpty()) {
@@ -93,16 +123,21 @@
         inspectionTask.setMaintenanceTaskId(timingTask.getId());
         inspectionTask.setDeviceLedgerId(timingTask.getTaskId());
         inspectionTask.setMaintenancePlanTime(LocalDateTime.now());
+        inspectionTask.setMaintenanceActuallyName(timingTask.getMaintenancePerson());
+        inspectionTask.setExecutorId(timingTask.getExecutorId());
+        inspectionTask.setMaintenanceType(timingTask.getMaintenanceType());
         inspectionTask.setFrequencyType(timingTask.getFrequencyType());
         inspectionTask.setFrequencyDetail(timingTask.getFrequencyDetail());
         inspectionTask.setTenantId(timingTask.getTenantId());
         inspectionTask.setStatus(0);
         inspectionTask.setDeviceModel(timingTask.getDeviceModel());
         inspectionTask.setMachineryCategory(timingTask.getMachineryCategory());
-        inspectionTask.setCreateUser(Integer.parseInt(timingTask.getRegistrantId().toString()));
+        if (timingTask.getRegistrantId() != null) {
+            inspectionTask.setCreateUser(Integer.parseInt(timingTask.getRegistrantId().toString()));
+            inspectionTask.setUpdateUser(Integer.parseInt(timingTask.getRegistrantId().toString()));
+        }
         inspectionTask.setUpdateTime(LocalDateTime.now());
         inspectionTask.setCreateTime(LocalDateTime.now());
-        inspectionTask.setUpdateUser(Integer.parseInt(timingTask.getRegistrantId().toString()));
         return inspectionTask;
     }
 

--
Gitblit v1.9.3