优化
This commit is contained in:
@@ -21,12 +21,9 @@ public interface LastlegOrderMapper extends BaseMapper<LastlegOrder> {
|
||||
"<if test='q.createdFrom != null'>AND o.created_at >=#{q.createdFrom} </if>" +
|
||||
"<if test='q.createdTo != null'>AND o.created_at <=#{q.createdTo} </if>" +
|
||||
"GROUP BY o.source_container_booking_id " +
|
||||
"HAVING SUM(CASE WHEN NULLIF(TRIM(o.inbound_code),'') IS NULL THEN 1 ELSE 0 END)>0 " +
|
||||
"OR SUM(CASE WHEN p.id IS NULL OR NULLIF(TRIM(p.plan_no),'') IS NULL " +
|
||||
"OR NULLIF(TRIM(p.status),'') IS NULL THEN 1 ELSE 0 END)>0 " +
|
||||
"OR COUNT(DISTINCT p.id)<>COUNT(*) " +
|
||||
"OR COUNT(NULLIF(o.container_no,''))<>COUNT(*) " +
|
||||
"OR COUNT(DISTINCT NULLIF(o.container_no,''))<>1 ";
|
||||
"HAVING COUNT(DISTINCT CASE WHEN p.id IS NOT NULL AND NULLIF(TRIM(p.plan_no),'') IS NOT NULL " +
|
||||
"AND NULLIF(TRIM(p.status),'') IS NOT NULL THEN NULLIF(TRIM(o.inbound_code),'') END) " +
|
||||
"< COUNT(DISTINCT NULLIF(TRIM(o.inbound_code),'')) ";
|
||||
|
||||
String CONTAINER_PROGRESS_COLUMNS = "SELECT o.source_container_booking_id AS sourceContainerBookingId," +
|
||||
"CASE WHEN COUNT(NULLIF(o.container_no,''))=COUNT(*) AND COUNT(DISTINCT NULLIF(o.container_no,''))=1 " +
|
||||
|
||||
@@ -170,7 +170,7 @@ paths:
|
||||
/api/platform/v1/last-leg/orders/container-summaries:
|
||||
get:
|
||||
summary: 分页查询柜级入库计划进度
|
||||
description: 权限 platform:overseas-warehouse:order:list;平台跨客户按稳定 sourceContainerBookingId 服务端聚合,不受订单分页影响,仅返回 allPlansReady=false 的待处理柜,已全部生成有效独立计划的柜在分页前排除。containerNo 只返回装柜完成事件携带并规范化冻结的真实集装箱号,不从 cabinetNo、订单号或内部 ID 推导。plannedArrivalAt 仅来自装柜完成事件 estimatedWarehouseArrivalAt 冻结的 ll_order.estimated_warehouse_at;按该时间升序、null 最后、稳定柜 ID 升序。
|
||||
description: 权限 platform:overseas-warehouse:order:list;平台跨客户按稳定 sourceContainerBookingId 服务端聚合,不受订单分页影响,仅返回仍有入仓码待生成有效独立计划的柜,全部入仓码均已生成有效独立计划的柜在分页前排除。containerNo 只返回装柜完成事件携带并规范化冻结的真实集装箱号,不从 cabinetNo、订单号或内部 ID 推导。plannedArrivalAt 仅来自装柜完成事件 estimatedWarehouseArrivalAt 冻结的 ll_order.estimated_warehouse_at;按该时间升序、null 最后、稳定柜 ID 升序。
|
||||
security: [{ bearerAuth: [] }]
|
||||
parameters:
|
||||
- { name: page, in: query, schema: { type: integer, minimum: 1, default: 1 } }
|
||||
|
||||
+5
-4
@@ -38,8 +38,8 @@ class ContainerPlanProgressContractTest {
|
||||
String sql = String.join("", rows.value()).toLowerCase();
|
||||
assertTrue(sql.contains("left join ll_inbound_plan"));
|
||||
assertTrue(sql.contains("o.estimated_warehouse_at"));
|
||||
assertTrue(sql.contains("having sum(case when nullif(trim(o.inbound_code),'') is null then 1 else 0 end)>0"));
|
||||
assertTrue(sql.contains("or count(distinct p.id)<>count(*)"));
|
||||
assertTrue(sql.contains("having count(distinct case when p.id is not null"));
|
||||
assertTrue(sql.contains("< count(distinct nullif(trim(o.inbound_code),''))"));
|
||||
assertTrue(sql.contains("progress.plannedarrivalat asc"));
|
||||
assertTrue(sql.contains("progress.sourcecontainerbookingid asc"));
|
||||
assertTrue(sql.contains("limit #{limit} offset #{offset}"));
|
||||
@@ -56,7 +56,7 @@ class ContainerPlanProgressContractTest {
|
||||
assertTrue(openApi.contains("/api/platform/v1/last-leg/orders/container-summaries/{sourceContainerBookingId}:"));
|
||||
assertTrue(openApi.contains("ContainerPlanProgressSummary:"));
|
||||
assertTrue(openApi.contains("allPlansReady:"));
|
||||
assertTrue(openApi.contains("仅返回 allPlansReady=false 的待处理柜"));
|
||||
assertTrue(openApi.contains("仅返回仍有入仓码待生成有效独立计划的柜"));
|
||||
assertTrue(openApi.contains("ll_order.estimated_warehouse_at"));
|
||||
assertTrue(schema.contains("idx_ll_order_container_progress(source_container_booking_id,estimated_warehouse_at,created_at,id)"));
|
||||
assertTrue(deployment.contains("idx_ll_order_container_progress(source_container_booking_id,estimated_warehouse_at,created_at,id)"));
|
||||
@@ -75,7 +75,8 @@ class ContainerPlanProgressContractTest {
|
||||
|
||||
assertTrue(sql.contains("source_container_booking_id<>''"));
|
||||
assertTrue(sql.contains("LEFT JOIN ll_inbound_plan"));
|
||||
assertTrue(sql.contains("HAVING SUM(CASE WHEN NULLIF(TRIM(o.inbound_code),'') IS NULL THEN 1 ELSE 0 END)>0"));
|
||||
assertTrue(sql.contains("HAVING COUNT(DISTINCT CASE WHEN p.id IS NOT NULL"));
|
||||
assertTrue(sql.contains("< COUNT(DISTINCT NULLIF(TRIM(o.inbound_code),''))"));
|
||||
assertTrue(!sql.contains("<"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user