From d13a01d1769f29b336e5b9f8612c6d41aaabbbb1 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 22 十一月 2024 20:42:20 +0800 Subject: [PATCH] #读取地图文件优化 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 70 ++++++++++++++++++++++++++-------- 1 files changed, 53 insertions(+), 17 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 9f32414..1f5823c 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -112,6 +112,8 @@ private NavigateMapUtils navigateMapUtils; @Autowired private WrkDetlLogService wrkDetlLogService; + @Autowired + private MatService matService; /** @@ -2513,7 +2515,7 @@ /** * AGV琛ヨ揣 => 鐢熸垚鍏ュ簱閫氱煡妗� */ - public void robotGenerateAgvTask() { + public synchronized void robotGenerateAgvTask() { try { //妫�娴�300绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗┿�佸伐浣滃彿 for (DevpSlave devp : slaveProperties.getDevp()) { @@ -2539,10 +2541,13 @@ //鍒ゆ柇鏈烘鑷傛嫞鏂欑珯鏄惁绌洪棽 StaProtocol staProtocol303 = devpThread.getStation().get(303); StaProtocol staProtocol317 = devpThread.getStation().get(317); - if (staProtocol303.isAutoing() && !staProtocol303.isLoading()) { + + List<WrkMast> wrkMasts303 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 25).eq("sta_no", 303)); + List<WrkMast> wrkMasts317 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 25).eq("sta_no", 317)); + if (staProtocol303.isAutoing() && !staProtocol303.isLoading() && wrkMasts303.isEmpty()) { //鑷姩銆佹棤鐗� targetSta = (short) 303; - } else if (staProtocol317.isAutoing() && !staProtocol317.isLoading()) { + } else if (staProtocol317.isAutoing() && !staProtocol317.isLoading() && wrkMasts317.isEmpty()) { //鑷姩銆佹棤鐗� targetSta = (short) 317; } else { @@ -2613,7 +2618,7 @@ /** * AGV琛ヨ揣 => 鏈烘鑷傛嫞鏂� */ - public void agvRestockByRobot() { + public synchronized void agvRestockByRobot() { try { //妫�娴�300绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗┿�佸伐浣滃彿 for (DevpSlave devp : slaveProperties.getDevp()) { @@ -2674,7 +2679,7 @@ /** * AGV琛ヨ揣(閫氱煡AGV鍙栬揣) */ - public void agvRestockInto() { + public synchronized void agvRestockInto() { try { //妫�娴�309鍜�312绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗� for (DevpSlave devp : slaveProperties.getDevp()) { @@ -2695,8 +2700,11 @@ String barcode = barcodeThread.getBarcode(); if (!Cools.isEmpty(barcode)) { //閫氱煡AGV鍙栬揣 - agvRestockCall("301-1", barcode); - log.info("閫氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); + boolean result = agvRestockCall("301-1", barcode); + log.info("鏈烘鑷傞�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); + if (result) { + barcodeThread.setBarcode(""); + } } } @@ -2709,8 +2717,11 @@ String barcode = barcodeThread.getBarcode(); if (!Cools.isEmpty(barcode)) { //閫氱煡AGV鍙栬揣 - agvRestockCall("302-1", barcode); - log.info("閫氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); + boolean result = agvRestockCall("302-1", barcode); + log.info("鏈烘鑷傞�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); + if (result) { + barcodeThread.setBarcode(""); + } } } } @@ -2772,7 +2783,7 @@ /** * AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣) */ - public void agvRestockIntoByHangingWire() { + public synchronized void agvRestockIntoByHangingWire() { try { //妫�娴�350鍜�351鎵爜鍣� int[] barcodeStaNo = {11, 12,14,16,18,20};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒 @@ -2818,7 +2829,7 @@ /** * AGV鎷f枡绔欑偣淇℃伅 */ - public void agvCurrentContainerCodeInfoWire() { + public synchronized void agvCurrentContainerCodeInfoWire() { try { //妫�娴�350鍜�351鎵爜鍣� int[] barcodeStaNo = {13, 15,17,19};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒 @@ -2992,13 +3003,38 @@ ledCommand.setBarcode(barcode); if (ioType != 110 && ioType != 10) { List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); - wrkDetls.forEach(wrkDetl -> { - double remainNum = wrkDetl.getStock() - wrkDetl.getAnfme();//鍓╀綑鏁伴噺 - if (remainNum < 0) { - remainNum = 0; + if (!wrkDetls.isEmpty()) { + wrkDetls.forEach(wrkDetl -> { + double remainNum = wrkDetl.getStock() - wrkDetl.getAnfme();//鍓╀綑鏁伴噺 + if (remainNum < 0) { + remainNum = 0; + } + String matnr = wrkDetl.getMatnr(); + Mat mat = matService.selectByMatnr(wrkDetl.getMatnr()); + if (mat != null) { + if (!mat.getMatnr().equals(mat.getMatnr2())) { + matnr += " - " + mat.getMatnr2(); + } + } + ledCommand.getMatDtos().add(new MatDto(matnr, wrkDetl.getMaktx(), wrkDetl.getAnfme(), remainNum, wrkDetl.getSpecs(), wrkDetl.getSuppCode(), wrkDetl.getOrderNo())); + }); + }else { + List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectLatestByWorkNo(wrkNo, barcode); + for (WrkDetlLog wrkDetlLog : wrkDetlLogs) { + double remainNum = wrkDetlLog.getStock() - wrkDetlLog.getAnfme();//鍓╀綑鏁伴噺 + if (remainNum < 0) { + remainNum = 0; + } + String matnr = wrkDetlLog.getMatnr(); + Mat mat = matService.selectByMatnr(wrkDetlLog.getMatnr()); + if (mat != null) { + if (!mat.getMatnr().equals(mat.getMatnr2())) { + matnr += " - " + mat.getMatnr2(); + } + } + ledCommand.getMatDtos().add(new MatDto(matnr, wrkDetlLog.getMaktx(), wrkDetlLog.getAnfme(), remainNum, wrkDetlLog.getSpecs(), wrkDetlLog.getSuppCode())); } - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), remainNum, wrkDetl.getSpecs(), wrkDetl.getSuppCode(), wrkDetl.getOrderNo())); - }); + } // List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); // if (ioType == 101) { -- Gitblit v1.9.1