|
|
|
@ -4,15 +4,14 @@ import cn.hutool.json.JSONObject; |
|
|
|
|
import com.dky.calculate.*; |
|
|
|
|
import com.dky.modelI.DntdModelI; |
|
|
|
|
import com.dky.utils.GetTargetDeviceList; |
|
|
|
|
import com.dky.utils.GetThisEnergyEmissions; |
|
|
|
|
import com.dky.utils.entity.SysDeviceHeatScene; |
|
|
|
|
import com.dky.utils.enums.DeviceSubType; |
|
|
|
|
import com.dky.utils.enums.EnergyEmissions; |
|
|
|
|
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.*; |
|
|
|
|
|
|
|
|
|
public class HeatBoilerScene implements DntdModelI { |
|
|
|
|
|
|
|
|
@ -49,10 +48,6 @@ public class HeatBoilerScene implements DntdModelI { |
|
|
|
|
Double heatingNeedPower = Double.parseDouble(heatUseNeedInfo.get("heatingNeedPower").toString()) * 770; |
|
|
|
|
// 出口温度(摄氏度)
|
|
|
|
|
Double thermometerValueOut = Double.parseDouble(heatUseNeedInfo.get("thermometerValueOut").toString()); |
|
|
|
|
// 替代前年能源用量
|
|
|
|
|
Double previousYearEnergyUsage = Double.parseDouble(originalDevInfo.get("previousYearEnergyUsage").toString()); |
|
|
|
|
// 上年运行费用(元)
|
|
|
|
|
Double lastYearFee = Double.parseDouble(originalDevInfo.get("lastYearFee").toString()); |
|
|
|
|
|
|
|
|
|
// 根据供热需量设备功率计算出不同技术类型下所需要不同功率设备数据
|
|
|
|
|
List<List<MatchedDevice>> matchedDeviceGroupList = HeatBoilerScheme.calScheme(heatingNeedPower, alternateDeviceList); |
|
|
|
@ -113,7 +108,7 @@ public class HeatBoilerScene implements DntdModelI { |
|
|
|
|
Double startCost = 0.0; |
|
|
|
|
Double runCost = 0.0; |
|
|
|
|
Double allCost = 0.0; |
|
|
|
|
Double calculateAnnualCarbon; |
|
|
|
|
Double calculateAnnualCarbon = 0.0; |
|
|
|
|
Double electric = 0.0; |
|
|
|
|
List<HashMap<String, Object>> deviceList = new ArrayList<>(); |
|
|
|
|
for (MatchedDevice matchedDevice : matchedDeviceList) { |
|
|
|
@ -133,7 +128,6 @@ public class HeatBoilerScene implements DntdModelI { |
|
|
|
|
|
|
|
|
|
electric = electric + (HeatBoilerModel.calculateSubstituteElectricity(matchedDevice.getDeviceHeatScene().getDevPower(), matchedDevice.getCount(), matchedDevice.getDeviceHeatScene().getDevAnnualOperationTime())); |
|
|
|
|
|
|
|
|
|
// calculateAnnualCarbon = calculateAnnualCarbon + (HeatBoilerModel.calculateAnnualCarbonReduction(previousYearEnergyUsage, matchedDevice.getDeviceHeatScene().getDevPower(), matchedDevice.getCount(), matchedDevice.getDeviceHeatScene().getDevAnnualOperationTime()));
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//初次投资费用
|
|
|
|
@ -145,7 +139,40 @@ public class HeatBoilerScene implements DntdModelI { |
|
|
|
|
//年总费用
|
|
|
|
|
returnJsonObject.set("yearCost", decimalFormat.format(allCost)); |
|
|
|
|
//年减碳量
|
|
|
|
|
calculateAnnualCarbon = HeatBoilerModel.calculateAnnualCarbonReduction(previousYearEnergyUsage, electric); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double previousYearEnergyUsage = 1.0; |
|
|
|
|
Double lastYearFee = 0.0; |
|
|
|
|
Double energyPrice = 0.0; |
|
|
|
|
try { |
|
|
|
|
energyPrice = Double.parseDouble(originalDevInfo.get("energyPrice").toString()); |
|
|
|
|
} catch (NullPointerException e){ |
|
|
|
|
energyPrice = GetThisEnergyEmissions.getThisEnergyPrice((Integer) originalDevInfo.get("energyCode")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
// 替代前年能源用量
|
|
|
|
|
previousYearEnergyUsage = Double.parseDouble(originalDevInfo.get("previousYearEnergyUsage").toString()); |
|
|
|
|
} catch (NullPointerException e){ |
|
|
|
|
lastYearFee = Double.parseDouble(originalDevInfo.get("lastYearFee").toString()); |
|
|
|
|
previousYearEnergyUsage = lastYearFee / energyPrice; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
// 上年运行费用(元)
|
|
|
|
|
lastYearFee = Double.parseDouble(originalDevInfo.get("lastYearFee").toString()); |
|
|
|
|
} catch (NullPointerException e) { |
|
|
|
|
// e.printStackTrace();
|
|
|
|
|
System.out.println("计算因子采用默认值"); |
|
|
|
|
previousYearEnergyUsage = Double.parseDouble(originalDevInfo.get("previousYearEnergyUsage").toString()); |
|
|
|
|
lastYearFee = HeatBoilerModel.calLastYearFee(0.0, previousYearEnergyUsage, energyPrice); |
|
|
|
|
} |
|
|
|
|
// 替代前上年原设备碳排放量
|
|
|
|
|
double energyLastYearFactor = HeatBoilerModel.calLastYearFactor(previousYearEnergyUsage, GetThisEnergyEmissions.getThisEnergyEmission((Integer) originalDevInfo.get("energyCode"))); |
|
|
|
|
// 年减碳量
|
|
|
|
|
calculateAnnualCarbon = HeatBoilerModel.calculateAnnualCarbonReduction(energyLastYearFactor, electric, EnergyEmissions.ELECTRIC.getCo2EmissionFactor()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
returnJsonObject.set("calculate", decimalFormat.format(calculateAnnualCarbon / 1000)); |
|
|
|
|
//替代电量
|
|
|
|
|
returnJsonObject.set("electric", decimalFormat.format(electric)); |
|
|
|
@ -160,8 +187,8 @@ public class HeatBoilerScene implements DntdModelI { |
|
|
|
|
returnJsonObject.set("intelligence", BuildHeatingAdvantage.intelligence()); |
|
|
|
|
returnJsonObject.set("environment", BuildHeatingAdvantage.environment(Double.valueOf(decimalFormat.format(calculateAnnualCarbon / 1000)))); |
|
|
|
|
|
|
|
|
|
//封装方案评分
|
|
|
|
|
returnJsonObject.set("matchedDeviceList", maps); |
|
|
|
|
// 封装方案评分
|
|
|
|
|
// returnJsonObject.set("matchedDeviceList", maps);
|
|
|
|
|
|
|
|
|
|
return returnJsonObject; |
|
|
|
|
} |
|
|
|
|