|
@@ -77,6 +77,7 @@ import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
+import java.util.stream.IntStream;
|
|
import java.util.stream.Stream;
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -2143,11 +2144,15 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
|
|
.collect(Collectors.toList()); // 收集结果到新列表
|
|
.collect(Collectors.toList()); // 收集结果到新列表
|
|
|
|
|
|
// 按assemblyNumber分组,并检查每组数量是否都为4
|
|
// 按assemblyNumber分组,并检查每组数量是否都为4
|
|
- boolean hasAnyGroupSizeFour = notUsedBilletBasicInfoList.stream()
|
|
|
|
- .collect(Collectors.groupingBy(BilletBasicInfo::getAssemblyNumber, Collectors.counting()))
|
|
|
|
- .values()
|
|
|
|
- .stream()
|
|
|
|
- .anyMatch(count -> count == 4); // 使用anyMatch检查是否存在数量为4的组
|
|
|
|
|
|
+// boolean hasAnyGroupSizeFour = notUsedBilletBasicInfoList.stream()
|
|
|
|
+// .collect(Collectors.groupingBy(BilletBasicInfo::getAssemblyNumber, Collectors.counting()))
|
|
|
|
+// .values()
|
|
|
|
+// .stream()
|
|
|
|
+// .anyMatch(count -> count == 4); // 使用anyMatch检查是否存在数量为4的组
|
|
|
|
+
|
|
|
|
+ // 按每4个元素为一组进行划分、同一炉
|
|
|
|
+ boolean hasAnyGroupSizeFour = hasValidHeatNoGroup(notUsedBilletBasicInfoList, 4);
|
|
|
|
+
|
|
heatsActualsInfo.setOperateStatus(hasAnyGroupSizeFour);
|
|
heatsActualsInfo.setOperateStatus(hasAnyGroupSizeFour);
|
|
|
|
|
|
heatsActualsInfoList.add(heatsActualsInfo);
|
|
heatsActualsInfoList.add(heatsActualsInfo);
|
|
@@ -2155,7 +2160,6 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
|
|
return Result.OK(heatsActualsInfoList);
|
|
return Result.OK(heatsActualsInfoList);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
@ApiOperation(value="浇筑炉次-定尺更新", notes="浇筑炉次-定尺更新")
|
|
@ApiOperation(value="浇筑炉次-定尺更新", notes="浇筑炉次-定尺更新")
|
|
@RequestMapping(value = "/editBilletBasicInfoLength", method = {RequestMethod.PUT})
|
|
@RequestMapping(value = "/editBilletBasicInfoLength", method = {RequestMethod.PUT})
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -2375,4 +2379,34 @@ public class StorageBillController extends JeecgController<StorageBill, IStorage
|
|
return (int) count;
|
|
return (int) count;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 检查列表是否存在符合条件的分组:
|
|
|
|
+ * 1. 按每4个元素为一组进行划分
|
|
|
|
+ * 2. 每组内所有元素的炉号(heatNo)必须一致
|
|
|
|
+ *
|
|
|
|
+ * @param billetList 待检查的钢坯信息列表
|
|
|
|
+ * @return 存在符合条件的分组返回true,否则返回false
|
|
|
|
+ */
|
|
|
|
+ private boolean hasValidHeatNoGroup(List<BilletBasicInfo> billetList, int groupSize) {
|
|
|
|
+ if (billetList == null || billetList.size() < groupSize) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ int fullGroups = billetList.size() / groupSize;
|
|
|
|
+ for (int i = 0; i < fullGroups; i++) {
|
|
|
|
+ List<BilletBasicInfo> group = billetList.subList(i * groupSize, (i + 1) * groupSize);
|
|
|
|
+ String firstHeatNo = group.get(0).getHeatNo();
|
|
|
|
+ boolean allSameHeatNo = true;
|
|
|
|
+ for (BilletBasicInfo item : group) {
|
|
|
|
+ if (!item.getHeatNo().equals(firstHeatNo)) {
|
|
|
|
+ allSameHeatNo = false;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (allSameHeatNo) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|