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

import com.bonus.canteen.core.supply.purchase.constants.DrpInterfaceType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

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

@ApiModel
public class DrpProductionPlanPageDTO {
   @ApiModelProperty("生产计划单号")
   private String productionPlanId;
   @ApiModelProperty("生产计划名称")
   private String productionPlanName;
   @ApiModelProperty("制表时间开始")
   private LocalDateTime startTime;
   @ApiModelProperty("制表时间结束")
   private LocalDateTime endTime;
   @ApiModelProperty("制表人")
   private String operatorName;
   @ApiModelProperty("生产计划时间开始")
   private LocalDate productionPlanStartTime;
   @ApiModelProperty("生产计划时间结束")
   private LocalDate productionPlanEndTime;
   @ApiModelProperty("区域id")
   private List<Long> areaIdList;
   @ApiModelProperty("食堂id")
   private List<Long> canteenIdList;
   @ApiModelProperty("档口id")
   private List<Long> stallIdList;
   @ApiModelProperty("提交状态 1待提交 2已提交")
   private Integer orderStatus;
   @ApiModelProperty("审批状态(1待审批,2审批中,3审批同意,4审批拒绝)")
   private Integer approveStatus;
   @ApiModelProperty("类型(1 暂存 2 待处理 3 已处理 4 我发起的 5 已完成)")
   private Integer type;
   private DrpInterfaceType interfaceType;
   private List<Long> instanceIds;
   private String createBy;
   @ApiModelProperty("审批状态集合")
   private List<Integer> approveStatusList;
   @ApiModelProperty("生产计划单号集合")
   private List<String> productionPlanIdList;
   @ApiModelProperty("拆解状态 1 未分解 2 已分解")
   private Integer decompositionState;
   private List<Long> areaAuth;

   public DrpProductionPlanPageDTO() {
      this.interfaceType = DrpInterfaceType.WEB;
   }

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

   public String getProductionPlanName() {
      return this.productionPlanName;
   }

   public LocalDateTime getStartTime() {
      return this.startTime;
   }

   public LocalDateTime getEndTime() {
      return this.endTime;
   }

   public String getOperatorName() {
      return this.operatorName;
   }

   public LocalDate getProductionPlanStartTime() {
      return this.productionPlanStartTime;
   }

   public LocalDate getProductionPlanEndTime() {
      return this.productionPlanEndTime;
   }

   public List<Long> getAreaIdList() {
      return this.areaIdList;
   }

   public List<Long> getCanteenIdList() {
      return this.canteenIdList;
   }

   public List<Long> getStallIdList() {
      return this.stallIdList;
   }

   public Integer getOrderStatus() {
      return this.orderStatus;
   }

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

   public Integer getType() {
      return this.type;
   }

   public DrpInterfaceType getInterfaceType() {
      return this.interfaceType;
   }

   public List<Long> getInstanceIds() {
      return this.instanceIds;
   }

   public List<Integer> getApproveStatusList() {
      return this.approveStatusList;
   }

   public List<String> getProductionPlanIdList() {
      return this.productionPlanIdList;
   }

   public Integer getDecompositionState() {
      return this.decompositionState;
   }

   public List<Long> getAreaAuth() {
      return this.areaAuth;
   }

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

   public DrpProductionPlanPageDTO setProductionPlanName(final String productionPlanName) {
      this.productionPlanName = productionPlanName;
      return this;
   }

   public DrpProductionPlanPageDTO setStartTime(final LocalDateTime startTime) {
      this.startTime = startTime;
      return this;
   }

   public DrpProductionPlanPageDTO setEndTime(final LocalDateTime endTime) {
      this.endTime = endTime;
      return this;
   }

   public DrpProductionPlanPageDTO setOperatorName(final String operatorName) {
      this.operatorName = operatorName;
      return this;
   }

   public DrpProductionPlanPageDTO setProductionPlanStartTime(final LocalDate productionPlanStartTime) {
      this.productionPlanStartTime = productionPlanStartTime;
      return this;
   }

   public DrpProductionPlanPageDTO setProductionPlanEndTime(final LocalDate productionPlanEndTime) {
      this.productionPlanEndTime = productionPlanEndTime;
      return this;
   }

   public DrpProductionPlanPageDTO setAreaIdList(final List<Long> areaIdList) {
      this.areaIdList = areaIdList;
      return this;
   }

   public DrpProductionPlanPageDTO setCanteenIdList(final List<Long> canteenIdList) {
      this.canteenIdList = canteenIdList;
      return this;
   }

   public DrpProductionPlanPageDTO setStallIdList(final List<Long> stallIdList) {
      this.stallIdList = stallIdList;
      return this;
   }

   public DrpProductionPlanPageDTO setOrderStatus(final Integer orderStatus) {
      this.orderStatus = orderStatus;
      return this;
   }

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

   public DrpProductionPlanPageDTO setType(final Integer type) {
      this.type = type;
      return this;
   }

   public DrpProductionPlanPageDTO setInterfaceType(final DrpInterfaceType interfaceType) {
      this.interfaceType = interfaceType;
      return this;
   }

   public DrpProductionPlanPageDTO setInstanceIds(final List<Long> instanceIds) {
      this.instanceIds = instanceIds;
      return this;
   }

   public DrpProductionPlanPageDTO setApproveStatusList(final List<Integer> approveStatusList) {
      this.approveStatusList = approveStatusList;
      return this;
   }

   public DrpProductionPlanPageDTO setProductionPlanIdList(final List<String> productionPlanIdList) {
      this.productionPlanIdList = productionPlanIdList;
      return this;
   }

   public DrpProductionPlanPageDTO setDecompositionState(final Integer decompositionState) {
      this.decompositionState = decompositionState;
      return this;
   }

   public DrpProductionPlanPageDTO setAreaAuth(final List<Long> areaAuth) {
      this.areaAuth = areaAuth;
      return this;
   }

   public String getCreateBy() {
      return createBy;
   }

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