自动化立体仓库 - WMS系统
whycq
2024-11-25 a1a52e4000a5f2d61031767dc709074fb2f4cdae
src/main/java/com/zy/asrs/controller/AgvMapController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.R;
import com.zy.asrs.entity.AgvLocDetl;
@@ -60,6 +61,47 @@
        //获取当前楼层库位数据
        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;
            for (AgvLocMast locMast : distinctRow) {
                if (min > locMast.getMapRow1()) {
                    min = locMast.getMapRow1();
                }
                if (locMast.getRightSide() == 1) {
                    integers.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);
            }
        } else {
        for (AgvLocMast locMast : locMasts) {
            Integer row = locMast.getRow1();
            Integer bay = locMast.getBay1();
@@ -70,9 +112,6 @@
            //2楼
            if(floor == 1 && lev == 1){
                x = generateMap1Bay(bay);
            }
            if(floor == 1 && lev == 2){
                y = generateMap4Row(row);
            }
            //2楼
            if(floor == 2){
@@ -97,9 +136,11 @@
            rowData.set(y, jsonObject);
            arrayLists.set(x, rowData);
        }
        }
        return JSONObject.toJSONString(arrayLists);
    }
    private Integer generateMap1Bay(int bay){
        int y = bay;
        Integer[] bayAdd = {1,3,5,7,9,11,13,15,17,19};
@@ -113,11 +154,13 @@
    }
    private Integer generateMap4Row(int row){
    private Integer generateMap4Row(List<Integer> rightSide, int row) {
        int x = row;
        Integer[] rowAdd = {1,3,5,7,9,11,13,15,17,19,21};
        for(int i=0; i<rowAdd.length; i++){
            if(row > rowAdd[i]){
//        if (rightSide == 0) {
//            x++;
//        }
        for (int i = 0; i < rightSide.size(); i++) {
            if (row > rightSide.get(i)) {
                x ++;
            }
        }