package com.yiboshi.science.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yiboshi.science.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

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

/**
 * 项目表VO
 * 
 * @author lkl
 * @version 2021-08-26
 */
@Data
@EqualsAndHashCode(callSuper=true)
@ApiModel(description = "项目表VO")
public class ComProjectBasic extends BaseEntity {
    /** 项目Id */
    @ApiModelProperty(value="项目Id")
    @Length(max=36, message = "Id不能大于36")
    private String projId;
    /** 单位名称 */
    @ApiModelProperty(value = "单位名称", position = 12)
    @Length(max=200, message = "单位名称不能大于200")
    private String appUnitName;
    /** 通讯地址 */
    @ApiModelProperty(value = "通讯地址", position = 13)
    @Length(max=200, message = "通讯地址不能大于200")
    private String address;
    /** 邮编 */
    @ApiModelProperty(value = "邮编", position = 3 )
    @Length(max=10, message = "邮编不能大于10")
    private String postCode;
    /** 统一社会信用代码 */
    @ApiModelProperty(value = "统一社会信用代码", position = 3 )
    @Length(max=50, message = "统一社会信用代码不能大于50")
    private String creditCode;
    /** 单位性质 */
    @ApiModelProperty(value = "单位性质", position = 1 )
    @Length(max=36, message = "单位性质不能大于36")
    private String nature;
    /** 电话 */
    @ApiModelProperty(value = "电话", position = 14)
    @Length(max=200, message = "电话不能大于200")
    private String telephone;
    /** 手机 */
    @ApiModelProperty(value = "手机", position = 15)
    @Length(max=200, message = "手机不能大于200")
    private String mobile;
    /** 电子邮件 */
    @ApiModelProperty(value = "电子邮件", position = 16)
    @Length(max=200, message = "电子邮件不能大于200")
    private String email;
    /** 姓名(项目联系人) */
    @ApiModelProperty(value = "姓名(项目联系人)", position = 16)
    @Length(max=200, message = "姓名(项目联系人)不能大于200")
    private String linkName;
    /** 工作单位(项目联系人) */
    @ApiModelProperty(value = "工作单位(项目联系人)", position = 16)
    @Length(max=200, message = "工作单位(项目联系人)不能大于200")
    private String linkUnit;
    /** 手机号码(项目联系人) */
    @ApiModelProperty(value = "手机号码(项目联系人)", position = 16)
    @Length(max=200, message = "手机号码(项目联系人)不能大于200")
    private String linkMobile;
    /** 电子邮箱(项目联系人) */
    @ApiModelProperty(value = "电子邮箱(项目联系人)", position = 16)
    @Length(max=200, message = "电子邮箱(项目联系人)不能大于200")
    private String linkEmail;
    /** 所属技术领域 */
    @ApiModelProperty(value = "所属技术领域", position = 12)
    @Length(max=200, message = "系所属技术领域不能大于1000")
    private String technicalField;
    /** 年度报告 */
    @ApiModelProperty(value = "年度报告", position = 12)
    @Length(max=200, message = "年度报告不能大于9999")
    private Integer annualTechnologyReport;
    /** 中期技术报告 */
    @ApiModelProperty(value = "中期技术报告", position = 12)
    @Length(max=200, message = "中期技术报告不能大于9999")
    private Integer midTechnicalReport;
    /** 最终技术报告 */
    @ApiModelProperty(value = "最终技术报告", position = 12)
    @Length(max=200, message = "最终技术报告不能大于9999")
    private Integer finalTechnicalReport;
    /** 项目摘要 */
    @ApiModelProperty(value = "项目摘要", position = 13 )
    @Length(max=600, message = "项目摘要不能大于300")
    private String projAbstract;
    /** 投资总额 */
    @ApiModelProperty(value = "投资总额", position = 39)
    private BigDecimal totalFunding;
    /** 卫生健康委资助 */
    @ApiModelProperty(value = "卫生健康委资助", position = 40)
    private BigDecimal govFunding;
    /** 单位配套 */
    @ApiModelProperty(value = "单位配套", position = 41)
    private BigDecimal unitFunding;
    /** 自筹 */
    @ApiModelProperty(value = "自筹", position = 42)
    private BigDecimal selfFunding;
    /** 其他 */
    @ApiModelProperty(value = "其他", position = 43)
    private BigDecimal otherFunding;
    /** 国内外研究进展 */
    @ApiModelProperty(value = "国内外研究进展", position = 30 )
    @Length(max=2147483647, message = "国内外研究进展不能大于2147483647")
    private String researchProgress;
    /** 研发内容/研究内容和研究目标,拟解决的关键问题 */
    @ApiModelProperty(value = "研发内容/研究内容和研究目标,拟解决的关键问题", position = 28 )
    @Length(max=2147483647, message = "研发内容/研究内容和研究目标,拟解决的关键问题不能大于2147483647")
    private String researchContent;
    /** 研究思路、方法、技术路线、实验方案及可行性分析 */
    @ApiModelProperty(value = "研究思路、方法、技术路线、实验方案及可行性分析", position = 29 )
    @Length(max=2147483647, message = "研究思路、方法、技术路线、实验方案及可行性分析不能大于2147483647")
    private String researchPlan;
    /** 创新点/项目的特色和创新之处 */
    @ApiModelProperty(value = "创新点/项目的特色和创新之处", position = 31 )
    @Length(max=2147483647, message = "创新点/项目的特色和创新之处不能大于2147483647")
    private String mainFeatures;
    /** 先进性 */
    @ApiModelProperty(value = "先进性", position = 31 )
    @Length(max=2147483647, message = "先进性不能大于2147483647")
    private String progressiveness;
    /** 申报单位、参与单位科研条件支撑状况 */
    @ApiModelProperty(value = "申报单位、参与单位科研条件支撑状况", position = 31 )
    @Length(max=2147483647, message = "申报单位、参与单位科研条件支撑状况不能大于2147483647")
    private String supportingConditions;
    /** 负责人及研究团队的科研水平及前期研究基础/申请者和项目组主要成员研究工作简历 */
    @ApiModelProperty(value = "负责人及研究团队的科研水平及前期研究基础/申请者和项目组主要成员研究工作简历", position = 35 )
    @Length(max=2147483647, message = "负责人及研究团队的科研水平及前期研究基础不能大于2147483647")
    private String memResume;
    /** 技术指标 */
    @ApiModelProperty(value = "技术指标", position = 35 )
    @Length(max=2147483647, message = "技术指标不能大于2147483647")
    private String technologyTarget;
    /** 经济指标 */
    @ApiModelProperty(value = "经济指标", position = 35 )
    @Length(max=2147483647, message = "经济指标不能大于2147483647")
    private String economyTarget;
    /** 成果指标 */
    @ApiModelProperty(value = "成果指标", position = 35 )
    @Length(max=2147483647, message = "成果指标不能大于2147483647")
    private String achievementTarget;
    /** 社会效益 */
    @ApiModelProperty(value = "社会效益", position = 35 )
    @Length(max=2147483647, message = "社会效益不能大于2147483647")
    private String socialBenefit;
    /** 其他目标与考核指标 */
    @ApiModelProperty(value = "其他目标与考核指标", position = 35 )
    @Length(max=2147483647, message = "其他目标与考核指标不能大于2147483647")
    private String otherTarget;
    /** (项目负责人主要成就、发明及获奖情况 */
    @ApiModelProperty(value = "项目负责人主要成就、发明及获奖情况", position = 1 )
    @Length(max=2147483647, message = "项目负责人主要成就、发明及获奖情况不能大于2147483647")
    private String awardSituation;

