From a70ae9b6fa10872f9567930380d9228b1a92a402 Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Wed, 20 Mar 2024 15:22:47 +0800 Subject: [PATCH] =?UTF-8?q?2024-03-20=2013:48:00=20=E5=BB=BA=E6=9D=90?= =?UTF-8?q?=E7=94=B5=E7=AA=91=E7=82=89=E6=A8=A1=E5=9E=8B=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/dky/calculate/Scheme.java | 10 +++++++++- .../java/com/dky/calculate/MaterialKilnScheme.java | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/dntd-model-buildheating/src/main/java/com/dky/calculate/Scheme.java b/dntd-model-buildheating/src/main/java/com/dky/calculate/Scheme.java index b14d7e4..e9ccd4a 100644 --- a/dntd-model-buildheating/src/main/java/com/dky/calculate/Scheme.java +++ b/dntd-model-buildheating/src/main/java/com/dky/calculate/Scheme.java @@ -52,7 +52,9 @@ public class Scheme { Double remainArea = buildArea; // 遍历设备,根据建筑面积进行匹配设备数量 List matchedDeviceList = new ArrayList<>(); - for (SysDeviceHeatScene deviceHeatScene : sysDeviceHeatSceneList) { + + for (int i = 0; i < sysDeviceHeatSceneList.size(); i++) { + SysDeviceHeatScene deviceHeatScene = sysDeviceHeatSceneList.get(i); double v = remainArea / deviceHeatScene.getDevReferenceArea(); int count = (int) (v); if (v < 1) { @@ -63,8 +65,14 @@ public class Scheme { if (remainArea <= 0) { // 当总供暖面积已经满足需求时,跳出循环,不再选择其他设备 break; + } else { + if (i == sysDeviceHeatSceneList.size() - 1 && remainArea > 0) { + MatchedDevice device = matchedDeviceList.get(matchedDeviceList.size() - 1); + device.setCount(device.getCount() + 1); + } } } + return matchedDeviceList; } } diff --git a/dntd-model-materialkiln/src/main/java/com/dky/calculate/MaterialKilnScheme.java b/dntd-model-materialkiln/src/main/java/com/dky/calculate/MaterialKilnScheme.java index 259847e..57fea2f 100644 --- a/dntd-model-materialkiln/src/main/java/com/dky/calculate/MaterialKilnScheme.java +++ b/dntd-model-materialkiln/src/main/java/com/dky/calculate/MaterialKilnScheme.java @@ -16,7 +16,9 @@ public class MaterialKilnScheme { Double remainArea = workArea; // 遍历设备,根据工作容积进行匹配设备数量 List matchedDeviceList = new ArrayList<>(); - for (SysDeviceHeatScene deviceHeatScene : sysDeviceHeatSceneList) { + + for (int i = 0; i < sysDeviceHeatSceneList.size(); i++) { + SysDeviceHeatScene deviceHeatScene = sysDeviceHeatSceneList.get(i); double v = remainArea / deviceHeatScene.getDevWorkArea(); int count = (int) (v); if (v < 1) { @@ -27,6 +29,11 @@ public class MaterialKilnScheme { if (remainArea <= 0) { // 当总供暖面积已经满足需求时,跳出循环,不再选择其他设备 break; + } else { + if (i == sysDeviceHeatSceneList.size() - 1 && remainArea > 0) { + MatchedDevice device = matchedDeviceList.get(matchedDeviceList.size() - 1); + device.setCount(device.getCount() + 1); + } } } return matchedDeviceList;