package com.zbf.system.domain;

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

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.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zbf.common.annotation.Excel;
import com.zbf.common.core.domain.BaseEntity;

/**
 * 入库任务对象 t_ongoodsshelf
 *
 * @author tony
 * @date 2024-06-14
 */
@Data
@Setter
@Getter
@TableName(resultMap = "com.zbf.system.mapper.TOngoodsshelfMapper.TOngoodsshelfResult")
public class TOngoodsshelf extends BaseEntity {
        private static final long serialVersionUID = 1L;

        /** 主键 */
        private String id;

        /** 任务号 */
        @Excel(name = "PLC编号")
        private Long plcId;

        /** 申请单号 */
        @Excel(name = "申请单号")
        private String lotId;

        /** 物料编码 */
        @Excel(name = "物料编码")
        private String goodsId;

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

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

        /** 需求数量 */
        @Excel(name = "需求数量")
        private BigDecimal stoNum;

        /** 托盘号 */
        @Excel(name = "容器号")
        private String ctl;

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

        /** 入库数量 */
        @Excel(name = "入库数量")
        private BigDecimal accNum;

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

        /** 入库时间 */
        @Excel(name = "入库时间")
        private String ondate;

        /** 收货人 */
        @Excel(name = "收货人")
        private String receiver;

        /** 仓库ID */
        @Excel(name = "仓库编号")
        private String storageId;
        /** 仓库名称 */
        @Excel(name = "仓库名称")
        private String storageShortName;
        /** 库区ID */
        @Excel(name = "库区ID")
        private String storageAreaId;

        /** 需求组织 */
        @Excel(name = "需求组织")
        private String operatorId;

        /** 存储模式 */
//        @Excel(name = "存储模式")
        private String storageMode;

        /** 物料体积 */
//        @Excel(name = "物料体积")
        private BigDecimal goodsVolume;

        /** 条形码 */
        @Excel(name = "条形码")
        private String barcode;

        /** 招标员 */
//        @Excel(name = "招标员")
        private String customerId;

        /** 需求部门 */
        @Excel(name = "需求部门")
        private String needDept;
        /** 需求人 */
        @Excel(name = "需求人")
        private String needPerson;
        /** 需求人联系方式 */
        @Excel(name = "需求人联系方式")
        private String needTel;
        /** 收货组织 */
        @Excel(name = "收货组织")
        private String produclotId;

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

        /** 主管部门 */
        @Excel(name = "主管部门")
        private String respDept;

        /** 申请部门 */
        @Excel(name = "申请部门")
        private String supplier;

        /** 物料名称 */
        @Excel(name = "物料名称")
        private String goodsName;

        /** 站台 */
//        @Excel(name = "站台")
        private String instand;

        /** 品牌 */
//        @Excel(name = "品牌")
        private String brand;

        /** 任务类型 */
        @Excel(name = "任务类型")
        private String taskType;

        /** 申请人 */
        @Excel(name = "申请人")
        private String applicant;

        /** 包装数量 */
//        @Excel(name = "包装数量")
        private BigDecimal packingNum;

        /** 损害数量 */
//        @Excel(name = "损害数量")
        private BigDecimal damageNum;

        /** 采购组织 */
        @Excel(name = "采购组织")
        private String purchaseDept;

        /** 计划单价（含税） */
        @Excel(name = "计划单价", readConverterExp = "含=税")
        private BigDecimal price;

        /** 测量单位 */
//        @Excel(name = "测量单位")
        private String scaleUnit;

        /** 总量 */
//        @Excel(name = "总量")
        private BigDecimal totalVolume;

        /** 毛重 */
//        @Excel(name = "毛重")
        private BigDecimal totalRoughWeight;

        /** 净重 */
//        @Excel(name = "净重")
        private BigDecimal totalNetWeigh;

        /** 计划金额 */
        @Excel(name = "计划金额")
        private BigDecimal totalMoney;

        /** wms订单号 */
        @Excel(name = "wms订单号")
        private String acceId;

        /** 内部状态 */
        private String inStatus;

        /** 标志 */
//        @Excel(name = "标志")
        private String flag;

        /** 标准箱 */
//        @Excel(name = "标准箱")
        private String standard;

        /** 本场批次 */
//        @Excel(name = "本场批次")
        private String innerBatchNo;

        /** 打印次数 */
//        @Excel(name = "打印次数")
        private BigDecimal printCs;

        /** 打印状态 */
//        @Excel(name = "打印状态")
        private String printSts;

        /** 入库方式 */
        @Excel(name = "入库方式")
        private BigDecimal purchaseType;

        /** 人工码盘 */
//        @Excel(name = "人工码盘")
        private String manualTrayState;

        /** 规格 */
        @Excel(name = "规格")
        private String spec;

        /** 采购入库单号 */
        @Excel(name = "采购入库单号")
        private String wmsOrderId;

        /** 外部批次号 */
        @Excel(name = "外部批次号")
        private String batchNo;

        /** 破损库位 */
//        @Excel(name = "破损库位")
        private String damageLocation;

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

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

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

        /** 创建时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date operateDate;

        /** 计划日期 */
//        @Excel(name = "计划日期")
        private String planDate;

        /** 计划时间 */
//        @Excel(name = "计划时间")
        private String planTime;

        /** 需求周期 */
//        @Excel(name = "需求周期")
        private BigDecimal needCycle;

        /** 需求类型 */
//        @Excel(name = "需求类型")
        private String needType;

