# 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助手