From 10570a9fa5e87231210a449eddc732c7d0599349 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 24 八月 2026 16:02:55 +0800
Subject: [PATCH] fix: 报工计算修改

---
 src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
index 6750f03..3e2fb0c 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
@@ -177,6 +177,10 @@
         if (bomStructure == null) {
             return routingProductModelId;
         }
+        if (hasChildren(bomStructure, structureById)) {
+            return bomStructure.getProductModelId() != null
+                    ? bomStructure.getProductModelId() : routingProductModelId;
+        }
         Long parentId = bomStructure.getParentId();
         if (parentId == null) {
             return routingProductModelId != null ? routingProductModelId : bomStructure.getProductModelId();
@@ -188,6 +192,15 @@
         return routingProductModelId != null ? routingProductModelId : bomStructure.getProductModelId();
     }
 
+    private boolean hasChildren(TechnologyBomStructure bomStructure,
+                                Map<Long, TechnologyBomStructure> structureById) {
+        if (bomStructure == null || bomStructure.getId() == null || structureById == null) {
+            return false;
+        }
+        return structureById.values().stream()
+                .anyMatch(child -> child != null && java.util.Objects.equals(child.getParentId(), bomStructure.getId()));
+    }
+
     private void syncRoutingOperationParams(Long technologyRoutingOperationId, Long technologyOperationId) {
         List<TechnologyOperationParam> operationParamList = technologyOperationParamMapper.selectList(
                 Wrappers.<TechnologyOperationParam>lambdaQuery()

--
Gitblit v1.9.3