package com.xiaopeng.maintenance.controller; import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient; import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; import com.xiaopeng.api.model.account.XpOperationsUser; import com.xiaopeng.api.model.maintenance.XpErrorType; import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; import com.xiaopeng.api.vo.account.LoginOperationUser; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.service.TokenService; 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.model.query.TaskManagementPageListQuery; import com.xiaopeng.maintenance.model.query.TaskPageListQuery; import com.xiaopeng.maintenance.model.query.XpTaskRecordPageQuery; import com.xiaopeng.maintenance.model.vo.*; import com.xiaopeng.maintenance.service.IXpErrorTypeService; import com.xiaopeng.maintenance.service.XpTaskService; import com.xiaopeng.maintenance.vo.VehicleListVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; /** *

* 运维APP 任务中心 *

* * @author mitao * @since 2026-02-03 */ @RestController @Slf4j @Api(tags = "管理后台-任务工单") @RequestMapping("/api/v1/taskManagement") public class XpTaskManagementController { @Resource private XpTaskService xpTaskService; @Resource private TokenService tokenService; @Resource private IXpErrorTypeService xpErrorTypeService; @Resource private XpFleetOperationsClient xpFleetOperationsClient; @Resource private XpVehicleClient xpVehicleClient; @ApiOperation(value = "事故类型列表", response = XpErrorType.class) @GetMapping("/errorTypeList") public R> errorTypeList() { return xpErrorTypeService.errorTypeList(); } @ApiOperation(value = "任务中心列表", response = TaskPageListVO.class) @PostMapping("/pageList") public R> pageListManagement(@RequestBody TaskManagementPageListQuery query) { PageInfo pageList = xpTaskService.pageListManagement(query); return R.ok(pageList); } /** * 管理后台-车辆管理-运营车辆管理-删除任务/事故 * @param id * @return */ @ApiOperation(value = "删除任务/事故") @DeleteMapping("/deleteTaskById") 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) { Long assigneeUserId = tokenService.getLoginUser().getSysUser().getId(); return xpTaskService.assigneeTask(id, handlerUserId,assigneeUserId); } @ApiOperation(value = "创建任务事故") @PostMapping("/saveTask") public R saveTask(@RequestBody SaveErrorTaskDto dto) { Long reportUserId = tokenService.getLoginUser().getSysUser().getId(); xpTaskService.saveTask(dto, reportUserId); return R.ok(); } @ApiOperation(value = "任务详情") @GetMapping("/taskDetail") public R taskDetail(Long id) { return xpTaskService.taskDetail(id); } @ApiOperation(value = "查询车辆不分页列表") @PostMapping(" /listVehicle") public R> listVehicle() { // xpVehicleClient.listByIds() return R.ok(new ArrayList<>()); } @ApiOperation(value = "上传车辆事故", tags = "运维APP-任务中心") @PostMapping(" /saveVehicleAccident") public R saveVehicleAccident(@RequestBody SaveVehicleAccidentDto dto) { LoginOperationUser loginOperationUser = tokenService.getLoginOperationUser(); XpOperationsUser xpOperationsUser = loginOperationUser.getXpOperationsUser(); xpTaskService.saveVehicleAccident(dto, xpOperationsUser); return R.ok(); } @ApiOperation(value = "车辆其他常规任务详情", tags = "运维APP-任务中心") @GetMapping(" /vehicleRoutineDetail") public R vehicleRoutineDetail(Long id) { return xpTaskService.vehicleRoutineDetail(id); } @ApiOperation(value = "上传车辆其他常规任务详情", tags = "运维APP-任务中心") @PostMapping(" /saveRoutineDetail") public R saveRoutineDetail(@RequestBody SaveRoutineDetailDto dto) { LoginOperationUser loginOperationUser = tokenService.getLoginOperationUser(); Long id = loginOperationUser.getId(); return xpTaskService.saveRoutineDetail(dto, id); } @ApiOperation(value = "车辆常规充电任务详情", tags = "运维APP-任务中心") @GetMapping(" /chargingDetail") public R chargingDetail(Long id) { return xpTaskService.chargingDetail(id); } @ApiOperation(value = "车辆常规维修任务详情", tags = "运维APP-任务中心") @GetMapping(" /repairDetail") public R repairDetail(Long id) { return xpTaskService.repairDetail(id); } @ApiOperation(value = "车辆常规整备任务详情", tags = "运维APP-任务中心") @GetMapping(" /preparationDetail") public R preparationDetail(Long id) { return xpTaskService.preparationDetail(id); } @ApiOperation(value = "车辆常规检测任务详情", tags = "运维APP-任务中心") @GetMapping(" /detectionDetail") public R detectionDetail(Long id) { return xpTaskService.detectionDetail(id); } @ApiOperation(value = "车辆常规洗车任务详情", tags = "运维APP-任务中心") @GetMapping(" /cleanDetail") public R cleanDetail(Long id) { return xpTaskService.cleanDetail(id); } @ApiOperation(value = "处理车辆事故", tags = "运维APP-任务中心") @PostMapping(" /handleVehicleAccident") @Transactional public R handleVehicleAccident(@RequestBody HandleVehicleAccidentDto dto) { LoginOperationUser loginOperationUser = tokenService.getLoginOperationUser(); XpOperationsUser xpOperationsUser = loginOperationUser.getXpOperationsUser(); return xpTaskService.handleVehicleAccident(dto,xpOperationsUser); } /** * 通过车辆id查询任务事故分页列表 * @return */ @ApiOperation(value = "通过车辆id查询任务事故分页列表", tags = {"管理后台-车辆管理-运营车辆管理"}) @PostMapping("/api/v1/vehicle/queryTaskByVehicleId") public R> queryTaskByVehicleId(@Valid @RequestBody XpTaskRecordPageQuery query) { return R.ok(xpTaskService.queryTaskByVehicleId(query)); } @ApiOperation(value = "事故类型列表", response = XpErrorType.class, tags = "管理后台-车辆管理-运营车辆管理") @GetMapping(" /errorTypeTreeList") public R> errorTypeTreeList() { return xpErrorTypeService.errorTypeList(); } }