package com.prolog.upcloud.base.wh.operate.model;

import com.prolog.framework.core.annotation.AutoKey;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @Description 盘点明细
 * @Date 2021-06-22
 */
@ApiModel
@Data
@Table(value = "wms_inv_check_d")
public class WmsInvCheckD implements Serializable {
    private static final long serialVersionUID = 8848281336401516425L;

    @ApiModelProperty(value = "单头ID")
    @Column(value = "check_header_id")
    private String checkHeaderId;

    @Id
    @AutoKey(type = AutoKey.TYPE_SNOWFLAKE)
    @ApiModelProperty(value = "单行ID")
    @Column(value = "check_line_id")
    private String checkLineId;

    @ApiModelProperty(value = "行号")
    @Column(value = "line_num")
    private Integer lineNum;

    @ApiModelProperty(value = "货位ID")
    @Column(value = "wh_locator_id")
    private String whLocatorId;

    @ApiModelProperty(value = "货主ID")
    @Column(value = "cargo_owner_id")
    private String cargoOwnerId;

    @ApiModelProperty(value = "容器")
    @Column(value = "container_code")
    private String containerCode;

    @ApiModelProperty(value = "货格")
    @Column(value = "goods_case_code")
    private String goodsCaseCode;

    @ApiModelProperty(value = "商品ID")
    @Column(value = "item_id")
    private String itemId;

    @ApiModelProperty(value = "包装单位")
    @Column(value = "uom")
    private String uom;

    @ApiModelProperty(value = "包装含量")
    @Column(value = "conversion_rate")
    private BigDecimal conversionRate;

    @ApiModelProperty(value = "batch_id")
    @Column(value = "batch_id")
    private String batchId;

    @ApiModelProperty(value = "BATCH_NUM")
    @Column(value = "batch_num")
    private String batchNum;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "segment1")
    private String segment1;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "segment2")
    private String segment2;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "segment3")
    private String segment3;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "segment4")
    private String segment4;

    @ApiModelProperty(value = "RF是否已盘点(Y/N)")
    @Column(value = "segment5")
    private String segment5;

    @ApiModelProperty(value = "系统库存总数")
    @Column(value = "piece_quantity_account")
    private BigDecimal pieceQuantityAccount;

    @ApiModelProperty(value = "其中整件")
    @Column(value = "case_quantity_account")
    private BigDecimal caseQuantityAccount;

    @ApiModelProperty(value = "库存零散")
    @Column(value = "odd_quantity_account")
    private BigDecimal oddQuantityAccount;

    @ApiModelProperty(value = "实盘总数")
    @Column(value = "piece_quantity_fact")
    private BigDecimal pieceQuantityFact;

    @ApiModelProperty(value = "实盘整件")
    @Column(value = "case_quantity_fact")
    private BigDecimal caseQuantityFact;

    @ApiModelProperty(value = "实盘零散")
    @Column(value = "odd_quantity_fact")
    private BigDecimal oddQuantityFact;

    @ApiModelProperty(value = "差异(实盘总数-库存总数)")
    @Column(value = "quantity_diff")
    private BigDecimal quantityDiff;

    @ApiModelProperty(value = "企业id")
    @Column(value = "enterprise_id")
    private String enterpriseId;

    @Column(value = "gmt_create")
    private Date gmtCreate;

    @Column(value = "creator")
    private String creator;

    @Column(value = "creator_name")
    private String creatorName;

    @Column(value = "gmt_modified")
    private Date gmtModified;

    @Column(value = "modifier")
    private String modifier;

    @Column(value = "modifier_name")
    private String modifierName;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "attribute1")
    private String attribute1;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "attribute2")
    private String attribute2;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "attribute3")
    private String attribute3;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "attribute4")
    private String attribute4;

    @ApiModelProperty(value = "预留字段")
    @Column(value = "attribute5")
    private String attribute5;

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

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

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

    @ApiModelProperty(value = "不含税成本单价(最小单位)")
    @Column(value = "piece_cost_te")
    private BigDecimal pieceCostTe;

    @ApiModelProperty(value = "不含税成本单价")
    @Column(value = "unit_cost_te")
    private BigDecimal unitCostTe;

    @ApiModelProperty(value = "不含税成本金额")
    @Column(value = "cost_ta_te")
    private BigDecimal costTaTe;

    @ApiModelProperty(value = "税率")
    @Column(value = "tax_rate")
    private BigDecimal taxRate;

    @ApiModelProperty(value = "生产日期")
    @Column(value = "production_date")
    private Date productionDate;

    @ApiModelProperty(value = "明细状态")
    @Column(value = "status")
    private String status;

    @ApiModelProperty(value = "盘点操作员")
    @Column(value = "oper_by")
    private String operBy;

    @ApiModelProperty(value = "有效期至")
    @Column(value = "batch_expired_date")
    private Date batchExpiredDate;

    @ApiModelProperty(value = "处理时间")
    @Column(value = "check_date")
    private Date checkDate;

    @ApiModelProperty(value = "生产商批号")
    @Column(value = "manufacturer_lot_num")
    private String manufacturerLotNum;

    @ApiModelProperty(value = "库存状态（1合格/2不合格/3待检/4退货）")
    @Column(value = "stock_status")
    private String stockStatus;

    @ApiModelProperty(value = "是否已发出库指令（0-否；1-已发未达；2-已送达）")
    @Column(value = "outbound_instruct")
    private Integer outboundInstruct;
}
