From d943874d94e69806cb53b649b378075794bdf683 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期日, 15 三月 2026 14:35:28 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java |   28 ++++++++++++++++++++--------
 1 files changed, 20 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 2a12c93..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);
@@ -251,11 +251,22 @@
         // 根据事故处理限时配置设置任务截止时间
         LocalDateTime endTime = LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit());
         xpTask.setEndTime(endTime);
+        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;
     }
 
     /**
@@ -1168,6 +1179,7 @@
         task.setReportTime(LocalDateTime.now());
         task.setEndTime(LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit()));
         task.setExpiredNoticeSent(0);
+        task.setWillTimeoutNoticeSent(0);
         task.setStatus(TaskScheduleConstants.TASK_STATUS_PENDING_ARRIVE);
         task.setCreateBy("系统自动生成");
         task.setCreateTime(LocalDateTime.now());
@@ -1179,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);
@@ -1199,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());
@@ -1217,6 +1227,8 @@
             task.setVehicleLat(dto.getVehicleLat());
             task.setReportUserId(reportUserId);
             task.setReportTime(LocalDateTime.now());
+            task.setExpiredNoticeSent(0);
+            task.setWillTimeoutNoticeSent(0);
             saveTask.add(task);
         }
         this.saveBatch(saveTask);

--
Gitblit v1.7.1