package org.jeecg.modules.workOrder.entity;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 任务工单
 * @Author: jeecg-boot
 * @Date:   2025-02-10
 * @Version: V1.0
 */
@Data
@TableName("bu_work_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bu_work_order对象", description="任务工单")
public class WorkOrder implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private java.lang.String id;
	/**班组/部门*/
	@Excel(name = "班组/部门", width = 15)
    @ApiModelProperty(value = "班组/部门")
    @Dict(dictTable = "sys_depart",dicText = "depart_name",dicCode = "id")
    private java.lang.String createDept;
	/**createBy*/
    @ApiModelProperty(value = "createBy")
    private java.lang.String createBy;
	/**createTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "createTime")
    private java.util.Date createTime;
	/**updateBy*/
    @ApiModelProperty(value = "updateBy")
    private java.lang.String updateBy;
	/**updateTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "updateTime")
    private java.util.Date updateTime;
	/**工单类型*/
	@Excel(name = "工单类型", width = 15)
    @ApiModelProperty(value = "工单类型")
    @Dict(dicCode = "work_order")
    private java.lang.Integer modelType;
	/**工单模板*/
	@Excel(name = "工单模板", width = 15)
    @ApiModelProperty(value = "工单模板")
    private java.lang.String modelId;
	/**检修计划/维修计划*/
	@Excel(name = "检修计划/维修计划", width = 15)
    @ApiModelProperty(value = "检修计划/维修计划")
    @Dict(dictTable = "bu_plan",dicText = "cal_day",dicCode = "id")
    private java.lang.String planId;
	/**设备*/
	@Excel(name = "设备", width = 15)
    @ApiModelProperty(value = "设备")
    @Dict(dictTable = "v_bu_device",dicText = "name",dicCode = "id")
    private java.lang.String deviceId;
	/**修程/故障类型*/
	@Excel(name = "修程/故障类型", width = 15)
    @ApiModelProperty(value = "修程/故障类型")
    @Dict(dictTable = "bu_regular",dicText = "rapair_range",dicCode = "id")
    private java.lang.String regularId;
	/**工单状态*/
	@Excel(name = "工单状态", width = 15)
    @ApiModelProperty(value = "工单状态")
    @Dict(dicCode = "work_order_status")
    private java.lang.Integer status;
	/**工单配合人*/
	@Excel(name = "工单配合人", width = 15)
    @ApiModelProperty(value = "工单配合人")
    @Dict(dictTable = "sys_user",dicText = "realname",dicCode = "id")
    private java.lang.String executor;
	/**工单负责人*/
	@Excel(name = "工单负责人", width = 15)
    @ApiModelProperty(value = "工单负责人")
    @Dict(dictTable = "sys_user",dicText = "realname",dicCode = "id")
    private java.lang.String coordinator;
	/**开工时间*/
	@Excel(name = "开工时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开工时间")
    private java.util.Date startTime;
	/**完工时间*/
	@Excel(name = "完工时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "完工时间")
    private java.util.Date finishTime;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;
	/**是否删除0否1是*/
	@Excel(name = "是否删除0否1是", width = 15)
    @ApiModelProperty(value = "是否删除0否1是")
    private java.lang.Integer deleteFlag;

    @Excel(name = "物料申请状态", width = 15)
    @ApiModelProperty(value = "物料申请状态")
    @Dict(dicCode = "yn")
    private Integer materialStatus;

    @Excel(name = "工器具申请状态", width = 15)
    @ApiModelProperty(value = "工器具申请状态")
    @Dict(dicCode = "yn")
    private Integer toolsStatus;

    @Excel(name = "请点状态", width = 15)
    @ApiModelProperty(value = "请点状态")
    @Dict(dicCode = "yn")
    private Integer pointRequestStatus;

    @Excel(name = "审核员1", width = 15)
    @ApiModelProperty(value = "审核员1")
    private java.lang.String review1;
    @Excel(name = "审核员2", width = 15)
    @ApiModelProperty(value = "审核员2")
    private java.lang.String review2;
    @Excel(name = "审核员3", width = 15)
    @ApiModelProperty(value = "审核员3")
    private java.lang.String review3;
    @Excel(name = "审核员4", width = 15)
    @ApiModelProperty(value = "审核员4")
    private java.lang.String review4;
    @Excel(name = "设备是否可交付使用", width = 15)
    @ApiModelProperty(value = "设备是否可交付使用")
    private java.lang.Integer isDeliverable;
    @Excel(name = "工单作业时长", width = 15)
    @ApiModelProperty(value = "工单作业时长")
    private java.lang.Long workDuration;
    @TableField(exist = false)
    @ApiModelProperty(value = "审核类型：1、审核员1，2、审核员2，3、审核员3，4、审核员4")
    private Integer reviewType;

}
