package com.jwipc.order.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.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 送货单明细
 * </p>
 *
 * @author zhangjie
 * @since 2024-03-06
 */
@Getter
@Setter
@TableName("t_delivery_order_detail")
public class DeliveryOrderDetail implements Serializable {

    private static final long serialVersionUID = 1L;

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

    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 送货单代码，统一由sap生成
     */
    private String orderCode;

    /**
     * 送货单单行号，系统生成
     */
    private String orderRow;

    /**
     * 采购订单编号 t_purchase_order_detail.orderCode
     */
    private String purchaseOrderCode;

    /**
     * 采购订单行号 t_purchase_order_detail.orderRow
     */
    private String purchaseOrderRow;

    /**
     * 工厂 t_factory.code
     */
    private String factoryCode;

    /**
     * 工厂名称
     */
    private String factoryName;

    /**
     * 库存地点 basis_stock_location.location_code
     */
    private String stockCode;

    /**
     * 库存地点名称
     */
    private String stockName;

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

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

    /**
     * 颜色 t_product_mcolor.color_code  注意要和物料编码搭配
     */
    private String colourCode;

    /**
     * 颜色名称
     */
    private String colourName;

    /**
     * 工艺属性
     */
    private String workmanship;

    /**
     * 长(mm)
     */
    private String lengths;

    /**
     * 宽(mm)
     */
    private String width;

    /**
     * 厚(mm)
     */
    private String thickness;

    /**
     * 采购订单单位 t_purchase_order_detail.unitCode
     */
    private String unitCode;

    /**
     * 单位名称 
     */
    private String unitName;

    /**
     * 采购订单数量 t_purchase_order_detail.num
     */
    private BigDecimal purchaseOrderNum;

    /**
     * 未税单价 
     */
    private BigDecimal price;

    /**
     * 未税金额 = num * price 
     */
    private BigDecimal amount;

    /**
     * 销售订单号 科目分配类别=C/E,此字段必输 
     */
    private String saleOrderCode;

    /**
     * 销售订单行号 科目分配类别=C/E,此字段必输 
     */
    private String saleOrderRow;

    /**
     * 送货数量 
     */
    private BigDecimal num;

    /**
     * 装置重量 根据每个物料对应的重量 * 数量
     */
    private String weight;

    /**
     * 装置体积 根据每个物料对应的体积 * 数量
     */
    private String volume;

    /**
     * 箱体数量，根据每个物料对应的bom信息 * 数量 
     */
    private String boxNum;

    /**
     * 0-新建 1- 2-发布 3-
     */
    private Integer state;

    private Long createId;

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

    private Long updateId;

    private LocalDateTime updateTime;

    /**
     * 1-删除
     */
    private Integer delFlag;

    /**
     * 备注
     */
    private String remark;

    /**
     * 批次号
     */
    private String batchNum;

    /**
     * 外包装满箱数量
     */
    private BigDecimal maxCartonNum;

    /**
     * 最小包装数量
     */
    private BigDecimal minInnerNum;

    /**
     * 收货时间
     */
    private LocalDateTime receivingTime;

    /**
     * 实收数量
     */
    private BigDecimal receiveNum;

    /**
     * 新的收货数量
     */
    private BigDecimal newReceiveNum;

    /**
     * 交货状态 0:未交货 1:已交货
     */
    private Integer closeCaseFlag;

    /**
     * 条码是否有外包装：1是，0否
     */
    private Integer minCheckbox;

    /**
     * 项目类型 【po_item_type】
     */
    private String rowTypeCode;

    /**
     * 同步条码状态：0未同步，1已同步
     */
    private Integer syncBoxState;

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

    /**
     * 是否生成条码
     */
    private Integer isBoxState;

    /**
     * 物料凭证编号
     */
    private String materialNo;

    /**
     * 物料凭证中的项目
     */
    private String materialProj;

    /**
     * 检验批次编号
     */
    private String inspectNo;

    /**
     * 是否关联标签 0否， 1是
     */
    private Integer associatedLabel;

    /**
     * 物料基本单位 
     */
    private String materialUnitCode;

    /**
     * 转换比例
     */
    private Double unitChange;

    /**
     * 需求部门
     */
    private String demandDepartment;

    /**
     * 来源 0-新建或物料 1-采购申请
     */
    private Integer source;

    /**
     * 来源记录id
     */
    private Long sourceId;

    /**
     * 需求日期 yyyy-MM-dd
     */
    private LocalDateTime requireDate;

    /**
     * 制造商
     */
    private String manufacturer;

    /**
     * 存储条件
     */
    private String storageConditions;

    /**
     * 收货人
     */
    private String shouHuoRen;

    /**
     * 收货地址
     */
    private String shouHuoDiZhi;

    /**
     * 采购员
     */
    private String buyer;

    /**
     * 厂区
     */
    private String changQu;

    /**
     * 货号
     */
    private String huoHao;

    /**
     * GMP包装规格
     */
    private BigDecimal gmpPackingSpecification;

    /**
     * 件数
     */
    private Long packNum;

    /**
     * 尾数
     */
    private BigDecimal partialNum;

    /**
     * 规格/型号
     */
    private String materialSpec;

    /**
     * 采购使用者
     */
    private String purchaseUser;

    /**
     * 收货人联系方式
     */
    private String shouHuoRenPhone;

    /**
     * 是否打印小标签1:已经打印;0:未打印
     */
    private Integer isPrint;

    /**
     * SC订单号
     */
    private String zlsdh;

    /**
     * 验退数量
     */
    private BigDecimal rejectionsNum;

    /**
     * 退货储位
     */
    public String returnStorageLocation;

    /**
     * 品质签字人
     */
    public String qualitySigner;

    /**
     * 旧物料编码
     */
    public String oldMaterialCode;

    /**
     * 判退日期（格式：yyyyMMdd 或 yyyy-MM-dd）
     */
    public String rejectDate;

    /**
     * 不良原因
     */
    public String defectReason;

    /**
     * 交货单号(sap返回)
     */
    public String shipmentNo;

    /**
     * 交货单行号(sap返回)
     */
    public String shipmentRowNo;
}
