package cn.ezhizao.project.business.domain;

import java.util.Date;
import java.util.List;

import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
import cn.ezhizao.framework.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;

/**
 * 生产入库对象 biz_inbound_order
 *
 * @author ezhizao
 * @date 2025-05-20
 */
@Data
@TableName(value = "biz_inbound_order")
public class BizInboundOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 租户id */
    @ApiModelProperty(value = "${comment}")
    private Long tenantId;

    /** 入库类别 */
    @Excel(name = "入库类别")
    @ApiModelProperty(value = "入库类别")
    private Integer type;

    /** 入库部门id */
    @ApiModelProperty(value = "入库类别")
    private Long deptId;

    /** 入库部门 */
    @Excel(name = "入库部门")
    @ApiModelProperty(value = "入库部门")
    private String deptName;

    /** 入库日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入库日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "入库日期")
    private Date inboundTime;

    /** 入库单号 */
    @Excel(name = "入库单号")
    @ApiModelProperty(value = "入库单号")
    private String inboundNumber;

    /** 客户id */
    @ApiModelProperty(value = "入库单号")
    private Long companyId;

    /** 客户简称 */
    @Excel(name = "客户简称")
    @ApiModelProperty(value = "客户简称")
    private String companyAlias;

    /** 客户编码 */
    @Excel(name = "客户编码")
    @ApiModelProperty(value = "客户编码")
    private String companyCode;

    /** 保管员id */
    @ApiModelProperty(value = "客户编码")
    private Long storageUserId;

    /** 保管员编码 */
    @Excel(name = "保管员编码")
    @ApiModelProperty(value = "保管员编码")
    private String storageUserName;

    /** 保管员姓名 */
    @Excel(name = "保管员姓名")
    @ApiModelProperty(value = "保管员姓名")
    private String storageNickName;

    /** 包装线id */
    @ApiModelProperty(value = "包装线id")
    private Long packageResourceGroupId;

    /** 包装线名称 */
    @Excel(name = "包装线名称")
    @ApiModelProperty(value = "包装线名称")
    private String packageResourceGroupName;

    /** 包装线号 */
    @Excel(name = "包装线号")
    @ApiModelProperty(value = "包装线号")
    private Long packageResourceGroupLineNo;

    /** 料号 */
    @Excel(name = "料号")
    @ApiModelProperty(value = "料号")
    private String productCode;

    /** 产品种类 */
    @Excel(name = "产品种类")
    @ApiModelProperty(value = "产品种类")
    private String productType;

    /** 有无子件 */
    @Excel(name = "有无子件")
    @ApiModelProperty(value = "有无子件")
    private Integer isSubItem;

    /** 录入者id */
    @ApiModelProperty(value = "录入者id")
    private Long inputUserId;

    /** 录入者编码 */
    @Excel(name = "录入者编码")
    @ApiModelProperty(value = "录入者编码")
    private String inputUserName;

    /** 录入者姓名 */
    @Excel(name = "录入者姓名")
    @ApiModelProperty(value = "录入者姓名")
    private String inputNickName;

    /** 入库总量 */
    @Excel(name = "入库总量")
    @ApiModelProperty(value = "入库总量")
    private Long inboundTotalNum;

    /** 存储区域 */
    @Excel(name = "存储区域")
    @ApiModelProperty(value = "存储区域")
    private String storageArea;

    /** 单箱支数 */
    @Excel(name = "单箱支数")
    @ApiModelProperty(value = "单箱支数")
    private Long labelNumber;

    /** 转运码code */
    @Excel(name = "转运码code")
    @ApiModelProperty(value = "转运码code")
    private String transferCode;

    /** 转运码id */
    @ApiModelProperty(value = "转运码code")
    private Long transferId;

    /** 原转运码code */
    @Excel(name = "原转运码code")
    @ApiModelProperty(value = "原转运码code")
    private String originalTransferCode;

    /** 是否打印 */
    @Excel(name = "是否打印")
    @ApiModelProperty(value = "是否打印")
    private Integer isPrint;

    /** 反选出库单号 */
    @Excel(name = "反选出库单号")
    @ApiModelProperty(value = "反选出库单号")
    private String reSelectOutgoingOrderNumber;

    /** 箱数 */
    @Excel(name = "箱数")
    @ApiModelProperty(value = "箱数")
    private Long boxNumber;

    /** 厂库 */
    @Excel(name = "厂库")
    @ApiModelProperty(value = "厂库")
    private String factoryWarehouse;

    /** 单位 */
    @Excel(name = "单位")
    @ApiModelProperty(value = "单位")
    private String unit;

    /** 包装形式 */
    @Excel(name = "包装形式")
    @ApiModelProperty(value = "包装形式")
    private String packageType;

    /** 状态 */
    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private String status;

    /** 是否全部入库 */
    @Excel(name = "是否全部入库")
    @ApiModelProperty(value = "是否全部入库")
    private Integer isAllInbound;


    private String standard;

    private String drawingNo;

    private Integer isSubclass;

    private String productDescription;

    private String deptCode;

    @TableField(exist = false)
    private List<BizInboundOrderDetail> details;
    @TableField(exist = false)
    private List<List<BizInboundOrderDetail>> detailLists;

    @TableField(exist = false)
    private Date startTime;
    @TableField(exist = false)
    private Date endTime;
    @TableField(exist = false)
    private String tenantName;
    @TableField(exist = false)
    private String inboundDateStr;

    private Long productId;
}
