初始化:连锁餐饮数字化运营管理平台
This commit is contained in:
+521
@@ -0,0 +1,521 @@
|
||||
# 连锁餐饮数字化运营管理体系 — 技术架构方案与实施计划
|
||||
|
||||
> 基于现有 PostgreSQL 数据库、50+ 分析视图和 17 份分析报告,构建可落地的数字化运营管理平台
|
||||
> 目标:实现"数据发现问题 → 自动分级 → 生成门店任务 → 现场执行 → 周度检查 → 月度验收 → 有效经验标准化"闭环
|
||||
|
||||
---
|
||||
|
||||
## 一、现有资产盘点
|
||||
|
||||
### 1.1 数据库资产
|
||||
|
||||
| 资产 | 规模 | 说明 |
|
||||
|---|---:|---|
|
||||
| `public.bill_records` | 1,677,990行 | 原始账单,196个文本字段(c001-c196) |
|
||||
| `public.bill_columns` | — | 字段映射字典 |
|
||||
| `public.dish_sales_details` | 5,553,314行 | 菜品销售明细,91家门店 |
|
||||
| `public.inventory_cost_records` | 54,973行 | 盘点倒挤成本,121个成本单位 |
|
||||
| `public.inventory_store_mapping` | — | 成本单位→销售门店映射 |
|
||||
| `analytics` schema | 3表+41视图+9物化视图 | 已建分析层 |
|
||||
|
||||
### 1.2 数据库连接
|
||||
|
||||
- PostgreSQL 15(Homebrew),`localhost:5432`
|
||||
- 数据库:`bill_query`
|
||||
- 用户:`freedak`(trust认证,仅本机开发)
|
||||
- 前端不直连数据库,通过后端API访问
|
||||
|
||||
---
|
||||
|
||||
## 二、技术选型
|
||||
|
||||
### 2.1 整体架构
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 前端 (React) │
|
||||
│ 管理驾驶舱 / 区域经理页面 / 店长页面 / 专业部门页面 │
|
||||
│ TailwindCSS + shadcn/ui │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ 后端 API (Node.js) │
|
||||
│ Express + TypeScript │
|
||||
│ RESTful API + WebSocket (实时推送) │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ 数据层 (PostgreSQL 15) │
|
||||
│ 原始层 → 标准层 → 事实层 → 汇总层 → 应用层 │
|
||||
│ bill_query @ localhost:5432 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 2.2 技术栈明细
|
||||
|
||||
| 层 | 技术 | 理由 |
|
||||
|---|---|---|
|
||||
| 前端框架 | React 18 + TypeScript | 组件化、类型安全、生态成熟 |
|
||||
| UI组件 | TailwindCSS + shadcn/ui | 快速构建高质量管理界面 |
|
||||
| 图表 | Recharts | React原生图表库,支持下钻交互 |
|
||||
| 路由 | React Router v6 | 多页面管理 |
|
||||
| 状态管理 | TanStack Query (React Query) | 服务端状态管理,缓存/刷新/乐观更新 |
|
||||
| 后端 | Node.js + Express + TypeScript | 轻量、快速开发、与前端同语言 |
|
||||
| 数据库驱动 | pg (node-postgres) | PostgreSQL原生驱动 |
|
||||
| API风格 | RESTful | 简单直观,适合管理后台 |
|
||||
| 认证 | JWT (json-webtoken) | 轻量级角色权限控制 |
|
||||
| 进程管理 | tsx (开发) / pm2 (生产) | 开发热重载,生产稳定 |
|
||||
|
||||
### 2.3 项目结构
|
||||
|
||||
```
|
||||
SBrainCO/
|
||||
├── package.json # 根工作区配置
|
||||
├── run.md # 数据库连接信息
|
||||
├── 技术架构方案与实施计划.md # 本文档
|
||||
├── 马兰拉面数据分析/ # 现有分析文档和SQL(保留不动)
|
||||
│
|
||||
├── server/ # 后端
|
||||
│ ├── package.json
|
||||
│ ├── tsconfig.json
|
||||
│ ├── src/
|
||||
│ │ ├── index.ts # 入口
|
||||
│ │ ├── config/
|
||||
│ │ │ └── database.ts # PostgreSQL连接池配置
|
||||
│ │ ├── middleware/
|
||||
│ │ │ ├── auth.ts # JWT认证中间件
|
||||
│ │ │ └── error.ts # 统一错误处理
|
||||
│ │ ├── routes/
|
||||
│ │ │ ├── overview.ts # 公司概览API
|
||||
│ │ │ ├── stores.ts # 门店管理API
|
||||
│ │ │ ├── cost.ts # 成本管理API
|
||||
│ │ │ ├── platform.ts # 平台经济性API
|
||||
│ │ │ ├── member.ts # 会员复购API
|
||||
│ │ │ ├── sku.ts # 商品SKU API
|
||||
│ │ │ ├── risk.ts # 风险内控API
|
||||
│ │ │ ├── tasks.ts # 任务闭环API
|
||||
│ │ │ └── benchmark.ts # 标杆分析API
|
||||
│ │ ├── services/
|
||||
│ │ │ ├── queryService.ts # 通用查询服务
|
||||
│ │ │ ├── taskService.ts # 任务生成与跟进
|
||||
│ │ │ └── gradingService.ts # 门店自动分级
|
||||
│ │ └── types/
|
||||
│ │ └── index.ts # 共享类型定义
|
||||
│ └── .env # 环境变量
|
||||
│
|
||||
├── client/ # 前端
|
||||
│ ├── package.json
|
||||
│ ├── tsconfig.json
|
||||
│ ├── vite.config.ts
|
||||
│ ├── index.html
|
||||
│ ├── src/
|
||||
│ │ ├── main.tsx
|
||||
│ │ ├── App.tsx # 路由配置
|
||||
│ │ ├── api/
|
||||
│ │ │ └── client.ts # API客户端
|
||||
│ │ ├── components/
|
||||
│ │ │ ├── ui/ # shadcn/ui基础组件
|
||||
│ │ │ ├── charts/ # 图表组件
|
||||
│ │ │ ├── layout/ # 布局组件
|
||||
│ │ │ └── common/ # 通用组件
|
||||
│ │ ├── pages/
|
||||
│ │ │ ├── HeadquartersDashboard.tsx # 总部驾驶舱
|
||||
│ │ │ ├── RegionalManager.tsx # 区域经理页面
|
||||
│ │ │ ├── StoreManager.tsx # 店长页面
|
||||
│ │ │ ├── ProductDept.tsx # 商品部页面
|
||||
│ │ │ ├── MemberDept.tsx # 会员部页面
|
||||
│ │ │ ├── FinanceDept.tsx # 财务页面
|
||||
│ │ │ ├── SupplyChainDept.tsx # 供应链页面
|
||||
│ │ │ ├── ITDept.tsx # 信息部页面
|
||||
│ │ │ └── StoreDetail.tsx # 门店详情(下钻)
|
||||
│ │ ├── hooks/
|
||||
│ │ │ └── useApi.ts # 数据查询hooks
|
||||
│ │ └── lib/
|
||||
│ │ └── utils.ts # 工具函数
|
||||
│ └── tailwind.config.ts
|
||||
│
|
||||
└── shared/ # 前后端共享类型
|
||||
└── types.ts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、数据层设计
|
||||
|
||||
### 3.1 现有视图直接复用
|
||||
|
||||
以下视图已有且可直接作为API数据源:
|
||||
|
||||
| API模块 | 数据源视图 | 说明 |
|
||||
|---|---|---|
|
||||
| 公司概览 | `v_overview_daily` | 日度实收/账单/客单/优惠率/毛利率 |
|
||||
| 门店记分卡 | `v_store_scorecard` | 门店核心指标 |
|
||||
| 门店风险分级 | `v_store_risk_rating` | 红黄绿分级 |
|
||||
| 门店经营象限 | `v_store_benchmark` | 明星/规模承压/高效潜力/重点改善 |
|
||||
| 门店行动清单 | `v_store_action_list` | 含品类结构和平台成本 |
|
||||
| 门店执行优先级 | `v_store_execution_priority` | 含餐段/会员/零实收机会 |
|
||||
| 平台经济性 | `v_store_platform_economics` | 三平台收入/折扣/佣金/成本率 |
|
||||
| 会员对比 | `v_member_comparison` | 会员vs非会员 |
|
||||
| 会员复购 | `v_store_repeat_summary_monthly` | 门店复购率 |
|
||||
| 餐段机会 | `v_store_meal_opportunity` | 餐段平均单价提升空间 |
|
||||
| 会员渗透 | `v_store_member_opportunity` | 会员转化空间 |
|
||||
| 零实收 | `v_zero_received_detail` / `v_zero_received_store_summary` | 零实收归因 |
|
||||
| 异常账单 | `v_anomaly_bills` / `v_anomaly_summary` | 异常明细和汇总 |
|
||||
| 营销方案 | `v_marketing_plan_summary` | 各营销方案效果 |
|
||||
| 收银员风险 | `v_cashier_risk` | 收银员异常率 |
|
||||
| 星期/小时 | `v_weekday_summary` / `v_hourly_summary` | 时间规律 |
|
||||
| 渠道 | `v_channel_daily` | 支付渠道结构 |
|
||||
| 品类 | `category_summary` / `v_store_category_mix` | 品类贡献和门店结构 |
|
||||
| 优惠 | `discount_summary` | 优惠项目汇总 |
|
||||
| 深入诊断 | `v_store_deep_diagnosis_april` | 门店综合诊断 |
|
||||
| 整改优先级 | `v_store_action_priority_deep_april` | P0/P1/P2分级 |
|
||||
| 成本对比 | `v_store_theoretical_actual_cost_april` | 理论vs实际 |
|
||||
| 分类成本 | `v_store_category_cost_benchmark_april` | 同类对标 |
|
||||
| 库存效率 | `v_store_inventory_efficiency_april` | 库存天数/异常 |
|
||||
| 标杆 | `v_store_benchmark_composite` | 综合标杆 |
|
||||
| 任务计划 | `store_monthly_action_plan` | 门店月度计划(表) |
|
||||
| 任务跟进 | `v_store_monthly_followup` | 计划vs实际 |
|
||||
| SKU ABC | `v_dish_sku_abc_april` | SKU分级 |
|
||||
| 菜品销售 | `dish_sales_april` / `dish_sku_summary_april` | 菜品分析 |
|
||||
| 搭售 | `dish_pair_summary_april` / `dish_basket_april` | 购物篮分析 |
|
||||
| 重点改进 | `v_priority_store_improvement` | 重点改进门店 |
|
||||
|
||||
### 3.2 需新建的表和视图
|
||||
|
||||
#### 任务闭环表(第一阶段核心)
|
||||
|
||||
```sql
|
||||
-- 门店整改任务表
|
||||
CREATE TABLE analytics.store_task (
|
||||
task_id SERIAL PRIMARY KEY,
|
||||
plan_month DATE NOT NULL,
|
||||
store_code TEXT NOT NULL,
|
||||
store_name TEXT NOT NULL,
|
||||
priority TEXT NOT NULL, -- P0/P1/P2/P3
|
||||
problem_indicator TEXT NOT NULL, -- 问题指标
|
||||
current_value NUMERIC,
|
||||
benchmark_value NUMERIC,
|
||||
target_value NUMERIC,
|
||||
problem_description TEXT,
|
||||
action_required TEXT, -- 具体行动,不允许只写"加强管理"
|
||||
owner TEXT NOT NULL, -- 责任人
|
||||
collaborators TEXT, -- 协同人
|
||||
deadline DATE NOT NULL,
|
||||
status TEXT DEFAULT '待启动', -- 待启动/进行中/已完成/已验收/已回滚
|
||||
process_evidence TEXT, -- 过程证据(照片URL、文档链接)
|
||||
verification_indicator TEXT, -- 验收指标
|
||||
verification_result TEXT, -- 验收结果
|
||||
incomplete_reason TEXT, -- 未完成原因
|
||||
next_step TEXT, -- 下一步
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- 任务状态变更日志
|
||||
CREATE TABLE analytics.store_task_log (
|
||||
log_id SERIAL PRIMARY KEY,
|
||||
task_id INT REFERENCES analytics.store_task(task_id),
|
||||
action TEXT NOT NULL, -- 创建/更新/完成/验收/回滚
|
||||
old_status TEXT,
|
||||
new_status TEXT,
|
||||
operator TEXT NOT NULL,
|
||||
comment TEXT,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
```
|
||||
|
||||
#### 通用月度汇总视图(替代 `_april` 固定视图)
|
||||
|
||||
```sql
|
||||
-- 门店月度汇总(按 report_month 参数化)
|
||||
CREATE OR REPLACE FUNCTION analytics.f_store_monthly_summary(p_month DATE)
|
||||
RETURNS TABLE(...) AS $$
|
||||
SELECT ... FROM analytics.bill_fact
|
||||
WHERE date_trunc('month', closed_at) = p_month
|
||||
GROUP BY store_code, store_name;
|
||||
$$ LANGUAGE sql STABLE;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、API设计
|
||||
|
||||
### 4.1 API路由总览
|
||||
|
||||
| 方法 | 路径 | 说明 | 对应视图 |
|
||||
|---|---|---|---|
|
||||
| GET | `/api/overview` | 公司概览 | `v_overview_daily` |
|
||||
| GET | `/api/overview/daily` | 日度趋势 | `v_overview_daily` |
|
||||
| GET | `/api/stores` | 门店列表 | `v_store_scorecard` |
|
||||
| GET | `/api/stores/:code` | 门店详情 | 多视图联查 |
|
||||
| GET | `/api/stores/:code/daily` | 门店日度 | `v_store_daily` |
|
||||
| GET | `/api/stores/risk` | 门店风险分级 | `v_store_risk_rating` |
|
||||
| GET | `/api/stores/quadrant` | 经营象限 | `v_store_benchmark` |
|
||||
| GET | `/api/stores/priority` | 整改优先级 | `v_store_action_priority_deep_april` |
|
||||
| GET | `/api/stores/:code/cost` | 门店成本 | `v_store_theoretical_actual_cost_april` |
|
||||
| GET | `/api/stores/:code/platform` | 门店平台 | `v_store_platform_economics` |
|
||||
| GET | `/api/stores/:code/meal` | 门店餐段 | `v_store_meal_opportunity` |
|
||||
| GET | `/api/stores/:code/member` | 门店会员 | `v_store_member_opportunity` |
|
||||
| GET | `/api/cost/comparison` | 成本对比 | `v_store_theoretical_actual_cost_april` |
|
||||
| GET | `/api/cost/category-benchmark` | 分类成本对标 | `v_store_category_cost_benchmark_april` |
|
||||
| GET | `/api/cost/inventory` | 库存效率 | `v_store_inventory_efficiency_april` |
|
||||
| GET | `/api/platform/economics` | 平台经济性 | `v_store_platform_economics` |
|
||||
| GET | `/api/member/comparison` | 会员对比 | `v_member_comparison` |
|
||||
| GET | `/api/member/repeat` | 复购分析 | `v_store_repeat_summary_monthly` |
|
||||
| GET | `/api/sku/abc` | SKU ABC分析 | `v_dish_sku_abc_april` |
|
||||
| GET | `/api/sku/category` | 品类结构 | `category_summary` |
|
||||
| GET | `/api/sku/attach` | 搭售分析 | `dish_pair_summary_april` |
|
||||
| GET | `/api/risk/anomaly` | 异常账单 | `v_anomaly_bills` |
|
||||
| GET | `/api/risk/cashier` | 收银员风险 | `v_cashier_risk` |
|
||||
| GET | `/api/risk/zero-received` | 零实收 | `v_zero_received_detail` |
|
||||
| GET | `/api/marketing/plans` | 营销方案 | `v_marketing_plan_summary` |
|
||||
| GET | `/api/benchmark/composite` | 标杆分析 | `v_store_benchmark_composite` |
|
||||
| GET | `/api/tasks` | 任务列表 | `store_monthly_action_plan` |
|
||||
| GET | `/api/tasks/:id` | 任务详情 | `store_task` |
|
||||
| POST | `/api/tasks` | 创建任务 | `store_task` |
|
||||
| PUT | `/api/tasks/:id` | 更新任务 | `store_task` |
|
||||
| PUT | `/api/tasks/:id/verify` | 验收任务 | `store_task` |
|
||||
| GET | `/api/tasks/followup` | 任务跟进 | `v_store_monthly_followup` |
|
||||
| GET | `/api/time/weekday` | 星期规律 | `v_weekday_summary` |
|
||||
| GET | `/api/time/hourly` | 小时规律 | `v_hourly_summary` |
|
||||
| GET | `/api/channel` | 渠道结构 | `v_channel_daily` |
|
||||
|
||||
### 4.2 查询参数支持
|
||||
|
||||
- `month`: 月份筛选(默认2026-04)
|
||||
- `store_code`: 门店筛选
|
||||
- `priority`: 优先级筛选(P0/P1/P2/P3)
|
||||
- `risk_level`: 风险等级(红/黄/绿)
|
||||
- `quadrant`: 经营象限
|
||||
- `page` + `page_size`: 分页
|
||||
- `sort_by` + `sort_order`: 排序
|
||||
|
||||
### 4.3 响应格式
|
||||
|
||||
```typescript
|
||||
interface ApiResponse<T> {
|
||||
success: boolean;
|
||||
data: T;
|
||||
meta?: {
|
||||
total?: number;
|
||||
page?: number;
|
||||
page_size?: number;
|
||||
};
|
||||
error?: string;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、前端页面设计
|
||||
|
||||
### 5.1 页面与角色映射
|
||||
|
||||
| 页面 | 角色 | 核心内容 | 对应文档章节 |
|
||||
|---|---|---|---|
|
||||
| 总部驾驶舱 | 总经理/经营班子 | 公司利润桥、P0/P1门店、重大风险 | §9.1 |
|
||||
| 区域经理 | 区域经理 | 门店红黄绿、任务完成、周度改善 | §9.2 |
|
||||
| 店长页面 | 店长 | 昨日异常、今日待办、核心指标 | §9.3 / §6.1 |
|
||||
| 商品部 | 商品负责人 | SKU ABC、长尾、搭售、缺货 | §9.4 |
|
||||
| 会员部 | 会员负责人 | 首购、复购、沉睡、召回 | §9.4 |
|
||||
| 财务部 | 财务负责人 | 理论vs实际成本、平台费用、异常优惠 | §9.4 |
|
||||
| 供应链 | 供应链负责人 | 采购价格、库存、调拨、损耗 | §9.4 |
|
||||
| 信息部 | 信息负责人 | 数据更新状态、映射失败、接口异常 | §9.4 |
|
||||
| 门店详情 | 所有角色 | 门店全维度下钻 | 下钻页 |
|
||||
|
||||
### 5.2 总部驾驶舱详细设计
|
||||
|
||||
**首页指标卡**(对应 §9.1):
|
||||
- 实收金额 + 环比
|
||||
- 账单数 + 环比
|
||||
- 平均客单价 + 环比
|
||||
- 理论成本率
|
||||
- 实际成本率
|
||||
- 成本差异率
|
||||
- 平台合并加权成本率
|
||||
- 会员30日复购率
|
||||
- P0/P1门店数 + 实收覆盖
|
||||
|
||||
**图表区**:
|
||||
- 日度实收趋势折线图(可切换日/周/月)
|
||||
- 门店风险分级分布(红黄绿堆叠图)
|
||||
- 门店经营象限散点图(日均实收 × 毛利率)
|
||||
- 平台成本率分布柱状图
|
||||
- P0/P1门店实收覆盖瀑布图
|
||||
|
||||
**下钻能力**:
|
||||
- 公司 → 区域 → 门店 → 餐段 → 渠道 → SKU → 原料 → 任务
|
||||
|
||||
### 5.3 店长页面设计(对应 §6.1 / §9.3)
|
||||
|
||||
**昨日经营卡**(6个模块,每模块3个异常上限):
|
||||
- 收入:实收/账单/客单 vs 最近4个同星期
|
||||
- 商品:核心SKU销量/缺货/搭售率
|
||||
- 优惠:优惠率/异常优惠/平台活动
|
||||
- 会员:新会员/二次到店/待召回
|
||||
- 成本:高价值原料领用/报损/盘点异常
|
||||
- 风险:零实收/撤单/退款/异常操作
|
||||
|
||||
**今日待办**(最多3项):
|
||||
- 系统自动生成的任务
|
||||
- 可标记完成/填写原因/上传凭证
|
||||
|
||||
**本周进度**:
|
||||
- 核心指标 vs 目标的进度条
|
||||
- 任务完成率
|
||||
|
||||
### 5.4 区域经理页面设计(对应 §6.3 / §9.2)
|
||||
|
||||
- 门店红黄绿列表/地图
|
||||
- 本周需到店检查的门店
|
||||
- 各店核心指标(最多2个)
|
||||
- 任务责任人/截止日/状态
|
||||
- 同类门店基准对比
|
||||
- 最近4周趋势
|
||||
|
||||
---
|
||||
|
||||
## 六、任务闭环系统设计
|
||||
|
||||
### 6.1 自动分级逻辑(对应 §7.1)
|
||||
|
||||
```
|
||||
P0: 数据失真 / 重大风险 / 四项以上综合问题
|
||||
→ 当日确认、7天内形成方案
|
||||
P1: 对利润或顾客持续产生明显影响
|
||||
→ 48小时确认、当月整改
|
||||
P2: 单项指标偏弱但总体可控
|
||||
→ 一周内纳入计划
|
||||
P3: 正常波动或观察项
|
||||
→ 持续监控
|
||||
```
|
||||
|
||||
### 6.2 任务自动生成规则
|
||||
|
||||
基于 `v_store_action_priority_deep_april` 和 `store_monthly_action_plan`:
|
||||
- 高优惠(>23%) → 拆解平台折扣任务
|
||||
- 低毛利(<70%) → SKU成本分析任务
|
||||
- 高异常(>1.5%) → 全额优惠治理任务
|
||||
- 低复购(<25%) → 会员触达任务
|
||||
- 低客单(<33.63) → 餐段组合优化任务
|
||||
- 标杆门店 → 经验输出任务
|
||||
|
||||
### 6.3 任务字段(对应 §7.2)
|
||||
|
||||
每个任务必须包含:
|
||||
- 问题门店、问题指标、发生日期
|
||||
- 当前值、同类基准、目标值
|
||||
- 问题说明及可能原因
|
||||
- 具体行动(不允许只写"加强管理")
|
||||
- 责任人、协同人、截止日期
|
||||
- 过程证据
|
||||
- 验收指标和验收结果
|
||||
- 未完成原因及下一步
|
||||
|
||||
### 6.4 验收规则(对应 §6.4 / §7.3)
|
||||
|
||||
- 每家门店每月最多两个核心改进指标
|
||||
- 连续两周不改善 → 重新判断原因
|
||||
- 指标改善但顾客/收入恶化 → 回滚
|
||||
- 验收标准:收入稳定 + 毛利改善 + 客户指标稳定 + 异常率下降
|
||||
|
||||
---
|
||||
|
||||
## 七、实施路线图
|
||||
|
||||
### 第一阶段:0-30天 — 基础平台 + 管理驾驶舱
|
||||
|
||||
**目标**:让现有分析真正进入管理,实现可视化驾驶舱和任务闭环
|
||||
|
||||
| 周次 | 后端任务 | 前端任务 | 数据层任务 |
|
||||
|---|---|---|---|
|
||||
| W1 | 项目搭建、DB连接池、基础API框架 | 项目搭建、UI框架、布局组件 | 创建 `store_task` 表 |
|
||||
| W2 | 概览API、门店API、风险API | 总部驾驶舱首页 | 创建任务自动生成函数 |
|
||||
| W3 | 成本API、平台API、会员API、SKU API | 区域经理页面、门店详情页 | — |
|
||||
| W4 | 任务API(CRUD+验收)、标杆API | 店长页面、任务管理页面 | 任务自动生成并关联门店 |
|
||||
|
||||
**第一阶段交付物**:
|
||||
1. 总部驾驶舱(公司概览 + 门店分级 + 下钻)
|
||||
2. 区域经理页面(门店红黄绿 + 任务跟进)
|
||||
3. 店长页面(昨日经营卡 + 今日待办)
|
||||
4. 任务闭环系统(自动分级 → 生成任务 → 状态更新 → 验收)
|
||||
5. 门店详情页(全维度指标下钻)
|
||||
|
||||
**验收标准**:
|
||||
- 门店任务有责任人、有截止日、有结果
|
||||
- P0/P1门店问题可以下钻到具体指标和原始明细
|
||||
- 所有指标可按月份、门店筛选
|
||||
|
||||
### 第二阶段:31-90天 — 补齐成本和利润主链路
|
||||
|
||||
| 模块 | 任务 |
|
||||
|---|---|
|
||||
| 数据层 | 建设标准主数据(dim_store/dim_sku/dim_material等) |
|
||||
| 数据层 | 将 `_april` 固定视图改为通用月度模型 |
|
||||
| 数据层 | 建立周趋势、同比、环比和整改前后对照 |
|
||||
| 后端 | 通用月度参数化API |
|
||||
| 前端 | 趋势对比页面、整改前后对照 |
|
||||
| 前端 | 专业部门页面(商品/会员/财务/供应链/信息) |
|
||||
| 前端 | 标杆分析页面与经验推广跟踪 |
|
||||
|
||||
**第二阶段交付物**:
|
||||
1. 商品部页面(SKU ABC + 长尾治理 + 搭售分析)
|
||||
2. 会员部页面(复购漏斗 + 沉睡召回 + 活动贡献)
|
||||
3. 财务页面(理论vs实际成本 + 平台损益 + 异常优惠)
|
||||
4. 供应链页面(库存效率 + 异常货品 + 成本对标)
|
||||
5. 信息部页面(数据质量监控)
|
||||
6. 月度参数化模型(支持任意月份切换)
|
||||
7. 趋势对比和整改前后对照
|
||||
|
||||
### 第三阶段:3-6个月 — 预测和精细化运营
|
||||
|
||||
- 餐段销量预测、备货建议
|
||||
- 排班建议
|
||||
- 会员分层、流失预警、自动召回
|
||||
- SKU新品准入和旧品退出机制
|
||||
- 供应商评价
|
||||
|
||||
---
|
||||
|
||||
## 八、开发环境与启动命令
|
||||
|
||||
### 8.1 环境要求
|
||||
|
||||
- Node.js >= 18
|
||||
- PostgreSQL 15(已有)
|
||||
- npm 或 pnpm
|
||||
|
||||
### 8.2 环境变量
|
||||
|
||||
```env
|
||||
# server/.env
|
||||
DB_HOST=localhost
|
||||
DB_PORT=5432
|
||||
DB_NAME=bill_query
|
||||
DB_USER=freedak
|
||||
DB_PASSWORD=
|
||||
PORT=3001
|
||||
JWT_SECRET=your-secret-key
|
||||
CLIENT_URL=http://localhost:5173
|
||||
```
|
||||
|
||||
### 8.3 启动命令
|
||||
|
||||
```bash
|
||||
# 安装依赖
|
||||
cd server && npm install
|
||||
cd ../client && npm install
|
||||
|
||||
# 开发模式启动
|
||||
cd server && npm run dev # 后端 http://localhost:3001
|
||||
cd client && npm run dev # 前端 http://localhost:5173
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 九、关键约束与注意事项
|
||||
|
||||
1. **不修改现有SQL和视图**:所有现有分析视图保持不动,后端API直接查询
|
||||
2. **不修改原始数据表**:`bill_records`、`dish_sales_details`等保持原样
|
||||
3. **新增表放在 `analytics` schema**:与现有分析对象统一管理
|
||||
4. **API不暴露SQL**:后端封装查询逻辑,前端只消费RESTful API
|
||||
5. **月份参数化**:所有API支持 `month` 参数,默认 `2026-04`
|
||||
6. **角色权限**:总部/区域/店长/专业部门看到不同页面和数据范围
|
||||
7. **移动端适配**:店长页面优先移动端,其他页面桌面端为主
|
||||
8. **数据安全**:JWT认证,敏感数据脱敏,不暴露数据库连接信息
|
||||
Reference in New Issue
Block a user