package com.prolog.cs.biz.inbound.dto.rcv;

import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.prolog.cs.biz.inbound.constant.ValidatorGroup.validAdd;
import com.prolog.cs.biz.inbound.constant.ValidatorGroup.validEdit;
import com.prolog.framework.utils.StringUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description 收货行数据， 数量，批次，容器，收货人，结论，原因
 * <p>
 * （收货异常处理日志 在上架前可做，只调整数量和批次信息 未上架，可以修改所有原单数据，保留日志）
 * <p>
 * 收货行数据=上架+拒收
 * @Author Xiong
 * @Date 2021-04-02
 */

@ApiModel
public class RcvLinesDTO implements Serializable {
    private static final long serialVersionUID = 5335730467723668610L;
    @ApiModelProperty(value = "行ID(主键雪花id)", required = true)
    @NotBlank(message = "行ID(主键雪花id) can not blank!", groups = validEdit.class)
    private String rcvLineId;

    @ApiModelProperty(value = "头ID", required = true)
    @NotBlank(message = "头ID can not blank!", groups = validAdd.class)
    private String rcvHeaderId;

    @ApiModelProperty(value = "来源单ID列表")
    private String srcHeaderId;

    @ApiModelProperty(value = "来源单ID")
    private String srcLineId;

    @ApiModelProperty(value = "来源单ID列表(ASN)")
    private String asnHeaderId;

    @ApiModelProperty(value = "ASN行ID")
    private String asnLineId;

    @ApiModelProperty(value = "关联ASN行ID")
    private String refAsnLineId;

    @ApiModelProperty(value = "商品ID", required = true)
    @NotBlank(message = "商品ID can not blank!", groups = validAdd.class)
    private String itemId;

    @ApiModelProperty(value = "包装单位", required = true)
    @NotBlank(message = "包装单位 can not blank!", groups = validAdd.class)
    private String uom;

    @ApiModelProperty(value = "行号", required = true)
//	@NotNull(message = "行号 can not blank!", groups = validAdd.class)
    private Integer lineNum;

    @ApiModelProperty(value = "包装单位类型(2019/2020)新老包装")
    private String uomType;

    @ApiModelProperty(value = "数量", required = true)
    @NotNull(message = "数量 can not blank!", groups = validAdd.class)
    private BigDecimal qty;

    @ApiModelProperty(value = "包装含量", required = true)
    @NotNull(message = "包装含量 can not blank!", groups = validAdd.class)
    private BigDecimal conversionRate;//1箱50个

    @ApiModelProperty(value = "最小单位数量", required = true)
    @NotNull(message = "最小单位数量 can not blank!", groups = validAdd.class)
    private BigDecimal pieceQty;//110

    @ApiModelProperty(value = "整箱数", required = true)
    @NotNull(message = "整箱数 can not blank!", groups = validAdd.class)
    private BigDecimal oddCaseQty;//2箱

    @ApiModelProperty(value = "零散数", required = true)
    @NotNull(message = "零散数 can not blank!", groups = validAdd.class)
    private BigDecimal oddPieceQty;//10个

    @ApiModelProperty(value = "batch_id")
//	@NotBlank(message = "batch_id can not blank!", groups = validAdd.class)
    private String batchId;

    @ApiModelProperty(value = "批次号")
//	@NotBlank(message = "批次号 can not blank!", groups = validAdd.class)
    private String batchNum;

    @ApiModelProperty(value = "批次生产日期")
//	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date batchProductionDate;

    @ApiModelProperty(value = "批次有效期")
//	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date batchExpiredDate;

    @ApiModelProperty(value = "供应商批次号")
    private String vendorBatchNum;

    //	@ApiModelProperty(value = "生产商批号")
    @ApiModelProperty(value = "批号")
//	@NotNull(message = "批号不能为空!", groups = validAdd.class)
    private String manufacturerLotNum;

    @ApiModelProperty(value = "erp批号（预留字段）")
    private String erpBatchNum;

    @ApiModelProperty(value = "容器编码")
    private String containerCode;

    @ApiModelProperty(value = "货格编码")
    private String goodsCaseCode;

    @ApiModelProperty(value = "收货结论（0合格/1不合格/2待处理/3拒绝）")
    private String stockStatus;

    @ApiModelProperty(value = "处理原因")
    private String rcvReason1;

    @ApiModelProperty(value = "不足原因")
    private String rcvReason2;

    @ApiModelProperty(value = "不足原因补充")
    private String rcvReason3;

    @ApiModelProperty(value = "退货原因")
    private String rcvRtReason;

    @ApiModelProperty(value = "执行者（收货员）")
    private String executorUser;

    @ApiModelProperty(value = "备注")
    private String comments;

    @ApiModelProperty(value = "created_name")
    private String createdName;

    @ApiModelProperty(value = "last_updated_name")
    private String lastUpdatedName;

    @ApiModelProperty(value = "WMS已入库最小单位数量？")
    private BigDecimal wmsPieceQty;

