Commit Graph

77 Commits

Author SHA1 Message Date
freedakgmail b2cdf352db fix: 修复老板驾驶舱与总部驾驶舱实收数据源不一致
BossPage核心指标行的优惠和实收从/store-expense/overview改为/overview API
- 优惠: ex.total_discount → od.discount
- 实收总额: ex.total_received → od.received
- totalRev(风险门店占比分母)同步改为od.received
现在两个驾驶舱的营业收入/优惠/实收完全一致
2026-08-11 19:58:22 +08:00
freedakgmail 2a3805c44f fix: 修复费用总览API两个错误
1. 费用率公式反转: (1-expense/received)*100 → expense/matched_received*100
   修复前: 46.83%(实际是非费用率)→ 修复后: 53.77%(正确费用率)
2. 利润口径不一致: sum(received)含全部94家门店,但费用只含92家匹配门店
   修复: 利润和各项率指标分母改为仅匹配门店实收(matched_received)
   实际贡献利润: 7,703,472→6,982,110 贡献率: 11.96%→10.96%
2026-08-11 19:54:23 +08:00
freedakgmail a090fc7c19 fix: 修复API数据正确性问题
- 移除3个API的operating_expense IS NOT NULL过滤,改用COALESCE
  - /overview/store-profit-ranking: 93家门店全部纳入排名
  - /overview/profit-opportunity: 所有有营收门店纳入机会计算
  - /overview/profit-trend: LEFT JOIN替代INNER JOIN
- 重建v_store_operating_expense_monthly视图,去除硬编码_april视图
  - sales CTE改用mv_store_site_profile_monthly
  - food CTE改用mv_store_theoretical_actual_cost_monthly
  - 支持任意月份查询
