From a726def1286c7bff013efeb17e8437a891ba5a00 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 17 四月 2026 13:27:43 +0800
Subject: [PATCH] 空板出库修复
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++--------
1 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 581c448..2090724 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -1169,6 +1169,14 @@
.set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type))) {
throw new CoolException("婧愬簱浣嶇姸鎬佷慨鏀瑰け璐ワ紒锛�");
}
+ } else if (task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)) {
+ // 绌烘澘鍑哄簱锛氬缓鍗曟椂 D鈫扲锛屽彇娑堟仮澶嶄负绌烘澘 D
+ if (!locService.update(new LambdaUpdateWrapper<Loc>()
+ .eq(Loc::getCode, task.getOrgLoc())
+ .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_R.type)
+ .set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type))) {
+ throw new CoolException("绌烘澘鍑哄簱婧愬簱浣嶆仮澶嶇┖鏉垮け璐ワ紒锛�");
+ }
}
if (!Objects.isNull(task.getWarehType()) && task.getWarehType().equals(WarehType.WAREHOUSE_TYPE_AGV.val)) {
@@ -1212,7 +1220,7 @@
throw new CoolException("搴撲綅淇℃伅淇敼澶辫触锛侊紒");
}
//鍑哄簱
- if (item.getWkType().equals(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type))) {
+ if (Objects.equals(item.getWkType(), OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type)) {
//搴撳瓨鍑哄簱
} else if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)) {
WaveItem waveItem = waveItemService.getById(item.getSource());
@@ -1234,7 +1242,7 @@
throw new CoolException("娉㈡鏇存柊澶辫触锛侊紒");
}
- } else if (item.getWkType().equals(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER.type))) {
+ } else if (Objects.equals(item.getWkType(), OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
//鍏跺畠鍑哄簱
} else {
@@ -1772,12 +1780,12 @@
}
//娣诲姞鍑哄叆搴撹褰曚俊鎭�
- Map<Short, List<TaskItem>> listMap = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getWkType));
+ Map<String, List<TaskItem>> listMap = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getWkType));
/***鑾峰彇搴撳瓨鍑哄簱鍊硷紝濡傛灉涓虹┖琛ㄧず姝e父鍗曟嵁鍑哄簱锛岄潪绌鸿〃鏄庢槸搴撳瓨鍑哄簱
* 1. 搴撳瓨鍑哄簱娌℃湁鍗曟嵁淇℃伅锛屽崟鎹俊鎭粯璁や负绌�
* 2. 鍗曟嵁搴撳瓨闇�閫氳繃娉㈡鏌ヨ鍘熷鍗曟嵁淇℃伅锛屽皢鍗曟嵁淇℃伅濉叆stock涓�
* */
- List<TaskItem> list = listMap.get(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type));
+ List<TaskItem> list = listMap.get(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type);
if (Objects.isNull(list) || list.isEmpty()) {
Map<Long, List<TaskItem>> maps = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getSource));
maps.keySet().forEach(key -> {
@@ -1949,13 +1957,13 @@
if (!asnOrderService.updateById(wkOrder)) {
throw new CoolException("鍑哄簱鍗曟洿鏂板け璐ワ紒锛�");
}
- stock.setWkType(Short.parseShort(wkOrder.getWkType()))
+ stock.setWkType(wkOrder.getWkType())
.setType(OrderType.ORDER_OUT.type);
} else if (!Objects.isNull(diffItem)) {
- stock.setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
+ stock.setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type)
.setType(OrderType.ORDER_CHECK.type);
} else {
- stock.setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type))
+ stock.setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type)
.setMemo("搴撳瓨鍑哄簱锛屾棤鍗曟嵁淇℃伅锛侊紒")
.setType(OrderType.ORDER_OUT.type);
}
@@ -2691,7 +2699,7 @@
* @return
*/
@Transactional(rollbackFor = Exception.class)
- public synchronized void saveStockItems(List<TaskItem> items, Task task, Long id, String code, Short wkType, String type, Long loginUserId) {
+ public synchronized void saveStockItems(List<TaskItem> items, Task task, Long id, String code, String wkType, String type, Long loginUserId) {
Stock stock = new Stock();
String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_STOCK_CODE, null);
if (StringUtils.isBlank(ruleCode)) {
@@ -2800,9 +2808,21 @@
}
}
}
+ // 鍑哄簱浠呬簯浠撴潵婧愬崟鎹弬涓庝笂鎶�
+ if (!isInbound) {
+ boolean hasCloudSource = taskItems.stream().anyMatch(this::hasCloudOrderRef);
+ if (!hasCloudSource) {
+// log.info("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙璺宠繃锛氭棤浜戜粨鏉ユ簮鍗曟嵁锛宼askId={}", task.getId());
+ log.info("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙璺宠繃锛氭墜鍔ㄥ垱寤哄嚭搴撳崟鎹笉閫氱煡浜戜粨锛宼askId={}", task.getId());
+ return;
+ }
+ }
ObjectMapper om = new ObjectMapper();
Date now = new Date();
for (TaskItem item : taskItems) {
+ if (!isInbound && !hasCloudOrderRef(item)) {
+ continue;
+ }
String orderNo = isInbound ? sourceToOrderNo.get(item.getSource()) : (item.getPlatOrderCode() != null ? item.getPlatOrderCode() : item.getPlatWorkCode());
if (orderNo == null && isInbound) {
orderNo = item.getPlatOrderCode() != null ? item.getPlatOrderCode() : item.getPlatWorkCode();
@@ -2841,4 +2861,12 @@
log.warn("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙澶辫触锛宼askId={}锛宨sInbound={}锛歿}", task.getId(), isInbound, e.getMessage());
}
}
+
+ private boolean hasCloudOrderRef(TaskItem item) {
+ if (item == null) {
+ return false;
+ }
+ return StringUtils.isNotBlank(item.getPlatOrderCode())
+ || StringUtils.isNotBlank(item.getPlatWorkCode());
+ }
}
--
Gitblit v1.9.1