package com.tofly.qualitycontrol.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 质检计划流程实体类 TF_YWPN_ZJJH_W
 *
 * @author B
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName(value = "TF_YWPN_ZJJH_W", resultMap = "planMap")
@ApiModel("质检计划工单表实体类")
@KeySequence("TF_YWPN_ZJJH_W")
public class Plan extends Model<Plan> {

	private static final long serialVersionUID = 1L;
	/** ID */
	@TableId(value = "ID", type = IdType.INPUT)
	@ApiModelProperty("质检计划主键id")
	private Long id;
	/** 计划类型 */
	@ApiModelProperty("计划类型(字典)")
	@NotNull(message = "计划类型不能为空")
	private String planType;
	/** 计划时间 */
	@ApiModelProperty("计划时间")
	@NotNull(message = "计划时间不能为空")
	private String planTime;
	/**
	 * 上传附件id，关联表TF_YWPN_FILE_W关键值，多个文件以英文逗号分割
	 */
	@ApiModelProperty(value = "上传附件id，关联表TF_YWPN_FILE _W关键值，多个文件以英文逗号分割")
	private String fileIds;
	/** 上报时间 */
	@ApiModelProperty("上报时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date reportTime;
	/** 计划状态 */
	@ApiModelProperty("计划状态(字典)")
	private String planStatus;
	/** 计划说明 */
	@ApiModelProperty("计划说明")
	private String planDesc;
	/** 上报人id */
	@ApiModelProperty("上报人id")
	private Long reporterId;
	/** 上报人姓名 */
	@ApiModelProperty("上报人姓名")
	private String reporterName;
	/** 上报人部门id */
	@ApiModelProperty("上报人部门id")
	private Long reporterDeptId;
	/** 上报人部门名称 */
	@ApiModelProperty("上报人部门名称")
	private String reporterDeptName;
	/** 上报时间 */
	@ApiModelProperty("计划上报时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date planReportTime;

}
