From 95e933b330ce29eaa997749fe576188466a59347 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 28 二月 2026 19:58:28 +0800
Subject: [PATCH] 合并代码

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java |  224 +++-----------------------------------------------------
 1 files changed, 12 insertions(+), 212 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 dffabf4..e854aa8 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
@@ -4,7 +4,6 @@
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xiaopeng.api.dto.pushMessage.AliPushMessageDTO;
@@ -89,8 +88,6 @@
     private XpVehicleRepairMapper vehicleRepairMapper;
     @Autowired
     private XpVehiclePreparationMapper vehiclePreparationMapper;
-    @Autowired
-    private XpVehicleDescriptionMapper vehicleDescriptionMapper;
     @Autowired
     private XpVehicleDetectionMapper vehicleDetectionMapper;
 
@@ -939,151 +936,12 @@
     @Override
     public List<TaskManagementPageListVO> exportList(TaskManagementPageListQuery query) {
         List<TaskManagementPageListVO> list = this.baseMapper.exportList(query);
-        for (TaskManagementPageListVO taskManagementPageListVO : list) {
-            if (org.springframework.util.StringUtils.hasLength(taskManagementPageListVO.getHandleUserId())){
-                String[] split = taskManagementPageListVO.getHandleUserId().split(",");
-                List<XpOperationsUser> users = operationUserClient.listByIds(Arrays.stream(split).map(Long::parseLong).collect(Collectors.toList())).getData();
-                if (users!=null){
-                    StringBuilder handleUserName = new StringBuilder();
-                    for (XpOperationsUser user : users) {
-                        handleUserName.append(user.getNickName()).append(";");
-                    }
-                    taskManagementPageListVO.setHandleUserName(handleUserName.toString());
-                }
-            }
-            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));
-            }
-        }
         return list;
     }
 
     @Override
     public XpTask queryInfoByVehicleId(Long vehicleId) {
         return this.baseMapper.queryInfoByVehicleId(vehicleId);
-    }
-
-    @Override
-    public void saveVehicleAccidentError(Long vehicleId) {
-        XpTask xpTask = new XpTask();
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
-        xpTask.setTaskCode(code);
-        xpTask.setTaskCategory(2);
-        // todo 事故类型待客户确定
-        xpTask.setTaskTypeId("1");
-        xpTask.setTaskUrgencyLevel(0);
-        xpTask.setTaskDescription("车辆发生异常");
-        XpVehicle vehicle = xpVehicleClient.queryById(xpTask.getVehicleId()).getData();
-        if (vehicle!=null){
-            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
-            if (vehiclePosition != null) {
-                double x = vehiclePosition.getPoint().getX();
-                double y = vehiclePosition.getPoint().getY();
-                xpTask.setVehicleLon(new BigDecimal(x));
-                xpTask.setVehicleLat(new BigDecimal(y));
-            }
-        }
-
-        xpTask.setVehicleId(vehicleId);
-        // 系统上传异常任务标识
-        xpTask.setReportUserId(0L);
-        xpTask.setReportTime(LocalDateTime.now());
-        xpTask.setStatus(0);
-        xpTask.setCreateBy("admin");
-        XpTaskRule taskRule = xpTaskRuleService.lambdaQuery().last("limit 1").one();
-        XpTaskRuleRole taskRuleRole = xpTaskRuleRoleService.lambdaQuery().eq(XpTaskRuleRole::getRuleType, 9).last("limit 1").one();
-        if (Objects.isNull(taskRuleRole) || Objects.isNull(taskRule)) {
-            throw new ServiceException("未配置车辆事故任务分配规则");
-        }
-        R<List<XpOperationsRole>> xpOperationsRoleResult = xpOperationUserClient.getXpOperationsRoleByRoleId(taskRuleRole.getRoleId());
-        if (CollUtil.isNotEmpty(xpOperationsRoleResult.getData())) {
-            List<Long> userIds = xpOperationsRoleResult.getData().stream().map(XpOperationsRole::getOperationsUserId).collect(Collectors.toList());
-            xpTask.setHandleUserId(StringUtils.join(userIds, ","));
-        }
-        // 根据事故处理限时配置设置任务截止时间
-        LocalDateTime endTime = LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit());
-        xpTask.setEndTime(endTime);
-        this.save(xpTask);
-
-        // 发送消息通知
-        List<Long> userIds = Arrays.stream(xpTask.getHandleUserId().split(",")).map(Long::valueOf).collect(Collectors.toList());
-        if (CollUtil.isNotEmpty(userIds)) {
-            R<List<XpOperationsUser>> xpOperationUserResult = xpOperationUserClient.listByIds(userIds);
-            List<XpOperationsUser> data = xpOperationUserResult.getData();
-            if (CollUtil.isNotEmpty(data)) {
-
-                String plateNumber = Objects.nonNull(vehicle) ? vehicle.getPlateNumber() : "";
-                // 车辆${车牌号}在${车辆位置信息}发生了紧急事故,请在${到达现场限时}内到达现场!${APP链接}
-                String content = String.format("车辆%s在%s发生了紧急事故,请在%d分钟内到达现场!", plateNumber, xpTask.getVehicleLocation(), taskRule.getProcessingTimeLimit());
-                List<XpOperationsUserNotification> notifications = data.stream().map(item -> {
-                    XpOperationsUserNotification notification = new XpOperationsUserNotification();
-                    notification.setOperationsUserId(item.getId());
-                    notification.setNotificationContent(content);
-                    notification.setReadStatus(0);
-                    notification.setCreateTime(LocalDateTime.now());
-                    return notification;
-                }).collect(Collectors.toList());
-                xpOperationUserNotificationClient.addNotificationBatch(notifications);
-                // 发送阿里云推送
-                Map<Integer, List<XpOperationsUser>> operationUserMap = data.stream().collect(Collectors.groupingBy(XpOperationsUser::getDeviceType));
-                for (Map.Entry<Integer, List<XpOperationsUser>> integerListEntry : operationUserMap.entrySet()) {
-                    List<XpOperationsUser> value = integerListEntry.getValue();
-                    pushAliMessage(value, content, xpTask);
-                }
-            }
-        }
     }
 
     @Override
