package com.jeeplus.modules.sg.managementcenter.reserveManagement.entity;

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

import java.util.Date;
import java.util.Objects;

/**
 * 项目储备信息 Entity
 * @author 徐滕
 * @version 2020-09-14
 */
public class ReserveManagement extends DataEntity<ReserveManagement> {

    private String projectNature;  //varchar(255) NULL 项目性质
    private String demandUnit;  //varchar(255) NULL 需求单位
    private String district;  //varchar(255) NULL 区域
    private String projectGroup;  //varchar(255) NULL 项目分组
    private String reserveBatches;  //varchar(255) NULL 储备批次
    private String blockSupply;  //varchar(255) NULL 供电区域
    private String gridNumber;  //varchar(255) NULL 网格编号
    private String cellNumber;  //varchar(255) NULL 单元格编号
    private String projectReserveId;  //varchar(255) NOT NULL 项目储备编号
    private String powerGridProjectId;  //varchar(255) NOT NULL 电网项目编号
    private String projectName;  //varchar(255) NULL 项目名称
    private String constructionNecessityAndContent;  //varchar(255) NULL 建设必要性及内容
    private String substationName;  //varchar(255) NULL 变电站名称
    private String circuitName;  //varchar(255) NULL 线路名称
    private String netRackProjectDivide;  //varchar(255) NULL 网架项目划分
    private String projectType;  //varchar(255) NULL 项目类型
    private String costEstimate;  //double(255,4) NULL 费用估算
    private String whetherWindwardProject;  //varcjar(64) NULL 是否迎峰度夏项目(1：是，0：否 2：取消)
    private String projectUrgencyDegree;  //varcjar(64) NULL  项目紧急程度（不是数字默认为空）
    private String implementIssuedYear;  //varchar(255) NULL  拟实施下达年份
    private String implementBatch;  //varchar(255) NULL  拟实施批次
    private String basicRemarks;  //varchar(255) NULL  备注

    private String designCondition;  //varcjar(64) NULL  设计状态（1：已完成，0：未完成）
    private String whetherPassReview;  //varcjar(64) NULL  是否通过省公司评审（1：已通过，0：未通过）
    private String whetherNeedWiringDiagram;  //varcjar(64) NULL  是否需提交路径图（政处）(1：是，0：否)
    private String whetherFinishMaterials;  //varcjar(64) NULL  是否完成物资清册编制(1：是，0：否)
    private String whetherFinishDrawing;  //varcjar(64) NULL  是否完成图纸移交(1：是，0：否)


    /******************************************方案交底部分******************************************************/
    private String disclosureToCoordinate;  //varchar(255) NULL  交底牵头部门
    private String disclosureParticipate;  //varchar(255) NULL  交底参与部门
    private String whetherFinishDisclosure;  //varcjar(64) NULL  是否完成交底(1：是，0：否)
    private String projectManagementPeople;  //varchar(255) NULL  项目管理中心人员
    private String designingInstitutePeople;  //varchar(255) NULL  设计院人员
    private String ifoPeople;  //varchar(255) NULL  经研所人员
    private String regionalCenterPeople;  //varchar(255) NULL  区域中心人员
    private String uninterruptedOperationPeople;  //varchar(255) NULL  不停电作业中心人员
    private String workMode;  //varchar(255) NULL  作业方式
    private Date disclosureFinishDate;  //datetime NULL  交底完成日期
    private String disclosureRemarks;  //varchar(255) NULL  备注

