package com.ozs.pm.doman.vo.requestVo;

import com.ozs.common.vo.PageVo;
import com.ozs.system.domain.SysFileRef;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;


/**
 * 采购需求对象 pm_demand
 *
 * @author ruoyi
 * @date 2023-01-16
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel("采购需求查询对象")
public class PmDemandReqVo extends PageVo {
    /**
     * 主键
     */
    @ApiModelProperty("主键")
    private Long demandId;

    /**
     * 项目名称
     */
    @ApiModelProperty("项目名称")
    private String projectName;

    /**
     * 采购服务站
     */
    @ApiModelProperty("采购服务站")
    private String purchaseServices;


    /**
     * 项目状态(4:需求待填制，5:需求待提交，6:需求待审核，7:任务待下达，8:任务已下达，9:中标信息待填制，10:中标信息已填制，11:合同待填制，12:合同已填制，13:项目建设中，14:项目建设完成)
     */
    @ApiModelProperty("项目状态(4:需求待填制，5:需求待提交，6:需求待审核，7:任务待下达，8:任务已下达，9:中标信息待填制，10:中标信息已填制，11:合同待填制，12:合同已填制，13:项目建设中，14:项目建设完成)")
    private Long projectStatus;

    /**
     * 预警状态(0:正常，1:需求提报预警，2:采购完成预警,3:计划交付预警
     */
    @ApiModelProperty("预警状态(0:正常，1:需求提报预警，2:采购完成预警,3:计划交付预警")
    private String warnStatus;

    /**
     * 是否为超限额计划(0:未超额，1:超额)
     */
    @ApiModelProperty("是否为超限额计划(0:未超额，1:超额)")
    private Integer isExcess;

    /**
     * 开始日期
     */
    @ApiModelProperty("开始日期 yyyy-MM-dd")
    private String beginDate;

    /**
     * 结束日期
     */
    @ApiModelProperty("结束日期 yyyy-MM-dd")
    private String endDate;

    /**
     * 退回原因
     */
    @ApiModelProperty("退回原因")
    private String refuseReason;
    /**
     * 更改者
     */
    @ApiModelProperty("更改者")
    private String updateBy;

    /**
     * 上传附件
     */
    @ApiModelProperty("上传附件")
    private List<SysFileRef> sysFileRefs;

    /**
     * 流程图中的模块名称
     */
    @ApiModelProperty("流程图中的模块名称")
    private String moduleName;

    /**
     * 查看详情的类型
     */
    @ApiModelProperty("详情类型，1项目计划，2需求建档，3任务下达,4中标信息，5合同信息，6建设情况")
    private String detailType;

    @ApiModelProperty("采购单位（登录账号的单位）")
    private Integer purchaseDeptId;

    /**
     * 金额
     */
    private Integer evaluation;
    private Integer evaluationEnd;

    /**
     * 查询统计参数，年、季度、月
     */
    private Integer year, quarter, month;

    @ApiModelProperty("统计时间类型 1：年度，2：季度，3：月份")
    private String timeType;

    @ApiModelProperty("项目类型列表")
    private List<String> projectStatusList;

    private Long deptId;

    private Long userId;
}
