package com.sy.coinage.workshop.req;

import com.sy.coinage.core.interceptor.Create;
import com.sy.coinage.core.interceptor.Update;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;

import org.hibernate.validator.constraints.Length;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import com.alibaba.fastjson2.annotation.JSONField;
import org.hibernate.validator.constraints.Range;
import lombok.Data;

/**
 * -添加请求bean
 */
@Data
public class CheckDetailReq implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * -id -10
     */
    @NotNull(message = "id不能为空", groups = {Update.class})
    @Range(min = 1, groups = {Update.class})
    private Integer id;
    /**
     * -抽检ID -10
     */
    @ApiModelProperty(value = "抽检ID", required = true)
    @NotNull(message = "抽检ID不能为空")
    private Integer checkId;
    /**
     * -rfid -12
     */
    @ApiModelProperty(value = "rfid", required = true)
    @NotBlank(message = "rfid不能为空")
    @Length(max = 12, message = "rfid长度12不正确")
    private String rfid;
    /**
     * -产品编号 -10
     */
    @ApiModelProperty(value = "产品编号", required = true)
    @NotNull(message = "产品编号不能为空")
    private String serialNumber;
    /**
     * -初始创建的冠字号列表 -100
     */
    @ApiModelProperty(value = "初始创建的冠字号列表", required = true)
    @NotBlank(message = "初始创建的冠字号列表不能为空")
    @Length(max = 100, message = "初始创建的冠字号列表长度100不正确")
    private String wareInitList;
    /**
     * -车间接收主库入库的时间 -19
     */
    @ApiModelProperty(value = "车间接收主库入库的时间", required = true)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "车间接收主库入库的时间不能为空")
    private Date shopReceiveTime;
    /**
     * -车间抽检单操作人 -20
     */
    @ApiModelProperty(value = "车间抽检单操作人", required = true)
    @NotBlank(message = "车间抽检单操作人不能为空")
    @Length(max = 20, message = "车间抽检单操作人长度20不正确")
    private String shopReceiveOperCn;
    /**
     * -车间抽检单复核人 -20
     */
    @ApiModelProperty(value = "车间抽检单复核人", required = true)
    @NotBlank(message = "车间抽检单复核人不能为空")
    @Length(max = 20, message = "车间抽检单复核人长度20不正确")
    private String shopReceiveCheck;
    /**
     * -车间接收主库的冠字号列表 -100
     */
    @ApiModelProperty(value = "车间接收主库的冠字号列表", required = true)
    @NotBlank(message = "车间接收主库的冠字号列表不能为空")
    @Length(max = 100, message = "车间接收主库的冠字号列表长度100不正确")
    private String shopReceiveList;
    /**
     * -车间剔除品库出库到机台 -19
     */
    @ApiModelProperty(value = "车间剔除品库出库到机台", required = true)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "车间剔除品库出库到机台不能为空")
    private Date shopOutMachineTime;
    /**
     * -shopOutMachineOperCn -20
     */
    @ApiModelProperty(value = "shopOutMachineOperCn", required = true)
    @NotBlank(message = "shopOutMachineOperCn不能为空")
    @Length(max = 20, message = "shopOutMachineOperCn长度20不正确")
    private String shopOutMachineOperCn;
    /**
     * -shopOutMachineCheck -20
     */
    @ApiModelProperty(value = "shopOutMachineCheck", required = true)
    @NotBlank(message = "shopOutMachineCheck不能为空")
    @Length(max = 20, message = "shopOutMachineCheck长度20不正确")
    private String shopOutMachineCheck;
    /**
     * -剔除品出库到机台的箱子列表 -100
     */
    @ApiModelProperty(value = "剔除品出库到机台的箱子列表", required = true)
    @NotBlank(message = "剔除品出库到机台的箱子列表不能为空")
    @Length(max = 100, message = "剔除品出库到机台的箱子列表长度100不正确")
    private String shopOutMachineList;
    /**
     * -机台到临时库产成品库位时间 -19
     */
    @ApiModelProperty(value = "机台到临时库产成品库位时间", required = true)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "机台到临时库产成品库位时间不能为空")
    private Date shopInProTime;
    /**
     * -shopInProOperCn -20
     */
    @ApiModelProperty(value = "shopInProOperCn", required = true)
    @NotBlank(message = "shopInProOperCn不能为空")
    @Length(max = 20, message = "shopInProOperCn长度20不正确")
    private String shopInProOperCn;
    /**
     * -车间机台进成品库复核员 -20
     */
    @ApiModelProperty(value = "车间机台进成品库复核员", required = true)
    @NotBlank(message = "车间机台进成品库复核员不能为空")
    @Length(max = 20, message = "车间机台进成品库复核员长度20不正确")
    private String shopInProCheck;
    /**
     * -车间机台进车间抽检箱子列表 -100
     */
    @ApiModelProperty(value = "车间机台进车间抽检箱子列表", required = true)
    @NotBlank(message = "车间机台进车间抽检箱子列表不能为空")
    @Length(max = 100, message = "车间机台进车间抽检箱子列表长度100不正确")
    private String shopInProList;
    /**
     * -抽检车间出库确认时间 -19
     */
    @ApiModelProperty(value = "抽检车间出库确认时间", required = true)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "抽检车间出库确认时间不能为空")
    private Date shopOutTime;
    /**
     * -车间出库操作人 -20
     */
    @ApiModelProperty(value = "车间出库操作人", required = true)
    @NotBlank(message = "车间出库操作人不能为空")
    @Length(max = 20, message = "车间出库操作人长度20不正确")
    private String shopOutOperCn;
    /**
     * -车间出库复核人 -20
     */
    @ApiModelProperty(value = "车间出库复核人", required = true)
    @NotBlank(message = "车间出库复核人不能为空")
    @Length(max = 20, message = "车间出库复核人长度20不正确")
    private String shopOutcheck;
    /**
     * -抽检车间出库返回主库列表 -100
     */
    @ApiModelProperty(value = "抽检车间出库返回主库列表", required = true)
    @NotBlank(message = "抽检车间出库返回主库列表不能为空")
    @Length(max = 100, message = "抽检车间出库返回主库列表长度100不正确")
    private String shopOutList;
    /**
     * -wareInTime -19
     */
    @ApiModelProperty(value = "wareInTime", required = true)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "wareInTime不能为空")
    private Date wareInTime;
    /**
     * -wareInOperCn -20
     */
    @ApiModelProperty(value = "wareInOperCn", required = true)
    @NotBlank(message = "wareInOperCn不能为空")
    @Length(max = 20, message = "wareInOperCn长度20不正确")
    private String wareInOperCn;
    /**
     * -wareInCheck -20
     */
    @ApiModelProperty(value = "wareInCheck", required = true)
    @NotBlank(message = "wareInCheck不能为空")
    @Length(max = 20, message = "wareInCheck长度20不正确")
    private String wareInCheck;
    /**
     * -wareInList -100
     */
    @ApiModelProperty(value = "wareInList", required = true)
    @NotBlank(message = "wareInList不能为空")
    @Length(max = 100, message = "wareInList长度100不正确")
    private String wareInList;

}
