From df1917ff3b5be2a5fbd180cf9db7307dce919043 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期一, 24 八月 2026 16:31:53 +0800
Subject: [PATCH] feat 功能修正

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java    |    5 +++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java |    5 +++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java     |   10 ++++++++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineService.java     |    8 ++++++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/packages/MesWmPackageLineDO.java   |    2 ++
 5 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/packages/MesWmPackageLineDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/packages/MesWmPackageLineDO.java
index bf432d7..6a9c04c 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/packages/MesWmPackageLineDO.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/wm/packages/MesWmPackageLineDO.java
@@ -4,6 +4,7 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
 import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -54,6 +55,7 @@
      *
      * 鍏宠仈 {@link MesProWorkOrderDO#getId()}
      */
+    @TableField(exist = false)
     private Long workOrderId;
     /**
      * 鏈夋晥鏈�
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java
index e906968..c8494d1 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/packages/MesWmPackageLineMapper.java
@@ -25,4 +25,9 @@
         delete(MesWmPackageLineDO::getPackageId, packageId);
     }
 
+    default Long selectCountByPackageId(Long packageId) {
+        return selectCount(new LambdaQueryWrapperX<MesWmPackageLineDO>()
+                .eq(MesWmPackageLineDO::getPackageId, packageId));
+    }
+
 }
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineService.java
index fdb9a1b..76c917e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineService.java
@@ -58,4 +58,12 @@
      */
     void deletePackageLineByPackageId(Long packageId);
 
+    /**
+     * 鏌ヨ瑁呯鏄庣粏鏁伴噺
+     *
+     * @param packageId 瑁呯鍗� ID
+     * @return 鏄庣粏鏁伴噺
+     */
+    Long getPackageLineCountByPackageId(Long packageId);
+
 }
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java
index 295fc61..4040e56 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageLineServiceImpl.java
@@ -92,6 +92,11 @@
         packageLineMapper.deleteByPackageId(packageId);
     }
 
+    @Override
+    public Long getPackageLineCountByPackageId(Long packageId) {
+        return packageLineMapper.selectCountByPackageId(packageId);
+    }
+
     // ========== 鏍¢獙鏂规硶 ==========
 
     /**
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
index edf4aad..64a29ac 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
@@ -44,6 +44,7 @@
     private CrmCustomerApi customerApi;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Long createPackage(MesWmPackageSaveReqVO createReqVO) {
         // 鏍¢獙缂栫爜鍞竴鎬�
         validateCodeUnique(null, createReqVO.getCode());
@@ -61,6 +62,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updatePackage(MesWmPackageSaveReqVO updateReqVO) {
         // 鏍¢獙瀛樺湪涓斾负鑽夌
         validatePackageExistsAndDraft(updateReqVO.getId());
@@ -101,9 +103,15 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void finishPackage(Long id) {
         // 鏍¢獙瀛樺湪涓斾负鑽夌
         validatePackageExistsAndDraft(id);
+
+        // 瑁呯鍗曞繀椤诲瓨鍦ㄨ绠辨槑缁�
+        if (packageLineService.getPackageLineCountByPackageId(id) == 0) {
+            throw exception(WM_PACKAGE_LINE_NOT_EXISTS);
+        }
 
         // 鏇存柊鐘舵�佷负宸插畬鎴�
         packageMapper.updateById(new MesWmPackageDO()
@@ -116,6 +124,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void addChildPackage(Long parentId, Long childId) {
         // 鏍¢獙鐖剁瀛樺湪涓斾负鑽夌
         validatePackageExistsAndDraft(parentId);
@@ -129,6 +138,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void removeChildPackage(Long childId) {
         // 鏍¢獙瀛愮瀛樺湪
         MesWmPackageDO child = validatePackageExists(childId);

--
Gitblit v1.9.3