293 lines
7.9 KiB
Markdown
293 lines
7.9 KiB
Markdown
# ERP微服务架构与数据库设计报告
|
||
|
||
## 文档信息
|
||
- **项目名称**:ERP Java微服务系统
|
||
- **版本**:V1.0
|
||
- **日期**:2026-04-04
|
||
- **微服务数量**:23个
|
||
- **数据库数量**:13个
|
||
|
||
---
|
||
|
||
## 一、总体架构
|
||
|
||
### 1.1 微服务列表
|
||
|
||
| 序号 | 服务名称 | 服务说明 | 端口 | 数据库 |
|
||
|------|----------|----------|------|--------|
|
||
| 1 | user-service | 用户服务 | 8081 | user_db |
|
||
| 2 | order-service | 订单服务 | 8082 | order_db |
|
||
| 3 | product-service | 商品服务 | 8083 | product_db |
|
||
| 4 | inventory-service | 库存服务 | 8084 | inventory_db |
|
||
| 5 | warehouse-service | 仓库服务 | 8085 | warehouse_db |
|
||
| 6 | finance-service | 财务服务 | 8086 | finance_db |
|
||
| 7 | customer-service | 客户管理 | 8087 | customer_db |
|
||
| 8 | supplier-service | 供应商管理 | 8088 | supplier_db |
|
||
| 9 | purchase-service | 采购管理 | 8089 | purchase_db |
|
||
| 10 | invoice-service | 发票服务 | 8090 | invoice_db |
|
||
| 11 | notification-service | 通知服务 | 8091 | notification_db |
|
||
| 12 | ai-service | AI服务 | 8092 | ai_db |
|
||
| 13 | file-service | 文件服务 | 8093 | file_db |
|
||
| 14 | permission-service | 权限服务 | 8094 | permission_db |
|
||
| 15 | tenant-service | 租户服务 | 8095 | tenant_db |
|
||
| 16 | approval-flow-service | 审批流服务 | 8096 | approval_db |
|
||
| 17 | reconciliation-service | 对账服务 | 8097 | reconciliation_db |
|
||
| 18 | report-service | 报表服务 | 8098 | report_db |
|
||
| 19 | dashboard-service | 仪表盘服务 | 8099 | dashboard_db |
|
||
| 20 | system-tool-service | 系统工具服务 | 8100 | system_tool_db |
|
||
| 21 | admin-service | 超级管理员服务 | 8101 | admin_db |
|
||
| 22 | category-service | 分类服务 | 8102 | category_db |
|
||
| 23 | api-gateway | API网关 | 8000 | 无(路由) |
|
||
|
||
---
|
||
|
||
## 二、数据库详细设计
|
||
|
||
### 2.1 user_db(用户服务)
|
||
|
||
**服务**:user-service
|
||
**主要表**:
|
||
- users(用户表)
|
||
- roles(角色表)
|
||
- permissions(权限表)
|
||
- user_roles(用户角色关联)
|
||
- login_logs(登录日志)
|
||
|
||
**核心字段**:id, username, password, email, phone, status, created_at
|
||
|
||
---
|
||
|
||
### 2.2 order_db(订单服务)
|
||
|
||
**服务**:order-service
|
||
**主要表**:
|
||
- orders(订单主表)
|
||
- order_items(订单明细)
|
||
- order_logs(订单操作日志)
|
||
- settlement_reports(结算报表)
|
||
- order_settlements(订单结算)
|
||
|
||
**核心字段**:order_no, customer_id, total_amount, status, created_at
|
||
|
||
---
|
||
|
||
### 2.3 product_db(商品服务)
|
||
|
||
**服务**:product-service
|
||
**主要表**:
|
||
- goods(商品表)
|
||
- brands(品牌表)
|
||
- categories(分类表)
|
||
- goods_sku(SKU规格)
|
||
|
||
**核心字段**:goods_no, name, price, stock, status
|
||
|
||
---
|
||
|
||
### 2.4 warehouse_db(仓库服务)
|
||
|
||
**服务**:warehouse-service
|
||
**主要表**:
|
||
- stock(库存表)
|
||
- stock_logs(库存流水)
|
||
- warehouses(仓库表)
|
||
- locations(库位表)
|
||
- inbound_order(入库单)
|
||
- outbound_order(出库单)
|
||
- transfer_order(调拨单)
|
||
- stock_alert_config(预警配置)
|
||
- stock_alert_notification(预警通知)
|
||
|
||
**核心字段**:sku_id, warehouse_id, quantity, locked, reserved
|
||
|
||
---
|
||
|
||
### 2.5 finance_db(财务服务)
|
||
|
||
**服务**:finance-service
|
||
**主要表**:
|
||
- finance_transactions(财务流水)
|
||
- account_balances(账户余额)
|
||
- payments(付款记录)
|
||
- receipts(收款记录)
|
||
|
||
**核心字段**:transaction_no, type, amount, balance_before, balance_after
|
||
|
||
---
|
||
|
||
### 2.6 customer_db(客户管理)
|
||
|
||
**服务**:customer-service
|
||
**主要表**:
|
||
- customers(客户表)
|
||
- customer_contacts(联系人)
|
||
- customer_addresses(地址)
|
||
- customer_follow_ups(跟进记录)
|
||
- customer_relationships(客户关系)
|
||
- customer_statistics(统计)
|
||
|
||
**核心字段**:customer_no, name, level, phone, address
|
||
|
||
---
|
||
|
||
### 2.7 supplier_db(供应商管理)
|
||
|
||
**服务**:supplier-service
|
||
**主要表**:
|
||
- suppliers(供应商表)
|
||
- supplier_contacts(供应商联系人)
|
||
- supplier_bank_accounts(银行账户)
|
||
- supplier_ratings(评级记录)
|
||
- inquiry_sheets(询价单)
|
||
|
||
**核心字段**:supplier_no, name, contact, phone, status
|
||
|
||
---
|
||
|
||
### 2.8 purchase_db(采购管理)
|
||
|
||
**服务**:purchase-service
|
||
**主要表**:
|
||
- purchase_orders(采购订单)
|
||
- purchase_inbound(采购入库)
|
||
- purchase_return(采购退货)
|
||
- suppliers(供应商)
|
||
|
||
**核心字段**:purchase_no, supplier_id, total_amount, status
|
||
|
||
---
|
||
|
||
### 2.9 invoice_db(发票服务)
|
||
|
||
**服务**:invoice-service
|
||
**主要表**:
|
||
- invoices(发票表)
|
||
- invoice_items(发票明细)
|
||
|
||
**核心字段**:invoice_no, customer_id, amount, type, status
|
||
|
||
---
|
||
|
||
### 2.10 notification_db(通知服务)
|
||
|
||
**服务**:notification-service
|
||
**主要表**:
|
||
- notifications(通知消息)
|
||
- notification_templates(模板)
|
||
|
||
**核心字段**:title, content, type, recipient, status
|
||
|
||
---
|
||
|
||
### 2.11 ai_db(AI服务)
|
||
|
||
**服务**:ai-service
|
||
**主要表**:
|
||
- ai_conversations(对话记录)
|
||
- ai_messages(消息记录)
|
||
- ai_usage_logs(用量日志)
|
||
|
||
**核心字段**:conversation_id, model, prompt, response
|
||
|
||
---
|
||
|
||
### 2.12 file_db(文件服务)
|
||
|
||
**服务**:file-service
|
||
**主要表**:
|
||
- files(文件表)
|
||
- file_groups(文件分组)
|
||
|
||
**核心字段**:file_name, file_path, file_size, mime_type
|
||
|
||
---
|
||
|
||
### 2.13 其他数据库
|
||
|
||
| 数据库 | 服务 | 主要表 |
|
||
|--------|------|--------|
|
||
| permission_db | permission-service | roles, permissions |
|
||
| tenant_db | tenant-service | tenants, packages |
|
||
| approval_db | approval-flow-service | audit_rules, audit_logs |
|
||
| reconciliation_db | reconciliation-service | reconciliation_bills |
|
||
| report_db | report-service | data_exports |
|
||
| dashboard_db | dashboard-service | dashboard_configs |
|
||
| system_tool_db | system-tool-service | system_configs, operation_logs |
|
||
|
||
---
|
||
|
||
## 三、技术栈
|
||
|
||
### 3.1 后端技术
|
||
- **框架**:Spring Boot 3.2 / Spring Cloud Alibaba
|
||
- **ORM**:MyBatis-Plus 3.5
|
||
- **注册中心**:Nacos
|
||
- **配置中心**:Nacos
|
||
- **消息队列**:RocketMQ
|
||
- **分布式事务**:Seata(AT模式)
|
||
- **API网关**:Spring Cloud Gateway
|
||
- **数据库**:MySQL 8.0
|
||
- **缓存**:Redis
|
||
|
||
### 3.2 基础设施
|
||
- **容器化**:Docker + Kubernetes
|
||
- **监控**:SkyWalking
|
||
- **日志**:ELK Stack
|
||
- **对象存储**:MinIO
|
||
|
||
---
|
||
|
||
## 四、服务间调用关系
|
||
|
||
```
|
||
客户端
|
||
↓
|
||
API Gateway(认证、限流、路由)
|
||
↓
|
||
┌─────────────────────────────────────────┐
|
||
│ 业务微服务层 │
|
||
├─────────────────────────────────────────┤
|
||
│ user-service ←→ permission-service │
|
||
│ order-service ←→ inventory-service │
|
||
│ order-service ←→ finance-service │
|
||
│ order-service ←→ warehouse-service │
|
||
│ purchase-service ←→ supplier-service │
|
||
│ purchase-service ←→ warehouse-service │
|
||
│ purchase-service ←→ finance-service │
|
||
│ customer-service ←→ order-service │
|
||
└─────────────────────────────────────────┘
|
||
↓
|
||
分布式事务(Seata)
|
||
↓
|
||
消息队列(RocketMQ)
|
||
```
|
||
|
||
---
|
||
|
||
## 五、部署架构
|
||
|
||
### 5.1 Kubernetes部署
|
||
- 每个微服务独立Deployment
|
||
- HPA自动扩缩容
|
||
- 探针健康检查
|
||
- 资源限制(CPU/内存)
|
||
|
||
### 5.2 数据库部署
|
||
- 每个数据库独立Pod
|
||
- 主从复制
|
||
- 定期备份
|
||
|
||
---
|
||
|
||
## 六、后续规划
|
||
|
||
1. **服务合并**:考虑将小服务合并,减少服务数量
|
||
2. **读写分离**:对订单、商品等大表做读写分离
|
||
3. **分库分表**:对超大数据量表做分片
|
||
4. **缓存优化**:增加Redis缓存,减少数据库压力
|
||
5. **API文档**:完善Swagger/OpenAPI文档
|
||
|
||
---
|
||
|
||
**文档生成时间**:2026-04-04
|
||
**生成人**:丫头AI助手 |