qiangxuan 5 сар өмнө
parent
commit
4a27285587

+ 10 - 0
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/billetHotsend/service/impl/BilletHotsendBaseServiceImpl.java

@@ -518,6 +518,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			}else {
 				rollClubOne.setAmountTotal(rollClubOne1.getAmountTotal() + rollClubCommonList.size());// 总支数
 				rollClubOne.setId(rollClubOne1.getId());
+				rollClubOne.setBlankOutput(rollClubOne1.getBlankOutput() + rollClubOne.getBlankOutput());
+				rollClubOne.setUpdateTime(new Date());
 				rollClubOneService.updateById(rollClubOne);
 			}
 			// 保存棒一明细信息
@@ -564,6 +566,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			}else {
 				rollClubTwo.setId(rollClubTwo1.getId());
 				rollClubTwo.setAmountTotal(rollClubTwo1.getAmountTotal() + rollClubCommonList.size());// 总支数
+				rollClubTwo.setBlankOutput(rollClubTwo1.getBlankOutput() + rollClubTwo.getBlankOutput());//出坯量
+				rollClubTwo.setUpdateTime(new Date());
 				rollClubTwoService.updateById(rollClubTwo);
 			}
 			// 保存棒二明细信息
@@ -610,6 +614,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			}else {
 				rollClubThree.setId(rollClubThree1.getId());
 				rollClubThree.setAmountTotal(rollClubThree1.getAmountTotal() + rollClubCommonList.size());// 总支数
+				rollClubThree.setBlankOutput(rollClubThree1.getBlankOutput() + rollClubThree.getBlankOutput());//出坯量
+				rollClubThree.setUpdateTime(new Date());
 				rollClubThreeService.updateById(rollClubThree);
 			}
 			// 保存棒三明细信息
@@ -656,6 +662,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			}else {
 				rollHeight.setAmountTotal(rollHeight1.getAmountTotal() + rollClubCommonList.size());// 总支数
 				rollHeight.setId(rollHeight1.getId());
+				rollHeight.setBlankOutput(rollHeight1.getBlankOutput() + rollHeight.getBlankOutput());//出坯量
+				rollHeight.setUpdateTime(new Date());
 				rollHeightService.updateById(rollHeight);
 			}
 			// 保存高线明细信息
@@ -705,6 +713,8 @@ public class BilletHotsendBaseServiceImpl extends ServiceImpl<BilletHotsendBaseM
 			}else {
 				rollOutShipp.setId(rollOutShipp1.getId());
 				rollOutShipp.setAmountTotal(rollOutShipp1.getAmountTotal() + rollClubCommonList.size());// 总支数
+				rollOutShipp.setBlankOutput(rollOutShipp1.getBlankOutput() + rollOutShipp.getBlankOutput());//出坯量
+				rollOutShipp.setUpdateTime(new Date());
 				rollOutShippService.updateById(rollOutShipp);
 			}
 			// 保存上若明细信息

+ 23 - 11
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollClubOne/service/impl/RollClubOneServiceImpl.java

@@ -61,20 +61,32 @@ public class RollClubOneServiceImpl extends ServiceImpl<RollClubOneMapper, RollC
             return destinationStatistics;
         }
         // 根据size属性进行分组,并统计每组的总数和总重
-        Map<String, Double> sumBySize = rollClubOneDetailsList.stream()
-                .collect(Collectors.groupingBy(RollClubOneDetails::getSize,Collectors.summingDouble(RollClubOneDetails::getBlankOutput)));
-        Map<String, Long> countBySize = rollClubOneDetailsList.stream().collect(Collectors.groupingBy(RollClubOneDetails::getSize, Collectors.counting()));
+//        Map<String, Double> sumBySize = rollClubOneDetailsList.stream()
+//                .collect(Collectors.groupingBy(RollClubOneDetails::getSize,Collectors.summingDouble(RollClubOneDetails::getBlankOutput)));
+//        Map<String, Long> countBySize = rollClubOneDetailsList.stream().collect(Collectors.groupingBy(RollClubOneDetails::getSize, Collectors.counting()));
+
+
+        Map<String, Double> sumBySizeAndCcmNo = rollClubOneDetailsList.stream()
+                // 通过一个自定义的Function来组合size和ccmNo作为分组的键
+                .collect(Collectors.groupingBy(roll -> roll.getSize() + "_" + roll.getCcmNo(),
+                        // 对每个分组内的元素,根据blankOutput进行求和统计
+                        Collectors.summingDouble(RollClubOneDetails::getBlankOutput)
+                ));
+        Map<String, Long> countBySizeAndCcmNo = rollClubOneDetailsList.stream()
+                // 通过一个Function将size和ccmNo组合起来作为分组的键
+                .collect(Collectors.groupingBy(roll -> roll.getSize() + "_" + roll.getCcmNo(),
+                        // 直接使用Collectors.counting()来统计每个分组内元素的个数
+                        Collectors.counting()
+                ));
 
         List<DestinationStatisticsDetails> rollClubOneDetailsStatisticsList = new ArrayList<>();
