From 4ac5ff223ee7757b55d86b0f34b74152874d68c9 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期一, 23 九月 2024 15:56:11 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 122 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 121 insertions(+), 1 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java index c8e4bfd..077b3fa 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java @@ -82,6 +82,8 @@ private BasConveyorPathService basConveyorPathService; @Autowired private BasLedService basLedService; + @Autowired + private DeviceBarcodeService deviceBarcodeService; /** * 缁勬墭 @@ -418,6 +420,48 @@ // 瑙f瀽鍏ュ簱宸ヤ綔妗� public synchronized void analyzeInBoundTask() { for (Task task : taskService.selectWaitAnalyzeInBoundTask()) { + BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, task.getDestSite())); + if (basConveyorSta == null) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝杈撻��"); + continue; + } + BasConveyor basConveyor = basConveyorService.getById(basConveyorSta.getConveyorId()); + if (basConveyor == null) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝杈撻��2"); + continue; + } + DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId()); + if (deviceBarcode == null) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝鏉$爜"); + continue; + } + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId())); + if (barcodeThread == null) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝鏉$爜绾跨▼"); + continue; + } + if (!barcodeThread.getBarcode().equals(task.getZpallet())) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝鏉$爜涓嶇鍚堬紝浠诲姟鏉$爜锛�"+task.getZpallet()+",绾跨▼鏉$爜:"+barcodeThread.getBarcode()); + continue; + } + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); + if (devpThread == null) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝杈撻�佺嚎绋�"); + continue; + } + StaProtocol staProtocol = devpThread.getStation().get(basConveyorSta.getSiteNo()); + if (staProtocol == null) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝杈撻�佺珯鐐�"); + continue; + } + if (!(staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable())) { + log.error("瑙f瀽鍏ュ簱浠诲姟閫�鍑猴紝杈撻�佷俊鍙蜂笉绗﹀悎锛�"+staProtocol.isAutoing()+","+staProtocol.isLoading()+","+staProtocol.isInEnable()); + continue; + } + + if (Cools.isEmpty(task.getShuttleNo())) { //鍒嗛厤灏忚溅 //鎼滅储绌洪棽杞� @@ -436,8 +480,16 @@ } // generate motion list - List<Motion> motionList = analyzeService.generateMotion(task); + List<Motion> motionList = null; + try { + motionList = analyzeService.generateMotion(task); + }catch (Exception e) { + log.error("motion瑙f瀽鍑洪敊锛�"+e.getMessage()); + continue; + } + if (motionList.isEmpty()) { + log.error("motion涓虹┖閫�鍑�"); continue; } motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId()); @@ -447,6 +499,38 @@ task.setUpdateTime(new Date()); if (!taskService.updateById(task)) { News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo()); + }else { + try { + if ("0601".equals(task.getMemo().substring(0, 4))) { + String response = ""; + Map<String, Object> headers = new HashMap<>(); + headers.put("Content-Type", "application/json;charset=UTF-8"); + headers.put("X-lr-request-id", task.getWmsTaskNo()); + headers.put("X-lr-version", 4.1); + headers.put("X-lr-trace-id", "{{$guid}}"); + + Map<String, Object> map = new HashMap<>(); + map.put("carrierCode", task.getZpallet()); + map.put("siteCode", "06YZ0001"); + map.put("extra", null); + try { + response = new HttpHandler.Builder() + .setHeaders(headers) + .setUri("172.18.16.248:443") + .setHttps(true) + .setPath("/rcs/rtas/api/robot/controller/carrier/unbind") + .setJson(JSONObject.toJSONString(map)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + log.info("agv瑙g粦绠卞彿,璇锋眰浣�:" + JSONObject.toJSONString(map) + ",杩斿洖:" + response); + } catch (Exception e) { + log.info("agv瑙g粦绠卞彿璇锋眰鎶ラ敊" + e.getMessage()); + } + } + } catch (Exception e) { + e.printStackTrace(); + } } } } @@ -567,6 +651,42 @@ } } + // 瑙f瀽灏忚溅杞借揣绉诲姩宸ヤ綔妗� + public synchronized void analyzeLadenMoveTask() { + for (Task task : taskService.selectWaitAnalyzeLadenMoveTask()) { + if (Cools.isEmpty(task.getShuttleNo())) { + //鍒嗛厤灏忚溅 + //鎼滅储绌洪棽杞� + ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task); + if (shuttleThread == null) { + News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo()); + continue; + } + + task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//淇濆瓨绌挎杞﹀彿 + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo()); + } + continue; + } + + // generate motion list + List<Motion> motionList = analyzeService.generateShuttleLadenMoveMotion(task); + if (motionList.isEmpty()) { + continue; + } + motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId()); + + // 鏇存柊宸ヤ綔涓绘。 + task.setTaskSts(TaskStsType.ANALYZE_LADEN_MOVE.sts); // 宸ヤ綔鐘舵�� + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo()); + } + } + } + /** * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數 */ -- Gitblit v1.9.1