2024-01-30 18:35:06

master
魔神煜修罗皇 1 year ago
parent 2725199dd2
commit a253c3a9c3
  1. 4
      dntd-model-buildheating/src/main/java/com/dky/calculate/BuildHeatingModel.java
  2. 2
      dntd-model-buildheating/src/main/java/com/dky/calculate/SchemeRating.java
  3. 36
      dntd-tool/src/main/java/com/dky/generate/BuildHeatingSence.java

@ -30,7 +30,7 @@ public class BuildHeatingModel {
Double devicePower, Double devicePower,
Integer days, Integer days,
Double laborCost){ 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, Double devicePower,
Integer days, Integer days,
Double laborCost){ 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; return ((deviceNum * devicePrice) / useYears) + run;
} }

@ -30,7 +30,7 @@ public class SchemeRating {
cost = cost + ((device.getCount() * device.getDeviceHeatScene().getDevPrice()) + (device.getCount()) * device.getDeviceHeatScene().getDevSubstituteLaborCost() * device.getDeviceHeatScene().getDevServiceLife()); 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)); 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); optimalMap.put(rating.get(), plan);
} }

@ -10,6 +10,7 @@ import com.dky.utils.result.MatchedDevice;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@ -23,16 +24,17 @@ public class BuildHeatingSence implements DntdModelI {
List<SysDeviceHeatScene> list = ModelTool.specList; List<SysDeviceHeatScene> list = ModelTool.specList;
JSONObject distInfo = (JSONObject) jsonObject2.get("distInfo"); JSONObject distInfo = (JSONObject) jsonObject2.get("distInfo");
JSONObject buildInfo = (JSONObject) jsonObject2.get("buildInfo"); 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; Double A = runCapacity * 0.9 * 0.85;
// 冗余容量 // 冗余容量
@ -45,14 +47,19 @@ public class BuildHeatingSence implements DntdModelI {
map.forEach((k, v) -> { map.forEach((k, v) -> {
if (k.contains("电锅炉")) { if (k.contains("电锅炉")) {
C.set(v); C.set(v);
System.out.println("C" + C.get());
} else { } else {
C1.set(v); C1.set(v);
System.out.println("C1" + C1.get());
} }
}); });
} }
Double D = lastYearNeed + C.get(); Double D = lastYearNeed + C.get();
Double D1 = lastYearNeed + C1.get(); Double D1 = lastYearNeed + C1.get();
List<MatchedDevice> matchedDeviceList = new ArrayList<>(); List<MatchedDevice> matchedDeviceList;
Map<Double, List<MatchedDevice>> listMap;
// 判断只能用热泵 // 判断只能用热泵
if (D1 < A && A < D) { if (D1 < A && A < D) {
List<SysDeviceHeatScene> deviceList = new ArrayList<>(); List<SysDeviceHeatScene> deviceList = new ArrayList<>();
@ -61,11 +68,22 @@ public class BuildHeatingSence implements DntdModelI {
deviceList.add(sysDeviceHeatScene); deviceList.add(sysDeviceHeatScene);
} }
})); }));
matchedDeviceList = SchemeRating.getOptimalScheme(SchemeRating.getOptimalList(Scheme.calScheme(heatingArea, deviceList))); listMap = SchemeRating.getOptimalList(Scheme.calScheme(heatingArea, deviceList));
matchedDeviceList = SchemeRating.getOptimalScheme(listMap);
} else { } else {
matchedDeviceList = SchemeRating.getOptimalScheme(SchemeRating.getOptimalList(calScheme)); listMap = SchemeRating.getOptimalList(calScheme);
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());
maps.add(map);
});
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
AtomicReference<String> planInfos = new AtomicReference<>(); AtomicReference<String> planInfos = new AtomicReference<>();
AtomicReference<String> devTechType = new AtomicReference<>(); AtomicReference<String> devTechType = new AtomicReference<>();
@ -100,6 +118,8 @@ public class BuildHeatingSence implements DntdModelI {
jsonObject.put("devCount", devCount.get().replace("null","")); jsonObject.put("devCount", devCount.get().replace("null",""));
jsonObject.put("devPrice", devPrice.get().replace("null","")); jsonObject.put("devPrice", devPrice.get().replace("null",""));
jsonObject.put("devCost", decimalFormat.format(startCost.get())); 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("economy", Advantage.economy(startCost.get(), allCost.get(), runCost.get(), lastYearFee));
jsonObject.put("intelligence", Advantage.intelligence()); jsonObject.put("intelligence", Advantage.intelligence());
jsonObject.put("environment", Advantage.environment(Double.valueOf(decimalFormat.format(calculateAnnualCarbon.get())))); jsonObject.put("environment", Advantage.environment(Double.valueOf(decimalFormat.format(calculateAnnualCarbon.get()))));

Loading…
Cancel
Save