package com.prolog.cs.base.gsp.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Ignore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Description  
 * @Date 2022-05-28
 */

@ApiModel
@Data
public class GspQualityCheckMoveItemVo implements Serializable {


	private static final long serialVersionUID = 1184799694767874827L;


	@ApiModelProperty(hidden =true,value = "lineId",required = true)
	private String lineId;

	@ApiModelProperty(hidden =true,value = "billId")
	private String billId;

	@ApiModelProperty(hidden =true,value = "billNo")
	private String billNo;

	@ApiModelProperty(value = "申请复查行id")
	private String requestLineid;

	@ApiModelProperty(value = "对接单据行号")
	private String seqno;

	//todo 未封装
	@ApiModelProperty(hidden =true,value = "仓配中心ID")
	private String dcId;

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

	@ApiModelProperty(value = "仓库编码")
	private String warehouseCode;

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

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

	@ApiModelProperty(value = "货主ID")
	private String cargoOwnerCode;

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


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


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

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

	//todo 属性名不一样
	@ApiModelProperty(value = "商品规格")
	private String itemSpecs;

	//todo 属性名不一样
	@ApiModelProperty(value = "生产厂家")
	private String manufacturerName;

	//todo 属性名不一样
	@ApiModelProperty(value = "产地")
	private String productionPlace;

	@ApiModelProperty(value = "包装数量")
	private BigDecimal packSize;

	@ApiModelProperty(value = "包装单位（字典）")
	private String packUnits;

	@ApiModelProperty("批准文号")
	private String approvalNumber;

	@ApiModelProperty(value = "备案凭证号")
	private String paperNo;


	@ApiModelProperty(value = "批次ID")
	@NotBlank(message = "{required}")
	private String batchId;

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

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

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

	//todo 上面todo一直到这里属性名都不一样
	@Ignore
	@ApiModelProperty(value = "有效期至日期")
	private String expiredDate;

	@Ignore
	@ApiModelProperty(value = "显示生产日期")
	private String showProductionDate;

	@Ignore
	@ApiModelProperty(value = "显示有效期至日期")
	private String showExpiredDate;


	//todo  未封装查商品库存后封装
	@ApiModelProperty(hidden =true,value = "库存数量")
	private BigDecimal stockQty;

	@ApiModelProperty(hidden =true,value = "质量复查数量")
	private BigDecimal qty;

	@ApiModelProperty(hidden =true,value = "质量复查移库数量")
	private BigDecimal reviewQty;


	@ApiModelProperty(hidden =true,value = "数量")
	private BigDecimal quantity;


	/**
	 * 移入库位ID
	 */
	@ApiModelProperty(value = "移入库位ID")
	@NotBlank(message = "{required}")
	private String inLocatorId;

	/**
	 * 移出库位ID
	 */
	@ApiModelProperty(value = "移出库位ID")
	@NotBlank(message = "{required}")
	private String outLocatorId;


	@Ignore
	@ApiModelProperty(value = "下架库存状态，逻辑页面不显示")
	private String outStockStatus;

	@Ignore
	@ApiModelProperty(value = "上架库存状态，逻辑页面不显示")
	private String inStockStatus;

	/**
	 * 零散数
	 */
	@NotNull(message = "{required}")
	@ApiModelProperty(value = "零散数")
	@Digits(integer = 30, fraction = 4, message = "{invalid}")
	private BigDecimal oddPieceQuantity;

	/**
	 * 数量
	 */
	@NotNull(message = "{required}")
	@ApiModelProperty(value = "整件数")
	@Digits(integer = 30, fraction = 4, message = "{invalid}")
	private BigDecimal caseQuantity;



	/**
	 * 移动原因
	 */
	@ApiModelProperty(value = "移动原因")
	private String reason;

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




	//下面三个暂时不用
	/**
	 * GSP 养护单ID
	 */
	@ApiModelProperty(value = "养护单ID")
	private String gspBillId;

	/**
	 * GSP 质量复检单号
	 */
	@ApiModelProperty(value = "质量复检单号")
	private String gspBillNo;

	/**
	 * GSP 养护子单号
	 */
	@ApiModelProperty(value = "养护子单ID")
	private String gspLineId;


	private String inWhAreaCategoryName = "不合格库";


	//单据来源类型
	private String refBilltype;


}
