#
zjj
2024-08-20 649f2e387786c86e248a8e031979c3fb67a5e39d
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -59,7 +59,7 @@
//    private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
    private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
    private static final Integer jarMaxLoc = 6;
    private static final Integer jarMaxLoc = 7;
    private static final Float jarTemperature = 50F;
    @Autowired
    private CommonService commonService;
@@ -503,6 +503,15 @@
                if (!Cools.isEmpty(barcode)) {
//                    log.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode);
                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
                        continue;
                    }
                    if ("00000000".equals(barcode)){
                        log.error(inSta+"站点,扫码失败,barcode:"+barcode);
                        // led 异常显示
//                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
//                        if (ledThread != null) {
//                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, inSta+"站点,扫码失败,barcode:"+barcode));
//                        }
                        continue;
                    }
                } else {
@@ -2547,7 +2556,7 @@
            }
            //退库模式跳过118、119出库任务
            if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
                    continue;
                }
@@ -2852,7 +2861,7 @@
            }
            //退库模式跳过118、119出库任务
            if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
                    continue;
                }
@@ -3840,7 +3849,13 @@
                // 站点条件判断
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0)  && staProtocol.isPakMk()) {
                    //回库标记
                    if (emptyInSta.getStaNo()==126 || emptyInSta.getStaNo()==131){
                        RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("sign"+emptyInSta.getStaNo());
                        if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()!=1){
                            continue;
                        }
                    }
                    try {
                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -3897,7 +3912,13 @@
                // 站点条件判断
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
                        && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0)  && staProtocol.isPakMk()) {
                    //回库标记
                    if (emptyInSta.getStaNo()==310 || emptyInSta.getStaNo()==312){
                        RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("sign"+emptyInSta.getStaNo());
                        if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()!=1){
                            continue;
                        }
                    }
                    try {
                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -3977,7 +3998,7 @@
     */
    public synchronized void storeEmptyPlt3() {
        try{
            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
            if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
                return;
            }
@@ -4814,8 +4835,28 @@
                            if (basJarMastService.selectJarMastOperation(jarSlave.getId(),2)!=0){
                                break;
                            }
                            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){
                            BasJar basJar = basJarMapper.selectById(jarSlave.getId());
                            int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 11));
                            if (count>0){
                                break;
                            }
                            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){
                                if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)==7){
                                    JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
                                    JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
                                    if (jarOtherProtocol == null) {
                                        break;
                                    }
                                    if (jarOtherProtocol.getJarTemperature()>jarTemperature){
                                        log.info("{}号硫化罐查询设备温度过高,等待降温....先执行入罐任务!!!",jarOtherProtocol.getJarNo());
                                    } else {
                                        if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>0){
                                            log.info("{}号硫化罐查询设备温度过高,先执行了入罐任务,执行完毕再进行冷却!!!",jarOtherProtocol.getJarNo());
                                        } else {
                                            break;
                                        }
                                    }
                                }
                            }
                            if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=jarMaxLoc*2){
                                break;
@@ -5135,7 +5176,7 @@
                    if (jarWrkMastExecuteGenerate5(jarSlave,sign)){
                        signExecute[jarSlave.getId()-5] = true;
                        return signExecute;
                        //出硫化罐 ===》 入冷却槽
                        //冷却完成上输送线
                    }
                    continue;
                }
@@ -5289,6 +5330,11 @@
                            return false;
                        }
                        int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 11));
                        if (count>0){
                            return false;
                        }
                        //门作业  无
                        //自动、空闲、右门关闭、   Other左门关闭
                        if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
@@ -5420,9 +5466,11 @@
            if (basJarMastList.size() != jarMaxLoc){
                return false;
            }
            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=0){
                return false;
            }
//            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=0
//                    && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=7
//                    && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=14){
//                return false;
//            }
            BasJarMast basJarMastSign = basJarMastList.get(0);
            if (Cools.isEmpty(basJarMastSign)){
@@ -5507,7 +5555,7 @@
            if (basJarMastList10.size()==jarMaxLoc){
                return false;
            }
            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0){
            if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0 && basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=7){
                return false;
            }
@@ -5551,6 +5599,22 @@
                if (Cools.isEmpty(basJar)){
                    log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                    return false;
                }
                //临时
                if (basJar.getJarCode()==1){
                    JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
                    JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
                    if (jarOtherProtocol == null) {
                        return false;
                    }
                    if (!jarOtherProtocol.isAutoing() || jarOtherProtocol.jarErr!=0
                            || !jarOtherProtocol.isLeftDoor() || !jarOtherProtocol.isRightDoor()
                            || jarOtherProtocol.leftDoorOpen==1  || jarOtherProtocol.leftDoorClose==1 || jarOtherProtocol.rightDoorOpen==1  || jarOtherProtocol.rightDoorClose==1){
                        log.error("{}号硫化罐查询设备不满足前往冷却池条件,代号2硫化罐门没开!!!",jarOtherProtocol.getJarNo());
                        return false;
                    }
                }
                //门作业  无
@@ -8092,7 +8156,7 @@
                }
            }
        } catch (Exception e){
            log.error("硫化区域分段任务完成异常,异常信息={}",e.getMessage());
            log.error("硫化区域分段充电任务创建异常,异常信息={}",e.getMessage());
        }
        return false;
    }
@@ -8123,7 +8187,38 @@
                    if(basJarMastList.isEmpty()){
                        if (wrkMastExecuteService.selectNoStartCharge(steSlave.getId())==0){
                            if (wrkMastExecuteService.selectMoveStart(steSlave.getId())==0){
                                continue;
                                boolean sign = true;
                                for (SteSlave.InStn inStn : steSlave.getSteInStn()){
                                    //检测站点状态
                                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getDevpPlcId());
                                    StaProtocol staProtocol = devpThread.getStation().get(inStn.getStaNo());
                                    if (staProtocol == null) {
                                        continue;
                                    } else {
                                        staProtocol = staProtocol.clone();
                                    }
                                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0) {
                                        // 获取硫化罐信息
                                        JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, inStn.getJarNo());
                                        JarProtocol jarProtocol = jarThread.getJarProtocol();
                                        if (jarProtocol == null) {
                                            continue;
                                        }
                                        if (jarProtocol.modeType != JarModeType.AUTO){
                                            continue;
                                        }
                                        if (jarProtocol.statusType .equals(JarStatusType.SOS)){
                                            continue;
                                        }
                                        if (jarProtocol.getJarTemperature()>jarTemperature){
                                            continue;
                                        }
                                        sign = false;
                                    }
                                }
                                if(sign){
                                    continue;
                                }
                            }
                        }
                    }
@@ -8169,7 +8264,7 @@
                }
            }
        } catch (Exception e){
            log.error("硫化区域分段任务完成异常,异常信息={}",e.getMessage());
            log.error("硫化区域分段任务充电任务完成异常,异常信息={}",e.getMessage());
        }
        return false;
    }