feat: allow shared dropship pallets
This commit is contained in:
+15
@@ -61,4 +61,19 @@ class DropshipPalletizationSqlContractTest {
|
||||
.contains("DROP INDEX uk_loading_item_plan_detail")
|
||||
.contains("ADD UNIQUE KEY uk_loading_item_plan_assignment (loading_plan_id,active_assignment_key)");
|
||||
}
|
||||
|
||||
@Test
|
||||
void sharedPalletsAreVisibleAndOnlyParticipatingOpenPalletsBlockCompletion() throws Exception {
|
||||
String pallets = DropshipPalletizationMapper.class.getDeclaredMethod("pallets", long.class)
|
||||
.getAnnotation(Select.class).value()[0];
|
||||
String open = DropshipPalletizationMapper.class.getDeclaredMethod("openPalletCount", long.class)
|
||||
.getAnnotation(Select.class).value()[0];
|
||||
String complete = DropshipPalletizationMapper.class.getDeclaredMethod("completeTask", long.class)
|
||||
.getAnnotation(org.apache.ibatis.annotations.Update.class).value()[0];
|
||||
|
||||
assertThat(pallets).contains("c.pallet_id=p.id AND c.task_id=#{taskId}");
|
||||
assertThat(open).contains("fl_dropship_pallet_carton c").contains("c.task_id=#{taskId}");
|
||||
assertThat(complete).contains("fl_dropship_pallet_carton c JOIN fl_dropship_pallet p")
|
||||
.doesNotContain("p.task_id=#{taskId}");
|
||||
}
|
||||
}
|
||||
|
||||
+18
@@ -53,6 +53,24 @@ class DropshipPalletizationServiceTest {
|
||||
verify(mapper).insertCartonSku(anyLong(),anyLong(),eq(40L),eq("SKU-1"),any(),eq(12),eq(12),eq("MATCH"),isNull(),eq(1));
|
||||
}
|
||||
|
||||
@Test void cartonCanBindToAnOpenPalletGeneratedForAnotherTaskInTheSameWarehouse(){
|
||||
TaskRow current=task(); PalletRow shared=pallet(); shared.setTaskId(99L); shared.setTenantId(2L); shared.setInboundId(88L);
|
||||
when(mapper.task(10L,100L)).thenReturn(current); when(mapper.palletCount(10L)).thenReturn(2);
|
||||
when(mapper.label(10L,"BOX-1")).thenReturn(label()); when(mapper.palletByNo("DP-260911-0001")).thenReturn(shared);
|
||||
when(mapper.addCounted(10L,7L,1,0)).thenReturn(1); when(mapper.carton(eq(10L),anyLong())).thenReturn(carton());
|
||||
when(mapper.pallet(10L,20L,100L)).thenReturn(shared); when(mapper.cartons(20L)).thenReturn(java.util.List.of());
|
||||
service.countCarton(10L,countRequest("DP-260911-0001"),7L,"张三");
|
||||
verify(mapper).insertCarton(anyLong(),eq(10L),eq(20L),eq(1L),eq(30L),anyLong(),anyLong(),anyString(),any(),eq("BOX-1"),anyInt(),anyInt(),eq("MATCH"),isNull(),eq("op-1"),eq(7L),eq("张三"));
|
||||
}
|
||||
|
||||
@Test void palletFromAnotherWarehouseCannotBeMixed(){
|
||||
PalletRow other=pallet(); other.setWarehouseId(101L);
|
||||
when(mapper.task(10L,100L)).thenReturn(task()); when(mapper.palletCount(10L)).thenReturn(2);
|
||||
when(mapper.label(10L,"BOX-1")).thenReturn(label()); when(mapper.palletByNo("DP-260911-0001")).thenReturn(other);
|
||||
assertThatThrownBy(()->service.countCarton(10L,countRequest("DP-260911-0001"),7L,"张三"))
|
||||
.isInstanceOf(BizException.class).hasMessageContaining("当前作业仓库");
|
||||
}
|
||||
|
||||
@Test void unknownPalletCodeCannotCreateAnAdHocPallet(){
|
||||
when(mapper.task(10L,100L)).thenReturn(task()); when(mapper.palletCount(10L)).thenReturn(2); when(mapper.label(10L,"BOX-1")).thenReturn(label());
|
||||
var request=countRequest("DP-260911-9999");
|
||||
|
||||
Reference in New Issue
Block a user