From 335f64189bdf0fd51864ac3873f6199e94282c27 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 04 九月 2026 17:23:43 +0800
Subject: [PATCH] docs(rule): 添加错误提示文案精确性规则文档
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java | 24 ++++++++++++++++++------
1 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
index 031dc5d..619d15f 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
@@ -31,6 +31,8 @@
import java.time.LocalDateTime;
import java.util.List;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
+
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
@@ -81,24 +83,34 @@
MesWmMaterialStockDO materialStock;
MesWmTransactionTypeEnum transactionType = MesWmTransactionTypeEnum.valueOf(reqDTO.getType());
boolean isInbound = transactionType != null && transactionType.isInbound();
+ boolean forceCreateNewStock = Boolean.TRUE.equals(reqDTO.getForceCreateNewStock());
+
if (reqDTO.getMaterialStockId() != null) {
// 浼犲叆浜� materialStockId锛岀洿鎺ヤ娇鐢�
materialStock = materialStockService.getMaterialStock(reqDTO.getMaterialStockId());
if (materialStock == null) {
throw exception(WM_MATERIAL_STOCK_NOT_EXISTS);
}
- // 鏍¢獙鐗╂枡銆佹壒娆°�佷粨搴撶瓑缁村害涓�鑷达紙闃叉浼犲叆閿欒鐨� materialStockId锛�
+ // 鏍¢獙鐗╂枡銆佹壒娆°�佷粨搴撶瓑缁村害涓�鑷达紙闃叉浼犲叆閿欒鐨� materialStockId锛夈��
+ // 鑻ユ澶勪笉涓�鑷达紝閫氬父鏄搴撳瓨宸茶绉诲簱/鍚堝苟/鎷嗗垎锛岄渶閫�鍥為噸鏂版嫞璐э紝鏁呯粰鍑洪拡瀵规�ф彁绀�
if (ObjUtil.notEqual(materialStock.getItemId(), reqDTO.getItemId())
|| ObjUtil.notEqual(materialStock.getWarehouseId(), reqDTO.getWarehouseId())
|| ObjUtil.notEqual(materialStock.getLocationId(), reqDTO.getLocationId())
|| ObjUtil.notEqual(materialStock.getAreaId(), reqDTO.getAreaId())) {
- throw exception(WM_MATERIAL_STOCK_SELECTION_MISMATCH);
+ throw new ServiceException(WM_MATERIAL_STOCK_SELECTION_MISMATCH.getCode(),
+ "璇ュ簱瀛樿褰曞凡鍙樺姩锛堝彲鑳借绉诲簱/鍚堝苟/鎷嗗垎锛夛紝涓庡嚭搴撴槑缁嗕笉涓�鑷达紝鏃犳硶鎵e噺锛岃閫�鍥為噸鏂版嫞璐�");
}
} else if (isInbound) {
- // 鍏ュ簱浜嬪姟锛氭壘涓嶅埌鍒欒嚜鍔ㄥ垱寤哄簱瀛樿褰�
- materialStock = materialStockService.getOrCreateMaterialStock(
- reqDTO.getItemId(), reqDTO.getWarehouseId(), reqDTO.getLocationId(), reqDTO.getAreaId(),
- reqDTO.getBatchId(), reqDTO.getBatchCode(), reqDTO.getVendorId(), reqDTO.getReceiptTime());
+ // 鍏ュ簱浜嬪姟锛氭牴鎹� forceCreateNewStock 鏍囧織鍐冲畾鏄垱寤烘柊璁板綍杩樻槸鏌ユ壘/鍒涘缓
+ if (forceCreateNewStock) {
+ materialStock = materialStockService.createMaterialStock(
+ reqDTO.getItemId(), reqDTO.getWarehouseId(), reqDTO.getLocationId(), reqDTO.getAreaId(),
+ reqDTO.getBatchId(), reqDTO.getBatchCode(), reqDTO.getVendorId(), reqDTO.getReceiptTime());
+ } else {
+ materialStock = materialStockService.getOrCreateMaterialStock(
+ reqDTO.getItemId(), reqDTO.getWarehouseId(), reqDTO.getLocationId(), reqDTO.getAreaId(),
+ reqDTO.getBatchId(), reqDTO.getBatchCode(), reqDTO.getVendorId(), reqDTO.getReceiptTime());
+ }
} else {
// 鍑哄簱浜嬪姟锛氬簱瀛樿褰曞繀椤诲凡瀛樺湪锛屼笉鍏佽鑷姩鍒涘缓锛堥櫎闈� checkFlag=false 鍏佽璐熷簱瀛橈級
materialStock = materialStockService.getMaterialStockByCompositeKey(
--
Gitblit v1.9.3