fix(selfop): support inventory and outbound volume sorting

This commit is contained in:
2026-10-14 18:11:02 +08:00
parent 8bc8518496
commit 7079455eb0
4 changed files with 32 additions and 3 deletions
@@ -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("翻页必须携带首屏上下文");
@@ -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";