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