55 Commits

Author SHA1 Message Date
selfrelease a56d187f26 fix: 移除tsconfig.json中已弃用的baseUrl选项 2026-08-04 15:14:23 +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 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 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 dab06ba109 feat: 月度模式全面参数化 - 移除硬编码日期,前后端按月动态查询 2026-08-01 13:10:22 +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
freedakgmail 0509bb6431 feat: 利润与成本指标卡?提示增加计算公式 2026-07-30 10:14:21 +08:00
freedakgmail 1a00c7c170 feat: 利润与成本指标卡?提示增加建议值/行业基准 2026-07-30 10:13:13 +08:00
freedakgmail 47a9581500 feat: 利润与成本指标卡增加颜色标识 - 绿色正常/黄色关注/红色问题 2026-07-30 10:10:30 +08:00
freedakgmail 90be14a5d6 feat: 总部驾驶舱增加理论/实际净利润、净利率、食材成本率指标 2026-07-30 10:02:06 +08:00
freedakgmail aecd06818d feat: 总部驾驶舱增加利润与成本指标区 - 食材成本/经营费用/贡献利润/费用率 2026-07-30 09:59:30 +08:00
freedakgmail f46d858f5e fix: 门店详情页loading改用LoadingSpinner组件统一风格 2026-07-30 09:53:58 +08:00
freedakgmail e7cadef6bd feat: 门店详情风险/象限卡片增加偏差指标明细对比 2026-07-30 09:25:44 +08:00
freedakgmail e946cdefef feat: 门店详情增加风险等级和经营象限详细说明+修复后端不存在的视图引用 2026-07-30 09:16:42 +08:00
freedakgmail 3727cf8672 fix: 成本分析Tab改用FilterableTable带分页筛选排序,提取共享组件 2026-07-30 09:12:12 +08:00
freedakgmail a6d83be0ad fix: 门店成本分析Tab - 用v_inventory_cost_classified_april替代不存在的v_store_category_cost_benchmark_april 2026-07-30 09:09:34 +08:00
freedakgmail efb27127e2 fix: 优化门店健康分评分公式 - 正态分布(均值63, 标准差9) 2026-07-30 09:07:16 +08:00
freedakgmail 268e085ffa feat: 态势感知模块 - 实时监控面板+后端API 2026-07-30 09:01:01 +08:00
freedakgmail 6bab0ad84a feat: 客流热力图增加在岗人员行+规则引擎面板+菜单名称调整
- 热力图每门店增加在岗人员行(前厅/后厨/管理/其他),从考勤打卡记录解析
- 新增traffic-heatmap-staffing API,解析考勤打卡时间计算每小时在岗人数
- 人员预测tab新增可折叠规则引擎面板,展示全部规则和触发条件
- 后端API返回ruleEngine字段(动态标准+优化规则+招聘规则+决策逻辑)
- R9/R11/R12/R13增加占比超配约束,过滤不合理招聘建议
- 菜单项'菜品成本分析'→'菜品成本','门店费用分析'→'门店费用'
- 热力图横向滚动条始终可见
2026-07-30 00:04:54 +08:00
freedakgmail 75a483bfdb feat: 智能排班人员预测系统
- 新增人员预测tab,基于多维度产能指标生成招聘/优化建议
- 规则引擎:7条优化规则 + 7条招聘规则 + 4步决策逻辑
- 动态标准值:基于全部门店中位数计算,替代硬编码阈值
- 互斥逻辑:有优化信号时抑制所有招聘信号
- 占比超配时不触发招聘信号(R9/R11/R12/R13)
- 离职缺口需出勤不足才触发招聘(R10)
- 管理岗满编时不触发出勤不足招聘(R9)
- 前端可折叠规则引擎面板,展示全部规则和触发条件
- 产能指标对比展示实际值 vs 中位数标准
2026-07-29 23:41:56 +08:00
freedakgmail 42e83696a0 feat: 门店费用分析模块 + 成本分析筛选排序功能
- 新增门店费用分析模块(9个Tab组件 + 后端路由)
  - 门店贡献利润、房租租约风险、外卖佣金分析、人效坪效
  - 固定/变动费用、盈亏平衡分析、亏损门店诊断
  - 关停/续租/改造评估、门店排名
- 门店费用分析9个Tab均支持筛选、排序、正倒序
- 成本分析8个Tab添加筛选、排序、正倒序功能
  - 后端10个端点添加filter/sort/order参数支持
  - 前端8个组件添加UI控件
- 修复门店评估分类逻辑和日期格式化
- 修复盈亏平衡销售额计算(贡献毛利率≤0时设为NULL)
2026-07-29 08:22:09 +08:00
freedakgmail 3d89baf65d feat: 菜品成本分析模块 - 10个Tab + 31个分析API + 7个调整管理API
- 后端: 新增 cost-analysis.ts 路由,含31个分析端点和7个调整管理端点
- 前端: 新增 CostAnalysisPage 主页面 + 10个Tab组件
  - Tab1-9: 成本总览/菜品盈利/原料差异/BOM配方/供应链/包装耗材/数据质量/门店成本/可视化探索
  - Tab10: 调整管理(诊断快照+调整记录+效果验证)
- 修复: 毛利率和损耗率从简单平均改为加权计算
- 新增: Tabs组件、侧边栏菜单项、路由注册
- 新增: 3张数据库表(诊断快照/调整记录/验证结果)
2026-07-28 16:56:45 +08:00
selfrelease 722db28d06 feat: 集成高德地图门店分布,形状区分类型+颜色区分场景,排除模式筛选,一键部署脚本 2026-07-27 19:55:41 +08:00