feat(finance): 接单模板发单金额落规则级成本版本
此前接单平台成本版本只有 sys_work_order_reward 的全局 0 元占位,662 个模板的发单金额从未进入 cost_versions。\n\n现在为 662 个模板各生成一条规则级版本:634 条固定发单金额 + 28 条按件单价;全局 0 元版本仅作“按工单实际结算”占位。成本版本页新增“用户实付均价”和“平均实发/项”,支持按模板名称/规则键搜索,按商品筛选也能命中规则版本。\n\n历史工单快照关联到对应模板版本;模板保存时自动同步单条成本版本;删除模板会先把历史版本脱钩停用,保留快照可追溯。\n\n新增迁移 112 覆盖索引,用户实付聚合从约 1.1s 降到约 150ms。
This commit is contained in:
@@ -19,6 +19,7 @@ import {
|
||||
import {
|
||||
countWorkProductRulesByCategory,
|
||||
deleteWorkProductRule,
|
||||
detachWorkProductRuleCostVersions,
|
||||
getWorkProductRuleById,
|
||||
listOpenWorkOrdersByProductRuleId,
|
||||
listWorkProductRulesPage,
|
||||
@@ -615,6 +616,17 @@ export async function deleteAdminWorkProductRule(ruleId: number | string) {
|
||||
errorCode: 'work_product_rule_id_invalid',
|
||||
})
|
||||
}
|
||||
const rule = await getWorkProductRuleById(normalizedRuleId)
|
||||
if (!rule) {
|
||||
throw createHttpError('物品规则不存在或已删除', {
|
||||
statusCode: 404,
|
||||
errorCode: 'work_product_rule_not_found',
|
||||
})
|
||||
}
|
||||
const detached = await detachWorkProductRuleCostVersions(
|
||||
normalizedRuleId,
|
||||
`${rule.product_name} / ${rule.rule_key}`,
|
||||
)
|
||||
const { deleted } = await deleteWorkProductRule(normalizedRuleId)
|
||||
if (!deleted) {
|
||||
throw createHttpError('物品规则不存在或已删除', {
|
||||
@@ -622,5 +634,5 @@ export async function deleteAdminWorkProductRule(ruleId: number | string) {
|
||||
errorCode: 'work_product_rule_not_found',
|
||||
})
|
||||
}
|
||||
return { deleted }
|
||||
return { deleted, retiredCostVersionCount: detached.updated }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user