package com.hz.pm.api.projectlib.model.po;

import com.baomidou.mybatisplus.annotation.*;
import com.hz.pm.api.common.compare.Compare;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 项目所有并集
 * </p>
 *
 * @author ZPF
 * @since 2023-09-26
 */
@Data
@ApiModel(value = "NdProject对象")
public class ProjectPO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("来源 1申报项目 2项目归集")
    private String fromType;

    @ApiModelProperty("主键")
    private Long id;

    @ApiModelProperty("所属地区编号")
    @Compare("所属地区编号")
    private String areaCode;

    @ApiModelProperty("所属地区名称")
    @Compare("所属地区名称")
    private String area;

    @ApiModelProperty("项目阶段")
    private Integer stage;

    @ApiModelProperty("项目状态")
    private Integer status;

    @ApiModelProperty("项目名称")
    @Compare("项目名称")
    private String projectName;

    @ApiModelProperty("历年项目名称")
    private String baseHistorProjName;

    @ApiModelProperty("'历年项目编码'")
    private String baseHistorProjId;

    @ApiModelProperty("历年项目年度")
    private String baseHistorProjYear;

    @ApiModelProperty("预算来源说明")
    private String baseBasisAmountOri;

    @ApiModelProperty("是否临时增补 0:否 1:是")
    @Compare("是否临时增补")
    private Integer isTemporaryAugment;

    @ApiModelProperty("项目负责人")
    @Compare("项目负责人")
    private String responsibleMan;

    @ApiModelProperty("负责人手机号码")
    @Compare("负责人手机号码")
    private String responsibleManMobile;

    @ApiModelProperty("项目联系人")
    @Compare("项目联系人")
    private String contactName;

    @ApiModelProperty("项目联系人手机号码")
    @Compare("项目联系人手机号码")
    private String contactPhone;

    @ApiModelProperty("建设单位名称")
    @Compare("建设单位名称")
    private String buildOrgName;

    @ApiModelProperty("建设单位统一社会信用代码")
    @Compare("建设单位统一社会信用代码")
    private String orgCreditCode;

    @ApiModelProperty("公司编码code")
    @Compare("公司编码code")
    private String buildOrgCode;

    @ApiModelProperty("建设单位浙政钉ID")
    @Compare("建设单位浙政钉ID")
    private String buildOrgZheJiangGovDingId;

    @ApiModelProperty("项目类型 01:首次建设 02:迭代升级 03:结转建设 04新运维 05续运维")
    @Compare("项目类型")
    private String projectType;

    @ApiModelProperty("是否省级 1省级 2非省级")
    private Integer baseProvManDeprtType;

    @ApiModelProperty("是否首次新建 0:否 1:是")
    @Compare("是否首次新建")
    private Integer isFirst;

    @ApiModelProperty("项目预算年度")
    @Compare("项目预算年度")
    private Integer projectYear;

    @ApiModelProperty("项目建设起始时间")
    @Compare("项目建设起始时间")
    private String beginTime;

    @ApiModelProperty("项目建设终止时间")
    @Compare("项目建设终止时间")
    private String endTime;

    @ApiModelProperty("四大体系 1:业务应用 2:应用支撑 3:数据资源 4:基础设施")
    @Compare("四大体系")
    private Integer fourSystems;

    @ApiModelProperty("是否数字化改革项目 0:否 1:是")
    @Compare("是否数字化改革项目")
    private Integer isDigitalReform;

    @ApiModelProperty("综合业务领域 1: '党政机关整体智治',2: '数字政府',3: '数字经济',4: '数字社会',7: '数字文化',5: '数字法治',6: '一体化智能化公共数据平台', 8: '基层智治'")
    @Compare("综合业务领域")
    private Integer bizDomain;

    @ApiModelProperty("建设层级 P省级 M市级 C县级 T乡镇级 V村级")
    @Compare("建设层级")
    private String buildLevel;

    @ApiModelProperty("贯通层级 P省级 M市级 C县级 T乡镇级 V村级")
    @Compare("贯通层级")
    private String lowestLevel;

    @ApiModelProperty("立项依据")
    @Compare("立项依据")
    private String buildBasis;

    @ApiModelProperty("立项依据说明")
    private String baseBasisEstablish;

    @ApiModelProperty("发改编码")
    @Compare("发改编码")
    private String developCode;

    @ApiModelProperty("财政编码")
    @Compare("财政编码")
    private String financialCode;

    @ApiModelProperty("是否上云 0:否 1:是")
    @Compare("是否上云")
    private Integer isCloud;

    @ApiModelProperty("云类型")
    @Compare("云类型")
    private String cloudType;

    @ApiModelProperty("等保级别 1:一级 2:二级 3:三级 4:四级 5:五级")
    @Compare("等保级别")
    private Integer protectionLevel;

    @ApiModelProperty("是否密评 0:否 1:是")
    @Compare("是否密评")
    private Integer isSecretComments;

    @ApiModelProperty("项目简介")
    @Compare("项目简介")
    private String projectIntroduction;

    @ApiModelProperty("资金申报情况-申报金额(万元)")
    @Compare("资金申报情况-申报金额")
    private BigDecimal declareAmount;

    @ApiModelProperty("资金申报情况-自有金额(万元)")
    @Compare("资金申报情况-自有金额")
    private BigDecimal declareHaveAmount;

    @ApiModelProperty("资金申报情况-政府投资-本级财政资金(万元)")
    @Compare("资金申报情况-政府投资-本级财政资金")
    private BigDecimal declareGovOwnFinanceAmount;

    @ApiModelProperty("资金申报情况-政府投资-上级补助资金(万元)")
    @Compare("资金申报情况-政府投资-上级补助资金")
    private BigDecimal declareGovSuperiorFinanceAmount;

    @ApiModelProperty("银行贷款(万元)")
    @Compare("银行贷款")
    private BigDecimal declareBankLendingAmount;

    @ApiModelProperty("其它资金(万元)")
    @Compare("其它资金")
    private BigDecimal declareOtherAmount;

    @ApiModelProperty("资金分配情况-软件开发(万元)")
    @Compare("资金分配情况-软件开发")
    private BigDecimal softwareDevelopmentAmount;

    @ApiModelProperty("资金分配情况-云资源、硬件购置(万元)")
    @Compare("资金分配情况-云资源、硬件购置")
    private BigDecimal cloudHardwarePurchaseAmount;

    @ApiModelProperty("资金分配情况-第三方服务(万元)")
    @Compare("资金分配情况-第三方服务")
    private BigDecimal thirdPartyAmount;

    @ApiModelProperty("年度支付计划-年度支付计划(万元)")
    @Compare("年度支付计划-年度支付计划")
    private BigDecimal annualPlanAmount;

    @ApiModelProperty("年度支付计划-自有金额(万元)")
    @Compare("年度支付计划-自有金额")
    private BigDecimal annualPlanHaveAmount;

    @ApiModelProperty("年度支付计划-政府投资-本级财政资金(万元)")
    @Compare("年度支付计划-政府投资-本级财政资金")
    private BigDecimal annualPlanGovOwnFinanceAmount;

    @ApiModelProperty("年度支付计划-政府投资-上级补助资金(万元)")
    @Compare("年度支付计划-政府投资-上级补助资金")
    private BigDecimal annualPlanGovSuperiorFinanceAmount;

    @ApiModelProperty("年度支付计划-银行贷款(万元)")
    @Compare("年度支付计划-银行贷款")
    private BigDecimal annualPlanBankLendingAmount;

    @ApiModelProperty("年度支付计划-其它资金(万元)")
    @Compare("年度支付计划-其它资金")
    private BigDecimal annualPlanOtherAmount;

    @ApiModelProperty("立项批复总投资(万元)")
    @Compare("立项批复总投资")
    private BigDecimal approvalAmount;

    @ApiModelProperty("立项批复总预算(万元)")
    @Compare("立项批复总预算")
    private BigDecimal approvalBudget;

    @ApiModelProperty("年度计划添加时间")
    @Compare("年度计划添加时间")
    private LocalDateTime annualPlanAddTime;

    @ApiModelProperty("核心业务-核心业务模块")
    @Compare("核心业务-核心业务模块")
    private String coreBusiness;

    @ApiModelProperty("安全投入-投入项")
    @Compare("安全投入-投入项")
    private String safetyInputTitle;

    @ApiModelProperty("安全投入-内容描述")
    @Compare("安全投入-内容描述")
    private String safetyInputDescribe;

    @ApiModelProperty("安全投入-金额(万元)")
    @Compare("安全投入-金额")
    private BigDecimal safetyInputAmount;

    @ApiModelProperty("附件-初步方案")
    @Compare("附件-初步方案")
    private String preliminaryPlanFile;

    @ApiModelProperty("附件-佐证材料")
    @Compare("附件-佐证材料")
    private String supportingMaterialsFile;

    @ApiModelProperty("附件-项目总投资测算明细")
    @Compare("附件-项目总投资测算明细")
    private String calculationTotalInvestmentFile;

    @ApiModelProperty("附件-申报单位主要职责（单位三定方案）")
    @Compare("附件-申报单位主要职责（单位三定方案）")
    private String mainResponsibilitiesApplicantFile;

    @ApiModelProperty("备注")
    @Compare("备注")
    private String projectRemarks;

    @ApiModelProperty("是否包含应用 0:否 1:是")
    @Compare("是否包含应用")
    private Integer includeApplication;

    @ApiModelProperty("工程形象进度-第一季度")
    @Compare("工程形象进度-第一季度")
    private String engineeringSpeedOne;

    @ApiModelProperty("工程形象进度-第二季度")
    @Compare("工程形象进度-第二季度")
    private String engineeringSpeedTwo;

    @ApiModelProperty("工程形象进度-第三季度")
    @Compare("工程形象进度-第三季度")
    private String engineeringSpeedThree;

    @ApiModelProperty("工程形象进度-第四季度")
    @Compare("工程形象进度-第四季度")
    private String engineeringSpeedFour;

    @ApiModelProperty("核心业务-是否开启核心业务模块 false:关闭 true:开启")
    @Compare("核心业务-是否开启核心业务模块")
    private Boolean isOpenCoreBusiness;

    @ApiModelProperty("安全投入-是否开启安全投入模块 false:关闭 true:开启")
    @Compare("安全投入-是否开启安全投入模块")
    private Boolean isOpenSafetyInput;

    @ApiModelProperty("工程形象进度-是否开启 false:关闭 true:开启")
    @Compare("工程形象进度-是否开启")
    private Boolean isEngineeringSpeed;

    @ApiModelProperty("附件-是否开启 false:关闭 true:开启")
    @Compare("附件-是否开启")
    private Boolean isAccessories;

    @ApiModelProperty("备注-是否开启 false:关闭 true:开启")
    @Compare("备注-是否开启")
    private Boolean isRemarks;

    @ApiModelProperty("年度支付计划-是否开启 false:关闭 true:开启")
    @Compare("年度支付计划-是否开启")
    private Boolean isAnnualPlanAmount;

    @ApiModelProperty("一地创新全省共享项目-是否开启 false:关闭 true:开启")
    @Compare("一地创新全省共享项目-是否开启")
    private Boolean isInnovateWholeProvinceShare;

    private LocalDateTime createOn;
    private LocalDateTime updateOn;

    @ApiModelProperty("流程实例编号")
    private String instCode;

    @ApiModelProperty("安全投入-模块信息")
    @Compare("安全投入-模块信息")
    private String safetyInputModular;

    @ApiModelProperty("项目申报pdf")
    @Compare("项目申报pdf")
    private String projectPdf;

    @ApiModelProperty("立项申报pdf")
    @Compare("立项申报pdf")
    private String declarationPdf;

    @ApiModelProperty("建设周期（月）")
    @Compare("建设周期（月）")
    private String buildCycle;

    @ApiModelProperty("原始建设周期（月）")
    @Compare("建设周期（月）")
    private Integer originBuildCycle;

    @ApiModelProperty("建设方案文件")
    @Compare("建设方案文件")
    private String constructionPlanFile;

    @ApiModelProperty("立项批复建设方案文件")
    @Compare("立项批复建设方案文件")
    private String approvedConstructionPlanFile;

    @ApiModelProperty("立项批复文件")
    @Compare("立项批复文件")
    private String approvedFile;

    @ApiModelProperty("立项批复时间")
    @Compare("立项批复时间")
    private LocalDateTime approvalDate;

    @ApiModelProperty("批复金额")
    @Compare("批复金额")
    private BigDecimal approvedTotalInvestmentIncrease;

    @ApiModelProperty("是否有上级条线主管部门 0没有 1有")
    @Compare("是否有上级条线主管部门")
    private Integer isHigherSuperOrg;

    @ApiModelProperty("上级条线主管部门")
    @Compare("上级条线主管部门")
    private String higherSuperOrg;

    @ApiModelProperty("上级主管部门Code")
    @Compare("上级主管部门Code")
    private String higherSuperOrgCode;

    @ApiModelProperty("是否有主管部门 0没有 1有")
    @Compare("是否有主管部门")
    private Integer isSuperOrg;

    @ApiModelProperty("主管部门名称")
    @Compare("主管部门名称")
    private String superOrg;

    @ApiModelProperty("主管部门Code")
    @Compare("主管部门Code")
    private String superOrgCode;

    @ApiModelProperty("主管单位统一社会信用代码")
    @Compare("主管单位统一社会信用代码")
    private String superOrgCreditCode;

    @ApiModelProperty("前端所需验证字段")
    @Compare("前端所需验证字段")
    private String allApplicationsDone;

    @ApiModelProperty("流程状态")
    @Compare("流程状态")
    private Integer processStatus;

    @ApiModelProperty("动态表单 json")
    @Compare("动态表单 json")
    private String dynamicForm;

    @ApiModelProperty("项目发起人 员工code")
    @Compare("项目发起人 员工code")
    private String sponsor;

    @ApiModelProperty("预审发起人 员工code")
    @Compare("预审发起人 员工code")
    private String preStartUserId;

    @ApiModelProperty("上级条线单位审核意见")
    @Compare("上级条线单位审核意见")
    private String higherLineSuperOrgReviewComments;

    @TableField(fill = FieldFill.INSERT)
    private Long createBy;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateBy;

    @ApiModelProperty("项目预审申请单文件ID")
    @Compare("项目预审申请单文件ID")
    private Long pretrialFileId;

    @ApiModelProperty("项目预审申请单文件名")
    @Compare("项目预审申请单文件名")
    private String pretrialFileName;

    @ApiModelProperty("项目建设方案申请单文件ID")
    @Compare("项目建设方案申请单文件ID")
    private Long constructFileId;

    @ApiModelProperty("项目建设方案申请单文件名")
    @Compare("项目建设方案申请单文件名")
    private String constructFileName;

    @ApiModelProperty("21位项目编号")
    @Compare("项目编号")
    private String projectCode;

    @ApiModelProperty("项目申报书")
    @Compare("项目申报书")
    private String projectApplicationForm;

    @ApiModelProperty("省级联审 审批结果")
    private String sjlsResult;

    @ApiModelProperty("版本号")
    private Integer version;

    @ApiModelProperty("是否是最新版本")
    private Boolean newest;

    @ApiModelProperty("成交金额")
    private BigDecimal transactionAmount;

    @ApiModelProperty("成交时间")
    private LocalDateTime transactionTime;

    @ApiModelProperty("交货时间")
    private LocalDateTime deliveryTime;

    @ApiModelProperty("初验材料")
    @Compare("初验材料")
    private String preliminaryInspectionMaterials;

    @ApiModelProperty("终验材料")
    @Compare("终验材料")
    private String finalAcceptanceMaterials;

    @ApiModelProperty("合同总金额")
    @Compare("合同总金额")
    private BigDecimal contractAmount;

    @ApiModelProperty("计划验收时间(有可能是延期后的)")
    private LocalDateTime planAcceptanceTime;

    @ApiModelProperty("原本计划验收时间")
    private LocalDateTime originPlanAcceptanceTime;

    @ApiModelProperty("延期月份数")
    private Integer applyDelayMonths;

    @ApiModelProperty("申请延期佐证材料")
    private String applyDelayFile;

    @ApiModelProperty("申请延期理由")
    private String applyDelayReason;

    @ApiModelProperty("是否为建设方案申报")
    private Boolean isConstruct;

    @ApiModelProperty("初步方案项目ID")
    private Long prePlanProjectId;

    @ApiModelProperty("区县预审上级条线主管单位盖章审核意见")
    private String countryHigherSealAuditOpinion;

    @ApiModelProperty("区县预审上级条线主管单位盖章审核日期")
    private String countryHigherSealAuditDate;

    @ApiModelProperty("区县预审盖章上级条线主管单位印章编号")
    private String countryHigherSealNo;

    @ApiModelProperty("区县预审本级主管单位盖章审核意见")
    private String countrySealAuditOpinion;

    @ApiModelProperty("区县预审本级主管单位盖章审核日期")
    private String countrySealAuditDate;

    @ApiModelProperty("是否退回|驳回的项目版本")
    private Boolean isBackReject;

    @ApiModelProperty("项目内容与预期成效")
    private String beseExpectedResults;

    @ApiModelProperty("内容类别")
    private String baseConstructionType;

    @ApiModelProperty("可研报告")
    private String baseResearchReportFile;

    @ApiModelProperty("其他附件")
    private String baseProjOtherFile;

    @ApiModelProperty("是否完成日志数据归集")
    private Boolean isCompletedLogCollection;

    @ApiModelProperty("实际成效指标")
    private String actualPerformanceIndicators;
}
