Просмотр исходного кода

钢坯装运单列表以及装运明细的组坯号显示完善堆垛有多个坯号的情况

lingpeng.li 2 месяцев назад
Родитель
Сommit
e5ad45d123

+ 10 - 3
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/controller/StorageBillController.java

@@ -169,6 +169,9 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 		Set<String> allBilletNos = billetAutoTmpList.stream()
 				.map(BilletAutoTmp::getBilletNo)
 				.filter(Objects::nonNull)
+				.flatMap(billetNo -> Arrays.stream(billetNo.split(","))) // 按逗号分割
+				.map(String::trim) // 去除可能的空格
+				.filter(bn -> !bn.isEmpty()) // 过滤空字符串
 				.collect(Collectors.toSet());
 
 		Map<String, String> billetToAssemblyMap = new HashMap<>();
@@ -194,10 +197,14 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
 				// 获取所有 `assemblyNumber` 并去重拼接
 				String assemblyNumbers = relatedBillets.stream()
 						.map(BilletAutoTmp::getBilletNo)
-						.map(billetToAssemblyMap::get)
 						.filter(Objects::nonNull)
-						.distinct()
-						.collect(Collectors.joining(","));
+						.flatMap(billetNo -> Arrays.stream(billetNo.split(","))) // 逗号分割
+						.map(String::trim) // 去掉前后空格
+						.filter(bn -> !bn.isEmpty()) // 过滤空字符串
+						.map(billetToAssemblyMap::get) // 在 Map 中查找 AssemblyNumber
+						.filter(Objects::nonNull) // 过滤掉 null
+						.distinct() // 去重
+						.collect(Collectors.joining(",")); // 拼接
 
 				if (StringUtils.isNotBlank(assemblyNumbers)) {
 					bill.setAssemblyNumber(StringUtils.isNotBlank(bill.getAssemblyNumber()) ?

+ 12 - 4
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/storageBill/service/impl/StorageBillServiceImpl.java

@@ -191,6 +191,9 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
         Set<String> allBilletNos = billetAutoTmpArrayList.stream()
                 .map(BilletAutoTmp::getBilletNo)
                 .filter(Objects::nonNull)
+                .flatMap(billetNo -> Arrays.stream(billetNo.split(","))) // 按逗号分割
+                .map(String::trim) // 去除可能的空格
+                .filter(bn -> !bn.isEmpty()) // 过滤空字符串
                 .collect(Collectors.toSet());
 
         Map<String, String> billetToAssemblyMap = new HashMap<>();
@@ -208,9 +211,6 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                     ));
         }
 
-        // 按 StorageBillId 分组 `BilletAutoTmp`
-        Map<String, List<BilletAutoTmp>> billetTmpMap = billetAutoTmpArrayList.stream()
-                .collect(Collectors.groupingBy(BilletAutoTmp::getStorageBillId));
 
         List<String> idList = Arrays.stream(storageBill.getId().split(","))
                 .collect(Collectors.toList());
@@ -239,7 +239,15 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
                 for (RollClubTwoDetails rollClubTwoDetails : rollClubTwoDetailsList) {
                     String billetNo = rollClubTwoDetails.getBilletNo();
                     if (StringUtils.isNotBlank(billetNo)) {
-                        String assemblyNumber = billetToAssemblyMap.get(billetNo);
+
+                        String assemblyNumber = Arrays.stream(rollClubTwoDetails.getBilletNo().split(",")) // 按逗号分割
+                                .map(String::trim) // 去除前后空格
+                                .filter(bn -> !bn.isEmpty()) // 过滤空字符串
+                                .map(billetToAssemblyMap::get) // 映射到 AssemblyNumber
+                                .filter(Objects::nonNull) // 过滤 null
+                                .distinct() // 去重
+                                .collect(Collectors.joining(","));
+
                         if (StringUtils.isNotBlank(assemblyNumber)) {
                             rollClubTwoDetails.setAssemblyNumber(StringUtils.isNotBlank(rollClubTwoDetails.getAssemblyNumber())
                                     ? rollClubTwoDetails.getAssemblyNumber() + "," + assemblyNumber