From e826b2ba77a95a0412ae6bb5c8a9c1e37afca291 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 31 三月 2025 15:25:12 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 94 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 74 insertions(+), 20 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 33e391f..c3ea2f0 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 @@ -185,20 +185,6 @@ if (!Cools.isEmpty(barcode)) { News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", deviceBarcode.getId(), barcode); - if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode) || "00000000".equals(barcode)) { - staProtocol.setWorkNo((short) 32002); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - devpThread.writeWorkSta(staProtocol.getSiteId(), (short) 32002, inSta.getBackSta().shortValue()); - - // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; - ledThread.error(errorMsg); - } - continue; - } } // 鍒ゆ柇閲嶅宸ヤ綔妗� @@ -246,14 +232,13 @@ int row = Integer.parseInt(wmsLocNo.substring(0, 2)); int bay = Integer.parseInt(wmsLocNo.substring(2, 5)); int lev = Integer.parseInt(wmsLocNo.substring(5, 7)); - row -= 16; String wcsLocNo = Utils.getLocNo(row, bay, lev); CreateInTaskParam createInTaskParam = new CreateInTaskParam(); createInTaskParam.setTaskNo(String.valueOf(dto.getWorkNo())); createInTaskParam.setDestLoc(wcsLocNo); - createInTaskParam.setOriginSite("31002"); - createInTaskParam.setDestSite("31004"); + createInTaskParam.setOriginSite(dto.getSourceStaNo().toString()); + createInTaskParam.setDestSite(dto.getStaNo().toString()); createInTaskParam.setPriority(11); createInTaskParam.setBarcode(barcode); @@ -263,7 +248,7 @@ String msg = ""; HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("msg", msg); - hashMap.put("sta", "31001"); + hashMap.put("sta", inSta.getStaNo().toString()); new HttpHandler.Builder() .setUri(wmsUrl) .setPath("/rpc/led/getError") @@ -278,7 +263,7 @@ String msg = jsonObject.getString("msg"); HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("msg", msg); - hashMap.put("sta", "31001"); + hashMap.put("sta", inSta.getStaNo().toString()); new HttpHandler.Builder() .setUri(wmsUrl) .setPath("/rpc/led/getError") @@ -377,6 +362,31 @@ LiftProtocol liftProtocol = liftThread.getStatus(); if (liftProtocol == null) { + break; + } + + if (!liftThread.isIdle()) { + break; + } + + if (motionService.count(new LambdaQueryWrapper<Motion>() + .eq(Motion::getDeviceCtg, DeviceCtgType.LIFT.val()) + .eq(Motion::getDevice, inSta.getLiftNo()) + .eq(Motion::getMotionSts, MotionStsType.EXECUTING.val())) > 0) { + break; + } + + //妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹� + boolean liftResult = Utils.checkLiftHasBinding(liftProtocol.getLiftNo(), String.valueOf(workNo)); + if (liftResult) { + //瀛樺湪浠诲姟锛岀姝㈡墽琛� + break; + } + + //姣忔鎵ц鎻愬崌鏈烘寚浠ら兘缁戝畾鎻愬崌鏈� + task.setLiftNo(liftProtocol.getLiftNo()); + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { break; } @@ -610,10 +620,19 @@ ) { Task task = taskService.getOne(new LambdaQueryWrapper<Task>() - .eq(Task::getDestSite, inSta.getDeviceStaNo()) .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts) .eq(Task::getTaskNo, workNo)); if (task != null) { + if (!Cools.isEmpty(task.getLiftNo())) { + if (task.getLiftNo() > 0) { + task.setLiftNo(0); + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + News.info("{}浠诲姟鏇存柊閲婃斁鎻愬崌鏈哄け璐�", task.getTaskNo()); + } + } + } + if (Cools.isEmpty(task.getShuttleNo())) { //鍒嗛厤灏忚溅 //鎼滅储绌洪棽杞� @@ -1256,4 +1275,39 @@ } } + // 瑙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