#
lsh
2024-10-10 884b6830e83c280e55acbf29524c63ce225c4c5d
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -427,9 +427,10 @@
//                // 入出库模式判断
//                if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0) {
//                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
//                    WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
                    if (wrkMast == null) {
                        // 无拣料数据
                        continue;
@@ -482,7 +483,7 @@
                                    staProtocol.setStaNo(dto.getStaNo());
                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
//                                    ledThread.errorReset();
                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol));
                                    if (!result) {
                                        log.error("发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId());
                                    }
@@ -2318,6 +2319,7 @@
                        param.setIoType(10);
                        param.setSourceStaNo(122);
                        param.setLocType1((short)1);
                        param.setRgvNo(rgvProtocol.getRgvNo());
                        String response = new HttpHandler.Builder()
                                .setUri(wmsUrl)
                                .setPath("/rpc/pakin/empty/loc/v1")
@@ -3344,6 +3346,14 @@
                if (basDevp135.getReportSign()!=0){
                    continue;
                }
                BasDevp basDevp121 = basDevpService.selectById(121);
                if (basDevp121.getReportSign()!=0){
                    continue;
                }
                BasDevp basDevp120 = basDevpService.selectById(120);
                if (basDevp120.getReportSign()!=0){
                    continue;
                }
                WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131);
                if (Cools.isEmpty(wrkMast131)){
                    continue;
@@ -3368,6 +3378,26 @@
                }
                if (!staProtocol.isLoading()){
                    continue;
                }
                StaProtocol staProtocol120 = devpThread.getStation().get(120);
                if (staProtocol120 == null) {
                    continue;
                } else {
                    staProtocol120 = staProtocol120.clone();
                }
                if (staProtocol120.isLoading()){
                    continue;
                }
                StaProtocol staProtocol121 = devpThread.getStation().get(121);
                if (staProtocol121 == null) {
                    continue;
                } else {
                    staProtocol121 = staProtocol121.clone();
                }
                if (staProtocol121.isLoading()){
                    continue;
                }
//                if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){
@@ -3696,12 +3726,51 @@
                        if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
                            continue;
                        }
                        if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
                            if (basDevp.getLoadingSuper().equals("Y")){
                                continue;
                            }
                        }
                        if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
                            if (!basDevp.getEmptyMk().equals("Y")){
                                continue;
                            }
                        }
                        Date date = new Date();
                        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
                        StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
                        if (staProtocol == null) {
                            log.info(date+"取放任务下发:未查询到站点信息:"+wrkMastSta);
                            continue;
                        }
                        if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
                            continue;
                        }
                        if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
                            if (staProtocol.isLoadingSuper()){
                                continue;
                            }
                        }
                        if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
                            if (!staProtocol.isEmptyMk()){
                                continue;
                            }
                        }
                        BasDevp basDevpS = basDevpService.selectById(wrkMastSta.getStaStart());
                        if (!basDevpS.getAutoing().equals("Y") || !basDevpS.getLoading().equals("Y") || basDevpS.getWrkNo()!=wrkMastSta.getWrkNo().intValue()){
                            continue;
                        }
                        StaProtocol staProtocols = devpThread.getStation().get(basDevpS.getDevNo());
                        if (staProtocols == null) {
                            log.info(date+"取放任务下发:未查询到站点信息:"+wrkMastSta);
                            continue;
                        }
                        if (!staProtocols.isAutoing() || !staProtocols.isLoading() || staProtocols.getWorkNo() != wrkMastSta.getWrkNo().intValue()){
                            continue;
                        }
                        log.info(date+"取放任务下发:小车工作档:"+wrkMastSta);
                        log.info(date+"取放任务下发:目标站状态:"+basDevp);
                        boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta);
