package com.jeeplus.modules.filing.constructionStage.entity;

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

import java.util.Date;
import java.util.List;

/**
 * 初设阶段实体类
 * */
public class ConstructionStage extends DataEntity<ConstructionStage> {
    /**
     * 项目编码
     */
    private String projectCode;

    /**
     * 单体编码
     */
    private String monomerCode;

    /**
     * 项目名称
     */
    private String entryName;

    /**
     * 开工日期
     * */
    private Date commDate;
    /**
     * 开工报告
     * */
    private String commReport;
    /**
     * 竣工日期
     * */
    private Date compDate;
    /**
     * 竣工报告
     * */
    private String compLetion;
    /**
     * 投运日期
     * */
    private Date cossDate;
    /**
     * 投运报告
     * */
    private String cossReport;
    /**
     * 环评验收日期
     * */
    private Date acceptanceDate;
    /**
     * 水保验收日期
     * */
    private Date soilWaterDate;

    /**
     * 例会报告
     * */
    private String enclosure;
    /**
     * 土建
     * */
    private String scheduleCivil;
    /**
     * 电气
     * */
    private String scheduleElectrical;
    /**
     * 调试
     * */
    private String scheduleDebugging;
    /**
     * 验收
     * */
    private String scheduleCheck;
    /**
     * 累计定性描述
     * */
    private String scheduleCumulative;
    /**
     * 启委会文
     * */
    private String openingCommittee;
    /**
     * 调度命名编号
     * */
    private String dispatchingNaming;
    /**
     * 安全质量量化考核成果
     * */
    private String resultsSafety;
    /**
     * 工程荣誉
     * */
    private String engineeringHonors;
    /**
     * 工程结算审核报告
     * */
    private String settAuditReport;
    /**
     * 工程决算审计报告
     * */
    private String accAuditReport;
    /**
     * 增资产生的卡片信息
     * */
    private String cardInformation;

    /**
     * 达标投产文
     * */
    private String standardProduction;
    /**
     * 五方质量终身责任承诺书
     * */
    private String fiveParty;

    /**
     * 分包单位名称
     * */
    private String nameOfSubcontractor;
    /**
     * 项目地点
     * */
    private String projectLocation;
    /**
     * 四级风险内容
     * */
    private String levelRiskContent;
    /**
     * 四级风险实施时间
     * */
    private Date levelRiskTime;
    /**
     * “标准化开工”时间
     * */
    private Date standStartTime;
    /**
     * “标准化转序”时间
     * */
    private Date standTransferTime;
    /**
     * “标准化预验收”时间
     * */
    private Date standAcceptanceTime;
    /**
     * 约谈日期
     * */
    private Date dateOfInterview;
    /**
     * 约谈会议纪要
     * */
    private String mettingMinutes;
    /**
     * 累计扣款金额
     * */
    private String accumulatedAmount;
    /**
     * 扣款单
     * */
    private String deductionForm;
    /**
     * 工程遗留相关事项
     * */
    private String mattersLeft;
    /**
     * 退料及报废手续
     * */
    private String returnAndScrap;
    /**
     * 重要的附件等扫描件
     * */
    private String importantAccessories;


    /**
     * 子类数据集合
     * */
    private List<ConstructionStage> childList = Lists.newArrayList();

