diff --git a/firstleg/src/main/java/com/baiyue/firstleg/mapper/LoadingPickItemMapper.java b/firstleg/src/main/java/com/baiyue/firstleg/mapper/LoadingPickItemMapper.java index be2eb98fd..5ce20ed4c 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/mapper/LoadingPickItemMapper.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/mapper/LoadingPickItemMapper.java @@ -32,6 +32,10 @@ public interface LoadingPickItemMapper extends BaseMapper AND label.inbound_id = plan_item.inbound_id AND label.inbound_detail_id = plan_item.inbound_detail_id AND label.batch_status = 'ACTIVE' + AND (plan_item.unit_type <> 'SEALED_PALLET' + OR EXISTS (SELECT 1 FROM fl_dropship_pallet_carton pallet_carton + WHERE pallet_carton.pallet_id = plan_item.pallet_id + AND pallet_carton.carton_label_id = label.id)) WHERE pick_item.pick_task_id = #{taskId} AND plan_item.deleted = 0 ORDER BY pick_item.id, label.carton_index """) diff --git a/firstleg/src/test/java/com/baiyue/firstleg/repository/LoadingPickPdaTaskSqlContractTest.java b/firstleg/src/test/java/com/baiyue/firstleg/repository/LoadingPickPdaTaskSqlContractTest.java index 20799bb0b..33025c9b1 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/repository/LoadingPickPdaTaskSqlContractTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/repository/LoadingPickPdaTaskSqlContractTest.java @@ -73,6 +73,19 @@ class LoadingPickPdaTaskSqlContractTest { .contains("label.box_code AS boxCode"); } + @Test + void sealedPalletCartonsAreRestrictedToTheirPhysicalPalletMembership() throws Exception { + String sql = LoadingPickItemMapper.class + .getDeclaredMethod("selectTaskCartonLabels", long.class) + .getAnnotation(Select.class).value()[0]; + + assertThat(sql) + .contains("plan_item.unit_type <> 'SEALED_PALLET'") + .contains("fl_dropship_pallet_carton pallet_carton") + .contains("pallet_carton.pallet_id = plan_item.pallet_id") + .contains("pallet_carton.carton_label_id = label.id"); + } + @Test void taskDetailResolvesOnlyTheActiveBookingOwnedByItsCurrentPlan() throws Exception { String sql = LoadingPickTaskMapper.class