From 371462edc6b3ee1de97c235d4a019b544badda0d Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期六, 14 二月 2026 22:09:37 +0800
Subject: [PATCH] AGV工作档界面和逻辑调整
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 63 ++++++++++++++++++++++---------
1 files changed, 45 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index e9c6220..a3d6471 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -160,6 +160,9 @@
if (count == 0) {
throw new CoolException("鏉$爜鏈粍鎵橈細" + barcode);
}
+
+ // 娉ㄦ剰锛氭墭鐩樼爜鏄惁鍦ㄥ簱鐨勬牎楠屽凡鍦ㄧ粺涓�鏍¢獙涓鐞�
+
ioType = 1; // AGV瀹瑰櫒鍏ュ簱锛堝疄鎵樺叆搴擄級
// 濡傛灉搴撲綅瀛樺湪锛屾洿鏂扮姸鎬佷负鍏ュ簱棰勭害锛涗笉瀛樺湪鍒欒烦杩囷紝鐢卞畾鏃朵换鍔″鐞�
@@ -177,6 +180,14 @@
if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107) {
throw new CoolException("鏉$爜涓嶉渶瑕佸洖搴擄細" + barcode);
}
+
+ // 鏍¢獙鎷i�夊洖搴撴墭鐩橈細褰撳墠宸ヤ綔妗e繀椤诲凡瀹屾垚锛堢姸鎬�14鎴�15锛�
+ Long wrkSts = wrkMast.getWrkSts();
+ if (wrkSts == null || (wrkSts != 14L && wrkSts != 15L)) {
+ log.warn("鎷i�夊洖搴撴墭鐩樻椂锛屽綋鍓嶅伐浣滄。鏈畬鎴愶紝鐘舵�侊細{}锛屼笉鍏佽鍛煎彨AGV锛歿}", wrkSts, barcode);
+ throw new CoolException("鏉$爜鍦ㄥ簱锛岃鏇存崲鏉$爜" + barcode);
+ }
+
ioType = wrkMast.getIoType() - 50; // 103->53(鎷f枡鍏ュ簱), 107->57(鐩樼偣鍏ュ簱)
// 濡傛灉搴撲綅瀛樺湪锛屾洿鏂扮姸鎬佷负鍏ュ簱棰勭害锛涗笉瀛樺湪鍒欒烦杩囷紝鐢卞畾鏃朵换鍔″鐞�
@@ -196,20 +207,6 @@
throw new CoolException("鏉$爜缁勬墭妗e凡瀛樺湪锛�" + barcode);
}
- // 妫�鏌ユ槸鍚︽湁浠诲姟
- int wrkMastCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", barcode));
- if (wrkMastCount != 0) {
- log.warn("鏉$爜浠诲姟妗e凡瀛樺湪锛屼笉鏄┖鎵樼洏锛歿}", barcode);
- throw new CoolException("鏉$爜浠诲姟妗e凡瀛樺湪锛�" + barcode);
- }
-
- // 妫�鏌ユ槸鍚︽湁搴撳瓨
- int locDetlCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", barcode));
- if (locDetlCount != 0) {
- log.warn("鏉$爜搴撳瓨宸插瓨鍦紝涓嶆槸绌烘墭鐩橈細{}", barcode);
- throw new CoolException("鏉$爜搴撳瓨宸插瓨鍦細" + barcode);
- }
-
// 閫氳繃鎵�鏈夋鏌ワ紝纭涓虹┖鎵樼洏锛岃缃负绌烘墭鍏ュ簱
ioType = 10;
log.info("纭涓虹┖鎵樼洏锛岃缃负绌烘墭鍏ュ簱锛屾潯鐮侊細{}锛宨oType锛歿}", barcode, ioType);
@@ -217,10 +214,40 @@
default:
throw new CoolException("鍏ュ簱绫诲瀷閿欒,type锛�" + type);
}
- // 鏉$爜瀛樺湪agv浠诲姟
- int count = taskService.selectCount(new EntityWrapper<Task>().eq("barcode", barcode).eq("is_deleted", 0));
- if (count > 0) {
- throw new CoolException(barcode+ "锛氭潯鐮佸瓨鍦╝gv鎼繍浠诲姟!");
+
+ // 1. 鏍¢獙搴撲綅涓婄殑鏉$爜鏄惁鍦ㄥ簱锛氭鏌ocCache琛ㄤ笂鏄惁鏈夎鏉$爜锛屼笖璇ユ潯鐮佸湪LocDetl搴撳瓨涓�
+ // 娉ㄦ剰锛氱┖鎵樼洏鍏ュ簱锛坱ype=3锛変笉鏍¢獙搴撳瓨鏄庣粏锛屽彧鍦ㄦ牎楠屽簱浣嶄笂鏄惁鏈夋潯鐮侊紙宸插湪case 3涓鐞嗭級
+ if (type != 3 && locCache != null && !Cools.isEmpty(locCache.getBarcode())) {
+ String locCacheBarcode = locCache.getBarcode();
+ if (locCacheBarcode.equals(barcode)) {
+ // 搴撲綅涓婄殑鏉$爜涓庡綋鍓嶈鍛煎彨鐨勬潯鐮佺浉鍚岋紝妫�鏌ユ槸鍚﹀湪搴撳瓨涓�
+ int locDetlCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", barcode));
+ if (locDetlCount > 0) {
+ log.warn("AGV鍛煎彨鏃讹紝搴撲綅涓婄殑鏉$爜鍦ㄥ簱涓紝涓嶅厑璁稿懠鍙獳GV锛氬簱浣�={}锛屾潯鐮�={}", sourceSite, barcode);
+ throw new CoolException("鏉$爜鍦ㄥ簱锛岃鏇存崲鏉$爜" + barcode);
+ }
+ }
+ }else {
+ // 妫�鏌ュ簱浣嶄笂鏄惁鏈夎鏉$爜
+ if (locCache != null && !Cools.isEmpty(locCache.getBarcode()) && locCache.getBarcode().equals(barcode)) {
+ log.warn("绌烘墭鐩樺叆搴撴椂锛屽簱浣嶄笂宸叉湁璇ユ潯鐮侊紝涓嶅厑璁稿懠鍙獳GV锛氬簱浣�={}锛屾潯鐮�={}", sourceSite, barcode);
+ throw new CoolException("鏉$爜鍦ㄥ簱锛岃鏇存崲鏉$爜" + barcode);
+ }
+ }
+ // 2. 鏍¢獙宸ヤ綔妗d腑杩愯涓殑鎵樼洏鐮�
+ int wrkMastCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", barcode));
+ if (wrkMastCount != 0) {
+ log.warn("鏉$爜鍦ㄥ伐浣滄。宸插瓨鍦細{}", barcode);
+ throw new CoolException("鏉$爜鍦ㄥ伐浣滄。锛岃鏇存崲鏉$爜锛�" + barcode);
+ }
+
+ // 3. 鏍¢獙AGV浠诲姟鍒楄〃涓湭瀹屾垚鐨勬墭鐩樼爜锛氭鏌ユ槸鍚︽湁鏈畬鎴愮殑AGV浠诲姟锛坕s_deleted=0锛�
+ int unfinishedTaskCount = taskService.selectCount(new EntityWrapper<Task>()
+ .eq("barcode", barcode)
+ .eq("is_deleted", 0));
+ if (unfinishedTaskCount > 0) {
+ log.warn("AGV鍛煎彨鏃讹紝鏉$爜鍦ˋGV浠诲姟妗o紝涓嶅厑璁稿懠鍙獳GV锛歿}", barcode);
+ throw new CoolException("鏉$爜鍦ˋGV浠诲姟妗o紝璇锋洿鎹㈡潯鐮侊細" + barcode);
}
// 鏍规嵁whs_type纭畾鏈哄櫒浜虹粍锛堢珯鐐瑰垎閰嶅畬鍏ㄧ敱瀹氭椂浠诲姟澶勭悊锛�
--
Gitblit v1.9.1