package com.ozs.home.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ozs.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 查询系统首页待办事项的返回数据对象
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel("系统首页待办事项计划与项目数据融合对象")
public class HomeToDoQueryResVo implements Serializable {

    /**
     * 季度计划id
     */
    private Long planPracticalId;
    /**
     * 年度计划id（年度计划审批后同步到季度计划）
     */
    private Long planYearId;
    /**
     * 项目id
     */
    private Long demandId;

    /**
     * 项目关联计划ID
     */
    @Excel(name = "计划ID")
    @ApiModelProperty("计划ID")
    private Long planId;

    /**
     * 采购单位（登录账号的单位名称）
     */
    @ApiModelProperty("采购单位（登录账号的单位名称）")
    private String purchaseDeptName;


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

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

    /**
     * 项目类型名（0：装备类；1：物资类；2：服务类；3：工程类）
     */
    @Excel(name = "项目类型名（0：装备类；1：物资类；2：服务类；3：工程类）")
    @ApiModelProperty("项目类型名（0：装备类；1：物资类；2：服务类；3：工程类）")
    private String projectTypeName;

    /**
     * 需求概况
     */
    @Excel(name = "需求概况")
    @ApiModelProperty("需求概况")
    private String demandOverview;

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

    /**
     * 计划提报需求时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划提报需求时间")
    @ApiModelProperty("计划提报需求时间")
    private Date planDemandSubTime;

    /**
     * 计划完成采购时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成采购时间")
    @ApiModelProperty("计划完成采购时间")
    private Date planPurchaseFinishTime;

    /**
     * 计划交付时间-
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划交付时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("计划交付时间")
    private Date planDeliverTime;
    /**
     * 计划类型（0：季度计划，1：临时计划）
     */
    private Integer planType;
    /**
     * 待办事项提示信息
     */
    private String tipsMessage;
    /**
     * 项目状态(4:需求待填制，5:需求待提交，6:需求待审核，7:任务待下达，8:任务已下达，9:中标信息待填制，10:中标信息已填制，11:合同待填制，12:合同已填制，13:项目建设中，14:项目建设完成)
     */
    @ApiModelProperty("项目状态(4:需求待填制，5:需求待提交，6:需求待审核，7:任务待下达，8:任务已下达，9:中标信息待填制，10:中标信息已填制，11:合同待填制，12:合同已填制，13:项目建设中，14:项目建设完成)")
    private String projectStatus;
    /**
     * 项目状态名称
     */
    @ApiModelProperty("项目状态名称")
    private String projectStatusName;
    /**
     * 项目是否滞后
     */
    private String isExceedProject;
    /**
     * 首页是否显示填写滞后原因
     */
    private String isWriteExceed;
    /**
     * 已发函计划 的发函内容
     */
    private String letterStr;
    /**
     * 发函时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date letterTime;
}
