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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@ApiModel
public class DrpPurchasePlanPageVO {
   @ApiModelProperty("采购单号")
   private String planId;
   @ApiModelProperty("采购计划时间")
   private LocalDateTime purDate;
   @ApiModelProperty("采购计划状态(1-待发布,2-已发布)")
   private Integer status;
   @ApiModelProperty("备注")
   private String remark;
   @ApiModelProperty("审批状态(1待审批,2审批中,3审批同意,4审批拒绝)")
   private Integer approveStatus;
   @ApiModelProperty("采购计划详情列表")
   private List<DrpPurPlanDetailPageVO> detailList;
   @ApiModelProperty("制表人")
   private String createBy;
   @ApiModelProperty("创建时间")
   private LocalDateTime createTime;
   @ApiModelProperty("更新人")
   private String updateBy;
   @ApiModelProperty("更新时间")
   private LocalDateTime updateTime;
   @ApiModelProperty("关联采购订单号")
   private String relatePlanIds;
   @ApiModelProperty("是否合并")
   private Integer ifMerge;
   @ApiModelProperty("所属区域id")
   private Long areaId;
   @ApiModelProperty("所属区域")
   private String areaName;
   @ApiModelProperty("食堂id")
   private Long canteenId;
   @ApiModelProperty("档口id")
   private String stallId;
   @ApiModelProperty("食堂名称")
   private String canteenName;
   @ApiModelProperty("档口名称")
   private String stallName;
   @ApiModelProperty("审批人")
   private String approveBy;
   @ApiModelProperty("审批完成时间")
   private LocalDateTime approveTime;
   @ApiModelProperty("审批备注")
   private String approveRemark;
   @ApiModelProperty("计划货品总数量")
   private BigDecimal materialTotal;
   @ApiModelProperty("计划货品类别数量")
   private int categoryTotal;
   @ApiModelProperty("预计采购预算")
   private Long purchasingBudgetTotal;
   @ApiModelProperty("预计采购金额")
   private BigDecimal purchasingBudgetPrice;
   @ApiModelProperty("供应商id集合")
   private String supplierIds;
   @ApiModelProperty("审批流ID")
   private Long processInstanceId;
   @ApiModelProperty("当前用户是否可以审批")
   private Boolean curUserApprove;
   @ApiModelProperty("当前是否可以生成采购订单")
   private Boolean curCreateOrder;
   @ApiModelProperty("交货日期")
   private LocalDate deliverGoodsDate;
   @ApiModelProperty("生产计划单号")
   private String productionPlanId;

   public String getPlanId() {
      return this.planId;
   }

   public LocalDateTime getPurDate() {
      return this.purDate;
   }

   public Integer getStatus() {
      return this.status;
   }

   public String getRemark() {
      return this.remark;
   }

   public Integer getApproveStatus() {
      return this.approveStatus;
   }

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

   public String getRelatePlanIds() {
      return this.relatePlanIds;
   }

   public Integer getIfMerge() {
      return this.ifMerge;
   }

   public Long getAreaId() {
      return this.areaId;
   }

   public String getAreaName() {
      return this.areaName;
   }

   public Long getCanteenId() {
      return this.canteenId;
   }

   public String getStallId() {
      return this.stallId;
   }

   public String getCanteenName() {
      return this.canteenName;
   }

   public String getStallName() {
      return this.stallName;
   }

   public String getApproveBy() {
      return this.approveBy;
   }

   public LocalDateTime getApproveTime() {
      return this.approveTime;
   }

   public String getApproveRemark() {
      return this.approveRemark;
   }

   public BigDecimal getMaterialTotal() {
      return this.materialTotal;
   }

   public int getCategoryTotal() {
      return this.categoryTotal;
   }

   public Long getPurchasingBudgetTotal() {
      return this.purchasingBudgetTotal;
   }

   public BigDecimal getPurchasingBudgetPrice() {
      return this.purchasingBudgetPrice;
   }

   public String getSupplierIds() {
      return this.supplierIds;
   }

   public Long getProcessInstanceId() {
      return this.processInstanceId;
   }

   public Boolean getCurUserApprove() {
      return this.curUserApprove;
   }

   public Boolean getCurCreateOrder() {
      return this.curCreateOrder;
   }

   public LocalDate getDeliverGoodsDate() {
      return this.deliverGoodsDate;
   }

   public String getProductionPlanId() {
      return this.productionPlanId;
   }

   public DrpPurchasePlanPageVO setPlanId(final String planId) {
      this.planId = planId;
      return this;
   }

