fix(selfop): support inventory and outbound volume sorting
This commit is contained in:
+2
-1
@@ -43,8 +43,9 @@ public record InventoryTurnoverRequest(String sourceAccount, String warehouseCod
|
||||
"OUTBOUND_7_ASC","OUTBOUND_7_DESC","OUTBOUND_15_ASC","OUTBOUND_15_DESC","OUTBOUND_30_ASC","OUTBOUND_30_DESC",
|
||||
"AVERAGE_DAILY_ASC","AVERAGE_DAILY_DESC","COVERAGE_ASC","COVERAGE_DESC",
|
||||
"TRANSIT_ASC","TRANSIT_DESC","FROZEN_ASC","FROZEN_DESC","DEFECTIVE_ASC","DEFECTIVE_DESC","AVERAGE_PHYSICAL_ASC","AVERAGE_PHYSICAL_DESC",
|
||||
"INVENTORY_VOLUME_ASC","INVENTORY_VOLUME_DESC","OUTBOUND_VOLUME_ASC","OUTBOUND_VOLUME_DESC","UNIT_VOLUME_ASC","UNIT_VOLUME_DESC",
|
||||
"TURNOVER_ASC","TURNOVER_DESC","NO_OUTBOUND_PHYSICAL_DESC").contains(sort())
|
||||
|| "OWNER".equals(group())&&sort().startsWith("COVERAGE_")
|
||||
|| "OWNER".equals(group())&&(sort().startsWith("COVERAGE_")||sort().startsWith("UNIT_VOLUME_"))
|
||||
|| "SKU".equals(group())&&"NO_OUTBOUND_PHYSICAL_DESC".equals(sort())) throw new BizException("排序不适用于当前分组");
|
||||
if(page()<1||pageSize()<1||pageSize()>100) throw new BizException("分页范围为current≥1,size为1至100");
|
||||
if(snapshotContext==null&&page()!=1) throw new BizException("翻页必须携带首屏上下文");
|
||||
|
||||
+3
@@ -215,6 +215,9 @@ public final class InventoryTurnoverSql {
|
||||
}
|
||||
private static String order(Input p,boolean owner) {
|
||||
String field=switch(p.query.sort()) {
|
||||
case "INVENTORY_VOLUME_ASC","INVENTORY_VOLUME_DESC" -> "physical_volume";
|
||||
case "OUTBOUND_VOLUME_ASC","OUTBOUND_VOLUME_DESC" -> "w"+p.query.days()+"_outbound_volume";
|
||||
case "UNIT_VOLUME_ASC","UNIT_VOLUME_DESC" -> "unit_volume";
|
||||
case "PHYSICAL_ASC","PHYSICAL_DESC" -> "physical";
|
||||
case "AVAILABLE_ASC","AVAILABLE_DESC" -> "available";
|
||||
case "OUTBOUND_7_ASC","OUTBOUND_7_DESC" -> "w7_outbound";
|
||||
|
||||
@@ -41,8 +41,8 @@ paths:
|
||||
- {name: turnoverStatus, in: query, schema: {type: string, enum: [INSUFFICIENT]}}
|
||||
- name: sortBy
|
||||
in: query
|
||||
description: 'OWNER禁止COVERAGE_ASC/DESC,SKU禁止NO_OUTBOUND_PHYSICAL_DESC。全量筛选后按正式未舍入值排序再分页,未知值始终末尾,同值按SKU及货主升序。AVERAGE_DAILY使用baseWindowDays指定的日均窗口。'
|
||||
schema: {type: string, default: PHYSICAL_DESC, enum: [PHYSICAL_ASC, PHYSICAL_DESC, AVAILABLE_ASC, AVAILABLE_DESC, OUTBOUND_7_ASC, OUTBOUND_7_DESC, OUTBOUND_15_ASC, OUTBOUND_15_DESC, OUTBOUND_30_ASC, OUTBOUND_30_DESC, AVERAGE_DAILY_ASC, AVERAGE_DAILY_DESC, COVERAGE_ASC, COVERAGE_DESC, TRANSIT_ASC, TRANSIT_DESC, FROZEN_ASC, FROZEN_DESC, DEFECTIVE_ASC, DEFECTIVE_DESC, AVERAGE_PHYSICAL_ASC, AVERAGE_PHYSICAL_DESC, TURNOVER_ASC, TURNOVER_DESC, NO_OUTBOUND_PHYSICAL_DESC]}
|
||||
description: 'OWNER禁止COVERAGE_ASC/DESC及UNIT_VOLUME_ASC/DESC,SKU禁止NO_OUTBOUND_PHYSICAL_DESC。全量筛选后按正式未舍入值排序再分页,未知值始终末尾,同值按SKU及货主升序。AVERAGE_DAILY及OUTBOUND_VOLUME使用baseWindowDays指定的窗口;体积按正式值排序,不使用已知小计。'
|
||||
schema: {type: string, default: PHYSICAL_DESC, enum: [PHYSICAL_ASC, PHYSICAL_DESC, AVAILABLE_ASC, AVAILABLE_DESC, OUTBOUND_7_ASC, OUTBOUND_7_DESC, OUTBOUND_15_ASC, OUTBOUND_15_DESC, OUTBOUND_30_ASC, OUTBOUND_30_DESC, AVERAGE_DAILY_ASC, AVERAGE_DAILY_DESC, COVERAGE_ASC, COVERAGE_DESC, TRANSIT_ASC, TRANSIT_DESC, FROZEN_ASC, FROZEN_DESC, DEFECTIVE_ASC, DEFECTIVE_DESC, AVERAGE_PHYSICAL_ASC, AVERAGE_PHYSICAL_DESC, TURNOVER_ASC, TURNOVER_DESC, INVENTORY_VOLUME_ASC, INVENTORY_VOLUME_DESC, OUTBOUND_VOLUME_ASC, OUTBOUND_VOLUME_DESC, UNIT_VOLUME_ASC, UNIT_VOLUME_DESC, NO_OUTBOUND_PHYSICAL_DESC]}
|
||||
- {name: current, in: query, schema: {type: integer, minimum: 1, default: 1}}
|
||||
- {name: size, in: query, schema: {type: integer, minimum: 1, maximum: 100, default: 20}}
|
||||
- {name: includeOverview, in: query, schema: {type: boolean, default: true}}
|
||||
|
||||
Reference in New Issue
Block a user