fix: ignore empty loading links during completion
This commit is contained in:
+9
-9
@@ -193,24 +193,24 @@ public class LoadingModelBridgeService {
|
||||
}
|
||||
|
||||
public void requireStarted(long tenantId, long inboundId) {
|
||||
List<Link> links = requireLinks(tenantId, inboundId);
|
||||
if (links.stream().anyMatch(link -> link.allocatedPackageCount() == null || link.allocatedPackageCount() <= 0
|
||||
|| !Set.of("LOADING", "COMPLETED").contains(link.loadingPlanStatus()))) {
|
||||
List<Link> links = requireAllocatedLinks(tenantId, inboundId);
|
||||
if (links.stream().anyMatch(link -> !Set.of("LOADING", "COMPLETED").contains(link.loadingPlanStatus()))) {
|
||||
throw conflict("关联柜次尚未全部开始装柜");
|
||||
}
|
||||
}
|
||||
|
||||
public void requireCompleted(long tenantId, long inboundId) {
|
||||
List<Link> links = requireLinks(tenantId, inboundId);
|
||||
if (links.stream().anyMatch(link -> link.allocatedPackageCount() == null || link.allocatedPackageCount() <= 0
|
||||
|| !"COMPLETED".equals(link.loadingPlanStatus()))) {
|
||||
List<Link> links = requireAllocatedLinks(tenantId, inboundId);
|
||||
if (links.stream().anyMatch(link -> !"COMPLETED".equals(link.loadingPlanStatus()))) {
|
||||
throw conflict("关联柜次尚未全部完成装柜");
|
||||
}
|
||||
}
|
||||
|
||||
private List<Link> requireLinks(long tenantId, long inboundId) {
|
||||
List<Link> links = repository.byInbound(tenantId, inboundId);
|
||||
if (links.isEmpty()) throw conflict("入库单尚未关联柜次装柜计划");
|
||||
private List<Link> requireAllocatedLinks(long tenantId, long inboundId) {
|
||||
List<Link> links = repository.byInbound(tenantId, inboundId).stream()
|
||||
.filter(link -> link.allocatedPackageCount() != null && link.allocatedPackageCount() > 0)
|
||||
.toList();
|
||||
if (links.isEmpty()) throw conflict("入库单尚未关联有效柜次装柜计划");
|
||||
return links;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user