|
@@ -1533,30 +1533,43 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
log.info("{}{}", "查询当班装运单信息为空!", ccmNo);
|
|
|
return onDutyStorageBillStatistics;
|
|
|
}
|
|
|
+ Integer allCarNum = storageBillList.stream()
|
|
|
+ .map(StorageBill::getCarNum)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
+ Integer amountTotal = storageBillList.stream()
|
|
|
+ .map(StorageBill::getAmountTotal)
|
|
|
+ .reduce(0, Integer::sum);
|
|
|
List<DestinationStatisticsDetails> statisticsDetailsList1 = new ArrayList<>();
|
|
|
List<DestinationStatisticsDetails> statisticsDetailsList2 = new ArrayList<>();
|
|
|
List<DestinationStatisticsDetails> statisticsDetailsList3 = new ArrayList<>();
|
|
|
- for (StorageBill storageBill : storageBillList) {
|
|
|
|
|
|
- if ("棒二".equals(storageBill.getDestination())){
|
|
|
+ for (StorageBill storageBill : storageBillList) {
|
|
|
+ if ("棒二".equals(storageBill.getDestination())) {
|
|
|
LambdaQueryWrapper<RollClubTwoDetails> queryWrapper3 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper3.eq(RollClubTwoDetails::getCcmNo, ccmNo).eq(RollClubTwoDetails::getStorageBillId, storageBill.getId());
|
|
|
List<RollClubTwoDetails> rollClubTwoDetailsList = rollClubTwoDetailsService.list(queryWrapper3);
|
|
|
- if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)){
|
|
|
- statisticsDetailsList1 = rollClubTwoDetailsList.stream()
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubTwoDetailsList)) {
|
|
|
+ List<DestinationStatisticsDetails> currentList1 = rollClubTwoDetailsList.stream()
|
|
|
.collect(Collectors.groupingBy(RollClubTwoDetails::getSize, Collectors.toList()))
|
|
|
.entrySet().stream()
|
|
|
.map(entry -> {
|
|
|
String size = entry.getKey();
|
|
|
List<RollClubTwoDetails> group = entry.getValue();
|
|
|
Integer nums = group.size();
|
|
|
+ boolean shouldMultiply = group.stream().anyMatch(detail -> detail.getStackAddr() != null);
|
|
|
+ if (shouldMultiply) {
|
|
|
+ nums = nums * 4;
|
|
|
+ }
|
|
|
Double totalBlankOutput = group.stream().mapToDouble(RollClubTwoDetails::getBlankOutput).sum();
|
|
|
BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
|
|
|
double finalBlankOutput = bd.doubleValue();
|
|
|
String ccmNos = group.isEmpty() ? null : group.get(0).getCcmNo();
|
|
|
return new DestinationStatisticsDetails(size, nums, finalBlankOutput, ccmNos);
|
|
|
- }).collect(Collectors.toList());
|
|
|
- int totalNums = statisticsDetailsList1.stream()
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ statisticsDetailsList1.addAll(currentList1);
|
|
|
+
|
|
|
+ int totalNums = currentList1.stream()
|
|
|
.mapToInt(DestinationStatisticsDetails::getNums)
|
|
|
.sum();
|
|
|
onDutyStorageBillStatistics.setCounts(totalNums);
|
|
@@ -1567,25 +1580,32 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if ("棒三".equals(storageBill.getDestination())){
|
|
|
+ if ("棒三".equals(storageBill.getDestination())) {
|
|
|
LambdaQueryWrapper<RollClubThreeDetails> queryWrapper3 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper3.eq(RollClubThreeDetails::getCcmNo, ccmNo).eq(RollClubThreeDetails::getStorageBillId, storageBill.getId());
|
|
|
List<RollClubThreeDetails> rollClubThreeDetailsList = rollClubThreeDetailsService.list(queryWrapper3);
|
|
|
- if (oConvertUtils.listIsNotEmpty(rollClubThreeDetailsList)){
|
|
|
- statisticsDetailsList2 = rollClubThreeDetailsList.stream()
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollClubThreeDetailsList)) {
|
|
|
+ List<DestinationStatisticsDetails> currentList2 = rollClubThreeDetailsList.stream()
|
|
|
.collect(Collectors.groupingBy(RollClubThreeDetails::getSize, Collectors.toList()))
|
|
|
.entrySet().stream()
|
|
|
.map(entry -> {
|
|
|
String size = entry.getKey();
|
|
|
List<RollClubThreeDetails> group = entry.getValue();
|
|
|
Integer nums = group.size();
|
|
|
+ boolean shouldMultiply = group.stream().anyMatch(detail -> detail.getStackAddr() != null);
|
|
|
+ if (shouldMultiply) {
|
|
|
+ nums = nums * 4;
|
|
|
+ }
|
|
|
Double totalBlankOutput = group.stream().mapToDouble(RollClubThreeDetails::getBlankOutput).sum();
|
|
|
BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
|
|
|
double finalBlankOutput = bd.doubleValue();
|
|
|
String ccmNos = group.isEmpty() ? null : group.get(0).getCcmNo();
|
|
|
return new DestinationStatisticsDetails(size, nums, finalBlankOutput, ccmNos);
|
|
|
- }).collect(Collectors.toList());
|
|
|
- int totalNums = statisticsDetailsList2.stream()
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ statisticsDetailsList2.addAll(currentList2);
|
|
|
+
|
|
|
+ int totalNums = currentList2.stream()
|
|
|
.mapToInt(DestinationStatisticsDetails::getNums)
|
|
|
.sum();
|
|
|
onDutyStorageBillStatistics.setCounts(totalNums);
|
|
@@ -1596,25 +1616,32 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if ("上若".equals(storageBill.getDestination())){
|
|
|
+ if ("上若".equals(storageBill.getDestination())) {
|
|
|
LambdaQueryWrapper<RollOutShippDetails> queryWrapper3 = new LambdaQueryWrapper<>();
|
|
|
queryWrapper3.eq(RollOutShippDetails::getCcmNo, ccmNo).eq(RollOutShippDetails::getStorageBillId, storageBill.getId());
|
|
|
List<RollOutShippDetails> rollOutShippDetailsList = rollOutShippDetailsService.list(queryWrapper3);
|
|
|
- if (oConvertUtils.listIsNotEmpty(rollOutShippDetailsList)){
|
|
|
- statisticsDetailsList3 = rollOutShippDetailsList.stream()
|
|
|
+ if (oConvertUtils.listIsNotEmpty(rollOutShippDetailsList)) {
|
|
|
+ List<DestinationStatisticsDetails> currentList3 = rollOutShippDetailsList.stream()
|
|
|
.collect(Collectors.groupingBy(RollOutShippDetails::getSize, Collectors.toList()))
|
|
|
.entrySet().stream()
|
|
|
.map(entry -> {
|
|
|
String size = entry.getKey();
|
|
|
List<RollOutShippDetails> group = entry.getValue();
|
|
|
Integer nums = group.size();
|
|
|
+ boolean shouldMultiply = group.stream().anyMatch(detail -> detail.getStackAddr() != null);
|
|
|
+ if (shouldMultiply) {
|
|
|
+ nums = nums * 4;
|
|
|
+ }
|
|
|
Double totalBlankOutput = group.stream().mapToDouble(RollOutShippDetails::getBlankOutput).sum();
|
|
|
BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
|
|
|
double finalBlankOutput = bd.doubleValue();
|
|
|
String ccmNos = group.isEmpty() ? null : group.get(0).getCcmNo();
|
|
|
return new DestinationStatisticsDetails(size, nums, finalBlankOutput, ccmNos);
|
|
|
- }).collect(Collectors.toList());
|
|
|
- int totalNums = statisticsDetailsList3.stream()
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ statisticsDetailsList3.addAll(currentList3);
|
|
|
+
|
|
|
+ int totalNums = currentList3.stream()
|
|
|
.mapToInt(DestinationStatisticsDetails::getNums)
|
|
|
.sum();
|
|
|
onDutyStorageBillStatistics.setCounts(totalNums);
|
|
@@ -1624,10 +1651,40 @@ public class StorageBillServiceImpl extends ServiceImpl<StorageBillMapper, Stora
|
|
|
onDutyStorageBillStatistics.setBlankOutputs(bd);
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
+ // 合并三个列表并根据 size 分组统计
|
|
|
+ List<DestinationStatisticsDetails> mergedList = Stream.concat(
|
|
|
+ Stream.concat(statisticsDetailsList1.stream(), statisticsDetailsList2.stream()),
|
|
|
+ statisticsDetailsList3.stream()
|
|
|
+ )
|
|
|
+ .collect(Collectors.groupingBy(DestinationStatisticsDetails::getSize))
|
|
|
+ .entrySet().stream()
|
|
|
+ .map(entry -> {
|
|
|
+ String size = entry.getKey();
|
|
|
+ List<DestinationStatisticsDetails> group = entry.getValue();
|
|
|
+ int totalNums = group.stream().mapToInt(DestinationStatisticsDetails::getNums).sum();
|
|
|
+ double totalBlankOutput = group.stream().mapToDouble(DestinationStatisticsDetails::getBlankOutput).sum();
|
|
|
+ BigDecimal bd = BigDecimal.valueOf(totalBlankOutput).setScale(4, BigDecimal.ROUND_HALF_UP);
|
|
|
+ double finalBlankOutput = bd.doubleValue();
|
|
|
+ String ccmNoForGroup = group.isEmpty() ? null : group.get(0).getCcmNo();
|
|
|
+ return new DestinationStatisticsDetails(size, totalNums, finalBlankOutput, ccmNoForGroup);
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 遍历mergedList获取nums总和
|
|
|
+ int finalAmountTotal = mergedList.stream().mapToInt(DestinationStatisticsDetails::getNums).sum();
|
|
|
+ // 遍历mergedList获取blankOutput总和
|
|
|
+ double finalBlankOutputs = mergedList.stream().mapToDouble(DestinationStatisticsDetails::getBlankOutput).sum();
|
|
|
+ BigDecimal bd = BigDecimal.valueOf(finalBlankOutputs).setScale(4, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ log.info("{}{}", "钢坯热送单班统计查询结果:", JSON.toJSON(mergedList));
|
|
|
+ onDutyStorageBillStatistics.setAllCarNum(allCarNum);
|
|
|
+ onDutyStorageBillStatistics.setCounts(finalAmountTotal);
|
|
|
+ onDutyStorageBillStatistics.setBlankOutputs(bd);
|
|
|
+ onDutyStorageBillStatistics.setShift(shift);
|
|
|
+ onDutyStorageBillStatistics.setShiftGroup(shiftGroup);
|
|
|
+ onDutyStorageBillStatistics.setStatisticsDetailsList(mergedList);
|
|
|
return onDutyStorageBillStatistics;
|
|
|
}
|
|
|
|