    @ApiModelProperty(value = "辅助状态（做上传控制）")
    private String statusAs;

    @ApiModelProperty(value = "来源单类型")
    private String srcBillType;

    @ApiModelProperty(value = "货主id")
    private String mtlOwnerId;

    @ApiModelProperty(value = "双人业务类型(0:正常 1：双人验收，默认正常)")
    private Integer itemHealthIsDouble;

    @ApiModelProperty(value = "仓库(id)")
    private String warehouseId;

    @ApiModelProperty(value = "仓库(名称)")
    private String warehouseName;

    @ApiModelProperty(value = "货主名称")
    private String mtlOwnerName;

    @ApiModelProperty(value = "是否两票制")
    private Integer itemHealthTwovoteflag;

    @ApiModelProperty(value = "推荐库位(名称)")
    private String warehouseLocator;

//	@ApiModelProperty(value = "推荐库位(id)")
//	private String warehouseLocatorId;

    @ApiModelProperty(value = "推荐库房(名称)")
    private String warehouseRoom;

//	@ApiModelProperty(value = "推荐库房(id)")
//	private String warehouseRoomId;

    @ApiModelProperty(value = "推荐库别(名称)")
    private String warehouseAreaCategory;

    @ApiModelProperty(value = "赠品最小单位数量")
    private BigDecimal freeQty;

    @ApiModelProperty(value = "商品重量")
    private BigDecimal itemWeight;

    @ApiModelProperty(value = "商品体积")
    private BigDecimal itemVolume;

    @ApiModelProperty(value = "商品批准文号")
    private String approvalNumber;

    @ApiModelProperty(value = "商品产地")
    private String productionPlace;

    @ApiModelProperty(value = "商品编码(列表展示用)", position = Integer.MAX_VALUE - 1)
    private String itemNum;
    @ApiModelProperty(value = "商品名称(列表展示用)", position = Integer.MAX_VALUE - 2)
    private String itemName;
    @ApiModelProperty(value = "商品分类名(列表展示用)", position = Integer.MAX_VALUE - 3)
    private String categoryName;
    @ApiModelProperty(value = "商品条码(列表展示用)", position = Integer.MAX_VALUE - 4)
    private String itemBarcode;

    @ApiModelProperty(value = "数据版本号", hidden = true)
    private Integer dataVersion;

    @ApiModelProperty(value = "商品分类code名(展示用)", position = 9)
    private String categoryId;
    @ApiModelProperty(value = "仓库编码", position = 9)
    private String warehouseCode;

    // -------------------库存服务所需字段--------------------------------
    // 供应商id
    @ApiModelProperty(value = "供应商id(隐藏字段)", position = 9)
    private String vendorId;
    // 组织id
    @ApiModelProperty(value = "组织id(隐藏字段)", position = 9)
    private String orgId;
    // 单品含税额
    @ApiModelProperty(value = "单品含税进价(隐藏字段)", position = 9)
    private BigDecimal piecePriceTi;
    // 单品不含税额
    @ApiModelProperty(value = "单品不含税进价(隐藏字段)", position = 9)
    private BigDecimal piecePriceTe;
    // 税率
    @ApiModelProperty(value = "税率(隐藏字段)", position = 9)
    private BigDecimal taxRate;

//	@ApiModelProperty(value = "库别编码", position = 9)
//	private String whAreaCategoryCode;

    @ApiModelProperty(value = "商品大类", position = 9)
    private String itemCategoryName;

    // ============5.12 新增字段==========================

    @ApiModelProperty(value = "库区编号(逗号分隔列表)", position = -1)
    private String warehouseAreaCodes;
    @ApiModelProperty(value = "商品整散分离标识(0整散合一/1整散分开)", position = -1)
    private String itemIsPieceOrCase;
    @ApiModelProperty(value = "商品整散分离标识2(0整散合一/1整散分开)", position = -1)
    private String isCaseOrPiece;
    @ApiModelProperty(value = "推荐库别编号(逗号分隔列表)", position = -1)
    private String warehouseAreaCategorys;
    @ApiModelProperty(value = "收货类型", position = -1)
    private String rcvType;

    // ===============5.17 新加字段================
    @ApiModelProperty(value = "商品规格说明(冗余)", position = -1)
    private String specification;
    @ApiModelProperty(value = "上市许可持有人(冗余)", position = -1)
    private String itemHealthListedLicensor;
    @ApiModelProperty(value = "生产企业许可证号(冗余)", position = -1)
    private String itemHealthProduceLicense;
    @ApiModelProperty(value = "存储分类(冗余)", position = -1)
    private String itemHealthStoreCategory;
    @ApiModelProperty(value = "商品是否进口(冗余)", position = -1)
    private Integer itemIsImported;
    @ApiModelProperty(value = "商品是否复检(0否1是)(冗余)", position = -1)
    private Integer itemIsRecheck;
    @ApiModelProperty(value = "商品是否器械(0否1是)(冗余)", position = -1)
    private Integer isInstrument;

