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;
}
}