package com.jeeplus.modules.sg.financial.erpcredit.entity;

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

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 项目明细账初步处理结果 对象
 */
public class ErpCredit extends DataEntity<ErpCredit>{
    private static final long serialVersionUID = 1L;

    private String itemId;//项目定义编码
    private String itemName;//项目名称
    private Double actualInvestment;//实际投资
    private Double transferAssets;//移交生产的资产总值
    private Double consBuildingFee;//施工：建筑费
    private Double consInstallFee;//施工：安装费
    private double consTotalFee;//施工：总计
    private double otherSupervisorFee;//其他：监理费
    private double otherDesignFee;//其他设计费
    private Double otherBeWorkFee;//项目前期工作费
    private Double otherBuildLoan;//建设期贷款利息
    private Double otherLineDamages;//线路施工赔偿费
    private Double otherLegalManage;//法人管理费
    private Double otherTotalFee;//其他费用合计
    private Double theInputTax;//进项税额
    private String tenKvModel;//架空导线型号
    private String tenKvUnit;//10kv线路信息单位
    private Double tenKvLength;//10kv线路信息长度
    private Double tenKvLineLength;//10kv线路长度km
    private Double tenKvItsLine;//10kv线路其中
    private Double tenKvItesFhvFollow;//400v以下
    private String supplierName;//供应商名称
    private String cableTube;//电缆管信息
    private String status;//状态
    private Double listDeduction; //一览表抵扣增值税
    private Double deduction; //抵扣增值税
    private List<ErpCreditEquipment> erpCreditChild1s = new ArrayList<ErpCreditEquipment>();//设备列表
    private List<ErpCreditMaterial> erpCreditChild2s = new ArrayList<ErpCreditMaterial>();//材料列表
    private Map<String,ErpCreditEquipment> equipmentMap = new HashMap<>();//以物料描述为key值的设备map
    private Map<String,ErpCreditMaterial> materialMap = new HashMap<>();//以物料描述为key的物料map

    private Double designFeePayable;//设计费应付金额
    private Double constructionFeePayable;//施工费应付金额
    private Double supervisorFeePayable;//监理费应付金额

    private String designStatus;//设计费问题状态 2：应付金额>实付金额，人工判断  1：应付金额<实付金额，有问题
    private String constructionStatus;
    private String supervisorStatus;


    public Map<String, ErpCreditEquipment> getEquipmentMap() {
        return equipmentMap;
    }

    public void setEquipmentMap(Map<String, ErpCreditEquipment> equipmentMap) {
        this.equipmentMap = equipmentMap;
    }

    public Map<String, ErpCreditMaterial> getMaterialMap() {
        return materialMap;
    }

    public void setMaterialMap(Map<String, ErpCreditMaterial> materialMap) {
        this.materialMap = materialMap;
    }

    public String getDesignStatus() {
        return designStatus;
    }

    public void setDesignStatus(String designStatus) {
        this.designStatus = designStatus;
    }

    public String getConstructionStatus() {
        return constructionStatus;
    }

    public void setConstructionStatus(String constructionStatus) {
        this.constructionStatus = constructionStatus;
    }

    public String getSupervisorStatus() {
        return supervisorStatus;
    }

    public void setSupervisorStatus(String supervisorStatus) {
        this.supervisorStatus = supervisorStatus;
    }

    public Double getDesignFeePayable() {
        return designFeePayable;
    }

    public void setDesignFeePayable(Double designFeePayable) {
        this.designFeePayable = designFeePayable;
    }

    public Double getConstructionFeePayable() {
        return constructionFeePayable;
    }

    public void setConstructionFeePayable(Double constructionFeePayable) {
        this.constructionFeePayable = constructionFeePayable;
    }

    public Double getSupervisorFeePayable() {
        return supervisorFeePayable;
    }

