package cn.estsh.i3plus.ext.mes.pcn.pojo.model;

import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;

/**
 * @Description:
 * @Author: xiangming.liao
 * @Date: 2021/01/18 10:23
 * @Modify:
 */
@Data
@ApiModel("MES_物料点检明细Model")
public class PartCheckDetailModel implements Serializable {

    private static final long serialVersionUID = 5439357699834906605L;

    @ApiParam("ID")
    private Long id;

    @ApiParam("生产工单号")
    private String workOrderNo;

    @ApiParam("工作中心代码")
    private String workCenterCode;

    @ApiParam(value = "工作单元代码")
    public String workCellCode;

    @ApiParam("工序代码")
    private String processCode;

    @ApiParam("工序名称")
    private String processName;

    @ApiParam("子零件")
    private String itemPartNo;

    @ApiParam("原材料物料名称")
    private String itemPartName;

    @ApiParam("班次")
    private String shiftCode;

    @ApiParam("物料号")
    private String partNo;

    @ApiParam("物料名称")
    private String partNameRdd;

    @ApiParam("单据编号")
    private String orderNo;

    @ApiParam(value ="单据状态")
    private Integer orderStatus;

    @ApiParam("单据日期")
    private String orderDate;

    @ApiParam("点检人员")
    private String checkUser;

    @ApiParam("点检时间")
    private String checkTime;

    /**
     * 10=是，20=否
     */
    @ApiParam("班组确认")
    private Integer shiftGroupCheck;

    @ApiParam("班组确认人")
    private String shiftGroupCheckUser;

    @ApiParam("班组确认时间")
    private String shiftGroupCheckTime;

    /**
     * 10=是，20=否
     */
    @ApiParam("品质确认")
    private Integer qualityCheck;

    @ApiParam("品质确认人")
    private String qualityCheckUser;

    @ApiParam("品质确认时间")
    private String qualityCheckTime;

    @ApiParam("生成时间")
    private String generateTime;

    @ApiParam("完成时间")
    private String complateTime;

    @Transient
    @ApiParam(
            value = "点检开始日期查询用，查询截至日期",
            example = "2021-01-01 00:00:00"
    )
    public String checkStartTime;
    @Transient
    @ApiParam(
            value = "点检结束日期查询用，查询截至日期",
            example = "2022-01-01 00:00:00"
    )
    public String checkEndTime;

    @ApiParam("文件ID")
    private Long fileId;

    @ApiParam("文件名称")
    private String fileName;

    @ApiParam("文件URL")
    private String fileUrl;

    @ApiParam("组名")
    private String groupName;

    @ApiParam("文件原名")
    private String fileOriginName;

    @ApiParam("文件大小")
    private String fileSize;

    @ApiParam("文件类型名称")
    private String fileType;

    @ApiParam("组织代码")
    public String organizeCode;

    @ApiParam("有效性")
    public Integer isValid;

    @ApiParam("是否已删除")
    public Integer isDeleted;

    @ApiParam("创建用户")
    public String createUser;

    @ApiParam("创建日期")
    public String createDatetime;

    @ApiParam("修改人")
    public String modifyUser;

    @ApiParam("修改日期")
    public String modifyDatetime;

    public PartCheckDetailModel(Long id, String workOrderNo, String workCenterCode, String workCellCode, String processCode, String processName, String itemPartNo, String itemPartName, String shiftCode, String partNo, String partNameRdd, String orderNo, Integer orderStatus, String orderDate, String checkUser, String checkTime, Integer shiftGroupCheck, String shiftGroupCheckUser, String shiftGroupCheckTime, Integer qualityCheck, String qualityCheckUser, String qualityCheckTime, String generateTime, String complateTime, Long fileId, String fileName, String fileUrl, String groupName, String fileOriginName, String fileSize, String fileType, String organizeCode, Integer isValid, Integer isDeleted, String createUser, String createDatetime, String modifyUser, String modifyDatetime) {
        this.id = id;
        this.workOrderNo = workOrderNo;
        this.workCenterCode = workCenterCode;
        this.workCellCode = workCellCode;
        this.processCode = processCode;
        this.processName = processName;
        this.itemPartNo = itemPartNo;
        this.itemPartName = itemPartName;
        this.shiftCode = shiftCode;
        this.partNo = partNo;
        this.partNameRdd = partNameRdd;
        this.orderNo = orderNo;
        this.orderStatus = orderStatus;
        this.orderDate = orderDate;
        this.checkUser = checkUser;
        this.checkTime = checkTime;
        this.shiftGroupCheck = shiftGroupCheck;
        this.shiftGroupCheckUser = shiftGroupCheckUser;
        this.shiftGroupCheckTime = shiftGroupCheckTime;
        this.qualityCheck = qualityCheck;
        this.qualityCheckUser = qualityCheckUser;
        this.qualityCheckTime = qualityCheckTime;
        this.generateTime = generateTime;
        this.complateTime = complateTime;
        this.fileId = fileId;
        this.fileName = fileName;
        this.fileUrl = fileUrl;
        this.groupName = groupName;
        this.fileOriginName = fileOriginName;
        this.fileSize = fileSize;
        this.fileType = fileType;
        this.organizeCode = organizeCode;
        this.isValid = isValid;
        this.isDeleted = isDeleted;
        this.createUser = createUser;
        this.createDatetime = createDatetime;
        this.modifyUser = modifyUser;
        this.modifyDatetime = modifyDatetime;
    }
}