@@ -1099,8 +957,7 @@
 
     @Override
     public void saveTask(SaveErrorTaskDto dto, Long reportUserId) {
-        List<Long> vehicleIds = dto.getVehicleIds();
-        List<XpVehicle> vehicles = xpVehicleClient.listByIds(vehicleIds).getData();
+
         List<XpTask> saveTask = new ArrayList<>();
         for (Long vehicleId : dto.getVehicleIds()) {
             XpTask task = new XpTask();
@@ -1116,18 +973,8 @@
                 task.setEndTime(LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit()));
             }
             task.setTaskCategory(2);
-            XpTaskRuleRole taskRuleRole = xpTaskRuleRoleService.lambdaQuery().eq(XpTaskRuleRole::getRuleType, 9).last("limit 1").one();
-            if (Objects.isNull(taskRuleRole) || Objects.isNull(taskRule)) {
-                throw new ServiceException("未配置车辆事故任务分配规则");
-            }
-            R<List<XpOperationsRole>> xpOperationsRoleResult = xpOperationUserClient.getXpOperationsRoleByRoleId(taskRuleRole.getRoleId());
-            if (CollUtil.isNotEmpty(xpOperationsRoleResult.getData())) {
-                List<Long> userIds = xpOperationsRoleResult.getData().stream().map(XpOperationsRole::getOperationsUserId).collect(Collectors.toList());
-                task.setHandleUserId(StringUtils.join(userIds, ","));
-            }
-            // 根据事故处理限时配置设置任务截止时间
-            LocalDateTime endTime = LocalDateTime.now().plusMinutes(taskRule.getProcessingTimeLimit());
-            task.setEndTime(endTime);
+            // todo 临时处理
+            task.setHandleUserId("1");
             task.setTaskTypeId(dto.getTaskTypeId());
             task.setTaskUrgencyLevel(dto.getTaskUrgencyLevel());
             task.setTaskDescription(dto.getTaskDescription());
@@ -1139,39 +986,8 @@
             task.setReportUserId(reportUserId);
             task.setReportTime(LocalDateTime.now());
             saveTask.add(task);
