cpT
2025-06-29 23bc853bf89485a3a85c3dc022e539547ab7ebe5
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -225,7 +225,7 @@
                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
                            if (!Cools.isEmpty(taskWrk1)) {
                                log.info("托盘码:" + barcode + "任务档存在");
                                if (taskWrk1.getIoType() == 1 && taskWrk1.getStatus() < 3 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
                                if (taskWrk1.getIoType() == 1 && taskWrk1.getStatus() < 3 && (taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString()) || taskWrk1.getStartPoint().equals(String.valueOf((staProtocol.getSiteId()+1))))) {
                                    StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                            .eq("CRN_NO", taskWrk1.getCrnNo()).eq("TYPE_NO", 1).eq("STN_NO", staProtocol.getSiteId()));
@@ -1690,7 +1690,10 @@
            if (taskWrk != null) {
                Integer stano = staProtocol.getStaNo();
                if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){
                    // 判断是否满足取货条件
                    if (!staProtocol.isLoading()) {
                        return null;
                    }
                    // 尺寸检测异常
                    boolean back = false;
                    String errMsg = "-";
@@ -1771,6 +1774,52 @@
        }
        return null;
    }
    public boolean deviceDetection(RgvSlave.RgvStn inSta,Integer rgvNo) {
        ArrayList<Integer> arrayList = new ArrayList<Integer>() {{
            add(1009);
            add(1011);
            add(1012);
            add(1014);
            add(1016);
        }};
        try{
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
            ArrayList<Integer> listW = new ArrayList<Integer>();
            ArrayList<Integer> listL = new ArrayList<Integer>();
            for (Integer staNo : arrayList){
                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                if (staProtocol == null) {
                    RgvErrCache.updateRgvErr(rgvNo,staNo+"站点数据丢失");
                    return false;
                }
                // 判断是否满足取货条件
                if (staProtocol.getWorkNo() != 0) {
                    if (!listW.contains(staProtocol.getWorkNo())) {
                        listW.add(staProtocol.getWorkNo());
                    }
                }
                // 判断是否满足取货条件
                if (staProtocol.isLoading()) {
                    if (!listL.contains(staProtocol.getStaNo())) {
                        listL.add(staProtocol.getStaNo());
                    }
                }
            }
            if (listW.size()>=3){
                RgvErrCache.updateRgvErr(rgvNo,"等待1012拣选,防止堵塞");
                return false;
            }
            if (listL.size()>=3){
                RgvErrCache.updateRgvErr(rgvNo,"等待1012拣选,防止堵塞");
                return false;
            }
        } catch (Exception e){
            RgvErrCache.updateRgvErr(rgvNo,"1012检测异常:"+e.getMessage());
            return false;
        }
        return true;
    }
    public boolean rgvOtherStatusEnable(RgvSlave slave) {
        RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
@@ -1833,6 +1882,7 @@
                            if (rgvOtherIDLEOther(rgvSlave)){
                                if (!rgvOtherIDLE(rgvSlave,staList.get(0))){
                                    System.out.println("空闲就近跳过==="+rgvSlave.getId()+"===");
                                    RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"空闲就近跳过");
                                    sign=true;
                                }
@@ -1913,6 +1963,8 @@
                            if (rgvOtherIDLEOther2(rgvSlave)){
                                if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){
                                    System.out.println("运行就近跳过==="+rgvSlave.getId()+"===");
                                    RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"运行就近跳过");
                                    sign=true;
                                }
                            }
@@ -2075,6 +2127,8 @@
                            }
                        }
                        RgvErrCache.updateRgvErr(rgvSlave.getId(),"未查询到可执行任务");
                    } else {
                        //可用区域就近取货
                        //就近排序
@@ -2161,6 +2215,11 @@
                if (targetPointConvert == null) {
                    return false;
                }
                if (targetPointConvert == 1009){
                    if (!deviceDetection(rgvStn, rgvSlave.getId())){
                        return false;
                    }
                }
                BasDevpPosition basDevpPositionSou = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo()));
                BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", targetPointConvert));
@@ -2197,6 +2256,8 @@
                }
            } catch (Exception e) {
                log.error("任务生成失败issued1===》异常信息:{}", e.getMessage());
                RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"站点任务生成失败issued1");
                return false;
            }
@@ -2214,6 +2275,7 @@
            }
        } catch (Exception e) {
            log.error("任务生成失败issued2===》异常信息:{}", e.getMessage());
            RgvErrCache.updateRgvErr(rgvSlave.getId(),rgvStn.getStaNo()+"站点任务生成失败issued2");
        }
        return true;
    }