#
luxiaotao1123
2023-04-17 d014ca67872527703ef949b6874984df0208f17b
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -326,15 +326,20 @@
                        continue;
                    }
                    short staNo;
                    List<BasDevp> basDevps1 = basDevpMapper.getLoading(103);
                    List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
                    switch (wrkMast.getSourceStaNo()) {
                        case 104:
                        case 108:
                            staNo = 103;
                            List<BasDevp> basDevps1 = basDevpMapper.getLoading(103);
                            if (basDevps1.size()!=0){
                            if (basDevps1.size()!=0 && basDevps2.size()!=0){
                                continue;
                            } else if (basDevps1.size()!=0){
                                staNo = 203;
                            }
                            List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType(103);
                            List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType((int)staNo);
                            if (wrkMasts1.size()!=0){
                                boolean flag = false;
                                for (WrkMast wrkMast1:wrkMasts1){
@@ -352,11 +357,16 @@
                        case 204:
                        case 208:
                            staNo = 203;
                            List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
                            if (basDevps2.size()!=0){
                            if (basDevps1.size()!=0 && basDevps2.size()!=0){
                                continue;
                            } else if (basDevps2.size()!=0){
                                staNo = 103;
                            }
                            List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType(203);
//                            if (basDevps2.size()!=0){
//                                continue;
//                            }
                            List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType((int)staNo);
                            if (wrkMasts2.size()!=0){
                                boolean flag = false;
                                for (WrkMast wrkMast1:wrkMasts2){
@@ -1066,11 +1076,11 @@
            if (wrkMast.getCrnNo().equals(2)){
                if (wrkMast.getStaNo() == 103 && devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
                    News.error("MainServiceImpl  locToCrnStn"+"103非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo());
                    continue;
                    return false;
                }
                if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
                    News.error("MainServiceImpl  locToCrnStn"+"203非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo());
                    continue;
                    return false;
                }
                if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
@@ -1078,7 +1088,16 @@
                    List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour);
                    if (wrkMasts.size() > 0){
                        News.error("MainServiceImpl  1028行"+"存在捡料、盘点未入库货物,2号堆垛机暂时禁止出库!!!");
                        continue;
                        return false;
                    }
                    //如果存在目标站300且正在执行的拣料/盘点任务,则2号堆垛机不允许做拣料/盘点出库
                    WrkMast one = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                            .eq("sta_no",300)
                            .last(" and wrk_sts>11 and io_type in (103,107) "));
                    if(!Cools.isEmpty(one)){
                        News.error("MainServiceImpl  1099行"+"存在捡料、盘点未入库货物,2号堆垛机暂时禁止出库!!!");
                        return false;
                    }
                }
@@ -1086,8 +1105,12 @@
                    Integer sour = wrkMast.getSourceStaNo();
                    List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType1(sour);
                    if (wrkMasts.size() > 0){
                        News.error("MainServiceImpl  1028行"+"204存在全板出库中货物,2号堆垛机暂时禁止全板出库!!!");
                        continue;
                        for (WrkMast one : wrkMasts){
                            if(one.getWrkNo().equals(wrkMast.getWrkNo())){
                                News.error("MainServiceImpl  1028行"+"204存在全板出库中货物,2号堆垛机暂时禁止全板出库!!!");
                                return false;
                            }
                        }
                    }
                }
            }
@@ -1100,7 +1123,7 @@
                    .last(" and wrk_sts < 10"));
            if(one1 != null){
                News.error("{}出库任务无法作业,因入库任务已绑定小车!", wrkMast.getWrkNo());
                continue;
                return false;
            }
            //加强判断,确保因出库导致的移库整套任务全部结束后,才能执行下一笔出库任务。只有库位完成移库回去全部任务后,才认为当组出库任务完成
@@ -1110,13 +1133,13 @@
                if(one.getWrkSts() > 10 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getSourceLocNo())
                        || Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getSourceLocNo())
                        || Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getSourceLocNo()))){
                    continue;
                    return false;
                }
                //存在移库任务,且在移回中,且移库目标库位与待出库库位不在同一库位组,时跳出,确保移库/出库全套任务完成后,再执行下一笔
                if(one.getWrkSts() < 11  && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getLocNo())
                        || Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getLocNo())
                        || Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getLocNo()))){
                    continue;
                    return false;
                }
            }
@@ -1645,6 +1668,11 @@
                            }
                        }
                        break;
//                    } else {
//                        LocMast curLoc = locMastService.selectById(locNo);
//                        if(curLoc != null && curLoc.getLocSts().equals("O")){
//
//                        }
                    }
                }
            }