Commit Graph
233 Commits
Author SHA1 Message Date
Hermes CI Fix acf0665010 feat: 登录默认页改为我的工作台 2026-08-16 11:00:19 +08:00
Hermes CI Fix 7b5795bf07 fix(P0): 杜邦分析接口去除硬编码错误数据 — equity 114万→358.4万、ROE 12.38%→3.95%、新增hanke分支读DB(KPI 2026H1 verified)
- 新增 _get_dupont_kpi 辅助函数: 按 entity_id+kpi_code 查 kpi_definitions→kpi_values(period=2026H1, verified)
- bohai: 净权益修正为358.4万(来源 bohai_comprehensive_analysis_2026.md 试算平衡表),财务杠杆4.68x→1.49x,负债率78.6%→32.8%结构健康,ROE≈3.94%,删除误导性加杠杆建议
- hanke: 新增分支,从DB读 F_REVENUE=713.27/F_NET_PROFIT=-90.86,净利率-12.74%,资产/权益缺失时factor返回null标注数据待补充,prev_roe返回null(前端兼容显示无对比),接口返回200
2026-08-15 23:02:48 +08:00
Hermes CI Fix 603d6ae5cf feat: 战略地图贝塞尔因果链+节点KPI可视化(P0+P1) 2026-08-15 22:08:09 +08:00
Hermes CI Fix 778a5d9c79 fix: 工作台KPI级别判断支持反向指标 — 费用率/渠补率/应收天数等'越低越好'指标不再误判green
- my_dashboard的level判断原为actual/target比例法(≥0.9=green)
- 反向指标(费用率24.9%/目标20%)被误判为green,实际应red
- 新增REVERSE_INDICATORS集合:F_COST_RATIO/C_REBATE_RATE/F_AR_DAYS/F_REBATE_RATE/F_FACTORY_REBATE_RATE/F_COST_CONTROL_RATE
- 反向指标逻辑:实际≤目标=绿,≤目标*1.1=黄,否则红
2026-08-15 21:44:09 +08:00
Hermes CI Fix 5a196dc105 fix: 数据治理P0 规则4前端level过滤+数据清洗 2026-08-15 21:26:27 +08:00
Hermes CI Fix 266277d121 feat: 应收款催收闭环 — 催收视图+博海230万录入+回款登记联动 2026-08-14 22:07:02 +08:00
Hermes CI Fix a268c4e74d fix: 智能导入列检测+名称防护 — 科目编码误当名称(EXT_069显示1001.0/EXT_071显示nan)根因修复
- kpi_code_patterns 名称类列优先(科目名称/指标名称/name),编码类列兜底
- 修复科目余额表表头(科目编码|科目名称)检测失败fallback cols[0]导致名称存成编码
- 导入循环增加防护: NaN/空/纯数字名称跳过,不再创建垃圾KPI
- 存量数据: 14个一级科目名称已按科目表修正,82个明细标记待财务核对,EXT_071标记未命名
2026-08-13 01:17:32 +08:00
Hermes CI Fix 1bdfd95fde fix: 账套隔离 — register不再授予全部企业,仅授第一个active企业(防新用户越权) 2026-08-11 11:34:14 +08:00
Hermes CI Fix 2f2ada530d fix: bot/kpis 500 — KPIDefinition无description字段改为formula_desc(存量bug,账套模式验证门禁4发现) 2026-08-11 11:34:05 +08:00
Hermes CI Fix d7e97978c6 fix: 写接口entity_id token优先(resolve_entity_for_request)+ 登录页用顶层entity_id 2026-08-11 11:32:30 +08:00
Hermes CI Fix 52ec2c0f36 fix: 登录页entity_id存储取login响应顶层字段 — user对象无entity_id导致cma_entity_id恒为1
- login响应结构: {token, entity_id, entity_name, entity_short_name, user:{...}}
- 原代码读 res.user?.entity_id ?? 1 → 登录博海(2)却存1 → 页面显式传参1与token绑定2不一致 → get_entity_id返回403
- 改为 res.entity_id / res.entity_short_name(与MainLayout切换器存储逻辑一致)
2026-08-11 11:32:27 +08:00
Hermes CI Fix d56ba24f31 feat: deps越权防护(query/header与token不一致403) + resolve_entity_for_request + 任务⑥开发规范沉淀 2026-08-11 11:30:08 +08:00
Hermes CI Fix b59de7c476 feat: 账套模式API统一 — entity_id参数全部走get_entity_id + 登录页/切换器接口打通
- kpis/cash/bsc_layers/growth_quality/tax_compliance/data/predict: entity_id参数统一为Depends(get_entity_id),token优先隔离(原Query(1)/None会被前端显式传参覆盖,存在越权面)
- auth: 新增GET /auth/login-entities(公开,登录页按用户名查授权企业) + /auth/my-entities(切换器) + /me带当前账套
- 前端: 拦截器删除自动附加X-Entity-Id/entity_id; Login公司选择器; MainLayout/ReportCenter切换器改switch-entity重新签发token+整页刷新
2026-08-11 11:29:43 +08:00
Hermes CI Fix 9986f38faa feat: 账套模式全量接入 — 12个API entity_id统一走token解析链 + 前端登录选公司/切换器重签token
- 后端: kpis/bsc_layers/cash/predict/growth_quality/tax_compliance/data 的 entity_id 参数统一改为 Depends(get_entity_id)
- 前端: 拦截器删除自动附加X-Entity-Id/entity_id; 登录页公司选择器(按用户名授权过滤); 切换器改POST /auth/switch-entity重新签发token+整页刷新; ReportCenter同步改造
- 修复前后端不匹配: login-entities路由→/auth/entities; login响应entity_id取user.entity_id
2026-08-11 11:29:39 +08:00
Hermes CI Fix 12f9ae520b chore: 删除孤儿文件 auth.py — 实际生效的是 api/auth.py(含_ensure_default_grants存量兼容) 2026-08-11 11:26:17 +08:00
Hermes CI Fix 35839dd38e feat: auth.py 账套模式 — login强制entity_id + my-entities授权查询 + switch-entity重签发token 2026-08-11 11:25:18 +08:00
Hermes CI Fix b31f9b80c4 feat: 账套模式后端 — token绑定entity_id + user_entities授权表 + 解析链倒置
- auth_middleware: create_token存JSON{user_id,entity_id},旧int格式token强制下线
- models: 新增UserEntity授权表(user_id↔entity_id多对多,唯一约束)
- database: init_db自动建表+存量用户×active企业默认授权(平滑迁移)
- deps: get_entity_id解析链倒置 token优先 → Bot白名单(query/header校验entity active) → 默认1
- auth: login加entity_id+授权校验; 新增switch-entity/my-entities/登录页entities接口; register自动授权
2026-08-11 11:24:52 +08:00
Hermes CI Fix 9d0f070c14 fix: deploy.sh 依赖更新不阻断部署(PEP668兼容)+ hook退出码检查 2026-08-11 11:16:12 +08:00
Hermes CI Fix d99577dc5c fix: deploy.sh venv激活兼容 — 精简venv无activate时直接用venv/bin/pip3 2026-08-11 11:14:54 +08:00
Hermes CI Fix eb5cca2372 chore: backend/logs/ 不入库(gitignore + 解除跟踪 uvicorn.log) 2026-08-11 11:12:56 +08:00
Hermes CI Fix e959c40b1c feat: 多租户实时切换 — 前端拦截器统一entity_id + 后端get_entity_id依赖 + dashboard 6端点支持租户过滤
- 前端: api/index.ts拦截器自动附加X-Entity-Id header + entity_id query参数
- 后端: 新增app/deps.py的get_entity_id公共依赖(query→header→默认1)
- dashboard.py: summary/kpis/finance-analysis/predict/my-kpis/my-dashboard全部支持entity_id
- 解决: 42个页面仅13个传entity_id导致切换企业后数据混乱
2026-08-11 11:11:17 +08:00
Hermes CI Fix dcc7e2194d feat: 新30号准则适配 — 三表完善+认证头修复+企业联动 2026-08-11 00:40:43 +08:00
Hermes CI Fix 4081361b05 fix: GrowthQuality import api默认导出 2026-08-11 00:22:54 +08:00
Hermes CI Fix b1e8a55745 feat: 增长质量诊断模块 — 五维评分+雷达图+跨期对比+趋势 2026-08-11 00:21:10 +08:00
Hermes CI Fix 0b191d278e feat: OKR模板库改造 — 弹窗模板库联动+时间分解落库+制造业包6个 2026-08-11 00:11:25 +08:00
Hermes CI Fix 32fe3e4d50 feat: bot-bridge数据通道 — POST /kpi-result回填KPI+触发预警+MPM自动回填脚本
- 新增 POST /api/cma/bot-bridge/kpi-result: (entity_id,kpi_code)查KPI,
  写入KPIValue(source_type=bot, data_status=verified), 复用run_alert_check
  触发预警(自动联动行动计划), 返回new_alerts; KPI不存在/缺字段返回错误
