package com.dky.calculate; import com.dky.entity.Heatboiler; import com.dky.entity.HeatboilerSpec; import com.dky.entity.OriginalDevice; import com.dky.utils.enums.EnergyPriceType; public class HeatBoilerModel { // 标准煤转换系数:千克标准煤/千克 private static final double coalConversionFactor = 0.7143; // 电能转换到标准煤的系数:千克标准煤/千瓦时 private static final double electricityConversionFactor = 0.1229; // 标准煤转换到二氧化碳的系数:千克二氧化碳/千克标准煤 private static final double carbonConversionFactor = 1.9003; /** * 计算初次投资费用 * @param heatboilerSpec 非表中参数 * @param heatboiler 基础入参 * @param originalDevice 原设备参数 * @param d 热效率,后期从设备中获取 TODO * @return 初次投资费用 */ public static double calculateInitialInvestment(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice,Double d) { // 计算电替代设备台数 = 供热设备功率(蒸吨)/(电替代设备功率*热效率) double substituteElectricityDevices = heatboiler.getHotDevicePower() / (heatboiler.getHotDevicePower() * d); // 计算初次投资费用 return substituteElectricityDevices * 1; } /** * 计算年运行费用 * @param devicePower 电替代设备功率 * @param deviceCount 电替代设备台数 * @param deviceSubstituteLaborCost 电替代设备人工费用 * @param deviceAnnualOperationTime 电替代设备年运行时间 * @return 年运行费用 */ public static double calculateAnnualOperatingCost(Double devicePower, Integer deviceCount, Double deviceSubstituteLaborCost, Integer deviceAnnualOperationTime) { // 电替代设备年耗电量=单台电替代设备的功率*电替代设备台数*电设备年运行时间 double annualElectricityConsumption = devicePower * deviceCount * deviceAnnualOperationTime; // 年运行费用=电替代设备年耗电量*平均电价(0.5元/千瓦时) + 单台电替代设备人工费用成本 * 台数 return annualElectricityConsumption * EnergyPriceType.Industry_Electric_Price.getPrice() + deviceSubstituteLaborCost * deviceCount; } /** * 计算年总费用 * @param devicePower 电替代设备功率 * @param deviceCount 电替代设备台数 * @param deviceSubstituteLaborCost 电替代设备人工费用 * @param deviceAnnualOperationTime 电替代设备年运行时间 * @param devicePrice 设备价格 * @param deviceServiceLife 设备使用年限 * @return */ public static double calculateAnnualTotalCost(Double devicePower, Integer deviceCount, Double deviceSubstituteLaborCost, Integer deviceAnnualOperationTime, Double devicePrice, Integer deviceServiceLife) { //(电替代设备台数*单台电设备价格)/电替代设备的使用年限 double v = ((devicePrice * deviceCount) / deviceServiceLife); // 年总费用=(电替代设备台数*单台电设备价格)/电替代设备的使用年限 + 年运行费用 return v + calculateAnnualOperatingCost(devicePower, deviceCount, deviceSubstituteLaborCost, deviceAnnualOperationTime); } /** * 计算年减碳量 * @param previousYearEnergyUsage 替代前原设备碳排放量 * @param deviceElectric 电替代耗电量 * @param electricEmission 电替代设备碳排放因子 * @return 年减碳量 */ public static double calculateAnnualCarbonReduction(Double previousYearEnergyUsage, Double deviceElectric, Double electricEmission) { // 计算电替代设备年耗电量对应的标准煤量 double coalEquivalentFromElectricity = deviceElectric * electricEmission; // 计算年减碳量 return previousYearEnergyUsage - coalEquivalentFromElectricity; } /** * 计算电替代设备年耗电量 * @param devicePower 设备功率 * @param deviceCount 设备台数 * @param deviceAnnualOperationTime 单台电设备年运行时间 * @return */ public static double calculateSubstituteElectricity(Double devicePower, Integer deviceCount, Integer deviceAnnualOperationTime) { // 电替代设备年耗电量 = 电替代设备的功率 * 电替代设备台数 * 电设备年运行时间 return devicePower * deviceCount * deviceAnnualOperationTime; } /** * 计算原设备上年运行费用 * @param laborCost 人工成本 * @param lastYearEnergyUse 替代前年能源使用量 * @param energyPrice 平均能源单价 * @return */ public static double calLastYearFee(Double laborCost, Double lastYearEnergyUse, Double energyPrice) { // 上年运行费用(即原设备运行费用)= 上年能源使用量 * 平均能源单价 + 上年人工成本 return energyPrice * lastYearEnergyUse + laborCost; } /** * 计算原设备年减碳量 * @param lastYearEnergyUse 替代前年能源使用量 * @param d 相关能源排放系数 * @return */ public static double calLastYearFactor(Double lastYearEnergyUse , Double d) { return lastYearEnergyUse * d; } }