#
TQS
2023-04-12 94f53c5d70e9150b09de00480060b2afe2f6c099
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,7 @@
                    List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour);
                    if (wrkMasts.size() > 0){
                        News.error("MainServiceImpl  1028行"+"存在捡料、盘点未入库货物,2号堆垛机暂时禁止出库!!!");
                        continue;
                        return false;
                    }
                }
@@ -1087,7 +1097,7 @@
                    List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType1(sour);
                    if (wrkMasts.size() > 0){
                        News.error("MainServiceImpl  1028行"+"204存在全板出库中货物,2号堆垛机暂时禁止全板出库!!!");
                        continue;
                        return false;
                    }
                }
            }
@@ -1188,7 +1198,7 @@
                }
            }
            if(flag){
                continue;
                return false;
            }
            // 工作档状态判断
@@ -2335,18 +2345,35 @@
                    crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue());     // 目标库位排
                    crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 目标库位列
                    crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 目标库位层
                    if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                        News.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
                    } else {
                    if( crnCommand.getSourcePosX() == crnCommand.getDestinationPosX()
                        && crnCommand.getSourcePosY() == crnCommand.getDestinationPosY()
                        && crnCommand.getSourcePosZ() == crnCommand.getDestinationPosZ()){
                        //打补丁,如果出现源排列层 和目标排列层完全相同时,不给堆垛机发任务,状态直接由3 ==>> 6
                        // 修改穿梭车运行中排列层
                        steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
                        // 修改工作档状态 3.小车待搬 => 4.迁入小车
                        // 修改工作档状态 3.小车待搬 => 6.小车待入
                        Date now = new Date();
                        wrkMast.setWrkSts(4L);
                        wrkMast.setWrkSts(6L);
                        wrkMast.setCrnStrTime(now);
                        wrkMast.setModiTime(now);
                        if (wrkMastMapper.updateById(wrkMast) == 0) {
                            News.error("修改工作档状态 3.小车待搬 => 4.迁入小车 失败!!,工作号={}", wrkMast.getWrkNo());
                            News.error("修改工作档状态 3.小车待搬 => 6.小车待入 失败!!,工作号={}", wrkMast.getWrkNo());
                        }
                    } else {
                        if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                            News.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
                        } else {
                            // 修改穿梭车运行中排列层
                            steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
                            // 修改工作档状态 3.小车待搬 => 4.迁入小车
                            Date now = new Date();
                            wrkMast.setWrkSts(4L);
                            wrkMast.setCrnStrTime(now);
                            wrkMast.setModiTime(now);
                            if (wrkMastMapper.updateById(wrkMast) == 0) {
                                News.error("修改工作档状态 3.小车待搬 => 4.迁入小车 失败!!,工作号={}", wrkMast.getWrkNo());
                            }
                        }
                    }
                // 出库搬
@@ -3879,7 +3906,11 @@
                    boolean success = true;
                    List<String> insideLoc = Utils.getGroupInsideLoc(one.getLocNo());
                    for (String inside : insideLoc) {
                        if (locMastService.selectById(inside).getLocSts().equals("P")
                        LocMast locMast = locMastService.selectById(inside);
                        if(Cools.isEmpty(locMast)){
                            continue;
                        }
                        if (locMast.getLocSts().equals("P")
                                || locMastService.selectById(inside).getLocSts().equals("R")
                                || locMastService.selectById(inside).getLocSts().equals("S")
                                || locMastService.selectById(inside).getLocSts().equals("Q")) {