package com.jeeplus.modules.supply.projectInformation.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.core.persistence.DataEntity;

import java.util.Date;

/**
 * 项目信息Entity  (项目信息表+审定单信息表)
 * @author: 黄俊杰
 * @create: 2022-02-28 16:00
 */
public class ProjectInformation extends DataEntity<ProjectInformation> {
    private String num;                                 //序号
    private String projectDefinitionNumber;             //项目定义号
    private String projectName;                         //项目名称
    private String projectType;                         //项目类型
    private String voltageLeve;                         //电压等级
    private String projectReleaseYear;                  //项目下达年度
    private String projectBudgetYear;                   //项目预算年度
    private String totalProjectInvestment;              //项目总投资


    private String approvalReplyNo;                 //可研批复文号
    private String singleProjectWbsNo;              //单体工程WBS编号
    private String engineeringNo;                   //工程编号
    private String engineeringName;                 //工程名称
    private String contacts;                        //联系人
    private String contactNumber;                   //联系电话
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date actualCommencementDate;            //实际开工日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date actualCompletionDate;              //实际竣工日期
    private String constructionUnit;                //施工单位
    private String contractNo;                      //合同编号
    private String contractAmount;                  //合同金额
    private String settlementDiscountRate;          //结算折扣率
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date plannedCommencementDate;           //计划开工日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date plannedCompletionDate;             //计划竣工日期
    private String civilEngineeringAmountSubmittedForApproval;          //土建送审金额
    private String installAmountSubmittedForApproval;                   //安装送审金额
    private String subtotalOfConstructionCostSubmittedForApproval;      //送审施工费小计
    private String amountOfMaterialsProvidedByPartyAForApproval;        //甲供材送审金额
    private String commentsOnSubmissionForApproval;                     //送审备注
    private String approvedAmountOfCivilEngineering;                    //土建审定金额
    private String installationApprovalAmount;                          //安装审定金额
    private String subtotalOfApprovedConstructionCost;                  //审定施工费小计
    private String approvedAmountOfMaterialsSuppliedByPartyA;           //甲供材审定金额
    private String deductionAmountOfConstructionCost;                   //施工费核减金额
    private String reductionRateOfConstructionCost;                     //施工费核减率
    private String creditDeductionOfTheConstructionUnit;                //施工单位诚信扣款
    private String proposedSettlement;              //建议结算款
    private String longitude;                       //经度
    private String latitude;                        //纬度
    private String auditFee;                        //审计费
    private String auditOpinionNo;                  //审计意见文号
    private String auditReportNo;                   //审计报告号
    private String auditRemarks;                    //审计备注
    private String firmName;                        //事务所名称
    private String auditorOfTheFirm;                //事务所审计人员
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submissionDate;                    //提交送审日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date auditTaskReleaseDate;              //审计任务下达日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDateOfAudit;                    //审计应结束日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date resultUploadDate;                  //结果上传日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date approvalDate;                      //审定日期
    private String timeout;                         //是否超时
    private String auditManagementLevel;            //审计管理级别
    private String auditMethod;                     //审计方式
    private String fullTimeAuditor;                 //审计专职
    private String submitter;                       //送审人
    private String submissionDepartment;            //送审部门
    private String secondaryUnit;                   //二级单位
    private String primaryUnit;                     //一级单位
    private String submissionStatus;                //送审状态
    private String submissionFormId;                //送审单id
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date tableBuildingTime;                 //创建时间（写入数据库的时间）
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date beginDate;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDate;

