cpT
2025-06-28 8212b1177f0191332e6c398306310b0ffe73d484
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()));
@@ -1423,7 +1423,7 @@
                                        (int) crnProtocol.getAlarm(),    // 异常码
                                        errName,    // 异常
                                        1,    // 异常情况
                                        now,    // 添加时间
                                        taskWrk.getCreateTime(),    // 任务时间(接收时间)
                                        null,    // 添加人员
                                        now,    // 修改时间
                                        null,    // 修改人员
@@ -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 = "-";
@@ -1770,6 +1773,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) {
@@ -2161,6 +2210,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));