|
@@ -67,6 +67,7 @@ import java.time.LocalDate;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicLong;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
@@ -1821,23 +1822,36 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
|
|
|
List<StackingUpLog> stackingUpLogList = stackingUpLogService.list(stackingUpLogQueryWrapper);
|
|
|
if (oConvertUtils.listIsNotEmpty(stackingUpLogList)) {
|
|
|
+ // 收集所有的 billetNo
|
|
|
+ Set<String> allBilletNos = new HashSet<>();
|
|
|
+ for (StackingUpLog stackingUpLog : stackingUpLogList) {
|
|
|
+ if (oConvertUtils.isNotEmpty(stackingUpLog.getBilletNo())) {
|
|
|
+ String[] billetNoArray = stackingUpLog.getBilletNo().split(",");
|
|
|
+ allBilletNos.addAll(Arrays.asList(billetNoArray));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 一次性查询所有相关的 BilletBasicInfo
|
|
|
+ LambdaQueryWrapper<BilletBasicInfo> basicInfoQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ basicInfoQueryWrapper.in(BilletBasicInfo::getBilletNo, allBilletNos);
|
|
|
+ List<BilletBasicInfo> billetBasicInfos = billetBasicInfoService.list(basicInfoQueryWrapper);
|
|
|
+
|
|
|
+ // 将 BilletBasicInfo 列表转换为以 billetNo 为键的映射
|
|
|
+ Map<String, BilletBasicInfo> billetBasicInfoMap = billetBasicInfos.stream()
|
|
|
+ .collect(Collectors.toMap(BilletBasicInfo::getBilletNo, Function.identity()));
|
|
|
|
|
|
for (StackingUpLog stackingUpLog : stackingUpLogList) {
|
|
|
DetailStatistics detailStatistics = new DetailStatistics();
|
|
|
if (oConvertUtils.isNotEmpty(stackingUpLog.getBilletNo())) {
|
|
|
-
|
|
|
List<String> billetNoList = Arrays.asList(stackingUpLog.getBilletNo().split(","));
|
|
|
- LambdaQueryWrapper<BilletBasicInfo> basicInfoQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- basicInfoQueryWrapper.in(BilletBasicInfo::getBilletNo, billetNoList);
|
|
|
- List<BilletBasicInfo> billetBasicInfos = billetBasicInfoService.list(basicInfoQueryWrapper);
|
|
|
- if (oConvertUtils.isNotEmpty(billetBasicInfos)) {
|
|
|
- double stackingTotalBlankOutput = billetBasicInfos.stream()
|
|
|
- .mapToDouble(BilletBasicInfo::getBilletWeight).sum();
|
|
|
-
|
|
|
- stackingTotalWeight = stackingTotalWeight + stackingTotalBlankOutput;
|
|
|
- detailStatistics.setBlankOutput(stackingTotalBlankOutput);
|
|
|
-
|
|
|
+ double stackingTotalBlankOutput = 0;
|
|
|
+ for (String billetNo : billetNoList) {
|
|
|
+ BilletBasicInfo info = billetBasicInfoMap.get(billetNo);
|
|
|
+ if (info != null) {
|
|
|
+ stackingTotalBlankOutput += info.getBilletWeight();
|
|
|
+ }
|
|
|
}
|
|
|
+ stackingTotalWeight = stackingTotalWeight + stackingTotalBlankOutput;
|
|
|
+ detailStatistics.setBlankOutput(stackingTotalBlankOutput);
|
|
|
detailStatistics.setAmountTotal(billetNoList.size());
|
|
|
}
|
|
|
detailStatistics.setSize(stackingUpLog.getSize());
|