From 3990ae574c221e3764ce9cbc2e4e3eb71b7b1b52 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 24 十月 2026 23:41:23 +0800
Subject: [PATCH] fix(mes): 修复批次正反向追溯链路

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
index 985e80f..1baf365 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
@@ -6,7 +6,7 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorDetailDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorLineDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.wm.returnvendor.MesWmReturnVendorDetailMapper;
-import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
 import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
 import jakarta.annotation.Resource;
@@ -32,8 +32,12 @@
     @Resource
     @Lazy
     private MesWmReturnVendorLineService returnVendorLineService;
+    // 涓� ReturnVendorServiceImpl 鐩镐簰寮曠敤锛岄』鐢� @Lazy 鎵撶牬寰幆
     @Resource
-    private MesMdItemService itemService;
+    @Lazy
+    private MesWmReturnVendorService returnVendorService;
+    @Resource
+    private MesMdmItemService mdmItemService;
     @Resource
     private MesWmMaterialStockService materialStockService;
     @Resource
@@ -66,13 +70,15 @@
      * 鏍¢獙鏄庣粏鍒涘缓/淇敼鐨勫叕鍏辨暟鎹�
      */
     private void validateDetailSaveData(MesWmReturnVendorDetailSaveReqVO reqVO) {
+        // 鏍¢獙鐖跺崟锛堥��璐у崟锛夊浜庡噯澶囦腑鐘舵�侊紝瀹℃壒鏈熼棿鍙婁箣鍚庣姝㈠鍒犳敼鏄庣粏
+        returnVendorService.validateReturnVendorExistsAndPrepare(reqVO.getReturnId());
         // 鏍¢獙鐖舵暟鎹紙琛岋級瀛樺湪
         MesWmReturnVendorLineDO line = returnVendorLineService.validateReturnVendorLineExists(reqVO.getLineId());
         if (ObjUtil.notEqual(line.getReturnId(), reqVO.getReturnId())) {
             throw exception(WM_RETURN_VENDOR_DETAIL_LINE_NOT_MATCH);
         }
         // 鏍¢獙鐗╂枡瀛樺湪
-        itemService.validateItemExistsAndEnable(reqVO.getItemId());
+        mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
         // 鏍¢獙鐗╂枡涓庤鐗╂枡涓�鑷�
         validateItemConsistency(reqVO.getItemId(), line);
         // 鏍¢獙搴撲綅瀛樺湪
@@ -85,7 +91,9 @@
     @Override
     public void deleteReturnVendorDetail(Long id) {
         // 鏍¢獙瀛樺湪
-        validateReturnVendorDetailExists(id);
+        MesWmReturnVendorDetailDO detail = validateReturnVendorDetailExists(id);
+        // 鏍¢獙鐖跺崟澶勪簬鍑嗗涓姸鎬侊紝瀹℃壒鏈熼棿鍙婁箣鍚庣姝㈠垹闄ゆ槑缁�
+        returnVendorService.validateReturnVendorExistsAndPrepare(detail.getReturnId());
         // 鍒犻櫎
         returnVendorDetailMapper.deleteById(id);
     }
@@ -115,10 +123,12 @@
         returnVendorDetailMapper.deleteByLineId(lineId);
     }
 
-    private void validateReturnVendorDetailExists(Long id) {
-        if (returnVendorDetailMapper.selectById(id) == null) {
+    private MesWmReturnVendorDetailDO validateReturnVendorDetailExists(Long id) {
+        MesWmReturnVendorDetailDO detail = returnVendorDetailMapper.selectById(id);
+        if (detail == null) {
             throw exception(WM_RETURN_VENDOR_DETAIL_NOT_EXISTS);
         }
+        return detail;
     }
 
     /**

--
Gitblit v1.9.3