|
@@ -259,14 +259,23 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
return result;
|
|
|
}
|
|
|
List<RollClubOneDetails> rollClubOneDetailsList = rollClubOneDetailsService.list(new LambdaQueryWrapper<RollClubOneDetails>().in(RollClubOneDetails::getStorageBillId, idList));
|
|
|
+ processRollClubOneDetails(rollClubOneDetailsList);
|
|
|
result.setRollClubOneDetailsList(rollClubOneDetailsList);
|
|
|
+
|
|
|
List<RollClubTwoDetails> rollClubTwoDetailsList = rollClubTwoDetailsService.list(new LambdaQueryWrapper<RollClubTwoDetails>().in(RollClubTwoDetails::getStorageBillId, idList));
|
|
|
+ processRollClubTwoDetails(rollClubTwoDetailsList);
|
|
|
result.setRollClubTwoDetailsList(rollClubTwoDetailsList);
|
|
|
+
|
|
|
List<RollClubThreeDetails> rollClubThreeDetailsList = rollClubThreeDetailsService.list(new LambdaQueryWrapper<RollClubThreeDetails>().in(RollClubThreeDetails::getStorageBillId, idList));
|
|
|
+ processRollClubThreeDetails(rollClubThreeDetailsList);
|
|
|
result.setRollClubThreeDetailsList(rollClubThreeDetailsList);
|
|
|
+
|
|
|
List<RollOutShippDetails> rollOutShippDetailsList = rollOutShippDetailsService.list(new LambdaQueryWrapper<RollOutShippDetails>().in(RollOutShippDetails::getStorageBillId, idList));
|
|
|
+ processRollOutShippDetails(rollOutShippDetailsList);
|
|
|
result.setRollOutShippDetailsList(rollOutShippDetailsList);
|
|
|
+
|
|
|
List<RollHeightDetails> rollHeightDetails = rollHeightDetailsService.list(new LambdaQueryWrapper<RollHeightDetails>().in(RollHeightDetails::getStorageBillId, idList));
|
|
|
+ processRollHeightDetails(rollHeightDetails);
|
|
|
result.setRollHeightDetails(rollHeightDetails);
|
|
|
|
|
|
// List<StackingDownLogDetails> stackingDownLogDetailsList = new ArrayList<>();
|
|
@@ -3948,4 +3957,209 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public void processRollClubOneDetails(List<RollClubOneDetails> rollClubOneDetailsList) {
|
|
|
+ for (RollClubOneDetails details : rollClubOneDetailsList) {
|
|
|
+ // 1. 解析 billetNo 为 Set<String>,去重
|
|
|
+ Set<String> billetNoSet = Optional.ofNullable(details.getBilletNo())
|
|
|
+ .map(billetNo -> Arrays.stream(billetNo.split(",")) // 按逗号分割
|
|
|
+ .map(String::trim) // 去除前后空格
|
|
|
+ .filter(StringUtils::isNotBlank) // 过滤空值
|
|
|
+ .collect(Collectors.toSet()))
|
|
|
+ .orElse(Collections.emptySet());
|
|
|
+
|
|
|
+ // 2. 如果 billetNoSet 为空,则无需查询,跳过
|
|
|
+ if (billetNoSet.isEmpty()) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 查询 BilletBasicInfo 获取 assemblyNumber
|
|
|
+ List<BilletBasicInfo> billetBasicInfoList = billetBasicInfoService.list(
|
|
|
+ new LambdaQueryWrapper<BilletBasicInfo>().in(BilletBasicInfo::getBilletNo, billetNoSet)
|
|
|
+ );
|
|
|
+
|
|
|
+ // 4. 提取 assemblyNumber 并去重
|
|
|
+ Set<String> assemblySet = new HashSet<>();
|
|
|
+
|
|
|
+ // 先加入 details 现有的 assemblyNumber(确保不为 null 且不为空字符串)
|
|
|
+ String existingAssembly = details.getAssemblyNumber();
|
|
|
+ if (StringUtils.isNotBlank(existingAssembly)) {
|
|
|
+ Collections.addAll(assemblySet, existingAssembly.split(","));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 再加入从 BilletBasicInfo 查询到的 assemblyNumber
|
|
|
+ billetBasicInfoList.stream()
|
|
|
+ .map(BilletBasicInfo::getAssemblyNumber)
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .forEach(assemblySet::add);
|
|
|
+
|
|
|
+ // 5. 拼接回 rollClubOneDetails 的 assemblyNumber
|
|
|
+ details.setAssemblyNumber(String.join(",", assemblySet));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void processRollClubTwoDetails(List<RollClubTwoDetails> rollClubTwoDetailsList) {
|
|
|
+ for (RollClubTwoDetails details : rollClubTwoDetailsList) {
|
|
|
+ // 1. 解析 billetNo 为 Set<String>,去重
|
|
|
+ Set<String> billetNoSet = Optional.ofNullable(details.getBilletNo())
|
|
|
+ .map(billetNo -> Arrays.stream(billetNo.split(",")) // 按逗号分割
|
|
|
+ .map(String::trim) // 去除前后空格
|
|
|
+ .filter(StringUtils::isNotBlank) // 过滤空值
|
|
|
+ .collect(Collectors.toSet()))
|
|
|
+ .orElse(Collections.emptySet());
|
|
|
+
|
|
|
+ // 2. 如果 billetNoSet 为空,则无需查询,跳过
|
|
|
+ if (billetNoSet.isEmpty()) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 查询 BilletBasicInfo 获取 assemblyNumber
|
|
|
+ List<BilletBasicInfo> billetBasicInfoList = billetBasicInfoService.list(
|
|
|
+ new LambdaQueryWrapper<BilletBasicInfo>().in(BilletBasicInfo::getBilletNo, billetNoSet)
|
|
|
+ );
|
|
|
+
|
|
|
+ // 4. 提取 assemblyNumber 并去重
|
|
|
+ Set<String> assemblySet = new HashSet<>();
|
|
|
+
|
|
|
+ // 先加入 details 现有的 assemblyNumber(确保不为 null 且不为空字符串)
|
|
|
+ String existingAssembly = details.getAssemblyNumber();
|
|
|
+ if (StringUtils.isNotBlank(existingAssembly)) {
|
|
|
+ Collections.addAll(assemblySet, existingAssembly.split(","));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 再加入从 BilletBasicInfo 查询到的 assemblyNumber
|
|
|
+ billetBasicInfoList.stream()
|
|
|
+ .map(BilletBasicInfo::getAssemblyNumber)
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .forEach(assemblySet::add);
|
|
|
+
|
|
|
+ // 5. 拼接回 rollClubOneDetails 的 assemblyNumber
|
|
|
+ details.setAssemblyNumber(String.join(",", assemblySet));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public void processRollClubThreeDetails(List<RollClubThreeDetails> rollClubThreeDetailsList) {
|
|
|
+ for (RollClubThreeDetails details : rollClubThreeDetailsList) {
|
|
|
+ // 1. 解析 billetNo 为 Set<String>,去重
|
|
|
+ Set<String> billetNoSet = Optional.ofNullable(details.getBilletNo())
|
|
|
+ .map(billetNo -> Arrays.stream(billetNo.split(",")) // 按逗号分割
|
|
|
+ .map(String::trim) // 去除前后空格
|
|
|
+ .filter(StringUtils::isNotBlank) // 过滤空值
|
|
|
+ .collect(Collectors.toSet()))
|
|
|
+ .orElse(Collections.emptySet());
|
|
|
+
|
|
|
+ // 2. 如果 billetNoSet 为空,则无需查询,跳过
|
|
|
+ if (billetNoSet.isEmpty()) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 查询 BilletBasicInfo 获取 assemblyNumber
|
|
|
+ List<BilletBasicInfo> billetBasicInfoList = billetBasicInfoService.list(
|
|
|
+ new LambdaQueryWrapper<BilletBasicInfo>().in(BilletBasicInfo::getBilletNo, billetNoSet)
|
|
|
+ );
|
|
|
+
|
|
|
+ // 4. 提取 assemblyNumber 并去重
|
|
|
+ Set<String> assemblySet = new HashSet<>();
|
|
|
+
|
|
|
+ // 先加入 details 现有的 assemblyNumber(确保不为 null 且不为空字符串)
|
|
|
+ String existingAssembly = details.getAssemblyNumber();
|
|
|
+ if (StringUtils.isNotBlank(existingAssembly)) {
|
|
|
+ Collections.addAll(assemblySet, existingAssembly.split(","));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 再加入从 BilletBasicInfo 查询到的 assemblyNumber
|
|
|
+ billetBasicInfoList.stream()
|
|
|
+ .map(BilletBasicInfo::getAssemblyNumber)
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .forEach(assemblySet::add);
|
|
|
+
|
|
|
+ // 5. 拼接回 rollClubOneDetails 的 assemblyNumber
|
|
|
+ details.setAssemblyNumber(String.join(",", assemblySet));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void processRollOutShippDetails(List<RollOutShippDetails> rollOutShippDetailsList) {
|
|
|
+ for (RollOutShippDetails details : rollOutShippDetailsList) {
|
|
|
+ // 1. 解析 billetNo 为 Set<String>,去重
|
|
|
+ Set<String> billetNoSet = Optional.ofNullable(details.getBilletNo())
|
|
|
+ .map(billetNo -> Arrays.stream(billetNo.split(",")) // 按逗号分割
|
|
|
+ .map(String::trim) // 去除前后空格
|
|
|
+ .filter(StringUtils::isNotBlank) // 过滤空值
|
|
|
+ .collect(Collectors.toSet()))
|
|
|
+ .orElse(Collections.emptySet());
|
|
|
+
|
|
|
+ // 2. 如果 billetNoSet 为空,则无需查询,跳过
|
|
|
+ if (billetNoSet.isEmpty()) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 查询 BilletBasicInfo 获取 assemblyNumber
|
|
|
+ List<BilletBasicInfo> billetBasicInfoList = billetBasicInfoService.list(
|
|
|
+ new LambdaQueryWrapper<BilletBasicInfo>().in(BilletBasicInfo::getBilletNo, billetNoSet)
|
|
|
+ );
|
|
|
+
|
|
|
+ // 4. 提取 assemblyNumber 并去重
|
|
|
+ Set<String> assemblySet = new HashSet<>();
|
|
|
+
|
|
|
+ // 先加入 details 现有的 assemblyNumber(确保不为 null 且不为空字符串)
|
|
|
+ String existingAssembly = details.getAssemblyNumber();
|
|
|
+ if (StringUtils.isNotBlank(existingAssembly)) {
|
|
|
+ Collections.addAll(assemblySet, existingAssembly.split(","));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 再加入从 BilletBasicInfo 查询到的 assemblyNumber
|
|
|
+ billetBasicInfoList.stream()
|
|
|
+ .map(BilletBasicInfo::getAssemblyNumber)
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .forEach(assemblySet::add);
|
|
|
+
|
|
|
+ // 5. 拼接回 rollClubOneDetails 的 assemblyNumber
|
|
|
+ details.setAssemblyNumber(String.join(",", assemblySet));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void processRollHeightDetails(List<RollHeightDetails> rollHeightDetailsList) {
|
|
|
+ for (RollHeightDetails details : rollHeightDetailsList) {
|
|
|
+ // 1. 解析 billetNo 为 Set<String>,去重
|
|
|
+ Set<String> billetNoSet = Optional.ofNullable(details.getBilletNo())
|
|
|
+ .map(billetNo -> Arrays.stream(billetNo.split(",")) // 按逗号分割
|
|
|
+ .map(String::trim) // 去除前后空格
|
|
|
+ .filter(StringUtils::isNotBlank) // 过滤空值
|
|
|
+ .collect(Collectors.toSet()))
|
|
|
+ .orElse(Collections.emptySet());
|
|
|
+
|
|
|
+ // 2. 如果 billetNoSet 为空,则无需查询,跳过
|
|
|
+ if (billetNoSet.isEmpty()) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 查询 BilletBasicInfo 获取 assemblyNumber
|
|
|
+ List<BilletBasicInfo> billetBasicInfoList = billetBasicInfoService.list(
|
|
|
+ new LambdaQueryWrapper<BilletBasicInfo>().in(BilletBasicInfo::getBilletNo, billetNoSet)
|
|
|
+ );
|
|
|
+
|
|
|
+ // 4. 提取 assemblyNumber 并去重
|
|
|
+ Set<String> assemblySet = new HashSet<>();
|
|
|
+
|
|
|
+ // 先加入 details 现有的 assemblyNumber(确保不为 null 且不为空字符串)
|
|
|
+ String existingAssembly = details.getAssemblyNumber();
|
|
|
+ if (StringUtils.isNotBlank(existingAssembly)) {
|
|
|
+ Collections.addAll(assemblySet, existingAssembly.split(","));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 再加入从 BilletBasicInfo 查询到的 assemblyNumber
|
|
|
+ billetBasicInfoList.stream()
|
|
|
+ .map(BilletBasicInfo::getAssemblyNumber)
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .forEach(assemblySet::add);
|
|
|
+
|
|
|
+ // 5. 拼接回 rollClubOneDetails 的 assemblyNumber
|
|
|
+ details.setAssemblyNumber(String.join(",", assemblySet));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|