xuhy
2026-04-20 bb382878794695e7c2b6e4543893dd90fab900c8
[fix] 待改派任务列表
1个文件已添加
7个文件已修改
116 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/maintenance/XpTask.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/mapper/XpTaskMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/TaskPageListQuery.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/XpTaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/vo/TaskReassignDetailVO.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/resources/mapper/maintenance/XpTaskMapper.xml 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>