package com.prolog.cs.biz.outbound.model.vo.check;

import com.prolog.cs.biz.inbound.dto.IsSuperviseDTO;
import com.prolog.framework.core.annotation.Column;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @Description: 初版内复核，新版已在界面交互、接口响应作重大优化，旧版仅作参考，建议在新版升级
 * @Author: 田海龙
 * @Date: 2022/6/23 9:52
 */
@ApiModel("复核拣选任务")
@Data
public class InnerCheckTaskDVO extends IsSuperviseDTO {

    @ApiModelProperty(value = "拣货任务明细id")
    private String pickTaskDId;

    @ApiModelProperty(value = "商品明细行id")
    private String billDId;

    @ApiModelProperty(value = "最大单位包装含量（冗余）")
    @Column(value = "case_conversion_rate")
    private BigDecimal caseConversionRate;

    @ApiModelProperty("整散标记(?到仓库 ,不能为通用属性 01整散合一/02整散分开)")
    @Column(value = "is_case_or_piece")
    private Integer isCaseOrPiece;

    @ApiModelProperty(value = "订单id")
    private String billId;

    @ApiModelProperty(value = "原单行ID")
    private String srcLineId;

    @ApiModelProperty(value = "原单ID")
    private String srcId;

    @ApiModelProperty(value = "订单编码")
    private String billCode;

    @ApiModelProperty(value = "批次号")
    private String batchNum;

    @ApiModelProperty(value = "计划数量")
    private BigDecimal qty;

    @ApiModelProperty(value = "已拣货数量")
    private BigDecimal pickQty;

    @ApiModelProperty(value = "已检查数量，实际数量")
    private BigDecimal checkQty;

    @ApiModelProperty(value = "过期日期")
    private Date expiredDate;

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

    @ApiModelProperty(value = "商品名称")
    private String itemId;

    @ApiModelProperty(value = "商品编码")
    private String itemCode;

    @ApiModelProperty(value = "商品名称")
    private String itemName;

    @ApiModelProperty(value = "冲红原因")
    private String redReason;

    @ApiModelProperty(value = "是否双人验收")
    private String itemHealthIsDouble;

    @ApiModelProperty(value = "商品健康大类")
    private String itemCategoryCode;

    /**
     * 冲红数量
     **/
    @ApiModelProperty(value = "冲红数量")
    private BigDecimal redQty;


    @ApiModelProperty(value = "批号")
    private String lotNo;

    @ApiModelProperty(value = "内复核明细行id")
    private String innerCheckDId;

    @ApiModelProperty(value = "波次库存预占id")
    @Column(value = "wave_storage_id")
    private String waveStorageId;

    @ApiModelProperty(value = "复核员2复核数量")
    private BigDecimal check2Qty;

    @ApiModelProperty(value = "复核时间")
    private String checkTime;

    @ApiModelProperty(value = "复核员1")
    private String checker1;

    @ApiModelProperty(value = "复核员2")
    private String checker2;

    @ApiModelProperty(value = "拣货人姓名")
    private String pickerName;
    @ApiModelProperty(value = "拣货时间")
    private String pickTime;
    @ApiModelProperty(value = "单位")
    private String uom;
    @ApiModelProperty(value = "体积")
    private String volume;
    @ApiModelProperty(value = "重量")
    private String weight;
    @ApiModelProperty(value = "规格")
    private String spec;

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

    @ApiModelProperty(value = "货位编码")
    private String locatorCode;

    @ApiModelProperty(value = "任务类型（0-整件/1-散件）")
    private Integer pickTaskType;

    @ApiModelProperty(value = "销售员/业务员名称")
    private String salespersonName;

    @ApiModelProperty(value = "开票员")
    private String createby;

    @ApiModelProperty(value = "账期类型")
    private String paymentType;

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

    @ApiModelProperty(value = "拼箱行ID")
    private String barcodeDId;

    @ApiModelProperty(value = "拼箱号")
    private String lclNo;

    @ApiModelProperty(value = "拼箱数量")
    private BigDecimal lclQty;
}