        /** 需求时间 */
//        @Excel(name = "需求时间")
        private String expiryDate;

        /** 建议供应商名称 */
//        @Excel(name = "建议供应商名称")
        private String providerName;

        /** 收货人部门 */
//        @Excel(name = "收货人部门")
        private String receiverDept;

        /** 送货区域 */
//        @Excel(name = "送货区域")
        private String receivingArea;

        /** 技术需求附件 */
//        @Excel(name = "技术需求附件")
        private String packageId;

        /** 用途 */
        @Excel(name = "用途")
        private String useType;

        /** 中标供应商联系方式 */
//        @Excel(name = "中标供应商联系方式")
        private String telephone;

        /** 生产日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
        private Date productionDate;

        /** 宽 */
//        @Excel(name = "宽")
        private String wgh;

        /** 高 */
//        @Excel(name = "高")
        private String high;

        /** 质检状态 */
//        @Excel(name = "质检状态")
        private String qualityInspecStatus;

        /** 保质期 */
//        @Excel(name = "保质期")
        private String periodUnit;

        /** 保质期单位 */
//        @Excel(name = "保质期单位")
        private BigDecimal period;

        /** 上报时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd")
        private String reportTime;

        @Excel(name = "子需求编号")
        private String salesOrderNumber;

//        @Excel(name = "通知单明细编号")
        private String noticeTabId;

        private Long deptId;
        @TableField(exist = false)
        private List<String> storageList;
        /** ABC分类 */
        @Excel(name = "ABC分类")
        private String abc;

        /** 1:一级库 2：二级库 */
        @Excel(name = "1:一级库 2：二级库")
        private String levelType;

        private String rfidTid;

        private String rfidEpc;

        /** 暂存收货库位 */
        private String virtuallyLocation;

        /**任务通知ID */
        private String callNoticeId;

        @Override
        public String toString() {
                return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                                .append("id", getId())
                                .append("lotId", getLotId())
                                .append("goodsId", getGoodsId())
                                .append("providerId", getProviderId())
                                .append("locationId", getLocationId())
                                .append("stoNum", getStoNum())
                                .append("ctl", getCtl())
                                .append("recoil", getRecoil())
                                .append("accNum", getAccNum())
                                .append("stockNum", getStockNum())
                                .append("ondate", getOndate())
                                .append("receiver", getReceiver())
                                .append("storageId", getStorageId())
                                .append("storageAreaId", getStorageAreaId())
                                .append("operatorId", getOperatorId())
                                .append("storageMode", getStorageMode())
                                .append("goodsVolume", getGoodsVolume())
                                .append("barcode", getBarcode())
                                .append("customerId", getCustomerId())
                                .append("remark", getRemark())
                                .append("needDept", getNeedDept())
                                .append("produclotId", getProduclotId())
                                .append("unit", getUnit())
                                .append("respDept", getRespDept())
                                .append("plcId", getPlcId())
                                .append("supplier", getSupplier())
                                .append("goodsName", getGoodsName())
                                .append("instand", getInstand())
                                .append("brand", getBrand())
                                .append("taskType", getTaskType())
                                .append("applicant", getApplicant())
                                .append("packingNum", getPackingNum())
                                .append("damageNum", getDamageNum())
                                .append("purchaseDept", getPurchaseDept())
                                .append("price", getPrice())
                                .append("scaleUnit", getScaleUnit())
                                .append("totalVolume", getTotalVolume())
                                .append("totalRoughWeight", getTotalRoughWeight())
                                .append("totalNetWeigh", getTotalNetWeigh())
                                .append("totalMoney", getTotalMoney())
                                .append("acceId", getAcceId())
                                .append("inStatus", getInStatus())
                                .append("flag", getFlag())
                                .append("standard", getStandard())
                                .append("innerBatchNo", getInnerBatchNo())
                                .append("printCs", getPrintCs())
                                .append("printSts", getPrintSts())
                                .append("purchaseType", getPurchaseType())
                                .append("manualTrayState", getManualTrayState())
                                .append("spec", getSpec())
                                .append("wmsOrderId", getWmsOrderId())
                                .append("batchNo", getBatchNo())
                                .append("damageLocation", getDamageLocation())
                                .append("status", getStatus())
                                .append("updateTime", getUpdateTime())
                                .append("specification", getSpecification())
                                .append("goodsTypeId", getGoodsTypeId())
                                .append("operateDate", getOperateDate())
                                .append("planDate", getPlanDate())
                                .append("planTime", getPlanTime())
                                .append("needCycle", getNeedCycle())
                                .append("needType", getNeedType())
                                .append("expiryDate", getExpiryDate())
                                .append("providerName", getProviderName())
                                .append("receiverDept", getReceiverDept())
                                .append("receivingArea", getReceivingArea())
                                .append("packageId", getPackageId())
                                .append("useType", getUseType())
                                .append("telephone", getTelephone())
                                .append("productionDate", getProductionDate())
                                .append("wgh", getWgh())
                                .append("high", getHigh())
                                .append("createTime", getCreateTime())
                                .append("createBy", getCreateBy())
                                .append("updateBy", getUpdateBy())
                                .append("qualityInspecStatus", getQualityInspecStatus())
                                .append("periodUnit", getPeriodUnit())
                                .append("period", getPeriod())
                                .append("reportTime", getReportTime())
                                .append("salesOrderNumber", getSalesOrderNumber())
                                .toString();
        }
}
