diff --git a/firstleg/src/main/java/com/baiyue/firstleg/mapper/SmartLoadingCandidateMapper.java b/firstleg/src/main/java/com/baiyue/firstleg/mapper/SmartLoadingCandidateMapper.java index d6610dbbd..70f787c00 100644 --- a/firstleg/src/main/java/com/baiyue/firstleg/mapper/SmartLoadingCandidateMapper.java +++ b/firstleg/src/main/java/com/baiyue/firstleg/mapper/SmartLoadingCandidateMapper.java @@ -15,7 +15,6 @@ import com.baiyue.firstleg.dto.SmartLoadingDtos.Candidate; import org.apache.iba @Select(""" SELECT o.tenant_id accountId,o.id inboundId,i.inbound_detail_id inboundDetailId, o.order_id orderId,o.order_no orderNo,o.inbound_code inboundCode, - o.order_status_snapshot orderStatusSnapshot,o.expected_arrival_at expectedArrivalAt, o.warehouse_id warehouseId,o.channel_code channelCode,o.channel_name channelName,o.destination_warehouse_id destinationWarehouseId, o.destination_code destinationWarehouseCode,o.destination_name destinationWarehouseName, o.customer_name customerName,COALESCE(m.actual_goods_name,'') goodsName, @@ -32,7 +31,8 @@ import com.baiyue.firstleg.dto.SmartLoadingDtos.Candidate; import org.apache.iba COALESCE(o.actual_net_weight_kg / NULLIF(o.total_package_count, 0), 0) unitNetWeightKg, COALESCE(i.unit_volume_cbm,0) unitVolumeCbm, NULL coLoadGroupId,NULL groupNo,NULL memberCount,NULL groupTotalBoxes, - NULL locked,NULL blockReason + NULL locked,NULL blockReason, + o.order_status_snapshot orderStatusSnapshot,o.expected_arrival_at expectedArrivalAt FROM fl_inbound_order o JOIN fl_inbound_measurement m ON m.tenant_id=o.tenant_id AND m.inbound_id=o.id AND m.status='APPROVED' @@ -65,7 +65,6 @@ import com.baiyue.firstleg.dto.SmartLoadingDtos.Candidate; import org.apache.iba @Select(""" SELECT o.tenant_id accountId,o.id inboundId,i.inbound_detail_id inboundDetailId, o.order_id orderId,o.order_no orderNo,o.inbound_code inboundCode, - o.order_status_snapshot orderStatusSnapshot,o.expected_arrival_at expectedArrivalAt, o.warehouse_id warehouseId,o.channel_code channelCode,o.channel_name channelName,o.destination_warehouse_id destinationWarehouseId, o.destination_code destinationWarehouseCode,o.destination_name destinationWarehouseName, o.customer_name customerName,COALESCE(m.actual_goods_name,'') goodsName, @@ -82,7 +81,8 @@ import com.baiyue.firstleg.dto.SmartLoadingDtos.Candidate; import org.apache.iba COALESCE(o.actual_net_weight_kg / NULLIF(o.total_package_count, 0), 0) unitNetWeightKg, COALESCE(i.unit_volume_cbm,0) unitVolumeCbm, NULL coLoadGroupId,NULL groupNo,NULL memberCount,NULL groupTotalBoxes, - NULL locked,NULL blockReason + NULL locked,NULL blockReason, + o.order_status_snapshot orderStatusSnapshot,o.expected_arrival_at expectedArrivalAt FROM fl_inbound_order o JOIN fl_inbound_measurement m ON m.tenant_id=o.tenant_id AND m.inbound_id=o.id AND m.status='APPROVED' diff --git a/firstleg/src/test/java/com/baiyue/firstleg/repository/SmartLoadingCandidateMapperContractTest.java b/firstleg/src/test/java/com/baiyue/firstleg/repository/SmartLoadingCandidateMapperContractTest.java index 83114096f..543c01425 100644 --- a/firstleg/src/test/java/com/baiyue/firstleg/repository/SmartLoadingCandidateMapperContractTest.java +++ b/firstleg/src/test/java/com/baiyue/firstleg/repository/SmartLoadingCandidateMapperContractTest.java @@ -16,6 +16,17 @@ class SmartLoadingCandidateMapperContractTest { .satisfies(constructor -> assertThat(constructor.getParameterCount()).isEqualTo(26)); } + @Test + void candidateSelectColumnsFollowTheCanonicalConstructorOrder() throws Exception { + Method list = SmartLoadingCandidateMapper.class.getDeclaredMethod("candidates", long.class); + String sql = String.join(" ", list.getAnnotation(Select.class).value()); + + assertThat(sql.indexOf("NULL locked,NULL blockReason")) + .isLessThan(sql.indexOf("o.order_status_snapshot orderStatusSnapshot")); + assertThat(sql.indexOf("o.order_status_snapshot orderStatusSnapshot")) + .isLessThan(sql.indexOf("o.expected_arrival_at expectedArrivalAt")); + } + @Test void selectsLatestApprovedBatch() throws Exception { Method list = SmartLoadingCandidateMapper.class.getDeclaredMethod("candidates", long.class);