liujie
2026-06-09 c96fbe6b0aeb413a17c429133ee6d81d138144b9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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;
 
/**
 * <p>
 * 任务管理
 * </p>
 *
 * @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<Reject> 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;
    }
}