- 修复verify引擎_get_kpi_current_value排序: 按calculated_at取最新值,
  bot回填值可被auto-verify读到 (修复2026H1字符串排序遮蔽月值问题)
- 新增scripts/bot_bridge_push.py: 财务Bot MPM结果自动回填(MPM字段→KPI
  映射), 支持--mpm/--mpm-file/单KPI直推/--ping
2026-08-10 23:56:14 +08:00
Hermes CI Fix f9e20bc9bc fix: KPI历史数据治理批量修复 — 元数据补全321条+编码规范处理222条
- 规则2: 补全321条元数据 (formula 207 / data_source 57 / data_owner 57)
  - EXT_科目KPI: formula按财务维度默认'财务指标计算'
  - F_/C_/P_/L_经典KPI: 精确公式(6条) + 数据源按维度(财务系统/业务系统)
  - data_owner优先取负责部门, 否则默认财务部
- 规则3: 审计规则白名单化EXT_前缀(科目余额表导入, 仅限finance维度),
  EXT_编码与dimension保持一致不改动; FB_/BH_ 21条真实前缀冲突
  输出人工确认清单 docs/kpi_governance_human_review.md
- 验证: GET /api/cma/kpi/governance/audit → rule_counts {1:0, 2:0, 3:21, 4:0}
  未改动任何kpi_code及引用表, 评分/地图/KPI列表接口正常
