重构:硬切履约路由唯一真源
This commit is contained in:
@@ -18,6 +18,7 @@ async function main() {
|
||||
orphanManualProducts,
|
||||
multiplePrimaryRoutes,
|
||||
missingInternalSku,
|
||||
unroutedProducts,
|
||||
invalidSourceKinds,
|
||||
] = await Promise.all([
|
||||
query<{ source_kind: string; primary_channel: string | null; total: number }>(
|
||||
@@ -46,7 +47,9 @@ async function main() {
|
||||
SELECT
|
||||
CASE
|
||||
WHEN primary_route.channel = 'manual' THEN 'primary_manual'
|
||||
WHEN manual_route.route_role = 'fallback' THEN 'manual_fallback'
|
||||
WHEN primary_route.channel IS NOT NULL
|
||||
AND manual_route.route_role = 'fallback' THEN 'manual_fallback'
|
||||
WHEN manual_route.route_role = 'fallback' THEN 'fallback_without_primary'
|
||||
ELSE 'missing_manual_route'
|
||||
END AS route_state,
|
||||
COUNT(*)::int AS total
|
||||
@@ -123,6 +126,19 @@ async function main() {
|
||||
ORDER BY 1
|
||||
`,
|
||||
),
|
||||
query<{
|
||||
product_id: number
|
||||
canonical_sku: string
|
||||
canonical_name: string
|
||||
source_kind: string
|
||||
}>(
|
||||
`
|
||||
SELECT id AS product_id, canonical_sku, canonical_name, source_kind
|
||||
FROM v_product_current
|
||||
WHERE status = 'active' AND active_primary_channel IS NULL
|
||||
ORDER BY source_kind, id
|
||||
`,
|
||||
),
|
||||
query<{ source_kind: string; total: number }>(
|
||||
`
|
||||
SELECT source_kind, COUNT(*)::int AS total
|
||||
@@ -146,6 +162,11 @@ async function main() {
|
||||
multiplePrimaryRoutes: multiplePrimaryRoutes.rows.length,
|
||||
missingInternalSku: missingInternalSku.rows.reduce((sum, row) => sum + Number(row.total), 0),
|
||||
invalidSourceKinds: invalidSourceKinds.rows.reduce((sum, row) => sum + Number(row.total), 0),
|
||||
invalidManualConfigRoutes: manualConfigRoutes.rows
|
||||
.filter(
|
||||
(row) => row.route_state !== 'primary_manual' && row.route_state !== 'manual_fallback',
|
||||
)
|
||||
.reduce((sum, row) => sum + Number(row.total), 0),
|
||||
}
|
||||
|
||||
console.info('[product-routing-audit] 商品来源 × 当前渠道')
|
||||
@@ -169,6 +190,9 @@ async function main() {
|
||||
console.info('[product-routing-audit] 非法商品来源')
|
||||
console.table(invalidSourceKinds.rows)
|
||||
|
||||
console.info('[product-routing-audit] 未路由活动商品(待人工分类)')
|
||||
console.table(unroutedProducts.rows)
|
||||
|
||||
console.info('[product-routing-audit] 关键异常', critical)
|
||||
if (strict && Object.values(critical).some((count) => count > 0)) {
|
||||
process.exitCode = 1
|
||||
|
||||
Reference in New Issue
Block a user