feat(selfop): support complete inventory sales windows
This commit is contained in:
@@ -179,8 +179,8 @@ paths:
|
||||
'403': {description: 非平台身份或缺少独立只读权限}
|
||||
/api/platform/v1/last-leg/self-operated-analytics/inventory-coverage:
|
||||
get:
|
||||
summary: 正品库存与固定30日可售天数
|
||||
description: '固定30天,不接受图表周期。可售仅品质0可用量,不扣冻结或加在途次品。先UNKNOWN/INVALID/STALE,再有效零库存为0,再校验正库存单位、窗口、观察期;零销量天数为空。 权限platform:self-operated-analytics:list。'
|
||||
summary: 正品库存与固定10或30日可售天数
|
||||
description: '固定10或30天,不接受图表周期。可售仅品质0可用量,不扣冻结或加在途次品。先UNKNOWN/INVALID/STALE,再有效零库存为0,再校验正库存单位、窗口、观察期;零销量天数为空。 权限platform:self-operated-analytics:list。'
|
||||
parameters:
|
||||
- {$ref: '#/components/parameters/coverageBucket'}
|
||||
- {$ref: '#/components/parameters/bucketRuleVersion'}
|
||||
@@ -189,6 +189,8 @@ paths:
|
||||
- {$ref: '#/components/parameters/attention'}
|
||||
- {$ref: '#/components/parameters/sortBy'}
|
||||
- {$ref: '#/components/parameters/coverageDaysThreshold'}
|
||||
- {name: salesWindowDays, in: query, schema: {type: integer, enum: [10, 30], default: 30}, description: 仅库存明细使用的完整自然日窗口}
|
||||
- {name: salesWindowEndDate, in: query, schema: {type: string, format: date}, description: 含当日的窗口截止日,默认固定查询基准的北京时间昨日;必须早于查询当日,分页须携带原窗口}
|
||||
|
||||
- {$ref: '#/components/parameters/sourceAccount'}
|
||||
- {$ref: '#/components/parameters/warehouseCode'}
|
||||
@@ -211,7 +213,7 @@ paths:
|
||||
properties:
|
||||
code: {type: string}
|
||||
message: {type: string}
|
||||
data: {$ref: '#/components/schemas/MetricPage'}
|
||||
data: {$ref: '#/components/schemas/InventoryMetricPage'}
|
||||
'401': {description: 缺少可信认证身份}
|
||||
'403': {description: 非平台身份或缺少独立只读权限}
|
||||
/api/platform/v1/last-leg/self-operated-analytics/sync-overview:
|
||||
@@ -652,6 +654,37 @@ components:
|
||||
earliestReliableEvidenceAt: {type: string, format: date-time, nullable: true}
|
||||
status: {type: string, nullable: true}
|
||||
reasonCodes: {type: array, items: {type: string}}
|
||||
InventoryMetric:
|
||||
description: 库存独立窗口响应。windowOutboundQuantity为所选完整10或30日销量;未知保持null,零销量状态NO_OUTBOUND_IN_WINDOW不除零。30日专属筛选及总览下钻不能用于10日或历史截止窗口。
|
||||
type: object
|
||||
properties:
|
||||
customerName: {type: string, nullable: true}
|
||||
defectivePhysicalQuantity: {type: number, nullable: true}
|
||||
windowOutboundQuantity: {type: number, nullable: true}
|
||||
lastObservedOutboundDate: {type: string, format: date, nullable: true}
|
||||
observedHistoryStartDate: {type: string, format: date, nullable: true}
|
||||
attentionReasons: {type: array, items: {type: string}}
|
||||
quantityStatuses: {type: object, additionalProperties: {type: string, enum: [VALID, UNKNOWN, STALE]}}
|
||||
sourceAccount: {type: string, nullable: true}
|
||||
customerCode: {type: string, nullable: true}
|
||||
warehouseCode: {type: string, nullable: true}
|
||||
sku: {type: string, nullable: true}
|
||||
productName: {type: string, nullable: true}
|
||||
quantityUnit: {type: string, nullable: true}
|
||||
skuOutboundOrderCount: {type: string, nullable: true}
|
||||
physicalQuantity: {type: number, nullable: true}
|
||||
availableQuantity: {type: number, nullable: true}
|
||||
frozenQuantity: {type: number, nullable: true}
|
||||
transitQuantity: {type: number, nullable: true}
|
||||
inventoryObservedAt: {type: string, format: date-time, nullable: true}
|
||||
averageDailyOutboundQuantity: {type: number, nullable: true}
|
||||
inventoryCoverageDays: {type: number, nullable: true}
|
||||
inventoryQuality: {type: string, nullable: true}
|
||||
salesCoverage: {type: string, nullable: true}
|
||||
observationEligible: {type: boolean, nullable: true}
|
||||
earliestReliableEvidenceAt: {type: string, format: date-time, nullable: true}
|
||||
status: {type: string, nullable: true}
|
||||
reasonCodes: {type: array, items: {type: string}}
|
||||
Protection:
|
||||
type: object
|
||||
properties:
|
||||
@@ -816,6 +849,16 @@ components:
|
||||
total: {type: string, nullable: true}
|
||||
pages: {type: string, nullable: true}
|
||||
excludedReasons: {type: object, additionalProperties: {type: string, nullable: true}}
|
||||
InventoryMetricPage:
|
||||
type: object
|
||||
properties:
|
||||
context: {$ref: '#/components/schemas/Context'}
|
||||
records: {type: array, items: {$ref: '#/components/schemas/InventoryMetric'}}
|
||||
current: {type: integer, nullable: true}
|
||||
size: {type: integer, nullable: true}
|
||||
total: {type: string, nullable: true}
|
||||
pages: {type: string, nullable: true}
|
||||
excludedReasons: {type: object, additionalProperties: {type: string, nullable: true}}
|
||||
TaskPage:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
Reference in New Issue
Block a user