From 67a2c5fb41efcbcc028c8f4da0783c45f6b90f41 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期一, 16 三月 2026 16:37:35 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 45 insertions(+), 2 deletions(-)
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 e832cae..af790ef 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
@@ -32,6 +32,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@Service
@@ -103,6 +104,9 @@
if (Cools.isEmpty(param.getPalletBarcode())) {
throw new CoolException("鎵樼洏鐮佷笉鑳戒负绌猴紒锛�");
}
+ if (Cools.isEmpty(param.getPalletSta())) {
+ throw new CoolException("鎿嶄綔绔欑偣涓嶈兘涓虹┖锛侊紒");
+ }
checkPalletBarcodeAvailable(param.getPalletBarcode());
@@ -126,11 +130,50 @@
.setAnfme(1.0)
.setOrderItems(Collections.singletonList(buildOrderItem(param, matnr, nowMillis, nowSeconds).setBarcode(param.getPalletBarcode())));
syncOrder.setStationId(param.getPalletSta());
- receiveMsgService.syncCheckOrder(Collections.singletonList(syncOrder), loginUserId);
-
+ R r = receiveMsgService.syncCheckOrder(Collections.singletonList(syncOrder), loginUserId);
+ if (!Objects.isNull(r) && Objects.equals(String.valueOf(r.get("code")), "200")) {
+ autoCallAgvInTask(param, loginUserId);
+ }
return R.ok(Cools.add("orderNo", orderNo).add("palletBarcode", param.getPalletBarcode()));
}
+ private void autoCallAgvInTask(AgvBindAndInTParam param, Long loginUserId) {
+ CompletableFuture.runAsync(() -> {
+ int retry = 0;
+ while (retry < 5) {
+ retry++;
+ try {
+ Thread.sleep(3000);
+ WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
+ .eq(WaitPakin::getBarcode, param.getPalletBarcode())
+ .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val)
+ .last("limit 1"));
+ if (Objects.isNull(waitPakin)) {
+ continue;
+ }
+
+ BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+ .eq(BasStation::getStationName, param.getPalletSta())
+ .last("limit 1"));
+ if (Objects.isNull(basStation)) {
+ return;
+ }
+// if (Objects.isNull(basStation) || Objects.isNull(basStation.getArea())) {
+// return;
+// }
+
+ WaitPakinParam waitPakinPda = new WaitPakinParam()
+ .setBarcode(param.getPalletBarcode())
+ .setStaNo(param.getPalletSta())
+ .setArea(param.getArea());
+ AGVInTaskStart(waitPakinPda, loginUserId);
+ return;
+ } catch (Exception ignored) {
+ }
+ }
+ });
+ }
+
private SyncOrdersItem buildOrderItem(AgvBindAndInTParam param, Matnr matnr, long uniqueSeed, long nowSeconds) {
String suffix = String.valueOf(uniqueSeed);
String batch = LocalDateTime.ofInstant(Instant.ofEpochSecond(nowSeconds), ZoneId.systemDefault())
--
Gitblit v1.9.1