Files
SBrainCO/docs/智脑实施方法论/10-技术参考-项目概述与架构.md
T

3.9 KiB
Raw Blame History

10 · 技术参考:项目概述与架构

1. 项目背景

为连锁经营企业(西部马华,100+门店)构建数据分析智脑平台,覆盖:

  • 老板驾驶舱:门店风险评级、营收概览、平台经济性
  • 门店分级:红/黄/绿三色风险评级与明细
  • 态势感知:健康度评分、自动化预警、跨模块关联分析、趋势预测
  • 风险明细:异常账单、零实收、收银员风险
  • 智能排班:客流热力图、排班匹配度、人效对标、考勤预警
  • 成本分析:理论成本vs实际成本、成本方差、菜品级分析
  • 会员复购:会员占比、复购率、营销方案效果
  • SKU分析ABC分类、菜品销售结构

2. 技术架构

┌─────────────────────────────────────────────────┐
│  前端 (React + TypeScript + Vite)                │
│  - Recharts 图表库                               │
│  - @tanstack/react-query 数据请求                │
│  - 自研组件: MetricCard / FilterableTable /      │
│    CollapsibleSection / MonthPicker              │
│  - 部署到 Nginx 静态文件                          │
├─────────────────────────────────────────────────┤
│  后端 (Express + TypeScript)                     │
│  - 路由按模块拆分: data.ts / situational-        │
│    awareness.ts / smart-scheduling.ts /          │
│    cost-analysis.ts / store-expense.ts           │
│  - pg 库直连 PostgreSQL                          │
│  - JWT 认证 + 数据权限 (getDataScope)             │
│  - PM2 进程管理                                   │
├─────────────────────────────────────────────────┤
│  数据库 (PostgreSQL 15)                          │
│  - bill_query: 业务数据 (原始表 + 物化视图)       │
│  - sbrain_admin: 平台管理 (租户/用户/配置)        │
│  - FRP 隧道: 本地5432 → 服务器15432              │
└─────────────────────────────────────────────────┘

3. 数据流

原始Excel/CSV → 导入脚本 → bill_records / salary_detail_records / attendance_records
                                    ↓
                          物化视图层 (mv_*)
                    ┌─────────────┼─────────────┐
                    ↓             ↓             ↓
              mv_bill_hourly  mv_risk_*   mv_store_*_monthly
                    ↓             ↓             ↓
                        后端API (SQL查询)
                              ↓
                        前端Dashboard

4. 部署拓扑

组件 位置 说明
前端 服务器 Nginx /var/www/dm.all8ai.top 静态文件
后端 服务器 PM2 sbrain-server 进程,端口9333
数据库 本地 PostgreSQL 通过FRP隧道暴露到服务器15432
域名 dm.all8ai.top Nginx反向代理 /api/ → 后端

5. 关键设计决策

  1. 物化视图而非实时查询:原始表千万级,物化视图预聚合保证API响应速度
  2. FRP隧道而非云数据库:数据安全要求高,数据库留在本地,通过隧道供服务器访问
  3. 多租户SaaS架构sbrain_admin 管理租户配置,tenant_configs 表驱动数据源连接
  4. 数据权限分层:总部看全部门店、区域经理看本区域、店长看本店
  5. 默认月份参数:前端统一使用 DEFAULT_MONTH 常量,避免新月份无数据时空白