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

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ozs.common.vo.PageVo;
import com.ozs.system.domain.SysFileInfo;
import com.ozs.system.domain.SysFileRef;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class ProvisionalPlanVo extends PageVo {

    private Date beginTime;
    private Date endTime;
    /**
     * 上传附件
     */
    private List<SysFileRef> sysFileRefs;
    /**
     * 已上传的关联附件信息
     */
    List<SysFileInfo> fileInfos;

    @ApiModelProperty(value = "主键ID")
    private Long planPracticalId;

    @ApiModelProperty(value = "年度计划ID")
    private Long planYearId;

    @NotNull(message = "采购单位不能为空")
    @ApiModelProperty(value = "采购单位（登录账号的单位）")
    private Long purchaseDeptId;

    @NotNull(message = "项目名称不能为空")
    @ApiModelProperty(value = "项目名称")
    private String projectName;

    @ApiModelProperty(value = "项目类型（0：装备类；1：物资类；2：服务类；3：工程类）")
    private String projectType;

    @ApiModelProperty(value = "需求概况")
    private String demandOverview;

    @ApiModelProperty(value = "概算金额(万元（保留小数点后两位）")
    private BigDecimal evaluation;

    @ApiModelProperty(value = "是否为超限额计划(0:未超额，1:超额)")
    private String isExcess;

    @ApiModelProperty(value = "采购服务站")
    private String purchaseServices;

    @ApiModelProperty(value = "采购方式  (0:公开招标, 1:单一来源,2:邀请招标,3:竞争式谈判,4:询价)")
    private String purchaseMode;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划提报需求时间--->需求单位成功提报采购需求的日期（具体到月）")
    private Date planDemandSubTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划完成采购时间--->公示中标结果的日期，即填制中标信息的日期（具体到月）")
    private Date planPurchaseFinishTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "计划交付时间--->供应商完成并交付后，使用单位收到标的日期，即填制建设文档的日期")
    private Date planDeliverTime;

    @ApiModelProperty(value = "项目属性（0:应急应战项目， 1:重大规划任务项目， 2:规划任务项目， 3:一般项目）")
    private String projectAttr;

    @ApiModelProperty(value = "计划调整情况及理由--->如计划需要变更，在填写申请修改时需填写调整情况及理由，审核单位审核通过后显示该信息")
    private String adjustReason;

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

    @ApiModelProperty(value = "项目状态(0:计划待提交，1:计划待审核，2:计划已退回，3:计划已审核)")
    private String projectStatus;

    @ApiModelProperty(value = "退回原因")
    private String refuseReason;

    @ApiModelProperty(value = "0：正常，1：已删除")
    private String delFlay;

    @ApiModelProperty(value = "计划类型（0：季度计划，1：临时计划）")
    private String planType;

    @ApiModelProperty(value = "创建者")
    private String created;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改者")
    private String updated;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    /**
     * 是否显示审核按钮
     */
    private Boolean flag;
}
