package com.xiaopeng.api.model.maintenance; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.xiaopeng.common.core.web.domain.BaseModel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import com.fasterxml.jackson.annotation.JsonFormat; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; /** *

* 任务管理 *

* * @author mitao * @since 2026-02-03 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(value = "xp_task", autoResultMap = true) @ApiModel(value = "XpTask对象", description = "任务管理") public class XpTask extends BaseModel { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "自增id") @TableId(value = "id", type = IdType.NONE) private Long id; @ApiModelProperty(value = "事故类型id") private String errorTypeId; @ApiModelProperty(value = "任务编号") private String taskCode; @ApiModelProperty(value = "任务类别1常规 2事故") private Integer taskCategory; //1:车辆检查,2:车辆充电,3:车辆整备,4:整备洗车,5:车辆维修,6:车辆保养,7:车辆保险到期,8:车辆年检到期9:车辆运营资质到期 @ApiModelProperty(value = "任务类型id 任务类别为2时对应数据字典,多个逗号分割,为1的时候 枚举1车辆检查 2车辆充电 3车辆整备 4整备洗车 5车辆维修 6车辆保养 7车辆保险到期 8车辆年检到期 9车辆运营资质到期") private String taskTypeId; @ApiModelProperty(value = "任务紧急程度 0=P0 1=P1 2=P2 3=P3") private Integer taskUrgencyLevel; @ApiModelProperty(value = "任务描述") private String taskDescription; @ApiModelProperty(value = "任务描述图片") private String taskImage; @ApiModelProperty(value = "车辆id") @TableField(updateStrategy = FieldStrategy.NEVER) private Long vehicleId; @ApiModelProperty(value = "车辆位置") private String vehicleLocation; @ApiModelProperty(value = "车辆经度") private BigDecimal vehicleLon; @ApiModelProperty(value = "车辆纬度") private BigDecimal vehicleLat; @ApiModelProperty(value = "处理人id") private String handleUserId; @ApiModelProperty(value = "处理时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime handleTime; @ApiModelProperty(value = "分配人id") private Long assigneeUserId; @ApiModelProperty(value = "分配时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime assigneeTime; @ApiModelProperty(value = "上报人id") private Long reportUserId; @ApiModelProperty(value = "上报时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime reportTime; @ApiModelProperty(value = "任务时限结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime endTime; @ApiModelProperty(value = "是否已发送过期通知 0=未发送 1=已发送") private Integer expiredNoticeSent; @ApiModelProperty(value = "事故即将超时通知是否已发送 0=未发送 1=已发送") private Integer willTimeoutNoticeSent; @ApiModelProperty(value = "状态 0=待到达 1=待处理 2=已完成 3=已取消 4=改派中") private Integer status; @ApiModelProperty(value = "状态 2=已处理 1=改派中") private Integer reassignmentStatus; @ApiModelProperty(value = "任务来源 1-运维APP 2-管理后台 3-远程代驾") private Integer taskSource; @ApiModelProperty(value = "申请改派的用户") @TableField(typeHandler = JacksonTypeHandler.class) private List excluded; public Reject reject(String msg) { Reject reject = new Reject(); reject.setRejectTime(LocalDateTime.now().toString()); reject.setRejectUserId(handleUserId); reject.setRejectReason(msg); return reject; } @Data public static class Reject { @ApiModelProperty(value = "拒绝原因") private String rejectReason; @ApiModelProperty(value = "拒绝时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private String rejectTime; @ApiModelProperty(value = "拒绝人id") private String rejectUserId; @ApiModelProperty(value = "拒绝人姓名") private String rejectUserName; @ApiModelProperty(value = "拒绝人角色名称") private String rejectUserRoleName; } }