From d7020a8f1ec6f55167b4ad14941de0e28ce3d8c1 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期五, 16 一月 2026 14:19:59 +0800
Subject: [PATCH] agv出库逻辑
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 57 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index bd754ab..f8883ff 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -69,6 +69,9 @@
@Autowired
private AgvProperties agvProperties;
+
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -757,6 +760,60 @@
return;
}
+ // 妫�鏌ュ伐浣滄。鏄惁宸插畬鎴愭垨宸茶浆鍘嗗彶妗�
+ boolean workCompleted = false;
+ if (outTask.getWrkNo() != null) {
+ // 妫�鏌ュ伐浣滄。鏄惁瀛樺湪涓斿凡瀹屾垚
+ WrkMast wrkMast = wrkMastService.selectOne(
+ new EntityWrapper<WrkMast>().eq("wrk_no", outTask.getWrkNo())
+ );
+
+ if (wrkMast != null) {
+ Long wrkSts = wrkMast.getWrkSts();
+ // 鍑哄簱浠诲姟瀹屾垚鐘舵�侊細14锛堝凡鍑哄簱鏈‘璁わ級鎴�15锛堝嚭搴撴洿鏂板畬鎴愶級
+ if (wrkSts != null && (wrkSts == 14L || wrkSts == 15L)) {
+ workCompleted = true;
+ log.debug("宸ヤ綔妗}宸插畬鎴愶紝鐘舵�侊細{}", outTask.getWrkNo(), wrkSts);
+ }
+ } else {
+ // 濡傛灉宸ヤ綔妗d笉瀛樺湪锛屾鏌ュ巻鍙叉。
+ WrkMastLog wrkMastLog = wrkMastLogService.selectOne(
+ new EntityWrapper<WrkMastLog>().eq("wrk_no", outTask.getWrkNo())
+ );
+ if (wrkMastLog != null) {
+ long logWrkSts = wrkMastLog.getWrkSts();
+ // 鍑哄簱浠诲姟鍘嗗彶妗e畬鎴愮姸鎬侊細15锛堝嚭搴撴洿鏂板畬鎴愶級
+ if (logWrkSts == 15L) {
+ workCompleted = true;
+ log.debug("宸ヤ綔妗}宸茶浆鍘嗗彶妗e苟瀹岀粨锛屽巻鍙叉。鐘舵�侊細{}", outTask.getWrkNo(), logWrkSts);
+ }
+ }
+ }
+ }
+
+ // 妫�鏌ユ槸鍚︽湁浠庤鍑哄簱绔欑偣鍒扮紦瀛樺尯鐨勬鍦ㄦ惉杩愪换鍔★紙鐘舵��8锛氬凡鍛煎彨AGV锛屾鍦ㄦ惉杩愶級
+ // 鍑哄簱鍒扮紦瀛樺尯鐨勪换鍔$被鍨嬶細101锛堝叏鏉垮嚭搴擄級鎴�110锛堢┖鏉垮嚭搴擄級
+ List<Task> transportingTasks = taskService.selectList(
+ new EntityWrapper<Task>()
+ .eq("source_sta_no", outboundStaNo) // 婧愮珯鐐规槸鍑哄簱绔欑偣
+ .in("sta_no", cacheStations) // 鐩爣绔欑偣鏄紦瀛樺尯绔欑偣
+ .eq("task_type", "agv")
+ .eq("wrk_sts", 8L) // 鍙鏌ユ鍦ㄦ惉杩愮姸鎬佺殑浠诲姟
+ .in("io_type", 101, 110) // 鍑哄簱鍒扮紦瀛樺尯鐨勪换鍔$被鍨�
+ );
+
+ // 濡傛灉鏈夋鍦ㄦ惉杩愮殑浠诲姟锛屼笖宸ヤ綔妗f湭瀹屾垚锛屽垯涓嶅垎閰嶇紦瀛樺簱浣�
+ if (!transportingTasks.isEmpty() && !workCompleted) {
+ log.info("鍑哄簱绔欑偣{}鍒扮紦瀛樺尯鏈墈}涓鍦ㄦ惉杩愮殑AGV浠诲姟锛屼笖宸ヤ綔妗f湭瀹屾垚锛屾殏涓嶅垎閰嶇紦瀛樺簱浣嶏紝绛夊緟鎼繍瀹屾垚銆傚嚭搴撲换鍔D锛歿}",
+ outboundStaNo, transportingTasks.size(), outTask.getId());
+ return; // 鏈夋鍦ㄦ惉杩愮殑浠诲姟涓斿伐浣滄。鏈畬鎴愶紝涓嶅垎閰嶇紦瀛樺簱浣嶏紝绛夊緟涓嬫妫�鏌�
+ }
+
+ if (!transportingTasks.isEmpty() && workCompleted) {
+ log.info("鍑哄簱绔欑偣{}鍒扮紦瀛樺尯鏈墈}涓鍦ㄦ惉杩愮殑AGV浠诲姟锛屼絾宸ヤ綔妗e凡瀹屾垚鎴栧凡杞巻鍙叉。锛屽厑璁稿垎閰嶇紦瀛樺簱浣嶃�傚嚭搴撲换鍔D锛歿}",
+ outboundStaNo, transportingTasks.size(), outTask.getId());
+ }
+
// 閫夋嫨缂撳瓨鍖虹洰鏍囩珯鐐癸紙浣跨敤绗竴涓彲鐢ㄧ珯鐐癸紝鎴栧彲浠ヤ紭鍖栦负閫夋嫨浠诲姟鏈�灏戠殑绔欑偣锛�
String cacheStaNo = cacheStations.get(0);
--
Gitblit v1.9.1