# 集团管理多公司AI智能进销存应用系统 - 全栈架构文档
## 版本信息
| 版本 | 日期 | 描述 | 作者 |
|------|------|------|------|
| 1.0 | 2025-10-20 | 创建集团级进销存系统全栈架构文档 | Claude |
## 1. 系统概述
### 1.1 项目背景
集团管理多公司AI智能进销存应用系统是一个面向集团化企业的全栈供应链管理平台,支持母子公司多租户架构,集成AI服务实现智能决策,覆盖供应商管理、销售管理、库存管理、采购管理、客户档案管理等核心业务。
### 1.2 系统目标
- 构建集团统一的供应链管理平台
- 通过AI技术实现智能化决策支持
- 支持多端访问(Web端 + 小程序端)
- 实现母子公司数据隔离和权限穿透
- 降低人工操作成本30%以上
- 提升库存周转率15-20%
### 1.3 架构原则
- **多租户架构**: 支持母子公司数据隔离
- **多端统一**: Web端和小程序端共享API和数据模型
- **AI驱动**: 集成AI服务实现智能决策
- **模块化设计**: 业务功能模块化,支持独立扩展
- **性能优先**: API响应时间 < 200ms,支持100+并发用户
## 2. 高层架构设计
### 2.1 整体架构图
```mermaid
graph TB
subgraph "客户端层"
A[Web管理后台
React + shadcn/ui] --> E[API网关]
B[小程序端
Taro多端框架] --> E
C[H5移动端
响应式设计] --> E
D[数据大屏
可视化展示] --> E
end
subgraph "API网关层"
E[Hono API网关] --> F[认证中间件]
E --> G[权限中间件]
E --> H[多租户路由]
E --> I[AI服务代理]
end
subgraph "业务服务层"
J[组织架构服务] --> K[数据存储层]
L[供应商管理服务] --> K
M[销售管理服务] --> K
N[库存管理服务] --> K
O[采购管理服务] --> K
P[客户管理服务] --> K
Q[AI决策服务] --> K
R[文件管理服务] --> K
end
subgraph "数据存储层"
K["PostgreSQL 17
主数据库"] --> S[业务数据]
K --> T[用户权限数据]
K --> U[组织架构数据]
V["Redis 7
缓存层"] --> W[会话缓存]
V --> X[热点数据]
Y["MinIO
对象存储"] --> Z[文件存储]
end
subgraph "AI服务层"
AA[第三方AI服务] --> AB[销售预测]
AA --> AC[库存优化]
AA --> AD[供应商匹配]
AA --> AE[客户分析]
end
subgraph "基础设施层"
AF[Docker容器] --> AG[多八多云端环境]
AH[Node.js运行时] --> AI[生产部署]
AJ[监控告警] --> AK[运维管理]
end
style A fill:#e1f5fe
style B fill:#f3e5f5
style E fill:#fff3e0
style J fill:#e8f5e8
style K fill:#f0fff0
style AA fill:#fff0f5
```
### 2.2 多端架构
#### 2.2.1 Web端架构
- **技术栈**: React 19.1.0 + TypeScript + shadcn/ui + Tailwind CSS
- **状态管理**: React Query + Context API
- **路由**: React Router v7
- **构建工具**: Vite 7.0.0
- **部署**: 静态资源 + Node.js服务端渲染
#### 2.2.2 小程序端架构
- **技术栈**: Taro 4.1.4 + TypeScript + React 18
- **多端支持**: 微信小程序、支付宝小程序、H5、RN
- **状态管理**: 本地存储 + Context API
- **UI组件**: 自定义组件 + 小程序原生组件
- **构建工具**: Taro CLI + Webpack
#### 2.2.3 API共享架构
- **统一API**: Hono 4.8.5 RPC类型安全API
- **认证统一**: JWT Bearer Token跨端共享
- **数据模型**: 前后端共享TypeScript类型定义
- **错误处理**: 统一错误格式和状态码
## 3. 多租户数据隔离方案
### 3.1 组织架构设计
```typescript
// 公司实体
@Entity('companies')
export class Company {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column({ nullable: true })
parentId: number;
@ManyToOne(() => Company, company => company.children)
parent: Company;
@OneToMany(() => Company, company => company.parent)
children: Company[];
@OneToMany(() => User, user => user.company)
users: User[];
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}
// 用户实体扩展
@Entity('users')
export class User {
// 现有字段...
@Column()
companyId: number;
@ManyToOne(() => Company, company => company.users)
company: Company;
}
```
### 3.2 数据隔离策略
#### 3.2.1 数据库层面
- **表设计**: 所有业务表添加`company_id`字段
- **索引优化**: 为`company_id`字段创建复合索引
- **查询过滤**: 自动添加`WHERE company_id = ?`条件
- **外键约束**: 确保数据引用完整性
#### 3.2.2 应用层面
- **中间件拦截**: 请求级别自动注入company_id
- **权限检查**: 验证用户对目标公司的访问权限
- **数据范围**: 基于角色和公司层级的数据可见性
### 3.3 权限穿透机制
#### 3.3.1 母公司权限
- **全数据访问**: 可以访问所有子公司的数据
- **数据聚合**: 跨公司数据统计和分析
- **管理权限**: 子公司用户和权限管理
#### 3.3.2 子公司权限
- **数据隔离**: 只能访问本公司数据
- **业务操作**: 独立的业务处理流程
- **数据上报**: 向母公司上报关键数据
## 4. AI服务集成架构
### 4.1 AI服务架构图
```mermaid
graph LR
A[业务系统] --> B[AI服务网关]
B --> C[销售预测服务]
B --> D[库存优化服务]
B --> E[供应商匹配服务]
B --> F[客户分析服务]
C --> G[历史销售数据]
D --> H[库存数据]
E --> I[供应商数据]
F --> J[客户数据]
K[第三方AI平台] --> L[模型训练]
L --> M[模型部署]
M --> B
```
### 4.2 AI功能模块
#### 4.2.1 销售预测
- **输入**: 历史销售数据、季节性因素、市场趋势
- **输出**: 未来销售预测、库存建议
- **算法**: 时间序列分析、机器学习模型
#### 4.2.2 库存优化
- **输入**: 当前库存、销售预测、供应商交付周期
- **输出**: 最优库存水平、补货建议
- **算法**: 库存优化模型、安全库存计算
#### 4.2.3 供应商匹配
- **输入**: 采购需求、供应商能力、历史表现
- **输出**: 最优供应商推荐、合作建议
- **算法**: 多维度评分、智能匹配
#### 4.2.4 客户分析
- **输入**: 客户行为、购买历史、信用记录
- **输出**: 客户价值评估、信用评级
- **算法**: 客户分群、行为分析
### 4.3 AI服务集成
#### 4.3.1 API设计
```typescript
// AI服务接口定义
interface AIService {
// 销售预测
predictSales(params: SalesPredictionParams): Promise;
// 库存优化
optimizeInventory(params: InventoryOptimizationParams): Promise;
// 供应商匹配
matchSuppliers(params: SupplierMatchingParams): Promise;
// 客户分析
analyzeCustomers(params: CustomerAnalysisParams): Promise;
}
```
#### 4.3.2 集成策略
- **异步处理**: 长时间AI计算采用异步任务
- **缓存机制**: 缓存AI计算结果,减少重复计算
- **降级处理**: AI服务不可用时提供基础决策
- **监控告警**: AI服务性能和准确性监控
## 5. 核心业务模块设计
### 5.1 组织架构管理模块
#### 5.1.1 功能特性
- 母子公司树形层级管理
- 用户分配和权限配置
- 跨公司数据权限控制
- 组织架构导入导出
#### 5.1.2 数据模型
```typescript
interface Organization {
companies: Company[];
users: User[];
roles: Role[];
permissions: Permission[];
}
```
### 5.2 供应商管理模块
#### 5.2.1 功能特性
- 供应商全生命周期管理
- 证件管理和合作等级
- 供应商评价和备注系统
- AI供应商匹配推荐
#### 5.2.2 数据模型
```typescript
interface Supplier {
id: number;
name: string;
contactInfo: ContactInfo;
certificates: Certificate[];
cooperationLevel: CooperationLevel;
ratings: Rating[];
companyId: number;
}
```
### 5.3 销售管理模块
#### 5.3.1 功能特性
- 基础销售流程管理
- 多彩宝订单导入和校验
- 多维度订单统计
- AI客户分析和信用评估
#### 5.3.2 数据模型
```typescript
interface SalesOrder {
id: number;
customerId: number;
items: OrderItem[];
status: OrderStatus;
totalAmount: number;
companyId: number;
aiRecommendations: AIRecommendation[];
}
```
### 5.4 库存管理模块
#### 5.4.1 功能特性
- 总库存和分仓库库存管理
- AI辅助分仓库自动分配
- 实时库存监控和预警
- 库存盘点和库位管理
#### 5.4.2 数据模型
```typescript
interface Inventory {
id: number;
productId: number;
warehouseId: number;
quantity: number;
reservedQuantity: number;
minStockLevel: number;
maxStockLevel: number;
companyId: number;
aiOptimization: AIOptimization;
}
```
### 5.5 采购管理模块
#### 5.5.1 功能特性
- 采购计划和订单管理
- 进货单和合同管理
- AI供应商匹配和采购审批
- 供应商交付跟踪
#### 5.5.2 数据模型
```typescript
interface PurchaseOrder {
id: number;
supplierId: number;
items: PurchaseItem[];
status: PurchaseStatus;
totalAmount: number;
companyId: number;
aiSupplierMatch: AISupplierMatch;
}
```
### 5.6 客户档案管理模块
#### 5.6.1 功能特性
- 客户等级和关键信息管理
- 客户信息修改及保存
- 历史采购订单关联
- AI客户价值分析
#### 5.6.2 数据模型
```typescript
interface Customer {
id: number;
name: string;
contactInfo: ContactInfo;
level: CustomerLevel;
creditRating: CreditRating;
orderHistory: OrderHistory[];
companyId: number;
aiAnalysis: AIAnalysis;
}
```
## 6. 多端数据同步和API共享
### 6.1 统一API设计
#### 6.1.1 API规范
- **版本控制**: `/api/v1/` 前缀
- **认证方式**: JWT Bearer Token
- **数据格式**: JSON统一格式
- **错误处理**: 统一错误码和消息
#### 6.1.2 RPC类型安全
```typescript
// 使用Hono RPC实现类型安全API
const app = new Hono()
.route('/api/v1/auth', authRoutes)
.route('/api/v1/users', userRoutes)
.route('/api/v1/suppliers', supplierRoutes)
.route('/api/v1/sales', salesRoutes)
.route('/api/v1/inventory', inventoryRoutes)
.route('/api/v1/purchases', purchaseRoutes)
.route('/api/v1/customers', customerRoutes)
.route('/api/v1/ai', aiRoutes);
```
### 6.2 数据同步策略
#### 6.2.1 实时同步
- **WebSocket**: 关键数据实时推送
- **长轮询**: 兼容性更好的实时更新
- **服务端推送**: 重要事件通知
#### 6.2.2 离线同步
- **本地存储**: 小程序端数据缓存
- **增量同步**: 网络恢复后数据同步
- **冲突解决**: 数据版本控制和冲突检测
### 6.3 缓存策略
#### 6.3.1 Redis缓存
- **会话缓存**: 用户会话和权限信息
- **热点数据**: 频繁访问的业务数据
- **AI结果**: AI计算结果的临时缓存
#### 6.3.2 客户端缓存
- **React Query**: 服务端状态管理
- **LocalStorage**: 用户偏好设置
- **IndexedDB**: 离线数据存储
## 7. 性能和安全考虑
### 7.1 性能优化策略
#### 7.1.1 数据库优化
- **索引策略**: 复合索引优化查询性能
- **分库分表**: 大数据量时的水平扩展
- **读写分离**: 主从复制提升读性能
- **连接池**: 数据库连接复用
#### 7.1.2 应用层优化
- **CDN加速**: 静态资源分发
- **缓存策略**: 多级缓存减少数据库压力
- **异步处理**: 耗时操作异步执行
- **压缩传输**: Gzip压缩减少网络传输
#### 7.1.3 前端优化
- **代码分割**: 按需加载减少初始包大小
- **图片优化**: WebP格式和懒加载
- **Bundle分析**: 构建产物分析和优化
- **预加载**: 关键资源预加载
### 7.2 安全架构
#### 7.2.1 认证授权
- **JWT认证**: 无状态token认证
- **RBAC权限**: 基于角色的访问控制
- **多租户隔离**: 公司级别数据权限
- **会话管理**: 安全的会话生命周期
#### 7.2.2 数据安全
- **传输加密**: TLS 1.3加密传输
- **数据加密**: 敏感数据加密存储
- **输入验证**: Zod schema严格验证
- **SQL防护**: TypeORM参数化查询
#### 7.2.3 应用安全
- **CSP头**: 内容安全策略
- **XSS防护**: 输入输出转义
- **CSRF防护**: 跨站请求伪造防护
- **速率限制**: API访问频率控制
#### 7.2.4 基础设施安全
- **网络隔离**: 最小化网络暴露
- **防火墙**: 严格的端口控制
- **安全监控**: 实时安全事件监控
- **备份恢复**: 定期数据备份和恢复测试
## 8. 部署和运维策略
### 8.1 部署架构
#### 8.1.1 开发环境
- **本地开发**: Docker Compose全栈环境
- **热重载**: 前后端开发时热更新
- **测试环境**: 独立的测试数据库
#### 8.1.2 生产环境
- **容器化部署**: Docker容器统一部署
- **负载均衡**: Nginx反向代理和负载均衡
- **高可用**: 多实例部署保证可用性
- **监控告警**: 全面的系统监控
### 8.2 运维策略
#### 8.2.1 监控体系
- **应用监控**: 性能指标、错误率、响应时间
- **业务监控**: 关键业务指标监控
- **基础设施**: 服务器资源使用情况
- **日志管理**: 集中式日志收集和分析
#### 8.2.2 备份恢复
- **数据库备份**: 定时全量和增量备份
- **文件备份**: MinIO对象存储备份
- **配置备份**: 应用配置版本管理
- **恢复测试**: 定期恢复演练
#### 8.2.3 伸缩策略
- **水平伸缩**: 无状态服务水平扩展
- **垂直伸缩**: 数据库和缓存资源升级
- **自动伸缩**: 基于负载的自动扩缩容
- **容量规划**: 基于业务增长的容量预测
### 8.3 CI/CD流程
#### 8.3.1 持续集成
- **代码检查**: ESLint + TypeScript检查
- **单元测试**: Vitest单元测试覆盖
- **集成测试**: API和组件集成测试
- **E2E测试**: Playwright端到端测试
#### 8.3.2 持续部署
- **自动化构建**: Docker镜像自动构建
- **环境部署**: 多环境自动化部署
- **蓝绿部署**: 零停机部署策略
- **回滚机制**: 快速回滚到稳定版本
## 9. 技术栈详细说明
### 9.1 后端技术栈
- **运行时**: Node.js 20.19.2
- **框架**: Hono 4.8.5
- **数据库**: PostgreSQL 17
- **ORM**: TypeORM 0.3.25
- **缓存**: Redis 7
- **对象存储**: MinIO
- **认证**: JWT + bcrypt
- **验证**: Zod schema验证
- **测试**: Vitest + hono/testing
### 9.2 前端技术栈
- **框架**: React 19.1.0 + TypeScript
- **路由**: React Router v7
- **状态管理**: React Query + Context API
- **UI组件**: shadcn/ui + Radix UI
- **样式**: Tailwind CSS 4.1.11
- **构建工具**: Vite 7.0.0
- **测试**: Vitest + Testing Library
### 9.3 小程序技术栈
- **框架**: Taro 4.1.4 + React 18
- **多端支持**: 微信、支付宝、H5、RN等
- **状态管理**: 本地存储 + Context API
- **UI组件**: 自定义组件库
- **构建工具**: Taro CLI + Webpack
- **HTTP客户端**: Taro.request + RPC客户端
### 9.4 基础设施
- **容器化**: Docker + Docker Compose
- **部署平台**: 多八多云端开发容器环境
- **数据库**: PostgreSQL 17 (默认: postgres)
- **缓存**: Redis 7
- **存储**: MinIO (默认存储桶: d8dai)
- **网络**: 默认开放8080端口外网访问
## 10. 开发工作流
### 10.1 开发环境搭建
```bash
# 安装依赖
pnpm install
# 启动完整开发环境
pnpm dev
# 单独启动Web端
pnpm dev:web
# 单独启动小程序H5
pnpm dev:mini
# 单独启动微信小程序
pnpm dev:weapp
```
### 10.2 测试策略
```bash
# 运行所有测试
pnpm test
# API测试
pnpm test:api
# 组件测试
pnpm test:components
# E2E测试
pnpm test:e2e
pnpm test:e2e:chromium
# 测试覆盖率
pnpm test:coverage
```
### 10.3 数据库操作
```bash
# 数据库迁移
pnpm db:migrate
# 种子数据
pnpm db:seed
# 数据库备份
pnpm db:backup
# 数据库恢复
pnpm db:restore
```
## 11. 风险评估和缓解策略
### 11.1 技术风险
- **多租户性能**: 数据库查询性能优化和索引策略
- **AI服务稳定性**: 降级处理和备用方案
- **多端兼容性**: 充分的跨端测试和兼容性处理
### 11.2 业务风险
- **数据隔离复杂性**: 严格的权限验证和数据范围控制
- **AI决策准确性**: 人工审核和决策修正机制
- **系统集成风险**: 充分的集成测试和回滚计划
### 11.3 安全风险
- **数据泄露风险**: 严格的数据权限控制和加密
- **API安全风险**: 全面的输入验证和速率限制
- **基础设施安全**: 定期的安全扫描和漏洞修复
## 12. 后续演进规划
### 12.1 短期目标(3-6个月)
- 完成基础多租户架构搭建
- 实现核心业务模块MVP
- 集成基础AI决策功能
- 完成Web端和小程序端开发
### 12.2 中期目标(6-12个月)
- 优化AI算法准确性和性能
- 扩展更多业务场景支持
- 提升系统性能和稳定性
- 完善监控和运维体系
### 12.3 长期目标(12个月以上)
- 支持更多小程序平台
- 扩展国际化支持
- 构建开放API生态
- 探索更多AI应用场景
## 13. 附录
### 13.1 相关文档
- [产品需求文档](./prd.md)
- [现有架构文档](./architecture.md)
- [测试策略文档](./architecture/testing-strategy.md)
- [API设计文档](./architecture/api-design-integration.md)
### 13.2 技术决策依据
- **选择Hono框架**: 轻量级、高性能、优秀的TypeScript支持
- **使用Taro小程序**: 多端统一开发、React技术栈一致性
- **PostgreSQL数据库**: 关系型数据、ACID事务、成熟稳定
- **MinIO对象存储**: S3兼容、部署简单、性能优秀
### 13.3 联系方式
- **架构师**: Claude
- **最后更新**: 2025-10-20
- **下次评审**: 2025-11-20
---
**文档状态**: 正式版
**适用范围**: 集团管理多公司AI智能进销存应用系统全栈架构设计