#
1
22 小时以前 6cdfae15cde1a3141203c35c5f9835f0d45dbfbb
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -339,9 +339,9 @@
                            staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            log.error("输送线下发2:"+dto.getWorkNo()+","+dto.getStaNo());
                            log.info("输送线下发2:"+dto.getWorkNo()+","+dto.getStaNo());
                            ledThread.errorReset();
                            log.error("组托请求后LED错误清除");
                            log.info("组托请求后LED错误清除");
                            if (!result) {
                                News.error(methodName + ":更新plc站点信息失败");
@@ -643,7 +643,7 @@
                        wrkMast.setIoTime(now);
                        wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57
                        wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
                        wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站
                        wrkMast.setSourceStaNo(staDesc.getStnNo()); // 源站
                        wrkMast.setStaNo(staNo); // 目标站
                        wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 目标库位 = 出库时的源库位
                        wrkMast.setSourceLocNo(""); // 源库位清空
@@ -903,7 +903,7 @@
                            wrkMast9997.setCrnEndTime(new Date());
                            if (wrkMastMapper.updateById(wrkMast9997) != 0) {
                                // 复位堆垛机
                                log.error("出库任务完成下发堆垛机复位,{}", wrkMast9997.getWrkNo());
                                log.info("出库任务完成下发堆垛机复位,{}", wrkMast9997.getWrkNo());
                                crnThread.setResetFlag(true);
                            } else {
                                News.error(""+mark+" - 1"+" - 更新工作档的工作状态为14失败!!! [工作号:{}]", wrkMast9997.getWrkNo());
@@ -949,7 +949,7 @@
                            wrkMast9996.setCrnEndTime(new Date());
                            if (wrkMastMapper.updateById(wrkMast9996) != 0) {
                                // 复位堆垛机
                                log.error("出库任务完成下发堆垛机复位,{}", wrkMast9996.getWrkNo());
                                log.info("出库任务完成下发堆垛机复位,{}", wrkMast9996.getWrkNo());
                                crnThread.setResetFlag(true);
                            } else {
                                News.error(""+mark+" - 1"+" - 更新工作档的工作状态为14失败!!! [工作号:{}]", wrkMast9996.getWrkNo());
@@ -1003,7 +1003,7 @@
                        wrkMast.setCrnEndTime(new Date());
                        if (wrkMastMapper.updateById(wrkMast) != 0) {
                            // 复位堆垛机
                            log.error("出库任务完成下发堆垛机复位,{}", wrkMast.getWrkNo());
                            log.info("出库任务完成下发堆垛机复位,{}", wrkMast.getWrkNo());
                            crnThread.setResetFlag(true);
                        } else {
                            News.error(""+mark+" - 1"+" - 更新工作档的工作状态为14失败!!! [工作号:{}]", wrkMast.getWrkNo());
@@ -3063,6 +3063,8 @@
            } else {
                staProtocol = staProtocol.clone();
            }
            if (staProtocol.isAutoing()  //自动
                    && !staProtocol.isLoading()  //无物
//                    && staProtocol.isOutEnable()  //可出信号
@@ -3583,7 +3585,7 @@
                            }
                            wrkMastSta.setWrkSts(2);
                            wrkMastStaMapper.updateById(wrkMastSta);
                            log.error("更新小车任务成功");
                            log.info("更新小车任务成功");
                        }catch (Exception e){
                            log.error("更新小车任务失败"+ e);
                        }
@@ -3652,7 +3654,7 @@
                            }
                            wrkMastSta.setWrkSts(2);
                            wrkMastStaMapper.updateById(wrkMastSta);
                            log.error("更新小车任务成功");
                            log.info("更新小车任务成功");
                        }catch (Exception e){
                            log.error("更新小车任务失败");
                        }
@@ -3825,7 +3827,6 @@
            if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
                rgvThread.setPaking(true);
            }
            if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
                basRgv.setPakAll("1");
                basRgvService.updateById(basRgv);
