Ver Fonte

原材料有多个问题处理

yzc há 10 meses atrás
pai
commit
2715dd9051

+ 16 - 10
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderDetailServiceImpl.java

@@ -355,9 +355,9 @@ public class ProduceOrderDetailServiceImpl extends ServiceImpl<ProduceOrderDetai
         });
         Map<Long, List<ContractProductBomVo>> bomMap = cpBomVoList.stream().collect(Collectors.groupingBy(ContractProductBom::getContractProductId));
         //获取原材料
-        Map<Long, ContractProductBomVo> rawBomMap = cpBomVoList.stream()
+        Map<Long, List<ContractProductBomVo>> rawBomMap = cpBomVoList.stream()
                 .filter(item -> Objects.equals(item.getType(), 1))
-                .collect(Collectors.toMap(ContractProductBom::getContractProductId, Function.identity()));
+                .collect(Collectors.groupingBy(ContractProductBom::getContractProductId));
         //其他BOM
         Map<Long, List<ContractProductBomVo>> otherBomMap = cpBomVoList.stream()
                 .filter(item -> !Objects.equals(item.getType(), 1))
@@ -371,14 +371,20 @@ public class ProduceOrderDetailServiceImpl extends ServiceImpl<ProduceOrderDetai
 
         for (ProductionOrderDetailVo detail : voList) {
             //赋值原材料信息
-            ContractProductBomVo rawMaterialBom = rawBomMap.get(detail.getContractDetailId());
-            if (ObjectUtil.isNotEmpty(rawMaterialBom)) {
-                detail.setRawMaterialCode(rawMaterialBom.getProductCode());
-                detail.setRawMaterialName(rawMaterialBom.getProductName());
-                detail.setRawMaterialLength(rawMaterialBom.getProductLength());
-                detail.setRawMaterialWidth(rawMaterialBom.getProductWidth());
-                detail.setRawMaterialHeight(rawMaterialBom.getProductHeight());
-                detail.setProductColor(rawMaterialBom.getProductColor());
+            List<ContractProductBomVo> rawMaterialBomList = rawBomMap.get(detail.getContractDetailId());
+            if (ObjectUtil.isNotEmpty(rawMaterialBomList)) {
+
+                String productCode = rawMaterialBomList.stream().map(item -> item.getProductCode()).distinct().collect(Collectors.joining(","));
+                String productName = rawMaterialBomList.stream().map(item -> item.getProductName()).distinct().collect(Collectors.joining(","));
+                String productColor = rawMaterialBomList.stream().map(item -> item.getProductColor()).distinct().collect(Collectors.joining(","));
+
+                detail.setRawMaterialCode(productCode);
+                detail.setRawMaterialName(productName);
+                detail.setProductColor(productColor);
+
+//                detail.setRawMaterialLength(rawMaterialBomList.getProductLength());
+//                detail.setRawMaterialWidth(rawMaterialBomList.getProductWidth());
+//                detail.setRawMaterialHeight(rawMaterialBomList.getProductHeight());
             }
             //赋值BOM信息
             detail.setContractProductBomList(otherBomMap.get(detail.getContractDetailId()));