From 98a3463b0f32e3f46c73e255569e6043e5856cb4 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期日, 15 三月 2026 14:32:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
index 4710f64..14d7ccb 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -190,7 +190,7 @@
     @Override
     @Transactional
     @ShardingSphereTransactionType(TransactionType.BASE)
-    public void saveVehicleAccident(SaveVehicleAccidentDto dto, XpOperationsUser xpOperationsUser) {
+    public XpTask saveVehicleAccident(SaveVehicleAccidentDto dto, XpOperationsUser xpOperationsUser) {
         XpTask xpTask = new XpTask();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
@@ -254,10 +254,19 @@
         xpTask.setExpiredNoticeSent(0);
         xpTask.setWillTimeoutNoticeSent(0);
         this.save(xpTask);
+        if (xpTask.getId() == null && StringUtils.isNotBlank(xpTask.getTaskCode())) {
+            XpTask savedTask = this.getOne(new LambdaQueryWrapper<XpTask>()
+                    .eq(XpTask::getTaskCode, xpTask.getTaskCode())
+                    .last("limit 1"));
+            if (savedTask != null && savedTask.getId() != null) {
+                xpTask.setId(savedTask.getId());
+            }
+        }
 
         // 异步发送消息通知
         String plateNumber = Objects.nonNull(vehicle) ? vehicle.getPlateNumber() : "";
         sendAccidentNotificationAsync(xpTask, plateNumber, taskRule.getProcessingTimeLimit());
+        return xpTask;
     }
 
     /**
@@ -1182,6 +1191,11 @@
     @Override
     public R assigneeTask(Long id, Long handlerUserId, Long assigneeUserId) {
         XpTask task = this.getById(id);
+        // 查询规则 任务结束时间从任务分配时开始计算
+        XpTaskRule taskRule = xpTaskRuleMapper.selectOne(null);
+        if (taskRule != null) {
+            task.setEndTime(LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit()));
+        }
         task.setAssigneeTime(LocalDateTime.now());
         task.setHandleUserId(handlerUserId.toString());
         task.setVehicleId(null);
@@ -1202,14 +1216,7 @@
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
             String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
             task.setTaskCode(code);
-            // 查询规则
-            XpTaskRule taskRule = xpTaskRuleMapper.selectOne(null);
-            if (taskRule != null) {
-                task.setEndTime(LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit()));
-            }
             task.setTaskCategory(2);
-            // todo 临时处理
-            task.setHandleUserId("1");
             task.setTaskTypeId(dto.getTaskTypeId());
             task.setTaskUrgencyLevel(dto.getTaskUrgencyLevel());
             task.setTaskDescription(dto.getTaskDescription());

--
Gitblit v1.7.1