package com.ozs.pm.doman;

import java.io.Serializable;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * 采购需求对象 pm_demand
 *
 * @author ruoyi
 * @date 2023-01-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("pm_demand")
@ApiModel(value = "采购需求表", description = "")
public class PmDemand implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(value = "DEMAND_ID", type = IdType.AUTO)
    private Long demandId;

    /** 计划ID */
    @ApiModelProperty("计划ID")
    @TableField("PLAN_ID")
    private Long planId;

    /** 采购单位（登录账号的单位） */
    @ApiModelProperty("采购单位（登录账号的单位）")
    @TableField("PURCHASE_DEPT_ID")
    private Long purchaseDeptId;

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

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

    /** 需求概况 */
    @ApiModelProperty("需求概况")
    @TableField("DEMAND_OVERVIEW")
    private String demandOverview;

    /** 概算金额(万元（保留小数点后两位） */
    @ApiModelProperty("概算金额(万元（保留小数点后两位）")
    @TableField("EVALUATION")
    private Double evaluation;

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

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

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

    /** 计划提报需求时间--->需求单位成功提报采购需求的日期（具体到月） */
    @ApiModelProperty("计划提报需求时间--->需求单位成功提报采购需求的日期（具体到月）")
    @TableField("PLAN_DEMAND_SUB_TIME")
    private Date planDemandSubTime;

    /** 计划完成采购时间--->公示中标结果的日期，即填制中标信息的日期（具体到月） */
    @ApiModelProperty("计划完成采购时间--->公示中标结果的日期，即填制中标信息的日期（具体到月）")
    @TableField("PLAN_PURCHASE_FINISH_TIME")
    private Date planPurchaseFinishTime;

    /** 计划交付时间--->供应商完成并交付后，使用单位收到标的日期，即填制建设文档的日期 */
    @ApiModelProperty("计划交付时间--->供应商完成并交付后，使用单位收到标的日期，即填制建设文档的日期")
    @TableField("PLAN_DELIVER_TIME")
    private Date planDeliverTime;

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

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

    /** 备注 */
    @ApiModelProperty("备注")
    @TableField("REMARKS")
    private String remarks;

    /** 实际提报需求时间--->需求单位成功提报采购需求的日期（具体到日） */
    @ApiModelProperty("实际提报需求时间--->需求单位成功提报采购需求的日期（具体到日）")
    @TableField("REAL_DEMAND_COMMIT_TIME")
    private Date realDemandCommitTime;

    /** 实际完成采购时间--->上传中标通知书的日期（具体到日） */
    @ApiModelProperty("实际完成采购时间--->上传中标通知书的日期（具体到日）")
    @TableField("REAL_PURCHASE_FINISH_TIME")
    private Date realPurchaseFinishTime;

    /** 实际交付（实施）时间--->供应商完成并交付后，使用单位收到标的日期，即填制建设文档的日期 */
    @ApiModelProperty("实际交付（实施）时间--->供应商完成并交付后，使用单位收到标的日期，即填制建设文档的日期")
    @TableField("REAL_DELIVER_TIME")
    private Date realDeliverTime;

    /** 审核时间 */
    @ApiModelProperty("审核时间")
    @TableField("AUDIT_TIME")
    private Date auditTime;

    /** 预警状态(0:正常，1:预警) */
    @ApiModelProperty("预警状态(0:正常，1:预警)")
    @TableField("WARN_STATUS")
    private String warnStatus;

    /**
     * 项目状态(4:需求待填制，5:需求待提交，6:需求待审核，7:任务待下达，8:任务已下达，9:中标信息待填制，10:中标信息已填制，11:合同待填制，12:合同已填制，13:项目建设中，14:项目建设完成)
     */
    @ApiModelProperty("项目状态(4:需求待填制，5:需求待提交，6:需求待审核，7:需求已退回，8:任务待下达，9:待选取代理，10:待上传招标文件,11:待发布公告,12:待开标,13:待发布中标公告,14:中标公示中,15:合同待填制，16:项目建设中，17:项目已完成)")
    @TableField("PROJECT_STATUS")
    private String projectStatus;

    /** 退回原因 */
    @ApiModelProperty("退回原因")
    @TableField("REFUSE_REASON")
    private String refuseReason;

    /** 滞后原因 */
    @ApiModelProperty("滞后原因")
    @TableField("DELAY_REASON")
    private String delayReason;

    /** 调整建议 */
    @ApiModelProperty("调整建议")
    @TableField("ADJUST_ADVICE")
    private String adjustAdvice;

    /** 抽取招标代理机构id */
    @ApiModelProperty("抽取招标代理机构id")
    @TableField("AGENCY_ID")
    private Long agencyId;

    /** 抽取招标代理机构时间 */
    @ApiModelProperty("抽取招标代理机构时间")
    @TableField("EXTRACT_AGENCY_TIME")
    private Date extractAgencyTime;


    @ApiModelProperty("0：没有关联专家，1：有关联专家")
    @TableField("HAS_EXPERT")
    private String hasExpert;

    /** 调整建议 */
    @ApiModelProperty("是否有质疑，1是，0否")
    @TableField("CALL_QUESTION")
    private String callQuestion;
    @ApiModelProperty("创建者")
    @TableField("CREATE_BY")
    private String createBy;


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


    @ApiModelProperty("更新者")
    @TableField("UPDATE_BY")
    private String updateBy;


    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("UPDATE_TIME")
    private Date updateTime;
}
