pjb
2 天以前 7068307fa5a395b2027e9dd9ce8b2a4819d8ee9d
src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -41,6 +41,7 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@@ -620,15 +621,23 @@
                        crnProtocol.setLastIo("O");
                    } else if (basCrnp.getOutEnable().equals("Y")) {
                        //mark - 2 - ....
                        this.locToCrnStn(crn, crnProtocol,mark); //  出库
                        AtomicInteger atomicInteger = new AtomicInteger(mark);
                        this.locToCrnStn(crn, crnProtocol,atomicInteger); //  出库
                        crnProtocol.setLastIo("I");
                        if(atomicInteger.get() == 99) { // 下一次还是出库
                            crnProtocol.setLastIo("O");
                        }
                    }
                }
                // 如果最近一次是出库模式
                else if (crnProtocol.getLastIo().equals("O")) {
                    if (basCrnp.getOutEnable().equals("Y")) {
                        this.locToCrnStn(crn, crnProtocol,mark); //  出库
                        AtomicInteger atomicInteger = new AtomicInteger(mark);
                        this.locToCrnStn(crn, crnProtocol,atomicInteger); //  出库
                        crnProtocol.setLastIo("I");
                        if(atomicInteger.get() == 99) { // 下一次还是出库
                            crnProtocol.setLastIo("O");
                        }
                    } else if (basCrnp.getInEnable().equals("Y")) {
                        this.crnStnToLoc(crn, crnProtocol,mark); //  入库
                        crnProtocol.setLastIo("O");
@@ -749,7 +758,7 @@
                        wrkMast.setIoPri(14D);
                        wrkMastMapper.updateById(wrkMast);
                        // 生成工作档,将浅库位移转到新的库位中
                        moveLocForDeepLoc(slave, shallowLoc,mark);
                        moveLocForDeepLoc(slave, shallowLoc,new AtomicInteger(mark));
                        // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行)
//                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
                    }
@@ -827,7 +836,7 @@
     * 出库  ===>>  库位到堆垛机站
     * 2022-06-09 TQS修改,查询工作档LIST,遍历下发,防止第一个任务堵塞出库
     */
    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) {
    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,AtomicInteger mark) {
        News.warnNoLog(""+mark+" - 2"+" - 0"+" - 堆垛机入出库作业下发:执行出库");
        boolean crnAvailableOut = false;
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","removeCrnAvailableOut"));
@@ -999,6 +1008,7 @@
                                wrkMast1.setSourceStaNo(1056);
                                wrkMastService.updateById(wrkMast1);
                            }
                            mark.set(99);
                            break;
                        }
                    }
@@ -1727,7 +1737,7 @@
     * 因双深库位阻塞,对浅库位进行移转(立即执行版)
     * tip:同步
     */
    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) {
    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,AtomicInteger mark) {
        // 只有208L能放11层
        String model = null;