From 1e585dfd636f811952a0d2b0fc3e735325cd5243 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 27 六月 2023 15:36:10 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 89 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 12aca3a..cd92354 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -513,6 +513,95 @@ } /** + * 缁戝畾灏忚溅鏂规硶 + */ + public synchronized void rgvBindSte() { + for (RgvSlave rgv : slaveProperties.getRgv()) { + // 鑾峰彇RGV淇℃伅 + RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (rgvProtocol == null) { + continue; + } + BasRgv basRgv = basRgvService.selectById(rgv.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId()); + continue; + } + + // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�, 骞朵笖鏃犱换鍔°�佹棤鐗╂椂鎵嶇户缁墽琛� + if (rgvProtocol.getStatusType() == RgvStatusType.IDLE + && rgvProtocol.getModeType() == RgvModeType.AUTO + && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 + && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0 + ) { + // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 + if (rgvProtocol.getLastIo().equals("I")) { + if (basRgv.getInEnable().equals("Y")) { + this.rgvBindSteIn(rgv, rgvProtocol); // 鍏ュ簱 + rgvProtocol.setLastIo("O"); + } else if (basRgv.getOutEnable().equals("Y")) { + this.rgvBindSteOut(rgv, rgvProtocol); // 鍑哄簱 + rgvProtocol.setLastIo("I"); + } + } + // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡 + else if (rgvProtocol.getLastIo().equals("O")) { + if (basRgv.getOutEnable().equals("Y")) { + this.rgvBindSteOut(rgv, rgvProtocol); // 鍑哄簱 + rgvProtocol.setLastIo("I"); + } else if (basRgv.getInEnable().equals("Y")) { + this.rgvBindSteIn(rgv, rgvProtocol); // 鍏ュ簱 + rgvProtocol.setLastIo("O"); + } + } + } + } + } + + /** + * 缁戝畾灏忚溅鍏ュ簱鏂规硶 + */ + public synchronized void rgvBindSteIn(RgvSlave slave, RgvProtocol rgvProtocol) { + for (RgvSlave.RgvStn rgvStn: slave.getRgvInSStn()){ + Integer staNo = rgvStn.getStaNo(); + BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId()); + if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){ + continue; + }else { + WrkMast wrkMast = wrkMastMapper.selectRgvInSteWrkNo(basDevp.getWrkNo()); + if (!Cools.isEmpty(wrkMast)){ + wrkMast.setRgvNo(wrkMast.getCrnNo()>3 ? 2 : 1); + wrkMast.setAppeTime(new Date()); + if (wrkMastMapper.updateById(wrkMast)==0){ + log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo()); + } + } + } + } + } + + /** + * 缁戝畾灏忚溅鍑哄簱鏂规硶 + */ + public synchronized void rgvBindSteOut(RgvSlave slave, RgvProtocol rgvProtocol) { + for (RgvSlave.RgvStn rgvStn: slave.getRgvOutSStn()){ + BasDevp basDevp = basDevpService.selectById(rgvStn.getDevpPlcId()); + if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()==0){ + continue; + }else { + WrkMast wrkMast = wrkMastMapper.selectRgvOutSteWrkNo(basDevp.getWrkNo()); + if (!Cools.isEmpty(wrkMast)){ + wrkMast.setRgvNo(rgvStn.getStaNo()); + wrkMast.setAppeTime(new Date()); + if (wrkMastMapper.updateById(wrkMast)==0){ + log.error("缁戝畾灏忚溅鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo()); + } + } + } + } + } + /** * 鍏ュ嚭搴� ===>> RGV鍏ュ嚭搴撲綔涓氫笅鍙� */ public synchronized void rgvIoExecute() { -- Gitblit v1.9.1