自动化立体仓库 - WMS系统
#
Administrator
10 小时以前 0467c8f9c2f3604ddd6e7e3a0372ce0fbaa46dff
src/main/java/com/zy/common/service/CommonService.java
@@ -216,7 +216,7 @@
        int sRow = rowLastno.getsRow();
        int eRow = rowLastno.geteRow();
        int crnNumber = rowLastno.getCrnQty();
       int sCrnNo= rowLastno.getsCrnNo()!=null?rowLastno.getsCrnNo():1;
        // ===============>>>> 开始执行
        curRow = rowLastno.getCurrentRow();
@@ -229,11 +229,15 @@
                curRow = moveCrnNo * 4 - 2;
            }
        }
        log.info("\ncurRow:\n{}",curRow);
        //此程序用于优化堆垛机异常时的运行时间
        for (int i = times; i < crnNumber * 2; i++) {
        log.info("\ni:\n{}",i);
        log.info("\ntimes:\n{}",times);
        log.info("\ncrnNumber:\n{}",crnNumber);
            int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
            crnNo = locNecessaryParameters[2];
            log.info("\ncrnNo:\n{}",crnNo);
            if (basCrnpService.checkSiteError(crnNo, true)) {
                nearRow = locNecessaryParameters[3];
                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
@@ -242,7 +246,9 @@
                        .eq("frozen", 0)
                        .eq("deleted", 0)
                        .eq("whs_type", rowLastnoType.getType().longValue()));
                int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
//                log.info("\nlocMasts:\n{}",locMasts);
                int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>()
                        .eq("crn_no", crnNo).le("io_type", 100));
                if (locMasts.size() - crnCountO <= 2) {
                    if(curRow+2==7){
@@ -254,6 +260,20 @@
                }
                break;
            } else {
//                curRow = crnNo +2;// crnNo=3  curRow=5
//                if (curRow == 9||curRow==10) {
//                    curRow = 1;
//                }
                int nextCrnNo=crnNo + 1;//下一个堆垛机号
                if(nextCrnNo> sCrnNo+crnNumber-1){//下一台大于
                    nextCrnNo=sCrnNo;
                }
                if(nextCrnNo==sCrnNo){
                    curRow=0;
                }else {
                    curRow = sRow + (nextCrnNo - sCrnNo) * 4;
                }
                times++;
            }
        }
@@ -266,6 +286,7 @@
        BasDevp staNo = null;
        if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
            int selectedCrnNo=crnNo;
            // 获取目标站
            wrapper = new EntityWrapper<StaDesc>()
                    .eq("type_no", staDescId)
@@ -287,7 +308,12 @@
            }
            // 更新库位排号
            if (Cools.isEmpty(locMast)) {
                rowLastno.setCurrentRow(curRow);
                int crnNoForRotation=crnNo!=0?crnNo:selectedCrnNo;
                int nextCrnNoAfterSuccess=(crnNoForRotation>=sCrnNo+crnNumber-1?sCrnNo:crnNoForRotation+1);
                int curRowToSave = (nextCrnNoAfterSuccess==sCrnNo)?0:sRow+(nextCrnNoAfterSuccess-sCrnNo)*4;
                rowLastno.setCurrentRow(curRowToSave);
                log.info("\ncurRowToSave:\n{}",curRowToSave);
                rowLastnoService.updateById(rowLastno);
            }
        }