    // ========5.20新加==========================
    // 商品通用名
    @ApiModelProperty(value = "商品通用名(冗余)", position = -2)
    private String itemHealthCommonName;
    // 商品是否锁定
    @ApiModelProperty(value = "商品是否锁定(0否1是)(冗余)", position = -2)
    private Integer isLock;
    // 商品是否代管
    @ApiModelProperty(value = "商品是否代管(0否1是)(冗余)", position = -2)
    private Integer isHosted;
    // 生产厂家id
    @ApiModelProperty(value = "生产厂家id(冗余)", position = -2)
    private String manufacturerId;
    // 生产厂家code
    @ApiModelProperty(value = "生产厂家编码(冗余)", position = -2)
    private String manufacturerCode;
    // 生产厂家name
    @ApiModelProperty(value = "生产厂家名称(冗余)", position = -2)
    private String manufacturerName;
    @ApiModelProperty(value = "入库预留保质天数(冗余)", position = -2)
    private BigDecimal inStoreDay;
    // 注册证号
    @ApiModelProperty(value = "注册证号(冗余)", position = -2)
    private String itemHealthRegisterNbr;
    // 有效期天数(需转换)
    @ApiModelProperty(value = "有效期天数(需转换)(冗余)", position = -2)
    private BigDecimal shelfLifeDays;
    // 保质期单位
    @ApiModelProperty(value = "保质期单位(年/月/日,默认日)(冗余)", position = -2)
    private String shelfLifeUnit;
    // 是否特殊品
    @ApiModelProperty(value = "商品是否特殊品(0否1是)(冗余)", position = -2)
    private Integer itemIsSpecial;
    // 是否无菌
    @ApiModelProperty(value = "商品是否无菌(0否1是)(冗余)", position = -2)
    private Integer isBacteria;
    // 退货单位提供的商品售出期间储存、运输质量控制情况
    @ApiModelProperty(value = "退货单位提供的商品售出期间储存、运输质量控制情况(冗余)", position = -2)
    private String returnInfo;
    // 退货冷藏品出库期质量
    @ApiModelProperty(value = "退货冷藏品出库期质量(冗余)", position = -2)
    private String returnColdQuality;
    // 退货说明
    @ApiModelProperty(value = "退货说明(冗余)", position = -2)
    private String returnExplain;

    @ApiModelProperty(value = "选择的库区名称", position = -3)
    private String warehouseAreaName;
    @ApiModelProperty(value = "选择的库区id", position = -3)
    private String warehouseAreaId;
    @ApiModelProperty(value = "选择的库区编号", position = -3)
    private String warehouseAreaCode;
    @ApiModelProperty(value = "选择的建筑物id", position = -3)
    private String bldgId;
    @ApiModelProperty(value = "选择的建筑物名称", position = -3)
    private String bldgName;
    @ApiModelProperty(value = "选择的建筑物编号", position = -3)
    private String bldgCode;

    // ==== 6.1 新加字段===========================================================
    @ApiModelProperty(value = "是否委托生产(0否1是)", position = -4)
    private Integer isDelegate;
    @ApiModelProperty(value = "受托生产企业id(Oemid)", position = -4)
    private String delegationPartyId;
    @ApiModelProperty(value = "受托生产企业名称(Oem名称)", position = -4)
    private String delegationPartyName;

    // ==== 6.9 新加字段===========================================================
    @ApiModelProperty(value = "显示生产日期", position = -4)
    private String showProductionDate;
    @ApiModelProperty(value = "显示有效期至", position = -4)
    private String showExpiredDate;
    @ApiModelProperty(value = "最小包装数", position = -4)
    private BigDecimal pieceConversionRate;
    @ApiModelProperty(value = "推荐库房列表", position = -4)
    private String warehouseRoomCodes;

    // ============6.10新加字段======================================================
    @ApiModelProperty(value = "asn单行明细备注", position = -4)
    private String asnLineRemark;

    // ============6.11新加字段======================================================
    @ApiModelProperty(value = "商品助记码", position = -4)
    private String itemZjm;

    // =============6.16新加字段========================================================
    // 是否强制更新批号信息(只会更新库存中的批号表,暂不考虑更新所有的收货行及其关联信息)
    // 是否新增还是更新
    @ApiModelProperty(value = "更新标识(0新增,1修改,2不变)", position = -5)
    private Integer editFlag;

    @ApiModelProperty(value = "收货行拓展属性", notes = "新增极联用", position = Integer.MAX_VALUE)
    private RcvLinesProfilesDTO rcvLinesProfilesDTO;

    @ApiModelProperty(value = "收货行图片", notes = "新增极联用", position = Integer.MAX_VALUE)
    private List<RcvLinesPicDTO> rcvLinesPicDTOList;

    @ApiModelProperty(value = "是否追溯(0否1是)默认0", position = -5)
    private Integer isRetrospect;

    @ApiModelProperty(value = "质检报告单号(关联批次)", position = -6)
    private String rqcReportNo;

