You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
8.5 KiB
136 lines
8.5 KiB
1 year ago
|
package com.dky.test;
|
||
|
|
||
|
/**
|
||
|
* @Author:戴仕崑
|
||
|
* @Project:dntd-model-tools
|
||
|
* @Filename:Test
|
||
|
* @Slogan 致敬大师,致敬未来的你
|
||
|
* @Date:2024/3/7 16:14
|
||
|
* @Version 1.0
|
||
|
*/
|
||
|
|
||
|
|
||
|
import com.dky.calculate.Scheme;
|
||
|
import com.dky.calculate.SchemeRating;
|
||
|
import com.dky.utils.entity.SysDeviceHeatScene;
|
||
|
import com.dky.utils.result.MatchedDevice;
|
||
|
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
|
||
|
public class TestMain {
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
|
||
|
List<SysDeviceHeatScene> alternateDeviceList = createDevList();
|
||
|
|
||
|
// List<List<MatchedDevice>> alternateDeviceList = calSchemeMethodTest(14000.0, devList);
|
||
|
|
||
|
// getMaxEfficiencyGroupByDevSubTypeTest(alternateDeviceList);
|
||
|
// getMinPriceGroupByDevSubTypeTest(alternateDeviceList);
|
||
|
|
||
|
/*
|
||
|
根据建筑面积计算出不同技术类型下所需要不同功率设备数据
|
||
|
*/
|
||
|
List<List<MatchedDevice>> matchedDeviceGroupList = Scheme.calScheme(44000.0, alternateDeviceList);
|
||
|
|
||
|
|
||
|
/*
|
||
|
判断计算占比,默认效率0.8,成本0.2
|
||
|
*/
|
||
|
double costRatio = 0.2;
|
||
|
double effRatio = 0.8;
|
||
|
|
||
|
|
||
|
List<MatchedDevice> matchedDeviceList ;
|
||
|
Map<Double, List<MatchedDevice>> listMap ;
|
||
|
/*
|
||
|
根据具体容量与需量判断可使用的技术并计算评分
|
||
|
*/
|
||
|
//计算不同细类下成本最小值与效率最大值
|
||
|
Map<String, Double> maxEffMap = SchemeRating.getMaxEfficiencyGroupByDevSubType(alternateDeviceList);
|
||
|
//Map<String, Double> minPriceMap = SchemeRating.getMinPriceGroupByDevSubType(alternateDeviceList);
|
||
|
//listMap = SchemeRating.getOptimalList(matchedDeviceGroupList,costRatio,effRatio,maxEffMap,minPriceMap);
|
||
|
//matchedDeviceList = SchemeRating.getOptimalScheme(listMap);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
public static List<List<MatchedDevice>> calSchemeMethodTest(Double buildArea, List<SysDeviceHeatScene> SysDeviceHeatSceneList) {
|
||
|
return Scheme.calScheme(buildArea, SysDeviceHeatSceneList);
|
||
|
|
||
|
}
|
||
|
|
||
|
public static void getMaxEfficiencyGroupByDevSubTypeTest(List<SysDeviceHeatScene> sysDeviceHeatSceneList){
|
||
|
SchemeRating.getMaxEfficiencyGroupByDevSubType(sysDeviceHeatSceneList);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
public static List<SysDeviceHeatScene>createDevList(){
|
||
|
List<SysDeviceHeatScene> deviceList = new ArrayList<>();
|
||
|
|
||
|
// 模拟从数据库中检索数据
|
||
|
Object[][] data =
|
||
|
{
|
||
|
{19, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电阻类)", 0.95, 360.00, 80000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
|
||
|
{20, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电阻类)", 0.95, 720.00, 100000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
|
||
|
{21, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电阻类)", 0.95, 1440.00, 160000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
|
||
|
{22, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电极类)", 0.97, 360.00, 280000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
|
||
|
{23, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电极类)", 0.97, 720.00, 460000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
|
||
|
{24, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电极类)", 0.97, 1440.00, 900000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
|
||
|
{25, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电磁涡流类)", 0.98, 360.00, 150000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
|
||
|
{26, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电磁涡流类)", 0.98, 720.00, 180000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
|
||
|
{27, "电锅炉", "供冷/暖电锅炉", "直热式电锅炉(电磁涡流类)", 0.98, 1440.00, 300000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
|
||
|
{28, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(固体蓄热)", 0.95, 360.00, 360000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
|
||
|
{29, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(固体蓄热)", 0.95, 720.00, 720000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
|
||
|
{30, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(固体蓄热)", 0.95, 1440.00, 1440000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
|
||
|
{31, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(相变蓄热)", 0.98, 360.00, 120000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
|
||
|
{32, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(相变蓄热)", 0.98, 720.00, 160000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
|
||
|
{33, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(相变蓄热)", 0.98, 1440.00, 280000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
|
||
|
{34, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(水蓄)", 0.97, 360.00, 110000.00, 60000.00, 180000.00, 3000.00, 15, null, null},
|
||
|
{35, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(水蓄)", 0.97, 720.00, 150000.00, 60000.00, 180000.00, 6000.00, 15, null, null},
|
||
|
{36, "电锅炉", "供冷/暖电锅炉", "蓄热式电锅炉(水蓄)", 0.97, 1440.00, 260000.00, 60000.00, 180000.00, 12000.00, 15, null, null},
|
||
|
{37, "热泵", "供冷/暖", "水源热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
|
||
|
{38, "热泵", "供冷/暖", "水源热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
|
||
|
{39, "热泵", "供冷/暖", "水源热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
|
||
|
{40, "热泵", "供冷/暖", "土壤源热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
|
||
|
{41, "热泵", "供冷/暖", "土壤源热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
|
||
|
{42, "热泵", "供冷/暖", "土壤源热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
|
||
|
{43, "热泵", "供冷/暖", "空气源热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
|
||
|
{44, "热泵", "供冷/暖", "空气源热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
|
||
|
{45, "热泵", "供冷/暖", "空气源热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
|
||
|
{46, "热泵", "供冷/暖", "低品位余热源(如电厂低温循环水)热泵", 4.00, 25.00, 45000.00, 60000.00, 180000.00, 500.00, 15, null, null},
|
||
|
{47, "热泵", "供冷/暖", "低品位余热源(如电厂低温循环水)热泵", 4.00, 45.00, 75000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
|
||
|
{48, "热泵", "供冷/暖", "低品位余热源(如电厂低温循环水)热泵", 4.00, 90.00, 140000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
|
||
|
{49, "热泵", "供冷/暖", "高温蒸汽热泵", 3.00, 45.00, 380000.00, 60000.00, 180000.00, 1000.00, 15, null, null},
|
||
|
{50, "热泵", "供冷/暖", "高温蒸汽热泵", 3.00, 120.00, 550000.00, 60000.00, 180000.00, 2000.00, 15, null, null},
|
||
|
};
|
||
|
|
||
|
// 创建对象并添加到列表
|
||
|
for (Object[] row : data) {
|
||
|
int id = (int) row[0];
|
||
|
String devType = (String) row[1];
|
||
|
String devSubType = (String) row[2];
|
||
|
String devTechType = (String) row[3];
|
||
|
double heatEfficiency = (double) row[4];
|
||
|
double devPower = (double) row[5];
|
||
|
double devPrice = (double) row[6];
|
||
|
double devSubstituteLaborCost = (double) row[7];
|
||
|
double laborCost = (double) row[8];
|
||
|
double devReferenceArea = (double) row[9];
|
||
|
int devServiceLife = (int) row[10];
|
||
|
|
||
|
SysDeviceHeatScene device = new SysDeviceHeatScene(
|
||
|
id, devType, devSubType, devTechType, heatEfficiency, devPower, devPrice,
|
||
|
devSubstituteLaborCost, laborCost, devReferenceArea, devServiceLife, null, null);
|
||
|
|
||
|
deviceList.add(device);
|
||
|
}
|
||
|
return deviceList;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|