From ba78f764042ca15bf3f3be62e7a3fc699df56d67 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 07 三月 2026 20:59:53 +0800
Subject: [PATCH] 提交管理后台新接口,修改XPU报文相关功能,增加测试小程序状态流转接口

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java |  641 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 367 insertions(+), 274 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 ae728e1..d91c63f 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
@@ -28,6 +28,8 @@
 import com.xiaopeng.maintenance.service.XpTaskService;
 import com.xiaopeng.maintenance.utils.UUIDUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,6 +40,7 @@
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -50,11 +53,15 @@
  */
 @Service
 public class XpTaskServiceImpl extends ServiceImpl<XpTaskMapper, XpTask> implements XpTaskService {
-
+    @Autowired
+    private RedissonClient redissonClient;
+    @Autowired
+    private XpErrorTypeMapper errorTypeMapper;
     /**
      * 常规任务类型映射
      */
     private static final Map<String, String> TASK_TYPE_MAP = new java.util.HashMap<>();
+
     static {
         TASK_TYPE_MAP.put("1", "车辆检查");
         TASK_TYPE_MAP.put("2", "车辆充电");
@@ -77,8 +84,7 @@
     private XpVehiclePreparationMapper vehiclePreparationMapper;
     @Autowired
     private XpVehicleDetectionMapper vehicleDetectionMapper;
-    @Autowired
-    private XpErrorTypeMapper errorTypeMapper;
+
     @Autowired
     private XpVehicleCleanMapper vehicleCleanMapper;
     @Autowired
@@ -92,6 +98,7 @@
     private XpVehicleClient xpVehicleClient;
     @Autowired
     private XpTaskRuleMapper xpTaskRuleMapper;
+
     @Override
     public PageInfo<WorkBenchVO> workbench(WorkBenchQuery query) {
         PageInfo<WorkBenchVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
@@ -135,7 +142,7 @@
         List<TaskPageListVO> list = this.baseMapper.pageList(pageInfo, query);
         XpTaskRule xpTaskRule = xpTaskRuleMapper.selectOne(new LambdaQueryWrapper<XpTaskRule>().last("limit 1"));
         if (Objects.nonNull(xpTaskRule)) {
-            list.stream().filter(item -> item.getTaskCategory().equals(2)).forEach(item->{
+            list.stream().filter(item -> item.getTaskCategory().equals(2)).forEach(item -> {
                 item.setCanArriveRange(xpTaskRule.getCanArriveRange());
             });
         }
@@ -169,14 +176,14 @@
     public R<TaskAccidentDetailVO> vehicleAccidentDetail(Long id) {
         TaskAccidentDetailVO res = new TaskAccidentDetailVO();
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
@@ -218,7 +225,7 @@
     @Override
     public R handleVehicleAccident(HandleVehicleAccidentDto dto, XpOperationsUser xpOperationsUser) {
         XpTask task = this.getById(dto.getId());
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
@@ -226,7 +233,7 @@
         }
 
         task.setHandleTime(LocalDateTime.now());
-        task.setHandleUserId(xpOperationsUser.getId());
+        task.setHandleUserId(xpOperationsUser.getId().toString());
         task.setStatus(2);
         // 存储事故处理日志
         XpTaskHandleDetail xpTaskHandleDetail = new XpTaskHandleDetail();
@@ -249,14 +256,14 @@
     public R<TaskRoutineDetailVO> vehicleRoutineDetail(Long id) {
         TaskRoutineDetailVO res = new TaskRoutineDetailVO();
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
@@ -282,8 +289,8 @@
         res.setTaskImage(task.getTaskImage());
         res.setHandleUserId(task.getHandleUserId());
         res.setHandleTime(task.getHandleTime());
-        if (Objects.nonNull(task.getHandleUserId())) {
-            XpOperationsUser data = xpOperationUserClient.queryById(task.getHandleUserId()).getData();
+        if (Objects.nonNull(task.getHandleUserId()) && task.getHandleUserId().split(",").length == 1) {
+            XpOperationsUser data = xpOperationUserClient.queryById(Long.valueOf(task.getHandleUserId())).getData();
             if (Objects.nonNull(data)) {
                 res.setHandleUserName(data.getNickName());
             }
@@ -295,14 +302,14 @@
     public R<TaskChargingDetailVO> chargingDetail(Long id) {
         TaskChargingDetailVO res = new TaskChargingDetailVO();
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
@@ -323,7 +330,7 @@
         res.setStatus(task.getStatus());
         XpChargingRecord chargingRecord = chargingRecordMapper.selectOne(new LambdaQueryWrapper<XpChargingRecord>()
                 .eq(XpChargingRecord::getTaskId, id).last("limit 1"));
-        if (chargingRecord != null){
+        if (chargingRecord != null) {
             res.setStartRemainingBattery(chargingRecord.getStartRemainingBattery());
             res.setStartChargingPicture(chargingRecord.getStartChargingPicture());
             res.setStartTime(chargingRecord.getStartTime());
@@ -332,15 +339,15 @@
             res.setEndTime(chargingRecord.getEndTime());
             res.setStartOperationsUserId(chargingRecord.getStartOperationsUserId());
             res.setEndOperationsUserId(chargingRecord.getEndOperationsUserId());
-            if (chargingRecord.getStartOperationsUserId() != null){
+            if (chargingRecord.getStartOperationsUserId() != null) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getStartOperationsUserId()).getData();
-                if (operationsUser != null){
+                if (operationsUser != null) {
                     res.setStartOperationsUserName(operationsUser.getNickName());
                 }
             }
-            if (chargingRecord.getEndOperationsUserId() != null){
+            if (chargingRecord.getEndOperationsUserId() != null) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getEndOperationsUserId()).getData();
-                if (operationsUser != null){
+                if (operationsUser != null) {
                     res.setEndOperationsUserName(operationsUser.getNickName());
                 }
             }
@@ -355,14 +362,14 @@
 
 
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
@@ -383,7 +390,7 @@
         res.setStatus(task.getStatus());
         XpVehicleRepair vehicleRepair = vehicleRepairMapper.selectOne(new LambdaQueryWrapper<XpVehicleRepair>()
                 .eq(XpVehicleRepair::getTaskId, id).last("limit 1"));
-        if (vehicleRepair != null){
+        if (vehicleRepair != null) {
             res.setStartTime(vehicleRepair.getStartTime());
             res.setEndTime(vehicleRepair.getEndTime());
             res.setRepairReason(vehicleRepair.getRepairReason());
@@ -394,15 +401,15 @@
             res.setSendTime(vehicleRepair.getSendTime());
             res.setReturnUserId(vehicleRepair.getReturnUserId());
             res.setReturnTime(vehicleRepair.getReturnTime());
-            if (vehicleRepair.getReturnUserId() != null){
+            if (vehicleRepair.getReturnUserId() != null) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getReturnUserId()).getData();
-                if (operationsUser != null){
+                if (operationsUser != null) {
                     res.setReturnUserName(operationsUser.getNickName());
                 }
             }
-            if (vehicleRepair.getSendUserId() != null){
+            if (vehicleRepair.getSendUserId() != null) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getSendUserId()).getData();
-                if (operationsUser != null){
+                if (operationsUser != null) {
                     res.setSendUserName(operationsUser.getNickName());
                 }
             }
@@ -416,18 +423,15 @@
         com.xiaopeng.maintenance.vo.TaskPreparationDetailVO res = new com.xiaopeng.maintenance.vo.TaskPreparationDetailVO();
 
 
-
-
-
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
@@ -448,7 +452,7 @@
         res.setStatus(task.getStatus());
         XpVehiclePreparation vehiclePreparation = vehiclePreparationMapper.selectOne(new LambdaQueryWrapper<XpVehiclePreparation>()
                 .eq(XpVehiclePreparation::getTaskId, id).last("limit 1"));
-        if (vehiclePreparation != null){
+        if (vehiclePreparation != null) {
             res.setLeftFrontWheel(vehiclePreparation.getLeftFrontWheel());
             res.setRightFrontWheel(vehiclePreparation.getRightFrontWheel());
             res.setLeftRearWheel(vehiclePreparation.getLeftRearWheel());
@@ -463,9 +467,9 @@
             res.setRemarks(vehiclePreparation.getRemarks());
             res.setOperationsUserId(vehiclePreparation.getOperationsUserId());
             res.setOperationsTime(vehiclePreparation.getCreateTime());
-            if (vehiclePreparation.getOperationsUserId() != null){
+            if (vehiclePreparation.getOperationsUserId() != null) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehiclePreparation.getOperationsUserId()).getData();
-                if (operationsUser != null){
+                if (operationsUser != null) {
                     res.setOperationsUserName(operationsUser.getNickName());
                 }
             }
@@ -477,14 +481,14 @@
     public R<com.xiaopeng.maintenance.vo.TaskDetectionDetailVO> detectionDetail(Long id) {
         com.xiaopeng.maintenance.vo.TaskDetectionDetailVO res = new com.xiaopeng.maintenance.vo.TaskDetectionDetailVO();
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
@@ -505,7 +509,7 @@
         res.setStatus(task.getStatus());
         XpVehicleDetection vehicleDetection = vehicleDetectionMapper.selectOne(new LambdaQueryWrapper<XpVehicleDetection>()
                 .eq(XpVehicleDetection::getTaskId, id).last("limit 1"));
-        if (vehicleDetection != null){
+        if (vehicleDetection != null) {
             res.setNetworkDetection(vehicleDetection.getNetworkDetection());
             res.setVersionVerification(vehicleDetection.getVersionVerification());
             res.setCommunicationSelfCheck(vehicleDetection.getCommunicationSelfCheck());
@@ -524,9 +528,9 @@
             res.setSystemCheckPicture(vehicleDetection.getSystemCheckPicture());
             res.setCheckTime(vehicleDetection.getCheckTime());
             res.setOperationsUserId(vehicleDetection.getOperationsUserId());
-            if (vehicleDetection.getOperationsUserId() != null){
+            if (vehicleDetection.getOperationsUserId() != null) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleDetection.getOperationsUserId()).getData();
-                if (operationsUser != null){
+                if (operationsUser != null) {
                     res.setOperationsUserName(operationsUser.getNickName());
                 }
             }
@@ -537,7 +541,7 @@
     @Override
     public R saveRoutineDetail(SaveRoutineDetailDto dto, Long id) {
         XpTask task = this.getById(dto.getId());
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
@@ -546,7 +550,7 @@
         XpTaskHandleDetailRoutine xpTaskHandleDetailRoutine = new XpTaskHandleDetailRoutine();
         xpTaskHandleDetailRoutine.setTaskId(task.getId());
         String taskTypeId = task.getTaskTypeId();
-        switch (taskTypeId){
+        switch (taskTypeId) {
             case "6":
                 xpTaskHandleDetailRoutine.setTaskType(1);
                 break;
@@ -575,14 +579,14 @@
     public R<com.xiaopeng.maintenance.vo.TaskCleanDetailVO> cleanDetail(Long id) {
         com.xiaopeng.maintenance.vo.TaskCleanDetailVO res = new com.xiaopeng.maintenance.vo.TaskCleanDetailVO();
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
@@ -603,12 +607,12 @@
         res.setStatus(task.getStatus());
         XpVehicleClean vehicleDetection = vehicleCleanMapper.selectOne(new LambdaQueryWrapper<XpVehicleClean>()
                 .eq(XpVehicleClean::getTaskId, id).last("limit 1"));
-        if (vehicleDetection != null){
+        if (vehicleDetection != null) {
             res.setTaskImage(vehicleDetection.getTaskImage());
             res.setOperationUserId(vehicleDetection.getOperationsUserId());
-            if (vehicleDetection.getOperationsUserId() != null){
+            if (vehicleDetection.getOperationsUserId() != null) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleDetection.getOperationsUserId()).getData();
-                if (operationsUser != null){
+                if (operationsUser != null) {
                     res.setOperationsUserName(operationsUser.getNickName());
                 }
             }
@@ -617,13 +621,43 @@
     }
 
     @Override
-    public R confirmArrive(Long id) {
-        XpTask task = this.getById(id);
-        if (task!=null){
+    public R confirmArrive(Long id, Long userId) {
+        RLock lock = redissonClient.getLock("TASK_CONFIRM_" + id);
+
+        try {
+            // 尝试获取锁,最多等待3秒
+            boolean isLocked = lock.tryLock(3, 10, TimeUnit.SECONDS);
+            if (!isLocked) {
+                return R.fail("系统繁忙,请稍后重试");
+            }
+
+            // 查询任务
+            XpTask task = this.getById(id);
+            if (task == null) {
+                return R.fail("任务不存在");
+            }
+
+            // 检查任务状态
+            if (task.getStatus() != 0) {
+                return R.fail("任务已被处理");
+            }
+
+            // 更新任务
             task.setStatus(1);
+            task.setHandleUserId(userId.toString());
+
             this.updateById(task);
+            return R.ok();
+
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            return R.fail("操作被中断");
+        } finally {
+            // 确保锁被释放
+            if (lock.isHeldByCurrentThread()) {
+                lock.unlock();
+            }
         }
-        return R.ok();
     }
 
     @Override
@@ -662,7 +696,7 @@
             Set<Long> errorTypeIds = new HashSet<>();
             for (XpTask task : resultPage.getRecords()) {
                 if (task.getTaskCategory() != null && task.getTaskCategory() == 2
-                    && StringUtils.isNotBlank(task.getTaskTypeId())) {
+                        && StringUtils.isNotBlank(task.getTaskTypeId())) {
                     String[] ids = task.getTaskTypeId().split(",");
                     for (String id : ids) {
                         try {
@@ -741,9 +775,66 @@
     public PageInfo<TaskManagementPageListVO> pageListManagement(TaskManagementPageListQuery query) {
         PageInfo<TaskManagementPageListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TaskManagementPageListVO> list = this.baseMapper.pageListManagement(pageInfo, query);
+        for (TaskManagementPageListVO taskManagementPageListVO : list) {
+            if (taskManagementPageListVO.getTaskCategory() == 1) {
+                switch (taskManagementPageListVO.getTaskTypeId()) {
+                    case "1":
+                        taskManagementPageListVO.setTaskTypeName("车辆检查");
+                        break;
+                    case "2":
+                        taskManagementPageListVO.setTaskTypeName("车辆充电");
+                        break;
+                    case "3":
+                        taskManagementPageListVO.setTaskTypeName("车辆整备");
+                        break;
+                    case "4":
+                        taskManagementPageListVO.setTaskTypeName("整备洗车");
+                        break;
+                    case "5":
+                        taskManagementPageListVO.setTaskTypeName("车辆维修");
+                        break;
+                    case "6":
+                        taskManagementPageListVO.setTaskTypeName("车辆保养");
+                        break;
+                    case "7":
+                        taskManagementPageListVO.setTaskTypeName("车辆保险到期");
+                        break;
+                    case "8":
+                        taskManagementPageListVO.setTaskTypeName("车辆年检到期");
+                        break;
+                    case "9":
+                        taskManagementPageListVO.setTaskTypeName("车辆运营资质到期");
+                        break;
+                    default:
+                        taskManagementPageListVO.setTaskTypeName("");
+                        break;
+                }
+            }else{
+                StringBuilder taskTypeName = new StringBuilder();
+                String[] typeIds = taskManagementPageListVO.getTaskTypeId().split(",");
+                List<XpErrorType> xpErrorTypes = errorTypeMapper.selectList(new LambdaQueryWrapper<XpErrorType>()
+                        .in(XpErrorType::getId, Arrays.asList(typeIds)).orderByAsc(XpErrorType::getParentId));
+                List<XpErrorType> parents = new ArrayList<>();
+                for (XpErrorType xpErrorType : xpErrorTypes) {
+                    if (xpErrorType.getParentId() == 0) {
+                        parents.add(xpErrorType);
+                    }
+                }
+                for (XpErrorType parent : parents) {
+                    List<XpErrorType> children = xpErrorTypes.stream().filter(e -> e.getParentId().equals(parent.getId())).collect(Collectors.toList());
+                    taskTypeName.append(parent.getErrorName()).append(">");
+                    for (XpErrorType child : children) {
+                        taskTypeName.append(child.getErrorName()).append(";");
+                    }
+                }
+
+                taskManagementPageListVO.setTaskTypeName(taskTypeName.substring(0, taskTypeName.length() - 1));
+            }
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
     @Override
     public List<TaskManagementPageListVO> exportList(TaskManagementPageListQuery query) {
         List<TaskManagementPageListVO> list = this.baseMapper.exportList(query);
@@ -756,10 +847,11 @@
     }
 
     @Override
-    public R assigneeTask(Long id, Long handlerUserId,Long assigneeUserId) {
+    public R assigneeTask(Long id, Long handlerUserId, Long assigneeUserId) {
         XpTask task = this.getById(id);
         task.setAssigneeTime(LocalDateTime.now());
-        task.setHandleUserId(handlerUserId);
+        task.setHandleUserId(handlerUserId.toString());
+        task.setVehicleId(null);
         task.setAssigneeUserId(assigneeUserId);
         this.updateById(task);
         return R.ok();
@@ -779,7 +871,7 @@
             task.setTaskCode(code);
             // 查询规则
             XpTaskRule taskRule = xpTaskRuleMapper.selectOne(null);
-            if (taskRule != null){
+            if (taskRule != null) {
                 task.setEndTime(LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit()));
             }
             task.setTaskCategory(2);
@@ -802,251 +894,251 @@
     public R<TaskManagementDetailVO> taskDetail(Long id) {
         TaskManagementDetailVO managementDetailVO = new TaskManagementDetailVO();
         XpTask task = this.getById(id);
-        if (task == null){
+        if (task == null) {
             throw new ServiceException(
                     "任务不存在",
                     I18nKeyConstant.TASK_NOT_EXIST
             );
         }
         XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData();
-        if (vehicle == null){
+        if (vehicle == null) {
             throw new ServiceException(
                     "车辆不存在",
                     I18nKeyConstant.VEHICLE_NOT_EXIST
             );
         }
 
-        if (task.getTaskCategory()==1){
+        if (task.getTaskCategory() == 1) {
             // 常规任务
 
-                switch (task.getTaskTypeId()){
-                    case "1":
-                        // 检测
-                        TaskManagementDetectionDetailVO taskManagementDetectionDetailVO = new TaskManagementDetectionDetailVO();
-                        taskManagementDetectionDetailVO.setId(task.getId());
-                        taskManagementDetectionDetailVO.setVehicleId(vehicle.getId());
-                        taskManagementDetectionDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
-                        taskManagementDetectionDetailVO.setPlateNumber(vehicle.getPlateNumber());
-                        taskManagementDetectionDetailVO.setVehicleColor(vehicle.getVehicleColor());
-                        taskManagementDetectionDetailVO.setVehicleCode(vehicle.getVehicleCode());
-                        taskManagementDetectionDetailVO.setVehicleVin(vehicle.getVehicleVin());
-                        taskManagementDetectionDetailVO.setVehicleLocation(task.getVehicleLocation());
-                        taskManagementDetectionDetailVO.setTaskCode(task.getTaskCode());
-                        XpVehicleDetection vehicleDetection = vehicleDetectionMapper.selectOne(new LambdaQueryWrapper<XpVehicleDetection>()
-                                .eq(XpVehicleDetection::getTaskId, id).last("limit 1"));
-                        if (vehicleDetection != null){
-                            taskManagementDetectionDetailVO.setNetworkDetection(vehicleDetection.getNetworkDetection());
-                            taskManagementDetectionDetailVO.setVersionVerification(vehicleDetection.getVersionVerification());
-                            taskManagementDetectionDetailVO.setCommunicationSelfCheck(vehicleDetection.getCommunicationSelfCheck());
-                            taskManagementDetectionDetailVO.setRemoteSelfCheck(vehicleDetection.getRemoteSelfCheck());
-                            taskManagementDetectionDetailVO.setCollisionPrevention(vehicleDetection.getCollisionPrevention());
-                            taskManagementDetectionDetailVO.setSensorSelfCheck(vehicleDetection.getSensorSelfCheck());
-                            taskManagementDetectionDetailVO.setSensorCleaning(vehicleDetection.getSensorCleaning());
-                            taskManagementDetectionDetailVO.setSensorCleaningPicture(vehicleDetection.getSensorCleaningPicture());
-                            taskManagementDetectionDetailVO.setInteractiveScreen(vehicleDetection.getInteractiveScreen());
-                            taskManagementDetectionDetailVO.setInteractiveScreenPicture(vehicleDetection.getInteractiveScreenPicture());
-                            taskManagementDetectionDetailVO.setHelpButton(vehicleDetection.getHelpButton());
-                            taskManagementDetectionDetailVO.setHelpButtonPicture(vehicleDetection.getHelpButtonPicture());
-                            taskManagementDetectionDetailVO.setPaymentFunction(vehicleDetection.getPaymentFunction());
-                            taskManagementDetectionDetailVO.setPaymentFunctionPicture(vehicleDetection.getPaymentFunctionPicture());
-                            taskManagementDetectionDetailVO.setSystemCheck(vehicleDetection.getSystemCheck());
-                            taskManagementDetectionDetailVO.setSystemCheckPicture(vehicleDetection.getSystemCheckPicture());
-                            taskManagementDetectionDetailVO.setCheckTime(vehicleDetection.getCheckTime());
-                            taskManagementDetectionDetailVO.setOperationsUserId(vehicleDetection.getOperationsUserId());
-                            if (vehicleDetection.getOperationsUserId() != null){
-                                XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleDetection.getOperationsUserId()).getData();
-                                if (operationsUser != null){
-                                    taskManagementDetectionDetailVO.setOperationsUserName(operationsUser.getNickName());
-                                }
+            switch (task.getTaskTypeId()) {
+                case "1":
+                    // 检测
+                    TaskManagementDetectionDetailVO taskManagementDetectionDetailVO = new TaskManagementDetectionDetailVO();
+                    taskManagementDetectionDetailVO.setId(task.getId());
+                    taskManagementDetectionDetailVO.setVehicleId(vehicle.getId());
+                    taskManagementDetectionDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
+                    taskManagementDetectionDetailVO.setPlateNumber(vehicle.getPlateNumber());
+                    taskManagementDetectionDetailVO.setVehicleColor(vehicle.getVehicleColor());
+                    taskManagementDetectionDetailVO.setVehicleCode(vehicle.getVehicleCode());
+                    taskManagementDetectionDetailVO.setVehicleVin(vehicle.getVehicleVin());
+                    taskManagementDetectionDetailVO.setVehicleLocation(task.getVehicleLocation());
+                    taskManagementDetectionDetailVO.setTaskCode(task.getTaskCode());
+                    XpVehicleDetection vehicleDetection = vehicleDetectionMapper.selectOne(new LambdaQueryWrapper<XpVehicleDetection>()
+                            .eq(XpVehicleDetection::getTaskId, id).last("limit 1"));
+                    if (vehicleDetection != null) {
+                        taskManagementDetectionDetailVO.setNetworkDetection(vehicleDetection.getNetworkDetection());
+                        taskManagementDetectionDetailVO.setVersionVerification(vehicleDetection.getVersionVerification());
+                        taskManagementDetectionDetailVO.setCommunicationSelfCheck(vehicleDetection.getCommunicationSelfCheck());
+                        taskManagementDetectionDetailVO.setRemoteSelfCheck(vehicleDetection.getRemoteSelfCheck());
+                        taskManagementDetectionDetailVO.setCollisionPrevention(vehicleDetection.getCollisionPrevention());
+                        taskManagementDetectionDetailVO.setSensorSelfCheck(vehicleDetection.getSensorSelfCheck());
+                        taskManagementDetectionDetailVO.setSensorCleaning(vehicleDetection.getSensorCleaning());
+                        taskManagementDetectionDetailVO.setSensorCleaningPicture(vehicleDetection.getSensorCleaningPicture());
+                        taskManagementDetectionDetailVO.setInteractiveScreen(vehicleDetection.getInteractiveScreen());
+                        taskManagementDetectionDetailVO.setInteractiveScreenPicture(vehicleDetection.getInteractiveScreenPicture());
+                        taskManagementDetectionDetailVO.setHelpButton(vehicleDetection.getHelpButton());
+                        taskManagementDetectionDetailVO.setHelpButtonPicture(vehicleDetection.getHelpButtonPicture());
+                        taskManagementDetectionDetailVO.setPaymentFunction(vehicleDetection.getPaymentFunction());
+                        taskManagementDetectionDetailVO.setPaymentFunctionPicture(vehicleDetection.getPaymentFunctionPicture());
+                        taskManagementDetectionDetailVO.setSystemCheck(vehicleDetection.getSystemCheck());
+                        taskManagementDetectionDetailVO.setSystemCheckPicture(vehicleDetection.getSystemCheckPicture());
+                        taskManagementDetectionDetailVO.setCheckTime(vehicleDetection.getCheckTime());
+                        taskManagementDetectionDetailVO.setOperationsUserId(vehicleDetection.getOperationsUserId());
+                        if (vehicleDetection.getOperationsUserId() != null) {
+                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleDetection.getOperationsUserId()).getData();
+                            if (operationsUser != null) {
+                                taskManagementDetectionDetailVO.setOperationsUserName(operationsUser.getNickName());
                             }
                         }
-                        managementDetailVO.setDetectionDetailVO(taskManagementDetectionDetailVO);
-                        break;
-                    case "2":
-                        // 充电
-                        TaskManagementChargingDetailVO taskManagementChargingDetailVO = new TaskManagementChargingDetailVO();
-                        taskManagementChargingDetailVO.setId(task.getId());
-                        taskManagementChargingDetailVO.setVehicleId(vehicle.getId());
-                        taskManagementChargingDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
-                        taskManagementChargingDetailVO.setPlateNumber(vehicle.getPlateNumber());
-                        taskManagementChargingDetailVO.setVehicleColor(vehicle.getVehicleColor());
-                        taskManagementChargingDetailVO.setVehicleCode(vehicle.getVehicleCode());
-                        taskManagementChargingDetailVO.setVehicleVin(vehicle.getVehicleVin());
-                        taskManagementChargingDetailVO.setVehicleLocation(task.getVehicleLocation());
-                        taskManagementChargingDetailVO.setTaskCode(task.getTaskCode());
-                        XpChargingRecord chargingRecord = chargingRecordMapper.selectOne(new LambdaQueryWrapper<XpChargingRecord>()
-                                .eq(XpChargingRecord::getTaskId, id).last("limit 1"));
-                        if (chargingRecord != null){
-                            taskManagementChargingDetailVO.setStartRemainingBattery(chargingRecord.getStartRemainingBattery());
-                            taskManagementChargingDetailVO.setStartChargingPicture(chargingRecord.getStartChargingPicture());
-                            taskManagementChargingDetailVO.setStartTime(chargingRecord.getStartTime());
-                            taskManagementChargingDetailVO.setEndRemainingBattery(chargingRecord.getEndRemainingBattery());
-                            taskManagementChargingDetailVO.setEndChargingPicture(chargingRecord.getEndChargingPicture());
-                            taskManagementChargingDetailVO.setEndTime(chargingRecord.getEndTime());
-                            taskManagementChargingDetailVO.setStartOperationsUserId(chargingRecord.getStartOperationsUserId());
-                            taskManagementChargingDetailVO.setEndOperationsUserId(chargingRecord.getEndOperationsUserId());
-                            if (chargingRecord.getStartOperationsUserId() != null){
-                                XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getStartOperationsUserId()).getData();
-                                if (operationsUser != null){
-                                    taskManagementChargingDetailVO.setStartOperationsUserName(operationsUser.getNickName());
-                                }
-                            }
-                            if (chargingRecord.getEndOperationsUserId() != null){
-                                XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getEndOperationsUserId()).getData();
-                                if (operationsUser != null){
-                                    taskManagementChargingDetailVO.setEndOperationsUserName(operationsUser.getNickName());
-                                }
+                    }
+                    managementDetailVO.setDetectionDetailVO(taskManagementDetectionDetailVO);
+                    break;
+                case "2":
+                    // 充电
+                    TaskManagementChargingDetailVO taskManagementChargingDetailVO = new TaskManagementChargingDetailVO();
+                    taskManagementChargingDetailVO.setId(task.getId());
+                    taskManagementChargingDetailVO.setVehicleId(vehicle.getId());
+                    taskManagementChargingDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
+                    taskManagementChargingDetailVO.setPlateNumber(vehicle.getPlateNumber());
+                    taskManagementChargingDetailVO.setVehicleColor(vehicle.getVehicleColor());
+                    taskManagementChargingDetailVO.setVehicleCode(vehicle.getVehicleCode());
+                    taskManagementChargingDetailVO.setVehicleVin(vehicle.getVehicleVin());
+                    taskManagementChargingDetailVO.setVehicleLocation(task.getVehicleLocation());
+                    taskManagementChargingDetailVO.setTaskCode(task.getTaskCode());
+                    XpChargingRecord chargingRecord = chargingRecordMapper.selectOne(new LambdaQueryWrapper<XpChargingRecord>()
+                            .eq(XpChargingRecord::getTaskId, id).last("limit 1"));
+                    if (chargingRecord != null) {
+                        taskManagementChargingDetailVO.setStartRemainingBattery(chargingRecord.getStartRemainingBattery());
+                        taskManagementChargingDetailVO.setStartChargingPicture(chargingRecord.getStartChargingPicture());
+                        taskManagementChargingDetailVO.setStartTime(chargingRecord.getStartTime());
+                        taskManagementChargingDetailVO.setEndRemainingBattery(chargingRecord.getEndRemainingBattery());
+                        taskManagementChargingDetailVO.setEndChargingPicture(chargingRecord.getEndChargingPicture());
+                        taskManagementChargingDetailVO.setEndTime(chargingRecord.getEndTime());
+                        taskManagementChargingDetailVO.setStartOperationsUserId(chargingRecord.getStartOperationsUserId());
+                        taskManagementChargingDetailVO.setEndOperationsUserId(chargingRecord.getEndOperationsUserId());
+                        if (chargingRecord.getStartOperationsUserId() != null) {
+                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getStartOperationsUserId()).getData();
+                            if (operationsUser != null) {
+                                taskManagementChargingDetailVO.setStartOperationsUserName(operationsUser.getNickName());
                             }
                         }
-                        managementDetailVO.setChargingDetailVO(taskManagementChargingDetailVO);
-
-                        break;
-                    case "3":
-                        // 整备
-                        TaskManagementPreparationDetailVO taskManagementPreparationDetailVO = new TaskManagementPreparationDetailVO();
-                        taskManagementPreparationDetailVO.setId(task.getId());
-                        taskManagementPreparationDetailVO.setVehicleId(vehicle.getId());
-                        taskManagementPreparationDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
-                        taskManagementPreparationDetailVO.setPlateNumber(vehicle.getPlateNumber());
-                        taskManagementPreparationDetailVO.setVehicleColor(vehicle.getVehicleColor());
-                        taskManagementPreparationDetailVO.setVehicleCode(vehicle.getVehicleCode());
-                        taskManagementPreparationDetailVO.setVehicleVin(vehicle.getVehicleVin());
-                        taskManagementPreparationDetailVO.setVehicleLocation(task.getVehicleLocation());
-                        taskManagementPreparationDetailVO.setTaskCode(task.getTaskCode());
-                        XpVehiclePreparation vehiclePreparation = vehiclePreparationMapper.selectOne(new LambdaQueryWrapper<XpVehiclePreparation>()
-                                .eq(XpVehiclePreparation::getTaskId, id).last("limit 1"));
-                        if (vehiclePreparation != null){
-                            taskManagementPreparationDetailVO.setLeftFrontWheel(vehiclePreparation.getLeftFrontWheel());
-                            taskManagementPreparationDetailVO.setRightFrontWheel(vehiclePreparation.getRightFrontWheel());
-                            taskManagementPreparationDetailVO.setLeftRearWheel(vehiclePreparation.getLeftRearWheel());
-                            taskManagementPreparationDetailVO.setRightRearWheel(vehiclePreparation.getRightRearWheel());
-                            taskManagementPreparationDetailVO.setHeadLight(vehiclePreparation.getHeadLight());
-                            taskManagementPreparationDetailVO.setTurnSignal(vehiclePreparation.getTurnSignal());
-                            taskManagementPreparationDetailVO.setBrakeLight(vehiclePreparation.getBrakeLight());
-                            taskManagementPreparationDetailVO.setFogLight(vehiclePreparation.getFogLight());
-                            taskManagementPreparationDetailVO.setBodyEmblem(vehiclePreparation.getBodyEmblem());
-                            taskManagementPreparationDetailVO.setCabinCleaning(vehiclePreparation.getCabinCleaning());
-                            taskManagementPreparationDetailVO.setLostItems(vehiclePreparation.getLostItems());
-                            taskManagementPreparationDetailVO.setRemarks(vehiclePreparation.getRemarks());
-                            taskManagementPreparationDetailVO.setOperationsUserId(vehiclePreparation.getOperationsUserId());
-                            taskManagementPreparationDetailVO.setOperationsTime(vehiclePreparation.getCreateTime());
-                            if (vehiclePreparation.getOperationsUserId() != null){
-                                XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehiclePreparation.getOperationsUserId()).getData();
-                                if (operationsUser != null){
-                                    taskManagementPreparationDetailVO.setOperationsUserName(operationsUser.getNickName());
-                                }
+                        if (chargingRecord.getEndOperationsUserId() != null) {
+                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getEndOperationsUserId()).getData();
+                            if (operationsUser != null) {
+                                taskManagementChargingDetailVO.setEndOperationsUserName(operationsUser.getNickName());
                             }
                         }
-                        managementDetailVO.setPreparationDetailVO(taskManagementPreparationDetailVO);
+                    }
+                    managementDetailVO.setChargingDetailVO(taskManagementChargingDetailVO);
 
-                        break;
-                    case "4":
-                        // 洗车
-                        TaskManagementCleanDetailVO taskManagementCleanDetailVO = new TaskManagementCleanDetailVO();
-                        taskManagementCleanDetailVO.setId(task.getId());
-                        taskManagementCleanDetailVO.setVehicleId(vehicle.getId());
-                        taskManagementCleanDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
-                        taskManagementCleanDetailVO.setPlateNumber(vehicle.getPlateNumber());
-                        taskManagementCleanDetailVO.setVehicleColor(vehicle.getVehicleColor());
-                        taskManagementCleanDetailVO.setVehicleCode(vehicle.getVehicleCode());
-                        taskManagementCleanDetailVO.setVehicleVin(vehicle.getVehicleVin());
-                        taskManagementCleanDetailVO.setVehicleLocation(task.getVehicleLocation());
-                        taskManagementCleanDetailVO.setTaskCode(task.getTaskCode());
-                        XpVehicleClean vehicleClean = vehicleCleanMapper.selectOne(new LambdaQueryWrapper<XpVehicleClean>()
-                                .eq(XpVehicleClean::getTaskId, id).last("limit 1"));
-                        if (vehicleClean != null){
-                            taskManagementCleanDetailVO.setTaskImage(vehicleClean.getTaskImage());
-                            taskManagementCleanDetailVO.setOperationUserId(vehicleClean.getOperationsUserId());
-                            if (vehicleClean.getOperationsUserId() != null){
-                                XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleClean.getOperationsUserId()).getData();
-                                if (operationsUser != null){
-                                    taskManagementCleanDetailVO.setOperationsUserName(operationsUser.getNickName());
-                                }
+                    break;
+                case "3":
+                    // 整备
+                    TaskManagementPreparationDetailVO taskManagementPreparationDetailVO = new TaskManagementPreparationDetailVO();
+                    taskManagementPreparationDetailVO.setId(task.getId());
+                    taskManagementPreparationDetailVO.setVehicleId(vehicle.getId());
+                    taskManagementPreparationDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
+                    taskManagementPreparationDetailVO.setPlateNumber(vehicle.getPlateNumber());
+                    taskManagementPreparationDetailVO.setVehicleColor(vehicle.getVehicleColor());
+                    taskManagementPreparationDetailVO.setVehicleCode(vehicle.getVehicleCode());
+                    taskManagementPreparationDetailVO.setVehicleVin(vehicle.getVehicleVin());
+                    taskManagementPreparationDetailVO.setVehicleLocation(task.getVehicleLocation());
+                    taskManagementPreparationDetailVO.setTaskCode(task.getTaskCode());
+                    XpVehiclePreparation vehiclePreparation = vehiclePreparationMapper.selectOne(new LambdaQueryWrapper<XpVehiclePreparation>()
+                            .eq(XpVehiclePreparation::getTaskId, id).last("limit 1"));
+                    if (vehiclePreparation != null) {
+                        taskManagementPreparationDetailVO.setLeftFrontWheel(vehiclePreparation.getLeftFrontWheel());
+                        taskManagementPreparationDetailVO.setRightFrontWheel(vehiclePreparation.getRightFrontWheel());
+                        taskManagementPreparationDetailVO.setLeftRearWheel(vehiclePreparation.getLeftRearWheel());
+                        taskManagementPreparationDetailVO.setRightRearWheel(vehiclePreparation.getRightRearWheel());
+                        taskManagementPreparationDetailVO.setHeadLight(vehiclePreparation.getHeadLight());
+                        taskManagementPreparationDetailVO.setTurnSignal(vehiclePreparation.getTurnSignal());
+                        taskManagementPreparationDetailVO.setBrakeLight(vehiclePreparation.getBrakeLight());
+                        taskManagementPreparationDetailVO.setFogLight(vehiclePreparation.getFogLight());
+                        taskManagementPreparationDetailVO.setBodyEmblem(vehiclePreparation.getBodyEmblem());
+                        taskManagementPreparationDetailVO.setCabinCleaning(vehiclePreparation.getCabinCleaning());
+                        taskManagementPreparationDetailVO.setLostItems(vehiclePreparation.getLostItems());
+                        taskManagementPreparationDetailVO.setRemarks(vehiclePreparation.getRemarks());
+                        taskManagementPreparationDetailVO.setOperationsUserId(vehiclePreparation.getOperationsUserId());
+                        taskManagementPreparationDetailVO.setOperationsTime(vehiclePreparation.getCreateTime());
+                        if (vehiclePreparation.getOperationsUserId() != null) {
+                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehiclePreparation.getOperationsUserId()).getData();
+                            if (operationsUser != null) {
+                                taskManagementPreparationDetailVO.setOperationsUserName(operationsUser.getNickName());
                             }
                         }
-                        managementDetailVO.setCleanDetailVO(taskManagementCleanDetailVO);
+                    }
+                    managementDetailVO.setPreparationDetailVO(taskManagementPreparationDetailVO);
 
-                        break;
-                    case "5":
-                        // 维修
-                        TaskManagementRepairDetailVO taskManagementRepairDetailVO = new TaskManagementRepairDetailVO();
-                        taskManagementRepairDetailVO.setId(task.getId());
-                        taskManagementRepairDetailVO.setVehicleId(vehicle.getId());
-                        taskManagementRepairDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
-                        taskManagementRepairDetailVO.setPlateNumber(vehicle.getPlateNumber());
-                        taskManagementRepairDetailVO.setVehicleColor(vehicle.getVehicleColor());
-                        taskManagementRepairDetailVO.setVehicleCode(vehicle.getVehicleCode());
-                        taskManagementRepairDetailVO.setVehicleVin(vehicle.getVehicleVin());
-                        taskManagementRepairDetailVO.setVehicleLocation(task.getVehicleLocation());
-                        taskManagementRepairDetailVO.setTaskCode(task.getTaskCode());
-                        XpVehicleRepair vehicleRepair = vehicleRepairMapper.selectOne(new LambdaQueryWrapper<XpVehicleRepair>()
-                                .eq(XpVehicleRepair::getTaskId, id).last("limit 1"));
-                        if (vehicleRepair != null){
-                            taskManagementRepairDetailVO.setStartTime(vehicleRepair.getStartTime());
-                            taskManagementRepairDetailVO.setEndTime(vehicleRepair.getEndTime());
-                            taskManagementRepairDetailVO.setRepairReason(vehicleRepair.getRepairReason());
-                            taskManagementRepairDetailVO.setStartRepairPicture(vehicleRepair.getStartRepairPicture());
-                            taskManagementRepairDetailVO.setRepairMoney(vehicleRepair.getRepairMoney());
-                            taskManagementRepairDetailVO.setRepairMoneyDetail(vehicleRepair.getRepairMoneyDetail());
-                            taskManagementRepairDetailVO.setSendUserId(vehicleRepair.getSendUserId());
-                            taskManagementRepairDetailVO.setSendTime(vehicleRepair.getSendTime());
-                            taskManagementRepairDetailVO.setReturnUserId(vehicleRepair.getReturnUserId());
-                            taskManagementRepairDetailVO.setReturnTime(vehicleRepair.getReturnTime());
-                            if (vehicleRepair.getReturnUserId() != null){
-                                XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getReturnUserId()).getData();
-                                if (operationsUser != null){
-                                    taskManagementRepairDetailVO.setReturnUserName(operationsUser.getNickName());
-                                }
-                            }
-                            if (vehicleRepair.getSendUserId() != null){
-                                XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getSendUserId()).getData();
-                                if (operationsUser != null){
-                                    taskManagementRepairDetailVO.setSendUserName(operationsUser.getNickName());
-                                }
+                    break;
+                case "4":
+                    // 洗车
+                    TaskManagementCleanDetailVO taskManagementCleanDetailVO = new TaskManagementCleanDetailVO();
+                    taskManagementCleanDetailVO.setId(task.getId());
+                    taskManagementCleanDetailVO.setVehicleId(vehicle.getId());
+                    taskManagementCleanDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
+                    taskManagementCleanDetailVO.setPlateNumber(vehicle.getPlateNumber());
+                    taskManagementCleanDetailVO.setVehicleColor(vehicle.getVehicleColor());
+                    taskManagementCleanDetailVO.setVehicleCode(vehicle.getVehicleCode());
+                    taskManagementCleanDetailVO.setVehicleVin(vehicle.getVehicleVin());
+                    taskManagementCleanDetailVO.setVehicleLocation(task.getVehicleLocation());
+                    taskManagementCleanDetailVO.setTaskCode(task.getTaskCode());
+                    XpVehicleClean vehicleClean = vehicleCleanMapper.selectOne(new LambdaQueryWrapper<XpVehicleClean>()
+                            .eq(XpVehicleClean::getTaskId, id).last("limit 1"));
+                    if (vehicleClean != null) {
+                        taskManagementCleanDetailVO.setTaskImage(vehicleClean.getTaskImage());
+                        taskManagementCleanDetailVO.setOperationUserId(vehicleClean.getOperationsUserId());
+                        if (vehicleClean.getOperationsUserId() != null) {
+                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleClean.getOperationsUserId()).getData();
+                            if (operationsUser != null) {
+                                taskManagementCleanDetailVO.setOperationsUserName(operationsUser.getNickName());
                             }
                         }
-                        managementDetailVO.setRepairDetailVO(taskManagementRepairDetailVO);
+                    }
+                    managementDetailVO.setCleanDetailVO(taskManagementCleanDetailVO);
 
-                        break;
-                    default:
-                        // 保养、年检、保险、营运资质
-                        TaskManagementRoutineDetailVO res = new TaskManagementRoutineDetailVO();
-                        res.setId(task.getId());
-                        res.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
-                        res.setPlateNumber(vehicle.getPlateNumber());
-                        res.setVehicleColor(vehicle.getVehicleColor());
-                        res.setVehicleCode(vehicle.getVehicleCode());
-                        res.setVehicleLocation(task.getVehicleLocation());
-                        res.setVehicleVin(vehicle.getVehicleVin());
-                        res.setTaskCode(task.getTaskCode());
-                        XpTaskHandleDetailRoutine xpTaskHandleDetailRoutine = xpTaskHandleDetailRoutineMapper.selectOne(new LambdaQueryWrapper<XpTaskHandleDetailRoutine>()
-                                .eq(XpTaskHandleDetailRoutine::getTaskId, id));
-                        if (xpTaskHandleDetailRoutine!=null){
-                            res.setTaskDescription(xpTaskHandleDetailRoutine.getTaskDescription());
-                            res.setTaskImage(xpTaskHandleDetailRoutine.getTaskImage());
-                            res.setHandleUserId(task.getHandleUserId());
-                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(xpTaskHandleDetailRoutine.getOperationsUserId()).getData();
-                            if (operationsUser != null){
-                                res.setHandleUserId(operationsUser.getId());
-                                res.setHandleUserName(operationsUser.getNickName());
+                    break;
+                case "5":
+                    // 维修
+                    TaskManagementRepairDetailVO taskManagementRepairDetailVO = new TaskManagementRepairDetailVO();
+                    taskManagementRepairDetailVO.setId(task.getId());
+                    taskManagementRepairDetailVO.setVehicleId(vehicle.getId());
+                    taskManagementRepairDetailVO.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
+                    taskManagementRepairDetailVO.setPlateNumber(vehicle.getPlateNumber());
+                    taskManagementRepairDetailVO.setVehicleColor(vehicle.getVehicleColor());
+                    taskManagementRepairDetailVO.setVehicleCode(vehicle.getVehicleCode());
+                    taskManagementRepairDetailVO.setVehicleVin(vehicle.getVehicleVin());
+                    taskManagementRepairDetailVO.setVehicleLocation(task.getVehicleLocation());
+                    taskManagementRepairDetailVO.setTaskCode(task.getTaskCode());
+                    XpVehicleRepair vehicleRepair = vehicleRepairMapper.selectOne(new LambdaQueryWrapper<XpVehicleRepair>()
+                            .eq(XpVehicleRepair::getTaskId, id).last("limit 1"));
+                    if (vehicleRepair != null) {
+                        taskManagementRepairDetailVO.setStartTime(vehicleRepair.getStartTime());
+                        taskManagementRepairDetailVO.setEndTime(vehicleRepair.getEndTime());
+                        taskManagementRepairDetailVO.setRepairReason(vehicleRepair.getRepairReason());
+                        taskManagementRepairDetailVO.setStartRepairPicture(vehicleRepair.getStartRepairPicture());
+                        taskManagementRepairDetailVO.setRepairMoney(vehicleRepair.getRepairMoney());
+                        taskManagementRepairDetailVO.setRepairMoneyDetail(vehicleRepair.getRepairMoneyDetail());
+                        taskManagementRepairDetailVO.setSendUserId(vehicleRepair.getSendUserId());
+                        taskManagementRepairDetailVO.setSendTime(vehicleRepair.getSendTime());
+                        taskManagementRepairDetailVO.setReturnUserId(vehicleRepair.getReturnUserId());
+                        taskManagementRepairDetailVO.setReturnTime(vehicleRepair.getReturnTime());
+                        if (vehicleRepair.getReturnUserId() != null) {
+                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getReturnUserId()).getData();
+                            if (operationsUser != null) {
+                                taskManagementRepairDetailVO.setReturnUserName(operationsUser.getNickName());
                             }
                         }
+                        if (vehicleRepair.getSendUserId() != null) {
+                            XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getSendUserId()).getData();
+                            if (operationsUser != null) {
+                                taskManagementRepairDetailVO.setSendUserName(operationsUser.getNickName());
+                            }
+                        }
+                    }
+                    managementDetailVO.setRepairDetailVO(taskManagementRepairDetailVO);
 
-                        res.setHandleTime(task.getHandleTime());
-                        res.setId(id);
-                        res.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
-                        res.setPlateNumber(vehicle.getPlateNumber());
-                        res.setVehicleColor(vehicle.getVehicleColor());
-                        res.setVehicleCode(vehicle.getVehicleCode());
-                        res.setVehicleLocation(task.getVehicleLocation());
-                        res.setVehicleVin(vehicle.getVehicleVin());
-                        managementDetailVO.setRoutineDetailVO(res);
+                    break;
+                default:
+                    // 保养、年检、保险、营运资质
+                    TaskManagementRoutineDetailVO res = new TaskManagementRoutineDetailVO();
+                    res.setId(task.getId());
+                    res.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
+                    res.setPlateNumber(vehicle.getPlateNumber());
+                    res.setVehicleColor(vehicle.getVehicleColor());
+                    res.setVehicleCode(vehicle.getVehicleCode());
+                    res.setVehicleLocation(task.getVehicleLocation());
+                    res.setVehicleVin(vehicle.getVehicleVin());
+                    res.setTaskCode(task.getTaskCode());
+                    XpTaskHandleDetailRoutine xpTaskHandleDetailRoutine = xpTaskHandleDetailRoutineMapper.selectOne(new LambdaQueryWrapper<XpTaskHandleDetailRoutine>()
+                            .eq(XpTaskHandleDetailRoutine::getTaskId, id));
+                    if (xpTaskHandleDetailRoutine != null) {
+                        res.setTaskDescription(xpTaskHandleDetailRoutine.getTaskDescription());
+                        res.setTaskImage(xpTaskHandleDetailRoutine.getTaskImage());
+                        res.setHandleUserId(task.getHandleUserId());
+                        XpOperationsUser operationsUser = xpOperationUserClient.queryById(xpTaskHandleDetailRoutine.getOperationsUserId()).getData();
+                        if (operationsUser != null) {
+                            res.setHandleUserId(operationsUser.getId().toString());
+                            res.setHandleUserName(operationsUser.getNickName());
+                        }
+                    }
 
-                        break;
-                }
+                    res.setHandleTime(task.getHandleTime());
+                    res.setId(id);
+                    res.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
+                    res.setPlateNumber(vehicle.getPlateNumber());
+                    res.setVehicleColor(vehicle.getVehicleColor());
+                    res.setVehicleCode(vehicle.getVehicleCode());
+                    res.setVehicleLocation(task.getVehicleLocation());
+                    res.setVehicleVin(vehicle.getVehicleVin());
+                    managementDetailVO.setRoutineDetailVO(res);
+
+                    break;
+            }
 
 
-        }else{
+        } else {
             // 事故任务
             TaskManagementAccidentDetailVO res = new TaskManagementAccidentDetailVO();
 
@@ -1072,19 +1164,21 @@
             List<Long> reportUserIds = new ArrayList<>();
             reportUserIds.add(task.getReportUserId());
             List<SysUser> sysUsers = sysUserClient.listByIds(reportUserIds).getData();
-            if (sysUsers!=null && !sysUsers.isEmpty()){
+            if (sysUsers != null && !sysUsers.isEmpty()) {
                 SysUser sysUser = sysUsers.get(0);
                 res.setReportUserId(sysUser.getId());
                 res.setReportUserName(sysUser.getNickName());
                 res.setReportUserPhone(sysUser.getPhoneNumber());
                 res.setReportUserAvatar(sysUser.getAvatar());
             }
-            XpOperationsUser operationsUser = xpOperationUserClient.queryById(task.getHandleUserId()).getData();
-            if (operationsUser != null){
-                res.setHandleUserId(operationsUser.getId());
-                res.setHandleUserName(operationsUser.getNickName());
-                res.setHandleUserPhone(operationsUser.getPhoneNumber());
-                res.setHandleUserAvatar(operationsUser.getAvatar());
+            if (task.getHandleUserId().split(",").length == 1) {
+                XpOperationsUser operationsUser = xpOperationUserClient.queryById(Long.valueOf(task.getHandleUserId())).getData();
+                if (operationsUser != null) {
+                    res.setHandleUserId(operationsUser.getId());
+                    res.setHandleUserName(operationsUser.getNickName());
+                    res.setHandleUserPhone(operationsUser.getPhoneNumber());
+                    res.setHandleUserAvatar(operationsUser.getAvatar());
+                }
             }
             XpTaskHandleDetail xpTaskHandleDetail = xpTaskHandleDetailMapper.selectOne(new LambdaQueryWrapper<XpTaskHandleDetail>()
                     .eq(XpTaskHandleDetail::getTaskId, id));
@@ -1102,7 +1196,6 @@
         }
         return R.ok(managementDetailVO);
     }
-
 
 
 }

--
Gitblit v1.7.1