xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/maintenance/XpTask.java
@@ -44,6 +44,9 @@ @ApiModelProperty(value = "任务类型id 任务类别为2时对应数据字典,多个逗号分割,为1的时候 枚举1车辆检查 2车辆充电 3车辆整备 4整备洗车 5车辆维修 6车辆保养 7车辆保险到期 8车辆年检到期 9车辆运营资质到期") private String taskTypeId; @ApiModelProperty(value = "任务类型id 任务类别为2时对应数据字典,多个逗号分割,为1的时候 枚举1车辆检查 2车辆充电 3车辆整备 4整备洗车 5车辆维修 6车辆保养 7车辆保险到期 8车辆年检到期 9车辆运营资质到期") private String accidentTypeId; @ApiModelProperty(value = "任务紧急程度 0=P0 1=P1 2=P2 3=P3") private Integer taskUrgencyLevel; @@ -96,6 +99,9 @@ @ApiModelProperty(value = "状态 0=待到达 1=待处理 2=已完成 3=已取消 4=改派中") private Integer status; @ApiModelProperty(value = "状态 2=已处理 1=改派中") private Integer reassignmentStatus; @ApiModelProperty(value = "任务来源 1-运维APP 2-管理后台") private Integer taskSource; xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
@@ -28,10 +28,9 @@ import com.xiaopeng.maintenance.schedule.InsuranceInspectionScheduleTask; import com.xiaopeng.maintenance.service.IXpErrorTypeService; import com.xiaopeng.maintenance.service.XpTaskService; import com.xiaopeng.maintenance.vo.*; import com.xiaopeng.maintenance.vo.TaskCleanDetailVO; import com.xiaopeng.maintenance.vo.TaskDetectionDetailVO; import com.xiaopeng.maintenance.vo.TaskReassignVo; import com.xiaopeng.maintenance.vo.VehicleListVO; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; @@ -51,8 +50,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; import static net.sf.jsqlparser.parser.feature.Feature.comment; /** * <p> @@ -299,7 +296,24 @@ return R.ok(xpTask); } @ApiOperation(value = "待改派的工单分页列表", tags = {"管理后台-运维执行-任务工单-待改派工单"}) @PostMapping("/api/v1/task/reassign/pageList") public R<PageInfo<TaskVO>> reassignTaskPageList(@RequestBody TaskPageListQuery query) { return R.ok(xpTaskService.reassignTaskPageList(query)); } @ApiOperation(value = "可改派的运维人员列表", tags = {"管理后台-运维执行-任务工单-待改派工单"}) @GetMapping("/api/v1/task/reassign/availableUsers") public R<List<XpOperationsUser>> availableReassignUsers(@RequestParam Long taskId) { return R.ok(); } @ApiOperation(value = "改派详情", tags = {"管理后台-运维执行-任务工单-待改派工单"}) @GetMapping("/api/v1/task/reassign/detail") public R<TaskReassignDetailVO> reassignDetail(@RequestParam Long taskId) { //包含任务信息和改派日志 return R.ok(); } @ApiOperation(value = "执行保险年检检测定时任务", tags = {"定时任务"}) @GetMapping("/base/task/insurance/execute") @@ -307,5 +321,4 @@ insuranceInspectionScheduleTask.executeInsuranceInspectionTask(); return R.ok(); } } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/mapper/XpTaskMapper.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xiaopeng.api.model.maintenance.XpTask; import com.xiaopeng.api.vo.TaskVO; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.maintenance.model.query.TaskManagementPageListQuery; import com.xiaopeng.maintenance.model.query.WorkBenchQuery; @@ -38,4 +39,5 @@ */ XpTask queryInfoByVehicleId(@Param("vehicleId")Long vehicleId); PageInfo<TaskVO> reassignTaskPageList(TaskPageListQuery query); } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/TaskPageListQuery.java
@@ -14,24 +14,41 @@ private String startTime; @ApiModelProperty(value = "派发类型为5 结束时间 yyyy-MM-dd HH:mm:ss") private String endTime; @ApiModelProperty(value = "任务优先级 0=P0 1=P1 2=P2 3=P3 不传为全部") private Integer taskUrgencyLevel; @ApiModelProperty(value = "任务类别1常规 2事故") private Integer taskCategory; @ApiModelProperty(value = "排序优先 1依据任务优先级 2车牌号 3任务时间") private Integer sortType; @ApiModelProperty(value = "排序规则 1正序 2倒序") private Integer sortRule; @ApiModelProperty(value = "状态0=待到达 1=待处理 2=已完成 3=已取消") @ApiModelProperty(value = "状态0=待到达 1=待处理 2=已完成 3=已取消 4=改派中") private Integer status; @ApiModelProperty(value = "当前登陆人id") private Long userId; @ApiModelProperty(value = "车牌号") private String plateNumber; @ApiModelProperty(value = "当前位置经度") private Double longitude; @ApiModelProperty(value = "当前位置纬度") private Double latitude; @ApiModelProperty(value = "任务类别1常规 2事故") private Integer taskCategory; @ApiModelProperty(value = "事故类型") private Long accidentTypeId; @ApiModelProperty(value = "任务类型") private Long taskTypeId; @ApiModelProperty(value = "任务优先级 0=P0 1=P1 2=P2 3=P3 不传为全部") private Integer taskUrgencyLevel; @ApiModelProperty(value = "车牌号") private String plateNumber; @ApiModelProperty(value = "改派状态") private String reassignmentStatus; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/XpTaskService.java
@@ -101,4 +101,6 @@ void saveVehicleAccidentError(Long vehicleI); void accept(String taskId); PageInfo<TaskVO> reassignTaskPageList(TaskPageListQuery query); } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -1481,6 +1481,11 @@ sendAccidentNotificationAsync(getById(task.getId()), vehicle.getPlateNumber(), (int) Duration.between(LocalDateTime.now(),task.getEndTime()).toMinutes()); } @Override public PageInfo<TaskVO> reassignTaskPageList(TaskPageListQuery query) { return baseMapper.reassignTaskPageList(query); } @Value("${robotaxi.sms.app-id:1476153389173952512}") private String smsAppId; @Value("${robotaxi.sms.app-push-config-code:ROBOTAXI_VERIFY_CODE_SMS}") xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/TaskReassignDetailVO.java
New file @@ -0,0 +1,4 @@ package com.xiaopeng.maintenance.vo; public class TaskReassignDetailVO { } xp-robotaxi-maintenance-boot/src/main/resources/mapper/maintenance/XpTaskMapper.xml
@@ -183,4 +183,47 @@ ORDER BY handle_time DESC limit 1 </select> <select id="reassignTaskPageList" resultType="com.xiaopeng.api.vo.TaskVO"> SELECT t.id, t.task_code AS taskCode, t.task_category AS taskCategory, t.task_type_id AS taskTypeId, t.accident_type_id AS accidentTypeId, t.task_urgency_level AS taskUrgencyLevel, t.task_description AS taskDescription, t.vehicle_id AS vehicleId, t.handle_user_id AS handleUserId, t.assignee_user_id AS assigneeUserId, t.status, t.reassignment_status AS reassignmentStatus, t.create_time AS createTime, v.plate_number AS plateNumber, et.error_name AS accidentTypeName FROM xp_task t LEFT JOIN xp_vehicle v ON t.vehicle_id = v.id AND v.is_deleted = 0 LEFT JOIN xp_error_type et ON t.accident_type_id = et.id WHERE t.is_deleted = 0 AND t.reassignment_status = 1 <if test="query.taskCategory != null"> AND t.task_category = #{query.taskCategory} </if> <if test="query.accidentTypeId != null"> AND t.accident_type_id = #{query.accidentTypeId} </if> <if test="query.taskTypeId != null"> AND t.task_type_id = #{query.taskTypeId} </if> <if test="query.taskUrgencyLevel != null"> AND t.task_urgency_level = #{query.taskUrgencyLevel} </if> <if test="query.plateNumber != null and query.plateNumber != ''"> AND v.plate_number LIKE CONCAT('%', #{query.plateNumber}, '%') </if> <if test="query.reassignmentStatus != null and query.reassignmentStatus != ''"> AND t.reassignment_status = #{query.reassignmentStatus} </if> ORDER BY t.create_time DESC,t.task_urgency_level ASC </select> </mapper>