-            // 发送消息通知
-            List<Long> userIds = Arrays.stream(task.getHandleUserId().split(",")).map(Long::valueOf).collect(Collectors.toList());
-            if (CollUtil.isNotEmpty(userIds)) {
-                XpVehicle vehicle = vehicles.stream().filter(e -> e.getId().equals(vehicleId)).findFirst().orElse(null);
-                R<List<XpOperationsUser>> xpOperationUserResult = xpOperationUserClient.listByIds(userIds);
-                List<XpOperationsUser> data = xpOperationUserResult.getData();
-                if (CollUtil.isNotEmpty(data)) {
-
-                    String plateNumber = Objects.nonNull(vehicle) ? vehicle.getPlateNumber() : "";
-                    // 车辆${车牌号}在${车辆位置信息}发生了紧急事故,请在${到达现场限时}内到达现场!${APP链接}
-                    String content = String.format("车辆%s在%s发生了紧急事故,请在%d分钟内到达现场!", plateNumber, task.getVehicleLocation(), taskRule.getProcessingTimeLimit());
-                    List<XpOperationsUserNotification> notifications = data.stream().map(item -> {
-                        XpOperationsUserNotification notification = new XpOperationsUserNotification();
-                        notification.setOperationsUserId(item.getId());
-                        notification.setNotificationContent(content);
-                        notification.setReadStatus(0);
-                        notification.setCreateTime(LocalDateTime.now());
-                        return notification;
-                    }).collect(Collectors.toList());
-                    xpOperationUserNotificationClient.addNotificationBatch(notifications);
-                    // 发送阿里云推送
-                    Map<Integer, List<XpOperationsUser>> operationUserMap = data.stream().collect(Collectors.groupingBy(XpOperationsUser::getDeviceType));
-                    for (Map.Entry<Integer, List<XpOperationsUser>> integerListEntry : operationUserMap.entrySet()) {
-                        List<XpOperationsUser> value = integerListEntry.getValue();
-                        pushAliMessage(value, content, task);
-                    }
-                }
-            }
-
         }
         this.saveBatch(saveTask);
-
-
 
     }
 
@@ -1297,12 +1113,6 @@
 
                     XpVehiclePreparation vehiclePreparation = vehiclePreparationMapper.selectOne(new LambdaQueryWrapper<XpVehiclePreparation>()
                             .eq(XpVehiclePreparation::getTaskId, id).last("limit 1"));
-                    XpVehicleDescription xpVehicleDescription = vehicleDescriptionMapper.selectOne(
-                            new LambdaQueryWrapper<XpVehicleDescription>().eq(XpVehicleDescription::getDescriptionType, 5)
-                    );
-                    if (xpVehicleDescription != null)      {
-                        taskManagementPreparationDetailVO.setLostItemsDetail(xpVehicleDescription.getDescriptionContent());
-                    }
                     if (vehiclePreparation != null) {
                         taskManagementPreparationDetailVO.setLeftFrontWheel(vehiclePreparation.getLeftFrontWheel());
                         taskManagementPreparationDetailVO.setRightFrontWheel(vehiclePreparation.getRightFrontWheel());
@@ -1464,26 +1274,16 @@
             res.setVehicleCode(vehicle.getVehicleCode());
             res.setVehicleLocation(task.getVehicleLocation());
             res.setVehicleVin(vehicle.getVehicleVin());
-            if (task.getReportUserId().equals(0L)){
-                // 系统补偿上传车辆异常任务 为系统创建
-                res.setReportUserId(0L);
-                res.setReportUserName("系统");
-                // todo 临时设置 待客户确认默认头像和电话号码
-                res.setReportUserPhone("111111");
-                res.setReportUserAvatar("[]");
-            }else{
-                List<Long> reportUserIds = new ArrayList<>();
-                reportUserIds.add(task.getReportUserId());
-                List<SysUser> sysUsers = sysUserClient.listByIds(reportUserIds).getData();
-                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());
-                }
+            List<Long> reportUserIds = new ArrayList<>();
+            reportUserIds.add(task.getReportUserId());
+            List<SysUser> sysUsers = sysUserClient.listByIds(reportUserIds).getData();
+            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());
             }
-
             if (task.getHandleUserId().split(",").length == 1) {
                 XpOperationsUser operationsUser = xpOperationUserClient.queryById(Long.valueOf(task.getHandleUserId())).getData();
                 if (operationsUser != null) {

--
Gitblit v1.7.1