    // 8.27新加
    @ApiModelProperty(value = "(新)货位id/用于调账选择", position = -7)
    private String whLocatorId;
    @ApiModelProperty(value = "(新)货位code/用于调账选择", position = -7)
    private String whLocatorCode;
    @ApiModelProperty(value = "(新)货位库区code/用于调账选择", position = -7)
    private String whAreaCode;
    @ApiModelProperty(value = "(新)货位库别code/用于调账选择", position = -7)
    private String whAreaCategoryCode;
    @ApiModelProperty(value = "(新)库存转换操作类型 0-代管转正常;1-代管转待检;2-待检转正常", position = -7)
    private String inventoryOpType;

    // 关联代管
    @ApiModelProperty(value = "(新)关联的代管货位id", position = -7)
    private String hostLocatorId;

    // 批号校验标识
    @ApiModelProperty(value = "(新)是否已经校验过批次(0否1是)", position = -8)
    private Integer isCheckedBatch;

    @ApiModelProperty(value = "(新)是否双人收货(0否1是)", position = -9)
    private Integer isDoubleReceive;

    @ApiModelProperty(value = "复检任务id", position = -2000)
    private String taskRecheckId;

    @ApiModelProperty(value = "是否打印(生成上架标签时)", position = -2000)
    private Boolean printInstockLable;

    @ApiModelProperty(value = "托盘码放规则")
    private String palletPlacedRule;

    @ApiModelProperty(value = "剂型", position = -2000)
    private String itemHealthType;

    @ApiModelProperty(value = "拼箱号", position = -2000)
    private String locNo;

    @ApiModelProperty(value = "库别校验集合", position = -7)
    private List<String> whAreaCategoryCodeList;

    @ApiModelProperty(value = "到货整件数")
    @JsonProperty(value = "ATTR_NUM1")
    private BigDecimal attrNum1;

    @ApiModelProperty(value = "到货零散数")
    @JsonProperty(value = "ATTR_NUM2")
    private BigDecimal attrNum2;

    public BigDecimal getAttrNum1() {
        return attrNum1;
    }

    public void setAttrNum1(BigDecimal attrNum1) {
        this.attrNum1 = attrNum1;
    }

    public BigDecimal getAttrNum2() {
        return attrNum2;
    }

    public void setAttrNum2(BigDecimal attrNum2) {
        this.attrNum2 = attrNum2;
    }

    public String getPalletPlacedRule() {
        return palletPlacedRule;
    }

    public void setPalletPlacedRule(String palletPlacedRule) {
        this.palletPlacedRule = palletPlacedRule;
    }

    public Boolean getPrintInstockLable() {
        return printInstockLable;
    }

    public void setPrintInstockLable(Boolean printInstockLable) {
        this.printInstockLable = printInstockLable;
    }

    public String getTaskRecheckId() {
        return taskRecheckId;
    }

    public void setTaskRecheckId(String taskRecheckId) {
        this.taskRecheckId = taskRecheckId;
    }

    public Integer getIsDoubleReceive() {
        return isDoubleReceive;
    }

    public void setIsDoubleReceive(Integer isDoubleReceive) {
        this.isDoubleReceive = isDoubleReceive;
    }

    public Integer getIsCheckedBatch() {
        return isCheckedBatch;
    }

    public void setIsCheckedBatch(Integer isCheckedBatch) {
        this.isCheckedBatch = isCheckedBatch;
    }

    public String getHostLocatorId() {
        return hostLocatorId;
    }

    public void setHostLocatorId(String hostLocatorId) {
        this.hostLocatorId = hostLocatorId;
    }

    public String getInventoryOpType() {
        return inventoryOpType;
    }

    public void setInventoryOpType(String inventoryOpType) {
        this.inventoryOpType = inventoryOpType;
    }

    // 8.27新加
    public String getWhAreaCategoryCode() {
        return whAreaCategoryCode;
    }

    public void setWhAreaCategoryCode(String whAreaCategoryCode) {
        this.whAreaCategoryCode = whAreaCategoryCode;
    }

    public String getWhAreaCode() {
        return whAreaCode;
    }

    public void setWhAreaCode(String whAreaCode) {
        this.whAreaCode = whAreaCode;
    }

    public String getWhLocatorId() {
        return whLocatorId;
    }

    public void setWhLocatorId(String whLocatorId) {
        this.whLocatorId = whLocatorId;
    }

    public String getWhLocatorCode() {
        return whLocatorCode;
    }

    public void setWhLocatorCode(String whLocatorCode) {
        this.whLocatorCode = whLocatorCode;
    }

    public String getRqcReportNo() {
        return rqcReportNo;
    }

    public void setRqcReportNo(String rqcReportNo) {
        this.rqcReportNo = rqcReportNo;
    }

    public String getIsCaseOrPiece() {
        return isCaseOrPiece;
    }

    public void setIsCaseOrPiece(String isCaseOrPiece) {
        this.isCaseOrPiece = isCaseOrPiece;
    }

    public Integer getIsRetrospect() {
        return isRetrospect;
    }

