package com.zbf.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zbf.common.annotation.Excel;
import com.zbf.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.poi.ss.usermodel.IndexedColors;

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

/**
 * 出库物料明细对象 t_ck_orderdetail_bak
 *
 * @author tony
 * @date 2024-07-03
 */
@Data
public class TckXnOrderdetailBak extends BaseEntity {
        private static final long serialVersionUID = 1L;
        /** 主键 */
        @TableId(value = "id")
        @Excel(name = "出库编号",required = true,comboDictType = "goods_unit",headerColor= IndexedColors.RED)
        private String id;

        /** 主表id */
        @Excel(name = "出库单号",type = Excel.Type.EXPORT)
        private String orderId;
        /** 审核人 */
        @Excel(name = "审核人",needMerge = true,width = 50)
        private String auditMan;
        /** 审核时间 */
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @Excel(name = "审核时间", width = 50, dateFormat = "yyyy-MM-dd HH:mm:ss",needMerge = true)
        private Date auditDate;

        @Excel(name = "审核意见",needMerge = true)
        private String rejectReason;

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

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

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

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

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

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

        /** 仓库 */
//        @Excel(name = "仓库编号")
        private String storageId;
        /** 仓库名称 */
        @Excel(name = "仓库名称")
        private String storageShortName;
        /** 需求数量 */
        @Excel(name = "*需求数量",required = true,headerColor= IndexedColors.RED)
        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 BigDecimal toMoney;
        /** 申请人 */
        @Excel(name = "申请人",sort = 12)
        private String applicant;
        @Excel(name = "容器号")
        private String ctl;
        /** 库区 */
//        @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)
        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)
        private String ckType;
        /** 订单类型 */
        @Excel(name = "订单类型")
        private String orderType;
        /** 申请部门 */
        @Excel(name = "申请部门")
        private String supplier;
        @Excel(name = "物资流向")
        private String goodsTo;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @Excel(name = "出库日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",needMerge = true)
        private Date createTime;

        private String[] Date;

        /** 查询开始时间 */
        private String startTime;
        /** 查询结束时间 */
        private String endTime;

        @Excel(name = "批次号")
        private String batchNo;

        private String original;



    public String getBatchNo() {
        return batchNo;
    }

    public String getOriginal() {
        return original;
    }

    public void setOriginal(String original) {
        this.original = original;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    public String getAuditMan() {
                return auditMan;
        }

        public void setAuditMan(String auditMan) {
                this.auditMan = auditMan;
        }

        public Date getAuditDate() {
                return auditDate;
        }

        public void setAuditDate(Date auditDate) {
                this.auditDate = auditDate;
        }

        public String getStorageShortName() {
                return storageShortName;
        }

        public void setStorageShortName(String storageShortName) {
                this.storageShortName = storageShortName;
        }

        public String getOrderType() {
                return orderType;
        }

        public void setOrderType(String orderType) {
                this.orderType = orderType;
        }

        public String getStartDate() {
                return startTime;
        }

        public void setStartDate(String startDate) {
                this.startTime = startTime;
        }

        public String getEndDate() {
                return endTime;
        }

        public void setEndDate(String endDate) {
                this.endTime = endTime;
        }

        // 退库数量
        private BigDecimal recNumNow;

        public BigDecimal getRecNumNow() {
                return recNumNow;
        }

        public void setRecNumNow(BigDecimal recNumNow) {
                this.recNumNow = recNumNow;
        }

        public String getCkType() {
                return ckType;
        }

        public void setCkType(String ckType) {
                this.ckType = ckType;
        }



        public String getDeliveryId() {
                return deliveryId;
        }

        public void setDeliveryId(String deliveryId) {
                this.deliveryId = deliveryId;
        }

        public String getCtl() {
                return ctl;
        }

        public void setCtl(String ctl) {
                this.ctl = ctl;
        }

        public String getSupplier() {
                return supplier;
        }

        public void setSupplier(String supplier) {
                this.supplier = supplier;
        }

        public String getApplicant() {
                return applicant;
        }

        public void setApplicant(String applicant) {
                this.applicant = applicant;
        }

        public String getAbc() {
                return abc;
        }

        public void setAbc(String abc) {
                this.abc = abc;
        }

        public String getLevelType() {
                return levelType;
        }

        public void setLevelType(String levelType) {
                this.levelType = levelType;
        }

        public void setId(String id) {
                this.id = id;
        }

        public String getId() {
                return id;
        }

        public void setOrderId(String orderId) {
                this.orderId = orderId;
        }

        public String getOrderId() {
                return orderId;
        }

        public void setBusinessId(String businessId) {
                this.businessId = businessId;
        }

        public String getBusinessId() {
                return businessId;
        }

        public void setGoodsId(String goodsId) {
                this.goodsId = goodsId;
        }

        public String getGoodsId() {
                return goodsId;
        }

        public void setGoodsName(String goodsName) {
                this.goodsName = goodsName;
        }

        public String getGoodsName() {
                return goodsName;
        }

        public void setLocationId(String locationId) {
                this.locationId = locationId;
        }

        public String getLocationId() {
                return locationId;
        }

        public void setSpecification(String specification) {
                this.specification = specification;
        }

        public String getSpecification() {
                return specification;
        }

        public void setUnit(String unit) {
                this.unit = unit;
        }

        public String getUnit() {
                return unit;
        }

        public void setStorageId(String storageId) {
                this.storageId = storageId;
        }

        public String getStorageId() {
                return storageId;
        }

        public void setShelvesNum(BigDecimal shelvesNum) {
                this.shelvesNum = shelvesNum;
        }

        public BigDecimal getShelvesNum() {
                return shelvesNum;
        }

        public void setGoodsNum(BigDecimal goodsNum) {
                this.goodsNum = goodsNum;
        }

        public BigDecimal getGoodsNum() {
                return goodsNum;
        }



        public void setPrice(BigDecimal price) {
                this.price = price;
        }

        public BigDecimal getPrice() {
                return price;
        }

        public void setGoodsTypeId(String goodsTypeId) {
                this.goodsTypeId = goodsTypeId;
        }

        public String getGoodsTypeId() {
                return goodsTypeId;
        }

        public void setProviderId(String providerId) {
                this.providerId = providerId;
        }

        public String getProviderId() {
                return providerId;
        }

        public void setRecoil(String recoil) {
                this.recoil = recoil;
        }

        public String getRecoil() {
                return recoil;
        }

        public void setStorageAreaId(String storageAreaId) {
                this.storageAreaId = storageAreaId;
        }

        public String getStorageAreaId() {
                return storageAreaId;
        }

        public void setPickNum(BigDecimal pickNum) {
                this.pickNum = pickNum;
        }

        public BigDecimal getPickNum() {
                return pickNum;
        }

        public void setTrNum(BigDecimal trNum) {
                this.trNum = trNum;
        }

        public BigDecimal getTrNum() {
                return trNum;
        }

        public void setBarcode(String barcode) {
                this.barcode = barcode;
        }

        public String getBarcode() {
                return barcode;
        }

        public void setStatus(String status) {
                this.status = status;
        }

        public String getStatus() {
                return status;
        }

        public void setToLoc(String toLoc) {
                this.toLoc = toLoc;
        }

        public String getToLoc() {
                return toLoc;
        }

        public void setConfirmStatus(String confirmStatus) {
                this.confirmStatus = confirmStatus;
        }

        public String getConfirmStatus() {
                return confirmStatus;
        }

        public void setExpiryDate(Date expiryDate) {
                this.expiryDate = expiryDate;
        }

        public Date getExpiryDate() {
                return expiryDate;
        }

        public void setStockNum(BigDecimal stockNum) {
                this.stockNum = stockNum;
        }

        public BigDecimal getStockNum() {
                return stockNum;
        }

        public void setTaskId(String taskId) {
                this.taskId = taskId;
        }

        public String getTaskId() {
                return taskId;
        }

        public BigDecimal getCallShelvesNum() {
                return callShelvesNum;
        }

        public void setCallShelvesNum(BigDecimal callShelvesNum) {
                this.callShelvesNum = callShelvesNum;
        }


        public BigDecimal getToMoney() {
                return toMoney;
        }

        public void setToMoney(BigDecimal toMoney) {
                this.toMoney = toMoney;
        }

        @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("remark", getRemark())
                        .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();
        }
}
