|
|
|
@ -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<SysDeviceHeatScene> 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<MatchedDevice> matchedDeviceList = new ArrayList<>(); |
|
|
|
|
List<MatchedDevice> matchedDeviceList; |
|
|
|
|
Map<Double, List<MatchedDevice>> listMap; |
|
|
|
|
// 判断只能用热泵
|
|
|
|
|
if (D1 < A && A < D) { |
|
|
|
|
List<SysDeviceHeatScene> 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<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(); |
|
|
|
|
AtomicReference<String> planInfos = 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("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())))); |
|
|
|
|