@@ -3833,6 +3834,9 @@
            if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
                    rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
                    && rgvThread.isPaking() && basRgv.getPakAll().equals("1")){
                if(rgvProtocol.isLoaded1ing() || rgvProtocol.isLoaded2ing()){
                    continue;
                }
                if(basRgv.getPakOut().equals("1") && basRgv.getPakIn().equals("1")){
                    rgvPreSchedulingIn(rgv, rgvProtocol);//若暂无下发任务预调度提前到取货点
                    if (rgvProtocol.getLastIo().equals("I")) {
@@ -3982,10 +3986,11 @@
                try{
                    wrkMastSta.setWrkSts(1);
                    wrkMastStaMapper.updateById(wrkMastSta);
                    log.error("更新小车任务成功{}",wrkMastSta);
                    log.info("更新小车任务成功{}",wrkMastSta);
                }catch (Exception e){
                    log.error("更新小车任务失败");
                }
                break;  // 新增:下发成功后退出循环,防止连续下发多个
            } else {
                log.error("工作号{}所属任务下发失败",wrkMastSta.getWrkNo());
            }
@@ -4131,10 +4136,11 @@
                try{
                    wrkMastSta.setWrkSts(1);
                    wrkMastStaMapper.updateById(wrkMastSta);
                    log.error("更新小车任务成功{}",wrkMastSta);
                    log.info("更新小车任务成功{}",wrkMastSta);
                }catch (Exception e){
                    log.error("更新小车任务失败");
                }
                break;  // 新增:下发成功后退出循环,防止连续下发多个
            } else {
                log.error("工作号{}所属任务下发失败",wrkMastSta.getWrkNo());
            }
@@ -4280,10 +4286,11 @@
                try{
                    wrkMastSta.setWrkSts(1);
                    wrkMastStaMapper.updateById(wrkMastSta);
                    log.error("更新小车任务成功{}",wrkMastSta);
                    log.info("更新小车任务成功{}",wrkMastSta);
                }catch (Exception e){
                    log.error("更新小车任务失败");
                }
                break;  // 新增:下发成功后退出循环,防止连续下发多个
            } else {
                log.error("工作号{}所属任务下发失败",wrkMastSta.getWrkNo());
            }
@@ -4415,7 +4422,7 @@
                try{
                    wrkMastSta.setWrkSts(1);
                    wrkMastStaMapper.updateById(wrkMastSta);
                    log.error("更新小车任务成功");
                    log.info("更新小车任务成功");
                }catch (Exception e){
                    log.error("更新小车任务失败");
                }
@@ -4571,7 +4578,7 @@
            //遍历rgv入库取货站点
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
            StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2()==1043?1044:1103); //倒数第二个
            StaProtocol staProtocol2 = null;  //连续取货任务站点
            StaProtocol staProtocol1 = devpThread.getStation().get(rgvStn.getStaNo());  //第一个站点判断
            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
//            WrkMastSta wrkMastSta3 = null;//连取两个
//            Integer staNo = null;  //与调度
@@ -4607,6 +4614,15 @@
                continue;
            } else {
                staProtocol = staProtocol.clone();
            }
            if (staProtocol1 == null) {
                News.infoNoLog( " - Rgv入库站信息(staProtocol!=null继续执行):staProtocol=" + staProtocol);
                continue;
            } else {
                staProtocol1 = staProtocol1.clone();
            }
            if(staProtocol1.isLoading() || staProtocol1.getWorkNo()!=0){
                continue;
            }
            // 查询站点详细信息
            BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
@@ -4680,10 +4696,11 @@
                try{
                    wrkMastSta.setWrkSts(1);
                    wrkMastStaMapper.updateById(wrkMastSta);
                    log.error("更新小车任务成功{}",wrkMastSta);
                    log.info("更新小车任务成功{}",wrkMastSta);
                }catch (Exception e){
                    log.error("更新小车任务失败");
                }
                break;  // 新增:下发成功后退出循环,防止连续下发多个
            } else {
                log.error("工作号{}所属任务下发失败",wrkMastSta.getWrkNo());
            }