-        sumBySize.forEach((size, totalWeight) -> {
-            long count = countBySize.get(size);
+        sumBySizeAndCcmNo.forEach((size, totalWeight) -> {
+            String[] parts = size.split("_");
+            String sizeStr = parts[0];
+            String ccmNoStr = parts[1];
+            long count = countBySizeAndCcmNo.get(size);
             // 找到第一个匹配size的RollClubOneDetails对象获取其ccmNo值(假设ccmNo在同一size分组内是相同的,如有不同需调整逻辑)
-            String ccmNos = rollClubOneDetailsList.stream()
-                    .filter(detail -> detail.getSize().equals(size))
-                    .findFirst()
-                    .map(RollClubOneDetails::getCcmNo)
-                    .orElse(null);
-            rollClubOneDetailsStatisticsList.add(new DestinationStatisticsDetails(size, (int) count, totalWeight, ccmNos));
+            rollClubOneDetailsStatisticsList.add(new DestinationStatisticsDetails(sizeStr, (int) count, totalWeight, ccmNoStr));
         });
         destinationStatistics.setStatisticsDetailsList(rollClubOneDetailsStatisticsList);
         return destinationStatistics;

+ 20 - 8
zgztBus/jeecg-module-sbm/src/main/java/org/jeecg/modules/billet/rollHeight/service/impl/RollHeightServiceImpl.java

@@ -67,16 +67,28 @@ public class RollHeightServiceImpl extends ServiceImpl<RollHeightMapper, RollHei
                 .collect(Collectors.groupingBy(RollHeightDetails::getSize,Collectors.summingDouble(RollHeightDetails::getBlankOutput)));
         Map<String, Long> countBySize = rollHeightDetailsList.stream().collect(Collectors.groupingBy( RollHeightDetails::getSize, Collectors.counting()));
 
+        Map<String, Double> sumBySizeAndCcmNo = rollHeightDetailsList.stream()
+                // 通过一个自定义的Function来组合size和ccmNo作为分组的键
+                .collect(Collectors.groupingBy(roll -> roll.getSize() + "_" + roll.getCcmNo(),
+                        // 对每个分组内的元素,根据blankOutput进行求和统计
+                        Collectors.summingDouble(RollHeightDetails::getBlankOutput)
+                ));
+        Map<String, Long> countBySizeAndCcmNo = rollHeightDetailsList.stream()
+                // 通过一个Function将size和ccmNo组合起来作为分组的键
+                .collect(Collectors.groupingBy(roll -> roll.getSize() + "_" + roll.getCcmNo(),
+                        // 直接使用Collectors.counting()来统计每个分组内元素的个数
+                        Collectors.counting()
+                ));
+
+
         List<DestinationStatisticsDetails> rollHeightStatisticsDetailsList = new ArrayList<>();
-        sumBySize.forEach((size, totalWeight) -> {
-            long count = countBySize.get(size);
+        sumBySizeAndCcmNo.forEach((size, totalWeight) -> {
+            String[] parts = size.split("_");
+            String sizeStr = parts[0];
+            String ccmNoStr = parts[1];
+            long count = countBySizeAndCcmNo.get(size);
             // 找到第一个匹配size的RollClubOneDetails对象获取其ccmNo值(假设ccmNo在同一size分组内是相同的,如有不同需调整逻辑)
-            String ccmNos = rollHeightDetailsList.stream()
-                    .filter(detail -> detail.getSize().equals(size))
-                    .findFirst()
-                    .map(RollHeightDetails::getCcmNo)
-                    .orElse(null);
-            rollHeightStatisticsDetailsList.add(new DestinationStatisticsDetails(size, (int) count, totalWeight, ccmNos));
+            rollHeightStatisticsDetailsList.add(new DestinationStatisticsDetails(sizeStr, (int) count, totalWeight, ccmNoStr));
         });
         destinationStatistics.setStatisticsDetailsList(rollHeightStatisticsDetailsList);
         return destinationStatistics;