package com.glxp.mipsdl.entity.inout;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

@Data
@TableName(value = "io_order")
public class IoOrderEntity {

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 单据号
     */
    @TableField(value = "billNo")
    private String billNo;

    /**
     * 手持终端订单号
     */
    @TableField(value = "corpOrderId")
    private String corpOrderId;

    /**
     * 主业务类型
     */
    @TableField(value = "mainAction")
    private String mainAction;

    /**
     * 业务类型
     */
    @TableField(value = "`action`")
    private String action;

    /**
     * 往来单位
     */
    @TableField(value = "fromCorp")
    private String fromCorp;

    /**
     * 往来部门
     */
    @TableField(value = "fromDeptCode")
    private String fromDeptCode;

    /**
     * 往来仓库
     */
    @TableField(value = "fromInvCode")
    private String fromInvCode;

    /**
     * 单据来源（1.UDIMS平台；2.网页新增；3.pda已校验；4.pda未校验；5.pc端扫码精灵）
     */
    @TableField(value = "fromType")
    private Integer fromType;

    /**
     * 1:草稿；2:已提交待处理;3:处理成功待校验;4:处理异常;5:校验成功待审核;6:校验失败;7:审核通过;8:审核拒绝
     */
    @TableField(value = "`status`")
    private Integer status;

    /**
     * 1.草稿；2:已提交;3:已审核
     */
    @TableField(value = "dealStatus")
    private Integer dealStatus;

    /**
     * 创建人
     */
    @TableField(value = "`createUser`")
    private String createUser;

    /**
     * 创建时间
     */
    @TableField(value = "createTime")
    private Date createTime;

    /**
     * 更新人
     */
    @TableField(value = "updateUser")
    private String updateUser;

    /**
     * 更新时间
     */
    @TableField(value = "updateTime")
    private Date updateTime;

    /**
     * 验收人
     */
    @TableField(value = "reviewUser")
    private String reviewUser;

    /**
     * 验收时间
     */
    @TableField(value = "auditTime")
    private Date auditTime;


    @TableField(value = "checkUser")
    private String checkUser;

    @TableField(value = "checkTime")
    private Date checkTime;

    /**
     * ID
     */
    @TableField(value = "customerId")
    private String customerId;

    /**
     * 部门编码
     */
    @TableField(value = "deptCode")
    private String deptCode;

    /**
     * 仓库编码
     */
    @TableField(value = "invCode")
    private String invCode;

    /**
     * 单据流转
     */
    @TableField(value = "outChangeEnable")
    private Boolean outChangeEnable;

    /**
     * 单据流转上级单号
     */
    @TableField(value = "originUllageSupNo")
    private String originUllageSupNo;

    /**
     * 单据流转下级单号
     */
    @TableField(value = "ullageSupNo")
    private String ullageSupNo;

    /**
     * 平衡补单单号
     */
    @TableField(value = "supplementNo")
    private String supplementNo;

    /**
     * 第三方系统单号(提交后返回）
     */
    @TableField(value = "thirdBillNo")
    private String thirdBillNo;

    /**
     * 复制单据单号，多个单号之间使用,隔开
     */
    @TableField(value = "replicateNo")
    private String replicateNo;

    /**
     * 单据打印备注
     */
    @TableField(value = "printRemark")
    private String printRemark;

    /**
     * 单据备注
     */
    @TableField(value = "remark")
    private String remark;

    @TableField(value = "errMsg")
    private String errMsg;

    @TableField(value = "preOutBillNo")
    private String preOutBillNo;

    @TableField(value = "preInBillNo")
    private String preInBillNo;

    @TableField(value = "entrustEnd")
    private boolean entrustEnd;
    @TableField(value = "reviewSp")
    private boolean reviewSp;   //是否验收外网单据时，需忽略流转更改为待审核


    /**
     * 单据类型：1.业务单据，2:扫码单据,3.正常处理单据  只有草稿，异常，待处理
     */
    @TableField(value = "orderType")
    private Integer orderType;

    //单据同步状态
    @TableField(value = "syncStatus")
    private Integer syncStatus;


    @TableField(value = "fromReceiveBillNo")
    private String fromReceiveBillNo;

    @TableField(value = "fromThrBillNo")
    private String fromThrBillNo;

    /**
     * 导出状态/上传状态（0.未提交，1.已提交；2.提交失败;3:数据异常）
     */
    @TableField(value = "exportStatus")
    private Integer exportStatus;


    @TableField(value = "busType")
    private Integer busType;           //1:正常；2：送货；3.到货


    @TableField(value = "deliveryStatus")
    private Integer deliveryStatus;     //单据送货验收状态

    @TableField(value = "processStatus")
    private Integer processStatus;     //退货单据处理状态
    @TableField(value = "inCodeStatus")
    private Integer inCodeStatus;     //内部码生成状态

    @TableField(value = "relKey")
    private String relKey;      //关联单据唯一键
    @TableField(value = "suppleCount")
    private Integer suppleCount; //补单次数

    @TableField(value = "checkStatus")
    private Integer checkStatus; //确认状态


    //    预验收按单出库，退货
    @TableField(value = "checkPreInOrders")
    private String checkPreInOrders;


    //    预验收按货位出库，退货
    @TableField(value = "checkPreInInvCode")
    private String checkPreInInvCode;

    //    预验收按货位出库，退货
    @TableField(value = "checkPreInSpaceCode")
    private String checkPreInSpaceCode;

    //    当前货位
    @TableField(value = "curSpaceCode")
    private String curSpaceCode;

    //  预验收、寄售当前货位
    @TableField(value = "preCurSpaceCode")
    private String preCurSpaceCode;


    @TableField(value = "confirmUser")
    private String confirmUser;

    @TableField(value = "confirmTime")
    private Date confirmTime;


}