    @ExcelField(title="项目编码", align=2, sort=1)
    public String getProjectCode() {
        return projectCode;
    }

    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }

    @ExcelField(title="单体编码", align=2, sort=2)
    public String getMonomerCode() {
        return monomerCode;
    }

    public void setMonomerCode(String monomerCode) {
        this.monomerCode = monomerCode;
    }

    @ExcelField(title="项目名称", align=2, sort=3)
    public String getEntryName() {
        return entryName;
    }

    public void setEntryName(String entryName) {
        this.entryName = entryName;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="开工日期", align=2, sort=4)
    public Date getCommDate() {
        return commDate;
    }

    public void setCommDate(Date commDate) {
        this.commDate = commDate;
    }

    public String getCommReport() {
        return commReport;
    }

    public void setCommReport(String commReport) {
        this.commReport = commReport;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="竣工日期", align=2, sort=5)
    public Date getCompDate() {
        return compDate;
    }

    public void setCompDate(Date compDate) {
        this.compDate = compDate;
    }

    public String getCompLetion() {
        return compLetion;
    }

    public void setCompLetion(String compLetion) {
        this.compLetion = compLetion;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="投运日期", align=2, sort=6)
    public Date getCossDate() {
        return cossDate;
    }

    public void setCossDate(Date cossDate) {
        this.cossDate = cossDate;
    }

    public String getCossReport() {
        return cossReport;
    }

    public void setCossReport(String cossReport) {
        this.cossReport = cossReport;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="环评验收日期", align=2, sort=7)
    public Date getAcceptanceDate() {
        return acceptanceDate;
    }

    public void setAcceptanceDate(Date acceptanceDate) {
        this.acceptanceDate = acceptanceDate;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="水保验收日期", align=2, sort=8)
    public Date getSoilWaterDate() {
        return soilWaterDate;
    }

    public void setSoilWaterDate(Date soilWaterDate) {
        this.soilWaterDate = soilWaterDate;
    }

    public String getEnclosure() {
        return enclosure;
    }

    public void setEnclosure(String enclosure) {
        this.enclosure = enclosure;
    }

    public String getScheduleCivil() {
        return scheduleCivil;
    }

    public void setScheduleCivil(String scheduleCivil) {
        this.scheduleCivil = scheduleCivil;
    }

    public String getScheduleElectrical() {
        return scheduleElectrical;
    }

    public void setScheduleElectrical(String scheduleElectrical) {
        this.scheduleElectrical = scheduleElectrical;
    }

    public String getScheduleDebugging() {
        return scheduleDebugging;
    }

    public void setScheduleDebugging(String scheduleDebugging) {
        this.scheduleDebugging = scheduleDebugging;
    }

    public String getScheduleCheck() {
        return scheduleCheck;
    }

    public void setScheduleCheck(String scheduleCheck) {
        this.scheduleCheck = scheduleCheck;
    }

    public String getScheduleCumulative() {
        return scheduleCumulative;
    }

    public void setScheduleCumulative(String scheduleCumulative) {
        this.scheduleCumulative = scheduleCumulative;
    }

    public String getOpeningCommittee() {
        return openingCommittee;
    }

    public void setOpeningCommittee(String openingCommittee) {
        this.openingCommittee = openingCommittee;
    }

    @ExcelField(title="调度命名编号", align=2, sort=9)
    public String getDispatchingNaming() {
        return dispatchingNaming;
    }

    public void setDispatchingNaming(String dispatchingNaming) {
        this.dispatchingNaming = dispatchingNaming;
    }

    @ExcelField(title="安全质量量化考核成果", align=2, sort=10)
    public String getResultsSafety() {
        return resultsSafety;
    }

    public void setResultsSafety(String resultsSafety) {
        this.resultsSafety = resultsSafety;
    }

    public String getEngineeringHonors() {
        return engineeringHonors;
    }

    public void setEngineeringHonors(String engineeringHonors) {
        this.engineeringHonors = engineeringHonors;
    }

    public String getSettAuditReport() {
        return settAuditReport;
    }

    public void setSettAuditReport(String settAuditReport) {
        this.settAuditReport = settAuditReport;
    }

    public String getAccAuditReport() {
        return accAuditReport;
    }

    public void setAccAuditReport(String accAuditReport) {
        this.accAuditReport = accAuditReport;
    }

    @ExcelField(title="增资产生的卡片信息", align=2, sort=11)
    public String getCardInformation() {
        return cardInformation;
    }

    public void setCardInformation(String cardInformation) {
        this.cardInformation = cardInformation;
    }

    public String getStandardProduction() {
        return standardProduction;
    }

    public void setStandardProduction(String standardProduction) {
        this.standardProduction = standardProduction;
    }

    public String getFiveParty() {
        return fiveParty;
    }

    public void setFiveParty(String fiveParty) {
        this.fiveParty = fiveParty;
    }

    public String getNameOfSubcontractor() {
        return nameOfSubcontractor;
    }

    public void setNameOfSubcontractor(String nameOfSubcontractor) {
        this.nameOfSubcontractor = nameOfSubcontractor;
    }

    @ExcelField(title="项目地点", align=2, sort=12)
    public String getProjectLocation() {
        return projectLocation;
    }

    public void setProjectLocation(String projectLocation) {
        this.projectLocation = projectLocation;
    }

    @ExcelField(title="四级风险内容", align=2, sort=13)
    public String getLevelRiskContent() {
        return levelRiskContent;
    }

    public void setLevelRiskContent(String levelRiskContent) {
        this.levelRiskContent = levelRiskContent;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="四级风险实施时间", align=2, sort=14)
    public Date getLevelRiskTime() {
        return levelRiskTime;
    }

    public void setLevelRiskTime(Date levelRiskTime) {
        this.levelRiskTime = levelRiskTime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="“标准化开工”时间", align=2, sort=15)
    public Date getStandStartTime() {
        return standStartTime;
    }

    public void setStandStartTime(Date standStartTime) {
        this.standStartTime = standStartTime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="“标准化转序”时间", align=2, sort=16)
    public Date getStandTransferTime() {
        return standTransferTime;
    }

    public void setStandTransferTime(Date standTransferTime) {
        this.standTransferTime = standTransferTime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="“标准化预验收”时间", align=2, sort=17)
    public Date getStandAcceptanceTime() {
        return standAcceptanceTime;
    }

    public void setStandAcceptanceTime(Date standAcceptanceTime) {
        this.standAcceptanceTime = standAcceptanceTime;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelField(title="约谈日期", align=2, sort=18)
    public Date getDateOfInterview() {
        return dateOfInterview;
    }

    public void setDateOfInterview(Date dateOfInterview) {
        this.dateOfInterview = dateOfInterview;
    }

    public String getMettingMinutes() {
        return mettingMinutes;
    }

    public void setMettingMinutes(String mettingMinutes) {
        this.mettingMinutes = mettingMinutes;
    }

    @ExcelField(title="累计扣款金额", align=2, sort=19)
    public String getAccumulatedAmount() {
        return accumulatedAmount;
    }

    public void setAccumulatedAmount(String accumulatedAmount) {
        this.accumulatedAmount = accumulatedAmount;
    }

    public String getDeductionForm() {
        return deductionForm;
    }

    public void setDeductionForm(String deductionForm) {
        this.deductionForm = deductionForm;
    }

    @ExcelField(title="工程遗留相关事项", align=2, sort=20)
    public String getMattersLeft() {
        return mattersLeft;
    }

    public void setMattersLeft(String mattersLeft) {
        this.mattersLeft = mattersLeft;
    }

    public String getReturnAndScrap() {
        return returnAndScrap;
    }

    public void setReturnAndScrap(String returnAndScrap) {
        this.returnAndScrap = returnAndScrap;
    }

    public String getImportantAccessories() {
        return importantAccessories;
    }

    public void setImportantAccessories(String importantAccessories) {
        this.importantAccessories = importantAccessories;
    }

    public List<ConstructionStage> getChildList() {
        return childList;
    }

    public void setChildList(List<ConstructionStage> childList) {
        this.childList = childList;
    }
}
