Files
RiskAgent/migrations/1730000016000_redline_computable.cjs
T
freedakgmail c670b9e454 外包风险评估系统:领域引擎+前端+服务端持久化与生产部署
- 确定性领域引擎(分类/评分/分级/红线/费用/裁决)+LLM(通义千问)语言理解
- 6步评估向导、服务端草稿持久化(跨设备/编辑草稿保护)
- 工作流(草稿→风控→管理层)、RBAC、报告导出、校准、客户/费率/红线/最低工资管理
- 专业图标体系替换全部emoji、看板美化
- 生产化:API_BASE可配置(同源反代)、auth密钥惰性读取修复RBAC
- 444单测+204前端测试+51 e2e
2026-06-13 01:06:39 +08:00

38 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* eslint-disable */
/**
* 红线可计算触发条件:将红线绑定到某项度量(月净利率/月毛利率/客户平均逾期天数/单客户集中度),
* 配合比较运算符与阈值,使红线可在评估时自动判定命中(而非一律"待核实")。
*
* - linked_metric: 关联度量键(netMargin / grossMargin / avgOverdueDays / concentration)
* 为空表示该红线仍需人工核实(合规/资质类红线)。
* - compare_op: 比较运算符(>=, <=, >, <)。
* - threshold: 阈值;百分比类度量(净利率/毛利率/集中度)按百分数填写(如 0 表示 0%、5 表示 5%)
* 逾期天数按天填写。
*/
exports.up = (pgm) => {
pgm.sql(`
ALTER TABLE redline_rules ADD COLUMN IF NOT EXISTS linked_metric TEXT;
ALTER TABLE redline_rules ADD COLUMN IF NOT EXISTS compare_op TEXT;
ALTER TABLE redline_rules ADD COLUMN IF NOT EXISTS threshold DOUBLE PRECISION;
`);
// 为内置数值型红线预置可计算条件(仅当字段为空时设置,避免覆盖人工配置)。
pgm.sql(`
UPDATE redline_rules SET linked_metric='netMargin', compare_op='<', threshold=0
WHERE id='negative-margin-3m' AND linked_metric IS NULL;
UPDATE redline_rules SET linked_metric='avgOverdueDays', compare_op='>', threshold=90
WHERE id='overdue-90days' AND linked_metric IS NULL;
UPDATE redline_rules SET linked_metric='concentration', compare_op='>', threshold=50
WHERE id='concentration-50pct' AND linked_metric IS NULL;
`);
};
exports.down = (pgm) => {
pgm.sql(`
ALTER TABLE redline_rules DROP COLUMN IF EXISTS linked_metric;
ALTER TABLE redline_rules DROP COLUMN IF EXISTS compare_op;
ALTER TABLE redline_rules DROP COLUMN IF EXISTS threshold;
`);
};