自动化立体仓库 - WMS系统
#
LSH
2022-11-24 9865c5bb168f1a77d5dec364ae87a4830457cd1b
#
5个文件已修改
145 ■■■■ 已修改文件
src/main/java/com/zy/asrs/task/CheckDeepScheduler.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
@@ -48,7 +48,8 @@
     */
    @Scheduled(cron = "0/30 * * * * ?")
    private void execute() throws ParseException {
        if (!confirmDeep) return;
//        if (!confirmDeep) return;
        if (true) return;
        ReturnT<String> result = checkDeepHandler.start();
        if (!result.isSuccess()) {
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -70,12 +70,12 @@
                            exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo());
                        }
                    }
                    // 手动入库生成单据 【 上报三方平台 】
                    if (!Cools.isEmpty(wrkDetls)) {
                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
                            exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo());
                        }
                    }
//                    // 手动入库生成单据 【 上报三方平台 】
//                    if (!Cools.isEmpty(wrkDetls)) {
//                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
//                            exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo());
//                        }
//                    }
                // 拣料再入库
                } else if (wrkMast.getIoType() == 53) {
                    if (!Cools.isEmpty(wrkDetls)) {
src/main/java/com/zy/asrs/utils/Utils.java
@@ -127,6 +127,10 @@
            targetRow = shallowRow - 1;
        } else if (remainder == 3) {
            targetRow = shallowRow + 1;
        } else if (shallowRow == 10 || shallowRow == 16) {
            targetRow = shallowRow - 1;
        } else if (shallowRow == 11 || shallowRow == 17) {
            targetRow = shallowRow + 1;
        } else {
            throw new RuntimeException(shallowRow + "不是浅库位排,系统繁忙");
        }
src/main/java/com/zy/common/service/CommonService.java
@@ -102,17 +102,27 @@
            case 101:
            case 109:
            case 117:
                whsType=1;
                whsType=1;  //1-8货架
                slaveProperties.setDoubleDeep(false);
                slaveProperties.setGroupCount(2);
                break;
            case 201:
                whsType=2;
                slaveProperties.setDoubleDeep(true);
                slaveProperties.setGroupCount(4);
                whsType=2;  //9-12货架
                break;
            case 207:
                whsType=3;
                whsType=3;  //13-14货架
                slaveProperties.setDoubleDeep(false);
                slaveProperties.setGroupCount(2);
                break;
            case 213:
                whsType=4;
                slaveProperties.setDoubleDeep(true);
                slaveProperties.setGroupCount(4);
                whsType=4;  //15-18货架
                break;
            default:
                throw new CoolException("根据入库站获取库位排号分配失败,入库站:" + sourceStaNo);
        }
        StartupDto startupDto = new StartupDto();
@@ -178,30 +188,96 @@
                }
            }
        }
        // 如果没有相近物料,则按规则轮询货架
        if (null == locMast) {
            Shelves shelves = new Shelves(rowCount, crn_qty);
            int divides = (int) Arith.divides(1, curRow - 1, 4);
            curRow = (int) Arith.remainder(curRow, 4);
            if (curRow == 0) {
                curRow = 4;
            }
            for (int i = 0; i < shelves.group; i ++) {
                curRow = shelves.start(curRow);
                if (curRow < 0) {
                    throw new CoolException("检索库位失败,请联系管理员");
                }
                Integer crnNo1 = shelves.get(curRow);
                crnNo1 = crnNo1 + divides*1;
                if (basCrnpService.checkSiteError(crnNo1, true)) {
                    crnNo = crnNo1;
                    curRow = curRow + divides*4;
        if (null == locMast){
            switch (curRow){
                case 1:
                case 3:
                case 5:
                    curRow=curRow+2;
                    crnNo=(curRow+1)/2;
                    break;
                }
                case 7:
                    crnNo=1;
                    curRow=2;
                    break;
                case 13:
                    crnNo=6;
                    curRow=14;
                    break;
                case 2:
                case 4:
                case 6:
                    curRow=curRow+2;
                    crnNo=curRow/2;
                    break;
                case 8:
                    crnNo=1;
                    curRow=1;
                    break;
                case 14:
                    crnNo=6;
                    curRow=13;
                    break;
                case 9:
                    crnNo=5;
                    curRow=12;
                    break;
                case 10:
                    crnNo=5;
                    curRow=11;
                    break;
                case 11:
                    crnNo=5;
                    curRow=9;
                    break;
                case 12:
                    crnNo=5;
                    curRow=10;
                    break;
                case 15:
                    crnNo=7;
                    curRow=18;
                    break;
                case 16:
                    crnNo=7;
                    curRow=17;
                    break;
                case 17:
                    crnNo=7;
                    curRow=15;
                    break;
                case 18:
                    crnNo=7;
                    curRow=16;
                    break;
                default:
                    throw new CoolException("根据入库站获取库位排号分配失败,入库站:" + sourceStaNo);
            }
        }
//        // 如果没有相近物料,则按规则轮询货架
//        if (null == locMast) {
//            Shelves shelves = new Shelves(rowCount, crn_qty);
//            int divides = (int) Arith.divides(1, curRow - 1, 4);
//            curRow = (int) Arith.remainder(curRow, 4);
//            if (curRow == 0) {
//                curRow = 4;
//            }
//            for (int i = 0; i < shelves.group; i ++) {
//                curRow = shelves.start(curRow);
//                if (curRow < 0) {
//                    throw new CoolException("检索库位失败,请联系管理员");
//                }
//                Integer crnNo1 = shelves.get(curRow);
//                crnNo1 = crnNo1 + divides*1;
//                if (basCrnpService.checkSiteError(crnNo1, true)) {
//                    crnNo = crnNo1;
//                    curRow = curRow + divides*4;
//                    break;
//                }
//            }
//        }
        if (crnNo == 0) {
            throw new CoolException("没有可用的堆垛机");
        }
src/main/resources/application.yml
@@ -46,6 +46,6 @@
  # 双深
  doubleDeep: true
  # 双深库位排号
  doubleLocs: 9,12,14,18
  doubleLocs: 9,12,15,18
  # 一个堆垛机负责的货架排数
  groupCount: 4