   public DrpPurchasePlanPageVO setPurDate(final LocalDateTime purDate) {
      this.purDate = purDate;
      return this;
   }

   public DrpPurchasePlanPageVO setStatus(final Integer status) {
      this.status = status;
      return this;
   }

   public DrpPurchasePlanPageVO setRemark(final String remark) {
      this.remark = remark;
      return this;
   }

   public DrpPurchasePlanPageVO setApproveStatus(final Integer approveStatus) {
      this.approveStatus = approveStatus;
      return this;
   }

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

   public DrpPurchasePlanPageVO setRelatePlanIds(final String relatePlanIds) {
      this.relatePlanIds = relatePlanIds;
      return this;
   }

   public DrpPurchasePlanPageVO setIfMerge(final Integer ifMerge) {
      this.ifMerge = ifMerge;
      return this;
   }

   public DrpPurchasePlanPageVO setAreaId(final Long areaId) {
      this.areaId = areaId;
      return this;
   }

   public DrpPurchasePlanPageVO setAreaName(final String areaName) {
      this.areaName = areaName;
      return this;
   }

   public DrpPurchasePlanPageVO setCanteenId(final Long canteenId) {
      this.canteenId = canteenId;
      return this;
   }

   public DrpPurchasePlanPageVO setStallId(final String stallId) {
      this.stallId = stallId;
      return this;
   }

   public DrpPurchasePlanPageVO setCanteenName(final String canteenName) {
      this.canteenName = canteenName;
      return this;
   }

   public DrpPurchasePlanPageVO setStallName(final String stallName) {
      this.stallName = stallName;
      return this;
   }

   public DrpPurchasePlanPageVO setApproveBy(final String approveBy) {
      this.approveBy = approveBy;
      return this;
   }

   public DrpPurchasePlanPageVO setApproveTime(final LocalDateTime approveTime) {
      this.approveTime = approveTime;
      return this;
   }

   public DrpPurchasePlanPageVO setApproveRemark(final String approveRemark) {
      this.approveRemark = approveRemark;
      return this;
   }

   public DrpPurchasePlanPageVO setMaterialTotal(final BigDecimal materialTotal) {
      this.materialTotal = materialTotal;
      return this;
   }

   public DrpPurchasePlanPageVO setCategoryTotal(final int categoryTotal) {
      this.categoryTotal = categoryTotal;
      return this;
   }

   public DrpPurchasePlanPageVO setPurchasingBudgetTotal(final Long purchasingBudgetTotal) {
      this.purchasingBudgetTotal = purchasingBudgetTotal;
      return this;
   }

   public DrpPurchasePlanPageVO setPurchasingBudgetPrice(final BigDecimal purchasingBudgetPrice) {
      this.purchasingBudgetPrice = purchasingBudgetPrice;
      return this;
   }

   public DrpPurchasePlanPageVO setSupplierIds(final String supplierIds) {
      this.supplierIds = supplierIds;
      return this;
   }

   public DrpPurchasePlanPageVO setProcessInstanceId(final Long processInstanceId) {
      this.processInstanceId = processInstanceId;
      return this;
   }

   public DrpPurchasePlanPageVO setCurUserApprove(final Boolean curUserApprove) {
      this.curUserApprove = curUserApprove;
      return this;
   }

   public DrpPurchasePlanPageVO setCurCreateOrder(final Boolean curCreateOrder) {
      this.curCreateOrder = curCreateOrder;
      return this;
   }

   public DrpPurchasePlanPageVO setDeliverGoodsDate(final LocalDate deliverGoodsDate) {
      this.deliverGoodsDate = deliverGoodsDate;
      return this;
   }

   public DrpPurchasePlanPageVO setProductionPlanId(final String productionPlanId) {
      this.productionPlanId = productionPlanId;
      return this;
   }

   public String getCreateBy() {
      return createBy;
   }

   public DrpPurchasePlanPageVO setCreateBy(String createBy) {
      this.createBy = createBy;
      return this;
   }

   public LocalDateTime getCreateTime() {
      return createTime;
   }

   public DrpPurchasePlanPageVO setCreateTime(LocalDateTime createTime) {
      this.createTime = createTime;
      return this;
   }

   public String getUpdateBy() {
      return updateBy;
   }

   public DrpPurchasePlanPageVO setUpdateBy(String updateBy) {
      this.updateBy = updateBy;
      return this;
   }

   public LocalDateTime getUpdateTime() {
      return updateTime;
   }

   public DrpPurchasePlanPageVO setUpdateTime(LocalDateTime updateTime) {
      this.updateTime = updateTime;
      return this;
   }
}
