| | |
| | | } |
| | | } |
| | | }else if (conStation==2){ |
| | | if (crnProtocol.statusType != CrnStatusType.IDLE){ |
| | | return false; |
| | | } |
| | | // 查询工作档 |
| | | WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNoTwo().intValue()); |
| | | if (wrkMast == null) { |
| | |
| | | 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: |