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/returnissue/MesWmReturnIssueDetailServiceImpl.java |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java
index 885df10..be3e1bd 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnissue/MesWmReturnIssueDetailServiceImpl.java
@@ -6,6 +6,7 @@
 import cn.iocoder.yudao.module.mes.controller.admin.wm.returnissue.vo.detail.MesWmReturnIssueDetailSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnissue.MesWmReturnIssueDetailDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnissue.MesWmReturnIssueLineDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.wm.returnissue.MesWmReturnIssueDetailMapper;
 import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
@@ -16,6 +17,8 @@
 
 import java.math.BigDecimal;
 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.*;
@@ -111,15 +114,28 @@
         if (ObjUtil.notEqual(line.getItemId(), reqVO.getItemId())) {
             throw exception(WM_RETURN_ISSUE_DETAIL_ITEM_MISMATCH);
         }
-        // 鏍¢獙浠撳簱銆佸簱鍖恒�佸簱浣嶇殑鍏宠仈鍏崇郴
+        // 鏍¢獙涓婃灦鐩爣浠撳簱銆佸簱鍖恒�佸簱浣嶇殑鍏宠仈鍏崇郴
         warehouseAreaService.validateWarehouseAreaExists(
                 reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId());
-        // 鏍¢獙搴撲綅鐗╂枡/鎵规娣锋斁瑙勫垯
+        // 鏍¢獙涓婃灦鐩爣搴撲綅鐨勭墿鏂�/鎵规娣锋斁瑙勫垯
         materialStockService.checkAreaMixingRule(reqVO.getAreaId(), reqVO.getItemId(), reqVO.getBatchId());
-        // 鏍¢獙搴撳瓨璁板綍
-        materialStockService.validateSelectedStock(
-                reqVO.getMaterialStockId(), reqVO.getItemId(), reqVO.getBatchId(), reqVO.getBatchCode(),
-                reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId(), reqVO.getQuantity());
+        // 鏍¢獙鏉ユ簮搴撳瓨璁板綍锛坢aterialStockId 鎸囧悜铏氭嫙绾胯竟搴擄紝warehouseId 鏄笂鏋剁洰鏍囦粨搴擄紝涓よ�呬粨搴撲笉鍚屾槸姝e父鐨勶級
+        if (reqVO.getMaterialStockId() != null) {
+            MesWmMaterialStockDO stock = materialStockService.getMaterialStock(reqVO.getMaterialStockId());
+            if (stock == null) {
+                throw exception(WM_MATERIAL_STOCK_NOT_EXISTS);
+            }
+            // 鏍¢獙鐗╂枡涓�鑷达細姝ゅ鍙瘮瀵圭墿鏂欙紝鍥犱负鏉ユ簮搴撳瓨(绾胯竟/铏氭嫙浠�)涓庝笂鏋剁洰鏍囦粨搴撴湰灏变笉鍚屽睘姝e父
+            if (ObjUtil.notEqual(stock.getItemId(), reqVO.getItemId())) {
+                throw new ServiceException(WM_MATERIAL_STOCK_SELECTION_MISMATCH.getCode(),
+                        "鎵�閫夋潵婧愬簱瀛樺綊灞炵墿鏂欎笌褰撳墠閫�璐х墿鏂欎笉涓�鑷达紝璇烽噸鏂伴�夋嫨鏉ユ簮搴撳瓨");
+            }
+            // 鏍¢獙搴撳瓨鏁伴噺鍏呰冻
+            if (reqVO.getQuantity() != null && stock.getQuantity() != null
+                    && stock.getQuantity().compareTo(reqVO.getQuantity()) < 0) {
+                throw exception(WM_MATERIAL_STOCK_INSUFFICIENT);
+            }
+        }
         // 鏍¢獙鏄庣粏鎬绘暟閲忎笉瓒呰繃琛屾暟閲忥紙鎺掗櫎鑷韩锛�
         validateDetailQuantityNotExceed(reqVO.getLineId(), reqVO.getQuantity(), reqVO.getId(), line);
     }

--
Gitblit v1.9.3