From eaa43b12bfe9185b4f0b8f09d9ca081895a4d185 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 12 三月 2026 21:27:44 +0800
Subject: [PATCH] 1.任务下发失败提醒 2.针对订单出库循环堵塞问题优化
---
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 51 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 42 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index ebf389c..0bd578b 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
-import com.core.common.R;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
@@ -90,7 +89,7 @@
List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist, detl.getMatnr(), detl.getBatch(),
detl.getBrand(), detl.getStandby1(), detl.getStandby2(), detl.getStandby3(), detl.getBoxType1(), detl.getBoxType2(), detl.getBoxType3());
for (LocDetl locDetl : locDetls) {
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()).eq("loc_sts","F"));
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()).eq("loc_sts", "F"));
if (locMast != null) {
LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", locMast.getLocNo()));
if (!Cools.isEmpty(bLocNo)) {
@@ -132,7 +131,9 @@
List<TaskDto> taskDtos = new ArrayList<>();
// 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
for (LocDto locDto : locDtos) {
- if (locDto.isLack()) { continue; }
+ if (locDto.isLack()) {
+ continue;
+ }
TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto, locDto.getStandby1());
if (TaskDto.has(taskDtos, taskDto)) {
TaskDto dto = TaskDto.find(taskDtos, taskDto);
@@ -143,14 +144,15 @@
}
}
// -----------------------------------------------------------------------------------------------
+ int failCount = 0;
for (TaskDto taskDto : taskDtos) {
- BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
- if (!Objects.isNull(taskDto.getDeviceNo())) {
- //鐢熸垚鍑哄簱浠诲姟
- workService.stockOut(staNo, taskDto, taskDto.getDeviceNo(), 9995L);
- } else {
- workService.stockOut(staNo, taskDto, null, 9995L);
+ if (!stockOutSafely(taskDto, 9995L, "鑷姩璁㈠崟鍑哄簱")) {
+ failCount++;
}
+ }
+ if (failCount > 0) {
+ log.warn("鑷姩璁㈠崟鍑哄簱閮ㄥ垎澶辫触[orderNo={}]锛屾垚鍔焮}鏉★紝澶辫触{}鏉�",
+ order.getOrderNo(), taskDtos.size() - failCount, failCount);
}
}
}
@@ -201,4 +203,35 @@
}
}
}
+
+ private boolean stockOutSafely(TaskDto taskDto, Long userId, String scene) {
+ try {
+ BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+ workService.stockOut(staNo, taskDto, taskDto.getDeviceNo(), userId);
+ return true;
+ } catch (Exception e) {
+ log.error("{}澶辫触[locNo={}, staNo={}, deviceNo={}, orderNos={}]锛屽師鍥�: {}",
+ scene,
+ taskDto.getLocNo(),
+ taskDto.getStaNo(),
+ taskDto.getDeviceNo(),
+ collectOrderNos(taskDto),
+ getErrorMessage(e));
+ return false;
+ }
+ }
+
+ private String collectOrderNos(TaskDto taskDto) {
+ Set<String> orderNos = new LinkedHashSet<>();
+ for (LocDto locDto : taskDto.getLocDtos()) {
+ if (!Cools.isEmpty(locDto.getOrderNo())) {
+ orderNos.add(locDto.getOrderNo());
+ }
+ }
+ return orderNos.toString();
+ }
+
+ private String getErrorMessage(Exception e) {
+ return Cools.isEmpty(e.getMessage()) ? e.getClass().getSimpleName() : e.getMessage();
+ }
}
--
Gitblit v1.9.1