    @ExcelField(title="序号", align=2, sort=1)
    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }
    @ExcelField(title="项目定义号", align=2, sort=2)
    public String getProjectDefinitionNumber() {
        return projectDefinitionNumber;
    }

    public void setProjectDefinitionNumber(String projectDefinitionNumber) {
        this.projectDefinitionNumber = projectDefinitionNumber;
    }
    @ExcelField(title="项目名称", align=2, sort=3)
    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }
    @ExcelField(title="项目类型", align=2, sort=4)
    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }
    @ExcelField(title="电压等级", align=2, sort=5)
    public String getVoltageLeve() {
        return voltageLeve;
    }

    public void setVoltageLeve(String voltageLeve) {
        this.voltageLeve = voltageLeve;
    }
    @ExcelField(title="项目下达年度", align=2, sort=6)
    public String getProjectReleaseYear() {
        return projectReleaseYear;
    }

    public void setProjectReleaseYear(String projectReleaseYear) {
        this.projectReleaseYear = projectReleaseYear;
    }
    @ExcelField(title="项目预算年度", align=2, sort=7)
    public String getProjectBudgetYear() {
        return projectBudgetYear;
    }

    public void setProjectBudgetYear(String projectBudgetYear) {
        this.projectBudgetYear = projectBudgetYear;
    }
    @ExcelField(title="项目总投资", align=2, sort=8)
    public String getTotalProjectInvestment() {
        return totalProjectInvestment;
    }

    public void setTotalProjectInvestment(String totalProjectInvestment) {
        this.totalProjectInvestment = totalProjectInvestment;
    }
    @ExcelField(title="可研批复文号", align=2, sort=9)
    public String getApprovalReplyNo() {
        return approvalReplyNo;
    }

    public void setApprovalReplyNo(String approvalReplyNo) {
        this.approvalReplyNo = approvalReplyNo;
    }
    @ExcelField(title="单体工程WBS编号", align=2, sort=10)
    public String getSingleProjectWbsNo() {
        return singleProjectWbsNo;
    }

    public void setSingleProjectWbsNo(String singleProjectWbsNo) {
        this.singleProjectWbsNo = singleProjectWbsNo;
    }
    @ExcelField(title="工程编号", align=2, sort=11)
    public String getEngineeringNo() {
        return engineeringNo;
    }

    public void setEngineeringNo(String engineeringNo) {
        this.engineeringNo = engineeringNo;
    }
    @ExcelField(title="工程名称", align=2, sort=12)
    public String getEngineeringName() {
        return engineeringName;
    }

    public void setEngineeringName(String engineeringName) {
        this.engineeringName = engineeringName;
    }
    @ExcelField(title="联系人", align=2, sort=13)
    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }
    @ExcelField(title="联系电话", align=2, sort=14)
    public String getContactNumber() {
        return contactNumber;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }
    @ExcelField(title="实际开工日期", align=2, sort=15)
    public Date getActualCommencementDate() {
        return actualCommencementDate;
    }

    public void setActualCommencementDate(Date actualCommencementDate) {
        this.actualCommencementDate = actualCommencementDate;
    }
    @ExcelField(title="实际竣工日期", align=2, sort=16)
    public Date getActualCompletionDate() {
        return actualCompletionDate;
    }

    public void setActualCompletionDate(Date actualCompletionDate) {
        this.actualCompletionDate = actualCompletionDate;
    }
    @ExcelField(title="施工单位", align=2, sort=17)
    public String getConstructionUnit() {
        return constructionUnit;
    }

    public void setConstructionUnit(String constructionUnit) {
        this.constructionUnit = constructionUnit;
    }
    @ExcelField(title="合同编号", align=2, sort=18)
    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }
    @ExcelField(title="合同金额", align=2, sort=19)
    public String getContractAmount() {
        return contractAmount;
    }

    public void setContractAmount(String contractAmount) {
        this.contractAmount = contractAmount;
    }
    @ExcelField(title="结算折扣率", align=2, sort=20)
    public String getSettlementDiscountRate() {
        return settlementDiscountRate;
    }

    public void setSettlementDiscountRate(String settlementDiscountRate) {
        this.settlementDiscountRate = settlementDiscountRate;
    }
    @ExcelField(title="计划开工日期", align=2, sort=21)
    public Date getPlannedCommencementDate() {
        return plannedCommencementDate;
    }

    public void setPlannedCommencementDate(Date plannedCommencementDate) {
        this.plannedCommencementDate = plannedCommencementDate;
    }
    @ExcelField(title="计划竣工日期", align=2, sort=22)
    public Date getPlannedCompletionDate() {
        return plannedCompletionDate;
    }

    public void setPlannedCompletionDate(Date plannedCompletionDate) {
        this.plannedCompletionDate = plannedCompletionDate;
    }
    @ExcelField(title="土建送审金额", align=2, sort=23)
    public String getCivilEngineeringAmountSubmittedForApproval() {
        return civilEngineeringAmountSubmittedForApproval;
    }

    public void setCivilEngineeringAmountSubmittedForApproval(String civilEngineeringAmountSubmittedForApproval) {
        this.civilEngineeringAmountSubmittedForApproval = civilEngineeringAmountSubmittedForApproval;
    }
    @ExcelField(title="安装送审金额", align=2, sort=24)
    public String getInstallAmountSubmittedForApproval() {
        return installAmountSubmittedForApproval;
    }

    public void setInstallAmountSubmittedForApproval(String installAmountSubmittedForApproval) {
        this.installAmountSubmittedForApproval = installAmountSubmittedForApproval;
    }
    @ExcelField(title="送审施工费小计", align=2, sort=25)
    public String getSubtotalOfConstructionCostSubmittedForApproval() {
        return subtotalOfConstructionCostSubmittedForApproval;
    }

    public void setSubtotalOfConstructionCostSubmittedForApproval(String subtotalOfConstructionCostSubmittedForApproval) {
        this.subtotalOfConstructionCostSubmittedForApproval = subtotalOfConstructionCostSubmittedForApproval;
    }
    @ExcelField(title="甲供材送审金额", align=2, sort=26)
    public String getAmountOfMaterialsProvidedByPartyAForApproval() {
        return amountOfMaterialsProvidedByPartyAForApproval;
    }

    public void setAmountOfMaterialsProvidedByPartyAForApproval(String amountOfMaterialsProvidedByPartyAForApproval) {
        this.amountOfMaterialsProvidedByPartyAForApproval = amountOfMaterialsProvidedByPartyAForApproval;
    }
    @ExcelField(title="送审备注", align=2, sort=27)
    public String getCommentsOnSubmissionForApproval() {
        return commentsOnSubmissionForApproval;
    }

    public void setCommentsOnSubmissionForApproval(String commentsOnSubmissionForApproval) {
        this.commentsOnSubmissionForApproval = commentsOnSubmissionForApproval;
    }
    @ExcelField(title="土建审定金额", align=2, sort=28)
    public String getApprovedAmountOfCivilEngineering() {
        return approvedAmountOfCivilEngineering;
    }

    public void setApprovedAmountOfCivilEngineering(String approvedAmountOfCivilEngineering) {
        this.approvedAmountOfCivilEngineering = approvedAmountOfCivilEngineering;
    }
    @ExcelField(title="安装审定金额", align=2, sort=29)
    public String getInstallationApprovalAmount() {
        return installationApprovalAmount;
    }

    public void setInstallationApprovalAmount(String installationApprovalAmount) {
        this.installationApprovalAmount = installationApprovalAmount;
    }
    @ExcelField(title="审定施工费小计", align=2, sort=30)
    public String getSubtotalOfApprovedConstructionCost() {
        return subtotalOfApprovedConstructionCost;
    }

    public void setSubtotalOfApprovedConstructionCost(String subtotalOfApprovedConstructionCost) {
        this.subtotalOfApprovedConstructionCost = subtotalOfApprovedConstructionCost;
    }
    @ExcelField(title="甲供材审定金额", align=2, sort=31)
    public String getApprovedAmountOfMaterialsSuppliedByPartyA() {
        return approvedAmountOfMaterialsSuppliedByPartyA;
    }

    public void setApprovedAmountOfMaterialsSuppliedByPartyA(String approvedAmountOfMaterialsSuppliedByPartyA) {
        this.approvedAmountOfMaterialsSuppliedByPartyA = approvedAmountOfMaterialsSuppliedByPartyA;
    }
    @ExcelField(title="施工费核减金额", align=2, sort=32)
    public String getDeductionAmountOfConstructionCost() {
        return deductionAmountOfConstructionCost;
    }

    public void setDeductionAmountOfConstructionCost(String deductionAmountOfConstructionCost) {
        this.deductionAmountOfConstructionCost = deductionAmountOfConstructionCost;
    }
    @ExcelField(title="施工费核减率", align=2, sort=33)
    public String getReductionRateOfConstructionCost() {
        return reductionRateOfConstructionCost;
    }

    public void setReductionRateOfConstructionCost(String reductionRateOfConstructionCost) {
        this.reductionRateOfConstructionCost = reductionRateOfConstructionCost;
    }
    @ExcelField(title="施工单位诚信扣款", align=2, sort=34)
    public String getCreditDeductionOfTheConstructionUnit() {
        return creditDeductionOfTheConstructionUnit;
    }

    public void setCreditDeductionOfTheConstructionUnit(String creditDeductionOfTheConstructionUnit) {
        this.creditDeductionOfTheConstructionUnit = creditDeductionOfTheConstructionUnit;
    }
    @ExcelField(title="建议结算款", align=2, sort=35)
    public String getProposedSettlement() {
        return proposedSettlement;
    }

    public void setProposedSettlement(String proposedSettlement) {
        this.proposedSettlement = proposedSettlement;
    }
    @ExcelField(title="经度", align=2, sort=36)
    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }
    @ExcelField(title="纬度", align=2, sort=37)
    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }
    @ExcelField(title="审计费", align=2, sort=38)
    public String getAuditFee() {
        return auditFee;
    }

    public void setAuditFee(String auditFee) {
        this.auditFee = auditFee;
    }
    @ExcelField(title="审计意见文号", align=2, sort=39)
    public String getAuditOpinionNo() {
        return auditOpinionNo;
    }

    public void setAuditOpinionNo(String auditOpinionNo) {
        this.auditOpinionNo = auditOpinionNo;
    }
    @ExcelField(title="审计报告号", align=2, sort=40)
    public String getAuditReportNo() {
        return auditReportNo;
    }

    public void setAuditReportNo(String auditReportNo) {
        this.auditReportNo = auditReportNo;
    }
    @ExcelField(title="审计备注", align=2, sort=41)
    public String getAuditRemarks() {
        return auditRemarks;
    }

    public void setAuditRemarks(String auditRemarks) {
        this.auditRemarks = auditRemarks;
    }
    @ExcelField(title="事务所名称", align=2, sort=42)
    public String getFirmName() {
        return firmName;
    }

    public void setFirmName(String firmName) {
        this.firmName = firmName;
    }
    @ExcelField(title="事务所审计人员", align=2, sort=43)
    public String getAuditorOfTheFirm() {
        return auditorOfTheFirm;
    }

    public void setAuditorOfTheFirm(String auditorOfTheFirm) {
        this.auditorOfTheFirm = auditorOfTheFirm;
    }
    @ExcelField(title="提交送审日期", align=2, sort=44)
    public Date getSubmissionDate() {
        return submissionDate;
    }

    public void setSubmissionDate(Date submissionDate) {
        this.submissionDate = submissionDate;
    }
    @ExcelField(title="审计任务下达日期", align=2, sort=45)
    public Date getAuditTaskReleaseDate() {
        return auditTaskReleaseDate;
    }

    public void setAuditTaskReleaseDate(Date auditTaskReleaseDate) {
        this.auditTaskReleaseDate = auditTaskReleaseDate;
    }
    @ExcelField(title="审计应结束日期", align=2, sort=46)
    public Date getEndDateOfAudit() {
        return endDateOfAudit;
    }

    public void setEndDateOfAudit(Date endDateOfAudit) {
        this.endDateOfAudit = endDateOfAudit;
    }
    @ExcelField(title="结果上传日期", align=2, sort=47)
    public Date getResultUploadDate() {
        return resultUploadDate;
    }

    public void setResultUploadDate(Date resultUploadDate) {
        this.resultUploadDate = resultUploadDate;
    }
    @ExcelField(title="审定日期", align=2, sort=48)
    public Date getApprovalDate() {
        return approvalDate;
    }

    public void setApprovalDate(Date approvalDate) {
        this.approvalDate = approvalDate;
    }
    @ExcelField(title="是否超时", align=2, sort=49)
    public String getTimeout() {
        return timeout;
    }

    public void setTimeout(String timeout) {
        this.timeout = timeout;
    }
    @ExcelField(title="审计管理级别", align=2, sort=50)
    public String getAuditManagementLevel() {
        return auditManagementLevel;
    }

    public void setAuditManagementLevel(String auditManagementLevel) {
        this.auditManagementLevel = auditManagementLevel;
    }
    @ExcelField(title="审计方式", align=2, sort=51)
    public String getAuditMethod() {
        return auditMethod;
    }

    public void setAuditMethod(String auditMethod) {
        this.auditMethod = auditMethod;
    }
    @ExcelField(title="审计专职", align=2, sort=52)
    public String getFullTimeAuditor() {
        return fullTimeAuditor;
    }

    public void setFullTimeAuditor(String fullTimeAuditor) {
        this.fullTimeAuditor = fullTimeAuditor;
    }
    @ExcelField(title="送审人", align=2, sort=53)
    public String getSubmitter() {
        return submitter;
    }

    public void setSubmitter(String submitter) {
        this.submitter = submitter;
    }
    @ExcelField(title="送审部门", align=2, sort=54)
    public String getSubmissionDepartment() {
        return submissionDepartment;
    }

    public void setSubmissionDepartment(String submissionDepartment) {
        this.submissionDepartment = submissionDepartment;
    }
    @ExcelField(title="二级单位", align=2, sort=55)
    public String getSecondaryUnit() {
        return secondaryUnit;
    }

    public void setSecondaryUnit(String secondaryUnit) {
        this.secondaryUnit = secondaryUnit;
    }
    @ExcelField(title="一级单位", align=2, sort=56)
    public String getPrimaryUnit() {
        return primaryUnit;
    }

    public void setPrimaryUnit(String primaryUnit) {
        this.primaryUnit = primaryUnit;
    }
    @ExcelField(title="送审状态", align=2, sort=57)
    public String getSubmissionStatus() {
        return submissionStatus;
    }

    public void setSubmissionStatus(String submissionStatus) {
        this.submissionStatus = submissionStatus;
    }
    @ExcelField(title="送审单id", align=2, sort=58)
    public String getSubmissionFormId() {
        return submissionFormId;
    }

    public void setSubmissionFormId(String submissionFormId) {
        this.submissionFormId = submissionFormId;
    }

    public Date getTableBuildingTime() {
        return tableBuildingTime;
    }

    public void setTableBuildingTime(Date tableBuildingTime) {
        this.tableBuildingTime = tableBuildingTime;
    }

    public Date getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }
}