@@ -4890,10 +4907,16 @@
                    }
                    if(!Cools.isEmpty(barcode)) {
                        if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "0".equals(barcode) || barcode.length()<5) {
                            if(!staProtocol.isLoading()){
                                continue;
                            }
                            armTaskAssignmentCallApiLogSave(staProtocol, "拆垛条码为空", staProtocol.getSiteId()+"码垛位置,===》托盘条码为空", false);
                            continue;
                        }
                    } else {
                        if(!staProtocol.isLoading()){
                            continue;
                        }
                        armTaskAssignmentCallApiLogSave(staProtocol, "拆垛条码为空", staProtocol.getSiteId()+"码垛位置,===》托盘条码为空", false);
                        continue;
                    }
@@ -5091,7 +5114,7 @@
                    }
                    if(barcode.length()!=6){
                        armTaskAssignmentCallApiLogSave(staProtocol, "条码长度不是6位", staProtocol.getSiteId()+"码垛位置,条码长度不是6位===>>" + barcode, false);
                        armTaskAssignmentCallApiLogSave(staProtocol, "条码长度不是6位", staProtocol.getSiteId()+"码垛位置,条码长度不是6位===>>" + barcode, true);
                        continue;
                    }
@@ -5099,7 +5122,7 @@
                    int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",barcode));
                    int countwait = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",barcode));
                    if (countLoc > 0 || countWrk > 0 || countwait > 0) {
                        armTaskAssignmentCallApiLogSave(staProtocol, "条码数据已存在", staProtocol.getSiteId()+"码垛位置,组托档/工作档/库存条码数据已存在===>>" + barcode, false);
                        armTaskAssignmentCallApiLogSave(staProtocol, "条码数据已存在", staProtocol.getSiteId()+"码垛位置,组托档/工作档/库存条码数据已存在===>>" + barcode, true);
                        continue;
                    }
@@ -5278,7 +5301,7 @@
                    }
                    if(barcode.length()!=6){
                        armTaskAssignmentCallApiLogSave(locMastEnd, "条码长度不是6位", basArm.getStaNoSou()+"码垛位置,条码长度不是6位===>>" + barcode, false);
                        armTaskAssignmentCallApiLogSave(locMastEnd, "条码长度不是6位", basArm.getStaNoSou()+"码垛位置,条码长度不是6位===>>" + barcode, true);
                        continue;
                    }
@@ -5286,7 +5309,7 @@
                    int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",barcode));
                    int countwait = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",barcode));
                    if (countLoc > 0 || countWrk > 0 || countwait > 0) {
                        armTaskAssignmentCallApiLogSave(locMastEnd, "条码数据已存在", basArm.getStaNoSou()+"码垛位置,组托档/工作档/库存条码数据已存在===>>" + barcode, false);
                        armTaskAssignmentCallApiLogSave(locMastEnd, "条码数据已存在", basArm.getStaNoSou()+"码垛位置,组托档/工作档/库存条码数据已存在===>>" + barcode, true);
                        continue;
                    }
@@ -5651,6 +5674,10 @@
     * agv任务生成  Empty
     * */
    public synchronized void agvTaskCreateEmpty() {
        Config configAGVAUTOIN = configService.selectConfigByCode("AGVAUTOIN");
        if(!Boolean.parseBoolean(configAGVAUTOIN.getValue())){
            return;
        }
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历出库口
@@ -5916,6 +5943,10 @@
                    // 获取站点信息
                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basAgvMast.getFloorNo() !=1?2:1);
                    StaProtocol staProtocol = devpThread.getStation().get(basAgvMast.getStaNo());
                    List<BasAgvMast> basAgvMastList1 = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 1).eq("sta_no", basAgvMast.getStaNo()));
                    if(basAgvMastList1.size()>0){
                        continue;
                    }
                    if (staProtocol == null) {
                        continue;
                    } else {