@@ -3774,12 +3843,38 @@
                            if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
                                continue;
                            }
                            if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
                                if (basDevp.getLoadingSuper().equals("Y")){
                                    continue;
                                }
                            }
                            if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
                                if (!basDevp.getEmptyMk().equals("Y")){
                                    continue;
                                }
                            }
                            Date date = new Date();
                            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
                            StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
                            if (staProtocol == null) {
                                log.info(date+"拆盘任务下发:未查询到站点信息:"+wrkMastSta);
                                continue;
                            }
                            if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
                                continue;
                            }
                            if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
                                if (staProtocol.isLoadingSuper()){
                                    continue;
                                }
                            }
                            if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
                                if (!staProtocol.isEmptyMk()){
                                    continue;
                                }
                            }
                            log.info(date+"拆盘任务下发:小车工作档:"+wrkMastSta);
                            log.info(date+"拆盘任务下发:目标站状态:"+basDevp);
                            sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//拆盘
@@ -3856,12 +3951,38 @@
                            if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
                                continue;
                            }
                            if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
                                if (basDevp.getLoadingSuper().equals("Y")){
                                    continue;
                                }
                            }
                            if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
                                if (!basDevp.getEmptyMk().equals("Y")){
                                    continue;
                                }
                            }
                            Date date = new Date();
                            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
                            StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
                            if (staProtocol == null) {
                                log.info(date+"满放任务下发:未查询到站点信息:"+wrkMastSta);
                                continue;
                            }
                            if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
                                continue;
                            }
                            if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
                                if (staProtocol.isLoadingSuper()){
                                    continue;
                                }
                            }
                            if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
                                if (!staProtocol.isEmptyMk()){
                                    continue;
                                }
                            }
                            log.info(date+"满放任务下发:小车工作档:"+wrkMastSta);
                            log.info(date+"满放任务下发:目标站状态:"+basDevp);
                            sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
@@ -3941,6 +4062,22 @@
                                }
                            }
                            Date date = new Date();
                            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
                            StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
                            if (staProtocol == null) {
                                log.info(date+"叠盘任务下发:未查询到站点信息:"+wrkMastSta);
                                continue;
                            }
                            if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
                                continue;
                            }
                            if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
                                if (!staProtocol.isEmptyMk()){
                                    continue;
                                }
                            }
                            log.info(date+"叠盘任务下发:小车工作档:"+wrkMastSta);
                            log.info(date+"叠盘任务下发:目标站状态:"+basDevp);
                            sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//叠盘
@@ -4022,6 +4159,17 @@
                                continue;
                            }
                            Date date = new Date();
                            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
                            StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
                            if (staProtocol == null) {
                                log.info(date+"满取任务下发:未查询到站点信息:"+wrkMastSta);
                                continue;
                            }
                            if (!staProtocol.isAutoing() || staProtocol.isLoading()){
                                continue;
                            }
                            log.info(date+"满取任务下发:小车工作档:"+wrkMastSta);
                            log.info(date+"满取任务下发:目标站状态:"+basDevp);
                            sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
@@ -4092,7 +4240,15 @@
                        && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
                        && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
//                    Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMap.getRgvNo(), basRgvMap.getEndRoute()); //获取合并干涉项
//                    List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(),fallMerge);
//                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route ,route);
//                    if (!wrkMastStaList.isEmpty()){
//                        log.info("小车存在可执行任务,跳过避让!!4214");
//                        return;
//                    }
                    if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
//                    if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){
//                    if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){
@@ -4103,11 +4259,11 @@
                        }
                    }
                    if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
                        signRgv = false;
                        break;
                        signRgv1 = false;
                        continue;
                    } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
                        signRgv = false;
                        break;
                        signRgv2 = false;
                        continue;
                    }
                }else {
                    signRgv = false;
@@ -4131,9 +4287,15 @@
                            && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
                            && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
                    ) {
                        if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
                            continue;
                        } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
                            continue;
                        }
                        BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                        rgvAvoidanceXY(rgvProtocol.getRgvNo());
                        rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                    }
                }
            }