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


import com.fasterxml.jackson.annotation.JsonFormat;
import com.ozs.common.annotation.Excel;
import com.ozs.system.domain.SysFileInfo;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author buzhanyi
 */
@Data
public class PlanYearsResponseVo implements Serializable {

    /**
     * 主键编号
     */
    private Long planYearId;
    /**
     * 采购单位（登录账号的单位）
     */
    private String purchaseDeptId;
    /**
     * 采购单位名称
     */
    @Excel(name = "采购单位")
    private String purchaseDeptName;
    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    private String projectName;
    /**
     * 项目名称
     */
    private String projectType;
    @Excel(name = "项目类型")
    private String projectTypeStr;
    /**
     * 需求概况
     */
    @Excel(name = "需求概况")
    private String demandOverview;
    /**
     * 概算金额(万元（保留小数点后两位）
     */
    @Excel(name = "概算金额（万元）")
    private BigDecimal evaluation;
    /**
     * 采购服务站
     */
    private String purchaseServices;
    @Excel(name = "采购服务站")
    private String purchaseServicesStr;
    /**
     * 机关业务指导处(科)
     */
    private String organDivision;
    @Excel(name = "机关业务指导处(科)")
    private String organDivisionStr;
    /**
     * 预算科目
     */
    private String budgetAccount;
    @Excel(name = "预算科目")
    private String budgetAccountStr;
    /**
     * 计划提报需求时间--->需求单位成功提报采购需求的日期（具体到月）
     */
    @Excel(name = "计划提报需求时间", dateFormat = "yyyy-MM")
    @JsonFormat(pattern = "yyyy-MM")
    private Date planDemandSubTime;
    /**
     * 计划完成采购时间--->公示中标结果的日期，即填制中标信息的日期（具体到月）
     */
    @Excel(name = "计划完成采购时间", dateFormat = "yyyy-MM")
    @JsonFormat(pattern = "yyyy-MM")
    private Date planPurchaseFinishTime;
    /**
     * 计划交付时间--->供应商完成并交付后，使用单位收到标的日期，即填制建设文档的日期
     */
    @Excel(name = "计划交付（实施）时间", dateFormat = "yyyy-MM")
    @JsonFormat(pattern = "yyyy-MM")
    private Date planDeliverTime;
    /**
     * 项目属性--->项目属性--->重点采购项目、重大规划任务项目、规划任务项目或一般采购项目
     */
    private String projectAttr;
    @Excel(name = "项目属性")
    private String projectAttrName;
    /**
     * 处理申请撤销
     * 请求根据字段 appDelete 判断，值是true就是已申请
     */
    private String appDelete;
    /**
     * 是否可以申请撤销
     * 请求根据字段 appDeleteDo 判断，值是true就是可以申请
     */
    private String appDeleteDo;
    /**
     * 退回原因--->审核不通过就是退回
     */
    private String refuseReason;
    /**
     * 滞后原因
     */
    private String delayReason;
    /**
     * 计划调整情况及理由--->如计划需要变更，在填写申请修改时需填写调整情况及理由，审核单位审核通过后显示
     */
    private String adjustReason;
    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;
    /**
     * 项目状态--->包括计划待提交、计划待审核、计划已退回、计划已审核
     * (0:计划待提交，1:计划待审核，2:计划已退回，3:计划已审核)
     */
    private String projectStatus;
    @Excel(name = "项目状态")
    private String projectStatusStr;
    /**
     * 发函状态（0：未发函或已处理，1：确认发函）
     */
    private String sendLetter;
    /**
     * 发函内容
     */
    private String letterStr;
    /**
     * 发函时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date letterTime;
    /**
     * 已上传的关联附件信息
     */
    List<SysFileInfo> fileInfos;
    /**
     * 逻辑删除字段--->（0：正常，1：已删除）
     */
    private Integer delFlay;
    /**
     * 待办事项提示信息
     */
    private String tipsMessage;
    /**
     * 是否显示审核按钮（true:显示，false：不显示）
     */
    private Boolean flag;
}