    private String projectDescription;  //varchar(255) NULL  立项说明
    private String doNotPossessProjectDescription;  //varchar(255) NULL  不具备立项条件说明
    private String changedProgramsExplain;  //varchar(255) NULL  方案变更说明
    private String initialDifficulty;  //varchar(255) NULL  政处难度初判
    private String capitalEquipment;  //varcjar(64) NULL  是否有资本设备(1：是，0：否)
    private String substationNewLine;  //varcjar(64) NULL  是否有变电站新出线(1：是，0：否)
    private String whetherImplement;  //varcjar(64) NULL  是否已实施(1：是，0：否)
    private String fieldDescription;  //varchar(255) NULL  现场情况描述
    private String necessaryOfImplementation;  //varcjar(64) NULL  是否有实施必要性(1：是，0：否)
    private String unnecessaryDescription;  //varchar(255) NULL  实施无必要描述
    private String precondition;  //varcjar(64) NULL  是否存在前置条件(1：是，0：否)
    private String conditionsDescribed;  //varchar(255) NULL  前置条件描述
    private String constructionSchemeProblem;  //varcjar(64) NULL  是否存在施工方案问题(1：是，0：否)
    private String problemDescriptionOfConstructionScheme;  //varchar(255) NULL  施工方案问题描述
    private String existingSecurityThreat;  //varcjar(64) NULL  现场是否存在安全隐患(1：是，0：否)
    private String safetyHazardDescription;  //varchar(255) NULL  安全隐患描述
    private String customizedMaterials;  //varcjar(64) NULL  是否需要定制物资(1：是，0：否)
    private String materialDescription;  //varchar(255) NULL  定制物资描述
    private String dismantlingTheOldMaterial;  //varcjar(64) NULL  是否有拆旧物资(1：是，0：否)
    private String operatingType;  //varchar(255) NULL  作业方式
    private String problemDescription;  //varchar(255) NULL  停电问题描述
    private String civilWork;  //varcjar(64) NULL  是否有土建工作量(1：是，0：否)
    private String verticalRodWorkload;  //varcjar(64) NULL  是否有立杆工作量(1：是，0：否)
    private String totalWorkloadDescription;  //varchar(255) NULL  总工作量描述
    private String regionalCenter;  //varchar(255) NULL  区域中心
    private String powerSupplyArea;  //varchar(255) NULL  供电所辖区
    private String zhengLocation;  //varchar(255) NULL  政处地点
    private String zhengType;  //varchar(255) NULL  政处类型（可多类）
    private String zhengObject;  //varchar(255) NULL  政处对象（产权单位）
    private String zhengDescribe;  //varchar(255) NULL  政处描述
    private String projectApproval;  //varcjar(64) NULL  是否需规划报批(1：是，0：否)
    private String courseEvaluationProcedures;  //varcjar(64) NULL  是否需办理安评航评手续(1：是，0：否)
    private String zhengDifficultyWarn;  //varchar(255) NULL  政处难点提醒

    private String disclosureFinishDateStr;

    @ExcelField(title="项目性质", align=2, sort=1)
    public String getProjectNature() {
        return projectNature;
    }

    public void setProjectNature(String projectNature) {
        this.projectNature = projectNature;
    }

    @ExcelField(title="需求单位", align=2, sort=2)
    public String getDemandUnit() {
        return demandUnit;
    }

    public void setDemandUnit(String demandUnit) {
        this.demandUnit = demandUnit;
    }

    @ExcelField(title="区域", align=2, sort=3)
    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    @ExcelField(title="项目分组", align=2, sort=4)
    public String getProjectGroup() {
        return projectGroup;
    }

    public void setProjectGroup(String projectGroup) {
        this.projectGroup = projectGroup;
    }

    @ExcelField(title="储备批次", align=2, sort=5)
    public String getReserveBatches() {
        return reserveBatches;
    }

    public void setReserveBatches(String reserveBatches) {
        this.reserveBatches = reserveBatches;
    }

    @ExcelField(title="供电区域", align=2, sort=6)
    public String getBlockSupply() {
        return blockSupply;
    }

    public void setBlockSupply(String blockSupply) {
        this.blockSupply = blockSupply;
    }

    @ExcelField(title="网格编号", align=2, sort=7)
    public String getGridNumber() {
        return gridNumber;
    }

    public void setGridNumber(String gridNumber) {
        this.gridNumber = gridNumber;
    }

    @ExcelField(title="单元格编号", align=2, sort=8)
    public String getCellNumber() {
        return cellNumber;
    }

    public void setCellNumber(String cellNumber) {
        this.cellNumber = cellNumber;
    }

    @ExcelField(title="项目储备编号", align=2, sort=9)
    public String getProjectReserveId() {
        return projectReserveId;
    }

    public void setProjectReserveId(String projectReserveId) {
        this.projectReserveId = projectReserveId;
    }

    @ExcelField(title="电网项目编号", align=2, sort=10)
    public String getPowerGridProjectId() {
        return powerGridProjectId;
    }

    public void setPowerGridProjectId(String powerGridProjectId) {
        this.powerGridProjectId = powerGridProjectId;
    }

    @ExcelField(title="项目名称", align=2, sort=11)
    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    @ExcelField(title="建设必要性及内容", align=2, sort=12)
    public String getConstructionNecessityAndContent() {
        return constructionNecessityAndContent;
    }

    public void setConstructionNecessityAndContent(String constructionNecessityAndContent) {
        this.constructionNecessityAndContent = constructionNecessityAndContent;
    }

