package com.aucma.report.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aucma.common.annotation.Excel;
import com.aucma.common.core.domain.BaseEntity;

/**
 * 不合格品流程管理对象 record_exception_process
 *
 * @author Yinq
 * @date 2024-04-24
 */
public class RecordExceptionProcess extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键标识
     */
    private Long objId;

    /**
     * MES箱体码
     */
    @Excel(name = "MES箱体码")
    private String boxBarcode;

    /**
     * 产线编号
     */
    @Excel(name = "产线编号")
    private String productLineCode;

    /**
     * 产线名称
     */
    @Excel(name = "产线名称")
    private String productLineName;

    /**
     * SAP订单编号
     */
    @Excel(name = "SAP订单编号")
    private String orderCode;

    /** 物料型号 */
    @Excel(name = "物料型号")
    private String materialModel;

    /**
     * 流转标识（1=正常流转，2=质管员拒绝，3=生产部经理拒绝，4=质量部经理部拒绝,9=流转完成）
     */
    @Excel(name = "流转标识", readConverterExp = "1=正常流转,2=质管员拒绝,3=生产部经理拒绝,4=质量部经理拒绝,9=流转完成")
    private String productionUserFlag;

    /**
     * 班组
     */
    @Excel(name = "班组")
    private String teamCode;

    /**
     * 班组名称
     */
    @Excel(name = "班组名称")
    private String teamName;

    /**
     * 申请原因
     */
    @Excel(name = "申请原因")
    private String applyReason;

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    /**
     * 质管员标识
     */
    @Excel(name = "质管员标识", readConverterExp = "1=同意,2=拒绝")
    private String qualityUserFlag;

    /**
     * 不合格原因
     */
    @Excel(name = "不合格原因")
    private String failureReason;

    /**
     * 不合格类型（1=降级品）
     */
//    @Excel(name = "不合格类型", readConverterExp = "1==降级品")
    private String failureType;

    /**
     * 质管员审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "质管员审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date qualityUserTime;

    /**
     * 生产部经理标识
     */
    @Excel(name = "生产部经理标识", readConverterExp = "1=同意,2=拒绝")
    private String productionManagerFlag;

    /**
     * 生产部经理审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "生产部经理审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date productionManagerTime;

    /**
     * 质量部经理标识
     */
    @Excel(name = "质量部经理标识", readConverterExp = "1=同意,2=拒绝")
    private String qualityManagerFlag;

    /**
     * 质量部经理审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "质量部经理审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date qualityManagerTime;

    /**
     * 巡检班长编号List
     */
    @Excel(name = "巡检班长编号")
    private String inspectionUserCode;

    /**
     * 巡检班长降级标识(1=已降级，2=未降级)
     */
    @Excel(name = "巡检班长降级标识")
    private String inspectionUserFlag;

    /**
     * 图片地址
     */
    @Excel(name = "图片地址")
    private String imageAddress;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String createdBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    private String updatedBy;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updatedTime;

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public String getProductLineCode() {
        return productLineCode;
    }

    public void setProductLineCode(String productLineCode) {
        this.productLineCode = productLineCode;
    }

    public String getProductLineName() {
        return productLineName;
    }

    public void setProductLineName(String productLineName) {
        this.productLineName = productLineName;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getMaterialModel() {
        return materialModel;
    }

    public void setMaterialModel(String materialModel) {
        this.materialModel = materialModel;
    }

    public void setObjId(Long objId) {
        this.objId = objId;
    }

    public Long getObjId() {
        return objId;
    }

    public void setBoxBarcode(String boxBarcode) {
        this.boxBarcode = boxBarcode;
    }

    public String getBoxBarcode() {
        return boxBarcode;
    }

    public void setProductionUserFlag(String productionUserFlag) {
        this.productionUserFlag = productionUserFlag;
    }

    public String getProductionUserFlag() {
        return productionUserFlag;
    }

    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }

    public String getTeamCode() {
        return teamCode;
    }

    public void setApplyReason(String applyReason) {
        this.applyReason = applyReason;
    }

    public String getApplyReason() {
        return applyReason;
    }

    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() {
        return applyTime;
    }

    public void setQualityUserFlag(String qualityUserFlag) {
        this.qualityUserFlag = qualityUserFlag;
    }

    public String getQualityUserFlag() {
        return qualityUserFlag;
    }

    public void setFailureReason(String failureReason) {
        this.failureReason = failureReason;
    }

    public String getFailureReason() {
        return failureReason;
    }

    public void setFailureType(String failureType) {
        this.failureType = failureType;
    }

    public String getFailureType() {
        return failureType;
    }

    public void setQualityUserTime(Date qualityUserTime) {
        this.qualityUserTime = qualityUserTime;
    }

    public Date getQualityUserTime() {
        return qualityUserTime;
    }

    public void setProductionManagerFlag(String productionManagerFlag) {
        this.productionManagerFlag = productionManagerFlag;
    }

    public String getProductionManagerFlag() {
        return productionManagerFlag;
    }

    public void setProductionManagerTime(Date productionManagerTime) {
        this.productionManagerTime = productionManagerTime;
    }

    public Date getProductionManagerTime() {
        return productionManagerTime;
    }

    public void setQualityManagerFlag(String qualityManagerFlag) {
        this.qualityManagerFlag = qualityManagerFlag;
    }

    public String getQualityManagerFlag() {
        return qualityManagerFlag;
    }

    public void setQualityManagerTime(Date qualityManagerTime) {
        this.qualityManagerTime = qualityManagerTime;
    }

    public Date getQualityManagerTime() {
        return qualityManagerTime;
    }

    public void setInspectionUserCode(String inspectionUserCode) {
        this.inspectionUserCode = inspectionUserCode;
    }

    public String getInspectionUserCode() {
        return inspectionUserCode;
    }

    public void setInspectionUserFlag(String inspectionUserFlag) {
        this.inspectionUserFlag = inspectionUserFlag;
    }

    public String getInspectionUserFlag() {
        return inspectionUserFlag;
    }

    public void setImageAddress(String imageAddress) {
        this.imageAddress = imageAddress;
    }

    public String getImageAddress() {
        return imageAddress;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("objId", getObjId())
                .append("boxBarcode", getBoxBarcode())
                .append("productionUserFlag", getProductionUserFlag())
                .append("teamCode", getTeamCode())
                .append("applyReason", getApplyReason())
                .append("applyTime", getApplyTime())
                .append("qualityUserFlag", getQualityUserFlag())
                .append("failureReason", getFailureReason())
                .append("failureType", getFailureType())
                .append("qualityUserTime", getQualityUserTime())
                .append("productionManagerFlag", getProductionManagerFlag())
                .append("productionManagerTime", getProductionManagerTime())
                .append("qualityManagerFlag", getQualityManagerFlag())
                .append("qualityManagerTime", getQualityManagerTime())
                .append("inspectionUserCode", getInspectionUserCode())
                .append("inspectionUserFlag", getInspectionUserFlag())
                .append("imageAddress", getImageAddress())
                .append("remark", getRemark())
                .append("createdBy", getCreatedBy())
                .append("createdTime", getCreatedTime())
                .append("updatedBy", getUpdatedBy())
                .append("updatedTime", getUpdatedTime())
                .toString();
    }
}
