#
TQS
2024-08-16 9f9961b2061f7abb44ff69083154403a15e26363
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -141,6 +141,24 @@
                            News.error("MainServiceImpl  generateStoreWrkFile"+"203为出库模式,禁止入库,退回入库口。!!!");
                            continue;
                        }
                        if ( inSta.getStaNo()==113 && devpThread.ioModeOf3F == IoModeType.PAKOUT_MODE) {
                            //有出库任务,退库到入库口
                            staProtocol.setWorkNo((short) 9999);
                            staProtocol.setStaNo((short)114);
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            News.error("MainServiceImpl  generateStoreWrkFile"+"103为出库模式,禁止入库,退回入库口。!!!");
                            continue;
                        }
                        if ( inSta.getStaNo()==213 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) {
                            //有出库任务,退库到入库口
                            staProtocol.setWorkNo((short) 9999);
                            staProtocol.setStaNo((short)214);
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            News.error("MainServiceImpl  generateStoreWrkFile"+"203为出库模式,禁止入库,退回入库口。!!!");
                            continue;
                        }
                    }
                    // 获取条码扫描仪信息
@@ -1424,6 +1442,14 @@
                }
                if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
                    News.error("MainServiceImpl  locToCrnStn"+"203非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo());
                    return false;
                }
                if (wrkMast.getStaNo() == 113 && devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {
                    News.error("MainServiceImpl  locToCrnStn"+"113非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo());
                    return false;
                }
                if (wrkMast.getStaNo() == 213 && devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
                    News.error("MainServiceImpl  locToCrnStn"+"213非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo());
                    return false;
                }
@@ -3969,6 +3995,24 @@
                        News.error("MainServiceImpl  storeEmptyPlt"+"203为出库模式,禁止入库,退回入库口。!!!");
                        continue;
                    }
                    if ( emptyInSta.getStaNo()==113 && devpThread.ioModeOf3F == IoModeType.PAKOUT_MODE) {
                        //有出库任务,退库到入库口
                        staProtocol.setWorkNo((short) 9999);
                        staProtocol.setStaNo((short)100);
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        News.error("MainServiceImpl  storeEmptyPlt"+"113为出库模式,禁止入库,退回入库口。!!!");
                        continue;
                    }
                    if ( emptyInSta.getStaNo()==213 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) {
                        //有出库任务,退库到入库口
                        staProtocol.setWorkNo((short) 9999);
                        staProtocol.setStaNo((short)200);
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        News.error("MainServiceImpl  storeEmptyPlt"+"213为出库模式,禁止入库,退回入库口。!!!");
                        continue;
                    }
                }
                // 站点条件判断
@@ -4735,10 +4779,10 @@
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                for (DevpSlave.Sta inSta : devp.getInSta()) {
                    Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204;
                    Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : inSta.getStaNo()==113 ? 104 : 204;
                    WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
                    switch (inSta.getStaNo()) {
                        case 103://1F
                        case 103://1F1
                            if (pakout != null) {
                                if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
                                    // 出库切换中
@@ -4756,7 +4800,7 @@
                                devpThread.ioModeOf1F = IoModeType.PAKIN_MODE;
                            }
                            break;
                        case 203://2F
                        case 203://1F2
                            if (pakout != null) {
                                if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
                                    // 出库切换中
@@ -4774,6 +4818,123 @@
                                devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
                            }
                            break;
//                        case 113://2F1
//                            if (pakout != null) {
//                                if (devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {
//                                    // 出库切换中
////                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
////                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
////                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
////                                            && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
////                                            && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
////                                        // 出库模式
//                                    devpThread.ioModeOf3F = IoModeType.PAKOUT_MODE;
////                                    }
//                                }
//                            } else {
//                                // 入库模式
//                                devpThread.ioModeOf3F = IoModeType.PAKIN_MODE;
//                            }
//                            break;
//                        case 213://2F2
//                            if (pakout != null) {
//                                if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
//                                    // 出库切换中
////                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
////                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
////                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
////                                            && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
////                                            && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
////                                        // 出库模式
//                                    devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
////                                    }
//                                }
//                            } else {
//                                // 入库模式
//                                devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
//                            }
//                            break;
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public synchronized void ioConvert2F() {
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                if (devp.getId() == 1){
                    continue;
                }
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                for (DevpSlave.Sta inSta : devp.getInSta()) {
                    Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : inSta.getStaNo()==113 ? 104 : 204;
                    WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
                    boolean sign = true;
                    int[] staNos = new int[3];
                    switch (inSta.getStaNo()) {
                        case 113://2F1
                            staNos = new int[]{112,113,114};
                            for (int staNo : staNos){
                                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                                if (!staProtocol.isAutoing() || staProtocol.isLoading()){
                                    sign = false;
                                }
                            }
                            if (sign){
                                if (pakout != null) {
                                    if (devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {
                                        // 出库切换中
//                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
//                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
//                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
//                                            && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
//                                            && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
//                                        // 出库模式
                                        devpThread.ioModeOf3F = IoModeType.PAKOUT_MODE;
//                                    }
                                    }
                                } else {
                                    // 入库模式
                                    devpThread.ioModeOf3F = IoModeType.PAKIN_MODE;
                                }
                            }
                            break;
                        case 213://2F2
                            staNos = new int[]{212,213,214};
                            for (int staNo : staNos){
                                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                                if (!staProtocol.isAutoing() || staProtocol.isLoading()){
                                    sign = false;
                                }
                            }
                            if (sign){
                                if (pakout != null) {
                                    if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
                                        // 出库切换中
//                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
//                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
//                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
//                                            && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
//                                            && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
//                                        // 出库模式
                                        devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
//                                    }
                                    }
                                } else {
                                    // 入库模式
                                    devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
                                }
                            }
                            break;
                    }
                }