feat(scheduler): 六个财务管道作业,模板改价即同步成本版本

- channel_assign / carrier_dispatch / product_normalize / cost_snapshot / sales_facts / ledger_post
- 每个作业只写自己那一层,失败互不影响,可单独启停
- 接单模板保存后自动同步规则级成本版本,失败不阻塞模板保存
This commit is contained in:
yml2213
2026-10-31 18:12:19 +08:00
parent 3b0cfbb8fa
commit 75a3801236
5 changed files with 461 additions and 0 deletions
@@ -27,6 +27,7 @@ import {
upsertWorkProductRule,
} from '../../repositories/worker-platform/work-product-rule-repo.js'
import type { WorkOrderRow, WorkProductRuleRow } from '../../repositories/worker-platform/types.js'
import { syncAdminWorkOrderTemplateCostVersions } from '../cost-center/work-order-product-service.js'
import {
normalizeWorkOrderAcceptanceMode,
normalizeWorkOrderGiftCooldownHours,
@@ -531,6 +532,17 @@ export async function saveAdminWorkProductRule(payload: JsonObject = {}) {
sortOrder: normalizeInteger(payload.sortOrder, 100),
now: nowIso(),
})
// 模板价格变更即同步成本版本(事件驱动);失败不阻塞模板保存,
// 夜间巡检与后台「同步发单金额」按钮仍可修复。
if (rule) {
try {
await syncAdminWorkOrderTemplateCostVersions(rule.id)
} catch {
// 成本版本同步失败不允许影响模板本身;由巡检补齐。
}
}
return { rule: mapWorkProductRule(rule) }
}