2026-08-10 23:50:14 +08:00
Hermes CI Fix 37f26148fe feat: 数据治理4条规则 — 入库必检+元数据+编码规范+战略分级 2026-08-10 23:40:31 +08:00
Hermes CI Fix e1ea5cd14d feat: Auto-Verify闭环 — verify API+定时验证+OKR联动+周报 2026-08-10 23:15:19 +08:00
Hermes CI Fix 7fed66d58c feat: import-excel-smart支持entity_id + 导入博海科目余额表(320条/78KPI) 2026-08-07 18:26:09 +08:00
Hermes CI Fix d0d6e30e81 fix: KPIDefinition模型补kpi_level字段 + 导入酣客科目余额表 2026-08-07 17:58:03 +08:00
Hermes CI Fix ac6ea93ed5 feat: 多租户联动 — CMA切换企业注入tenant_id + a2a_dispatch分发 2026-08-07 17:42:26 +08:00
Hermes CI Fix f33162b6c9 feat: 财务报表助手—对外法定报表(三表合一+Excel导出) 2026-08-04 15:35:15 +08:00
Hermes CI Fix 38b603f263 feat: 税务合规智能体—税负监控+发票校验+社保比对 2026-08-04 15:04:39 +08:00
Hermes CI Fix 8e277de3de feat: 资金管理强化—缺口预测+收付款计划+预警 2026-08-04 14:53:14 +08:00
Hermes CI Fix 555d3b621a feat: 费用审核智能体—规则+报销流程+看板 2026-08-04 14:40:03 +08:00
Hermes CI Fix e3e8bad3da fix: KPI保存后重新拉取服务端数据,确保元数据卡片状态同步 2026-07-29 18:32:54 +08:00
Hermes CI Fix 189f442da4 feat: 所有表单的部门/负责人改为下拉框(自动读取组织+用户数据)
- KPI详情: 负责部门+负责人 el-input→el-select filterable
- KPI字典: 新建/编辑/模板实例化 三处同步修改
- 改善行动: 负责人筛选+表单 从userApi.list加载
- 预警中心: 指派人+负责人 从userApi.list加载
- api/index.ts新增orgApi封装
2026-07-29 18:25:08 +08:00
Hermes CI Fix cffb15e8dc fix: reports.py missing import json 2026-07-29 18:19:42 +08:00
Hermes CI Fix bc02d09520 feat: ChatBI自动报告生成—周报/月报/专项 2026-07-29 18:16:37 +08:00
Hermes CI Fix 68e40ac9c5 fix: 自动创建KPI补全target_value/kpi_level+文件名中文日期解析
- 补NOT NULL字段: target_value=0, kpi_level='operational'
- 文件名支持中文日期: 2026年01月 / 2026年01月至2026年05月
- 科目余额表列名匹配增强: 余额/本年累计/本期发生额
- 期间列识别: 年/月开头列名
2026-07-29 18:12:11 +08:00
Hermes CI Fix 47ef861488 fix: 自动创建KPI时补全所有NOT NULL字段(formula/data_source/data_owner/unit/entity_id) 2026-07-29 18:07:57 +08:00
Hermes CI Fix 9b973ab9a8 fix: 智能导入——匹配不上的财务报表科目自动创建KPI定义
- 清理科目前缀(一、/减:/加:)后多级匹配
- ⑤仍未匹配→自动创建KPI(PL_001/CF_001/BS_001)
- 避免205条全部跳过的场景
2026-07-29 18:02:50 +08:00
Hermes CI Fix 8a7cf25025 fix: 预测模拟企业同步—从localStorage读取entity_id 2026-07-27 17:23:29 +08:00
Hermes CI Fix 6d5c374c60 fix: 战略回顾会改善行动进度—箭头函数少括号 2026-07-27 17:19:57 +08:00
Hermes CI Fix 2bd66b1e89 fix: 行动方案库统计卡片—补全API+overdue计算 2026-07-27 17:16:01 +08:00
Hermes CI Fix f85b18ce6d fix: 企业切换数据同步(8/10页面+shared组件) 2026-07-27 16:13:03 +08:00
Hermes CI Fix b593e0383f feat: O→KR→KPI Phase 0 - KR sub-nodes on canvas, KR edit dialog, data migration
- MapNode.vue: Add collapsible KR sub-list with progress bars under each O node
- MapCanvasDialogs.vue: Add KPI selector per KR, editing mode (skip template step, pre-fill data), validation (max 5 KR, target value required)
- StrategyLayer.vue: Pass through edit-kr/add-kr events
- MapCanvas.vue: Data migration (old kpis[]→krs[]), KR add/edit handlers, pass editingObj/allKpis to dialog
2026-07-26 18:01:59 +08:00
Hermes CI Fix 84749a35ca fix: _merge_map_objectives保留O+KR额外字段 2026-07-26 17:07:49 +08:00
Hermes CI Fix 71674d62ab fix: KR目标值自动同步到名称(如毛利率提升→毛利率提升≥5%) 2026-07-26 16:55:29 +08:00