diff --git a/lastleg-service/src/main/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuard.java b/lastleg-service/src/main/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuard.java index a21ab4c43..81e541903 100644 --- a/lastleg-service/src/main/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuard.java +++ b/lastleg-service/src/main/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuard.java @@ -29,7 +29,6 @@ public class OverseasFeeBusinessGuard { (result, rowNum) -> new ContainerCustomerOption( result.getString("customer_id"), result.getString("customer_name")), String.valueOf(containerBookingId)); - if (customers.isEmpty()) throw bad("真实货柜不存在或尚无尾程订单"); return customers; } diff --git a/lastleg-service/src/main/resources/openapi/overseas-finance-fees-v1.yaml b/lastleg-service/src/main/resources/openapi/overseas-finance-fees-v1.yaml index d127c85a5..0e511069e 100644 --- a/lastleg-service/src/main/resources/openapi/overseas-finance-fees-v1.yaml +++ b/lastleg-service/src/main/resources/openapi/overseas-finance-fees-v1.yaml @@ -21,13 +21,13 @@ paths: /api/platform/v1/last-leg/finance-fee-sources/container-customers: get: summary: 查询真实来源柜内客户选项 - description: 单次按真实来源柜聚合全部客户,供柜详情维护费用时选择,不逐票查询。 + description: 单次按真实来源柜聚合全部客户,供柜详情维护费用时选择,不逐票查询;货柜不存在或尚无尾程订单时返回空列表。 security: [{ bearerAuth: [] }] parameters: - { in: query, name: containerBookingId, required: true, schema: { type: string, pattern: '^[1-9][0-9]*$' } } responses: '200': - description: 柜内客户选项 + description: 柜内客户选项;无数据时data为空数组 content: application/json: schema: { $ref: '#/components/schemas/ContainerCustomerListResponse' } diff --git a/lastleg-service/src/test/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuardTest.java b/lastleg-service/src/test/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuardTest.java index d91032261..df390eb6c 100644 --- a/lastleg-service/src/test/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuardTest.java +++ b/lastleg-service/src/test/java/com/baiyue/lastleg/financefee/service/OverseasFeeBusinessGuardTest.java @@ -80,6 +80,16 @@ class OverseasFeeBusinessGuardTest { assertThat(jdbc.sql()).singleElement().asString().contains("GROUP BY customer_id"); } + @Test + void returnsEmptyWhenContainerHasNoLastlegOrders() { + StubJdbc jdbc = new StubJdbc(); + + var result = new OverseasFeeBusinessGuard(jdbc).listContainerCustomers(701L); + + assertThat(result).isEmpty(); + assertThat(jdbc.sql()).singleElement().asString().contains("source_container_booking_id"); + } + static SaveRequest containerFee(String customerId, Long bookingId, String containerNo) { return new SaveRequest(customerId, "客户A", "OVERSEAS_CONTAINER_FEE", "OVERSEAS_CONTAINER", bookingId, containerNo, null, null, null, null, bookingId, containerNo, 91L,