From 33df2026a4a69be7badbc0342fff7e1f544c58a8 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期五, 23 一月 2026 19:09:42 +0800
Subject: [PATCH] lsh#自动组托完善
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java | 1
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java | 24 +++++-------
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 32 ++++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 19 ++++++---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java | 1
5 files changed, 56 insertions(+), 21 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java
index 9da4be0..253326f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/AgvService.java
@@ -18,4 +18,5 @@
R AGVBindAndInTaskStart(WaitPakinParam waitPakinPda, Long loginUserId);
R AGVBindAndInTaskStart(String barcode);
+ boolean AGVBindAndInTaskStart(String barcode, String sta);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
index 195c55a..4f38bed 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
@@ -63,6 +63,14 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean AGVBindAndInTaskStart(String barcode, String sta) {
+ //楠岃瘉鏉$爜
+ checkStaStatus(barcode,sta);
+ return true;
+ }
+
+ @Override
public R getStaMsgSelect(Map<String, Object> params) {
String sta = params.get("sta").toString();
if (Cools.isEmpty(sta)) {
@@ -248,15 +256,9 @@
throw new CoolException("瀹瑰櫒鐮佷笉鑳戒负绌�");
}
if (Cools.isEmpty(sta)) {
- throw new CoolException("鎺ラ┏浣嶆潯鐮佷笉鑳戒负绌�");
+ throw new CoolException("绔欑偣淇℃伅涓嶈兘涓虹┖");
}
- WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
- .eq(WaitPakin::getBarcode, barcode)
- .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val)
- );
- if (Cools.isEmpty(waitPakin)) {
- throw new CoolException("瀹瑰櫒鐮佹湭鎵惧埌缁勬墭淇℃伅,璇锋鏌ョ粍鎵樼姸鎬�");
- }
+
BasStation isBarcodeSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
.eq(BasStation::getBarcode, barcode)
, false
@@ -269,9 +271,6 @@
);
if (Cools.isEmpty(basStation)) {
throw new CoolException("鏈壘鍒扮珯鐐逛俊鎭�");
- }
- if (!basStation.getUseStatus().equals("O")) {
- throw new CoolException("绔欑偣鐘舵�佷笉涓虹┖闂�");
}
if (!Cools.isEmpty(basStation.getContainerType())) {
List<Long> longs1 = JSONObject.parseArray(basStation.getContainerType(), Long.class);
@@ -287,9 +286,6 @@
break; // 鎵惧埌鍖归厤鐨勫氨閫�鍑哄惊鐜�
}
}
-// boolean matches = containers.stream()
-// .map(BasContainer::getCodeType)
-// .anyMatch(codeType -> barcode.matches(codeType));
if (!matches) {
throw new CoolException("鏉$爜涓庣珯鐐逛笉鍖归厤");
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index cdbe0d6..4509896 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -506,13 +506,18 @@
//缁勬墭
WaitPakinParam pakinParam = new WaitPakinParam();
pakinParam.setBarcode(palletId.get());
- CompletableFuture.runAsync(() -> {
- try {
- asyncMergeItemsWcs(pakinParam, syncOrder.getOrderNo(), loginUserId);
- } catch (Exception e) {
- log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄧ粍鎵�", syncOrder.getOrderNo());
- }
- });
+ pakinParam.setStaNo(syncOrder.getStationId());
+
+ boolean itemsCheck = waitPakinService.mergeItemsCheck(pakinParam, loginUserId);
+ if (itemsCheck) {
+ CompletableFuture.runAsync(() -> {
+ try {
+ asyncMergeItemsWcs(pakinParam, syncOrder.getOrderNo(), loginUserId);
+ } catch (Exception e) {
+ log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄧ粍鎵�", syncOrder.getOrderNo());
+ }
+ });
+ }
}
});
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java
index 87bd8d3..5101ef4 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java
@@ -11,6 +11,7 @@
WaitPakin mergeItems(WaitPakinParam waitPakin, Long userId);
WaitPakin mergeItemsWcs(WaitPakinParam waitPakin, Long userId);
+ boolean mergeItemsCheck(WaitPakinParam waitPakin, Long userId);
WaitPakin unBind(WaitPakinParam param);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
index 49a184b..26810ba 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -177,6 +177,38 @@
return pakin;
}
+ /**
+ * @author Munch D. Luffy
+ * @date 2026/01/23
+ * @description: PDA缁勬嫋鍓嶇疆妫�鏌�
+ * @version 1.0
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public synchronized boolean mergeItemsCheck(WaitPakinParam waitPakin, Long userId) {
+ if (StringUtils.isBlank(waitPakin.getBarcode())) {
+ throw new CoolException("鍙傛暟閿欒锛氭墭鐩樼爜涓虹┖锛侊紒");
+ }
+ WaitPakin pakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
+ .eq(WaitPakin::getBarcode, waitPakin.getBarcode()));
+ if (!Objects.isNull(pakin)) {
+ throw new CoolException("鎵樼洏鐮侊細" + waitPakin.getBarcode() + "宸茶缁勬墭鍗曪細" + pakin.getCode() + "浣跨敤锛侊紒");
+ }
+ List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, waitPakin.getBarcode()));
+ if (!locs.isEmpty()) {
+ List<String> locCodes = locs.stream().map(Loc::getCode).collect(Collectors.toList());
+ String join = StringUtils.join(locCodes, ",");
+ throw new CoolException("鎵樼洏鐮侊細" + waitPakin.getBarcode() + "宸茶搴撲綅锛�" + join + "浣跨敤锛侊紒");
+ }
+
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_WAIT_PAKIN_CODE, null);
+ if (StringUtils.isBlank(ruleCode)) {
+ throw new CoolException("缂栫爜瑙勫垯閿欒锛� 缂栫爜瑙勫垯銆孲YS_WAIT_PAKIN_CODE銆嶈鍒欐槸涓嶅瓨鍦�");
+ }
+
+ return agvService.AGVBindAndInTaskStart(waitPakin.getBarcode(),waitPakin.getStaNo());
+
+ }
/**
--
Gitblit v1.9.1