- 修复人工优化和能源优化opportunity为负数问题
- 新增scripts/refresh_materialized_views.sh自动化刷新脚本
- 新增本体.md/API.md/原始数据级导入处理.md/物化视图更新.md/API数据检查报告.md
2026-08-11 19:25:49 +08:00
freedakgmail 3f1c291486 fix: 修复门店评估数据不一致问题
- 恢复被误删的5家门店旧账单数据(58377行)
- 合并哈马尔罕大钟寺店费用到大钟寺店(0022)
- 修改v_store_operating_expense_monthly视图按sales_store_code聚合费用
- 修复利润机会池食材成本差异为负时opportunity不为负
- 修复前端totalOpportunity只累加正数机会
- 刷新bill_fact/mv_store_risk_rating_monthly等物化视图
- 新增PromotionPage和promotion路由
2026-08-11 07:26:11 +08:00
freedakgmail 353dad24a2 feat: 添加企业智脑建设方案HTML演示和企业AI协调师培养方案HTML演示,均适配手机端 2026-08-09 11:42:23 +08:00
freedakgmail d04e837d9c V3.0: 门店分级与风险等级页面、数据填充脚本、后端API
- 新增V3.0数据库表结构(12-15)和数据填充脚本(16)
- 新增后端路由: store-grade, enterprise, product, intelligence, alert, scheduler, target
- 新增前端页面: StoreGradePage, EnterprisePage, ProductLifecyclePage, IntelligencePage, AlertManagementPage, DataImportPage, SchedulerManagementPage, TargetManagementPage
- 门店分级: 自动分级算法(达成率40%+毛利率25%+会员15%+风险20%)
- 风险等级: 基于mv_store_risk_rating模型展示风险分布和原因
- 弹窗: 雷达图+详细指标+分级原因+风险原因(primary_issue)
- FilterableTable: filterOptions支持{value,label}对象格式
2026-08-05 20:09:39 +08:00
selfrelease 814abf4a68 docs: V3.0完整任务清单(115项) + AI讲师培训文档 2026-08-05 11:15:54 +08:00
selfrelease 4d929e3361 docs: 添加AI讲师简介与培训大纲(制造业方向)
面向大型制造企业AI培训项目,包含讲师简介、核心观点、
汽车后市场及餐饮连锁两个"从外行到资深"案例、培训大纲。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-05 10:41:07 +08:00
selfrelease a56d187f26 fix: 移除tsconfig.json中已弃用的baseUrl选项 2026-08-04 15:14:23 +08:00
selfrelease b6fe2d0e23 docs: V3.0系统实现路径与数据支撑度分析 2026-08-04 14:19:04 +08:00
selfrelease 91916f05d6 docs: 添加AI餐饮科技平台商业模式与成本断链标准分析文档 2026-08-04 13:38:23 +08:00
selfrelease f6027ee5c5 chore: 从git移除视频文件并添加.gitignore排除规则 2026-08-04 13:31:08 +08:00
freedakgmail 37cd5ae7e1 feat: 店长工作台新增人力排班Tab及概览折叠功能
- 后端新增 /api/stores/:code/staffing 路由,返回人工成本概览、按星期/餐段排班建议、日营收明细、综合诊断
- 前端 StorePage 新增 staffing Tab,展示 MetricCard 概览、优化建议、排班图表、诊断算法说明
- 修复公司均值人工率被异常门店污染问题(过滤 wage_rate_pct > 100)
- 诊断逻辑改为与公司均值动态比较,建议人工率改为动态计算
- 增强任务反馈表单(执行证据、未完成原因、下一步计划)
- 点击非概览Tab时自动折叠上方概况区域
2026-08-04 08:19:20 +08:00
freedakgmail 6bc2f43da7 feat: 新增本月经营态势弹窗+千问TTS语音播报
- 新增 BusinessReportDialog 组件,展示整体经营/成本费用/风险态势/利润机会四部分文字报告
- BossPage 标题栏新增「本月经营态势」按钮
- 后端新增 /api/tts 路由,调用千问 CosyVoice TTS API 合成语音
- 前端按句分段合成、逐句顺序播放,边播边合成
- 报告含待确认门店数量
2026-08-03 22:55:50 +08:00
freedakgmail c15ca07b7c docs: 新增租户配置与用户管理指南
涵盖新租户接入全流程(数据库创建、frp隧道配置、租户注册、用户创建)、
角色权限说明、菜单权限对照表、完整API示例
2026-08-02 21:40:40 +08:00
freedakgmail a011729fc9 fix: 角色权限与数据范围修复
- 添加 RoleRoute 路由守卫组件,防止越权访问页面
- 菜单配置:区域经理加'区域对比',店长加'态势感知'
- database.ts: scope注入时检测主表别名避免store_code歧义
- analytics-enhanced.ts: KPI region模式手动注入scope过滤
- situational-awareness.ts: health-score手动注入scope,alerts加skipScope
- smart-scheduling.ts: position-salary-compare店长角色降低HAVING阈值
2026-08-02 21:28:25 +08:00
freedakgmail cfa12c9b7f feat: 多租户数据权限 + 数据库连接修正
- adminPool 连服务器本地 5432 sbrain_admin (SCRAM 认证)
- tenantPool/pool 连 FRP 隧道 15432 bill_query (trust 认证)
- query() 自动注入 store_code 数据权限 (store/regional 角色)
- 区域经理 region 字段存储逗号分隔的 store_code 列表
- /overview 和 /overview/daily 对 scoped 用户从 bill_fact 聚合
- tenant_users.region 扩展为 VARCHAR(500)
- deploy.sh .env 增加 ADMIN_DB_* 配置
- run.md 更新数据库连接架构说明
- 新增海淀区区域经理用户 (21 家海淀区门店)
2026-08-02 20:10:42 +08:00
freedakgmail c3fbe4ab81 feat: SaaS架构改造 - 后端部署到服务器, 数据库留本机用frp隧道连接
- 新增 deploy-server.sh: 后端部署脚本(rsync + npm install + pm2)
- frp 隧道从暴露API(3333→13333)改为暴露PostgreSQL(5432→15432)
- 后端部署到服务器 /opt/sbrain-server, pm2管理, 端口9333
- Nginx /api/ 从 127.0.0.1:13333 改为 127.0.0.1:9333
- 服务器 .env: DB_PORT=15432 连接frp隧道
- run.md 全面更新为新架构说明
- 新增 docs/20260802-SaaS+本地数据库.md 架构方案文档
- 移除本机后端 launchd 服务(后端已上服务器)
2026-08-02 18:12:15 +08:00
freedakgmail 9d39ec8128 docs: run.md 更新 launchd 系统级自启方案 2026-08-02 17:55:16 +08:00
freedakgmail 30651969ad feat: 混合模式UI优化 - 全局态势状态条 + 预警前置 + 风险分布条 + 健康度仪表盘
- 新建 StatusBanner 组件: 全局态势状态条(门店风险/预警/闭环健康度)
- Layout: 侧边栏增加Activity图标,主内容区顶部嵌入StatusBanner
- MetricCard: status增加左侧彩色竖条强化视觉层级
- DashboardPage: 预警区域前置到经营指标上方,有红色预警时默认展开
- DashboardPage: 标题下方新增风险分布条(红黄绿百分比)
- DashboardPage: 闭环健康度增加RadialBarChart仪表盘
- DashboardPage: 预警卡片增加AlertTriangle图标和左侧彩色竖条
- StatusBanner: 各指标增加title tooltip取数说明
2026-08-02 15:20:58 +08:00
freedakgmail 271ad8041d feat: 全页面增加营业收入/优惠指标 + 修复趋势预测空数据 + 区域对比口径统一 + StorePage最新经营日概览
- 后端: 所有API的discount改为从bill_fact累计discount_total
- 后端: revenue/daily-summary增加consumption字段
- 后端: situational-awareness/forecast修复c175字符串比较为timestamp
- 后端: region/comparison去掉未知区域排除,统一口径
- 后端: daily-card增加营业收入/优惠指标,返回target_date/baseline_date
- 前端: BossPage/DashboardPage/BankPage/StorePage/ExpenseOverviewTab/RegionalPage/RegionComparisonPage/RevenuePage 均增加营业收入和优惠指标卡
- 前端: StorePage日均经营概览改为最新经营日概览,显示具体对比日期
- 前端: 日期格式统一截取YYYY-MM-DD显示
2026-08-02 14:56:00 +08:00
freedakgmail a1a8b7ee5e feat: 连锁餐饮数字本体与AI经营智脑 - 新增分析页面、ETL脚本、总结文档 2026-08-02 10:54:48 +08:00
freedakgmail 73f12f40d1 feat: 配送物化视图优化查询性能 + 饼图统一处理 + SKU长尾治理明细 + 地图初始聚焦北京 2026-08-02 08:53:21 +08:00
freedakgmail ed7beb7e47 feat: 统一SearchSelect下拉组件 + 修复营销方案数据 + 平台经济性增强
- 创建SearchSelect搜索下拉组件,选项≤8自动隐藏搜索框
- 全站替换原生select为SearchSelect(13处下拉)
- 修复/revenue/store-ranking优惠率字段名不匹配(discount_rate_pct→avg_discount_rate_pct)
- RevenuePage门店营收明细改用FilterableTable支持筛选排序分页
- 修复/marketing/plans按门店分组改为按marketing_plan分组
- 营销方案分析补充消费额、优惠额列和Top5概览卡片
- PlatformPage门店平台经济性增加门店搜索、经济性优列(平台分色)
- 平台成本率算法说明显示在标题下方
2026-08-01 23:08:34 +08:00
freedakgmail d724a565f5 风险与内控管理优化: 异常账单服务端分页/筛选/收银员搜索/合计, 收银员TOP15按异常账单数排序, 双击跳转明细, MonthPicker靠右, 侧边栏底部间距 2026-08-01 21:28:15 +08:00
freedakgmail ac8e39e2f9 feat: 门店详情页添加健康度评分(标题旁分数+状态, 概览Tab雷达图+得分条) 2026-08-01 15:38:01 +08:00
freedakgmail 0f6ff59d7d feat: 态势感知健康度评分明细弹窗(雷达图+8维度得分) 2026-08-01 15:14:13 +08:00
freedakgmail d1f07a0e93 feat: 态势感知页面添加 MonthPicker 月份切换(4个API全部传month) 2026-08-01 15:09:35 +08:00
freedakgmail 4b3a48976d feat: 全部页面添加 MonthPicker 月份切换
新增 MonthPicker 的页面(6个):
- CostPage: 成本与库存管理
- SKUPage: 商品SKU管理
- PlatformPage: 平台与优惠管理
- MemberPage: 会员与复购管理
- SiteSelectionPage: 门店选址分析
- DataQualityPage: 数据质量看板

