自动化立体仓库 - WMS系统
zjj
2023-06-03 4fa74e859c0a44fa45dafaa129653ad8a8496c80
src/main/java/com/zy/asrs/controller/MapController.java
@@ -31,12 +31,25 @@
    }};
    @GetMapping("/map/getData/{lev}/auth")
    @GetMapping("/map/getData/auth")
    @ManagerAuth
    public String getMapData(@PathVariable("lev") Integer lev) {
    public String getMapData(@RequestParam Integer lev,@RequestParam Integer area) {
        try {
            String mapFilename = "map.json";
//            String fileName ="file:" + new ClassPathResource(mapFilename).getPath();
            //获取当前楼层库位数据
            List<LocMast> locMasts = locMastService.selectLocByLev(lev);
            switch (area){
                case 1:
                    break;
                case 2:
                case 3:
                case 4:
                case 5:
                    mapFilename = "DTDnode.json";
                    locMasts = locMastService.selectNodeLocByLev(lev);
                    break;
            }
            String fileName = this.getClass().getClassLoader().getResource(mapFilename).getPath();//获取文件路径
//            File file = new File("D:\\workspace\\zy-asrs\\src\\main\\resources\\map.json");
            File file = new File(fileName);
@@ -69,29 +82,97 @@
                    arrayLists.set(row, rowData);
                }
                //获取当前楼层库位数据
                List<LocMast> locMasts = locMastService.selectLocByLev(lev);
                for (LocMast locMast : locMasts) {
                    Integer row = locMast.getRow1();
                    Integer bay = locMast.getBay1();
                    if (row<17){
                    switch (area){
                        case 1:
                        if (row % 4 == 0 || (row+1) % 4 == 0) {
                            row=row+locMast.getCrnNo();
                        }else{
                            row=row+locMast.getCrnNo()-1;
                        }
                            bay=32-bay;
                            break;
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                            if (bay % 7 == 0) {
                                bay=bay+1;
                    }else {
                        row=row-100+21;
                                if (bay>7){
                                    bay=bay+locMast.getCrnNo();
                                }else {
                                    bay=bay+locMast.getCrnNo()-1;
                    }
                            }
                            if (row == 3){
                                row = row +1;
                            } else if (row == 5) {
                                row = row+2;
                            } else if (row ==8) {
                                row = row+3;
                            }
                            else if (row ==10) {
                                row = row+4;
                            }
                            else if (row ==13) {
                                row = row+5;
                            }else if (row ==14) {
                                row = row+6;
                            }else {
                                if (row >3){
                                    row = row +1;
                                }
                                if (row > 5){
                                    row = row +1;
                                }
                                if (row > 8){
                                    row = row +1;
                                }
                                if (row > 10){
                                    row = row +1;
                                }
                                if (row > 13){
                                    row = row +1;
                                }
                                if (row > 14){
                                    row = row +1;
                                }
                            }
                    }
                    if (area == 1){
                    ArrayList rowData = arrayLists.get(row);
                    Object o = rowData.get(bay);
                    JSONObject jsonObject = JSON.parseObject(o.toString());
                    jsonObject.put("locNo", locMast.getLocNo());//设置库位号
                    jsonObject.put("locSts", locMast.getLocSts());//库位状态
                    jsonObject.put("locSts$", locMast.getLocSts$());//库位状态
                        //jsonObject.put("locSts$", locMast.getLocSts$());//库位状态
                    //更新list
                    rowData.set(bay, jsonObject);
                    arrayLists.set(row, rowData);
                    }else {
                        ArrayList rowData = arrayLists.get(bay);
                        Object o = rowData.get(row);
                        JSONObject jsonObject = JSON.parseObject(o.toString());
                        jsonObject.put("locNo", locMast.getLocNo());//设置库位号
                        jsonObject.put("locSts", locMast.getLocSts());//库位状态
                        //jsonObject.put("locSts$", locMast.getLocSts$());//库位状态
                        //更新list
                        rowData.set(row, jsonObject);
                        arrayLists.set(bay, rowData);
                    }
                }
                return JSONObject.toJSONString(arrayLists);
@@ -113,7 +194,7 @@
                       @RequestParam("matnr") String matnr,
                       @RequestParam("maktx") String maktx
    ) {
        List<LocDetl> locDetls = locDetlService.searchByLike(orderNo, matnr, maktx, specs, locNo);
        List<LocDetl> locDetls = locDetlService.searchByLike(orderNo, matnr, maktx, specs, "");
        ArrayList<LocDetl> lists = new ArrayList<>();
        for (LocDetl locDetl : locDetls) {//过滤掉不是当前楼层的数据
            int lev1 = Utils.getLev(locDetl.getLocNo());
@@ -121,6 +202,14 @@
                lists.add(locDetl);
            }
        }
        //搜索指定库位号,即使库位为空,也可以返回数据
        LocMast locMast = locMastService.selectById(locNo);
        if (locMast != null) {
            LocDetl locDetl = new LocDetl();
            locDetl.setLocNo(locMast.getLocNo());
            lists.add(locDetl);
        }
        return R.ok().add(lists);
    }