package com.zbf.system.domain;

    import java.math.BigDecimal;
import java.util.Date;

    import lombok.Data;
    import lombok.Getter;
    import lombok.Setter;
    import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.zbf.common.annotation.Excel;
import com.zbf.common.core.domain.BaseEntity;
    import org.apache.poi.ss.usermodel.IndexedColors;

/**
 * 出库物料明细对象 t_ck_orderdetail
 *
 * @author tony
 * @date 2024-06-24
 */

@Getter
@Setter
public class TCkOrderdetail extends BaseEntity  {
private static final long serialVersionUID = 1L;

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

    /** 主表id */
    @Excel(name = "主表id",type = Excel.Type.EXPORT)
    private String orderId;

    /** 子需求编号 */
    @Excel(name = "子需求编号",sort = 2)
    private String businessId;

    /** 物料编号 */
    @Excel(name = "*物料编号",required = true,headerColor= IndexedColors.RED,sort = 6)
    private String goodsId;

    /** 物料名称 */
    @Excel(name = "*物料名称",required = true,headerColor= IndexedColors.RED,sort = 7)
    private String goodsName;

    /** 库位编号 */
    @Excel(name = "库位编号")
    private String locationId;

    /** 规格 */
    @Excel(name = "规格型号")
    private String specification;

    /** 单位 */
    @Excel(name = "*单位",required = true,comboDictType = "goods_unit",headerColor= IndexedColors.RED,sort = 8)
    private String unit;

    /** 仓库 */
    @Excel(name = "仓库编号",sort = 4)
    private String storageId;
    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String storageShortName;
    /** 需求数量 */
    @Excel(name = "*需求数量",required = true,headerColor= IndexedColors.RED,sort = 9)
    private BigDecimal shelvesNum;

    /** 本次出库数量 */
//    @Excel(name = "本次出库数量")
    private BigDecimal goodsNum;

    /** 呼叫数量 */
    @Excel(name = "已呼叫数量")
    private BigDecimal callShelvesNum;

    /** 标准价 */
    @Excel(name = "标准价")
    private BigDecimal price;

    /** 物料分类 */
    @Excel(name = "物料分类")
    private String goodsTypeId;

    /** 供应商 */
    @Excel(name = "供应商")
    private String providerId;

    /** 物料描述 */
    @Excel(name = "物料描述")
    private String recoil;

    /** 库区 */
    @Excel(name = "库区")
    private String storageAreaId;

    /** 总出库数量 */
//    @Excel(name = "总出库数量")
    private BigDecimal pickNum;

    /** 确认出库数量 */
//    @Excel(name = "确认出库数量")
    private BigDecimal trNum;

    /** 条形码 */
    private String barcode;

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

    /** AGV站台 */
    private String toLoc;

    /** 确认状态 */
//    @Excel(name = "确认状态")
    private String confirmStatus;

    /** 到期时间 */
    private Date expiryDate;

    /** 库存数量 */
    @Excel(name = "库存数量")
    private BigDecimal stockNum;

    /** 呼叫任务号 */
//    @Excel(name = "呼叫任务号")
    private String taskId;

    /** ABC分类 */
    @Excel(name = "ABC分类")
    private String abc;

    /** 1:一级库 2：二级库 */
    @Excel(name = "*仓库类别",comboDictType = "storage_classification",required = true,headerColor= IndexedColors.RED,sort = 5)
    private String levelType;

    /** 交货单号 */
//    @Excel(name = "*来源单号",required = true,headerColor= IndexedColors.RED,sort = 1)
    private String deliveryId;
    /** 出库类型 */
    @Excel(name = "*出库类型",comboDictType = "outbound_type",required = true,headerColor= IndexedColors.RED,sort = 3)
    private String ckType;
    /** 订单类型 */
    @Excel(name = "订单类型")
    private String orderType;
    /** 申请部门 */
//    @Excel(name = "申请部门")
    private String supplier;
    @Excel(name = "物资流向")
    private String goodsTo;
    /** 申请人 */
    @Excel(name = "申请人")
    private String applicant;
    @Excel(name = "容器号")
    private String ctl;

    @Excel(name = "总价")
    private BigDecimal toMoney;
    @Excel(name = "批次号")
    private String batchNo;

    private String original;

    @Override
public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("businessId", getBusinessId())
            .append("goodsId", getGoodsId())
            .append("goodsName", getGoodsName())
            .append("locationId", getLocationId())
            .append("specification", getSpecification())
            .append("unit", getUnit())
            .append("storageId", getStorageId())
            .append("shelvesNum", getShelvesNum())
            .append("goodsNum", getGoodsNum())
            .append("callShelvesNum", getCallShelvesNum())
            .append("price", getPrice())
            .append("goodsTypeId", getGoodsTypeId())
            .append("providerId", getProviderId())
            .append("recoil", getRecoil())
            .append("storageAreaId", getStorageAreaId())
            .append("pickNum", getPickNum())
            .append("trNum", getTrNum())
            .append("barcode", getBarcode())
            .append("status", getStatus())
            .append("toLoc", getToLoc())
            .append("confirmStatus", getConfirmStatus())
            .append("expiryDate", getExpiryDate())
            .append("stockNum", getStockNum())
            .append("taskId", getTaskId())
            .append("updateTime", getUpdateTime())
        .toString();
        }
}