#
lty
2025-08-08 0e81b2e514cd11f56f23c455dbf75f6cd04e048a
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -296,32 +296,34 @@
                                throw new CoolException("更新plc站点信息失败");
                            }
                        } else if (jsonObject.getInteger("code").equals(700)) {
                            SearchLocParam param2 = new SearchLocParam();
                            param2.setBarcode(barcode);
                            param2.setBarcodeMat(barcodeMat);
                            param2.setSourceStaNo(inSta.getStaNo());
                            param2.setLocType1(locTypeDto.getLocType1());
                            String response2 = new HttpHandler.Builder()
                                    .setUri(wmsUrl)
                                    .setPath("/rpc/pakin/yk/loc/v33")
                                    .setJson(JSON.toJSONString(param2))
                                    .build()
                                    .doPost();
                            JSONObject jsonObject2 = JSON.parseObject(response2);
                            if (jsonObject2.getInteger("code").equals(200)) {
                                log.info("自动组托成功!!");
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托成功"));
                            } else {
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托失败!!!barcodeMat==>"+barcodeMat));
                                News.error(methodName + "==>组托失败:请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response2);
                            }
                            try{
                                Thread.sleep(500);
                            } catch (Exception e){
                            }
                        } else {
                        }
//                        else if (jsonObject.getInteger("code").equals(700)) {
//                            SearchLocParam param2 = new SearchLocParam();
//                            param2.setBarcode(barcode);
//                            param2.setBarcodeMat(barcodeMat);
//                            param2.setSourceStaNo(inSta.getStaNo());
//                            param2.setLocType1(locTypeDto.getLocType1());
//                            String response2 = new HttpHandler.Builder()
//                                    .setUri(wmsUrl)
//                                    .setPath("/rpc/pakin/yk/loc/v33")
//                                    .setJson(JSON.toJSONString(param2))
//                                    .build()
//                                    .doPost();
//                            JSONObject jsonObject2 = JSON.parseObject(response2);
//                            if (jsonObject2.getInteger("code").equals(200)) {
//                                log.info("自动组托成功!!");
//                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托成功"));
//                            } else {
//                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托失败!!!barcodeMat==>"+barcodeMat));
//                                News.error(methodName + "==>组托失败:请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response2);
//                            }
//                            try{
//                                Thread.sleep(500);
//                            } catch (Exception e){
//
//                            }
//                        }
                        else {
                            staProtocol.setWorkNo(wrkNo);
                            wrkNo++;
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -852,7 +854,8 @@
            // 库位移转
            //mark - 3 - ....
            this.locToLoc(crn, crnProtocol,mark);
//            this.crnRebackHp(crnProtocol, crnThread);
            //预调度
            this.crnRebackHp(crnProtocol, crnThread);
        }
//        News.infoNoLog(""+mark+" - 0"+" - 堆垛机入出库作业下发执行完成");
@@ -862,21 +865,17 @@
     * 回原点,堆垛机没有执行中任务,设备存在入库任务时叫回原点
     */
    public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
//        for (CrnSlave crn : slaveProperties.getCrn()) {
//            // 获取堆垛机信息
//            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
//            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
//            if (crnProtocol == null) {
//                continue;
//            }
//            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
//            if (basCrnp == null) {
//                log.error("{}号堆垛机尚未在数据库进行维护!", crn.getId());
//                continue;
//            }
        if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
            if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
            if (crnProtocol.getBay() == 1) {
                return;
            }
            int x=1;
            switch (crnProtocol.getCrnNo()){
                case 1: x =1; break;
                case 2: x =3; break;
                case 3: x =5; break;
                case 4: x =7; break;
                case 5: x =9; break;
            }
            // 已经存在吊车执行任务时,则过滤3,12
@@ -890,7 +889,7 @@
            }
            //输送线没有入库任务,过滤2
            if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
            if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) != null) {
                return;
            }
            News.info("堆垛机召回原点==>>" + crnProtocol.getCrnNo() + "号堆垛机有入库任务,召回原点");
@@ -899,10 +898,10 @@
            crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号
            crnCommand.setTaskNo((short) 9999); // 工作号
            crnCommand.setAckFinish((short) 0);  // 任务完成确认位
            crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 任务模式:  回原点
            crnCommand.setSourcePosX((short) 0);     // 源库位排
            crnCommand.setSourcePosY((short) 0);     // 源库位列
            crnCommand.setSourcePosZ((short) 0);     // 源库位层
            crnCommand.setTaskMode(CrnTaskModeType.X_MOVE); // 任务模式:  回原点
            crnCommand.setSourcePosX((short) x);     // 源库位排
            crnCommand.setSourcePosY((short) 1);     // 源库位列
            crnCommand.setSourcePosZ((short) 1);     // 源库位层
            crnCommand.setDestinationPosX((short) 0);     // 目标库位排
            crnCommand.setDestinationPosY((short) 0);     // 目标库位列
            crnCommand.setDestinationPosZ((short) 0);     // 目标库位层
@@ -911,6 +910,7 @@
            }
            crnThread.setBackHpFlag(true);
        }
//        }
    }
@@ -2320,9 +2320,6 @@
                    return;
                }
                Short loctype1 = 1;
                if (site == 101){
                    loctype1 = 2;
                }
                LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
                locTypeDto.setSiteId(site);
                try {
@@ -2368,9 +2365,6 @@
                try {
                    Short loctype1 = 1;
                    if (site == 153){
                        loctype1 = 2;
                    }
                    LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
                    locTypeDto.setSiteId(site);
@@ -2506,11 +2500,22 @@
    }
    /**
     *  自动生成RGV接驳任务(检索4楼任务,非3号堆垛机,则生成对应接驳任务)
     *  自动生成RGV接驳任务(检索出入口任务,生成对应RGV任务,检索4楼任务,非3号堆垛机,则生成对应接驳任务)
     */
//    public synchronized  void rgvCreateWrkMastSta(){
//        try{
//
//            for (DevpSlave devp : slaveProperties.getDevp()) {
//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
//                StaProtocol staProtocol = devpThread.getStation().get(1105);
//                if (staProtocol == null) {
//                    continue;
//                } else {
//                    staProtocol = staProtocol.clone();
//                }
//                if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
//                    continue;
//                }
//            }
//        }
//    }
@@ -2659,8 +2664,10 @@
                // 只有当RGV空闲、自动,工位一无物//rgv可用
                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
                        && rgvProtocol.getModeType() == RgvModeType.AUTO
                        && rgvProtocol.getLoaded1()==0
                        && rgvProtocol.getLoaded1() == 0
                        && rgvProtocol.getTaskNo1() == 0
                        && rgvProtocol.getTaskNo2() == 0
                        && rgvProtocol.getLoaded2() == 0
                        && rgvThread.isPakMk()
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
@@ -2672,9 +2679,9 @@
                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号
                    List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
                    for (WrkMastSta wrkMastSta : wrkMastStaList){
                        if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:满版   3:取放
                            continue;
                        }
//                        if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:满版   3:取放
//                            continue;
//                        }
                        //判断工作结束位置状态
//                        boolean signDev = false;
//                        BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd()));