#
luxiaotao1123
2025-01-07 e7cc0981a18fa322642dadddf7043623c83d676f
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
@@ -453,6 +453,36 @@
        return null;
    }
    public List<int[]> getCodeMatrixIdxList(Integer lev, List<String> codeDataList) {
        if (Cools.isEmpty(codeDataList)) {
            return new ArrayList<>();
        }
        lev = Optional.ofNullable(lev).orElse(MAP_DEFAULT_LEV);
        String[][] codeMatrix = this.getCodeMatrix(lev);
        List<int[]> codeMatrixIdxList = new ArrayList<>();
        Map<String, int[]> map = new HashMap<>();
        Set<String> codeDataSet = new HashSet<>(codeDataList);
        for (int i = 0; i < codeMatrix.length; i++) {
            for (int j = 0; j < codeMatrix[i].length; j++) {
                String codeData = codeMatrix[i][j];
                if (codeDataSet.contains(codeData)) {
                    map.put(codeData, new int[]{i, j});
                }
            }
        }
        for (String codeData : codeDataList) {
            int[] codeMatrixIdx = map.get(codeData);
            if (codeMatrixIdx != null) {
                codeMatrixIdxList.add(codeMatrixIdx);
            }
        }
        return codeMatrixIdxList;
    }
    public List<String> queryCodeListFromDynamicNode(Integer lev, String nodeType) {
        if (Cools.isEmpty(nodeType)) {
            return new ArrayList<>();
@@ -492,11 +522,11 @@
//        return codeList.stream().map(SortCodeDto::getCode).collect(Collectors.toList());
    }
    public void modifyDynamicMatrix(Integer lev, List<String> codeDataList, String vehicle) {
        this.modifyDynamicMatrix(lev, codeDataList, vehicle, false);
    public void modifyDynamicMatrix(Integer lev, List<int[]> codeIdxList, String vehicle) {
        this.modifyDynamicMatrix(lev, codeIdxList, vehicle, false);
    }
    public synchronized void modifyDynamicMatrix(Integer lev, List<String> codeDataList, String vehicle, boolean reset) {
    public synchronized void modifyDynamicMatrix(Integer lev, List<int[]> codeIdxList, String vehicle, boolean reset) {
        if (Cools.isEmpty(vehicle)) {
            return;
        }
@@ -506,8 +536,7 @@
        if (!reset) {
//            long time = System.currentTimeMillis() / 1000;
            int serial = 1;
            for (String codeData : codeDataList) {
                int[] codeMatrixIdx = getCodeMatrixIdx(lev, codeData);
            for (int[] codeMatrixIdx : codeIdxList) {
                dynamicMatrix[codeMatrixIdx[0]][codeMatrixIdx[1]] = new DynamicNode(vehicle, serial);
                serial++;
            }
@@ -525,8 +554,8 @@
        setDynamicMatrix(lev, dynamicMatrix);
    }
    public void clearDynamicMatrixByCodeList(Integer lev, List<String> codeDataList) {
        this.modifyDynamicMatrix(lev, codeDataList, DynamicNodeType.ACCESS.val);
    public void clearDynamicMatrixByCodeList(Integer lev, List<int[]> codeIdxList) {
        this.modifyDynamicMatrix(lev, codeIdxList, DynamicNodeType.ACCESS.val);
    }
    public int[][] filterMapData(int[][] mapMatrix, Integer lev, List<String> lockNodes) {