erp-java/docs/微服务架构与数据库设计报告.md

293 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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_skuSKU规格
**核心字段**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_dbAI服务
**服务**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
- **分布式事务**SeataAT模式
- **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助手