# Conflicts:
#	dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java
master
林颖晨 1 year ago
commit 770815d6fe
  1. 20
      dntd-common/src/main/java/com/dky/utils/entity/SysDeviceHeatScene.java
  2. 20
      dntd-model-buildheating/src/main/java/com/dky/calculate/BuildHeatingModel.java
  3. 15
      dntd-model-buildheating/src/main/java/com/dky/calculate/CalC.java
  4. 66
      dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java
  5. 47
      dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRatingRes.java
  6. 32
      dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java
  7. 2
      dntd-tool/src/main/java/com/dky/security/SM4Utils.java
  8. 126
      dntd-tool/src/main/java/com/dky/test/TestMain.java
  9. 2
      dntd-tool/src/main/resources/modelCode.properties

@ -55,15 +55,17 @@ public class SysDeviceHeatScene {
@Override
public String toString() {
return "SysDeviceHeatScene{" +
"id='" + id + '\'' +
", devSubType='" + devSubType + '\'' +
", devTechType='" + devTechType + '\'' +
", heatEfficiency=" + heatEfficiency +
", devPower=" + devPower +
", devPrice=" + devPrice +
", devSubstituteLaborCost=" + devSubstituteLaborCost +
", devReferenceArea=" + devReferenceArea +
", devServiceLife=" + devServiceLife +
"id = " + id +
",devType='" + devType + '\'' +
",设备细类: " + devSubType +
",技术类型: " + devTechType +
",热效率 = " + heatEfficiency +
",功率 = " + devPower +
",单价 =" + devPrice +
",电替代设备年人工费用: " + devSubstituteLaborCost +
",原设备的人工费用:" + laborCost +
",单台设备可参考供暖面积 = " + devReferenceArea +
",设备使用年限 = " + devServiceLife +
'}';
}

@ -3,6 +3,11 @@ package com.dky.calculate;
public class BuildHeatingModel {
// 定义常量
private static final double COAL_PRICE_PER_KILOGRAM = 0.9; // 煤炭的平均价格,单位:元/千克
private static final double STANDARD_COAL_CONVERSION_FACTOR = 0.7143; // 千克标准煤/千克
private static final double CO2_CONVERSION_FACTOR = 1.9003; // 千克二氧化碳/千克
private static final double ELECTRICITY_SUBSTITUTION_CONVERSION_FACTOR = 0.1229; // 千克标准煤/千瓦时
/**
* 初次投资费用万元
@ -56,20 +61,25 @@ public class BuildHeatingModel {
/**
* 年减碳
* @param lastYearFee 上年运行费用
* @param oldDaborCost 原设备的人工费用
* @param oldLaborCost 原设备的人工费用
* @param deviceNum 电锅炉设备台数
* @param devicePower 单台电锅炉的功率
* @param days 年采暖供冷时间()
* @return
*/
public static Double calculateAnnualCarbonReduction(Double lastYearFee,
Double oldDaborCost,
Double oldLaborCost,
Integer deviceNum,
Double devicePower,
Integer days){
double d1 = (((lastYearFee - oldDaborCost) / 0.9) * 0.7143);
double d2 = deviceNum * devicePower * days * 24;
return (d1 - (d2 * 0.1229)) * 1.9003;
// 计算煤炭减少的碳排放量
double coalReduction = (lastYearFee - oldLaborCost) / COAL_PRICE_PER_KILOGRAM * STANDARD_COAL_CONVERSION_FACTOR;
// 计算电替代设备增加的碳排放量
double electricityIncrease = getElectric(deviceNum, devicePower, days) * ELECTRICITY_SUBSTITUTION_CONVERSION_FACTOR;
// 计算总的年减碳量
return (coalReduction - electricityIncrease) * CO2_CONVERSION_FACTOR;
}

@ -35,7 +35,20 @@ public class CalC {
return maps;
}
public static Double getC1(List<List<MatchedDevice>> args) {
// 循环遍历各个方案
final Double[] maxPower = {-100.0};
args.parallelStream().forEach(plan -> {
Double power = 0.0;
for (MatchedDevice device : plan){
power = power + (device.getCount() * device.getDeviceHeatScene().getDevPower()) ;
}
if (power >= maxPower[0]){
maxPower[0] = power;
}
});
return maxPower[0];
}
}

@ -14,10 +14,11 @@ public class SchemeRating {
* @param list
* @return
*/
public static Map<Double, List<MatchedDevice>> getOptimalList(List<List<MatchedDevice>> list,Double costRatio,Double effRatio,Map<String,Double> maxEff,Map<String,Double> minPrice) {
public static Map<String, SchemeRatingRes> getOptimalList(List<List<MatchedDevice>> list,Double costRatio,Double effRatio,Map<String,Double> maxEff,Map<String, Double> minPrice) {
Map<Double, List<MatchedDevice>> optimalMap = new HashMap<>();
Map<String, SchemeRatingRes> optimalMap = new HashMap<>();
list.forEach(plan->{
String devTechType = plan.get(0).getDeviceHeatScene().getDevTechType();
AtomicReference<Double> rating = new AtomicReference<>(0.0);
String devSubType = plan.get(0).getDeviceHeatScene().getDevSubType();
Double eff = 0.0;
@ -28,28 +29,44 @@ public class SchemeRating {
for (MatchedDevice device : plan) {
cost = cost + ((device.getCount() * device.getDeviceHeatScene().getDevPrice()) + (device.getCount()) * device.getDeviceHeatScene().getDevSubstituteLaborCost() * device.getDeviceHeatScene().getDevServiceLife());
}
//3、(1-(选择对应设备细类的效率最大的效率值(效率最大值)-当前设备的效率值值)/效率最大值)*100*系数 +(1-(当前成本值-对应设备细类的成本最小值)/对应设备细类的成本最小值)*100*0.2。取最高得分。
rating.set(((1 - ((maxEff.get(devSubType) - eff) / maxEff.get(devSubType))) * 100 * effRatio) + ((1 - ((cost - minPrice.get(devSubType)) / minPrice.get(devSubType))) * 100 * costRatio));
optimalMap.put(rating.get(), plan);
double v1 = (maxEff.get(devSubType) - eff) / maxEff.get(devSubType); // 热效率占比计算
double v = (cost - minPrice.get(devSubType)) / minPrice.get(devSubType); // 成本占比计算
System.out.println("当前方案成本: " + cost + ",当前方案热效率: " + eff + ",技术选型: " + devSubType + ",最小成本Map: " + minPrice + ",最大热效率Map: " + maxEff);
// System.out.println("成本除法运算 = " + v + ",减法运算 = " + (1 - v) + ",乘法运算 = " + (1 -v) * 20 + "。");
// System.out.println("热效率除法运算 = " + v1 + ",减法运算 = " + (1 - v1) + ",乘法运算 = " + (1 -v1) * 80 + "。\n");
// 3、(1-(选择对应设备细类的效率最大的效率值(效率最大值)-当前设备的效率值值)/效率最大值)*100*系数 +(1-(当前成本值-对应设备细类的成本最小值)/对应设备细类的成本最小值)*100*0.2。取最高得分。
rating.set(((1 - v1) * 100 * effRatio) + ((1 - v) * 100 * costRatio));
// 方案评分结果
SchemeRatingRes schemeRatingRes = new SchemeRatingRes(plan, rating.get(), devTechType);
optimalMap.put(devTechType, schemeRatingRes);
System.out.println("方案详情 = ");
for (MatchedDevice matchedDevice : plan){
System.out.println(matchedDevice);
}
System.out.println("当前方案评分: " + rating.get() + "\n");
});
return optimalMap;
}
/**
* 获取最优评分
* 获取最优评分的方案
* @param map
* @return
*/
public static List<MatchedDevice> getOptimalScheme(Map<Double, List<MatchedDevice>> map) {
Set<Double> keySet = map.keySet();
Double maxValue = keySet.iterator().next();
for (Iterator<Double> iterator = keySet.iterator(); iterator.hasNext(); ) {
Double value = iterator.next();
if (value > maxValue) {
maxValue = value;
public static List<MatchedDevice> getOptimalScheme(Map<String, SchemeRatingRes> map) {
final AtomicReference<Double>[] rating = new AtomicReference[]{new AtomicReference<>(-100.0)};
final List<MatchedDevice>[] list = new List[]{new ArrayList<>()};
map.forEach((k,v)->{
if (v.getSchemeRating() > rating[0].get()) {
rating[0].set(v.getSchemeRating());
list[0] = v.getList();
}
}
return map.get(maxValue);
});
return list[0];
}
/**
@ -76,18 +93,23 @@ public class SchemeRating {
/**
* 获取不同设备细类下的成本最小值
* @param alternateDeviceList 可替代设备列表
* @return 不同设备细类下的成本最小值map
* @return 不同设备细类下的成本最小值
*/
public static Map<String,Double> getMinPriceGroupByDevSubType( List<SysDeviceHeatScene> alternateDeviceList){
public static Map<String,Double> getMinPriceGroupByDevSubType(List<List<MatchedDevice>> alternateDeviceList){
Map<String,Double> map = new HashMap<>();
alternateDeviceList.forEach(alternateDevice -> {
String devSubType = alternateDevice.getDevSubType();
alternateDeviceList.forEach(plan -> {
Double thisPlanCost = 0.0;
String devSubType = plan.get(0).getDeviceHeatScene().getDevSubType();
for (MatchedDevice device : plan) {
thisPlanCost = thisPlanCost + ((device.getCount() * device.getDeviceHeatScene().getDevPrice()) + (device.getCount()) * device.getDeviceHeatScene().getDevSubstituteLaborCost() * device.getDeviceHeatScene().getDevServiceLife());
}
Double v = map.get(devSubType);
if ( v == null){
map.put(devSubType,alternateDevice.getDevPrice()+ alternateDevice.getDevSubstituteLaborCost()*alternateDevice.getDevServiceLife());
map.put(devSubType, thisPlanCost);
} else {
if( alternateDevice.getDevPrice() < v){
map.put(devSubType,alternateDevice.getDevPrice() + alternateDevice.getDevSubstituteLaborCost()*alternateDevice.getDevServiceLife());
if(thisPlanCost < v){
map.put(devSubType, thisPlanCost);
}
}
});

@ -0,0 +1,47 @@
package com.dky.calculate;
import com.dky.utils.result.MatchedDevice;
import java.util.List;
public class SchemeRatingRes {
List<MatchedDevice> list;
Double schemeRating;
String planName;
public SchemeRatingRes() { }
public SchemeRatingRes(List<MatchedDevice> list, Double schemeRating, String planName) {
this.list = list;
this.schemeRating = schemeRating;
this.planName = planName;
}
public List<MatchedDevice> getList() {
return list;
}
public void setList(List<MatchedDevice> list) {
this.list = list;
}
public Double getSchemeRating() {
return schemeRating;
}
public void setSchemeRating(Double schemeRating) {
this.schemeRating = schemeRating;
}
public String getPlanName() {
return planName;
}
public void setPlanName(String planName) {
this.planName = planName;
}
}

@ -2,10 +2,7 @@ package com.dky.generate;
import cn.hutool.json.JSONObject;
import com.dky.calculate.BuildHeatingAdvantage;
import com.dky.calculate.BuildHeatingModel;
import com.dky.calculate.Scheme;
import com.dky.calculate.SchemeRating;
import com.dky.calculate.*;
import com.dky.modelI.DntdModelI;
import com.dky.utils.entity.SysDeviceHeatScene;
import com.dky.utils.result.MatchedDevice;
@ -20,7 +17,7 @@ public class BuildHeatingScene implements DntdModelI {
DecimalFormat decimalFormat = new DecimalFormat("#.00");
//首先A=由运行/合同容量折合成kW(x0.9)x85%,
// 首先A=由运行/合同容量折合成kW(x0.9)x85%,
static final Double COEFFICIENT_1 = 0.9;
static final Double COEFFICIENT_2 = 0.85;
@ -74,7 +71,7 @@ public class BuildHeatingScene implements DntdModelI {
double C1 = 0.0;
if (originalDevInfo != null){
//若存在原设备信息,则根据建筑面积计算每个技术类型下需要的不同功率的设备的数量,然后将不同功率及对应的数量进行计算得出总功率C1,取最大
C1 = CalC.getC1(matchedDeviceGroupList);
} else {
C1 = C/2.5;
}
@ -106,13 +103,13 @@ public class BuildHeatingScene implements DntdModelI {
}
List<MatchedDevice> matchedDeviceList ;
Map<Double, List<MatchedDevice>> listMap ;
Map<String, SchemeRatingRes> listMap ;
/*
根据具体容量与需量判断可使用的技术并计算评分
*/
//计算不同细类下成本最小值与效率最大值
Map<String, Double> maxEffMap = SchemeRating.getMaxEfficiencyGroupByDevSubType(alternateDeviceList);
Map<String, Double> minPriceMap = SchemeRating.getMinPriceGroupByDevSubType(alternateDeviceList);
Map<String, Double> minPrice = SchemeRating.getMinPriceGroupByDevSubType(matchedDeviceGroupList);
String remark = "";
if (D1 < A && A < D) {
// 判断只能用热泵
@ -124,23 +121,23 @@ public class BuildHeatingScene implements DntdModelI {
}
}));
listMap = SchemeRating.getOptimalList(heatPumpDevList,costRatio,effRatio,maxEffMap,minPriceMap);
listMap = SchemeRating.getOptimalList(heatPumpDevList,costRatio,effRatio,maxEffMap,minPrice);
matchedDeviceList = SchemeRating.getOptimalScheme(listMap);
} else {
//同时考虑热泵和电锅炉
// 同时考虑热泵和电锅炉
if ( A < D1){
remark = "本方案存在扩容投资需求,扩容投资不计入初次投资费用";
}
listMap = SchemeRating.getOptimalList(matchedDeviceGroupList,costRatio,effRatio,maxEffMap,minPriceMap);
listMap = SchemeRating.getOptimalList(matchedDeviceGroupList,costRatio,effRatio,maxEffMap,minPrice);
matchedDeviceList = SchemeRating.getOptimalScheme(listMap);
}
List<Map<String, Object>> maps = new ArrayList<>();
listMap.forEach((k,v)->{
Map<String, Object> map = new HashMap<>();
map.put("rating", decimalFormat.format(k));
map.put("plan", v);
map.put("planName", v.get(0).getDeviceHeatScene().getDevTechType());
map.put("rating", decimalFormat.format(v.getSchemeRating()));
map.put("plan", v.getList());
map.put("planName", v.getPlanName());
maps.add(map);
});
@ -165,17 +162,20 @@ public class BuildHeatingScene implements DntdModelI {
startCost = startCost + (matchedDevice.getCount() * matchedDevice.getDeviceHeatScene().getDevPrice());
runCost = runCost + (BuildHeatingModel.getRunCost(matchedDevice.getCount(), matchedDevice.getDeviceHeatScene().getDevPower(), days, matchedDevice.getDeviceHeatScene().getDevSubstituteLaborCost()));
allCost = allCost + (BuildHeatingModel.getYearCost(matchedDevice.getCount(), matchedDevice.getDeviceHeatScene().getDevPrice(), matchedDevice.getDeviceHeatScene().getDevServiceLife(), matchedDevice.getDeviceHeatScene().getDevPower(), days, matchedDevice.getDeviceHeatScene().getDevSubstituteLaborCost()));
calculateAnnualCarbon = calculateAnnualCarbon + (BuildHeatingModel.calculateAnnualCarbonReduction(lastYearFee, matchedDevice.getDeviceHeatScene().getLaborCost(), matchedDevice.getCount(), matchedDevice.getDeviceHeatScene().getDevPower(), days));
electric = electric + (BuildHeatingModel.getElectric(matchedDevice.getCount(), matchedDevice.getDeviceHeatScene().getDevPower(), days));
calculateAnnualCarbon = calculateAnnualCarbon + (BuildHeatingModel.calculateAnnualCarbonReduction(lastYearFee, matchedDevice.getCount() * matchedDevice.getDeviceHeatScene().getLaborCost(), matchedDevice.getCount(), matchedDevice.getDeviceHeatScene().getDevPower(), days));
}
//初次投资费用
returnJsonObject.set("startCost", decimalFormat.format(startCost));
// 设备总价
returnJsonObject.set("devCost", decimalFormat.format(startCost));
//年运行费用
returnJsonObject.set("yearRunCost", decimalFormat.format(runCost));
//年总费用
returnJsonObject.set("yearCost", decimalFormat.format(allCost));
//年减碳量
returnJsonObject.set("calculate", decimalFormat.format(calculateAnnualCarbon));
returnJsonObject.set("calculate", decimalFormat.format(calculateAnnualCarbon/1000));
//替代电量
returnJsonObject.set("electric", decimalFormat.format(electric));
//备注

@ -58,7 +58,7 @@ public class SM4Utils {
}
public static void main(String[] args) throws Exception {
Map<String, String> decrypt = decrypt("GWnQ4RqqTc8n1Uj59xLoUq0YsJLmzgyVzBvI35uj+DaDjdU0HZoU2fCd33JFsVG+3tWpkuojap/b5eeutSp6d4x4juou3yhCF7yhLBqYs1tdr2DF5QqL8uTsLJuKf1Ys8iufExureFAQw+qjMN+W5UlKE5id39PDi2nsPJGUbwkrvkywf2wqaqwZy+i/QBOl");
Map<String, String> decrypt = decrypt("GLFIphzZ2SnR6kVx0gz2JBenxKHv3OrkbBPgTEeUcH8dP1vewChAxuWBZI+YsQS3H+Sb5/YEiJ0ub3p0QjXaSgbwTTqD4puEE/UZ7Yd4H8MPXFrtL0VVXoAArSbOj7JH");
System.out.println(decrypt.toString());
}
}

@ -1,126 +0,0 @@
package com.dky.test;
import com.dky.calculate.Scheme;
import com.dky.calculate.SchemeRating;
import com.dky.utils.entity.SysDeviceHeatScene;
import com.dky.utils.result.MatchedDevice;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class TestMain {
public static void main(String[] args) {
List<SysDeviceHeatScene> alternateDeviceList = createDevList();
// List<List<MatchedDevice>> alternateDeviceList = calSchemeMethodTest(14000.0, devList);
// getMaxEfficiencyGroupByDevSubTypeTest(alternateDeviceList);
// getMinPriceGroupByDevSubTypeTest(alternateDeviceList);
/*
根据建筑面积计算出不同技术类型下所需要不同功率设备数据
*/
List<List<MatchedDevice>> matchedDeviceGroupList = Scheme.calScheme(44000.0, alternateDeviceList);
/*
判断计算占比默认效率0.8成本0.2
*/
double costRatio = 0.2;
double effRatio = 0.8;
List<MatchedDevice> matchedDeviceList ;
Map<Double, List<MatchedDevice>> listMap ;
/*
根据具体容量与需量判断可使用的技术并计算评分
*/
//计算不同细类下成本最小值与效率最大值
Map<String, Double> maxEffMap = SchemeRating.getMaxEfficiencyGroupByDevSubType(alternateDeviceList);
Map<String, Double> minPriceMap = SchemeRating.getMinPriceGroupByDevSubType(alternateDeviceList);
listMap = SchemeRating.getOptimalList(matchedDeviceGroupList,costRatio,effRatio,maxEffMap,minPriceMap);
matchedDeviceList = SchemeRating.getOptimalScheme(listMap);
}
public static List<List<MatchedDevice>> calSchemeMethodTest(Double buildArea, List<SysDeviceHeatScene> SysDeviceHeatSceneList) {
return Scheme.calScheme(buildArea, SysDeviceHeatSceneList);
}
public static void getMaxEfficiencyGroupByDevSubTypeTest(List<SysDeviceHeatScene> sysDeviceHeatSceneList){
SchemeRating.getMaxEfficiencyGroupByDevSubType(sysDeviceHeatSceneList);
}
public static void getMinPriceGroupByDevSubTypeTest(List<SysDeviceHeatScene> sysDeviceHeatSceneList){
SchemeRating.getMinPriceGroupByDevSubType(sysDeviceHeatSceneList);
}
public static List<SysDeviceHeatScene>createDevList(){
List<SysDeviceHeatScene> deviceList = new ArrayList<>();
// 模拟从数据库中检索数据
Object[][] data =
{
{19, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电阻类)", 0.95, 360.00, 80000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
{20, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电阻类)", 0.95, 720.00, 100000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
{21, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电阻类)", 0.95, 1440.00, 160000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
{22, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电极类)", 0.97, 360.00, 280000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
{23, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电极类)", 0.97, 720.00, 460000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
{24, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电极类)", 0.97, 1440.00, 900000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
{25, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电磁涡流类)", 0.98, 360.00, 150000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
{26, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电磁涡流类)", 0.98, 720.00, 180000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
{27, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电磁涡流类)", 0.98, 1440.00, 300000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
{28, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(固体蓄热)", 0.95, 360.00, 360000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
{29, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(固体蓄热)", 0.95, 720.00, 720000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
{30, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(固体蓄热)", 0.95, 1440.00, 1440000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
{31, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(相变蓄热)", 0.98, 360.00, 120000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
{32, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(相变蓄热)", 0.98, 720.00, 160000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
{33, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(相变蓄热)", 0.98, 1440.00, 280000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
{34, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(水蓄)", 0.97, 360.00, 110000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
{35, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(水蓄)", 0.97, 720.00, 150000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
{36, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(水蓄)", 0.97, 1440.00, 260000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
{37, "热泵", "供冷/暖", "水源热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
{38, "热泵", "供冷/暖", "水源热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
{39, "热泵", "供冷/暖", "水源热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
{40, "热泵", "供冷/暖", "土壤源热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
{41, "热泵", "供冷/暖", "土壤源热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
{42, "热泵", "供冷/暖", "土壤源热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
{43, "热泵", "供冷/暖", "空气源热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
{44, "热泵", "供冷/暖", "空气源热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
{45, "热泵", "供冷/暖", "空气源热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
{46, "热泵", "供冷/暖", "低品位余热源(如电厂低温循环水)热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
{47, "热泵", "供冷/暖", "低品位余热源(如电厂低温循环水)热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
{48, "热泵", "供冷/暖", "低品位余热源(如电厂低温循环水)热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
{49, "热泵", "供冷/暖", "高温蒸汽热泵", 3.00, 45.00, 380000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
{50, "热泵", "供冷/暖", "高温蒸汽热泵", 3.00, 120.00, 550000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
};
// 创建对象并添加到列表
for (Object[] row : data) {
int id = (int) row[0];
String devType = (String) row[1];
String devSubType = (String) row[2];
String devTechType = (String) row[3];
double heatEfficiency = (double) row[4];
double devPower = (double) row[5];
double devPrice = (double) row[6];
double devSubstituteLaborCost = (double) row[7];
double laborCost = (double) row[8];
double devReferenceArea = (double) row[9];
int devServiceLife = (int) row[10];
SysDeviceHeatScene device = new SysDeviceHeatScene(
id, devType, devSubType, devTechType, heatEfficiency, devPower, devPrice,
devSubstituteLaborCost, laborCost, devReferenceArea, devServiceLife, null, null);
deviceList.add(device);
}
return deviceList;
}
}

@ -1,2 +1,2 @@
0101=generate.BuildHeatingSence
0101=generate.BuildHeatingScene
0102=generate.HeatBoilerSence
Loading…
Cancel
Save