From e80eae3bcd9f1ee0eecd4072f943f2519762f164 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 20 十月 2026 15:18:21 +0800
Subject: [PATCH] feat: 工序添加是否领料,用于后续生产订单领料

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

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
index acad3ef..eca8cb3 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
@@ -131,10 +131,15 @@
         List<ProductionBomStructure> updateList = new ArrayList<>();
         Map<String, ProductionBomStructure> tempEntityMap = new HashMap<>();
 
+        Map<Long, Boolean> operationPickMap = loadOperationPickMap(flatDtoList.stream()
+                .map(ProductionBomStructureDto::getTechnologyOperationId)
+                .collect(Collectors.toList()));
+
         for (ProductionBomStructureDto item : flatDtoList) {
             ProductionBomStructure entity = new ProductionBomStructure();
             BeanUtils.copyProperties(item, entity);
             entity.setProductionOrderBomId(orderBomId);
+            entity.setIsPick(operationPickMap.getOrDefault(item.getTechnologyOperationId(), Boolean.FALSE));
             if (item.getId() == null) {
                 entity.setParentId(null);
                 insertList.add(entity);
@@ -853,6 +858,26 @@
         return technologyOperationMapper.selectById(technologyOperationId);
     }
 
+    /**
+     * 鎵归噺璇诲彇宸ュ簭鐨勨�滄槸鍚﹂鏂欌�濇爣璁帮紝淇濊瘉鐢熶骇BOM缁撴瀯涓殑棰嗘枡鏍囪涓庡伐搴忎富鏁版嵁涓�鑷淬��
+     */
+    private Map<Long, Boolean> loadOperationPickMap(List<Long> technologyOperationIds) {
+        if (technologyOperationIds == null || technologyOperationIds.isEmpty()) {
+            return Collections.emptyMap();
+        }
+        Set<Long> operationIdSet = technologyOperationIds.stream()
+                .filter(Objects::nonNull)
+                .collect(Collectors.toSet());
+        if (operationIdSet.isEmpty()) {
+            return Collections.emptyMap();
+        }
+        return technologyOperationMapper.selectBatchIds(operationIdSet).stream()
+                .filter(item -> item != null && item.getId() != null)
+                .collect(Collectors.toMap(TechnologyOperation::getId,
+                        item -> Boolean.TRUE.equals(item.getIsPick()),
+                        (left, right) -> left));
+    }
+
     private String generateNextTaskNo() {
         String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
         ProductionOperationTask latestTask = productionOperationTaskMapper.selectOne(

--
Gitblit v1.9.3