From 8dc960dd9fda130ff19faaafed6b1234e622610b Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 19 十二月 2025 15:23:05 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java |  113 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 103 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index fd191c6..5d44238 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.utils;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -167,12 +168,11 @@
                 List<WrkMast> currentCrnTask = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", currentCircleTaskCrnNo));
                 if (currentCrnTask.size() <= 1) {
                     if (basCrnp != null) {
-                        String controlRowsStr = basCrnp.getControlRows();
-                        if(!Cools.isEmpty(controlRowsStr)){
-                            List<Integer> rows = JSON.parseArray(controlRowsStr, Integer.class);
+                        List<List<Integer>> rowList = basCrnp.getControlRows$();
+                        for (List<Integer> rows : rowList) {
                             list.addAll(rows);
-                            wrapper.ne("crn_no", currentCircleTaskCrnNo);
                         }
+                        wrapper.ne("crn_no", currentCircleTaskCrnNo);
                     }
                 }
             }
@@ -215,19 +215,16 @@
             enabledCrnps.sort(Comparator.comparingInt(o -> map.getOrDefault(o.getCrnNo(), 0)));
 
             for (BasCrnp basCrnp : enabledCrnps) {
-                String controlRowsStr = basCrnp.getControlRows();
-                if (Cools.isEmpty(controlRowsStr)) {
-                    continue;
+                List<List<Integer>> rowList = basCrnp.getControlRows$();
+                for (List<Integer> rows : rowList) {
+                    list.addAll(rows);
                 }
-                List<Integer> rows = JSON.parseArray(controlRowsStr, Integer.class);
-                list.addAll(rows);
             }
         }catch (Exception e){
             e.printStackTrace();
         }
         return list;
     }
-
 
     public static Map<String, Object> convertObjectToMap(Object obj) {
         Map<String, Object> map = new HashMap<>();
@@ -243,4 +240,100 @@
         }
         return map;
     }
+
+    //鑾峰彇娣卞簱浣嶆帓鍙�
+    public static List<Integer> getDeepRowList() {
+        List<Integer> rowList = new ArrayList<>();
+        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+        if (basCrnpService == null) {
+            return rowList;
+        }
+
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
+        for (BasCrnp basCrnp : basCrnps) {
+            String deepRowsStr = basCrnp.getDeepRows();
+            if(!Cools.isEmpty(deepRowsStr)){
+                List<Integer> rows = JSON.parseArray(deepRowsStr, Integer.class);
+                rowList.addAll(rows);
+            }
+        }
+        return rowList;
+    }
+
+    //鑾峰彇娴呭簱浣嶆帓鍙�
+    public static Integer getShallowRowByDeepRow(Integer deepRow) {
+        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+        if (basCrnpService == null) {
+            return null;
+        }
+
+        List<Integer> deepRowList = getDeepRowList();
+        if (!deepRowList.contains(deepRow)) {
+            return null;
+        }
+
+        List<Integer> controlRowList = null;
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
+        for (BasCrnp basCrnp : basCrnps) {
+            List<List<Integer>> rowList = basCrnp.getControlRows$();
+            for (List<Integer> rows : rowList) {
+                if (rows.contains(deepRow)) {
+                    controlRowList = rows;
+                    break;
+                }
+            }
+
+            if (controlRowList != null) {
+                break;
+            }
+        }
+
+        for (Integer row : controlRowList) {
+            if (deepRow.equals(row)) {
+                continue;
+            }
+
+            return row;
+        }
+        return null;
+    }
+
+    //鑾峰彇娣卞簱浣嶆帓鍙�
+    public static Integer getDeepRowByShallowRow(Integer shallowRow) {
+        BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+        if (basCrnpService == null) {
+            return null;
+        }
+
+        List<Integer> controlRowList = null;
+        List<Integer> deepRowList = null;
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
+        for (BasCrnp basCrnp : basCrnps) {
+            List<List<Integer>> rowList = basCrnp.getControlRows$();
+            for (List<Integer> rows : rowList) {
+                if (rows.contains(shallowRow)) {
+                    controlRowList = rows;
+                    deepRowList = JSON.parseArray(basCrnp.getDeepRows(), Integer.class);
+                    break;
+                }
+            }
+
+            if (controlRowList != null) {
+                break;
+            }
+        }
+
+        if (deepRowList == null) {
+            return null;
+        }
+
+        for (Integer row : controlRowList) {
+            if (!deepRowList.contains(row)) {
+                continue;
+            }
+
+            return row;
+        }
+        return null;
+    }
 }

--
Gitblit v1.9.1