    public void setIsRetrospect(Integer isRetrospect) {
        this.isRetrospect = isRetrospect;
    }

    public Integer getIsDelegate() {
        return isDelegate;
    }

    public void setIsDelegate(Integer isDelegate) {
        this.isDelegate = isDelegate;
    }

    public Integer getEditFlag() {
        return editFlag;
    }

    public void setEditFlag(Integer editFlag) {
        this.editFlag = editFlag;
    }

    public String getItemZjm() {
        return itemZjm;
    }

    public void setItemZjm(String itemZjm) {
        this.itemZjm = itemZjm;
    }

    public String getAsnLineRemark() {
        return asnLineRemark;
    }

    public void setAsnLineRemark(String asnLineRemark) {
        this.asnLineRemark = asnLineRemark;
    }

    public List<RcvLinesPicDTO> getRcvLinesPicDTOList() {
        return rcvLinesPicDTOList;
    }

    public void setRcvLinesPicDTOList(List<RcvLinesPicDTO> rcvLinesPicDTOList) {
        this.rcvLinesPicDTOList = rcvLinesPicDTOList;
    }

    public String getShowProductionDate() {
        return showProductionDate;
    }


    public void setShowProductionDate(String showProductionDate) {
        this.showProductionDate = showProductionDate;
        if(showProductionDate.length()> 6){
            if(!StringUtils.isEmpty(showProductionDate)&&!showProductionDate.equals("*")){
                this.showProductionDate = DateUtil.format(DateUtil.parse(showProductionDate), "yyyyMMdd");
            }
        }
    }

    public String getShowExpiredDate() {
        return showExpiredDate;
    }


    public void setShowExpiredDate(String showExpiredDate) {
        this.showExpiredDate = showExpiredDate;
        if(!StringUtils.isEmpty(showExpiredDate)&&!showExpiredDate.equals("*")){
            if (showExpiredDate.length() == 6) {
                this.showExpiredDate = DateUtil.parse(showExpiredDate, "yyyyMM").toString("yyyyMM");
                return;
            }
            this.showExpiredDate = DateUtil.format(DateUtil.parse(showExpiredDate), "yyyyMMdd");
        }
    }

    public BigDecimal getPieceConversionRate() {
        return pieceConversionRate;
    }

    public void setPieceConversionRate(BigDecimal pieceConversionRate) {
        this.pieceConversionRate = pieceConversionRate;
    }

    public String getWarehouseRoomCodes() {
        return warehouseRoomCodes;
    }

    public void setWarehouseRoomCodes(String warehouseRoomCodes) {
        this.warehouseRoomCodes = warehouseRoomCodes;
    }

    public String getDelegationPartyId() {
        return delegationPartyId;
    }

    public void setDelegationPartyId(String delegationPartyId) {
        this.delegationPartyId = delegationPartyId;
    }

    public String getDelegationPartyName() {
        return delegationPartyName;
    }

    public void setDelegationPartyName(String delegationPartyName) {
        this.delegationPartyName = delegationPartyName;
    }

    public String getWarehouseAreaCode() {
        return warehouseAreaCode;
    }

    public void setWarehouseAreaCode(String warehouseAreaCode) {
        this.warehouseAreaCode = warehouseAreaCode;
    }

    public String getBldgId() {
        return bldgId;
    }

    public void setBldgId(String bldgId) {
        this.bldgId = bldgId;
    }

    public String getBldgName() {
        return bldgName;
    }

    public void setBldgName(String bldgName) {
        this.bldgName = bldgName;
    }

    public String getBldgCode() {
        return bldgCode;
    }

    public void setBldgCode(String bldgCode) {
        this.bldgCode = bldgCode;
    }

    public String getItemHealthCommonName() {
        return itemHealthCommonName;
    }

    public void setItemHealthCommonName(String itemHealthCommonName) {
        this.itemHealthCommonName = itemHealthCommonName;
    }

    public Integer getIsLock() {
        return isLock;
    }

    public void setIsLock(Integer isLock) {
        this.isLock = isLock;
    }

    public Integer getIsHosted() {
        return isHosted;
    }

    public void setIsHosted(Integer isHosted) {
        this.isHosted = isHosted;
    }

    public String getManufacturerId() {
        return manufacturerId;
    }

    public void setManufacturerId(String manufacturerId) {
        this.manufacturerId = manufacturerId;
    }

    public String getManufacturerCode() {
        return manufacturerCode;
    }

    public void setManufacturerCode(String manufacturerCode) {
        this.manufacturerCode = manufacturerCode;
    }

    public String getManufacturerName() {
        return manufacturerName;
    }

    public void setManufacturerName(String manufacturerName) {
        this.manufacturerName = manufacturerName;
    }

    public BigDecimal getInStoreDay() {
        return inStoreDay;
    }

    public void setInStoreDay(BigDecimal inStoreDay) {
        this.inStoreDay = inStoreDay;
    }

    public String getItemHealthRegisterNbr() {
        return itemHealthRegisterNbr;
    }

