package com.jwipc.spe.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 质量管理通知单
 * </p>
 *
 * @author Al
 * @since 2024-03-15
 */
@Getter
@Setter
@TableName("qm_notice_order")
public class QmNoticeOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 物理主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 质量通知单编码
     */
    private String noticeOrderCode;

    /**
     * 通知单类型 1:MES推送 2:ISC手动添加 3:BPM推送
     */
    private Integer noticeType;

    /**
     * 数据状态 0:新建 1:发布 2:供方待确认 3:待复核 4:待SQE初审 5:初审不同意 6:待主管审批 7:主管审批 不同意 8:待经理审批 9:经理审批不同意 10:待跟踪 11:已结案
     */
    private Integer status;

    /**
     * 供应商编码
     */
    private String supplierCode;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 物料组名称
     */
    private String materialGroupName;

    /**
     * SAP批次号
     */
    private String sapBatchNum;

    /**
     * 供应商批次号
     */
    private String supBatchNum;

    /**
     * 物料序列号
     */
    private String materialSn;

    /**
     * 不合格数量
     */
    private Double badNum;

    /**
     * 不合格描述
     */
    private String badRemark;

    /**
     * 检验批数量
     */
    private Integer batchNum;

    /**
     * 采购员姓名
     */
    private String purchaseUser;

    /**
     * 供方质量工程师
     */
    private String supQmEngineer;

    /**
     * SQE反馈单号
     */
    private String mesFeedbackOrder;

    /**
     * MES检验单号
     */
    private String mesInspectOrder;

    /**
     * PQE日期
     */
    private LocalDateTime mesPqeData;

    /**
     * 发布日期
     */
    private LocalDateTime releaseTime;

    /**
     * 不良原因 取字典
     */
    private String badReason;

    /**
     * 问题来源 1:供应商 2:来料 3:复检物料 4:在线 5:客退
     */
    private Integer problemSource;

    /**
     * 物料使用部门编码
     */
    private String materialUseDeptCode;

    /**
     * 物料使用部门名称
     */
    private String materialUseDeptName;

    /**
     * 供方是否同意受理RMA 0:不同意 1:同意
     */
    private Integer supAgreeRma;

    /**
     * 供方不同意说明
     */
    private String supDisagreeExplain;

    /**
     * 供方是否同意时间
     */
    private LocalDateTime supAgreeTime;

    /**
     * 是否接受供方异议 0:不接受 1:接受
     */
    private Integer iscAcceptDissent;

    /**
     * 问题严重程度(1:一级质量事故 2:二级质量事故 3:三级质量事故 4:四级质量事故 5:一般质量问题 6:批量质量问题 7:低级质量问题)
     */
    private Integer problemLevel;

    /**
     * 反馈复核时间
     */
    private LocalDateTime iscAcceptDissentTime;

    /**
     * 供方分析流出原因
     */
    private String supFlowOutReason;

    /**
     * 供方分析发出原因
     */
    private String supDeliverReason;

    /**
     * SQE初审 0:不同意 1:同意
     */
    private Integer sqeExamine;

    /**
     * 问题所属类型 1:制程类 2:设计类 3:错混料 4:环保 :其他
     */
    private Integer sqeProblemType;

    /**
     * SQE初审意见
     */
    private String sqeExamineOpinion;

    /**
     * SQE初始时间
     */
    private LocalDateTime sqeExamineTime;

    /**
     * 创建用户ID
     */
    private Long createUserId;

    /**
     * 创建用户编码
     */
    private String createUserCode;

    /**
     * 创建用户姓名
     */
    private String createUserName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 最后一次更新用户ID
     */
    private Long updateUserId;

    /**
     * 最后一次更新用户编码
     */
    private String updateUserCode;

    /**
     * 最后一次更新用户姓名
     */
    private String updateUserName;

    /**
     * 最后一次更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 归并处理标识 0:初始 1:作为父亲 2:作为儿子
     */
    private Integer mergeFlag;

    /**
     * 结案时间
     */
    private LocalDateTime closeCaseTime;

    /**
     * 效果验证
     */
    private String effect;

    /**
     * 删除标记：0-默认；1-删除
     */
    private Integer deleteFlag;

    /**
     * 限制措施选项；1、暂停供货；2、限制新货源；3、开发替代供应商；4、供应商退出；
     */
    private Integer restrictiveMeasures;

    /**
     * 归并确认标识；0-未归并；1-归并待确认；2-归并已确认；3-归并移除
     */
    private Integer mergeConfirmFlag;

    /**
     * 工单号
     */
    private String workOrderNumber;

    /**
     * 采购订单号
     */
    private String purchaseOrderNumber;

    /**
     * 问题定性
     */
    private Integer qualitativeProblem;

    /**
     * 限制处理时间
     */
    private LocalDateTime limitProcessingTime;

    /**
     * 实际处理时间
     */
    private LocalDateTime actualProcessingTime;

    /**
     * 主管审核 0:不同意 1:同意
     */
    private Integer supervisorApproval;

    /**
     * 主管审核时间
     */
    private LocalDateTime supervisorApprovalTime;

    /**
     * 主管审核意见
     */
    private String supervisorApprovalOpinion;

    /**
     * 经理审核 0:不同意 1:同意
     */
    private Integer managerApproval;

    /**
     * 经理审核时间
     */
    private LocalDateTime managerApprovalTime;

    /**
     * 经理审核意见
     */
    private String managerApprovalOpinion;

    /**
     * SQE/MCE人员id
     */
    private String mqeMce;

    /**
     * SQE/MCE人员姓名
     */
    private String mqeMceName;

    /**
     * 紧急处理（取字典）
     */
    private Integer emergencyHandling;

    /**
     * 风险评估
     */
    private String riskAssessment;

    /**
     * 不良批次处理意向(取字典)
     */
    private Integer defectiveBatches;

    /**
     * 来访姓名
     */
    private String visitingName;

    /**
     * 来访电话
     */
    private String visitingCall;

    /**
     * 来源（1:外包质量整改 2：一般质量整改）
     */
    private Short source;

    /**
     * 来访时间
     */
    private LocalDateTime visitingTime;

    /**
     * 供方型号
     */
    private String partNum;

    /**
     * 处理人职位
     */
    private String visitingPosition;

    /**
     * bpm流程流水号
     */
    private String bpmCode;

    /**
     * BPM流程id
     */
    private String instanceId;

    /**
     * bpm的来源(QA39、QA40)
     */
    private String bpmSource;

    /**
     * 不合格产品审理单号
     */
    private String badOrderNumber;

    /**
     * 根因分类
     */
    private String rootcauseClassify;

    /**
     * 最终不合格数量
     */
    private Integer finalBadNumber;

    /**
     * 不合格率
     */
    private Double finalBadRate;

    /**
     * 筛选情况简述
     */
    private String finalBadDescribe;

    /**
     * 总体预计完成时间
     */
    private LocalDate planTime;

    /**
     * 是否更新QPA检查表
     */
    private Integer isUpdateQpa;

    /**
     * 附件
     */
    private String attachment;

    /**
     * 8D或RAM附件
     */
    private String attachmentRam;

    /**
     * 跟踪状态 1:跟踪；2：关闭
     */
    private Integer followingStatus;

    /**
     * 内部处理组长
     */
    private String master;

    /**
     * 内部处理组长部门
     */
    private String masterDept;

    /**
     * 内部处理组长电话
     */
    private String masterPhone;

    /**
     * 内部处理组员1
     */
    private String member;

    /**
     * 内部处理组员1部门
     */
    private String memberDept;

    /**
     * 内部处理组员1电话
     */
    private String memberPhone;

    /**
     * 内部处理组员2
     */
    private String memberTwo;

    /**
     * 内部处理组员2部门
     */
    private String memberTwoDept;

    /**
     * 内部处理组员2电话
     */
    private String memberTwoPhone;

    /**
     * 外部处理组长
     */
    private String supMaster;

    /**
     * 外部处理组长部门
     */
    private String supMasterDept;

    /**
     * 外部处理组长电话
     */
    private String supMasterPhone;

    /**
     * 外部处理组员1
     */
    private String supMember;

    /**
     * 外部处理组员1部门
     */
    private String supMemberDept;

    /**
     * 外部处理组员1电话
     */
    private String supMemberPhone;

    /**
     * 外部处理组员2
     */
    private String supMemberTwo;

    /**
     * 外部处理组员2部门
     */
    private String supMemberTwoDept;

    /**
     * 外部处理组员2电话
     */
    private String supMemberTwoPhone;

    /**
     * 程序一负责人
     */
    private String programOneCharge;

    /**
     * jwipc库存数量
     */
    private String jwipcAmount;

    /**
     * 程序一日期
     */
    private LocalDate programOneDate;
}
