自动化立体仓库 - WMS系统
1
zhangc
2025-01-17 caa6990da2695a79a8df645b8973f88da3346d93
src/main/java/com/zy/asrs/controller/AgvMapController.java
@@ -62,90 +62,75 @@
        //获取当前楼层库位数据
        List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev, floor);
        if (floor == 1 && lev == 2) {
            List<AgvLocMast> distinctRow = agvLocMastService.selectDistinctLocByLevAndFloor(lev, floor);
            List<Integer> integers = new ArrayList<>();
            int min = 0;
            int i =1;
        List<AgvLocMast> distinctRow = new ArrayList<>();
        List<Integer> rowIntegers = new ArrayList<>();
        int min = 0;
        int i =1;
        if (lev == 1 && floor == 1) {
            distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMapbay1(lev, floor);
            for (AgvLocMast locMast : distinctRow) {
                if (min > locMast.getMapBay1()) {
                    min = locMast.getMapBay1();
                }
                if (locMast.getRightSide() == 1) {
                    rowIntegers.add(i);
                }
                i++;
            }
        } else {
            distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMaprow1(lev, floor);
            for (AgvLocMast locMast : distinctRow) {
                if (min > locMast.getMapRow1()) {
                    min = locMast.getMapRow1();
                }
                if (locMast.getRightSide() == 1) {
                    integers.add(i);
                    rowIntegers.add(i);
                }
                i++;
            }
            for (AgvLocMast locMast : locMasts) {
                Integer row = locMast.getMapRow1();
                if (row < 0) {
                    row = row - min + 1;
                } else {
                    row = row - min;
                }
                Integer bay = locMast.getMapBay1();
                Integer rightSide = locMast.getRightSide();
                int x = bay;
                int y = row;
                y = generateMap4Row(integers, row);
                ArrayList rowData = arrayLists.get(x);
                Object o = rowData.get(y);
        }
                JSONObject jsonObject = JSON.parseObject(o.toString());
                jsonObject.put("value", "0");
                jsonObject.put("locNo", locMast.getLocNo());//设置库位号
                jsonObject.put("locSts", locMast.getLocSts());//库位状态
                //更新list
                rowData.set(y, jsonObject);
                arrayLists.set(x, rowData);
        for (AgvLocMast locMast : locMasts) {
            Integer row = locMast.getMapRow1();
            if (row < 0) {
                row = row - min + 1;
            } else {
                row = row - min;
            }
        } else {
            for (AgvLocMast locMast : locMasts) {
                Integer row = locMast.getRow1();
                Integer bay = locMast.getBay1();
                int x = bay;
                int y = row;
                //2楼
                if (floor == 1 && lev == 1) {
                    x = generateMap1Bay(bay);
                }
                //2楼
                if (floor == 2) {
                    y = generateMap2Row(row);
                    //y = generateMap2Bay(bay);
                }
                ////3楼
                if (floor == 3) {
                    y = generateMap3Row(row);
//                x = generateMap3Bay(bay);
                }
                ArrayList rowData = arrayLists.get(x);
                Object o = rowData.get(y);
                JSONObject jsonObject = JSON.parseObject(o.toString());
                jsonObject.put("value", "0");
                jsonObject.put("locNo", locMast.getLocNo());//设置库位号
                jsonObject.put("locSts", locMast.getLocSts());//库位状态
                //更新list
                rowData.set(y, jsonObject);
                arrayLists.set(x, rowData);
            Integer bay = locMast.getMapBay1();
            Integer rightSide = locMast.getRightSide();
            int x = bay;
            int y = row;
            if (floor == 3) {
                y = generateMap3Row(rowIntegers, row);
            } else if (floor == 1 && lev == 1) {
                x = generateMap1Bay(rowIntegers, bay);
            } else {
                y = generateMap4Row(rowIntegers, row);
            }
            ArrayList rowData = arrayLists.get(x);
            Object o = rowData.get(y);
            JSONObject jsonObject = JSON.parseObject(o.toString());
            jsonObject.put("value", "0");
            jsonObject.put("locNo", locMast.getLocNo());//设置库位号
            jsonObject.put("locSts", locMast.getLocSts());//库位状态
            //更新list
            rowData.set(y, jsonObject);
            arrayLists.set(x, rowData);
        }
        return JSONObject.toJSONString(arrayLists);
    }
    private Integer generateMap1Bay(int bay) {
    private Integer generateMap1Bay(List<Integer> rightSide,int bay) {
        int y = bay;
        Integer[] bayAdd = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
        for (int i = 0; i < bayAdd.length; i++) {
            if (bay > bayAdd[i]) {
        for (int i = 0; i < rightSide.size(); i++) {
            if (bay > rightSide.get(i)) {
                y++;
            }
        }
@@ -156,9 +141,6 @@
    private Integer generateMap4Row(List<Integer> rightSide, int row) {
        int x = row;
//        if (rightSide == 0) {
//            x++;
//        }
        for (int i = 0; i < rightSide.size(); i++) {
            if (row > rightSide.get(i)) {
                x++;
@@ -169,15 +151,13 @@
    }
    private Integer generateMap2Row(int row) {
    private Integer generateMap2Row(List<Integer> rightSide,int row) {
        int x = row;
        Integer[] rowAdd = {2, 4, 6, 7, 8, 10, 12, 13, 15, 17, 19, 20, 22, 24};
        for (int i = 0; i < rowAdd.length; i++) {
            if (row > rowAdd[i]) {
        for (int i = 0; i < rightSide.size(); i++) {
            if (row > rightSide.get(i)) {
                x++;
            }
        }
        if (row > 20) x += 9;
        return x;
@@ -194,11 +174,10 @@
        return y;
    }
    private Integer generateMap3Row(int row) {
    private Integer generateMap3Row(List<Integer> rightSide,int row) {
        int x = row;
        Integer[] rowAdd = {2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 22, 24, 26, 28, 30, 32};
        for (int i = 0; i < rowAdd.length; i++) {
            if (row >= rowAdd[i]) {
        for (int i = 0; i < rightSide.size(); i++) {
            if (row > rightSide.get(i)) {
                x++;
            }
        }