From a253c3a9c32e48d79c38cdcecc7bb93850ac1f6d Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Wed, 21 Feb 2024 10:24:10 +0800 Subject: [PATCH] 2024-01-30 18:35:06 --- .../com/dky/calculate/BuildHeatingModel.java | 4 +-- .../java/com/dky/calculate/SchemeRating.java | 2 +- .../com/dky/generate/BuildHeatingSence.java | 36 ++++++++++++++----- 3 files changed, 31 insertions(+), 11 deletions(-) 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 ac3e06d..9c906c1 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 @@ -30,7 +30,7 @@ public class BuildHeatingModel { Double devicePower, Integer days, Double laborCost){ - return (deviceNum * devicePower * days * 24 * 0.5) + (laborCost * deviceNum); + return (deviceNum * devicePower * days * 24 * 0.5) + (laborCost ); } /** @@ -49,7 +49,7 @@ public class BuildHeatingModel { Double devicePower, Integer days, Double laborCost){ - double run = (deviceNum * devicePower * days * 24 * 0.5) + (laborCost * deviceNum);; + double run = (deviceNum * devicePower * days * 24 * 0.5) + (laborCost ); return ((deviceNum * devicePrice) / useYears) + run; } 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 a657aad..e4435d1 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 @@ -30,7 +30,7 @@ public class SchemeRating { cost = cost + ((device.getCount() * device.getDeviceHeatScene().getDevPrice()) + (device.getCount()) * device.getDeviceHeatScene().getDevSubstituteLaborCost() * device.getDeviceHeatScene().getDevServiceLife()); } rating.set(((1 - ((v1[0] - eff) / v1[0])) * 100 * 0.8) + ((1 - ((cost - v1[1]) / v1[1])) * 100 * 0.2)); - System.out.println("方案: " + plan + ",评分 = " + rating + "\n"); + // System.out.println("方案: " + plan + ",评分 = " + rating + "\n"); optimalMap.put(rating.get(), plan); } diff --git a/dntd-tool/src/main/java/com/dky/generate/BuildHeatingSence.java b/dntd-tool/src/main/java/com/dky/generate/BuildHeatingSence.java index a2427fe..4f87f3d 100644 --- a/dntd-tool/src/main/java/com/dky/generate/BuildHeatingSence.java +++ b/dntd-tool/src/main/java/com/dky/generate/BuildHeatingSence.java @@ -10,6 +10,7 @@ import com.dky.utils.result.MatchedDevice; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; @@ -23,16 +24,17 @@ public class BuildHeatingSence implements DntdModelI { List list = ModelTool.specList; JSONObject distInfo = (JSONObject) jsonObject2.get("distInfo"); JSONObject buildInfo = (JSONObject) jsonObject2.get("buildInfo"); + System.out.println("时间: " + Integer.parseInt(buildInfo.get("days").toString())); // 运行容量 - Double runCapacity = (Double) distInfo.get("runCapacity"); + Double runCapacity = Double.parseDouble(distInfo.get("runCapacity").toString()); // 上年最大需量 - Double lastYearNeed = (Double) distInfo.get("lastYearNeed"); + Double lastYearNeed = Double.parseDouble(distInfo.get("lastYearNeed").toString()); // 建筑面积 - Double heatingArea = (Double) buildInfo.get("heatingArea"); + Double heatingArea = Double.parseDouble(buildInfo.get("heatingArea").toString()); // 年采暖时间(天) - Integer days = (Integer) buildInfo.get("days"); + Integer days = Integer.parseInt(buildInfo.get("days").toString()); // 上年运行费用(万元) - Double lastYearFee = (Double) buildInfo.get("lastYearFee"); + Double lastYearFee = Double.parseDouble(buildInfo.get("lastYearFee").toString()); Double A = runCapacity * 0.9 * 0.85; // 冗余容量 @@ -45,14 +47,19 @@ public class BuildHeatingSence implements DntdModelI { map.forEach((k, v) -> { if (k.contains("电锅炉")) { C.set(v); + System.out.println("C" + C.get()); } else { C1.set(v); + System.out.println("C1" + C1.get()); } }); } + + Double D = lastYearNeed + C.get(); Double D1 = lastYearNeed + C1.get(); - List matchedDeviceList = new ArrayList<>(); + List matchedDeviceList; + Map> listMap; // 判断只能用热泵 if (D1 < A && A < D) { List deviceList = new ArrayList<>(); @@ -61,11 +68,22 @@ public class BuildHeatingSence implements DntdModelI { deviceList.add(sysDeviceHeatScene); } })); - matchedDeviceList = SchemeRating.getOptimalScheme(SchemeRating.getOptimalList(Scheme.calScheme(heatingArea, deviceList))); + listMap = SchemeRating.getOptimalList(Scheme.calScheme(heatingArea, deviceList)); + matchedDeviceList = SchemeRating.getOptimalScheme(listMap); } else { - matchedDeviceList = SchemeRating.getOptimalScheme(SchemeRating.getOptimalList(calScheme)); + listMap = SchemeRating.getOptimalList(calScheme); + 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()); + maps.add(map); + }); + JSONObject jsonObject = new JSONObject(); AtomicReference planInfos = new AtomicReference<>(); AtomicReference devTechType = new AtomicReference<>(); @@ -100,6 +118,8 @@ public class BuildHeatingSence implements DntdModelI { jsonObject.put("devCount", devCount.get().replace("null","")); jsonObject.put("devPrice", devPrice.get().replace("null","")); jsonObject.put("devCost", decimalFormat.format(startCost.get())); + jsonObject.put("safety", "精准控温"); + jsonObject.put("matchedDeviceList", maps); jsonObject.put("economy", Advantage.economy(startCost.get(), allCost.get(), runCost.get(), lastYearFee)); jsonObject.put("intelligence", Advantage.intelligence()); jsonObject.put("environment", Advantage.environment(Double.valueOf(decimalFormat.format(calculateAnnualCarbon.get()))));