From e96a2a23b0bdc4c6fdefb2502ad03ce944566c59 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 12 五月 2026 17:51:12 +0800
Subject: [PATCH] 分派生产单到班组长,班组长:排产工单到班组成员

---
 src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
index 554b95e..6151f2b 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderPickServiceImpl.java
@@ -7,6 +7,7 @@
 import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
 import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.production.bean.dto.ProductionOrderPickDto;
 import com.ruoyi.production.bean.vo.ProductionOrderPickVo;
@@ -1178,4 +1179,36 @@
         // 鏁伴噺鏍煎紡鍖栬緭鍑猴紙鍘婚櫎鏈熬鏃犳晥0锛夈��
         return defaultDecimal(value).stripTrailingZeros().toPlainString();
     }
+
+    /**
+     * 鏍¢獙褰撳墠鐢ㄦ埛蹇呴』涓鸿鍗曠彮缁勯暱
+     * @param dto 棰嗘枡DTO
+     */
+    private void validateTeamLeader(ProductionOrderPickDto dto) {
+        // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛ID
+        Long currentUserId = SecurityUtils.getLoginUser().getUserId();
+
+        // 鑾峰彇鐢熶骇璁㈠崟ID
+        Long productionOrderId = resolveProductionOrderId(dto);
+        if (productionOrderId == null) {
+            throw new ServiceException("鐢熶骇璁㈠崟ID涓嶈兘涓虹┖");
+        }
+
+        // 鏌ヨ鐢熶骇璁㈠崟
+        ProductionOrder productionOrder = productionOrderMapper.selectById(productionOrderId);
+        if (productionOrder == null) {
+            throw new ServiceException("鐢熶骇璁㈠崟涓嶅瓨鍦�");
+        }
+
+        // 鑾峰彇璁㈠崟鐨勭彮缁勯暱ID
+        Long teamLeaderUserId = productionOrder.getTeamLeaderUserId();
+        if (teamLeaderUserId == null) {
+            throw new ServiceException("璇ヨ鍗曟湭璁剧疆鐝粍闀�");
+        }
+
+        // 鏍¢獙褰撳墠鐢ㄦ埛鏄惁涓虹彮缁勯暱
+        if (!Objects.equals(currentUserId, teamLeaderUserId)) {
+            throw new ServiceException("褰撳墠鐢ㄦ埛涓嶆槸璇ヨ鍗曠殑鐝粍闀匡紝鏃犳硶杩涜棰嗘枡鎿嶄綔");
+        }
+    }
 }

--
Gitblit v1.9.3