From ebdfec3e9db0977bccca0527be7d2226fbbd0229 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 12 六月 2024 11:02:16 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 48 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 43 insertions(+), 5 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 5b7672b..6773aea 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 @@ -9,6 +9,7 @@ import com.zy.asrs.common.utils.HttpHandler; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.SnowflakeIdWorker; +import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wcs.core.domain.dto.MatDto; import com.zy.asrs.wcs.core.domain.dto.RedisMapDto; import com.zy.asrs.wcs.core.domain.dto.StaDto; @@ -17,6 +18,7 @@ import com.zy.asrs.wcs.core.model.MapNode; import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; import com.zy.asrs.wcs.core.model.enums.MotionStsType; +import com.zy.asrs.wcs.core.model.enums.TaskCtgType; import com.zy.asrs.wcs.core.model.enums.TaskStsType; import com.zy.asrs.wcs.core.service.*; import com.zy.asrs.wcs.core.utils.RedisUtil; @@ -179,7 +181,7 @@ //鑾峰彇鍏ュ簱浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, "IN") + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) .eq(TaskCtg::getStatus, 1)); // 鍒ゆ柇閲嶅宸ヤ綔妗� @@ -270,7 +272,7 @@ int lev = Integer.parseInt(split[1]); Object data = redisUtil.get(DeviceRedisConstant.MAP + lev); - if (data == null) { + if (data != null) { continue; } @@ -440,7 +442,7 @@ /** * 鍑哄簱 ====>> 鍚屼竴鏃堕棿涓�鍙扮┛姊溅鍙兘鏈変竴涓嚭搴撲换鍔� */ - public synchronized void generateOutboundWrkMast() { + public synchronized void analyzeOutBoundTask() { List<Task> tasks = taskService.selectPakOut(); if (tasks.isEmpty()) { return; @@ -476,6 +478,23 @@ // continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟 // } + 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.generateMotion(task); if (Cools.isEmpty(motionList)) { @@ -495,6 +514,25 @@ } } + // 瑙f瀽灏忚溅绉诲姩宸ヤ綔妗� + public synchronized void analyzeMoveTask() { + for (Task task : taskService.selectWaitAnalyzeMoveTask()) { + // generate motion list + List<Motion> motionList = analyzeService.generateMotion(task); + if (motionList.isEmpty()) { + continue; + } + motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo())); + + // 鏇存柊宸ヤ綔涓绘。 + task.setTaskSts(TaskStsType.ANALYZE_MOVE.sts); // 宸ヤ綔鐘舵�� + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)) { + News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo()); + } + } + } + /** * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數 */ @@ -509,7 +547,7 @@ //鑾峰彇鍏呯數浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, "CHARGE") + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.CHARGE)) .eq(TaskCtg::getStatus, 1)); if (taskCtg == null) { return; @@ -653,7 +691,7 @@ //鑾峰彇杩佺Щ浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, "MOVE") + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE)) .eq(TaskCtg::getStatus, 1)); if (taskCtg == null) { return; -- Gitblit v1.9.1