    /** 系、所、科室 */
    @ApiModelProperty(value = "系、所、科室", position = 12)
    @Length(max=200, message = "系、所、科室不能大于200")
    private String dept;
    /** 预期成果形式 */
    @ApiModelProperty(value = "预期成果形式", position = 3 )
    @Length(max=36, message = "预期成果形式不能大于36")
    private String anticipatedForms;
    /** 申请金额 */
    @ApiModelProperty(value = "申请金额", position = 12 )
    private BigDecimal applyMoney;
    /** 主题词 */
    @ApiModelProperty(value = "主题词", position = 26 )
    @Length(max=200, message = "主题词不能大于200")
    private String projKeywords;
    /** 主题词(英文) */
    @ApiModelProperty(value = "主题词(英文)", position = 26 )
    @Length(max=200, message = "主题词(英文)不能大于200")
    private String keywordsEnglish;
    /** 参考文献 */
    @ApiModelProperty(value = "参考文献", position = 14)
    @Length(max=5000, message = "参考文献不能大于5000")
    private String projReference;
    /** 立项依据 */
    @ApiModelProperty(value = "立项依据", position = 27 )
    @Length(max=2147483647, message = "立项依据不能大于2147483647")
    private String projBasis;
    /** 研发内容/主要研究内容和意义 */
    @ApiModelProperty(value = "主要研究内容和意义", position = 13 )
    @Length(max=2147483647, message = "主要研究内容和意义不能大于2147483647")
    private String projContent;
    /** 研究进度计划 */
    @ApiModelProperty(value = "研究进度计划", position = 30 )
    @Length(max=2147483647, message = "研究进度计划不能大于2147483647")
    private String studyPlan;
    /** 预期研究成果 */
    @ApiModelProperty(value = "预期研究成果", position = 32 )
    @Length(max=2147483647, message = "预期研究成果不能大于2147483647")
    private String expectedResults;
    /** 研究工作积累和已取得的研究工作成绩 */
    @ApiModelProperty(value = "研究工作积累和已取得的研究工作成绩", position = 33 )
    @Length(max=2147483647, message = "研究工作积累和已取得的研究工作成绩不能大于2147483647")
    private String workFoundation;
    /** 实验条件和资料 */
    @ApiModelProperty(value = "实验条件和资料", position = 34 )
    @Length(max=2147483647, message = "实验条件和资料不能大于2147483647")
    private String workingConditions;
    /** 申请者正在承担的其它研究项目 */
    @ApiModelProperty(value = "申请者正在承担的其它研究项目", position = 14 )
    @Length(max=1000, message = "申请者正在承担的其它研究项目1000")
    private String researchProjects;
    @ApiModelProperty(value = "报告正文", position = 36 )
    @Length(max=2147483647, message = "报告正文不能大于2147483647")
    private String projDoc;
    /** 否选择接受立项不资助 */
    @ApiModelProperty(value = "是否选择接受立项不资助", position = 1 )
    @Length(max=4, message = "是否选择接受立项不资助不能大于4")
    private String isAccept;
    /** 是否存在境外机构或人员参与 */
    @ApiModelProperty(value = "是否存在境外机构或人员参与", position = 1 )
    @Length(max=4, message = "是否存在境外机构或人员参与不能大于4")
    private String isOverseas;
    /** 是否可实现成果转化或临床应用 */
    @ApiModelProperty(value = "是否可实现成果转化或临床应用", position = 1)
    @Length(max=4, message = "是否可实现成果转化或临床应用不能大于4")
    private String isAchieve;
    /** (存在境外机构或人员)备注 */
    @ApiModelProperty(value = "(存在境外机构或人员)备注", position = 1 )
    @Length(max=400, message = "(存在境外机构或人员)备注不能大于400")
    private String overseasRemark;
    /** 备注 */
    @ApiModelProperty(value = "备注", position = 38 )
    @Length(max=65535, message = "备注不能大于65535")
    private String remark;
}