    public void setItemHealthRegisterNbr(String itemHealthRegisterNbr) {
        this.itemHealthRegisterNbr = itemHealthRegisterNbr;
    }

    public BigDecimal getShelfLifeDays() {
        return shelfLifeDays;
    }

    public void setShelfLifeDays(BigDecimal shelfLifeDays) {
        this.shelfLifeDays = shelfLifeDays;
    }

    public String getShelfLifeUnit() {
        return shelfLifeUnit;
    }

    public void setShelfLifeUnit(String shelfLifeUnit) {
        this.shelfLifeUnit = shelfLifeUnit;
    }

    public Integer getItemIsSpecial() {
        return itemIsSpecial;
    }

    public void setItemIsSpecial(Integer itemIsSpecial) {
        this.itemIsSpecial = itemIsSpecial;
    }

    public Integer getIsBacteria() {
        return isBacteria;
    }

    public void setIsBacteria(Integer isBacteria) {
        this.isBacteria = isBacteria;
    }

    public String getReturnInfo() {
        return returnInfo;
    }

    public void setReturnInfo(String returnInfo) {
        this.returnInfo = returnInfo;
    }

    public String getReturnColdQuality() {
        return returnColdQuality;
    }

    public void setReturnColdQuality(String returnColdQuality) {
        this.returnColdQuality = returnColdQuality;
    }

    public String getReturnExplain() {
        return returnExplain;
    }

    public void setReturnExplain(String returnExplain) {
        this.returnExplain = returnExplain;
    }

    public String getSpecification() {
        return specification;
    }

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

    public String getItemHealthListedLicensor() {
        return itemHealthListedLicensor;
    }

    public void setItemHealthListedLicensor(String itemHealthListedLicensor) {
        this.itemHealthListedLicensor = itemHealthListedLicensor;
    }

    public String getItemHealthProduceLicense() {
        return itemHealthProduceLicense;
    }

    public void setItemHealthProduceLicense(String itemHealthProduceLicense) {
        this.itemHealthProduceLicense = itemHealthProduceLicense;
    }

    public String getItemHealthStoreCategory() {
        return itemHealthStoreCategory;
    }

    public void setItemHealthStoreCategory(String itemHealthStoreCategory) {
        this.itemHealthStoreCategory = itemHealthStoreCategory;
    }

    public Integer getItemIsImported() {
        return itemIsImported;
    }

    public void setItemIsImported(Integer itemIsImported) {
        this.itemIsImported = itemIsImported;
    }

    public Integer getItemIsRecheck() {
        return itemIsRecheck;
    }

    public void setItemIsRecheck(Integer itemIsRecheck) {
        this.itemIsRecheck = itemIsRecheck;
    }

    public Integer getIsInstrument() {
        return isInstrument;
    }

    public void setIsInstrument(Integer isInstrument) {
        this.isInstrument = isInstrument;
    }

    public String getRcvType() {
        return rcvType;
    }

    public void setRcvType(String rcvType) {
        this.rcvType = rcvType;
    }

    public String getWarehouseAreaCodes() {
        return warehouseAreaCodes;
    }

    public void setWarehouseAreaCodes(String warehouseAreaCodes) {
        this.warehouseAreaCodes = warehouseAreaCodes;
    }

    public String getItemIsPieceOrCase() {
        return itemIsPieceOrCase;
    }

    public void setItemIsPieceOrCase(String itemIsPieceOrCase) {
        this.itemIsPieceOrCase = itemIsPieceOrCase;
    }

    public String getWarehouseAreaCategorys() {
        return warehouseAreaCategorys;
    }

    public void setWarehouseAreaCategorys(String warehouseAreaCategorys) {
        this.warehouseAreaCategorys = warehouseAreaCategorys;
    }

    public String getItemCategoryName() {
        return itemCategoryName;
    }

    public void setItemCategoryName(String itemCategoryName) {
        this.itemCategoryName = itemCategoryName;
    }