容器+子组件添加 MonthPicker(2个页面, 11个子组件):
- StoreExpensePage: 门店营业费用分析(10个子组件全部传month)
- CostAnalysisPage/StoreTab: 门店成本tab

跳过(后端不支持month参数):
- RiskPage: 风险管理(全量视图, 不按月过滤)
- TimePage: 时间段分析(全量视图, 不按月过滤)
2026-08-01 14:58:12 +08:00
freedakgmail 122290e3b0 perf: Phase 12 — 物化剩余9个慢函数,全量API优化完成
新增物化视图:
- mv_store_action_priority_deep_monthly (10.7s→3ms)
- mv_inventory_cost_classified_monthly (37ms→3ms, 消除重复调用)
- mv_dish_pair_summary_monthly (171s→3ms)
- mv_store_area_efficiency_monthly (10.1s→3ms)
- mv_store_site_profile_monthly (9.3s→3ms)
- mv_site_segment_benchmark_monthly (12s→3ms)
- mv_store_site_replication_monthly (12.6s→3ms)
- mv_store_overlap_risk_monthly (88s→3ms)
- mv_district_site_benchmark_monthly (56s→3ms)

后端: 所有 fn_ 函数调用替换为物化视图查询
前端: BossPage 添加 MonthPicker 组件并传递 month 参数
修复: cost/category-benchmark 排序列名 store_code→sales_store_code
总计: 21个物化视图, 全部API响应<1.7秒
2026-08-01 14:51:24 +08:00
freedakgmail 25db0f3854 perf: 全量物化视图优化 — 按月预计算所有慢函数,API响应从106秒降至0.09秒
- 创建12个按月物化视图替代实时函数调用
- phase10: mv_dish_sku_summary_monthly, mv_dish_sku_abc_monthly
- phase11: mv_store_risk_rating/platform_economics/category_mix/member_opportunity/benchmark_composite/deep_diagnosis/dish_basket/dish_store_summary/theoretical_actual_cost (全部_monthly)
- 后端所有路由从 fn_xxx() 改为 mv_xxx_monthly WHERE month_start =
- 新增 analytics.refresh_all_monthly_views() 刷新函数
- 优化 fn_dish_sku_summary: CTE物化避免重复调用
- 优化 fn_dish_sku_abc: CTE物化 fn_dish_sku_summary 只调用一次
- 优化 fn_dish_sales: 添加 dish_name IS NOT NULL 提前过滤
2026-08-01 14:05:12 +08:00
freedakgmail dab06ba109 feat: 月度模式全面参数化 - 移除硬编码日期,前后端按月动态查询 2026-08-01 13:10:22 +08:00
freedakgmail a90c133578 chore: 从git移除数据库备份文件,backups/加入.gitignore 2026-07-31 14:00:02 +08:00
freedakgmail 9d7019bdc2 fix: SSH隧道命令增加ServerAliveInterval心跳参数防止空闲断连 2026-07-31 13:47:10 +08:00
freedakgmail ab383006d6 fix: 银行评分规则调整为连锁餐饮行业适用阈值 2026-07-30 17:11:12 +08:00
freedakgmail 1a4aca28c0 feat: 新增银行授信数据报告页面 - 可配置评分规则+5大分析模块 2026-07-30 16:58:32 +08:00
freedakgmail 7d1eba43c0 fix: 小时维度图Y轴改用预计算固定最大值,正确显示24万+账单峰值 2026-07-30 15:17:15 +08:00
freedakgmail 19f122529b fix: 小时维度图Y轴增加domain留15%余量,确保接近10万的数据点完整显示 2026-07-30 15:09:46 +08:00
freedakgmail 616e671966 fix: 时间分析小时/星期图右Y轴账单数增加万格式化,避免超10万显示不全 2026-07-30 15:06:37 +08:00
freedakgmail 1664247882 feat: 整合菜单7组 + 新增营收分析页面(渠道/时段/门店排名/日度趋势) 2026-07-30 15:01:49 +08:00
freedakgmail 188f607fbb fix: 营收排名和费用结构饼图Tooltip中value改为中文标签 2026-07-30 14:48:06 +08:00
freedakgmail 6f4acbb9ca fix: 用户退出登录区加bg-card不透明背景 2026-07-30 14:46:21 +08:00
freedakgmail 7e463c04ac fix: 侧边栏菜单区支持上下滚动 2026-07-30 14:45:07 +08:00
freedakgmail 42e4287473 fix: 老板驾驶舱统一全口径数据源 - 实收/客单价/账单数/风险占比均取自store-expense/overview,与利润瀑布一致 2026-07-30 14:42:40 +08:00
freedakgmail fca917dc13 fix: 利润结构Tooltip中value改为中文'金额' 2026-07-30 14:40:47 +08:00
freedakgmail 2df4f0799b feat: 老板驾驶舱增加门店利润排名 - TOP5赚钱/BOTTOM5亏损,可点击跳转门店详情 2026-07-30 14:37:38 +08:00
freedakgmail 10c64a2ef2 fix: 瀑布图改用自定义shape渲染,不再用堆叠方式,柱子高度正确显示 2026-07-30 14:34:28 +08:00
freedakgmail 718101c58a fix: 修复利润瀑布图柱子高度 - cost项base改为扣除后位置,value为减少量 2026-07-30 14:30:54 +08:00
freedakgmail 1f96897184 feat: 老板驾驶舱利润瀑布增加实收分配占比条 - 食材37%/人工25%/房租15%/水电5%/其他10%/利润6% 2026-07-30 14:28:32 +08:00
freedakgmail 22d711fb73 feat: 新增老板驾驶舱页面 - 利润瀑布/风险态势/成本异常/营收排名/日度趋势 2026-07-30 14:24:17 +08:00