fix(appointment): exclude cancelled batches without active allocations
This commit is contained in:
+7
-2
@@ -60,14 +60,19 @@ class AppointmentWorkSyncServiceTest {
|
||||
when(f.gateway.discover(null,10)).thenReturn(new SourcePage(List.of(container),null,true,"scope"));
|
||||
assertThrows(ResponseStatusException.class,()->f.sync.synchronize(new SyncRequest(null,10)));
|
||||
}
|
||||
/** 空取消批次回到原货源时退役客户送仓及运输事项,并使版本门禁恢复可读。 */
|
||||
@Test void cancellationReopensOriginalDemandAndRestoringTheSameAppointmentDoesNotDuplicateWork() {
|
||||
var f=new WorkTestFixture();
|
||||
var root=new Requirement("INBOUND:1",null,null,"FBA",null,"ONT8",null,List.of(),List.of("FBA_APPOINTMENT:1"),List.of());
|
||||
var batch=new Requirement("FBA_APPOINTMENT:1","FBA_APPOINTMENT:1","AP-1","FBA",null,"ONT8",null,List.of(),List.of("INBOUND:1"),List.of(new SourceReference("C","ORDER:1","FBA:ONT8")));
|
||||
var refs=List.of(new SourceReference("C","ORDER:1","FBA:ONT8"));
|
||||
var root=new Requirement("INBOUND:1",null,null,"FBA",null,"ONT8",null,List.of(),List.of("FBA_APPOINTMENT:1","FBA_APPOINTMENT:1|CUSTOMER:C"),refs);
|
||||
var batch=new Requirement("FBA_APPOINTMENT:1|CUSTOMER:C","FBA_APPOINTMENT:1","AP-1","FBA",null,"ONT8",null,List.of(),List.of("INBOUND:1"),refs);
|
||||
for(var requirement:List.of(root,batch,root,batch)) {
|
||||
f.guard.setRequirementVersion(f.guard.getRequirementVersion()+1);
|
||||
assertThrows(ResponseStatusException.class,f.store::requireInitialized);
|
||||
var source=new ContainerSource("1","CNT",null,LocalDateTime.parse("2026-10-01T10:00:00"),null,"v1",Flow.TRANSFER,null,List.of(requirement));
|
||||
when(f.gateway.discover(null,10)).thenReturn(new SourcePage(List.of(source),null,true,"scope"));
|
||||
f.sync.synchronize(new SyncRequest(null,10));
|
||||
assertDoesNotThrow(f.store::requireInitialized);
|
||||
var deliveries=f.store.all().stream().filter(s->s.getType()==Type.DELIVERY && !s.isRetired()).toList();
|
||||
assertEquals(1,deliveries.size()); assertEquals(requirement.requirementKey(),deliveries.get(0).getRequirementKey());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user