From ff059150fd265907ceebad0742efad84f0eaad61 Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Mon, 4 Mar 2024 14:04:20 +0800 Subject: [PATCH] =?UTF-8?q?2024-03-04=2014:02:56=20=E5=BB=BA=E7=AD=91?= =?UTF-8?q?=E4=BE=9B=E6=9A=96=E6=A8=A1=E5=9E=8B=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dky/utils/entity/SysDeviceHeatScene.java | 20 +-- .../com/dky/calculate/BuildHeatingModel.java | 20 ++- .../src/main/java/com/dky/calculate/CalC.java | 15 ++- .../java/com/dky/calculate/SchemeRating.java | 66 ++++++--- .../com/dky/calculate/SchemeRatingRes.java | 47 +++++++ .../com/dky/generate/BuildHeatingScene.java | 36 ++--- .../main/java/com/dky/security/SM4Utils.java | 2 +- .../src/main/java/com/dky/test/TestMain.java | 126 ------------------ .../src/main/resources/modelCode.properties | 2 +- 9 files changed, 152 insertions(+), 182 deletions(-) create mode 100644 dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRatingRes.java delete mode 100644 dntd-tool/src/main/java/com/dky/test/TestMain.java diff --git a/dntd-common/src/main/java/com/dky/utils/entity/SysDeviceHeatScene.java b/dntd-common/src/main/java/com/dky/utils/entity/SysDeviceHeatScene.java index e324aa6..7832410 100644 --- a/dntd-common/src/main/java/com/dky/utils/entity/SysDeviceHeatScene.java +++ b/dntd-common/src/main/java/com/dky/utils/entity/SysDeviceHeatScene.java @@ -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 + '}'; } diff --git a/dntd-model-buildheating/src/main/java/com/dky/calculate/BuildHeatingModel.java b/dntd-model-buildheating/src/main/java/com/dky/calculate/BuildHeatingModel.java index 9c906c1..80e6e4f 100644 --- a/dntd-model-buildheating/src/main/java/com/dky/calculate/BuildHeatingModel.java +++ b/dntd-model-buildheating/src/main/java/com/dky/calculate/BuildHeatingModel.java @@ -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; } diff --git a/dntd-model-buildheating/src/main/java/com/dky/calculate/CalC.java b/dntd-model-buildheating/src/main/java/com/dky/calculate/CalC.java index e5d2500..539fb00 100644 --- a/dntd-model-buildheating/src/main/java/com/dky/calculate/CalC.java +++ b/dntd-model-buildheating/src/main/java/com/dky/calculate/CalC.java @@ -35,7 +35,20 @@ public class CalC { return maps; } - + public static Double getC1(List> 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]; + } } diff --git a/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java b/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java index bf09f38..c4786bd 100644 --- a/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java +++ b/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java @@ -14,10 +14,11 @@ public class SchemeRating { * @param list * @return */ - public static Map> getOptimalList(List> list,Double costRatio,Double effRatio,Map maxEff,Map minPrice) { + public static Map getOptimalList(List> list,Double costRatio,Double effRatio,Map maxEff,Map minPrice) { - Map> optimalMap = new HashMap<>(); + Map optimalMap = new HashMap<>(); list.forEach(plan->{ + String devTechType = plan.get(0).getDeviceHeatScene().getDevTechType(); AtomicReference 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 getOptimalScheme(Map> map) { - Set keySet = map.keySet(); - Double maxValue = keySet.iterator().next(); - for (Iterator iterator = keySet.iterator(); iterator.hasNext(); ) { - Double value = iterator.next(); - if (value > maxValue) { - maxValue = value; + public static List getOptimalScheme(Map map) { + + final AtomicReference[] rating = new AtomicReference[]{new AtomicReference<>(-100.0)}; + final List[] 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 getMinPriceGroupByDevSubType( List alternateDeviceList){ + public static Map getMinPriceGroupByDevSubType(List> alternateDeviceList){ Map 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); } } }); diff --git a/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRatingRes.java b/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRatingRes.java new file mode 100644 index 0000000..58731d8 --- /dev/null +++ b/dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRatingRes.java @@ -0,0 +1,47 @@ +package com.dky.calculate; + + +import com.dky.utils.result.MatchedDevice; + +import java.util.List; + +public class SchemeRatingRes { + + List list; + + Double schemeRating; + + String planName; + + public SchemeRatingRes() { } + + public SchemeRatingRes(List list, Double schemeRating, String planName) { + this.list = list; + this.schemeRating = schemeRating; + this.planName = planName; + } + + public List getList() { + return list; + } + + public void setList(List 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; + } +} diff --git a/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java b/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java index e2ae61a..6b57a50 100644 --- a/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java +++ b/dntd-tool/src/main/java/com/dky/generate/BuildHeatingScene.java @@ -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; @@ -59,22 +56,24 @@ public class BuildHeatingScene implements DntdModelI { */ Double C = 0.0; if (originalDevInfo != null) { - //若存在原设备信息,则获取原设备中设备总功率,累加得出C + // 若存在原设备信息,则获取原设备中设备总功率,累加得出C } else { // C=建筑面积(万平方米)x770 C = (heatingArea / 10000) * 770; } + /* 根据建筑面积计算出不同技术类型下所需要不同功率设备数据 */ List> matchedDeviceGroupList = Scheme.calScheme(heatingArea, alternateDeviceList); + /* 替代后设备总功率C1 */ double C1 = 0.0; if (originalDevInfo != null){ //若存在原设备信息,则根据建筑面积计算每个技术类型下需要的不同功率的设备的数量,然后将不同功率及对应的数量进行计算得出总功率C1 - + C1 = CalC.getC1(matchedDeviceGroupList); } else { C1 = C/2.5; } @@ -106,13 +105,13 @@ public class BuildHeatingScene implements DntdModelI { } List matchedDeviceList ; - Map> listMap ; + Map listMap ; /* 根据具体容量与需量判断可使用的技术并计算评分 */ //计算不同细类下成本最小值与效率最大值 Map maxEffMap = SchemeRating.getMaxEfficiencyGroupByDevSubType(alternateDeviceList); - Map minPriceMap = SchemeRating.getMinPriceGroupByDevSubType(alternateDeviceList); + Map minPrice = SchemeRating.getMinPriceGroupByDevSubType(matchedDeviceGroupList); String remark = ""; if (D1 < A && A < D) { // 判断只能用热泵 @@ -124,23 +123,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> maps = new ArrayList<>(); listMap.forEach((k,v)->{ Map 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 +164,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)); //备注 diff --git a/dntd-tool/src/main/java/com/dky/security/SM4Utils.java b/dntd-tool/src/main/java/com/dky/security/SM4Utils.java index 4780630..6bd5b63 100644 --- a/dntd-tool/src/main/java/com/dky/security/SM4Utils.java +++ b/dntd-tool/src/main/java/com/dky/security/SM4Utils.java @@ -58,7 +58,7 @@ public class SM4Utils { } public static void main(String[] args) throws Exception { - Map decrypt = decrypt("GWnQ4RqqTc8n1Uj59xLoUq0YsJLmzgyVzBvI35uj+DaDjdU0HZoU2fCd33JFsVG+3tWpkuojap/b5eeutSp6d4x4juou3yhCF7yhLBqYs1tdr2DF5QqL8uTsLJuKf1Ys8iufExureFAQw+qjMN+W5UlKE5id39PDi2nsPJGUbwkrvkywf2wqaqwZy+i/QBOl"); + Map decrypt = decrypt("GLFIphzZ2SnR6kVx0gz2JBenxKHv3OrkbBPgTEeUcH8dP1vewChAxuWBZI+YsQS3H+Sb5/YEiJ0ub3p0QjXaSgbwTTqD4puEE/UZ7Yd4H8MPXFrtL0VVXoAArSbOj7JH"); System.out.println(decrypt.toString()); } } \ No newline at end of file diff --git a/dntd-tool/src/main/java/com/dky/test/TestMain.java b/dntd-tool/src/main/java/com/dky/test/TestMain.java deleted file mode 100644 index 0681132..0000000 --- a/dntd-tool/src/main/java/com/dky/test/TestMain.java +++ /dev/null @@ -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 alternateDeviceList = createDevList(); - - // List> alternateDeviceList = calSchemeMethodTest(14000.0, devList); - - // getMaxEfficiencyGroupByDevSubTypeTest(alternateDeviceList); - // getMinPriceGroupByDevSubTypeTest(alternateDeviceList); - - /* - 根据建筑面积计算出不同技术类型下所需要不同功率设备数据 - */ - List> matchedDeviceGroupList = Scheme.calScheme(44000.0, alternateDeviceList); - - - /* - 判断计算占比,默认效率0.8,成本0.2 - */ - double costRatio = 0.2; - double effRatio = 0.8; - - - List matchedDeviceList ; - Map> listMap ; - /* - 根据具体容量与需量判断可使用的技术并计算评分 - */ - //计算不同细类下成本最小值与效率最大值 - Map maxEffMap = SchemeRating.getMaxEfficiencyGroupByDevSubType(alternateDeviceList); - Map minPriceMap = SchemeRating.getMinPriceGroupByDevSubType(alternateDeviceList); - listMap = SchemeRating.getOptimalList(matchedDeviceGroupList,costRatio,effRatio,maxEffMap,minPriceMap); - matchedDeviceList = SchemeRating.getOptimalScheme(listMap); - - } - - - public static List> calSchemeMethodTest(Double buildArea, List SysDeviceHeatSceneList) { - return Scheme.calScheme(buildArea, SysDeviceHeatSceneList); - - } - - public static void getMaxEfficiencyGroupByDevSubTypeTest(List sysDeviceHeatSceneList){ - SchemeRating.getMaxEfficiencyGroupByDevSubType(sysDeviceHeatSceneList); - } - - public static void getMinPriceGroupByDevSubTypeTest(List sysDeviceHeatSceneList){ - SchemeRating.getMinPriceGroupByDevSubType(sysDeviceHeatSceneList); - } - - public static ListcreateDevList(){ - List 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; - } - -} diff --git a/dntd-tool/src/main/resources/modelCode.properties b/dntd-tool/src/main/resources/modelCode.properties index dce7ac9..ab28cb6 100644 --- a/dntd-tool/src/main/resources/modelCode.properties +++ b/dntd-tool/src/main/resources/modelCode.properties @@ -1,2 +1,2 @@ -0101=generate.BuildHeatingSence +0101=generate.BuildHeatingScene 0102=generate.HeatBoilerSence \ No newline at end of file