package com.xiaopeng.maintenance.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.feignClient.account.SysUserClient; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.account.SysUser; import com.xiaopeng.api.model.account.XpOperationsUser; import com.xiaopeng.api.model.maintenance.*; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.enums.TaskTypeEnum; import com.xiaopeng.common.core.exception.ServiceException; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.maintenance.constant.I18nKeyConstant; import com.xiaopeng.maintenance.dto.HandleVehicleAccidentDto; import com.xiaopeng.maintenance.dto.SaveErrorTaskDto; import com.xiaopeng.maintenance.dto.SaveRoutineDetailDto; import com.xiaopeng.maintenance.dto.SaveVehicleAccidentDto; import com.xiaopeng.maintenance.mapper.*; import com.xiaopeng.maintenance.model.query.TaskManagementPageListQuery; import com.xiaopeng.maintenance.model.query.TaskPageListQuery; import com.xiaopeng.maintenance.model.query.WorkBenchQuery; import com.xiaopeng.maintenance.model.query.XpTaskRecordPageQuery; import com.xiaopeng.maintenance.model.vo.*; import com.xiaopeng.maintenance.service.XpTaskService; import com.xiaopeng.maintenance.utils.UUIDUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; /** *

* 任务管理 服务实现类 *

* * @author WuGuanFengYue * @since 2026-02-03 */ @Service public class XpTaskServiceImpl extends ServiceImpl implements XpTaskService { /** * 常规任务类型映射 */ private static final Map TASK_TYPE_MAP = new java.util.HashMap<>(); static { TASK_TYPE_MAP.put("1", "车辆检查"); TASK_TYPE_MAP.put("2", "车辆充电"); TASK_TYPE_MAP.put("3", "车辆整备"); TASK_TYPE_MAP.put("4", "整备洗车"); TASK_TYPE_MAP.put("5", "车辆维修"); TASK_TYPE_MAP.put("6", "车辆保养"); TASK_TYPE_MAP.put("7", "车辆保险到期"); TASK_TYPE_MAP.put("8", "车辆年检到期"); TASK_TYPE_MAP.put("9", "车辆运营资质到期"); } @Autowired private XpTaskHandleDetailMapper xpTaskHandleDetailMapper; @Autowired private XpChargingRecordMapper chargingRecordMapper; @Autowired private XpVehicleRepairMapper vehicleRepairMapper; @Autowired private XpVehiclePreparationMapper vehiclePreparationMapper; @Autowired private XpVehicleDetectionMapper vehicleDetectionMapper; @Autowired private XpErrorTypeMapper errorTypeMapper; @Autowired private XpVehicleCleanMapper vehicleCleanMapper; @Autowired private XpOperationUserClient xpOperationUserClient; @Autowired private SysUserClient sysUserClient; @Autowired private XpTaskHandleDetailRoutineMapper xpTaskHandleDetailRoutineMapper; @Autowired private XpVehicleClient xpVehicleClient; @Autowired private XpTaskRuleMapper xpTaskRuleMapper; @Override public PageInfo workbench(WorkBenchQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.workbench(pageInfo, query); pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo pageList(TaskPageListQuery query) { if (query.getDistributeType() != null) { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); switch (query.getDistributeType()) { case 1: // 今天 query.setStartTime(now.with(LocalTime.MIN).format(formatter)); query.setEndTime(now.with(LocalTime.MAX).format(formatter)); break; case 2: // 昨天 LocalDateTime yesterdayStart = now.minusDays(1).with(LocalTime.MIN); LocalDateTime yesterdayEnd = now.minusDays(1).with(LocalTime.MAX); query.setStartTime(yesterdayStart.format(formatter)); query.setEndTime(yesterdayEnd.format(formatter)); break; case 3: // 近一周 LocalDateTime weekAgoStart = now.minusDays(7).with(LocalTime.MIN); query.setStartTime(weekAgoStart.format(formatter)); query.setEndTime(now.with(LocalTime.MAX).format(formatter)); break; case 4: // 近一月 LocalDateTime monthAgoStart = now.minusDays(30).with(LocalTime.MIN); query.setStartTime(monthAgoStart.format(formatter)); query.setEndTime(now.with(LocalTime.MAX).format(formatter)); break; default: // 默认不设置时间范围 break; } } PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.pageList(pageInfo, query); XpTaskRule xpTaskRule = xpTaskRuleMapper.selectOne(new LambdaQueryWrapper().last("limit 1")); if (Objects.nonNull(xpTaskRule)) { list.stream().filter(item -> item.getTaskCategory().equals(2)).forEach(item->{ item.setCanArriveRange(xpTaskRule.getCanArriveRange()); }); } pageInfo.setRecords(list); return pageInfo; } @Override public void saveVehicleAccident(SaveVehicleAccidentDto dto, XpOperationsUser xpOperationsUser) { XpTask xpTask = new XpTask(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); xpTask.setTaskCode(code); xpTask.setTaskCategory(2); xpTask.setTaskTypeId(dto.getTaskTypeId()); xpTask.setTaskUrgencyLevel(dto.getTaskUrgencyLevel()); xpTask.setTaskDescription(dto.getTaskDescription()); // todo 获取车辆当前位置 // xpTask.setVehicleLocation(); // xpTask.setVehicleId(); // xpTask.setVehicleLon(); // xpTask.setVehicleLat(); xpTask.setReportUserId(xpOperationsUser.getId()); xpTask.setReportTime(LocalDateTime.now()); xpTask.setStatus(0); xpTask.setCreateBy(xpOperationsUser.getNickName()); this.save(xpTask); } @Override public R vehicleAccidentDetail(Long id) { TaskAccidentDetailVO res = new TaskAccidentDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } res.setId(id); res.setVehicleId(vehicle.getId()); res.setTaskUrgencyLevel(task.getTaskUrgencyLevel()); res.setEndTime(task.getEndTime()); res.setPlateNumber(vehicle.getPlateNumber()); res.setVehicleColor(vehicle.getVehicleColor()); res.setVehicleCode(vehicle.getVehicleCode()); res.setVehicleLocation(task.getVehicleLocation()); res.setCreateBy(task.getCreateBy()); res.setCreateTime(task.getCreateTime()); res.setTaskCode(task.getTaskCode()); res.setTaskCategory(task.getTaskCategory()); res.setTaskTypeId(task.getTaskTypeId()); res.setVehicleLon(task.getVehicleLon()); res.setVehicleLat(task.getVehicleLat()); Map> errorType = errorTypeMapper.selectList(new LambdaQueryWrapper() .in(XpErrorType::getId, Arrays.asList(task.getTaskTypeId().split(",")))) .stream().collect(Collectors.groupingBy(XpErrorType::getParentId)); List xpErrorTypes = errorType.get(0L); for (XpErrorType xpErrorType : xpErrorTypes) { xpErrorType.setChild(errorType.get(xpErrorType.getId())); } res.setErrorTypeList(xpErrorTypes); res.setStatus(task.getStatus()); res.setTaskDescription(task.getTaskDescription()); res.setTaskImage(task.getTaskImage()); XpTaskRule xpTaskRule = xpTaskRuleMapper.selectOne(new LambdaQueryWrapper().last("limit 1")); if (Objects.nonNull(xpTaskRule)) { res.setCanArriveRange(xpTaskRule.getCanArriveRange()); } return R.ok(res); } @Override public R handleVehicleAccident(HandleVehicleAccidentDto dto, XpOperationsUser xpOperationsUser) { XpTask task = this.getById(dto.getId()); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } task.setHandleTime(LocalDateTime.now()); task.setHandleUserId(xpOperationsUser.getId()); task.setStatus(2); // 存储事故处理日志 XpTaskHandleDetail xpTaskHandleDetail = new XpTaskHandleDetail(); xpTaskHandleDetail.setTaskId(task.getId()); xpTaskHandleDetail.setDeathCount(dto.getDeathCount()); xpTaskHandleDetail.setSevereCount(dto.getSevereCount()); xpTaskHandleDetail.setMinorCount(dto.getMinorCount()); xpTaskHandleDetail.setResponsibilityJudgment(dto.getResponsibilityJudgment()); xpTaskHandleDetail.setResponsibleDescription(dto.getResponsibleDescription()); xpTaskHandleDetail.setResponsibleImage(dto.getResponsibleImage()); xpTaskHandleDetail.setDisposalDescription(dto.getDisposalDescription()); xpTaskHandleDetail.setDisposalImage(dto.getDisposalImage()); xpTaskHandleDetail.setSituationDescription(dto.getSituationDescription()); xpTaskHandleDetail.setSituationImage(dto.getSituationImage()); xpTaskHandleDetailMapper.insert(xpTaskHandleDetail); return R.ok(); } @Override public R vehicleRoutineDetail(Long id) { TaskRoutineDetailVO res = new TaskRoutineDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } res.setId(id); res.setTaskUrgencyLevel(task.getTaskUrgencyLevel()); res.setEndTime(task.getEndTime()); res.setVehicleId(task.getVehicleId()); res.setVehicleLat(task.getVehicleLat()); res.setVehicleLon(task.getVehicleLon()); res.setPlateNumber(vehicle.getPlateNumber()); res.setVehicleColor(vehicle.getVehicleColor()); res.setVehicleCode(vehicle.getVehicleCode()); res.setVehicleLocation(task.getVehicleLocation()); res.setCreateBy(task.getCreateBy()); res.setCreateTime(task.getCreateTime()); res.setTaskCode(task.getTaskCode()); res.setTaskCategory(task.getTaskCategory()); res.setTaskTypeId(task.getTaskTypeId()); res.setStatus(task.getStatus()); res.setTaskDescription(task.getTaskDescription()); 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(data)) { res.setHandleUserName(data.getNickName()); } } return R.ok(res); } @Override public R chargingDetail(Long id) { TaskChargingDetailVO res = new TaskChargingDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } res.setVehicleId(task.getVehicleId()); res.setId(id); res.setTaskUrgencyLevel(task.getTaskUrgencyLevel()); res.setPlateNumber(vehicle.getPlateNumber()); res.setVehicleColor(vehicle.getVehicleColor()); res.setVehicleCode(vehicle.getVehicleCode()); res.setVehicleLocation(task.getVehicleLocation()); res.setCreateBy(task.getCreateBy()); res.setCreateTime(task.getCreateTime()); res.setTaskCode(task.getTaskCode()); res.setTaskCategory(task.getTaskCategory()); res.setTaskTypeId(task.getTaskTypeId()); res.setStatus(task.getStatus()); XpChargingRecord chargingRecord = chargingRecordMapper.selectOne(new LambdaQueryWrapper() .eq(XpChargingRecord::getTaskId, id).last("limit 1")); if (chargingRecord != null){ res.setStartRemainingBattery(chargingRecord.getStartRemainingBattery()); res.setStartChargingPicture(chargingRecord.getStartChargingPicture()); res.setStartTime(chargingRecord.getStartTime()); res.setEndRemainingBattery(chargingRecord.getEndRemainingBattery()); res.setEndChargingPicture(chargingRecord.getEndChargingPicture()); res.setEndTime(chargingRecord.getEndTime()); res.setStartOperationsUserId(chargingRecord.getStartOperationsUserId()); res.setEndOperationsUserId(chargingRecord.getEndOperationsUserId()); if (chargingRecord.getStartOperationsUserId() != null){ XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getStartOperationsUserId()).getData(); if (operationsUser != null){ res.setStartOperationsUserName(operationsUser.getNickName()); } } if (chargingRecord.getEndOperationsUserId() != null){ XpOperationsUser operationsUser = xpOperationUserClient.queryById(chargingRecord.getEndOperationsUserId()).getData(); if (operationsUser != null){ res.setEndOperationsUserName(operationsUser.getNickName()); } } } return R.ok(res); } @Override public R repairDetail(Long id) { com.xiaopeng.maintenance.vo.TaskRepairDetailVO res = new com.xiaopeng.maintenance.vo.TaskRepairDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } res.setVehicleId(task.getVehicleId()); res.setId(id); res.setTaskUrgencyLevel(task.getTaskUrgencyLevel()); res.setPlateNumber(vehicle.getPlateNumber()); res.setVehicleColor(vehicle.getVehicleColor()); res.setVehicleCode(vehicle.getVehicleCode()); res.setVehicleLocation(task.getVehicleLocation()); res.setCreateBy(task.getCreateBy()); res.setCreateTime(task.getCreateTime()); res.setTaskCode(task.getTaskCode()); res.setTaskCategory(task.getTaskCategory()); res.setTaskTypeId(task.getTaskTypeId()); res.setStatus(task.getStatus()); XpVehicleRepair vehicleRepair = vehicleRepairMapper.selectOne(new LambdaQueryWrapper() .eq(XpVehicleRepair::getTaskId, id).last("limit 1")); if (vehicleRepair != null){ res.setStartTime(vehicleRepair.getStartTime()); res.setEndTime(vehicleRepair.getEndTime()); res.setRepairReason(vehicleRepair.getRepairReason()); res.setStartRepairPicture(vehicleRepair.getStartRepairPicture()); res.setRepairMoney(vehicleRepair.getRepairMoney()); res.setRepairMoneyDetail(vehicleRepair.getRepairMoneyDetail()); res.setSendUserId(vehicleRepair.getSendUserId()); res.setSendTime(vehicleRepair.getSendTime()); res.setReturnUserId(vehicleRepair.getReturnUserId()); res.setReturnTime(vehicleRepair.getReturnTime()); if (vehicleRepair.getReturnUserId() != null){ XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getReturnUserId()).getData(); if (operationsUser != null){ res.setReturnUserName(operationsUser.getNickName()); } } if (vehicleRepair.getSendUserId() != null){ XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleRepair.getSendUserId()).getData(); if (operationsUser != null){ res.setSendUserName(operationsUser.getNickName()); } } } return R.ok(res); } @Override public R preparationDetail(Long id) { com.xiaopeng.maintenance.vo.TaskPreparationDetailVO res = new com.xiaopeng.maintenance.vo.TaskPreparationDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } res.setVehicleId(task.getVehicleId()); res.setId(id); res.setTaskUrgencyLevel(task.getTaskUrgencyLevel()); res.setPlateNumber(vehicle.getPlateNumber()); res.setVehicleColor(vehicle.getVehicleColor()); res.setVehicleCode(vehicle.getVehicleCode()); res.setVehicleLocation(task.getVehicleLocation()); res.setCreateBy(task.getCreateBy()); res.setCreateTime(task.getCreateTime()); res.setTaskCode(task.getTaskCode()); res.setTaskCategory(task.getTaskCategory()); res.setTaskTypeId(task.getTaskTypeId()); res.setStatus(task.getStatus()); XpVehiclePreparation vehiclePreparation = vehiclePreparationMapper.selectOne(new LambdaQueryWrapper() .eq(XpVehiclePreparation::getTaskId, id).last("limit 1")); if (vehiclePreparation != null){ res.setLeftFrontWheel(vehiclePreparation.getLeftFrontWheel()); res.setRightFrontWheel(vehiclePreparation.getRightFrontWheel()); res.setLeftRearWheel(vehiclePreparation.getLeftRearWheel()); res.setRightRearWheel(vehiclePreparation.getRightRearWheel()); res.setHeadLight(vehiclePreparation.getHeadLight()); res.setTurnSignal(vehiclePreparation.getTurnSignal()); res.setBrakeLight(vehiclePreparation.getBrakeLight()); res.setFogLight(vehiclePreparation.getFogLight()); res.setBodyEmblem(vehiclePreparation.getBodyEmblem()); res.setCabinCleaning(vehiclePreparation.getCabinCleaning()); res.setLostItems(vehiclePreparation.getLostItems()); res.setRemarks(vehiclePreparation.getRemarks()); res.setOperationsUserId(vehiclePreparation.getOperationsUserId()); res.setOperationsTime(vehiclePreparation.getCreateTime()); if (vehiclePreparation.getOperationsUserId() != null){ XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehiclePreparation.getOperationsUserId()).getData(); if (operationsUser != null){ res.setOperationsUserName(operationsUser.getNickName()); } } } return R.ok(res); } @Override public R detectionDetail(Long id) { com.xiaopeng.maintenance.vo.TaskDetectionDetailVO res = new com.xiaopeng.maintenance.vo.TaskDetectionDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } res.setVehicleId(task.getVehicleId()); res.setId(id); res.setTaskUrgencyLevel(task.getTaskUrgencyLevel()); res.setPlateNumber(vehicle.getPlateNumber()); res.setVehicleColor(vehicle.getVehicleColor()); res.setVehicleCode(vehicle.getVehicleCode()); res.setVehicleLocation(task.getVehicleLocation()); res.setCreateBy(task.getCreateBy()); res.setCreateTime(task.getCreateTime()); res.setTaskCode(task.getTaskCode()); res.setTaskCategory(task.getTaskCategory()); res.setTaskTypeId(task.getTaskTypeId()); res.setStatus(task.getStatus()); XpVehicleDetection vehicleDetection = vehicleDetectionMapper.selectOne(new LambdaQueryWrapper() .eq(XpVehicleDetection::getTaskId, id).last("limit 1")); if (vehicleDetection != null){ res.setNetworkDetection(vehicleDetection.getNetworkDetection()); res.setVersionVerification(vehicleDetection.getVersionVerification()); res.setCommunicationSelfCheck(vehicleDetection.getCommunicationSelfCheck()); res.setRemoteSelfCheck(vehicleDetection.getRemoteSelfCheck()); res.setCollisionPrevention(vehicleDetection.getCollisionPrevention()); res.setSensorSelfCheck(vehicleDetection.getSensorSelfCheck()); res.setSensorCleaning(vehicleDetection.getSensorCleaning()); res.setSensorCleaningPicture(vehicleDetection.getSensorCleaningPicture()); res.setInteractiveScreen(vehicleDetection.getInteractiveScreen()); res.setInteractiveScreenPicture(vehicleDetection.getInteractiveScreenPicture()); res.setHelpButton(vehicleDetection.getHelpButton()); res.setHelpButtonPicture(vehicleDetection.getHelpButtonPicture()); res.setPaymentFunction(vehicleDetection.getPaymentFunction()); res.setPaymentFunctionPicture(vehicleDetection.getPaymentFunctionPicture()); res.setSystemCheck(vehicleDetection.getSystemCheck()); res.setSystemCheckPicture(vehicleDetection.getSystemCheckPicture()); res.setCheckTime(vehicleDetection.getCheckTime()); res.setOperationsUserId(vehicleDetection.getOperationsUserId()); if (vehicleDetection.getOperationsUserId() != null){ XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleDetection.getOperationsUserId()).getData(); if (operationsUser != null){ res.setOperationsUserName(operationsUser.getNickName()); } } } return R.ok(res); } @Override public R saveRoutineDetail(SaveRoutineDetailDto dto, Long id) { XpTask task = this.getById(dto.getId()); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpTaskHandleDetailRoutine xpTaskHandleDetailRoutine = new XpTaskHandleDetailRoutine(); xpTaskHandleDetailRoutine.setTaskId(task.getId()); String taskTypeId = task.getTaskTypeId(); switch (taskTypeId){ case "6": xpTaskHandleDetailRoutine.setTaskType(1); break; case "7": xpTaskHandleDetailRoutine.setTaskType(2); break; case "8": xpTaskHandleDetailRoutine.setTaskType(3); break; case "9": xpTaskHandleDetailRoutine.setTaskType(4); break; } xpTaskHandleDetailRoutine.setTaskDescription(dto.getTaskDescription()); xpTaskHandleDetailRoutine.setTaskImage(dto.getTaskImage()); xpTaskHandleDetailRoutine.setOperationsUserId(id); xpTaskHandleDetailRoutineMapper.insert(xpTaskHandleDetailRoutine); task.setStatus(2); this.updateById(task); return null; } @Override public R cleanDetail(Long id) { com.xiaopeng.maintenance.vo.TaskCleanDetailVO res = new com.xiaopeng.maintenance.vo.TaskCleanDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } res.setVehicleId(task.getVehicleId()); res.setId(id); res.setTaskUrgencyLevel(task.getTaskUrgencyLevel()); res.setPlateNumber(vehicle.getPlateNumber()); res.setVehicleColor(vehicle.getVehicleColor()); res.setVehicleCode(vehicle.getVehicleCode()); res.setVehicleLocation(task.getVehicleLocation()); res.setCreateBy(task.getCreateBy()); res.setCreateTime(task.getCreateTime()); res.setTaskCode(task.getTaskCode()); res.setTaskCategory(task.getTaskCategory()); res.setTaskTypeId(task.getTaskTypeId()); res.setStatus(task.getStatus()); XpVehicleClean vehicleDetection = vehicleCleanMapper.selectOne(new LambdaQueryWrapper() .eq(XpVehicleClean::getTaskId, id).last("limit 1")); if (vehicleDetection != null){ res.setTaskImage(vehicleDetection.getTaskImage()); res.setOperationUserId(vehicleDetection.getOperationsUserId()); if (vehicleDetection.getOperationsUserId() != null){ XpOperationsUser operationsUser = xpOperationUserClient.queryById(vehicleDetection.getOperationsUserId()).getData(); if (operationsUser != null){ res.setOperationsUserName(operationsUser.getNickName()); } } } return R.ok(res); } @Override public R confirmArrive(Long id) { XpTask task = this.getById(id); if (task!=null){ task.setStatus(1); this.updateById(task); } return R.ok(); } @Override public PageInfo queryTaskByVehicleId(XpTaskRecordPageQuery query) { // 1. 构建查询条件 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(XpTask::getVehicleId, query.getVehicleId()); if (query.getTaskCategory() != null) { wrapper.eq(XpTask::getTaskCategory, query.getTaskCategory()); } if (StringUtils.isNotBlank(query.getTaskTypeId())) { wrapper.eq(XpTask::getTaskTypeId, query.getTaskTypeId()); } if (query.getStartTime() != null) { wrapper.ge(XpTask::getCreateTime, query.getStartTime().atStartOfDay()); } if (query.getEndTime() != null) { wrapper.le(XpTask::getCreateTime, query.getEndTime().atTime(23, 59, 59)); } wrapper.orderByDesc(XpTask::getCreateTime); // 2. 执行分页查询 Page page = new Page<>(query.getPageNum(), query.getPageSize()); Page resultPage = this.page(page, wrapper); // 3. 转换为 VO 并填充 typeName List records = new ArrayList<>(); if (!CollectionUtils.isEmpty(resultPage.getRecords())) { // 3.1 收集所有事故任务的 errorType ID Set errorTypeIds = new HashSet<>(); for (XpTask task : resultPage.getRecords()) { if (task.getTaskCategory() != null && task.getTaskCategory() == 2 && StringUtils.isNotBlank(task.getTaskTypeId())) { String[] ids = task.getTaskTypeId().split(","); for (String id : ids) { try { errorTypeIds.add(Long.parseLong(id.trim())); } catch (NumberFormatException e) { // 忽略格式错误的ID } } } } // 3.2 批量查询 errorType Map errorTypeMap = new HashMap<>(); if (!errorTypeIds.isEmpty()) { List errorTypes = errorTypeMapper.selectBatchIds(errorTypeIds); for (XpErrorType errorType : errorTypes) { errorTypeMap.put(errorType.getId(), errorType.getErrorName()); } } // 3.3 填充 typeName for (XpTask task : resultPage.getRecords()) { XpTaskRecordVO vo = new XpTaskRecordVO(); BeanUtils.copyProperties(task, vo); // 填充 typeName if (task.getTaskCategory() != null && task.getTaskCategory() == 1) { // 常规任务: 使用枚举映射 vo.setTypeName(TaskTypeEnum.getEnumDescByCode(Integer.valueOf(task.getTaskTypeId()))); } else if (task.getTaskCategory() != null && task.getTaskCategory() == 2) { // 事故任务: 拼接父子级名称 if (StringUtils.isNotBlank(task.getTaskTypeId())) { String[] ids = task.getTaskTypeId().split(","); if (ids.length >= 2) { try { String parentName = errorTypeMap.get(Long.parseLong(ids[0].trim())); String childName = errorTypeMap.get(Long.parseLong(ids[1].trim())); if (parentName != null && childName != null) { vo.setTypeName(parentName + "->" + childName); } } catch (NumberFormatException e) { // 忽略格式错误的ID } } } } records.add(vo); } } // 4. 构建分页结果 PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); pageInfo.setRecords(records); pageInfo.setTotal(resultPage.getTotal()); return pageInfo; } @Override public void deleteTaskById(Long id) { removeById(id); } @Override public void updateTaskStatus(Long taskId, Integer status) { if (Objects.nonNull(taskId)) { XpTask task = this.getById(taskId); if (Objects.nonNull(task)) { task.setStatus(status); this.updateById(task); } } } @Override public PageInfo pageListManagement(TaskManagementPageListQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List list = this.baseMapper.pageListManagement(pageInfo, query); pageInfo.setRecords(list); return pageInfo; } @Override public R assigneeTask(Long id, Long handlerUserId,Long assigneeUserId) { XpTask task = this.getById(id); task.setAssigneeTime(LocalDateTime.now()); task.setHandleUserId(handlerUserId); task.setAssigneeUserId(assigneeUserId); this.updateById(task); return R.ok(); } @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())); } } @Override public R taskDetail(Long id) { TaskManagementDetailVO managementDetailVO = new TaskManagementDetailVO(); XpTask task = this.getById(id); if (task == null){ throw new ServiceException( "任务不存在", I18nKeyConstant.TASK_NOT_EXIST ); } XpVehicle vehicle = xpVehicleClient.queryById(task.getVehicleId()).getData(); if (vehicle == null){ throw new ServiceException( "车辆不存在", I18nKeyConstant.VEHICLE_NOT_EXIST ); } 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() .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() .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() .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() .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() .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: // 保养、年检、保险、营运资质 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() .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()); } } 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{ // 事故任务 TaskManagementAccidentDetailVO res = new TaskManagementAccidentDetailVO(); Map> errorType = errorTypeMapper.selectList(new LambdaQueryWrapper() .in(XpErrorType::getId, Arrays.asList(task.getTaskTypeId().split(",")))) .stream().collect(Collectors.groupingBy(XpErrorType::getParentId)); List xpErrorTypes = errorType.get(0L); for (XpErrorType xpErrorType : xpErrorTypes) { xpErrorType.setChild(errorType.get(xpErrorType.getId())); } res.setErrorTypeList(xpErrorTypes); res.setStatus(task.getStatus()); res.setTaskDescription(task.getTaskDescription()); res.setTaskImage(task.getTaskImage()); res.setId(id); res.setVehicleId(vehicle.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()); List reportUserIds = new ArrayList<>(); reportUserIds.add(task.getReportUserId()); List 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()); } 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()); } XpTaskHandleDetail xpTaskHandleDetail = xpTaskHandleDetailMapper.selectOne(new LambdaQueryWrapper() .eq(XpTaskHandleDetail::getTaskId, id)); res.setDeathCount(xpTaskHandleDetail.getDeathCount()); res.setSevereCount(xpTaskHandleDetail.getSevereCount()); res.setMinorCount(xpTaskHandleDetail.getMinorCount()); res.setResponsibilityJudgment(xpTaskHandleDetail.getResponsibilityJudgment()); res.setResponsibleDescription(xpTaskHandleDetail.getResponsibleDescription()); res.setResponsibleImage(xpTaskHandleDetail.getResponsibleImage()); res.setDisposalDescription(xpTaskHandleDetail.getDisposalDescription()); res.setDisposalImage(xpTaskHandleDetail.getDisposalImage()); res.setSituationDescription(xpTaskHandleDetail.getSituationDescription()); res.setSituationImage(xpTaskHandleDetail.getSituationImage()); managementDetailVO.setAccidentDetailVO(res); } return R.ok(managementDetailVO); } }