From 5c5cddb1c2ee0d19adddebaf3a3a10a6d93fd2ad Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 26 十月 2025 10:52:18 +0800
Subject: [PATCH] feat:优化微信小程序可以运行

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java |   97 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 91 insertions(+), 6 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
index 499b06f..ac521d2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
@@ -42,7 +42,11 @@
 import com.ruoyi.system.domain.VehicleInfo;
 import com.ruoyi.system.service.ISysTaskService;
 import com.ruoyi.system.service.ILegacySystemSyncService;
+import com.ruoyi.system.event.TaskCreatedEvent;
+import com.ruoyi.system.event.TaskAssignedEvent;
+import com.ruoyi.system.event.TaskStatusChangedEvent;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationEventPublisher;
 
 /**
  * 浠诲姟绠$悊Service涓氬姟灞傚鐞�
@@ -79,6 +83,9 @@
 
     @Autowired(required = false)
     private ILegacySystemSyncService legacySystemSyncService;
+    
+    @Autowired
+    private ApplicationEventPublisher eventPublisher;
 
     /**
      * 鏌ヨ浠诲姟绠$悊
@@ -229,6 +236,38 @@
                          "浠诲姟绫诲瀷锛�" + createVO.getTaskType(), SecurityUtils.getUserId(), SecurityUtils.getUsername());
         }
         
+        // 鍙戝竷浠诲姟鍒涘缓浜嬩欢
+        if (result > 0) {
+            eventPublisher.publishEvent(new TaskCreatedEvent(
+                this,
+                task.getTaskId(),
+                task.getTaskCode(),
+                task.getTaskType(),
+                task.getCreatorId(),
+                SecurityUtils.getUsername()
+            ));
+        }
+        
+        // 鍙戝竷浠诲姟鍒嗛厤浜嬩欢
+        if (result > 0 && createVO.getAssignees() != null && !createVO.getAssignees().isEmpty()) {
+            List<Long> assigneeIds = createVO.getAssignees().stream()
+                .map(assignee -> assignee.getUserId())
+                .collect(Collectors.toList());
+            List<String> assigneeNames = createVO.getAssignees().stream()
+                .map(assignee -> assignee.getUserName())
+                .collect(Collectors.toList());
+            
+            eventPublisher.publishEvent(new TaskAssignedEvent(
+                this,
+                task.getTaskId(),
+                task.getTaskCode(),
+                assigneeIds,
+                assigneeNames,
+                SecurityUtils.getUserId(),
+                SecurityUtils.getUsername()
+            ));
+        }
+        
         // 寮傛鍚屾鎬ユ晳杞繍浠诲姟鍒版棫绯荤粺
         if (result > 0 && "EMERGENCY_TRANSFER".equals(createVO.getTaskType()) && legacySystemSyncService != null) {
             final Long finalTaskId = task.getTaskId();
@@ -320,19 +359,40 @@
     @Override
     @Transactional
     public int assignTask(Long taskId, Long assigneeId, String remark) {
-        SysTask task = new SysTask();
-        task.setTaskId(taskId);
-        task.setAssigneeId(assigneeId);
-        task.setUpdateBy(SecurityUtils.getUsername());
-        task.setUpdateTime(DateUtils.getNowDate());
+        SysTask task = sysTaskMapper.selectSysTaskByTaskId(taskId);
+        if (task == null) {
+            throw new RuntimeException("浠诲姟涓嶅瓨鍦�");
+        }
         
-        int result = sysTaskMapper.assignTask(task);
+        SysTask updateTask = new SysTask();
+        updateTask.setTaskId(taskId);
+        updateTask.setAssigneeId(assigneeId);
+        updateTask.setUpdateBy(SecurityUtils.getUsername());
+        updateTask.setUpdateTime(DateUtils.getNowDate());
+        
+        int result = sysTaskMapper.assignTask(updateTask);
         
         // 璁板綍鎿嶄綔鏃ュ織
         if (result > 0) {
             recordTaskLog(taskId, "ASSIGN", "鍒嗛厤浠诲姟", null, 
                          "鍒嗛厤缁欑敤鎴稩D锛�" + assigneeId + "锛屽娉細" + remark, 
                          SecurityUtils.getUserId(), SecurityUtils.getUsername());
+        }
+        
+        // 鍙戝竷浠诲姟鍒嗛厤浜嬩欢
+        if (result > 0) {
+            List<Long> assigneeIds = new ArrayList<>();
+            assigneeIds.add(assigneeId);
+            
+            eventPublisher.publishEvent(new TaskAssignedEvent(
+                this,
+                task.getTaskId(),
+                task.getTaskCode(),
+                assigneeIds,
+                null, // 濮撳悕鍒楄〃鍦ㄧ洃鍚櫒涓煡璇�
+                SecurityUtils.getUserId(),
+                SecurityUtils.getUsername()
+            ));
         }
         
         return result;
@@ -402,6 +462,30 @@
                          "鐘舵�侊細" + newStatus.getInfo() + "锛屽娉細" + remark, 
                          SecurityUtils.getUserId(), SecurityUtils.getUsername(),
                          locationLog);
+        }
+        
+        // 鍙戝竷浠诲姟鐘舵�佸彉鏇翠簨浠�
+        if (result > 0) {
+            // 鏌ヨ浠诲姟鐨勬墍鏈夋墽琛屼汉
+            List<SysTaskAssignee> assignees = sysTaskAssigneeMapper.selectSysTaskAssigneeByTaskId(taskId);
+            List<Long> assigneeIds = null;
+            if (assignees != null && !assignees.isEmpty()) {
+                assigneeIds = assignees.stream()
+                    .map(SysTaskAssignee::getUserId)
+                    .collect(Collectors.toList());
+            }
+            
+            eventPublisher.publishEvent(new TaskStatusChangedEvent(
+                this,
+                oldTask.getTaskId(),
+                oldTask.getTaskCode(),
+                oldTaskStatus.getCode(),
+                newStatus.getCode(),
+                oldTaskStatus.getInfo(),
+                newStatus.getInfo(),
+                assigneeIds,
+                oldTask.getCreatorId()
+            ));
         }
         
         return result;
@@ -610,6 +694,7 @@
             VehicleInfo queryParam = new VehicleInfo();
             queryParam.setStatus("0"); // 0琛ㄧず姝e父鐘舵��
             // 涓嶈缃甦eptId锛屾煡璇㈡墍鏈夐儴闂ㄧ殑杞﹁締
+            queryParam.setDeptId(deptId);
             
             List<VehicleInfo> vehicles = vehicleInfoMapper.selectVehicleInfoList(queryParam);
             

--
Gitblit v1.9.1