Просмотр исходного кода

AGC适配器取数数量不一致暂时解决办法

王波 1 месяц назад
Родитель
Сommit
90e9e2a3a9

+ 33 - 4
runeconomy-xk/src/main/java/com/gyee/runeconomy/service/agc/AgcDeviateService.java

@@ -17,10 +17,7 @@ import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -86,6 +83,38 @@ public class AgcDeviateService {
         // 上限下限
         List<AgcDeviateTag> upperLowerLimits = getUpperLowerLimits(ladt, id);
         ladt.addAll(upperLowerLimits);
+
+        // 获取第一个 AgcDeviateTag 的 values 大小作为基准
+        int baseSize1 = ladt.get(0).getValues().size();
+        int baseSize2 = ladt.get(1).getValues().size();
+        int baseSize3 = ladt.get(2).getValues().size();
+        int baseSize4 = ladt.get(3).getValues().size();
+        int baseSize5 = ladt.get(4).getValues().size();
+
+
+        // 假设 'ladt' 是你的 AgcDeviateTag 对象的 ArrayList
+
+        // 首先,从 "理论功率" 中找到参考尺寸
+        int referenceSize = -1;
+        for (AgcDeviateTag tag : ladt) {
+            if ("理论功率".equals(tag.getName())) {
+                referenceSize = tag.getValues().size();
+                break;
+            }
+        }
+
+
+        // 检查并调整其他列表
+        for (AgcDeviateTag tag : ladt) {
+            if (!"理论功率".equals(tag.getName()) && tag.getValues().size() != referenceSize) {
+                // 如果尺寸不匹配,则删除倒数第二条元素
+                if (tag.getValues().size() > referenceSize) {
+                    tag.getValues().remove(tag.getValues().size() - 2); // 删除倒数第二项
+                } else {
+                    System.out.println("警告:" + tag.getName() + " 的元素数量少于理论功率。无法调整。");
+                }
+            }
+        }
         return ladt;
     }