|
|
|
@ -1,14 +1,13 @@ |
|
|
|
|
package com.dky.generate; |
|
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONObject; |
|
|
|
|
import com.dky.calculate.Advantage; |
|
|
|
|
import com.dky.calculate.BuildHeatingAdvantage; |
|
|
|
|
import com.dky.calculate.KitchenCookModel; |
|
|
|
|
import com.dky.calculate.KitchenCookScheme; |
|
|
|
|
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; |
|
|
|
@ -29,9 +28,11 @@ public class KitchenCookScene implements DntdModelI { |
|
|
|
|
List<SysDeviceHeatScene> alternateDeviceList = GetTargetDeviceList.main(DeviceSubType.Kitchen_Cooking.getDesc(), sceneList); |
|
|
|
|
|
|
|
|
|
JSONObject distInfo = new JSONObject(); |
|
|
|
|
JSONObject originalDevInfo = new JSONObject(); |
|
|
|
|
|
|
|
|
|
try{ |
|
|
|
|
distInfo = (JSONObject) jsonObject.get("distInfo"); |
|
|
|
|
originalDevInfo = (JSONObject) jsonObject.get("originalDevInfo"); |
|
|
|
|
} catch (Exception e){ |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
@ -40,8 +41,6 @@ public class KitchenCookScene implements DntdModelI { |
|
|
|
|
Double runCapacity = Double.parseDouble(distInfo.get("runCapacity").toString()); |
|
|
|
|
// 上年最大需量
|
|
|
|
|
Double lastYearNeed = Double.parseDouble(distInfo.get("lastYearNeed").toString()); |
|
|
|
|
// 上年运行费用(万元)
|
|
|
|
|
Double lastYearFee = Double.parseDouble(jsonObject.get("lastYearFee").toString()); |
|
|
|
|
// 人数
|
|
|
|
|
Integer peopleNum = Integer.parseInt(jsonObject.get("peopleNum").toString()); |
|
|
|
|
|
|
|
|
@ -69,7 +68,7 @@ public class KitchenCookScene implements DntdModelI { |
|
|
|
|
double D1 = lastYearNeed + C1; |
|
|
|
|
|
|
|
|
|
String remark = ""; |
|
|
|
|
if ( A < D1){ |
|
|
|
|
if (A < D1){ |
|
|
|
|
remark = "本方案存在扩容投资需求,扩容投资不计入初次投资费用"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -105,6 +104,40 @@ public class KitchenCookScene implements DntdModelI { |
|
|
|
|
laborCost = laborCost + (matchedDevice.getCount() * matchedDevice.getDeviceHeatScene().getLaborCost() / matchedDevice.getDeviceHeatScene().getDevServiceLife()); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Double previousYearEnergyUsage = 1.0; |
|
|
|
|
Double lastYearFee = 0.0; |
|
|
|
|
Double energyPrice = 0.0; |
|
|
|
|
Integer energyCode = (Integer) originalDevInfo.get("energyCode"); |
|
|
|
|
try { |
|
|
|
|
energyPrice = Double.parseDouble(originalDevInfo.get("energyPrice").toString()); |
|
|
|
|
} catch (NullPointerException e){ |
|
|
|
|
energyPrice = GetThisEnergyEmissions.getThisEnergyPrice(energyCode); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
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(laborCost, previousYearEnergyUsage, energyPrice); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
// 替代前年能源用量
|
|
|
|
|
previousYearEnergyUsage = Double.parseDouble(originalDevInfo.get("previousYearEnergyUsage").toString()); |
|
|
|
|
} catch (NullPointerException e){ |
|
|
|
|
previousYearEnergyUsage = lastYearFee / energyPrice; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 替代前上年原设备碳排放量
|
|
|
|
|
double energyLastYearFactor = HeatBoilerModel.calLastYearFactor(previousYearEnergyUsage, GetThisEnergyEmissions.getThisEnergyEmission(energyCode)); |
|
|
|
|
// 年减碳量
|
|
|
|
|
calculateAnnualCarbon = HeatBoilerModel.calculateAnnualCarbonReduction(energyLastYearFactor, electric, EnergyEmissions.ELECTRIC.getCo2EmissionFactor()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//初次投资费用
|
|
|
|
|
returnJsonObject.set("startCost", decimalFormat.format(startCost)); |
|
|
|
|
// 设备总价
|
|
|
|
@ -114,7 +147,6 @@ public class KitchenCookScene implements DntdModelI { |
|
|
|
|
//年总费用
|
|
|
|
|
returnJsonObject.set("yearCost", decimalFormat.format(allCost)); |
|
|
|
|
//年减碳量
|
|
|
|
|
calculateAnnualCarbon = KitchenCookModel.calculateAnnualCarbonReduction(lastYearFee, laborCost, electric); |
|
|
|
|
returnJsonObject.set("calculate", decimalFormat.format(calculateAnnualCarbon/1000)); |
|
|
|
|
//替代电量
|
|
|
|
|
returnJsonObject.set("electric", decimalFormat.format(electric)); |
|
|
|
|