    @ExcelField(title="变电站名称", align=2, sort=13)
    public String getSubstationName() {
        return substationName;
    }

    public void setSubstationName(String substationName) {
        this.substationName = substationName;
    }

    @ExcelField(title="线路名称", align=2, sort=14)
    public String getCircuitName() {
        return circuitName;
    }

    public void setCircuitName(String circuitName) {
        this.circuitName = circuitName;
    }

    @ExcelField(title="网架项目划分", align=2, sort=15)
    public String getNetRackProjectDivide() {
        return netRackProjectDivide;
    }

    public void setNetRackProjectDivide(String netRackProjectDivide) {
        this.netRackProjectDivide = netRackProjectDivide;
    }

    @ExcelField(title="项目类型", align=2, sort=16)
    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    @ExcelField(title="费用估算", align=2, sort=17)
    public String getCostEstimate() {
        return costEstimate;
    }

    public void setCostEstimate(String costEstimate) {
        this.costEstimate = costEstimate;
    }

    @ExcelField(title="是否迎峰度夏项目", align=2, sort=18)
    public String getWhetherWindwardProject() {
        return whetherWindwardProject;
    }

    public void setWhetherWindwardProject(String whetherWindwardProject) {
        this.whetherWindwardProject = whetherWindwardProject;
    }

    @ExcelField(title="项目紧急程度", align=2, sort=19)
    public String getProjectUrgencyDegree() {
        return projectUrgencyDegree;
    }

    public void setProjectUrgencyDegree(String projectUrgencyDegree) {
        this.projectUrgencyDegree = projectUrgencyDegree;
    }

    @ExcelField(title="拟实施下达年份", align=2, sort=20)
    public String getImplementIssuedYear() {
        return implementIssuedYear;
    }

    public void setImplementIssuedYear(String implementIssuedYear) {
        this.implementIssuedYear = implementIssuedYear;
    }

    @ExcelField(title="拟实施批次", align=2, sort=21)
    public String getImplementBatch() {
        return implementBatch;
    }

    public void setImplementBatch(String implementBatch) {
        this.implementBatch = implementBatch;
    }

    @ExcelField(title="备注", align=2, sort=22)
    public String getBasicRemarks() {
        return basicRemarks;
    }

    public void setBasicRemarks(String basicRemarks) {
        this.basicRemarks = basicRemarks;
    }

    @ExcelField(title="设计状态（1：已完成，0：未完成）", align=2, sort=23)
    public String getDesignCondition() {
        return designCondition;
    }

    public void setDesignCondition(String designCondition) {
        this.designCondition = designCondition;
    }

    @ExcelField(title="是否通过省公司评审", align=2, sort=24)
    public String getWhetherPassReview() {
        return whetherPassReview;
    }

    public void setWhetherPassReview(String whetherPassReview) {
        this.whetherPassReview = whetherPassReview;
    }

    @ExcelField(title="是否需提交路径图", align=2, sort=25)
    public String getWhetherNeedWiringDiagram() {
        return whetherNeedWiringDiagram;
    }

    public void setWhetherNeedWiringDiagram(String whetherNeedWiringDiagram) {
        this.whetherNeedWiringDiagram = whetherNeedWiringDiagram;
    }

    @ExcelField(title="是否完成物资清册编制", align=2, sort=26)
    public String getWhetherFinishMaterials() {
        return whetherFinishMaterials;
    }

    public void setWhetherFinishMaterials(String whetherFinishMaterials) {
        this.whetherFinishMaterials = whetherFinishMaterials;
    }

    @ExcelField(title="是否完成图纸移交", align=2, sort=27)
    public String getWhetherFinishDrawing() {
        return whetherFinishDrawing;
    }

    public void setWhetherFinishDrawing(String whetherFinishDrawing) {
        this.whetherFinishDrawing = whetherFinishDrawing;
    }


    public String getDisclosureToCoordinate() {
        return disclosureToCoordinate;
    }

    public void setDisclosureToCoordinate(String disclosureToCoordinate) {
        this.disclosureToCoordinate = disclosureToCoordinate;
    }

    public String getDisclosureParticipate() {
        return disclosureParticipate;
    }

    public void setDisclosureParticipate(String disclosureParticipate) {
        this.disclosureParticipate = disclosureParticipate;
    }

    public String getWhetherFinishDisclosure() {
        return whetherFinishDisclosure;
    }