    public void setSupervisorFeePayable(Double supervisorFeePayable) {
        this.supervisorFeePayable = supervisorFeePayable;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Double getListDeduction() {
        return listDeduction;
    }

    public void setListDeduction(Double listDeduction) {
        this.listDeduction = listDeduction;
    }

    public Double getDeduction() {
        return deduction;
    }

    public void setDeduction(Double deduction) {
        this.deduction = deduction;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }
    @ExcelField(title="项目定义编号", align=2, sort=1)
    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }
    @ExcelField(title="项目名称", align=2, sort=2)
    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }
    @ExcelField(title="实际投资", align=2, sort=3)
    public Double getActualInvestment() {
        return actualInvestment;
    }

    public void setActualInvestment(Double actualInvestment) {
        this.actualInvestment = actualInvestment;
    }
    @ExcelField(title="移交生产的资产总值", align=2, sort=4)
    public Double getTransferAssets() {
        return transferAssets;
    }

    public void setTransferAssets(Double transferAssets) {
        this.transferAssets = transferAssets;
    }
    @ExcelField(title="建筑费", align=2, sort=5)
    public Double getConsBuildingFee() {
        return consBuildingFee;
    }

    public void setConsBuildingFee(Double consBuildingFee) {
        this.consBuildingFee = consBuildingFee;
    }
    @ExcelField(title="安装费", align=2, sort=6)
    public Double getConsInstallFee() {
        return consInstallFee;
    }

    public void setConsInstallFee(Double consInstallFee) {
        this.consInstallFee = consInstallFee;
    }
    @ExcelField(title="施工：总计", align=2, sort=7)
    public Double getConsTotalFee() {
        return consTotalFee;
    }

    public void setConsTotalFee(Double consTotalFee) {
        this.consTotalFee = consTotalFee;
    }
    @ExcelField(title="监理费", align=2, sort=8)
    public Double getOtherSupervisorFee() {
        return otherSupervisorFee;
    }

    public void setOtherSupervisorFee(Double otherSupervisorFee) {
        this.otherSupervisorFee = otherSupervisorFee;
    }
    @ExcelField(title="设计费", align=2, sort=9)
    public Double getOtherDesignFee() {
        return otherDesignFee;
    }

    public void setOtherDesignFee(Double otherDesignFee) {
        this.otherDesignFee = otherDesignFee;
    }
    @ExcelField(title="项目前期工作费", align=2, sort=10)
    public Double getOtherBeWorkFee() {
        return otherBeWorkFee;
    }

    public void setOtherBeWorkFee(Double otherBeWorkFee) {
        this.otherBeWorkFee = otherBeWorkFee;
    }
    @ExcelField(title="建设期贷款利息", align=2, sort=11)
    public Double getOtherBuildLoan() {
        return otherBuildLoan;
    }

    public void setOtherBuildLoan(Double otherBuildLoan) {
        this.otherBuildLoan = otherBuildLoan;
    }
    @ExcelField(title="线路施工赔偿费", align=2, sort=12)
    public Double getOtherLineDamages() {
        return otherLineDamages;
    }

    public void setOtherLineDamages(Double otherLineDamages) {
        this.otherLineDamages = otherLineDamages;
    }
    @ExcelField(title="法人管理费", align=2, sort=13)
    public Double getOtherLegalManage() {
        return otherLegalManage;
    }

    public void setOtherLegalManage(Double otherLegalManage) {
        this.otherLegalManage = otherLegalManage;
    }
    @ExcelField(title="其他项目合计", align=2, sort=14)
    public Double getOtherTotalFee() {
        return otherTotalFee;
    }

    public void setOtherTotalFee(Double otherTotalFee) {
        this.otherTotalFee = otherTotalFee;
    }
    @ExcelField(title="进项税额", align=2, sort=15)
    public Double getTheInputTax() {
        return theInputTax;
    }

    public void setTheInputTax(Double theInputTax) {
        this.theInputTax = theInputTax;
    }
    @ExcelField(title="架空导线型号", align=2, sort=16)
    public String getTenKvModel() {
        return tenKvModel;
    }

    public void setTenKvModel(String tenKvModel) {
        this.tenKvModel = tenKvModel;
    }
    @ExcelField(title="单位", align=2, sort=17)
    public String getTenKvUnit() {
        return tenKvUnit;
    }

    public void setTenKvUnit(String tenKvUnit) {
        this.tenKvUnit = tenKvUnit;
    }
    @ExcelField(title="10kV信息长度", align=2, sort=18)
    public Double getTenKvLength() {
        return tenKvLength;
    }

    public void setTenKvLength(Double tenKvLength) {
        this.tenKvLength = tenKvLength;
    }
    @ExcelField(title="10kV线路长度", align=2, sort=19)
    public Double getTenKvLineLength() {
        return tenKvLineLength;
    }

    public void setTenKvLineLength(Double tenKvLineLength) {
        this.tenKvLineLength = tenKvLineLength;
    }
    @ExcelField(title="其中:10kV线路", align=2, sort=20)
    public Double getTenKvItsLine() {
        return tenKvItsLine;
    }

    public void setTenKvItsLine(Double tenKvItsLine) {
        this.tenKvItsLine = tenKvItsLine;
    }
    @ExcelField(title="400v以下线路", align=2, sort=21)
    public Double getTenKvItesFhvFollow() {
        return tenKvItesFhvFollow;
    }

    public void setTenKvItesFhvFollow(Double tenKvItesFhvFollow) {
        this.tenKvItesFhvFollow = tenKvItesFhvFollow;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getCableTube() {
        return cableTube;
    }

    public void setCableTube(String cableTube) {
        this.cableTube = cableTube;
    }

    public List<ErpCreditEquipment> getErpCreditChild1s() {
        return erpCreditChild1s;
    }

    public void setErpCreditChild1s(List<ErpCreditEquipment> erpCreditChild1s) {
        this.erpCreditChild1s = erpCreditChild1s;
    }

    public List<ErpCreditMaterial> getErpCreditChild2s() {
        return erpCreditChild2s;
    }

    public void setErpCreditChild2s(List<ErpCreditMaterial> erpCreditChild2s) {
        this.erpCreditChild2s = erpCreditChild2s;
    }

}
