#
lty
2025-09-08 7dabb7c81d9360ef25e3d9f4a840e211affb219a
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -750,6 +750,7 @@
                    if ((wrkMast.getIoType() != 12 && wrkMast.getIoType() < 100) || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
                        continue;
                    }
                    // 判断吊车是否实际已完成,且电脑状态在move中,以备电脑进行更新工作档
                    CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
                    CrnProtocol crnProtocol = crnThread.getCrnProtocol();
@@ -812,51 +813,63 @@
            } else {
                staProtocolIn = staProtocolIn.clone();
            }
            StaProtocol staProtocolOut = devpThread.getStation().get(1015);
            if (staProtocolOut == null) {
                continue;
            } else {
                staProtocolOut = staProtocolOut.clone();
            }
            if(staProtocolOut.getWorkNo() != null &&staProtocolOut.getStaNo() == 4006){
                WrkMast wrkMastOut = wrkMastMapper.selectByWrkNo(staProtocolOut.getWorkNo());
                WrkMast wrkMast = wrkMastMapper.selectByWrkNo(9997);
                if(wrkMast == null){
            int[] outStaNos = {1015, 2016};
            for (int outStaNo : outStaNos) {
                StaProtocol staProtocolOut = devpThread.getStation().get(outStaNo);// 盘点出库衔接站点(可能是 1015,也可能是 2016)
                if (staProtocolOut == null) {
                    continue;
                } else {
                    staProtocolOut = staProtocolOut.clone();
                }
                try {
                    TransplantWork param = new TransplantWork();
                    param.setWorkNo(wrkMastOut.getWrkNo());
                    param.setBarcode(wrkMastOut.getBarcode());
                    param.setSourceStaNo(1015);
                    param.setStaNo(wrkMastOut.getStaNo());
                    String response = new HttpHandler.Builder()
                            .setUri(wmsUrl)
                            .setPath("/rpc/auto/TransplantingIn/v1")
                            .setJson(JSON.toJSONString(param))
                            .build()
                            .doPost();
                    JSONObject jsonObject = JSON.parseObject(response);
                    if (jsonObject.getInteger("code").equals(200)) {
                        staProtocolOut.setWorkNo(9997);
                        devpThread.setPakMk(staProtocolOut.getSiteId(), false);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolOut));
                        if (!result) {
                            throw new CoolException("更新plc站点信息失败");
                        }
                if (staProtocolOut.getWorkNo() != null && staProtocolOut.getStaNo() == 4006) {
                    WrkMast wrkMastOut = wrkMastMapper.selectByWrkNo(staProtocolOut.getWorkNo());
                    WrkMast wrkMast = wrkMastMapper.selectByWrkNo(9997);
                    if (wrkMastOut == null) {
                        continue;
                    }
                    if (wrkMast != null) {
                        News.info("已存在斜街任务,等待任务完成");
                        continue;
                    }
                    try {
                        TransplantWork param = new TransplantWork();
                        param.setWorkNo(wrkMastOut.getWrkNo());
                        param.setBarcode(wrkMastOut.getBarcode());
                        param.setSourceStaNo(outStaNo);
                        param.setStaNo(wrkMastOut.getStaNo());
                } catch (Exception e) {
                    e.printStackTrace();
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        String response = new HttpHandler.Builder()
                                .setUri(wmsUrl)
                                .setPath("/rpc/auto/TransplantingOut/v1")
                                .setJson(JSON.toJSONString(param))
                                .build()
                                .doPost();
                        JSONObject jsonObject = JSON.parseObject(response);
                        if (jsonObject.getInteger("code").equals(200)) {
                            staProtocolOut.setWorkNo(9997);
                            devpThread.setPakMk(staProtocolOut.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolOut));
                            if (!result) {
                                throw new CoolException("更新plc站点信息失败");
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    }
                }
            }
            if(staProtocolIn.getWorkNo() != null &&staProtocolIn.getStaNo() != 4001){
                WrkMast wrkMastIn = wrkMastMapper.selectByWrkNo(staProtocolIn.getWorkNo());
                WrkMast wrkMast = wrkMastMapper.selectByWrkNo(9996);
                if(wrkMast == null){
                if(wrkMastIn == null){
                    continue;
                }
                if(wrkMast != null){
                    News.info("已存在斜街任务,等待任务完成");
                    continue;
                }
                try {
@@ -867,7 +880,7 @@
                    param.setStaNo(wrkMastIn.getStaNo());
                    String response = new HttpHandler.Builder()
                            .setUri(wmsUrl)
                            .setPath("/rpc/auto/TransplantingOut/v1")
                            .setPath("/rpc/auto/TransplantingIn/v1")
                            .setJson(JSON.toJSONString(param))
                            .build()
                            .doPost();
@@ -2699,7 +2712,9 @@
                if (rgvProtocol.getStatusType() == RgvStatusType.IDLE &&
                    rgvProtocol.getModeType() == RgvModeType.AUTO
                    && !rgvProtocol.isLoaded1ing()  //现场修改:叠盘机,不满都算无物,怎么判断需要跟电控对接
                    && (rgvProtocol.getTaskNo1()==0)
                    && rgvProtocol.getTaskNo1()==0
                        && !rgvProtocol.isLoaded2ing()
                        && rgvProtocol.getTaskNo2()==0
                        &&rgvThread.isPakMk()
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
@@ -2715,7 +2730,9 @@
                    if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE
                        && rgvProtocolOther.getModeType() == RgvModeType.AUTO
                        && !rgvProtocolOther.isLoaded1ing()
                        && (rgvProtocolOther.getTaskNo1()==0)
                        && rgvProtocolOther.getTaskNo1()==0
                        && !rgvProtocolOther.isLoaded2ing()
                        && rgvProtocolOther.getTaskNo2()==0
                        &&rgvThreadOther.isPakMk()
                    ){
                        //对工作档进行判断
@@ -3492,7 +3509,7 @@
//                        if (staNos.contains(wrkMastSta.getStaStart())) {//非入库口(出库口)限制
//                            continue;
//                        }
//                        boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //命令下发
//                        boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,null); //命令下发
//                        wrkEnable = true;
//                        if (sign){
//                            wrkMastSta.setWrkSts(1);