    public void setWhetherFinishDisclosure(String whetherFinishDisclosure) {
        this.whetherFinishDisclosure = whetherFinishDisclosure;
    }

    public String getProjectManagementPeople() {
        return projectManagementPeople;
    }

    public void setProjectManagementPeople(String projectManagementPeople) {
        this.projectManagementPeople = projectManagementPeople;
    }

    public String getDesigningInstitutePeople() {
        return designingInstitutePeople;
    }

    public void setDesigningInstitutePeople(String designingInstitutePeople) {
        this.designingInstitutePeople = designingInstitutePeople;
    }

    public String getIfoPeople() {
        return ifoPeople;
    }

    public void setIfoPeople(String ifoPeople) {
        this.ifoPeople = ifoPeople;
    }

    public String getRegionalCenterPeople() {
        return regionalCenterPeople;
    }

    public void setRegionalCenterPeople(String regionalCenterPeople) {
        this.regionalCenterPeople = regionalCenterPeople;
    }

    public String getUninterruptedOperationPeople() {
        return uninterruptedOperationPeople;
    }

    public void setUninterruptedOperationPeople(String uninterruptedOperationPeople) {
        this.uninterruptedOperationPeople = uninterruptedOperationPeople;
    }

    public String getWorkMode() {
        return workMode;
    }

    public void setWorkMode(String workMode) {
        this.workMode = workMode;
    }

    public Date getDisclosureFinishDate() {
        return disclosureFinishDate;
    }

    public void setDisclosureFinishDate(Date disclosureFinishDate) {
        this.disclosureFinishDate = disclosureFinishDate;
    }

    public String getDisclosureRemarks() {
        return disclosureRemarks;
    }

    public void setDisclosureRemarks(String disclosureRemarks) {
        this.disclosureRemarks = disclosureRemarks;
    }

    public String getProjectDescription() {
        return projectDescription;
    }

    public void setProjectDescription(String projectDescription) {
        this.projectDescription = projectDescription;
    }

    public String getDoNotPossessProjectDescription() {
        return doNotPossessProjectDescription;
    }

    public void setDoNotPossessProjectDescription(String doNotPossessProjectDescription) {
        this.doNotPossessProjectDescription = doNotPossessProjectDescription;
    }

    public String getChangedProgramsExplain() {
        return changedProgramsExplain;
    }

    public void setChangedProgramsExplain(String changedProgramsExplain) {
        this.changedProgramsExplain = changedProgramsExplain;
    }

    public String getInitialDifficulty() {
        return initialDifficulty;
    }

    public void setInitialDifficulty(String initialDifficulty) {
        this.initialDifficulty = initialDifficulty;
    }

    public String getCapitalEquipment() {
        return capitalEquipment;
    }

    public void setCapitalEquipment(String capitalEquipment) {
        this.capitalEquipment = capitalEquipment;
    }

    public String getSubstationNewLine() {
        return substationNewLine;
    }

    public void setSubstationNewLine(String substationNewLine) {
        this.substationNewLine = substationNewLine;
    }

    public String getWhetherImplement() {
        return whetherImplement;
    }

    public void setWhetherImplement(String whetherImplement) {
        this.whetherImplement = whetherImplement;
    }

    public String getFieldDescription() {
        return fieldDescription;
    }

    public void setFieldDescription(String fieldDescription) {
        this.fieldDescription = fieldDescription;
    }

    public String getNecessaryOfImplementation() {
        return necessaryOfImplementation;
    }

    public void setNecessaryOfImplementation(String necessaryOfImplementation) {
        this.necessaryOfImplementation = necessaryOfImplementation;
    }

    public String getUnnecessaryDescription() {
        return unnecessaryDescription;
    }

    public void setUnnecessaryDescription(String unnecessaryDescription) {
        this.unnecessaryDescription = unnecessaryDescription;
    }

    public String getPrecondition() {
        return precondition;
    }

    public void setPrecondition(String precondition) {
        this.precondition = precondition;
    }

    public String getConditionsDescribed() {
        return conditionsDescribed;
    }

    public void setConditionsDescribed(String conditionsDescribed) {
        this.conditionsDescribed = conditionsDescribed;
    }

    public String getConstructionSchemeProblem() {
        return constructionSchemeProblem;
    }

    public void setConstructionSchemeProblem(String constructionSchemeProblem) {
        this.constructionSchemeProblem = constructionSchemeProblem;
    }

    public String getProblemDescriptionOfConstructionScheme() {
        return problemDescriptionOfConstructionScheme;
    }

