liujie
2026-02-25 8c343b74262c86fe0cb4c79ce59f91eb45e00d33
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -744,7 +744,11 @@
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Override
    public List<TaskManagementPageListVO> exportList(TaskManagementPageListQuery query) {
        List<TaskManagementPageListVO> list = this.baseMapper.exportList(query);
        return list;
    }
    @Override
    public R assigneeTask(Long id, Long handlerUserId,Long assigneeUserId) {
        XpTask task = this.getById(id);
@@ -758,18 +762,33 @@
    @Override
    public void saveTask(SaveErrorTaskDto dto, Long reportUserId) {
        XpTask task = new XpTask();
        BeanUtils.copyProperties(dto, task);
        task.setReportTime(LocalDateTime.now());
        task.setStatus(0);
        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()));
        List<XpTask> saveTask = new ArrayList<>();
        for (Long vehicleId : dto.getVehicleIds()) {
            XpTask task = new XpTask();
            BeanUtils.copyProperties(dto, task);
            task.setReportTime(LocalDateTime.now());
            task.setStatus(0);
            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);
            task.setTaskTypeId(dto.getTaskTypeId());
            task.setTaskUrgencyLevel(dto.getTaskUrgencyLevel());
            task.setTaskDescription(dto.getTaskDescription());
            task.setTaskImage(dto.getTaskImage());
            task.setVehicleId(vehicleId);
            task.setVehicleLocation(dto.getVehicleLocation());
            task.setVehicleLon(dto.getVehicleLon());
            task.setVehicleLat(dto.getVehicleLat());
            task.setReportUserId(reportUserId);
            task.setReportTime(LocalDateTime.now());
        }
        this.saveBatch(saveTask);
    }
@@ -807,42 +826,181 @@
                        taskManagementDetectionDetailVO.setVehicleVin(vehicle.getVehicleVin());
                        taskManagementDetectionDetailVO.setVehicleLocation(task.getVehicleLocation());
                        taskManagementDetectionDetailVO.setTaskCode(task.getTaskCode());
//                        taskManagementDetectionDetailVO.setNetworkDetection();
//                        taskManagementDetectionDetailVO.setVersionVerification();
//                        taskManagementDetectionDetailVO.setCommunicationSelfCheck();
//                        taskManagementDetectionDetailVO.setRemoteSelfCheck();
//                        taskManagementDetectionDetailVO.setCollisionPrevention();
//                        taskManagementDetectionDetailVO.setSensorSelfCheck();
//                        taskManagementDetectionDetailVO.setSensorCleaning();
//                        taskManagementDetectionDetailVO.setSensorCleaningPicture();
//                        taskManagementDetectionDetailVO.setInteractiveScreen();
//                        taskManagementDetectionDetailVO.setInteractiveScreenPicture();
//                        taskManagementDetectionDetailVO.setHelpButton();
//                        taskManagementDetectionDetailVO.setHelpButtonPicture();
//                        taskManagementDetectionDetailVO.setPaymentFunction();
//                        taskManagementDetectionDetailVO.setPaymentFunctionPicture();
//                        taskManagementDetectionDetailVO.setSystemCheck();
//                        taskManagementDetectionDetailVO.setSystemCheckPicture();
//                        taskManagementDetectionDetailVO.setOperationsUserId();
//                        taskManagementDetectionDetailVO.setOperationsUserName();
//                        taskManagementDetectionDetailVO.setCheckTime();
                        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.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());
                                }
                            }
                        }
                        managementDetailVO.setPreparationDetailVO(taskManagementPreparationDetailVO);
                        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.setCleanDetailVO(taskManagementCleanDetailVO);
                        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);
                        break;
                    default:
                        // 保养、年检、保险、营运资质
@@ -876,6 +1034,8 @@
                        res.setVehicleCode(vehicle.getVehicleCode());
                        res.setVehicleLocation(task.getVehicleLocation());
                        res.setVehicleVin(vehicle.getVehicleVin());
                        managementDetailVO.setRoutineDetailVO(res);
                        break;
                }
@@ -937,4 +1097,6 @@
        return R.ok(managementDetailVO);
    }
}