package com.zt.plat.module.qms.resource.material.dal.dataobject;

import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
* 物料批次 DO
*
* @author 后台管理
*/
@TableName("t_mtrl_bat")
@KeySequence("t_mtrl_bat_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承：isBusiness=true 时继承 BusinessBaseDO，否则继承 BaseDO
*/
public class MaterialBatchDO extends BusinessBaseDO {



    /**
    * 主键
    */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 父id,为0时是批次，不为0时是工段
     */
    @TableField("PRN_ID")
    private Long parentId;
    /**
    * 物料大类id
    */
    @TableField("PDT_ID")
    private Long productId;
    /**
    * 批次编号
    */
    @TableField("BAT_NO")
    private String batchNo;
    /**
    * 总数量
    */
    @TableField("INB_QTY")
    private BigDecimal inboundQuantity;
    /**
     *  可用数量
     */
    @TableField("RMNE_QTY")
    private BigDecimal remaineQuantity;
    /**
    * 退货数量
    */
    @TableField("RTN_QTY")
    private BigDecimal returnQuantity;
    /**
    * 换货数量
    */
    @TableField("REP_QTY")
    private BigDecimal replaceQuantity;
    /**
    * 已入库数量
    */
    @TableField("INB_END_QTY")
    private BigDecimal inboundEndQuantity;
    /**
     * 检定/校准数量
     */
    @TableField("VRFN_QTY")
    private BigDecimal verificationQuantity;
    /**
     * 锁定数量
     */
    @TableField("LC_QTY")
    private BigDecimal lockQuantity;
    /**
    * 存放位置描述
    */
    @TableField("LOC")
    private String location;
    /**
    * 供应商id
    */
    @TableField("SPLR_ID")
    private Long supplierId;
    /**
    * 生产日期
    */
    @TableField("MFR_DT")
    private LocalDate manufacturerDate;
    /**
    * 到期日期
    */
    @TableField("DUE_DT")
    private LocalDate dueDate;
    /**
     * 分配部门id
     */
    @TableField("ASN_DEPT_ID")
    private Long assignDepartmentId;
    /**
     * 分配部门名称
     */
    @TableField("ASN_DEPT_NAME")
    private String assignDepartmentName;
    /**
     * 提交状态,0-未提交，1-已提交
     */
    @TableField("SBM_STS")
    private Integer submitStatus;
    /**
     * 提交日期
     */
    @TableField("SBM_DT")
    private LocalDateTime submitDate;
    /**
    * 验收状态
    */
    @TableField("ACPT_STS")
    private String acceptanceStatus;
    /**
    * 是否可入库,1-可入库，0-不可入库，要和验收状态联合判断
    */
    @TableField("INB_FLG")
    private Integer inboundFlag;
    /**
    * 是否检化验,1-是，0-否
    */
    @TableField("ASY_FLG")
    private Integer assayFlag;
    /**
    * 检化验状态,NOT_STARTED-未开始，IN_PROGRESS-进行中，PASSED-通过，NOT_PASSED-未通过
    */
    @TableField("ASY_STS")
    private String assayStatus;
    /**
    * 检化验结果
    */
    @TableField("ASY_RSLT")
    private String assayResult;
    /**
    * 所属部门
    */
    @TableField("SYS_DEPT_CD")
    private String systemDepartmentCode;
    /**
    * 备注
    */
    @TableField("RMK")
    private String remark;

}