/*
 * Author: wangjian
 * 生成entity
 */
package com.tofly.pojo.maintain.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * 抢维修工单信息表
 *
 * @author admin
 * @date Tue Apr 06 00:00:00 CST 2021
 */
@Data
@ApiModel
public class RepairorderDto extends Model<RepairorderDto> {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一值
     */
    @ApiModelProperty(value = "唯一值")
    private Long id;
    /**
     * 工单编号,以发起部门自定义代码+年月日+4位序号，如管网代码为：GW，生成日期为2021年1月23日，序号0001，整体编号：GW202101230001
     */
    @ApiModelProperty(value = "工单编号,以发起部门自定义代码+年月日+4位序号，如管网代码为：GW，生成日期为2021年1月23日，序号0001，整体编号：GW202101230001")
    private String orderCode;
    /**
     * 故障类型,关联编码表id
     */
    @ApiModelProperty(value = "故障类型,关联编码表id")
    private Long faultType;
    /**
     * 年度计划id，关联表TF_YWPN_REPAIRPLANDETAIL_W关键值
     */
    @ApiModelProperty(value = "年度计划id，关联表TF_YWPN_REPAIRPLANDETAIL_W关键值")
    private Long yearId;
    /**
     * 工单来源，字典编码表，0计划、1自建、2热线
     */
    @ApiModelProperty(value = "工单来源，字典编码表，0计划、1自建、2热线")
    private String orderSource;
    /**
     * 维修类型,关联表TF_YWPN_REPAIRTYPE_D的关键值
     */
    @ApiModelProperty(value = "维修类型,关联表TF_YWPN_REPAIRTYPE_D的关键值")
    private Long typeId;
    /**
     * 月份
     */
    @ApiModelProperty(value = "月份")
    private String month;
    /**
     * 开始时间,工单处理开始时间，以派发时间为准，自动生成
     */
    @ApiModelProperty(value = "开始时间,工单处理开始时间，以派发时间为准，自动生成")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 结束时间,工单处理结束时间
     */
    @ApiModelProperty(value = "结束时间,工单处理结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 地址描述
     */
    @ApiModelProperty(value = "地址描述")
    private String address;
    /**
     * 经度，单位：°
     */
    @ApiModelProperty(value = "经度，单位：°")
    private Double lgtd;
    /**
     * 纬度，单位：°
     */
    @ApiModelProperty(value = "纬度，单位：°")
    private Double lttd;

    /**
     * 维修数量
     */
    @ApiModelProperty(value = "维修数量")
    private Long num;
    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String unit;
    /**
     * 详细说明
     */
    @ApiModelProperty(value = "详细说明")
    private String notes;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private Long createUser;
    @ApiModelProperty(hidden = true)
    private String createUserName;
    /**
     * 是否驳回，0未驳回，1驳回
     */
    @ApiModelProperty(value = "是否驳回，0未驳回，1驳回")
    private String isrebut;
    /**
     * 是否转发，0未转发，1已转发
     */
    @ApiModelProperty(value = "是否转发，0未转发，1已转发")
    private String isrelay;
    /**
     * 工单状态0:未派工,1:处理中, 2:驳回 , 3:审核中 ,4处理完成，5转移申请，6、已转移 7:完成
     */
    @ApiModelProperty(value = "工单状态0:未派工,1:未审核, 2:未开始 , 3:正在执行 ,4处理完成，5已开始未执行，6、驳回 7:转移申请 8已转移")
    private String state;
    /**
     * 总完成率
     */
    @ApiModelProperty(value = "总完成率")
    private Float percent;
    /**
     * 总完成数量
     */
    @ApiModelProperty(value = "总完成数量")
    private Long overNum;
    /**
     * 最后一次修改时间
     */
    @ApiModelProperty(value = "最后一次修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastTime;
    /**
     * 最后一次修改人
     */
    @ApiModelProperty(value = "最后一次修改人")
    private Long lastUser;
    /**
     * 附件ids，关联公共文件表TF_YWPN_FILE _W，多个附件以英文逗号分隔
     */
    @ApiModelProperty(value = "附件ids，关联公共文件表TF_YWPN_FILE _W，多个附件以英文逗号分隔")
    private String fileIds;
    /**
     * 完成时间
     */
    @ApiModelProperty(value = "完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date overTime;
    @ApiModelProperty(value = "派工人id")
    private Long dispatchingId;
    @ApiModelProperty(value = "是否派工 0不派工 1派工")
    private String isDispatching;

    @ApiModelProperty(value = "个人计划列表")
    private List<RepairuserChildDto> repairUserChildDtoList;

    @ApiModelProperty(value = "是否查询当前用户下的工单列表,flag为1 默认不填写")
    private String flag;

    @ApiModelProperty(value = "人工结束 0关闭 1开启")
    private String artificialEndFlag;

    @ApiModelProperty(value = "是否为养护 0否 1是")
    private String maintenanceFlag;

    @ApiModelProperty(value = "任务执行人id")
    private Long executorId;
    @ApiModelProperty(value = "处理部门id")
    private Long executorDeptId;

    @ApiModelProperty(value = "(工单处理审核历史查询条件)获取处理审核历史信息 0否 1是")
    private String recordAuditFlag;
    @ApiModelProperty(value = "(工单处理审核历史查询条件)审核人ID")
    private Long recordAuditId;
    @ApiModelProperty(value = "(工单处理审核历史查询条件)0未审核,1通过,2未通过,3不可审批 多个以,分隔")
    private String recordAuditResult;
    @ApiModelProperty(value = "权限列表用户")
    private Set<Long> userIdList;

    @TableField(exist = false)
    @ApiModelProperty(value = "查询条件：多个工单id")
    private String orderIds;
}
