puzhibing
2026-03-11 c98d3f2fc620b3f5d699e2be34eaabc1033b42b2
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskManagementController.java
@@ -3,6 +3,7 @@
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.xiaopeng.api.feignClient.account.XpOperationUserClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.account.SysUser;
@@ -35,6 +36,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -46,7 +48,9 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -68,20 +72,25 @@
    @Resource
    private IXpErrorTypeService xpErrorTypeService;
    @Resource
    private XpOperationUserClient operationUserClient;
    @Resource
    private XpFleetOperationsClient xpFleetOperationsClient;
    @Resource
    private XpVehicleClient xpVehicleClient;
    @ApiOperation(value = "事故类型列表", response = XpErrorType.class)
    @GetMapping("/errorTypeList")
    public R<List<XpErrorType>> errorTypeList() {
        return xpErrorTypeService.errorTypeList();
    }
    @ApiOperation(value = "任务中心列表", response = TaskManagementPageListVO.class)
    @PostMapping("/pageList")
    public R<PageInfo<TaskManagementPageListVO>> pageListManagement(@RequestBody TaskManagementPageListQuery query) {
        PageInfo<TaskManagementPageListVO> pageList = xpTaskService.pageListManagement(query);
        return R.ok(pageList);
    }
    @ApiOperation(value = "任务工单导出")
    @PostMapping(value = "/exportExcel")
    public void exportExcel(@RequestBody TaskManagementPageListQuery query) {
@@ -95,7 +104,18 @@
            xpTaskExportExcel.setTaskTypeName(task.getTaskTypeName());
            xpTaskExportExcel.setTaskUrgencyLevel(task.getTaskUrgencyLevel());
            xpTaskExportExcel.setTaskDescription(task.getTaskDescription());
            xpTaskExportExcel.setHandleUserName(task.getHandleUserName());
            if (StringUtils.hasLength(task.getHandleUserId())) {
                String[] split = task.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(";");
                    }
                    xpTaskExportExcel.setHandleUserName(handleUserName.toString());
                }
            }
            xpTaskExportExcel.setNumber(num);
            xpTaskExportExcel.setStatus(task.getStatus());
            LocalDateTime createTime = task.getCreateTime();
@@ -126,23 +146,27 @@
        }
    }
    /**
     * 管理后台-车辆管理-运营车辆管理-删除任务/事故
     *
     * @param id
     * @return
     */
    @ApiOperation(value = "删除任务/事故")
    @DeleteMapping("/deleteTaskById")
    public R<?> deleteTaskById(@ApiParam(name = "id", value = "任务ID")Long id){
    public R<?> deleteTaskById(@ApiParam(name = "id", value = "任务ID") Long id) {
        xpTaskService.deleteTaskById(id);
        return R.ok();
    }
    @ApiOperation(value = "任务分配")
    @GetMapping("/assigneeTask")
    public R assigneeTask(@ApiParam(name = "id", value = "任务ID") Long id, @ApiParam(name = "handlerUserId", value = "处理人id")Long handlerUserId) {
    public R assigneeTask(@ApiParam(name = "id", value = "任务ID") Long id, @ApiParam(name = "handlerUserId", value = "处理人id") Long handlerUserId) {
        Long assigneeUserId = tokenService.getLoginUser().getSysUser().getId();
        return xpTaskService.assigneeTask(id, handlerUserId,assigneeUserId);
        return xpTaskService.assigneeTask(id, handlerUserId, assigneeUserId);
    }
    @ApiOperation(value = "创建任务事故")
    @PostMapping("/saveTask")
    public R saveTask(@RequestBody SaveErrorTaskDto dto) {
@@ -150,16 +174,30 @@
        xpTaskService.saveTask(dto, reportUserId);
        return R.ok();
    }
    /**
     * 内部调用-添加车辆异常任务
     * @param vehicleId
     * @return
     */
    @PostMapping("/saveVehicleAccidentError")
    public R saveVehicleAccidentError(@RequestParam Long vehicleId) {
        xpTaskService.saveVehicleAccidentError(vehicleId);
        return R.ok();
    }
    @ApiOperation(value = "任务详情")
    @GetMapping("/taskDetail")
    public R<TaskManagementDetailVO> taskDetail(Long id) {
        return xpTaskService.taskDetail(id);
    }
    @ApiOperation(value = "查询车辆不分页列表")
    @PostMapping(" /listVehicle")
    @PostMapping("/listVehicle")
    public R<List<XpVehicle>> listVehicle() {
        List<XpVehicle> vehicles = xpVehicleClient.listVehicle().getData();
        if (vehicles == null){
        if (vehicles == null) {
            return R.ok(new ArrayList<>());
        }
        return R.ok(vehicles);
@@ -167,6 +205,7 @@
    /**
     * 通过车辆id查询任务事故分页列表
     *
     * @return
     */
    @ApiOperation(value = "通过车辆id查询任务事故分页列表", tags = {"管理后台-车辆管理-运营车辆管理"})
@@ -177,7 +216,7 @@
    @ApiOperation(value = "事故类型列表", response = XpErrorType.class, tags = "管理后台-车辆管理-运营车辆管理")
    @GetMapping(" /errorTypeTreeList")
    @GetMapping("/errorTypeTreeList")
    public R<List<XpErrorType>> errorTypeTreeList() {
        return xpErrorTypeService.errorTypeList();
    }