    public String getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(String categoryId) {
        this.categoryId = categoryId;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public String getVendorId() {
        return vendorId;
    }

    public void setVendorId(String vendorId) {
        this.vendorId = vendorId;
    }

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    public BigDecimal getPiecePriceTi() {
        return piecePriceTi;
    }

    public void setPiecePriceTi(BigDecimal piecePriceTi) {
        this.piecePriceTi = piecePriceTi;
    }

    public BigDecimal getPiecePriceTe() {
        return piecePriceTe;
    }

    public void setPiecePriceTe(BigDecimal piecePriceTe) {
        this.piecePriceTe = piecePriceTe;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public Integer getDataVersion() {
        return dataVersion;
    }

    public void setDataVersion(Integer dataVersion) {
        this.dataVersion = dataVersion;
    }

    public String getRcvLineId() {
        return rcvLineId;
    }

    public void setRcvLineId(String rcvLineId) {
        this.rcvLineId = rcvLineId;
    }

    public String getRcvHeaderId() {
        return rcvHeaderId;
    }

    public void setRcvHeaderId(String rcvHeaderId) {
        this.rcvHeaderId = rcvHeaderId;
    }

    public String getSrcHeaderId() {
        return srcHeaderId;
    }

    public void setSrcHeaderId(String srcHeaderId) {
        this.srcHeaderId = srcHeaderId;
    }

    public String getSrcLineId() {
        return srcLineId;
    }

    public void setSrcLineId(String srcLineId) {
        this.srcLineId = srcLineId;
    }

    public String getAsnHeaderId() {
        return asnHeaderId;
    }

    public void setAsnHeaderId(String asnHeaderId) {
        this.asnHeaderId = asnHeaderId;
    }

    public String getAsnLineId() {
        return asnLineId;
    }

    public void setAsnLineId(String asnLineId) {
        this.asnLineId = asnLineId;
    }

    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public String getUom() {
        return uom;
    }

    public void setUom(String uom) {
        this.uom = uom;
    }

    public Integer getLineNum() {
        return lineNum;
    }

    public void setLineNum(Integer lineNum) {
        this.lineNum = lineNum;
    }

    public String getUomType() {
        return uomType;
    }

    public void setUomType(String uomType) {
        this.uomType = uomType;
    }

    public BigDecimal getQty() {
        return qty;
    }

    public void setQty(BigDecimal qty) {
        this.qty = qty;
    }

    public BigDecimal getConversionRate() {
        return conversionRate;
    }

    public void setConversionRate(BigDecimal conversionRate) {
        this.conversionRate = conversionRate;
    }

    public BigDecimal getPieceQty() {
        return pieceQty;
    }

    public void setPieceQty(BigDecimal pieceQty) {
        this.pieceQty = pieceQty;
    }

    public BigDecimal getOddCaseQty() {
        return oddCaseQty;
    }

    public void setOddCaseQty(BigDecimal oddCaseQty) {
        this.oddCaseQty = oddCaseQty;
    }

    public BigDecimal getOddPieceQty() {
        return oddPieceQty;
    }

    public void setOddPieceQty(BigDecimal oddPieceQty) {
        this.oddPieceQty = oddPieceQty;
    }

    public String getBatchId() {
        return batchId;
    }

    public void setBatchId(String batchId) {
        this.batchId = batchId;
    }

    public String getBatchNum() {
        return batchNum;
    }

    public void setBatchNum(String batchNum) {
        this.batchNum = batchNum;
    }

    public Date getBatchProductionDate() {
        return batchProductionDate;
    }

    public void setBatchProductionDate(Date batchProductionDate) {
        this.batchProductionDate = batchProductionDate;
    }

    public Date getBatchExpiredDate() {
        return batchExpiredDate;
    }

    public void setBatchExpiredDate(Date batchExpiredDate) {
        this.batchExpiredDate = batchExpiredDate;
    }

    public String getVendorBatchNum() {
        return vendorBatchNum;
    }

    public void setVendorBatchNum(String vendorBatchNum) {
        this.vendorBatchNum = vendorBatchNum;
    }

    public String getManufacturerLotNum() {
        return manufacturerLotNum;
    }

    public void setManufacturerLotNum(String manufacturerLotNum) {
        this.manufacturerLotNum = manufacturerLotNum;
    }

    public String getErpBatchNum() {
        return erpBatchNum;
    }

    public void setErpBatchNum(String erpBatchNum) {
        this.erpBatchNum = erpBatchNum;
    }

    public String getContainerCode() {
        return containerCode;
    }

    public void setContainerCode(String containerCode) {
        this.containerCode = containerCode;
    }

    public String getGoodsCaseCode() {
        return goodsCaseCode;
    }

    public void setGoodsCaseCode(String goodsCaseCode) {
        this.goodsCaseCode = goodsCaseCode;
    }

    public String getStockStatus() {
        return stockStatus;
    }

    public void setStockStatus(String stockStatus) {
        this.stockStatus = stockStatus;
    }

    public String getRcvReason1() {
        return rcvReason1;
    }

    public void setRcvReason1(String rcvReason1) {
        this.rcvReason1 = rcvReason1;
    }

    public String getRcvReason2() {
        return rcvReason2;
    }

    public void setRcvReason2(String rcvReason2) {
        this.rcvReason2 = rcvReason2;
    }

    public String getRcvReason3() {
        return rcvReason3;
    }

    public void setRcvReason3(String rcvReason3) {
        this.rcvReason3 = rcvReason3;
    }

    public String getRcvRtReason() {
        return rcvRtReason;
    }

    public void setRcvRtReason(String rcvRtReason) {
        this.rcvRtReason = rcvRtReason;
    }

    public String getExecutorUser() {
        return executorUser;
    }

    public void setExecutorUser(String executorUser) {
        this.executorUser = executorUser;
    }

    public String getComments() {
        return comments;
    }

    public void setComments(String comments) {
        this.comments = comments;
    }

    public String getCreatedName() {
        return createdName;
    }

    public void setCreatedName(String createdName) {
        this.createdName = createdName;
    }

    public String getLastUpdatedName() {
        return lastUpdatedName;
    }

    public void setLastUpdatedName(String lastUpdatedName) {
        this.lastUpdatedName = lastUpdatedName;
    }

    public BigDecimal getWmsPieceQty() {
        return wmsPieceQty;
    }

    public void setWmsPieceQty(BigDecimal wmsPieceQty) {
        this.wmsPieceQty = wmsPieceQty;
    }

    public String getStatusAs() {
        return statusAs;
    }

    public void setStatusAs(String statusAs) {
        this.statusAs = statusAs;
    }

    public String getSrcBillType() {
        return srcBillType;
    }

    public void setSrcBillType(String srcBillType) {
        this.srcBillType = srcBillType;
    }

    public String getMtlOwnerId() {
        return mtlOwnerId;
    }

    public void setMtlOwnerId(String mtlOwnerId) {
        this.mtlOwnerId = mtlOwnerId;
    }

    public Integer getItemHealthIsDouble() {
        return itemHealthIsDouble;
    }

    public void setItemHealthIsDouble(Integer itemHealthIsDouble) {
        this.itemHealthIsDouble = itemHealthIsDouble;
    }

    public String getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(String warehouseId) {
        this.warehouseId = warehouseId;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseAreaId() {
        return warehouseAreaId;
    }

    public void setWarehouseAreaId(String warehouseAreaId) {
        this.warehouseAreaId = warehouseAreaId;
    }

    public String getWarehouseAreaName() {
        return warehouseAreaName;
    }

    public void setWarehouseAreaName(String warehouseAreaName) {
        this.warehouseAreaName = warehouseAreaName;
    }

    public String getMtlOwnerName() {
        return mtlOwnerName;
    }

    public void setMtlOwnerName(String mtlOwnerName) {
        this.mtlOwnerName = mtlOwnerName;
    }

    public Integer getItemHealthTwovoteflag() {
        return itemHealthTwovoteflag;
    }

    public void setItemHealthTwovoteflag(Integer itemHealthTwovoteflag) {
        this.itemHealthTwovoteflag = itemHealthTwovoteflag;
    }

    public String getWarehouseLocator() {
        return warehouseLocator;
    }

    public void setWarehouseLocator(String warehouseLocator) {
        this.warehouseLocator = warehouseLocator;
    }

    public String getWarehouseRoom() {
        return warehouseRoom;
    }

    public void setWarehouseRoom(String warehouseRoom) {
        this.warehouseRoom = warehouseRoom;
    }

    public String getWarehouseAreaCategory() {
        return warehouseAreaCategory;
    }

    public void setWarehouseAreaCategory(String warehouseAreaCategory) {
        this.warehouseAreaCategory = warehouseAreaCategory;
    }

    public BigDecimal getFreeQty() {
        return freeQty;
    }

    public void setFreeQty(BigDecimal freeQty) {
        this.freeQty = freeQty;
    }

    public BigDecimal getItemWeight() {
        return itemWeight;
    }

    public void setItemWeight(BigDecimal itemWeight) {
        this.itemWeight = itemWeight;
    }

    public BigDecimal getItemVolume() {
        return itemVolume;
    }

    public void setItemVolume(BigDecimal itemVolume) {
        this.itemVolume = itemVolume;
    }

    public String getApprovalNumber() {
        return approvalNumber;
    }

    public void setApprovalNumber(String approvalNumber) {
        this.approvalNumber = approvalNumber;
    }

    public String getProductionPlace() {
        return productionPlace;
    }

    public void setProductionPlace(String productionPlace) {
        this.productionPlace = productionPlace;
    }

    public String getItemNum() {
        return itemNum;
    }

    public void setItemNum(String itemNum) {
        this.itemNum = itemNum;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getItemBarcode() {
        return itemBarcode;
    }

    public void setItemBarcode(String itemBarcode) {
        this.itemBarcode = itemBarcode;
    }

    public RcvLinesProfilesDTO getRcvLinesProfilesDTO() {
        return rcvLinesProfilesDTO;
    }

    public void setRcvLinesProfilesDTO(RcvLinesProfilesDTO rcvLinesProfilesDTO) {
        this.rcvLinesProfilesDTO = rcvLinesProfilesDTO;
    }

    public List<String> getWhAreaCategoryCodeList() {
        return whAreaCategoryCodeList;
    }

    public void setWhAreaCategoryCodeList(List<String> whAreaCategoryCodeList) {
        this.whAreaCategoryCodeList = whAreaCategoryCodeList;
    }

    public String getItemHealthType() {
        return itemHealthType;
    }

    public void setItemHealthType(String itemHealthType) {
        this.itemHealthType = itemHealthType;
    }

    public String getLocNo() {
        return locNo;
    }

    public void setLocNo(String locNo) {
        this.locNo = locNo;
    }

    public String getRefAsnLineId() {
        return refAsnLineId;
    }

    public void setRefAsnLineId(String refAsnLineId) {
        this.refAsnLineId = refAsnLineId;
    }
}
