package com.bonus.canteen.core.supply.purchase.domain.param;

import com.bonus.canteen.core.utils.SysUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@ApiModel
public class DrpInspectGoodsCommitAddDTO {
   @ApiModelProperty("验货单号")
   private String inspectGoodsId;
   @ApiModelProperty("验货时间")
   private @NotNull(
   message = "验货时间不能为空!"
) LocalDateTime inspectDate;
   @ApiModelProperty("验货人")
   private @NotEmpty(
   message = "验货人不能为空!"
) String inspector;
   @ApiModelProperty("关联送货单号")
   private String relateDeliveryGoodsId;
   @ApiModelProperty("送货供应商id")
   private Long deliverySupplierId;
   @ApiModelProperty("送货人")
   private String deliveryMan;
   @ApiModelProperty("送货人电话")
   private String deliveryPhone;
   @ApiModelProperty("送货仓库")
   private Long deliveryWarehouseId;
   @ApiModelProperty("送货总数量")
   private BigDecimal deliveryTotalNum;
   @ApiModelProperty("累计合格数量")
   private BigDecimal totalQualifiedNum;
   @ApiModelProperty("验货合格总数量")
   private BigDecimal inspectQualifiedNum;
   @ApiModelProperty("关联采购订单号")
   private String relateOrderGoodsId;
   @ApiModelProperty("送货日期")
   private LocalDate deliveryDate;
   @ApiModelProperty("验货明细")
   private @Valid
   @Size(
   min = 1,
   message = "验货明细不能为空!"
) List<DrpInspectGoodsDetailCommitAddDTO> detailList;
   @ApiModelProperty("签名")
   private String signaturePicUrl;

   public void setSignaturePicUrl(String signaturePicUrl) {
      this.signaturePicUrl = SysUtil.getCutPath(signaturePicUrl);
   }

   public String getInspectGoodsId() {
      return this.inspectGoodsId;
   }

   public LocalDateTime getInspectDate() {
      return this.inspectDate;
   }

   public String getInspector() {
      return this.inspector;
   }

   public String getRelateDeliveryGoodsId() {
      return this.relateDeliveryGoodsId;
   }

   public Long getDeliverySupplierId() {
      return this.deliverySupplierId;
   }

   public String getDeliveryMan() {
      return this.deliveryMan;
   }

   public String getDeliveryPhone() {
      return this.deliveryPhone;
   }

   public Long getDeliveryWarehouseId() {
      return this.deliveryWarehouseId;
   }

   public BigDecimal getDeliveryTotalNum() {
      return this.deliveryTotalNum;
   }

   public BigDecimal getTotalQualifiedNum() {
      return this.totalQualifiedNum;
   }

   public BigDecimal getInspectQualifiedNum() {
      return this.inspectQualifiedNum;
   }

   public String getRelateOrderGoodsId() {
      return this.relateOrderGoodsId;
   }

   public LocalDate getDeliveryDate() {
      return this.deliveryDate;
   }

   public List<DrpInspectGoodsDetailCommitAddDTO> getDetailList() {
      return this.detailList;
   }

   public String getSignaturePicUrl() {
      return this.signaturePicUrl;
   }

   public DrpInspectGoodsCommitAddDTO setInspectGoodsId(final String inspectGoodsId) {
      this.inspectGoodsId = inspectGoodsId;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setInspectDate(final LocalDateTime inspectDate) {
      this.inspectDate = inspectDate;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setInspector(final String inspector) {
      this.inspector = inspector;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setRelateDeliveryGoodsId(final String relateDeliveryGoodsId) {
      this.relateDeliveryGoodsId = relateDeliveryGoodsId;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setDeliverySupplierId(final Long deliverySupplierId) {
      this.deliverySupplierId = deliverySupplierId;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setDeliveryMan(final String deliveryMan) {
      this.deliveryMan = deliveryMan;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setDeliveryPhone(final String deliveryPhone) {
      this.deliveryPhone = deliveryPhone;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setDeliveryWarehouseId(final Long deliveryWarehouseId) {
      this.deliveryWarehouseId = deliveryWarehouseId;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setDeliveryTotalNum(final BigDecimal deliveryTotalNum) {
      this.deliveryTotalNum = deliveryTotalNum;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setTotalQualifiedNum(final BigDecimal totalQualifiedNum) {
      this.totalQualifiedNum = totalQualifiedNum;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setInspectQualifiedNum(final BigDecimal inspectQualifiedNum) {
      this.inspectQualifiedNum = inspectQualifiedNum;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setRelateOrderGoodsId(final String relateOrderGoodsId) {
      this.relateOrderGoodsId = relateOrderGoodsId;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setDeliveryDate(final LocalDate deliveryDate) {
      this.deliveryDate = deliveryDate;
      return this;
   }

   public DrpInspectGoodsCommitAddDTO setDetailList(final List<DrpInspectGoodsDetailCommitAddDTO> detailList) {
      this.detailList = detailList;
      return this;
   }
}
