423baff73b
- Docker bridge 网络隔离(8000 端口封死) - Gunicorn 4 Worker 多进程 - Alembic 数据库迁移基线 - 日志轮转 20m×3 - JWT 密钥 + DB 密码 + CORS 收紧 - 3-2-1 备份链路(NAS + R740-B 冷备) - 连接池 pool_pre_ping + pool_recycle=3600
124 lines
6.0 KiB
Markdown
124 lines
6.0 KiB
Markdown
---
|
||
创建时间: 2026-02-27T15:07
|
||
更新时间: 2026-02-27T15:13
|
||
tags:
|
||
- WebApp
|
||
- work
|
||
---
|
||
# 项目现状与后端开发交接说明书 (Project Handover Document)
|
||
|
||
## 1. 项目概况与技术栈 (Project Overview & Tech Stack)
|
||
|
||
**业务背景**: 本项目为专为**润滑油行业**深度定制的 B2B 企业级 ERP/CRM 综合系统。业务链路完整覆盖了“客(客户与客情)、货(产品与库存)、单(订单与发货)、财(发票与智能报销)、权(组织与权限)”五大核心中后台数字化流转。
|
||
|
||
**技术栈要求**:
|
||
|
||
- **前端 (已完成 UI 占位)**:Vue 3 (Composition API), TypeScript, Element Plus, Vite.
|
||
|
||
- **后端 (即将开发,请 AI 注意)**:[⚠️请在此处填入你期望的后端语言,如:Node.js (NestJS) / Java (Spring Boot) / Python (FastAPI)] + MySQL/PostgreSQL 关系型数据库 + Redis (用于 Token 鉴权与缓存)。
|
||
|
||
|
||
## 2. 已完成的前端模块全景图 (Completed Frontend Modules)
|
||
|
||
现阶段已完成全套核心前台视图(UI/UX)搭建与交互逻辑封皮,主要包含以下独立路由模块:
|
||
|
||
- **`/` 及基础框架 (Layout)**:基于 `el-container` 的经典折叠侧边栏与顶部面包屑导航,预留多级路由。
|
||
|
||
- **`/customers` (客户管理大盘)**:涵盖高级检索,实现 A/B/C 三级高净值客户的标签化表格总览。
|
||
|
||
- **`/customers/detail` (客户详情)**:深度整合 AI。左侧档案卡+AI客情健康度;右侧/下方搭载沉浸式时间轴(Timeline),及弹窗式 `AI 拜访简报生成器`。
|
||
|
||
- **`/products` (产品与库存)**:采用“左树右表”布局。左侧分类树,右侧精细管理多包装规格 SKU,内置双抽屉查看详情及【出入库流水账】。
|
||
|
||
- **`/orders` (订单管理)**:业务极度复杂的交易枢纽。含【客户专属历史定价自动带出】逻辑,精准追踪发货状态(待/部分/已发货)及付款进度(进度条跟踪)。
|
||
|
||
- **`/shipping` (物流发货记录)**:与订单强关联,支持【一笔订单分批发货】,追踪承运方与物流单号。
|
||
|
||
- **`/finance` (财务发票与报销中心)**:
|
||
|
||
- **大一统票据池**:上传即刻 OCR 提取,底层实行软删除(作废)。
|
||
|
||
- **智能报销申请 (草稿体系)**:左侧票据池拉取,右侧购物车封装(内置费用描述及两级票据类型转换),实时合计。
|
||
|
||
- **专属 A4 打印**:利用 CSS `@media print` 穿透重绘出带大写金额转化、极高信噪比的定制版报销单。
|
||
|
||
- **`/settings` (系统设置与权限)**:标准 RBAC 控制台。左树(部门)右表(员工);角色池分配极细粒度的“数据横向穿透权限”(全部/本部门/仅本人)及菜单按钮权限。
|
||
|
||
|
||
## 3. 核心业务数据结构 (Core Data Structures / API Contracts)
|
||
|
||
_注:这是后端建立 SQL Schema 的绝对契约基准。_
|
||
|
||
**1. 客户与日志实体 (Customer & FollowUp)**
|
||
|
||
- **Customer**: `id`, `name`, `level`, `industry`, `contact`, `phone`, `aiScore`, `address`, `status`
|
||
|
||
- **FollowUpLog**: `id`, `customerId`, `salespersonId`, `content`, `emotionType`, `nextVisitTime`, `createTime` (用于生成 AI 简报的底层饲料)
|
||
|
||
|
||
**2. 产品库存实体 (Product SKU & InventoryFlow)**
|
||
|
||
- **ProductSku**: `id`, `categoryId`, `skuCode`, `name`, `spec` (如 200L/桶), `standardPrice`, `stockQty`, `warningThreshold`, `status`
|
||
|
||
- **InventoryFlow**: `id`, `skuCode`, `changeQty` (+/-), `reason` (进货/出库/损耗), `operatorId`, `createTime`
|
||
|
||
|
||
**3. 订单交易实体 (Order)**
|
||
|
||
- **OrderMain**: `orderNo`, `customerId`, `totalAmount`, `shippingState` (pending/partial/shipped), `paymentState` (unpaid/partial/cleared), `createTime`
|
||
|
||
- **OrderItem**: `id`, `orderNo`, `skuCode`, `qty`, `unitPrice`, `subTotal`
|
||
|
||
|
||
**4. 独立发货单实体 (Shipping - 承接分批发货)**
|
||
|
||
- **ShippingRecord**: `shippingNo`, `orderNo`, `carrier` (如德邦), `trackingNo`, `status` (transit/delivered), `shipDate`
|
||
|
||
- **ShippingItem**: `id`, `shippingNo`, `skuCode`, `shippedQty` (本次实际发货量)
|
||
|
||
|
||
**5. 财务及报销实体 (Invoice & Expense)**
|
||
|
||
- **InvoicePool** (票据池): `id`, `uploaderId`, `fileUrl`, `merchantName`, `amount`, `invoiceDate`, `type` (客户发票/报销发票), `is_deleted` (防物理篡改)
|
||
|
||
- **ExpenseRecord** (报销总单): `systemNo`, `applicantId`, `totalAmount`, `status` (draft/pending/approved/rejected)
|
||
|
||
- **ExpenseDetail** (报销明细行): `id`, `systemNo`, `invoiceId`, `expenseDesc`, `originalType` (油费/招待), `offsetType` (冲顶类型), `amount`
|
||
|
||
|
||
**6. 权限角色实体 (Role & Setup)**
|
||
|
||
- **User**: `userId`, `deptId`, `roleId`, `username`, `passwordHash`, `status`
|
||
|
||
- **Role**: `roleId`, `roleName`, `dataScope` (all/dept_and_sub/self), `menuKeys`
|
||
|
||
|
||
## 4. 下一阶段开发规划 (Next Phase Planning)
|
||
|
||
前端 UI 及交互体验已接近完全体(目前皆由 `ref/reactive` 驱动的纯本地响应式黑盒)。开启新一轮对话进入后端主导阶段,强烈建议按以下顺位破冰:
|
||
|
||
1. **确定后端框架与建库方案**:
|
||
|
||
- 优先依据上述实体契约搭建关系型数据库模型(含 ER 关联图设计)。
|
||
|
||
- 注意:所有财务与流水表强制引入 `is_deleted` 及 `update_time` 等审计字段。
|
||
|
||
2. **鉴权与 RBAC 拦截栈基座开发**:
|
||
|
||
- 开发 JWT Token 签发与认证体系。
|
||
|
||
- 核心难点预警:必须在底层封装针对 `dataScope` 的 SQL 动态拼接过滤器,严防数据越权访问。
|
||
|
||
3. **消除前端 Mock 层联调**:
|
||
|
||
- 配置前端代理环境。
|
||
|
||
- 开发通用 CRUD 接口,逐步替换 Vue 文件中的 Mock 数据。
|
||
|
||
4. **复杂流体业务 API 攻坚**:
|
||
|
||
- 开发“历史专享价”带出接口。
|
||
|
||
- 开发“分批发货关联扣减订单待发数量”的事务一致性逻辑。
|
||
|
||
- 开发“购物车报销合单”的长事务锁定逻辑。 |