package com.prolog.rdc.tms.app.model.dto.business;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author hongbo.pan
 * @date 2022/12/6
 */
@Data
@ApiModel("装车扫描运单DTO")
public class LoadingScanShipBillDetailInfoDTO {

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

    @ApiModelProperty(value = "运单ID")
    private String shipbillId;

    @ApiModelProperty(value = "运单编号")
    private String shipbillNo;

    @ApiModelProperty(value = "商品ID")
    private Long itemId;

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

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

    @ApiModelProperty(value = "商品品类ID")
    private Long itemCategoryId;

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

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

    @ApiModelProperty(value = "包装类型  数据字典PACK_TYPE:1纸箱  2包装袋")
    private Integer packType;

    @ApiModelProperty(value = "货物温层  数据字典CARGO_THERMOSPHERE:1常温 2冷藏 3冷冻")
    private Integer cargoThermosphere;

    @ApiModelProperty(value = "件数")
    private BigDecimal pcs;

    @ApiModelProperty(value = "体积")
    private BigDecimal volume;

    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

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

    @ApiModelProperty(value = "库存件数")
    private Integer inventoryPcs;

    @ApiModelProperty(value = "暂存位")
    private String stagingLocation;

    @ApiModelProperty(value = "发货件数")
    private BigDecimal deliveryPcs;

    @ApiModelProperty(value = "原始件数")
    private BigDecimal origPcs;

    @ApiModelProperty(value = "关闭件数")
    private BigDecimal closingPcs;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "运单关闭时间")
    private Date closeDt;

    @ApiModelProperty(value = "运单关闭类型")
    private Integer closeType;

    @ApiModelProperty(value = "运单关闭原因")
    private String closeReason;

    @ApiModelProperty(value = "运单关闭人")
    private String closeperson;

    @ApiModelProperty(value = "签收件数")
    private BigDecimal signInPcs;

    @ApiModelProperty(value = "温控区间（上限）")
    private BigDecimal temperatureCtlUpperLimit;

    @ApiModelProperty(value = "温控区间（下限）")
    private BigDecimal temperatureCtlLowerLimit;

    @ApiModelProperty(value = "计划发货件数")
    private BigDecimal planDeliveryPcs;

    @ApiModelProperty(value = "提货件数")
    private BigDecimal pickUpPcs;

    @ApiModelProperty(value = "已扫件数")
    private BigDecimal scannedPcs;
}