    public void setProblemDescriptionOfConstructionScheme(String problemDescriptionOfConstructionScheme) {
        this.problemDescriptionOfConstructionScheme = problemDescriptionOfConstructionScheme;
    }

    public String getExistingSecurityThreat() {
        return existingSecurityThreat;
    }

    public void setExistingSecurityThreat(String existingSecurityThreat) {
        this.existingSecurityThreat = existingSecurityThreat;
    }

    public String getSafetyHazardDescription() {
        return safetyHazardDescription;
    }

    public void setSafetyHazardDescription(String safetyHazardDescription) {
        this.safetyHazardDescription = safetyHazardDescription;
    }

    public String getCustomizedMaterials() {
        return customizedMaterials;
    }

    public void setCustomizedMaterials(String customizedMaterials) {
        this.customizedMaterials = customizedMaterials;
    }

    public String getMaterialDescription() {
        return materialDescription;
    }

    public void setMaterialDescription(String materialDescription) {
        this.materialDescription = materialDescription;
    }

    public String getDismantlingTheOldMaterial() {
        return dismantlingTheOldMaterial;
    }

    public void setDismantlingTheOldMaterial(String dismantlingTheOldMaterial) {
        this.dismantlingTheOldMaterial = dismantlingTheOldMaterial;
    }

    public String getOperatingType() {
        return operatingType;
    }

    public void setOperatingType(String operatingType) {
        this.operatingType = operatingType;
    }

    public String getProblemDescription() {
        return problemDescription;
    }

    public void setProblemDescription(String problemDescription) {
        this.problemDescription = problemDescription;
    }

    public String getCivilWork() {
        return civilWork;
    }

    public void setCivilWork(String civilWork) {
        this.civilWork = civilWork;
    }

    public String getVerticalRodWorkload() {
        return verticalRodWorkload;
    }

    public void setVerticalRodWorkload(String verticalRodWorkload) {
        this.verticalRodWorkload = verticalRodWorkload;
    }

    public String getTotalWorkloadDescription() {
        return totalWorkloadDescription;
    }

    public void setTotalWorkloadDescription(String totalWorkloadDescription) {
        this.totalWorkloadDescription = totalWorkloadDescription;
    }

    public String getRegionalCenter() {
        return regionalCenter;
    }

    public void setRegionalCenter(String regionalCenter) {
        this.regionalCenter = regionalCenter;
    }

    public String getPowerSupplyArea() {
        return powerSupplyArea;
    }

    public void setPowerSupplyArea(String powerSupplyArea) {
        this.powerSupplyArea = powerSupplyArea;
    }

    public String getZhengLocation() {
        return zhengLocation;
    }

    public void setZhengLocation(String zhengLocation) {
        this.zhengLocation = zhengLocation;
    }

    public String getZhengType() {
        return zhengType;
    }

    public void setZhengType(String zhengType) {
        this.zhengType = zhengType;
    }

    public String getZhengObject() {
        return zhengObject;
    }

    public void setZhengObject(String zhengObject) {
        this.zhengObject = zhengObject;
    }

    public String getZhengDescribe() {
        return zhengDescribe;
    }

    public void setZhengDescribe(String zhengDescribe) {
        this.zhengDescribe = zhengDescribe;
    }

    public String getProjectApproval() {
        return projectApproval;
    }

    public void setProjectApproval(String projectApproval) {
        this.projectApproval = projectApproval;
    }

    public String getCourseEvaluationProcedures() {
        return courseEvaluationProcedures;
    }

    public void setCourseEvaluationProcedures(String courseEvaluationProcedures) {
        this.courseEvaluationProcedures = courseEvaluationProcedures;
    }

    public String getZhengDifficultyWarn() {
        return zhengDifficultyWarn;
    }

    public void setZhengDifficultyWarn(String zhengDifficultyWarn) {
        this.zhengDifficultyWarn = zhengDifficultyWarn;
    }

    public String getDisclosureFinishDateStr() {
        return disclosureFinishDateStr;
    }

    public void setDisclosureFinishDateStr(String disclosureFinishDateStr) {
        this.disclosureFinishDateStr = disclosureFinishDateStr;
    }

    /**
     * 重写 equals 方法
     * @param obj
     * @return
     */
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        //判断  如果 projectReserveId 在集合中存在 则返回 true  否则 返回false
        ReserveManagement reserveManagement = (ReserveManagement) obj;
        return Objects.equals(projectReserveId, reserveManagement.projectReserveId);
    }
}
