#
lsh
2024-07-16 a1d2d0b6ff3643041ee0840bcedd859927f7a6cf
#
1个文件已修改
36 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1294,6 +1294,9 @@
                        }
                    }
                }else if (conStation==2){
                    if (crnProtocol.statusType != CrnStatusType.IDLE){
                        return false;
                    }
                    // 查询工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNoTwo().intValue());
                    if (wrkMast == null) {
@@ -4506,6 +4509,39 @@
            int[] sign = new int[]{0,0};
            // 只有当堆垛机自动时才继续执行
            if (crnProtocol.getModeType() == CrnModeType.AUTO) {
                //双
                if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
                        && crnProtocol.getTaskNo() == 0
                        && crnProtocol.getLoaded() == 1
                        && crnProtocol.getForkPos() == 0) {
                    if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
                            && crnProtocol.getTaskNoTwo() == 0
                            && crnProtocol.getLoadedTwo() == 1
                            && crnProtocol.getForkPosTwo() == 0){
                        List<WrkMastSplitTwin> wrkMastSplitTwinList1 = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),1,2,2,0);
                        List<WrkMastSplitTwin> wrkMastSplitTwinList2 = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),2,2,2,0);
                        if (!wrkMastSplitTwinList1.isEmpty() && !wrkMastSplitTwinList2.isEmpty() ){
                            if (wrkMastSplitTwinList1.size()>1 || wrkMastSplitTwinList2.size()>1 ){
                                log.error("Pair堆垛机出入库下发异常,堆垛机号={},异常信息={},工位号={},工作类型={}",crn.getId(),"存在多笔可执行作业,请删除无效作业!!!",sign[1],sign[0]);
                                return false;
                            }
                            WrkMastSplitTwin wrkMastSplitTwin1 = wrkMastSplitTwinList1.get(0);
                            WrkMastSplitTwin wrkMastSplitTwin2 = wrkMastSplitTwinList2.get(0);
                            boolean ack =  crnExecutePutFullPair(crn.getId(), wrkMastSplitTwin1,wrkMastSplitTwin2, sign[1]);
                            if (ack){
                                wrkMastSplitTwin1.setWrkSts(wrkMastSplitTwin1.getWrkType()==1? 1:3);
                                wrkMastSplitTwinService.updateById(wrkMastSplitTwin1);
                                wrkMastSplitTwin2.setWrkSts(wrkMastSplitTwin2.getWrkType()==1? 1:3);
                                wrkMastSplitTwinService.updateById(wrkMastSplitTwin2);
                            }else {
                                log.error("堆垛机出入库下发报错,堆垛机号={},异常信息={}",crn.getId(),"下发任务返回值为:"+ack);
                            }
                            return false;
                        }
                    }
                }
                // 只有当堆垛机工位1取货或者有物 并且 工位2无任务时才继续执行
                switch (i){
                    case 1: