From 72bc060afd30cf812ed4aed87f18c01411efde14 Mon Sep 17 00:00:00 2001 From: Hermes CI Fix Date: Mon, 13 Jul 2026 14:49:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B7=A6=E4=BE=A7=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=88=86=E7=BB=84=E5=A4=B4=E2=80=94=E2=80=94?= =?UTF-8?q?=E7=A7=BB=E9=99=A4KPI=E5=AD=97=E5=85=B8=E5=92=8C=E7=AE=A1?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E7=9A=84=E5=A4=9A=E4=BD=99group?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/cma_import.db | Bin 0 -> 12288 bytes backend/scripts/run_alert_check.sh | 31 +++++++++++++++++++++++++++++ frontend/src/permission.ts | 4 ++-- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 backend/cma_import.db create mode 100755 backend/scripts/run_alert_check.sh diff --git a/backend/cma_import.db b/backend/cma_import.db new file mode 100644 index 0000000000000000000000000000000000000000..5ad9d559f3ecef2ad4c3b01f1d8a74876b500ebb GIT binary patch literal 12288 zcmeI&&x;aa7zgnAWrkoA(XuTbd{+n(+87nxtFBBjuxPo{Qim{GCy?9}bC-_m#^P=* zMXcnZU+j`0v^nAwEaD;P)c1vPUY_T9U+4MU-eDH5&F9J* zxmzeLXUZhRoMu>-i4wvvj6g4*UW38Wi4_|Rb}$)p7nn<{TW(swomyu^mHuEr00Izz z00bZa0SG_<0uX?}e=1N(a?VLbVb`b1nLBwcw_Gfg%4zLkQM>;@O9!Q3M4AnR(t$uI z9FC07^6``$Q)QyY=H_MM8(-`r7hFE0-Y{Oh^$}IRpzf~j0%rBOx%b*f zl!Pi@kyHI5^HI~RH;0P!cU9xF9dP+8e%3h|i?Nkk!yVl#=8km}wjXdrh8x+*h{Aps zR(z?D)rOv^sFiYs>`)-HR9?yC)2o^M3azudarv#YxkKD$L{t1BcEtB|iU9!#KmY;| zfB*y_009U<00Izzz&{i?=Mbhnd`gbX%A)lK!+Q5IBhB*e=%gTcJ-m`wloM()b<<8b zcga~^nDX#fQ_0JUYDa~gUuQUB!o$at3xk-eb$fypJl5uPi|d1(#kr_;{^!LkBYqcO z&>IE>AOHafKmY;|fB*y_009U<00Mt0An_-ry`1;FeL$a)LdKJq`nQeV!57C*W3An7 zKhqz-(OY}Q=ArSlK{FC}Y(-E%Y#DWH1vzQf*7RD7euL0!boADiUj0gw5w^b~@aI1Q g)|MOlbcK7rx4UiBI@VVU)oSnH>k@s{jB1 literal 0 HcmV?d00001 diff --git a/backend/scripts/run_alert_check.sh b/backend/scripts/run_alert_check.sh new file mode 100755 index 00000000..4c8000df --- /dev/null +++ b/backend/scripts/run_alert_check.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# CMA预警检查 — 通过wrapper脚本避免systemd引号冲突 +set -euo pipefail + +cd /root/cma-management/backend + +VENV="/root/cma-management/backend/venv" + +# 1. KPI阈值检查 +"$VENV/bin/python3" -c " +from app.database import get_db_session +from app.api.alert_rules import check_all_kpi_alerts +db = next(get_db_session()) +try: + count = check_all_kpi_alerts(db) + print(f'KPI预警检查完成: 新增{count}条') +finally: + db.close() +" 2>&1 + +# 2. 差异预警推送检查 +"$VENV/bin/python3" -c " +from app.database import get_db_session +from app.api.deviation_push import check_all_push +db = next(get_db_session()) +try: + count = check_all_push(db) + print(f'差异预警检查完成: 新增{count}条') +finally: + db.close() +" 2>&1 diff --git a/frontend/src/permission.ts b/frontend/src/permission.ts index 0e0cd1e5..c7fac7f0 100644 --- a/frontend/src/permission.ts +++ b/frontend/src/permission.ts @@ -33,7 +33,7 @@ export const MENU_ITEMS: MenuItem[] = [ { path: '/my-dashboard', label: '我的工作台', icon: 'Monitor', roles: ['ceo', 'finance', 'business', 'it'], group: '数据基础' }, // ── 数据基础 ── - { path: '/kpis', label: 'KPI字典', icon: 'Document', roles: ['ceo', 'finance', 'business', 'it'], group: '数据基础' }, + { path: '/kpis', label: 'KPI字典', icon: 'Document', roles: ['ceo', 'finance', 'business', 'it'] }, { path: '/data', label: '数据管理', icon: 'Connection', roles: ['ceo', 'finance', 'it'] }, // ── 分析决策 ── @@ -48,7 +48,7 @@ export const MENU_ITEMS: MenuItem[] = [ { path: '/budget', label: '预算管理', icon: 'Coin', roles: ['ceo', 'finance', 'business', 'it'] }, // ── 高级分析 ── - { path: '/reports', label: '管理报表', icon: 'DataAnalysis', roles: ['ceo', 'finance', 'business'], group: '分析决策' }, + { path: '/reports', label: '管理报表', icon: 'DataAnalysis', roles: ['ceo', 'finance', 'business'] }, { path: '/alignment', label: '战略执行看板', icon: 'Opportunity', roles: ['ceo', 'finance', 'business', 'it'] }, { path: '/dupont-analysis', label: '杜邦分析', icon: 'TrendCharts', roles: ['ceo', 'finance', 'it'] },