diff --git a/dntd-model-heatboiler/src/main/java/com/dky/calculate/Advantage.java b/dntd-model-heatboiler/src/main/java/com/dky/calculate/Advantage.java index af4c1ab..6db79ba 100644 --- a/dntd-model-heatboiler/src/main/java/com/dky/calculate/Advantage.java +++ b/dntd-model-heatboiler/src/main/java/com/dky/calculate/Advantage.java @@ -11,12 +11,13 @@ public class Advantage { double js = Math.round((lastYearFee - yearRunFee)*100.0)/100.0; return "本次改造投资回收期为"+hsq+"年,本改造方案相比较原技术节省年运行费用成本"+js+"元。"; } - //智能性 - public String intelligence(){ + // 智能性 + public String intelligence() { return "以电锅炉替代和实现精准控温。"; } - //环保性 - public String environment(Double yearReduceCarbon){ - return "本次改造方案减排"+yearReduceCarbon+"吨"; + + // 环保性 + public String environment(Double yearReduceCarbon) { + return "本次改造方案减排" + yearReduceCarbon + "吨"; } } diff --git a/dntd-model-heatboiler/src/main/java/com/dky/calculate/HeatBoilerModel.java b/dntd-model-heatboiler/src/main/java/com/dky/calculate/HeatBoilerModel.java new file mode 100644 index 0000000..9a6b916 --- /dev/null +++ b/dntd-model-heatboiler/src/main/java/com/dky/calculate/HeatBoilerModel.java @@ -0,0 +1,126 @@ +package com.dky.calculate; + +import com.dky.entity.Heatboiler; +import com.dky.entity.HeatboilerSpec; +import com.dky.entity.OriginalDevice; +import com.dky.utils.entity.DevSpec; + +public class HeatBoilerModel { + + + /** + * 计算初次投资费用 + * @param heatboilerSpec 非表中参数 + * @param heatboiler 基础入参 + * @param originalDevice 原设备参数 + * @param d 热效率,后期从设备中获取 TODO + * @return 初次投资费用 + */ + public static double calculateInitialInvestment(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice,Double d) { + + // 计算电替代设备台数 = 供热设备功率(蒸吨)/(电替代设备功率*热效率) + double substituteElectricityDevices = heatboiler.getHotDevicePower() / (heatboiler.getHotDevicePower() * d); + + // 计算初次投资费用 + return substituteElectricityDevices * heatboilerSpec.getDevModel(); + + } + + + /** + * 计算年运行费用 + * @param heatboilerSpec 非表中参数 + * @param heatboiler 基础入参 + * @param originalDevice 原设备参数 + * @param count 电替代设备台数 TODO + * @return 年运行费用 + */ + public static double calculateAnnualOperatingCost(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice ,Integer count) { + + // 电替代设备年耗电量=单台电替代设备的功率*电替代设备台数*电设备年运行时间 + double annualElectricityConsumption = heatboilerSpec.getSubstitutePower() * count * heatboilerSpec.getAnnualOperationTime(); + // 年运行费用=电替代设备年耗电量*平均电价(0.5元/千瓦时)+电替代设备人工费用成本 + return annualElectricityConsumption * 0.5 + heatboilerSpec.getSubstituteLaborCost(); + + } + + /** + * 计算年总费用 + * @param heatboilerSpec 非表中参数 + * @param heatboiler 基础入参 + * @param originalDevice 原设备参数 + * @param count 电替代设备台数 TODO + * @return 年总费用 + */ + public static double calculateAnnualTotalCost(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice ,Integer count) { + //(电替代设备台数*单台电设备价格)/电替代设备的使用年限+年运行费用 + return (count * heatboilerSpec.getDevModel()) / heatboilerSpec.getServiceLife() + calculateAnnualOperatingCost( heatboilerSpec, heatboiler , originalDevice,count); + } + + /** + * 计算年减碳量 + * @param heatboilerSpec 非表中参数 + * @param heatboiler 基础入参 + * @param originalDevice 原设备参数 + * @return 年减碳量 + */ + public static double calculateAnnualCarbonReduction(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice) { + + //年减碳量=(替代前年能源用量*0.7143千克标准煤/千克-电替代设备年耗电量*0.1229千克标准煤/千瓦时)*1.9003千克二氧化碳/千克 + final double standardCoalCoefficient = 0.7143; // 千克标准煤/千克 + final double electricityConsumptionCoefficient = 0.1229; // 千克标准煤/千瓦时 + final double carbonDioxideCoefficient = 1.9003; // 千克二氧化碳/千克 + + //单台电替代设备年耗电量 = 电替代设备年运行时间 * 电替代设备功率 + double electricSubstitutionEquipmentYearlyElectricityConsumption = heatboilerSpec.getAnnualOperationTime() * heatboilerSpec.getSubstitutePower(); + + return (originalDevice.getSubstituteBeforeEnergyConsumption() * standardCoalCoefficient + - electricSubstitutionEquipmentYearlyElectricityConsumption * electricityConsumptionCoefficient) + * carbonDioxideCoefficient; + } + + /** + * 计算替代电量 + * @param heatboilerSpec 非表中参数 + * @param heatboiler 基础入参 + * @param originalDevice 原设备参数 + * @param count 电替代设备台数 TODO + * @return 替代电量 + */ + public static double calculateSubstituteElectricity(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice,Integer count) { + // 电替代设备年耗电量=电替代设备的功率*电替代设备台数*电设备年运行时间 + return heatboilerSpec.getSubstitutePower() * count * heatboilerSpec.getAnnualOperationTime(); + + } + + /** + * 计算运行收益 + * @param heatboilerSpec 非表中参数 + * @param heatboiler 基础入参 + * @param originalDevice 原设备参数 + * @param currentYearOperatingCost 年运行费用 TODO + * @return 运行收益 + */ + public static double calculateOperatingIncome(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice,Double currentYearOperatingCost) { + //运行收益=年运行费用-上年运行费用(即原设备运行费用) + return currentYearOperatingCost - originalDevice.getPreviousYearOperatingCost(); + + } + + /** + * 计算投资回收期 + * @param heatboilerSpec 非表中参数 + * @param heatboiler 基础入参 + * @param originalDevice 原设备参数 + * @param d 热效率,后期从设备中获取 TODO + * @param currentYearOperatingCost 年运行费用 TODO + * @return 投资回收期 + */ + public static double calculatePaybackPeriod(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice,Double currentYearOperatingCost,Double d) { + return calculateInitialInvestment( heatboilerSpec, heatboiler , originalDevice,d)/calculateOperatingIncome( heatboilerSpec, heatboiler , originalDevice,currentYearOperatingCost); + } + + + + +} diff --git a/dntd-model-heatboiler/src/main/java/com/dky/entity/Heatboiler.java b/dntd-model-heatboiler/src/main/java/com/dky/entity/Heatboiler.java index 278df10..e22f46b 100644 --- a/dntd-model-heatboiler/src/main/java/com/dky/entity/Heatboiler.java +++ b/dntd-model-heatboiler/src/main/java/com/dky/entity/Heatboiler.java @@ -1,13 +1,17 @@ package com.dky.entity; public class Heatboiler { + // 出口温度 private Double exportTemperature; + + // 传热介质(1水,2油,3汽) private String hotMedium; + //供热设备功率(蒸吨)(t/h) private Double hotDevicePower; - //年能源用量 + //替代前年能源用量 private Double yearEnergy; - //执行电价 + //执行电价(万元) private Double electricityPrice; private OriginalDevice originalDevice; diff --git a/dntd-model-heatboiler/src/main/java/com/dky/entity/HeatboilerSpec.java b/dntd-model-heatboiler/src/main/java/com/dky/entity/HeatboilerSpec.java new file mode 100644 index 0000000..b299978 --- /dev/null +++ b/dntd-model-heatboiler/src/main/java/com/dky/entity/HeatboilerSpec.java @@ -0,0 +1,47 @@ +package com.dky.entity; + +import com.dky.utils.entity.DevSpec; + +public class HeatboilerSpec extends DevSpec { + + private double substitutePower; // 电替代设备功率 + private double substituteLaborCost; // 电替代设备人工费用 + private int serviceLife; // 电替代设备的使用年限 + private int annualOperationTime; // 电设备年运行时间 + + // Getter 和 Setter 方法 + + public double getSubstitutePower() { + return substitutePower; + } + + public void setSubstitutePower(double substitutePower) { + this.substitutePower = substitutePower; + } + + public double getSubstituteLaborCost() { + return substituteLaborCost; + } + + public void setSubstituteLaborCost(double substituteLaborCost) { + this.substituteLaborCost = substituteLaborCost; + } + + public int getServiceLife() { + return serviceLife; + } + + public void setServiceLife(int serviceLife) { + this.serviceLife = serviceLife; + } + + public int getAnnualOperationTime() { + return annualOperationTime; + } + + public void setAnnualOperationTime(int annualOperationTime) { + this.annualOperationTime = annualOperationTime; + } + + +} diff --git a/dntd-model-heatboiler/src/main/java/com/dky/entity/OriginalDevice.java b/dntd-model-heatboiler/src/main/java/com/dky/entity/OriginalDevice.java index 51b2de6..c5b7932 100644 --- a/dntd-model-heatboiler/src/main/java/com/dky/entity/OriginalDevice.java +++ b/dntd-model-heatboiler/src/main/java/com/dky/entity/OriginalDevice.java @@ -1,40 +1,61 @@ package com.dky.entity; public class OriginalDevice { - private String deviceType; - private Integer deviceNum; - private String deviceEnergyType; - private Double lastYearFee; + private int equipmentType; // 设备类型(1锅炉,2窑炉,3灶台) + private int quantity; // 台数(台) + private int energyType; // 能源类型(1煤,2油,3气) + private double previousYearOperatingCost; // 上年运行费用(万元) + private double substituteBeforeEnergyConsumption; // 替代前年能源用量 + private double electricityPrice; // 执行电价(万元) - public String getDeviceType() { - return deviceType; + // 构造方法(可以根据需要添加其他构造方法) + + // Getter 和 Setter 方法 + public int getEquipmentType() { + return equipmentType; + } + + public void setEquipmentType(int equipmentType) { + this.equipmentType = equipmentType; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public int getEnergyType() { + return energyType; } - public void setDeviceType(String deviceType) { - this.deviceType = deviceType; + public void setEnergyType(int energyType) { + this.energyType = energyType; } - public Integer getDeviceNum() { - return deviceNum; + public double getPreviousYearOperatingCost() { + return previousYearOperatingCost; } - public void setDeviceNum(Integer deviceNum) { - this.deviceNum = deviceNum; + public void setPreviousYearOperatingCost(double previousYearOperatingCost) { + this.previousYearOperatingCost = previousYearOperatingCost; } - public String getDeviceEnergyType() { - return deviceEnergyType; + public double getSubstituteBeforeEnergyConsumption() { + return substituteBeforeEnergyConsumption; } - public void setDeviceEnergyType(String deviceEnergyType) { - this.deviceEnergyType = deviceEnergyType; + public void setSubstituteBeforeEnergyConsumption(double substituteBeforeEnergyConsumption) { + this.substituteBeforeEnergyConsumption = substituteBeforeEnergyConsumption; } - public Double getLastYearFee() { - return lastYearFee; + public double getElectricityPrice() { + return electricityPrice; } - public void setLastYearFee(Double lastYearFee) { - this.lastYearFee = lastYearFee; + public void setElectricityPrice(double electricityPrice) { + this.electricityPrice = electricityPrice; } }