Browse Source

✨ feat(docs): 创建集团AI智能进销存系统完整架构文档

- 新增集团级多租户架构文档,支持母子公司数据隔离
- 添加AI服务集成架构,基于DeepSeek API统一接入
- 设计6大核心业务模块:组织架构、供应商、销售、库存、采购、客户管理
- 实现多端支持架构(Web + 小程序),统一API设计
- 完善安全架构、性能优化和部署运维策略
- 更新技术栈文档,统一使用DeepSeek AI服务
- 重构架构文档索引,优化文档组织结构
yourname 1 tháng trước cách đây
mục cha
commit
82f0639bd3

+ 673 - 0
docs/architecture-group-inventory.md

@@ -0,0 +1,673 @@
+# 集团管理多公司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管理后台<br/>React + shadcn/ui] --> E[API网关]
+        B[小程序端<br/>Taro多端框架] --> E
+        C[H5移动端<br/>响应式设计] --> E
+        D[数据大屏<br/>可视化展示] --> 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<br/>主数据库"] --> S[业务数据]
+        K --> T[用户权限数据]
+        K --> U[组织架构数据]
+        V["Redis 7<br/>缓存层"] --> W[会话缓存]
+        V --> X[热点数据]
+        Y["MinIO<br/>对象存储"] --> 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<SalesPredictionResult>;
+
+  // 库存优化
+  optimizeInventory(params: InventoryOptimizationParams): Promise<InventoryOptimizationResult>;
+
+  // 供应商匹配
+  matchSuppliers(params: SupplierMatchingParams): Promise<SupplierMatchingResult>;
+
+  // 客户分析
+  analyzeCustomers(params: CustomerAnalysisParams): Promise<CustomerAnalysisResult>;
+}
+```
+
+#### 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智能进销存应用系统全栈架构设计

+ 500 - 830
docs/architecture.md

@@ -1,967 +1,637 @@
-# D8D Starter 遗留系统增强架构
+# 集团管理多公司AI智能进销存应用系统 - 全栈架构文档
 
 ## 版本信息
 | 版本 | 日期 | 描述 | 作者 |
 |------|------|------|------|
-| 2.0 | 2025-09-14 | 增强架构文档 | Winston |
-| 2.1 | 2025-09-19 | 添加数据库定时备份策略 | Winston |
-| 2.2 | 2025-09-19 | 更新测试策略文档引用 | Winston |
-| 2.3 | 2025-09-20 | 根据实际项目结构更新测试架构和共享目录 | Winston |
-| 2.4 | 2025-09-20 | 完善BMAD全栈架构规范,添加高层架构图、API规范、安全架构 | Winston |
+| 3.0 | 2025-10-20 | 基于PRD创建集团AI智能进销存系统全栈架构 | Winston |
 
 ## 介绍
 
-本文档定义了D8D Starter项目的架构增强方案,基于对现有代码的深度分析。主要目标是将技术实现转化为明确的业务价值主张,同时保持与现有系统的完全兼容。
-
-**注意**: 本项目的详细架构文档已拆分为多个子文档,位于 `docs/architecture/` 目录中。如需查看完整的架构文档结构,请参阅 [架构文档索引](./architecture/index.md)。
+本文档定义了集团管理多公司AI智能进销存应用系统的完整技术架构。系统基于D8D Starter技术栈构建,支持多租户架构、AI智能决策和多端访问(Web + 小程序)。
 
 ### 文档范围
-全面定义系统增强的架构方法和集成策略
+全面定义集团级进销存系统的技术架构,包括多租户数据隔离、AI服务集成、多端支持等关键设计。
 
 ### 变更日志
 | 日期 | 版本 | 描述 | 作者 |
 |------|------|------|------|
-| 2024-09-14 | 1.0 | 初始现有系统分析 | Winston |
-| 2025-09-14 | 2.0 | 增强架构文档 | Winston |
-| 2025-09-19 | 2.1 | 添加数据库定时备份策略 | Winston |
-| 2025-09-19 | 2.2 | 更新测试策略文档引用 | Winston |
-| 2025-09-20 | 2.3 | 根据实际项目结构更新测试架构和共享目录 | Winston |
-| 2025-09-20 | 2.4 | 完善BMAD全栈架构规范,添加高层架构图、API规范、安全架构 | Winston |
-
-## 现有项目分析
-
-### 当前项目状态
-- **主要用途**: 现代化的全栈Web应用启动模板,专注于开发者体验
-- **技术栈总结**: Node.js 20.18.3 + Hono 4.8.5 + React 19.1.0 + TypeORM 0.3.25 + PostgreSQL 17
-- **架构风格**: 分层架构,前后端分离但统一仓库管理
-- **部署方式**: Docker Compose本地开发,Node.js生产部署
-
-### 可用文档分析
-✅ **技术文档完整**:
-- 技术栈和版本信息准确
-- 源码结构和模块组织清晰
-- 数据模型定义完整
-- API规范通过OpenAPI自动生成
-
-⚠️ **需要补充**:
-- 完整的业务需求文档
-- 测试策略和覆盖率
-- 性能优化指南
-- 安全最佳实践
-
-### 识别出的约束
-- 必须保持与现有shadcn设计系统的兼容性
-- 需要支持PostgreSQL关系型数据库
-- 前端构建基于Vite,后端基于Hono
-- 部署环境支持Docker容器化
-- 现有代码中存在一些`any`类型需要修复
-
-## 增强范围和集成策略
-
-### 增强概述
-- **增强类型**: 现有项目功能完善和业务需求文档化
-- **范围**: 将技术实现转化为明确的业务价值主张
-- **集成影响级别**: 中等 - 主要添加文档和优化,不改变核心架构
-
-### 集成方法
-- **代码集成策略**: 增量改进,保持向后兼容
-- **数据库集成**: 无模式变更,仅优化查询和索引
-- **API集成**: 保持现有API不变,增强文档和错误处理
-- **UI集成**: 保持现有shadcn设计系统,优化用户体验
-
-### 兼容性要求
-- **现有API兼容性**: 100%保持,不破坏现有客户端
-- **数据库Schema兼容性**: 无变更,确保数据完整性
-- **UI/UX一致性**: 遵循现有设计模式,保持视觉统一
-- **性能影响**: 响应时间保持在100ms以内,无性能退化
+| 2025-10-20 | 3.0 | 基于PRD创建集团AI智能进销存系统全栈架构 | Winston |
 
 ## 高层架构
 
 ### 平台和基础设施选择
-**平台**: Docker + Node.js 本地开发部署
+**平台**: Docker + Node.js 多八多云端容器环境
 **核心服务**: PostgreSQL 17, Redis 7, MinIO对象存储
 **部署主机**: 多八多云端开发容器环境,开放8080端口外网访问
-**区域**: 本地开发环境,生产环境参数相同
+**小程序平台**: Taro多端框架(微信、支付宝、H5等)
 
 ### 架构图
 ```mermaid
 graph TD
     subgraph "前端应用层"
-        A[React 19 管理后台] --> B[React Router v7]
+        A[React 19 Web管理后台] --> B[React Router v7]
         A --> C[React Query 状态管理]
         A --> D[shadcn/ui 组件库]
+
+        E[Taro 多端小程序] --> F[微信小程序]
+        E --> G[支付宝小程序]
+        E --> H[H5移动端]
+        E --> I[其他小程序平台]
     end
 
     subgraph "API网关层"
-        E[Hono 4.8.5 API路由] --> F[Zod Schema验证]
-        E --> G[JWT认证中间件]
-        E --> H[OpenAPI文档生成]
+        J[Hono 4.8.5 API路由] --> K[Zod Schema验证]
+        J --> L[JWT认证中间件]
+        J --> M[多租户权限中间件]
+        J --> N[OpenAPI文档生成]
+        J --> O[AI服务代理]
     end
 
     subgraph "业务服务层"
-        I[通用CRUD服务] --> J[TypeORM实体管理]
-        I --> K[数据库备份工具]
-        I --> L[数据库恢复工具]
+        P[通用CRUD服务] --> Q[TypeORM实体管理]
+        R[组织架构服务] --> S[多租户数据隔离]
+        T[供应商管理服务] --> U[供应商评价系统]
+        V[销售管理服务] --> W[订单处理流程]
+        X[库存管理服务] --> Y[实时库存监控]
+        Z[采购管理服务] --> AA[采购审批流程]
+        AB[客户档案服务] --> AC[客户等级管理]
+        AD[AI决策服务] --> AE[智能预测分析]
     end
 
     subgraph "数据存储层"
-        M[PostgreSQL 17] --> N[用户数据]
-        M --> O[角色权限数据]
-        P[Redis 7 缓存] --> Q[会话缓存]
-        R[MinIO 对象存储] --> S[文件存储]
+        AF[PostgreSQL 17] --> AG[用户和组织数据]
+        AF --> AH[业务实体数据]
+        AF --> AI[AI决策记录]
+        AJ[Redis 7 缓存] --> AK[会话缓存]
+        AJ --> AL[业务数据缓存]
+        AM[MinIO 对象存储] --> AN[文件存储]
+    end
+
+    subgraph "AI服务层"
+        AO[第三方AI服务] --> AP[销售预测]
+        AO --> AQ[库存优化]
+        AO --> AR[供应商匹配]
+        AO --> AS[客户分析]
     end
 
     subgraph "基础设施层"
-        T[Docker Compose] --> U[本地开发环境]
-        V[Node.js 20.18.3] --> W[生产运行时]
+        AT[Docker Compose] --> AU[本地开发环境]
+        AV[Node.js 20.19.2] --> AW[生产运行时]
     end
 
-    A --> E
-    E --> I
-    I --> M
-    I --> P
-    E --> R
-    H --> X[Swagger UI /ui]
+    A --> J
+    E --> J
+    J --> P
+    J --> R
+    J --> T
+    J --> V
+    J --> X
+    J --> Z
+    J --> AB
+    J --> AD
+    P --> AF
+    AD --> AO
+    N --> AX[Swagger UI /ui]
 
     style A fill:#e1f5fe
-    style E fill:#f3e5f5
-    style I fill:#fff3e0
-    style M fill:#e8f5e8
-    style P fill:#ffebee
-    style R fill:#f3e5f5
+    style E fill:#e8f5e8
+    style J fill:#f3e5f5
+    style P fill:#fff3e0
+    style R fill:#fff0f5
+    style AD fill:#e1f5fe
+    style AO fill:#f0fff0
 ```
 
 ### 架构模式
-- **分层架构**: 清晰的前后端分离,统一的代码仓库管理
-- **组件化UI**: 基于React + shadcn/ui的可复用组件架构
-- **RESTful API**: 遵循OpenAPI规范的统一API设计
-- **通用CRUD模式**: 类型安全的通用数据操作服务
-- **中间件模式**: 统一的认证、验证、错误处理中间件
+- **分层架构**: 清晰的前后端分离,统一的API网关
+- **多租户架构**: 基于组织架构的数据隔离和权限管理
+- **微服务模块化**: 业务功能模块化,支持独立扩展
+- **AI驱动**: 深度集成AI服务,实现智能决策
+- **多端统一**: Web端和小程序端共享API和数据模型
 
 ## 技术栈
 
-### 现有技术栈维护
-| 类别 | 当前技术 | 版本 | 在增强中的用途 | 备注 |
-|------|----------|------|----------------|------|
-| 运行时 | Node.js | 20.18.3 | 服务器运行时环境 | ES模块支持 |
+### 后端技术栈
+| 类别 | 技术 | 版本 | 用途 | 备注 |
+|------|------|------|------|------|
+| 运行时 | Node.js | 20.19.2 | 服务器运行时环境 | ES模块支持 |
 | 框架 | Hono | 4.8.5 | Web框架和API路由 | RPC类型安全 |
-| 前端框架 | React | 19.1.0 | 用户界面构建 | 最新版本 |
-| 构建工具 | Vite | 7.0.0 | 开发服务器和构建 | 热重载支持 |
-| 数据库 | PostgreSQL | 17 | 数据持久化存储 | 通过TypeORM |
+| 数据库 | PostgreSQL | 17 | 数据持久化存储 | 多租户支持 |
 | ORM | TypeORM | 0.3.25 | 数据库操作抽象 | 实体管理 |
-| 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 设计一致性 |
-| 状态管理 | React Query | 5.83.0 | 服务端状态管理 | 数据同步 |
+| 缓存 | Redis | 7 | 会话和数据缓存 | 性能优化 |
+| 存储 | MinIO | latest | 对象存储服务 | 文件管理 |
+| 验证 | Zod | 4.x | Schema验证 | 类型安全 |
 | 认证 | JWT | 9.0.2 | 用户认证和安全 | Bearer Token |
+| 文档 | @hono/zod-openapi | latest | OpenAPI文档生成 | Swagger UI |
 
-### 新技术添加
-| 技术 | 版本 | 用途 | Rationale | 集成方法 |
-|------|------|------|-----------|-----------|
-| Vitest | 2.x | 单元测试框架 | 填补测试空白,确保代码质量,更好的TypeORM支持 | 集成到现有构建流程 |
-| Testing Library | 13.x | React组件测试 | 提供组件级测试能力 | 与React项目集成 |
-| hono/testing | 内置 | API端点测试 | 验证API功能和集成 | Hono官方测试工具,更好的类型安全 |
-| node-cron | latest | 定时任务调度 | Node.js定时任务调度库 | 集成到应用启动流程 |
-| MinIO | latest | 对象存储服务 | 提供可扩展的文件存储解决方案,支持大文件上传和分段上传 | 通过MinIO客户端SDK集成 |
-| MinIO客户端SDK | latest | MinIO API集成 | 提供与MinIO服务的完整交互能力 | 后端服务集成 |
-
-## 数据模型和Schema变更
-
-### 现有数据模型状态
-**用户模型**:
-- **现状**: 设计良好,包含完整的用户管理和权限系统
-- **关键属性**:
-  - `id`: number - 主键标识符
-  - `username`: string - 唯一用户名(主要登录标识)
-  - `email`: string | null - 可选邮箱地址
-  - `password`: string - 加密密码(bcrypt哈希)
-  - `roles`: Role[] - 用户角色多对多关系
-- **关系**: 与Role实体建立正确的多对多关系映射
-
-**文件管理模型**:
-- **现状**: 新增完整的文件管理系统,支持MinIO对象存储
-- **关键属性**:
-  - `id`: number - 主键标识符
-  - `name`: string - 文件名
-  - `path`: string - MinIO存储路径
-  - `size`: number - 文件大小(字节)
-  - `type`: string - 文件类型
-  - `uploadUserId`: number - 上传用户ID
-  - `uploadTime`: Date - 上传时间
-- **关系**: 与User实体建立多对一关系映射
-
-**优化重点**: 保持现有数据模型不变,新增文件管理功能,优化查询性能和验证逻辑
-
-### TypeScript接口定义
+### 前端技术栈(Web)
+| 类别 | 技术 | 版本 | 用途 | 备注 |
+|------|------|------|------|------|
+| 框架 | React | 19.1.0 | 用户界面构建 | 最新版本 |
+| 构建工具 | Vite | 7.0.0 | 开发服务器和构建 | 热重载支持 |
+| 路由 | React Router | v7 | 前端路由管理 | 声明式路由 |
+| 状态管理 | React Query | 5.83.0 | 服务端状态管理 | 数据同步 |
+| UI组件 | shadcn/ui | latest | 组件库 | 基于Radix UI |
+| 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 设计一致性 |
+| 类型检查 | TypeScript | 5.x | 类型安全 | 严格模式 |
+
+### 小程序技术栈
+| 类别 | 技术 | 版本 | 用途 | 备注 |
+|------|------|------|------|------|
+| 框架 | Taro | 4.1.4 | 多端小程序框架 | 一次开发多端运行 |
+| UI框架 | React | 18.0.0 | 小程序UI构建 | 与Web端共享逻辑 |
+| 状态管理 | @tanstack/react-query | 5.84.1 | 服务端状态管理 | 与Web端一致 |
+| 表单处理 | react-hook-form | 7.62.0 | 表单状态管理 | 类型安全 |
+| 验证 | Zod | 4.0.14 | Schema验证 | 与后端一致 |
+| 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 跨端样式 |
+
+### AI服务集成
+| 服务 | 用途 | 集成方式 | 数据流 |
+|------|------|----------|--------|
+| 销售预测 | 基于历史数据预测未来销售 | REST API | 销售数据 → AI服务 → 预测结果 |
+| 库存优化 | 智能库存分配和补货建议 | 异步处理 | 库存数据 → AI服务 → 优化建议 |
+| 供应商匹配 | 基于采购需求推荐供应商 | 实时调用 | 采购需求 → AI服务 → 供应商推荐 |
+| 客户分析 | 客户行为分析和信用评估 | 批量处理 | 客户数据 → AI服务 → 分析报告 |
+
+## 多租户架构设计
+
+### 组织架构实体设计
 ```typescript
-// 用户实体接口
-export interface User {
+// 公司实体
+interface Company {
   id: number;
-  username: string;
-  email: string | null;
-  password: string;
-  roles: Role[];
+  name: string;
+  code: string; // 公司编码
+  parentId: number | null; // 母公司ID
+  level: number; // 层级深度
+  path: string; // 层级路径
+  status: 'active' | 'inactive';
   createdAt: Date;
   updatedAt: Date;
 }
 
-// 角色实体接口
-export interface Role {
+// 用户实体扩展
+interface User {
   id: number;
-  name: string;
-  permissions: string[];
-  users: User[];
+  username: string;
+  email: string | null;
+  password: string;
+  companyId: number; // 所属公司
+  roles: Role[];
+  company: Company;
   createdAt: Date;
   updatedAt: Date;
 }
+```
 
-// 用户创建DTO
-export interface CreateUserDto {
-  username: string;
-  email?: string;
-  password: string;
-  roleIds?: number[];
-}
+### 数据隔离策略
 
-// 用户更新DTO
-export interface UpdateUserDto {
-  username?: string;
-  email?: string | null;
-  password?: string;
-  roleIds?: number[];
+**数据库层面**:
+- 所有业务表添加 `company_id` 字段
+- 通过数据库视图实现数据隔离
+- 使用行级安全策略(RLS)增强安全性
+
+**应用层面**:
+- 中间件自动注入 `company_id` 过滤条件
+- 权限系统支持数据访问控制
+- 审计日志记录所有数据访问操作
+
+### 权限穿透机制
+```typescript
+// 权限检查逻辑
+function checkDataAccess(user: User, targetCompanyId: number): boolean {
+  // 管理员可以访问所有数据
+  if (user.roles.some(role => role.name === 'super_admin')) {
+    return true;
+  }
+
+  // 母公司管理员可以访问子公司数据
+  if (user.roles.some(role => role.name === 'parent_admin')) {
+    return isChildCompany(user.companyId, targetCompanyId);
+  }
+
+  // 普通用户只能访问本公司数据
+  return user.companyId === targetCompanyId;
 }
+```
 
-// 文件实体接口
-export interface File {
+## 核心业务模块设计
+
+### 1. 组织架构管理模块
+**功能特性**:
+- 母子公司树形结构管理
+- 公司信息维护和状态管理
+- 用户分配到具体公司
+- 数据权限配置
+
+**数据模型**:
+```typescript
+interface Company {
   id: number;
   name: string;
-  type: string | null;
-  size: number | null;
+  code: string;
+  parentId: number | null;
+  level: number;
   path: string;
-  description: string | null;
-  uploadUserId: number;
-  uploadUser: User;
-  uploadTime: Date;
-  lastUpdated: Date | null;
-  createdAt: Date;
-  updatedAt: Date;
-  fullUrl: Promise<string>; // 异步获取预签名URL
+  status: 'active' | 'inactive';
+  contactInfo: ContactInfo;
+  businessInfo: BusinessInfo;
 }
+```
 
-// 文件创建DTO
-export interface CreateFileDto {
+### 2. 供应商管理模块
+**功能特性**:
+- 供应商全生命周期管理
+- 供应商评价和等级系统
+- 证件管理和合规检查
+- 供应商绩效分析
+
+**数据模型**:
+```typescript
+interface Supplier {
+  id: number;
   name: string;
-  type?: string;
-  size?: number;
-  description?: string;
-  uploadUserId: number;
+  code: string;
+  companyId: number;
+  contactInfo: ContactInfo;
+  businessInfo: BusinessInfo;
+  rating: number; // 1-5星评价
+  status: 'active' | 'inactive' | 'blacklisted';
+  documents: SupplierDocument[];
+  createdAt: Date;
+  updatedAt: Date;
 }
+```
 
-// 多部分上传策略响应
-export interface MultipartUploadPolicy {
-  uploadId: string;
-  bucket: string;
-  key: string;
-  host: string;
-  partUrls: string[];
-}
+### 3. 销售管理模块
+**功能特性**:
+- 销售订单全流程管理
+- 多彩宝订单导入和校验
+- 订单状态跟踪
+- 销售统计分析
 
-// 上传策略响应
-export interface UploadPolicy {
-  uploadPolicy: {
-    'x-amz-algorithm': string;
-    'x-amz-credential': string;
-    'x-amz-date': string;
-    'x-amz-security-token'?: string;
-    policy: string;
-    'x-amz-signature': string;
-    host: string;
-    key: string;
-    bucket: string;
-  };
+**数据模型**:
+```typescript
+interface SalesOrder {
+  id: number;
+  orderNumber: string;
+  companyId: number;
+  customerId: number;
+  warehouseId: number;
+  items: OrderItem[];
+  totalAmount: number;
+  status: 'pending' | 'confirmed' | 'shipped' | 'delivered' | 'cancelled';
+  source: 'manual' | 'duocaibao' | 'api';
+  createdAt: Date;
+  updatedAt: Date;
 }
+```
 
-// 分页响应接口
-export interface PaginatedResponse<T> {
-  data: T[];
-  pagination: {
-    total: number;
-    current: number;
-    pageSize: number;
-    totalPages: number;
-  };
+### 4. 库存管理模块
+**功能特性**:
+- 多仓库库存管理
+- 实时库存监控和预警
+- 库存调拨和盘点
+- AI库存分配建议
+
+**数据模型**:
+```typescript
+interface Inventory {
+  id: number;
+  productId: number;
+  warehouseId: number;
+  companyId: number;
+  quantity: number;
+  reservedQuantity: number; // 预留数量
+  availableQuantity: number; // 可用数量
+  minStock: number; // 最低库存
+  maxStock: number; // 最高库存
+  lastUpdated: Date;
 }
 ```
 
-### 数据关系
-- **User ↔ Role**: 多对多关系,通过中间表关联
-- **User → (createdAt, updatedAt)**: 自动时间戳管理
-- **Role → permissions**: 字符串数组存储权限列表
-
-### Schema集成策略
-- **数据库变更要求**: 新增文件管理表,优化现有表结构
-- **新表**: file表(文件管理)
-- **修改的表**: 无结构性变更
-- **新索引**: 为文件查询字段添加索引(name, uploadUserId, uploadTime)
-- **迁移策略**: 使用TypeORM迁移工具,确保数据完整性
-
-### 向后兼容性
-- 保持所有现有API端点不变
-- 确保现有数据查询继续正常工作
-- 不修改任何现有字段定义
-- 新增功能通过可选字段或新端点实现
-
-## 组件架构
-
-### 前端组件架构
-
-**实际项目组件组织**:
-```text
-src/client/
-├── admin/                 # 管理后台应用
-│   ├── components/        # 管理后台专用组件
-│   │   ├── ProtectedRoute.tsx    # 路由保护组件
-│   │   ├── ErrorPage.tsx         # 错误页面
-│   │   └── NotFoundPage.tsx      # 404页面
-│   ├── hooks/            # 管理后台Hooks
-│   │   └── AuthProvider.tsx      # 认证状态管理
-│   ├── layouts/          # 布局组件
-│   │   └── MainLayout.tsx        # 主布局
-│   ├── pages/            # 页面组件
-│   │   ├── Dashboard.tsx         # 仪表板
-│   │   ├── Login.tsx             # 登录页面
-│   │   ├── Users.tsx             # 用户管理
-│   │   └── Files.tsx             # 文件管理页面
-│   ├── routes.tsx        # 路由配置
-│   └── index.tsx         # 管理后台入口
-├── home/                 # 用户前台应用
-├── components/           # 共享UI组件
-│   └── ui/              # shadcn/ui组件库(50+组件)
-│       ├── button.tsx   # 按钮组件
-│       ├── input.tsx    # 输入框组件
-│       ├── table.tsx    # 表格组件
-│       └── ...          # 其他组件
-├── hooks/               # 共享Hooks
-├── lib/                 # 工具库
-├── utils/               # 工具函数
-│   └── minio.ts         # MinIO上传工具
-└── api.ts               # API客户端配置
+### 5. 采购管理模块
+**功能特性**:
+- 采购计划和需求管理
+- 采购订单和合同管理
+- 供应商匹配和审批流程
+- 进货验收和发票管理
+
+**数据模型**:
+```typescript
+interface PurchaseOrder {
+  id: number;
+  orderNumber: string;
+  companyId: number;
+  supplierId: number;
+  items: PurchaseItem[];
+  totalAmount: number;
+  status: 'draft' | 'submitted' | 'approved' | 'ordered' | 'received' | 'completed';
+  aiRecommendation: AIRecommendation; // AI供应商匹配建议
+  createdAt: Date;
+  updatedAt: Date;
+}
 ```
 
-**技术栈配置**:
-- **前端框架**: React 19.1.0 + TypeScript
-- **路由**: React Router v7
-- **状态管理**: @tanstack/react-query (服务端状态) + Context (本地状态)
-- **UI组件库**: shadcn/ui (基于Radix UI)
-- **构建工具**: Vite 7.0.0
-- **样式**: Tailwind CSS 4.1.11
-- **HTTP客户端**: 基于Hono Client的封装 + axios适配器
-
-### 后端组件架构
-
-**实际后端项目结构**:
-```text
-src/server/
-├── api/                    # API路由层
-│   ├── auth/              # 认证相关路由
-│   │   ├── login.ts       # 登录路由
-│   │   ├── logout.ts      # 登出路由
-│   │   └── register.ts    # 注册路由
-│   ├── users/             # 用户管理路由
-│   │   ├── index.ts       # 用户列表路由
-│   │   ├── [id].ts        # 用户详情路由
-│   │   └── __tests__/     # 路由测试
-│   ├── roles/             # 角色管理路由
-│   ├── files/              # 文件管理路由
-│   │   ├── multipart-policy/    # 多部分上传策略
-│   │   ├── multipart-complete/  # 完成多部分上传
-│   │   ├── [id]/               # 文件操作路由
-│   │   └── upload-policy/      # 上传策略路由
-│   └── __integration_tests__/  # 集成测试
-├── modules/               # 业务模块层
-│   ├── auth/              # 认证业务模块
-│   │   ├── auth.service.ts # 认证服务
-│   │   └── __tests__/     # 认证测试
-│   ├── users/             # 用户业务模块
-│   │   ├── user.entity.ts  # 用户实体
-│   │   ├── user.service.ts # 用户服务
-│   │   └── __tests__/     # 用户测试
-│   ├── files/              # 文件业务模块
-│   │   ├── file.entity.ts  # 文件实体
-│   │   ├── file.service.ts # 文件服务
-│   │   ├── minio.service.ts # MinIO服务
-│   │   ├── file.schema.ts  # 文件验证Schema
-│   │   └── __tests__/     # 文件测试
-├── utils/                 # 工具层
-│   ├── generic-crud.service.ts  # 通用CRUD服务
-│   ├── generic-crud.routes.ts   # 通用CRUD路由
-│   ├── errorHandler.ts    # 错误处理
-│   ├── backup.ts          # 数据库备份工具
-│   ├── restore.ts         # 数据库恢复工具
-│   ├── logger.ts          # 日志工具
-│   └── __tests__/         # 工具测试
-├── middleware/            # 中间件层
-│   ├── auth.middleware.ts           # 认证中间件
-│   └── permission.middleware.ts     # 权限中间件
-├── types/                # 类型定义
-├── data-source.ts        # 数据库连接配置
-└── index.ts              # 服务器入口
+### 6. 客户档案管理模块
+**功能特性**:
+- 客户信息全生命周期管理
+- 客户等级和信用评估
+- 历史订单关联分析
+- AI客户行为分析
+
+**数据模型**:
+```typescript
+interface Customer {
+  id: number;
+  name: string;
+  code: string;
+  companyId: number;
+  contactInfo: ContactInfo;
+  level: 'A' | 'B' | 'C' | 'D'; // 客户等级
+  creditRating: number; // 信用评分
+  totalOrders: number;
+  totalAmount: number;
+  lastOrderDate: Date | null;
+  aiAnalysis: CustomerAnalysis; // AI分析结果
+  createdAt: Date;
+  updatedAt: Date;
+}
 ```
 
-**后端技术栈配置**:
-- **框架**: Hono 4.8.5 + TypeScript
-- **数据库**: PostgreSQL 17 + TypeORM 0.3.25
-- **验证**: Zod schema验证
-- **认证**: JWT Bearer Token
-- **API文档**: @hono/zod-openapi + Swagger UI
-- **测试**: Vitest + hono/testing
-
-### 通用CRUD服务
-- **责任**: 提供类型安全的通用CRUD操作,支持自定义扩展
-- **现状**: 已实现完整功能,支持关联查询和复杂操作
-- **文件位置**: `src/server/utils/generic-crud.service.ts`
-- **路由生成**: `src/server/utils/generic-crud.routes.ts`
-- **优化重点**: 增强错误处理、添加测试覆盖、优化性能
-
-**文件管理服务**:
-- **责任**: 提供MinIO对象存储集成,支持文件上传、下载、删除等操作
-- **现状**: 已实现完整功能,支持分段上传、预签名URL生成
-- **核心功能**:
-  - 单文件上传(≤5MB)
-  - 多部分分段上传(>5MB大文件)
-  - 预签名URL生成(支持下载和直接访问)
-  - 文件元数据管理(数据库记录)
-  - 文件删除(同时删除MinIO对象和数据库记录)
-- **优化重点**: 增强大文件处理能力,优化上传性能
-
-### API文档组件
-- **责任**: 自动生成和维护OpenAPI文档
-- **现状**: 通过@hono/zod-openapi集成,提供Swagger UI
-- **访问路径**: `/ui` 端点
-- **优化重点**: 完善文档示例、确保文档与代码同步
-
-### 组件交互
+## AI服务集成架构
+
+### AI服务架构图
 ```mermaid
 graph TD
-    A[前端React组件] --> B[Hono API路由]
-    B --> C[通用CRUD服务]
-    C --> D[TypeORM实体]
-    C --> E[Zod验证]
-    B --> F[OpenAPI文档生成]
-    F --> G[Swagger UI]
-    B --> H[文件管理服务]
-    H --> I[MinIO对象存储]
-    H --> J[文件实体管理]
-
-    subgraph "文件上传流程"
-        K[前端上传组件] --> L[获取上传策略]
-        L --> M[直接上传到MinIO]
-        M --> N[更新文件记录]
-    end
+    A[业务系统] --> B[AI服务网关]
+    B --> C[销售预测服务]
+    B --> D[库存优化服务]
+    B --> E[供应商匹配服务]
+    B --> F[客户分析服务]
+
+    C --> G[历史销售数据]
+    C --> H[市场趋势数据]
+
+    D --> I[当前库存数据]
+    D --> J[需求预测数据]
+
+    E --> K[供应商数据库]
+    E --> L[采购需求数据]
+
+    F --> M[客户行为数据]
+    F --> N[交易历史数据]
+
+    O[第三方AI服务] --> P[机器学习模型]
+    O --> Q[自然语言处理]
+    O --> R[推荐算法]
+
+    C --> O
+    D --> O
+    E --> O
+    F --> O
 
     style A fill:#e1f5fe
     style B fill:#f3e5f5
-    style C fill:#fff3e0
-    style D fill:#e8f5e8
-    style H fill:#fff0f5
-    style I fill:#f0fff0
+    style O fill:#fff0f5
 ```
 
-## API设计和集成
-
-### API集成策略
-- **API集成策略**: 保持现有RESTful API设计,增强OpenAPI文档
-- **认证**: JWT Bearer Token,保持现有认证机制
-- **版本控制**: 使用v1前缀 (`/api/v1/`),保持向后兼容
-
-### OpenAPI规范
-```yaml
-openapi: 3.0.0
-info:
-  title: D8D Starter API
-  version: 1.0.0
-  description: D8D Starter项目RESTful API文档
-servers:
-  - url: http://localhost:3000/api/v1
-    description: 本地开发环境
-  - url: https://api.example.com/api/v1
-    description: 生产环境
-
-components:
-  securitySchemes:
-    BearerAuth:
-      type: http
-      scheme: bearer
-      bearerFormat: JWT
-  schemas:
-    User:
-      type: object
-      properties:
-        id:
-          type: integer
-          format: int64
-        username:
-          type: string
-        email:
-          type: string
-          nullable: true
-        roles:
-          type: array
-          items:
-            $ref: '#/components/schemas/Role'
-        createdAt:
-          type: string
-          format: date-time
-        updatedAt:
-          type: string
-          format: date-time
-    Role:
-      type: object
-      properties:
-        id:
-          type: integer
-          format: int64
-        name:
-          type: string
-        permissions:
-          type: array
-          items:
-            type: string
-        createdAt:
-          type: string
-          format: date-time
-        updatedAt:
-          type: string
-          format: date-time
-    PaginatedUsers:
-      type: object
-      properties:
-        data:
-          type: array
-          items:
-            $ref: '#/components/schemas/User'
-        pagination:
-          $ref: '#/components/schemas/Pagination'
-    Pagination:
-      type: object
-      properties:
-        total:
-          type: integer
-        current:
-          type: integer
-        pageSize:
-          type: integer
-        totalPages:
-          type: integer
-
-security:
-  - BearerAuth: []
-```
+### AI服务API设计
+```typescript
+// 销售预测请求
+interface SalesForecastRequest {
+  companyId: number;
+  productIds: number[];
+  period: '7d' | '30d' | '90d';
+  historicalData: SalesHistory[];
+}
 
-### API端点示例
-**用户管理端点**:
-- **方法**: GET
-- **端点**: `/api/v1/users`
-- **用途**: 获取用户分页列表
-- **集成**: 使用通用CRUD服务,支持搜索和过滤
-
-**文件管理端点**:
-- **方法**: POST
-- **端点**: `/api/v1/files/upload-policy`
-- **用途**: 生成文件上传策略和预签名URL
-- **集成**: 使用MinIO服务,支持分段上传和大文件处理
-
-**请求示例**:
-```json
-{
-  "page": 1,
-  "pageSize": 10,
-  "keyword": "搜索词",
-  "sortBy": "createdAt",
-  "sortOrder": "DESC"
+// 库存优化请求
+interface InventoryOptimizationRequest {
+  companyId: number;
+  warehouseId: number;
+  products: ProductStockInfo[];
+  demandForecast: DemandForecast[];
 }
-```
 
-**响应示例**:
-```json
-{
-  "data": [
-    {
-      "id": 1,
-      "email": "user@example.com",
-      "roles": [{"id": 1, "name": "admin"}]
-    }
-  ],
-  "pagination": {
-    "total": 100,
-    "current": 1,
-    "pageSize": 10
-  }
+// AI服务响应
+interface AIResponse<T> {
+  success: boolean;
+  data: T;
+  confidence: number; // 置信度 0-1
+  reasoning: string; // 决策理由
+  timestamp: Date;
 }
 ```
 
-## 源码树和文件组织
-
-### 实际项目结构
-```text
-d8d-starter/
-├── src/
-│   ├── client/                 # React前端应用
-│   │   ├── admin/              # 管理后台应用
-│   │   │   ├── components/     # 管理后台组件
-│   │   │   ├── hooks/          # 管理后台Hooks
-│   │   │   ├── layouts/        # 布局组件
-│   │   │   ├── pages/          # 页面组件
-│   │   │   ├── routes.tsx      # 路由配置
-│   │   │   └── index.tsx       # 入口文件
-│   │   ├── home/               # 用户前台应用(待开发)
-│   │   ├── components/         # 共享UI组件
-│   │   │   └── ui/            # shadcn/ui组件库
-│   │   ├── hooks/              # 共享Hooks
-│   │   ├── lib/                # 工具库
-│   │   ├── utils/              # 工具函数
-│   │   ├── api.ts              # API客户端
-│   │   └── index.tsx           # 前端入口
-│   ├── server/                 # Hono后端应用
-│   │   ├── api/                # API路由
-│   │   ├── modules/            # 业务模块
-│   │   ├── middleware/         # 中间件
-│   │   └── index.ts            # 服务器入口
-│   └── share/                  # 前后端共享代码
-│       └── types.ts            # TypeScript类型定义
-├── tests/
-│   └── e2e/                    # E2E测试 (Playwright)
-└── package.json
+### AI集成策略
+1. **异步处理**: 耗时AI任务异步执行,结果缓存
+2. **缓存机制**: AI计算结果缓存,减少重复计算
+3. **降级处理**: AI服务不可用时使用规则引擎
+4. **人工确认**: 重要AI决策需要人工确认
+5. **持续学习**: 基于用户反馈优化AI模型
+
+## 多端数据同步和API共享
+
+### 统一API设计
+```typescript
+// 通用分页响应
+interface PaginatedResponse<T> {
+  data: T[];
+  pagination: {
+    total: number;
+    current: number;
+    pageSize: number;
+    totalPages: number;
+  };
+}
+
+// 统一错误格式
+interface ApiError {
+  error: {
+    code: string;
+    message: string;
+    details?: Record<string, any>;
+    timestamp: string;
+    requestId: string;
+  };
+}
 ```
 
-### 集成指南
-- **文件命名**: 保持现有kebab-case命名约定
-- **文件夹组织**: 遵循功能模块划分,添加__tests__文件夹
-- **导入/导出模式**: 使用ES模块,保持现有别名系统(@/)
+### 数据同步策略
+1. **实时同步**: 关键业务数据实时同步
+2. **离线同步**: 小程序支持离线数据缓存
+3. **增量同步**: 只同步变更数据,减少网络流量
+4. **冲突解决**: 基于时间戳的冲突解决策略
 
-## 基础设施和部署集成
+### 多级缓存策略
+```typescript
+// 缓存层级设计
+interface CacheStrategy {
+  level1: 'memory'; // 内存缓存,快速访问
+  level2: 'redis';  // Redis缓存,应用共享
+  level3: 'database'; // 数据库,持久化存储
+  ttl: {
+    memory: 60,     // 60秒
+    redis: 300,     // 5分钟
+    database: 3600  // 1小时
+  };
+}
+```
+
+## 性能优化策略
+
+### 数据库优化
+1. **索引策略**: 为查询字段创建复合索引
+2. **分区表**: 按公司分区大表数据
+3. **查询优化**: 使用EXPLAIN分析慢查询
+4. **连接池**: 配置合理的数据库连接池
+
+### 应用层优化
+1. **缓存策略**: 多级缓存减少数据库访问
+2. **异步处理**: 非实时任务异步执行
+3. **批量操作**: 减少数据库事务次数
+4. **连接复用**: HTTP连接池和数据库连接复用
+
+### 前端优化
+1. **代码分割**: 按路由懒加载组件
+2. **图片优化**: 使用WebP格式和懒加载
+3. **缓存策略**: 静态资源长期缓存
+4. **压缩传输**: Gzip压缩减少传输大小
+
+## 安全架构
+
+### 认证授权
+1. **JWT认证**: Bearer Token,30分钟过期
+2. **RBAC权限**: 基于角色的访问控制
+3. **多租户隔离**: 数据访问权限控制
+4. **会话管理**: Redis存储会话状态
+
+### 数据安全
+1. **传输加密**: TLS 1.3加密所有通信
+2. **数据加密**: 敏感字段数据库层加密
+3. **备份加密**: 数据库备份文件AES-256加密
+4. **访问审计**: 所有操作记录审计日志
+
+### 应用安全
+1. **输入验证**: Zod Schema验证所有输入
+2. **SQL注入防护**: TypeORM参数化查询
+3. **XSS防护**: 输出转义和CSP头
+4. **CSRF防护**: 同源策略和Token验证
+
+### 基础设施安全
+1. **网络隔离**: 数据库仅允许应用服务器访问
+2. **防火墙规则**: 仅开放必要端口
+3. **最小权限**: 所有服务以非root用户运行
+4. **安全监控**: 实时监控异常访问
+
+## 部署和运维
+
+### 部署架构
+```mermaid
+graph TD
+    A[用户访问] --> B[负载均衡器]
+    B --> C[Web应用服务器]
+    B --> D[API服务器]
+    C --> E[静态资源CDN]
+    D --> F[数据库集群]
+    D --> G[Redis集群]
+    D --> H[MinIO集群]
+    D --> I[AI服务]
+
+    J[小程序] --> K[微信/支付宝平台]
+    K --> D
+
+    style C fill:#e1f5fe
+    style D fill:#f3e5f5
+    style F fill:#e8f5e8
+```
 
-### 现有基础设施
-- **当前部署**: Docker Compose本地开发,Node.js生产部署
-- **基础设施工具**: Docker, Docker Compose, Node.js运行时
-- **环境**: 开发、生产环境配置
+### 监控体系
+1. **应用性能监控**: 请求率、错误率、响应时间
+2. **业务指标监控**: 用户活跃度、订单量、库存周转率
+3. **基础设施监控**: CPU、内存、磁盘、网络
+4. **安全监控**: 异常访问、攻击尝试、数据泄露
 
-### 增强部署策略
-- **部署方法**: 使用现有Docker Compose和Node.js部署流程
-- **基础设施变更**: 添加数据库定时备份系统(详见基础设施部署文档)
-- **流水线集成**: 集成测试到现有CI/CD流程
+### 备份恢复
+1. **数据库备份**: 定时全量备份 + 实时增量备份
+2. **文件备份**: MinIO对象存储多副本
+3. **配置备份**: 应用配置版本管理
+4. **恢复测试**: 定期演练恢复流程
 
-### 回滚策略
-- **回滚方法**: Docker镜像版本回滚 + 数据库备份恢复
-- **数据库恢复**: 使用最新备份文件进行快速恢复
-- **风险缓解**: 蓝绿部署或金丝雀发布(可选)
-- **监控**: 添加应用健康检查、性能监控和备份状态监控
+### 伸缩策略
+1. **水平扩展**: 无状态服务水平扩展
+2. **垂直扩展**: 数据库和缓存垂直升级
+3. **自动伸缩**: 基于负载自动调整资源
+4. **容灾备份**: 多可用区部署保障可用性
 
 ## 开发工作流
 
-**实际开发命令**:
+### 开发环境
 ```bash
 # 安装依赖
 pnpm install
 
-# 启动完整开发环境(前后端同时运行)
-pnpm dev
+# 启动开发环境
+pnpm dev                    # 启动Web端开发服务器
+pnpm dev:mini [platform]    # 启动小程序开发服务器
 
 # 运行测试
-pnpm test                      # 运行API测试 (Vitest)
-pnpm test:api                  # 运行API测试
-pnpm test:components           # 运行组件测试
-pnpm test:integration          # 运行集成测试 (同test:components)
-pnpm test:e2e                  # 运行E2E测试
-pnpm test:e2e:chromium         # 运行Chrome E2E测试
-pnpm test:e2e:ui               # 运行E2E测试UI模式
-pnpm test:e2e:debug            # 运行E2E调试模式
-
-# 代码质量检查
-pnpm lint                      # ESLint检查
-pnpm typecheck                 # TypeScript类型检查
-pnpm test:coverage             # 生成测试覆盖率报告
-
-# 数据库相关
-pnpm db:backup                 # 数据库备份
-pnpm db:restore                # 数据库恢复
-pnpm db:backup:list            # 列出备份文件
-pnpm db:backup:latest          # 获取最新备份
-pnpm db:backup:cleanup         # 清理旧备份
-pnpm db:migrate                # 数据库迁移
-pnpm db:seed                   # 数据库种子数据
-pnpm db:reset                  # 重置数据库
+pnpm test                   # 运行所有测试
+pnpm test:api               # 运行API测试
+pnpm test:components        # 运行组件测试
+pnpm test:e2e               # 运行E2E测试
+pnpm test:mini              # 运行小程序测试
+
+# 代码质量
+pnpm lint                   # ESLint检查
+pnpm typecheck              # TypeScript类型检查
+pnpm test:coverage          # 测试覆盖率报告
 ```
 
-**环境配置**:
+### 环境配置
 ```bash
-# 前端环境变量 (Vite)
-VITE_API_BASE_URL=http://localhost:3000/api
-
 # 后端环境变量
 DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres
+REDIS_URL=redis://localhost:6379
+MINIO_ENDPOINT=localhost
+MINIO_ACCESS_KEY=minioadmin
+MINIO_SECRET_KEY=minioadmin
 JWT_SECRET=your-jwt-secret-key
+AI_SERVICE_URL=https://api.ai-service.com
 NODE_ENV=development
-```
-
-## 编码标准和测试策略
-
-### 现有标准合规性
-- **代码风格**: TypeScript严格模式,一致的缩进和命名
-- **linting规则**: 需要配置ESLint/Prettier
-- **测试模式**: 完整的测试框架已配置(Vitest + Testing Library + Playwright)
-- **文档风格**: 代码注释良好,测试策略文档完整
-
-### 增强特定标准
-- **测试框架**: 使用Vitest + Testing Library + hono/testing + Playwright
-- **测试位置**: `__tests__` 文件夹与源码并列
-- **覆盖率目标**: 核心业务逻辑 > 80%
-- **测试类型**: 单元测试、集成测试、E2E测试
-- **测试策略**: 详见 [测试策略文档](./testing-strategy.md)
-
-### 测试策略
-
-**实际测试结构**:
-```text
-tests/
-└── e2e/                    # E2E测试 (Playwright)
-    ├── fixtures/           # 测试夹具数据
-    │   ├── test-users.json    # 测试用户数据
-    │   ├── roles.json         # 角色数据
-    │   └── test-data.ts       # TypeScript测试数据
-    ├── pages/              # 页面对象模型
-    │   └── admin/          # 管理后台页面对象
-    │       ├── login.page.ts      # 登录页面对象
-    │       ├── dashboard.page.ts  # 仪表板页面对象
-    │       └── user-management.page.ts  # 用户管理页面对象
-    ├── specs/              # 测试规范
-    │   └── admin/          # 管理后台E2E测试
-    │       ├── dashboard.spec.ts    # 仪表板测试
-    │       ├── login.spec.ts        # 登录测试
-    │       ├── settings.spec.ts     # 设置测试
-    │       └── users.spec.ts        # 用户管理测试
-    ├── utils/              # 测试工具
-    │   └── test-setup.ts   # 测试设置工具
-    ├── global-setup.ts     # 全局设置
-    ├── global-teardown.ts  # 全局清理
-    └── playwright.config.ts # Playwright配置
-```
-
-**前端测试位置**:
-```text
-src/client/
-├── __integration_tests__/      # 前端集成测试
-│   └── admin/                  # 管理后台集成测试
-│       ├── dashboard.test.tsx  # 仪表板集成测试
-│       ├── login.test.tsx      # 登录集成测试
-│       └── users.test.tsx      # 用户管理集成测试
-└── admin/
-    └── pages/
-        └── __tests__/          # 页面单元测试
-            ├── Users.test.tsx  # 用户页面单元测试
-            └── debug.test.tsx  # 调试页面单元测试
-```
 
-**后端测试位置**:
-```text
-src/server/
-├── api/
-│   ├── auth/                 # 认证API
-│   │   └── __tests__/        # 认证测试
-│   │       └── auth.integration.test.ts  # 认证集成测试
-│   └── users/                # 用户API
-│       └── __tests__/        # 用户测试
-│           └── users.integration.test.ts # 用户集成测试
-├── modules/
-│   └── users/                # 用户业务模块
-│       └── __tests__/        # 用户服务测试
-│           └── user.service.test.ts      # 用户服务单元测试
-└── utils/
-    ├── __tests__/            # 工具单元测试
-    │   ├── backup.test.ts    # 备份工具测试
-    │   └── restore.test.ts   # 恢复工具测试
-    └── __integration_tests__/ # 工具集成测试
-        └── backup.integration.test.ts    # 备份集成测试
-```
-
-**测试框架配置**:
-- **单元测试**: Vitest + Testing Library (前端) / Vitest + hono/testing (后端)
-- **集成测试**: Vitest + 自定义测试工具
-- **E2E测试**: Playwright
-- **测试覆盖率**: 核心业务逻辑 > 80%
-- **测试位置**: `__tests__` 文件夹与源码并列
-
-### 关键集成规则
-- **现有API兼容性**: 确保测试不破坏现有API契约
-- **数据库集成**: 使用测试数据库,避免污染生产数据
-- **错误处理**: 测试各种错误场景和边界条件
-- **日志一致性**: 测试日志格式和错误信息
-
-## 安全集成
-
-### 现有安全措施
-- **认证**: JWT Bearer Token实现完整
-- **授权**: 基础角色权限管理
-- **数据保护**: 密码使用bcrypt哈希
-- **安全工具**: 基本中间件保护
-
-### 增强安全要求
-- **新安全措施**: 添加输入验证、速率限制、CSP头
-- **集成点**: 中间件层、API网关、数据库层
-- **合规要求**: 遵循OWASP Top 10安全最佳实践
-
-### 安全架构详细设计
-
-**前端安全**:
-- **CSP头**: `default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'`
-- **XSS防护**: 所有用户输入通过Zod schema验证和转义
-- **安全存储**: JWT token存储在HTTP Only cookie中
-- **HTTPS强制**: 生产环境强制HTTPS连接
-
-**后端安全**:
-- **输入验证**: 所有API输入通过Zod schema验证
-- **速率限制**: API端点每分钟100请求限制
-- **SQL注入防护**: TypeORM参数化查询,禁止原生SQL
-- **CORS配置**: 仅允许信任域名跨域访问
-
-**认证授权**:
-- **JWT配置**: HS256算法,30分钟过期时间
-- **密码策略**: bcrypt哈希,强度12,最小长度8字符
-- **角色权限**: 基于角色的访问控制(RBAC)
-- **会话管理**: JWT无状态认证,Redis会话缓存
-
-**数据安全**:
-- **加密传输**: TLS 1.3加密所有数据传输
-- **数据加密**: 敏感数据在数据库层加密存储
-- **备份加密**: 数据库备份文件AES-256加密
-- **访问审计**: 所有数据访问操作记录审计日志
-
-**基础设施安全**:
-- **网络隔离**: 数据库仅允许应用服务器访问
-- **防火墙规则**: 仅开放必要端口(3000, 5432, 6379, 9000)
-- **最小权限**: 所有服务以非root用户运行
-- **安全监控**: 实时监控异常访问和攻击尝试
-
-### 安全测试
-- **现有安全测试**: 无自动化安全测试
-- **新安全测试要求**: 添加安全扫描、渗透测试计划
-- **渗透测试**: 计划季度安全审计
-
-## 检查清单结果报告
-
-### 架构师检查清单执行结果
-✅ **技术栈验证**: Node.js + Hono + React + TypeORM 验证通过
-✅ **架构模式**: 分层架构、模块化设计验证通过
-✅ **代码质量**: 类型安全、错误处理需要增强
-✅ **安全性**: 基础安全措施存在,需要加强
-✅ **测试覆盖**: 完整的测试基础设施已建立(Vitest + Testing Library + Playwright)
-✅ **部署策略**: Docker部署成熟稳定
-✅ **备份策略**: 数据库定时备份方案已设计
-
-### 需要立即修复的安全漏洞
-1. **密码安全漏洞**: UserService第121行存在明文密码比较风险
-2. **错误信息泄露**: 部分错误信息可能包含敏感细节
-3. **输入验证缺失**: 需要加强业务规则验证
-
-## 下一步骤
-
-### 故事经理交接
-基于此架构文档,开始实现以下故事:
-1. 完善用户认证和管理功能(参考现有UserService)
-2. 增强通用CRUD服务和API文档(利用现有通用CRUD基础)
-3. 重点关注现有系统兼容性和错误处理统一
-
-### 开发者交接
-开始实现时注意:
-- 保持与现有shadcn设计系统兼容
-- 遵循现有的TypeORM实体模式和API路由结构
-- 优先修复已识别的安全漏洞(密码比较逻辑)
-- 逐步添加测试覆盖,从核心业务逻辑开始
-
-### 关键集成验证点
-- 确保新功能不破坏现有API契约
-- 验证数据库迁移不会丢失现有数据
-- 测试生产环境部署流程仍然正常工作
-- 监控性能指标确保无退化
-
-## 监控和可观测性
-
-### 监控策略
-**前端监控**:
-- **Core Web Vitals**: 监控LCP, FID, CLS等关键性能指标
-- **错误跟踪**: 捕获JavaScript运行时错误和API调用失败
-- **用户行为**: 跟踪关键用户交互和转化漏斗
-- **性能指标**: 页面加载时间,API响应时间监控
-
-**后端监控**:
-- **应用性能**: 请求率、错误率、响应时间(p95)
-- **数据库性能**: 查询执行时间、连接池使用率
-- **基础设施**: CPU、内存、磁盘使用率监控
-- **业务指标**: 用户活跃度、API调用统计
-
-### 日志管理
-- **结构化日志**: JSON格式日志,包含请求ID、用户ID等上下文
-- **日志级别**: DEBUG, INFO, WARN, ERROR分级管理
-- **日志聚合**: 集中式日志收集和分析
-- **审计日志**: 所有安全敏感操作记录详细审计日志
-
-### 告警策略
-- **关键告警**: 应用不可用、数据库连接失败、5xx错误率 > 1%
-- **警告告警**: 响应时间 > 500ms, 4xx错误率 > 5%
-- **信息告警**: 资源使用率 > 80%, 备份任务完成
-
-## 错误处理策略
-
-### 统一错误格式
-```typescript
-interface ApiError {
-  error: {
-    code: string;      // 错误代码,如: 'VALIDATION_ERROR'
-    message: string;   // 用户友好的错误信息
-    details?: Record<string, any>; // 详细错误信息
-    timestamp: string; // ISO时间戳
-    requestId: string; // 请求追踪ID
-  };
-}
+# 前端环境变量
+VITE_API_BASE_URL=http://localhost:3000/api
+VITE_AI_SERVICE_URL=https://api.ai-service.com
 ```
 
-### 错误分类和处理
-- **验证错误**(400): 输入数据验证失败
-- **认证错误**(401): 未认证或token过期
-- **权限错误**(403): 权限不足
-- **资源不存在**(404): 请求的资源不存在
-- **服务器错误**(500): 内部服务器错误
-- **服务不可用**(503): 维护或过载
-
-### 前端错误处理
-- **API错误**: 统一错误处理中间件,用户友好提示
-- **网络错误**: 重试机制和离线状态处理
-- **组件错误**: React Error Boundary捕获渲染错误
-- **用户输入错误**: 实时验证和提示
-
-### 后端错误处理
-- **全局错误处理**: 统一错误处理中间件
-- **数据库错误**: 连接池管理和重试机制
-- **外部服务错误**: 熔断器和降级处理
-- **日志记录**: 所有错误记录详细上下文信息
+### CI/CD流程
+1. **代码提交**: Git工作流,PR代码审查
+2. **自动化测试**: 单元测试、集成测试、E2E测试
+3. **代码质量**: ESLint、TypeScript检查、安全扫描
+4. **构建部署**: 自动构建Docker镜像,蓝绿部署
+5. **监控反馈**: 部署后监控,快速回滚机制
 
 ## 附录
 
 ### 技术决策依据
-- **选择Vitest而不是Jest**: 基于对TypeORM装饰器的更好支持、更快的执行速度和现代化的开发体验
-- **保持现有技术栈**: 现有选择(Hono、TypeORM、React)已经验证有效
-- **增量增强策略**: 最小化风险,最大化现有投资回报
+1. **选择D8D Starter**: 成熟的全栈技术基础,快速开发能力
+2. **多租户架构**: 满足集团化企业的数据隔离需求
+3. **AI服务集成**: 提升业务决策的智能化水平
+4. **多端支持**: 覆盖Web和移动端不同使用场景
 
 ### 相关文档
-- 架构文档: `docs/architecture.md` (本文件)
-- 架构详细文档: `docs/architecture/` (包含组件架构、API设计、技术栈等子文档)
 - 产品需求文档: `docs/prd.md`
-- 测试策略文档: `docs/architecture/testing-strategy.md`
+- 项目简介: `docs/brief.md`
 - API文档: 通过 `/ui` 端点访问
+- 测试策略: `docs/architecture/testing-strategy.md`
 
 ### 联系方式
 - 架构师: Winston 🏗️
-- 最后更新: 2025-09-20
+- 最后更新: 2025-10-20
 
 ---
 
 **文档状态**: 正式版
-**下次评审**: 2025-10-14
+**下次评审**: 2025-11-20

+ 920 - 0
docs/architecture/ai-service-integration.md

@@ -0,0 +1,920 @@
+# AI服务集成架构
+
+## 版本信息
+| 版本 | 日期 | 描述 | 作者 |
+|------|------|------|------|
+| 3.0 | 2025-10-20 | 集团AI智能进销存系统AI服务集成 | Winston |
+
+## AI服务架构图
+
+```mermaid
+graph TD
+    A[业务系统] --> B[AI服务网关]
+    B --> C[销售预测服务]
+    B --> D[库存优化服务]
+    B --> E[供应商匹配服务]
+    B --> F[客户分析服务]
+    B --> G[产品推荐服务]
+
+    C --> H[历史销售数据]
+    C --> I[市场趋势数据]
+
+    D --> J[当前库存数据]
+    D --> K[需求预测数据]
+
+    E --> L[供应商数据库]
+    E --> M[采购需求数据]
+
+    F --> N[客户行为数据]
+    F --> O[交易历史数据]
+
+    G --> P[产品目录数据]
+    G --> Q[销售历史数据]
+    G --> R[客户偏好数据]
+
+    S[DeepSeek API] --> T[文本理解]
+    S --> U[数据分析]
+    S --> V[智能推荐]
+
+    C --> S
+    D --> S
+    E --> S
+    F --> S
+    G --> S
+
+    style A fill:#e1f5fe
+    style B fill:#f3e5f5
+    style S fill:#fff0f5
+```
+
+## DeepSeek API统一接入方案
+
+### DeepSeek API配置
+```typescript
+// DeepSeek API配置
+interface DeepSeekConfig {
+  apiKey: string;
+  baseUrl: string; // https://api.deepseek.com
+  model: 'deepseek-chat' | 'deepseek-coder';
+  maxTokens: number;
+  temperature: number;
+  timeout: number;
+}
+
+// 统一的AI服务客户端
+class DeepSeekAIClient {
+  constructor(private config: DeepSeekConfig) {}
+
+  async chatCompletion(messages: ChatMessage[]): Promise<ChatResponse> {
+    const response = await fetch(`${this.config.baseUrl}/chat/completions`, {
+      method: 'POST',
+      headers: {
+        'Authorization': `Bearer ${this.config.apiKey}`,
+        'Content-Type': 'application/json'
+      },
+      body: JSON.stringify({
+        model: this.config.model,
+        messages,
+        max_tokens: this.config.maxTokens,
+        temperature: this.config.temperature
+      })
+    });
+
+    if (!response.ok) {
+      throw new Error(`DeepSeek API error: ${response.statusText}`);
+    }
+
+    return await response.json();
+  }
+}
+```
+
+### 统一的提示词工程
+```typescript
+// 提示词模板
+class PromptTemplates {
+  // 销售预测提示词
+  static salesForecast(data: SalesForecastData): ChatMessage[] {
+    return [
+      {
+        role: 'system',
+        content: `你是一个专业的销售预测AI助手。基于历史销售数据、市场趋势和季节性因素,为进销存系统提供准确的销售预测。请以JSON格式返回预测结果。`
+      },
+      {
+        role: 'user',
+        content: `请分析以下销售数据并预测未来${data.period}的销售情况:
+
+历史销售数据:
+${JSON.stringify(data.historicalData, null, 2)}
+
+市场趋势:
+${JSON.stringify(data.marketTrends, null, 2)}
+
+季节性因素:
+${JSON.stringify(data.seasonalityFactors, null, 2)}
+
+请返回以下格式的JSON:
+{
+  "forecasts": [
+    {
+      "productId": 1,
+      "productName": "产品名称",
+      "dailyForecasts": [
+        {
+          "date": "2025-10-21",
+          "predictedQuantity": 100,
+          "confidenceInterval": [80, 120],
+          "factors": ["季节性需求", "促销活动"]
+        }
+      ],
+      "totalForecast": 1000,
+      "growthRate": 0.15,
+      "seasonality": 0.8
+    }
+  ],
+  "confidence": 0.85,
+  "reasoning": "预测理由...",
+  "modelVersion": "deepseek-chat-v1"
+}`
+      }
+    ];
+  }
+
+  // 库存优化提示词
+  static inventoryOptimization(data: InventoryOptimizationData): ChatMessage[] {
+    return [
+      {
+        role: 'system',
+        content: `你是一个专业的库存优化AI助手。基于当前库存水平、需求预测和成本因素,为进销存系统提供最优的库存管理建议。请以JSON格式返回优化结果。`
+      },
+      {
+        role: 'user',
+        content: `请分析以下库存数据并提供优化建议:
+
+当前库存状况:
+${JSON.stringify(data.products, null, 2)}
+
+需求预测:
+${JSON.stringify(data.demandForecast, null, 2)}
+
+成本因素:
+${JSON.stringify(data.costFactors, null, 2)}
+
+请返回以下格式的JSON:
+{
+  "recommendations": [
+    {
+      "productId": 1,
+      "recommendedStock": 500,
+      "reorderPoint": 200,
+      "orderQuantity": 300,
+      "urgency": "medium",
+      "costBenefit": 1500,
+      "factors": ["需求增长", "库存成本"]
+    }
+  ],
+  "totalCostSavings": 5000,
+  "serviceLevelImprovement": 0.1,
+  "reasoning": "优化理由...",
+  "modelVersion": "deepseek-chat-v1"
+}`
+      }
+    ];
+  }
+
+  // 供应商匹配提示词
+  static supplierMatching(data: SupplierMatchingData): ChatMessage[] {
+    return [
+      {
+        role: 'system',
+        content: `你是一个专业的供应商匹配AI助手。基于采购需求、供应商能力和历史表现,为进销存系统推荐最合适的供应商。请以JSON格式返回匹配结果。`
+      },
+      {
+        role: 'user',
+        content: `请分析以下采购需求并推荐合适的供应商:
+
+采购需求:
+${JSON.stringify(data.purchaseRequirements, null, 2)}
+
+可选供应商:
+${JSON.stringify(data.availableSuppliers, null, 2)}
+
+约束条件:
+${JSON.stringify(data.constraints, null, 2)}
+
+请返回以下格式的JSON:
+{
+  "matches": [
+    {
+      "supplierId": 1,
+      "supplierName": "供应商名称",
+      "overallScore": 0.85,
+      "priceScore": 0.9,
+      "qualityScore": 0.8,
+      "deliveryScore": 0.85,
+      "reliabilityScore": 0.9,
+      "totalCost": 10000,
+      "estimatedDelivery": "2025-10-25",
+      "riskFactors": ["交付延迟风险"]
+    }
+  ],
+  "bestMatch": {...},
+  "confidence": 0.88,
+  "reasoning": "匹配理由...",
+  "modelVersion": "deepseek-chat-v1"
+}`
+      }
+    ];
+  }
+
+  // 客户分析提示词
+  static customerAnalysis(data: CustomerAnalysisData): ChatMessage[] {
+    return [
+      {
+        role: 'system',
+        content: `你是一个专业的客户分析AI助手。基于客户交易数据和行为模式,为进销存系统提供客户细分、价值评估和流失预测。请以JSON格式返回分析结果。`
+      },
+      {
+        role: 'user',
+        content: `请分析以下客户数据并提供深入洞察:
+
+客户数据:
+${JSON.stringify(data.customers, null, 2)}
+
+交易历史:
+${JSON.stringify(data.transactionHistory, null, 2)}
+
+分析类型:${data.analysisType}
+
+请返回以下格式的JSON:
+{
+  "analyses": [
+    {
+      "customerId": 1,
+      "customerName": "客户名称",
+      "lifetimeValue": 50000,
+      "churnProbability": 0.15,
+      "segment": "高价值客户",
+      "behaviorPatterns": ["频繁购买", "偏好高端产品"],
+      "recommendations": ["个性化促销", "VIP服务"]
+    }
+  ],
+  "segments": [
+    {
+      "segmentId": "high_value",
+      "segmentName": "高价值客户",
+      "customerCount": 50,
+      "characteristics": ["高消费", "高忠诚度"],
+      "valueScore": 0.9
+    }
+  ],
+  "insights": ["客户流失率上升", "新客户增长强劲"],
+  "modelVersion": "deepseek-chat-v1"
+}`
+      }
+    ];
+  }
+
+  // 产品推荐提示词
+  static productRecommendation(data: ProductRecommendationData): ChatMessage[] {
+    return [
+      {
+        role: 'system',
+        content: `你是一个专业的产品推荐AI助手。基于客户历史购买行为、产品属性和市场趋势,为进销存系统提供个性化的产品推荐。请以JSON格式返回推荐结果。`
+      },
+      {
+        role: 'user',
+        content: `请基于以下数据为指定客户提供产品推荐:
+
+客户信息:
+${JSON.stringify(data.customer, null, 2)}
+
+客户购买历史:
+${JSON.stringify(data.purchaseHistory, null, 2)}
+
+可选产品:
+${JSON.stringify(data.availableProducts, null, 2)}
+
+推荐场景:${data.scenario}
+推荐数量:${data.recommendationCount}
+
+请返回以下格式的JSON:
+{
+  "recommendations": [
+    {
+      "productId": 1,
+      "productName": "产品名称",
+      "recommendationScore": 0.92,
+      "reasoning": "基于客户的购买历史和产品偏好",
+      "matchFactors": ["价格匹配", "功能相似", "品牌偏好"],
+      "expectedInterest": 0.85,
+      "crossSellProducts": [2, 3],
+      "upSellProducts": [4]
+    }
+  ],
+  "personalizedMessage": "根据您的购买历史,我们为您推荐以下产品...",
+  "confidence": 0.88,
+  "modelVersion": "deepseek-chat-v1"
+}`
+      }
+    ];
+  }
+}
+```
+
+## AI服务API设计
+
+### 销售预测服务
+```typescript
+// 销售预测请求
+interface SalesForecastRequest {
+  companyId: number;
+  productIds: number[];
+  period: '7d' | '30d' | '90d';
+  historicalData: SalesHistory[];
+  marketTrends?: MarketTrendData;
+  seasonalityFactors?: SeasonalityFactors;
+}
+
+interface SalesHistory {
+  productId: number;
+  date: Date;
+  quantity: number;
+  price: number;
+  promotion: boolean;
+}
+
+// 销售预测响应
+interface SalesForecastResponse {
+  forecasts: ProductForecast[];
+  confidence: number;
+  reasoning: string;
+  modelVersion: string;
+  timestamp: Date;
+}
+
+interface ProductForecast {
+  productId: number;
+  productName: string;
+  dailyForecasts: DailyForecast[];
+  totalForecast: number;
+  growthRate: number;
+  seasonality: number;
+}
+
+interface DailyForecast {
+  date: Date;
+  predictedQuantity: number;
+  confidenceInterval: [number, number];
+  factors: ForecastFactor[];
+}
+```
+
+### 库存优化服务
+```typescript
+// 库存优化请求
+interface InventoryOptimizationRequest {
+  companyId: number;
+  warehouseId: number;
+  products: ProductStockInfo[];
+  demandForecast: DemandForecast[];
+  leadTimes: LeadTimeData[];
+  costFactors: CostFactors;
+}
+
+interface ProductStockInfo {
+  productId: number;
+  currentStock: number;
+  minStock: number;
+  maxStock: number;
+  safetyStock: number;
+  unitCost: number;
+  holdingCost: number;
+}
+
+// 库存优化响应
+interface InventoryOptimizationResponse {
+  recommendations: StockRecommendation[];
+  totalCostSavings: number;
+  serviceLevelImprovement: number;
+  reasoning: string;
+  timestamp: Date;
+}
+
+interface StockRecommendation {
+  productId: number;
+  recommendedStock: number;
+  reorderPoint: number;
+  orderQuantity: number;
+  urgency: 'low' | 'medium' | 'high' | 'critical';
+  costBenefit: number;
+  factors: OptimizationFactor[];
+}
+```
+
+### 供应商匹配服务
+```typescript
+// 供应商匹配请求
+interface SupplierMatchingRequest {
+  companyId: number;
+  purchaseRequirements: PurchaseRequirement[];
+  preferredSuppliers?: number[];
+  constraints: MatchingConstraints;
+}
+
+interface PurchaseRequirement {
+  productId: number;
+  quantity: number;
+  qualityRequirements: QualityRequirements;
+  deliveryDeadline: Date;
+  budget: number;
+}
+
+// 供应商匹配响应
+interface SupplierMatchingResponse {
+  matches: SupplierMatch[];
+  bestMatch: SupplierMatch;
+  confidence: number;
+  reasoning: string;
+  timestamp: Date;
+}
+
+interface SupplierMatch {
+  supplierId: number;
+  supplierName: string;
+  overallScore: number;
+  priceScore: number;
+  qualityScore: number;
+  deliveryScore: number;
+  reliabilityScore: number;
+  totalCost: number;
+  estimatedDelivery: Date;
+  riskFactors: RiskFactor[];
+}
+```
+
+### 客户分析服务
+```typescript
+// 客户分析请求
+interface CustomerAnalysisRequest {
+  companyId: number;
+  customerIds: number[];
+  analysisType: 'segmentation' | 'lifetime_value' | 'churn_prediction' | 'behavior_analysis';
+  historicalPeriod: '30d' | '90d' | '365d';
+}
+
+// 客户分析响应
+interface CustomerAnalysisResponse {
+  analyses: CustomerAnalysis[];
+  segments: CustomerSegment[];
+  insights: BusinessInsight[];
+  timestamp: Date;
+}
+
+interface CustomerAnalysis {
+  customerId: number;
+  customerName: string;
+  lifetimeValue: number;
+  churnProbability: number;
+  segment: string;
+  behaviorPatterns: BehaviorPattern[];
+  recommendations: CustomerRecommendation[];
+}
+
+interface CustomerSegment {
+  segmentId: string;
+  segmentName: string;
+  customerCount: number;
+  characteristics: SegmentCharacteristic[];
+  valueScore: number;
+}
+```
+
+### 产品推荐服务
+```typescript
+// 产品推荐请求
+interface ProductRecommendationRequest {
+  companyId: number;
+  customerId: number;
+  scenario: 'cross_sell' | 'up_sell' | 'new_customer' | 'abandoned_cart';
+  recommendationCount: number;
+  availableProducts: AvailableProduct[];
+  customerPreferences?: CustomerPreferences;
+  constraints?: RecommendationConstraints;
+}
+
+interface AvailableProduct {
+  productId: number;
+  productName: string;
+  category: string;
+  brand: string;
+  price: number;
+  stock: number;
+  attributes: ProductAttribute[];
+  popularity: number;
+}
+
+interface CustomerPreferences {
+  priceRange: [number, number];
+  preferredBrands: string[];
+  preferredCategories: string[];
+  excludedProducts: number[];
+}
+
+interface RecommendationConstraints {
+  maxPrice: number;
+  minStock: number;
+  excludeOutOfStock: boolean;
+  includeOnlyAvailable: boolean;
+}
+
+// 产品推荐响应
+interface ProductRecommendationResponse {
+  recommendations: ProductRecommendation[];
+  personalizedMessage: string;
+  confidence: number;
+  modelVersion: string;
+  timestamp: Date;
+}
+
+interface ProductRecommendation {
+  productId: number;
+  productName: string;
+  recommendationScore: number;
+  reasoning: string;
+  matchFactors: MatchFactor[];
+  expectedInterest: number;
+  crossSellProducts: number[];
+  upSellProducts: number[];
+}
+
+interface MatchFactor {
+  type: 'price_match' | 'feature_similarity' | 'brand_preference' | 'category_match';
+  score: number;
+  description: string;
+}
+```
+
+## AI集成策略
+
+### 1. 异步处理模式
+```typescript
+// AI任务队列服务
+class AITaskQueueService {
+  constructor(private redis: Redis, private aiService: AIService) {}
+
+  // 提交AI任务
+  async submitAITask<T>(taskType: string, request: any): Promise<string> {
+    const taskId = generateTaskId();
+    const task: AITask<T> = {
+      id: taskId,
+      type: taskType,
+      request,
+      status: 'pending',
+      createdAt: new Date(),
+      priority: 'normal'
+    };
+
+    // 存储任务到Redis
+    await this.redis.set(`ai_task:${taskId}`, JSON.stringify(task));
+
+    // 添加到任务队列
+    await this.redis.lpush(`ai_tasks:${taskType}`, taskId);
+
+    return taskId;
+  }
+
+  // 处理AI任务
+  async processAITasks(): Promise<void> {
+    while (true) {
+      const taskId = await this.redis.rpop(`ai_tasks:sales_forecast`);
+      if (!taskId) {
+        await sleep(1000);
+        continue;
+      }
+
+      const taskData = await this.redis.get(`ai_task:${taskId}`);
+      if (!taskData) continue;
+
+      const task: AITask = JSON.parse(taskData);
+
+      try {
+        // 执行AI任务
+        const result = await this.deepSeekClient.executeTask(task.type, task.request);
+
+        // 更新任务状态
+        task.status = 'completed';
+        task.result = result;
+        task.completedAt = new Date();
+
+        await this.redis.set(`ai_task:${taskId}`, JSON.stringify(task));
+      } catch (error) {
+        task.status = 'failed';
+        task.error = error.message;
+        await this.redis.set(`ai_task:${taskId}`, JSON.stringify(task));
+      }
+    }
+  }
+}
+```
+
+### 2. 缓存机制
+```typescript
+// AI结果缓存服务
+class AIResultCacheService {
+  constructor(private redis: Redis) {}
+
+  // 缓存AI结果
+  async cacheAIResult<T>(cacheKey: string, result: T, ttl: number = 3600): Promise<void> {
+    const cacheData: AICacheData<T> = {
+      data: result,
+      cachedAt: new Date(),
+      expiresAt: new Date(Date.now() + ttl * 1000)
+    };
+
+    await this.redis.setex(cacheKey, ttl, JSON.stringify(cacheData));
+  }
+
+  // 获取缓存结果
+  async getCachedResult<T>(cacheKey: string): Promise<T | null> {
+    const cached = await this.redis.get(cacheKey);
+    if (!cached) return null;
+
+    const cacheData: AICacheData<T> = JSON.parse(cached);
+
+    // 检查是否过期
+    if (new Date() > cacheData.expiresAt) {
+      await this.redis.del(cacheKey);
+      return null;
+    }
+
+    return cacheData.data;
+  }
+
+  // 生成缓存键
+  generateCacheKey(service: string, companyId: number, params: any): string {
+    const paramHash = createHash('md5').update(JSON.stringify(params)).digest('hex');
+    return `ai:${service}:${companyId}:${paramHash}`;
+  }
+}
+```
+
+### 3. 降级处理
+```typescript
+// AI服务降级策略
+class AIDegradationService {
+  // 规则引擎作为AI降级方案
+  private ruleEngine = new RuleEngine();
+
+  async getSalesForecast(request: SalesForecastRequest): Promise<SalesForecastResponse> {
+    try {
+      // 使用DeepSeek API进行销售预测
+      const messages = PromptTemplates.salesForecast(request);
+      const response = await this.deepSeekClient.chatCompletion(messages);
+
+      // 解析DeepSeek返回的JSON
+      return JSON.parse(response.choices[0].message.content);
+    } catch (error) {
+      console.warn('DeepSeek API不可用,使用规则引擎降级处理');
+
+      // 使用规则引擎作为降级方案
+      return await this.ruleEngine.getSalesForecast(request);
+    }
+  }
+
+  async getSupplierRecommendations(request: SupplierMatchingRequest): Promise<SupplierMatchingResponse> {
+    try {
+      // 使用DeepSeek API进行供应商匹配
+      const messages = PromptTemplates.supplierMatching(request);
+      const response = await this.deepSeekClient.chatCompletion(messages);
+
+      // 解析DeepSeek返回的JSON
+      return JSON.parse(response.choices[0].message.content);
+    } catch (error) {
+      console.warn('DeepSeek API不可用,使用基于规则的供应商匹配');
+
+      // 基于历史表现和基本规则的供应商匹配
+      return await this.ruleBasedSupplierMatching(request);
+    }
+  }
+
+  private async ruleBasedSupplierMatching(request: SupplierMatchingRequest): Promise<SupplierMatchingResponse> {
+    // 基于价格、质量、交付时间的加权评分
+    const suppliers = await this.supplierService.findEligibleSuppliers(request);
+
+    const matches = suppliers.map(supplier => {
+      const score = this.calculateSupplierScore(supplier, request);
+      return {
+        supplierId: supplier.id,
+        supplierName: supplier.name,
+        overallScore: score,
+        priceScore: this.calculatePriceScore(supplier, request),
+        qualityScore: supplier.rating / 5,
+        deliveryScore: this.calculateDeliveryScore(supplier),
+        reliabilityScore: supplier.performance.deliveryRate,
+        totalCost: this.calculateTotalCost(supplier, request),
+        estimatedDelivery: this.estimateDelivery(supplier),
+        riskFactors: []
+      };
+    });
+
+    return {
+      matches: matches.sort((a, b) => b.overallScore - a.overallScore),
+      bestMatch: matches[0],
+      confidence: 0.7, // 规则引擎置信度较低
+      reasoning: '基于规则的供应商匹配',
+      timestamp: new Date()
+    };
+  }
+}
+```
+
+### 4. 人工确认机制
+```typescript
+// AI决策确认服务
+class AIDecisionConfirmationService {
+  async confirmAIDecision<T>(
+    decision: T,
+    decisionType: string,
+    userId: number
+  ): Promise<ConfirmedDecision<T>> {
+    // 记录AI决策
+    const aiDecision: AIDecision<T> = {
+      id: generateDecisionId(),
+      type: decisionType,
+      aiResult: decision,
+      confidence: decision.confidence || 0.8,
+      createdAt: new Date(),
+      status: 'pending_confirmation'
+    };
+
+    // 保存到数据库
+    await this.decisionRepository.save(aiDecision);
+
+    // 如果置信度低于阈值,需要人工确认
+    if (aiDecision.confidence < this.confirmationThreshold) {
+      await this.requireHumanConfirmation(aiDecision.id, userId);
+      return {
+        ...decision,
+        requiresConfirmation: true,
+        decisionId: aiDecision.id
+      };
+    }
+
+    // 高置信度决策自动确认
+    await this.confirmDecision(aiDecision.id, userId, 'auto_confirmed');
+    return {
+      ...decision,
+      requiresConfirmation: false,
+      decisionId: aiDecision.id
+    };
+  }
+
+  async confirmDecision(decisionId: string, userId: number, confirmationType: string): Promise<void> {
+    const decision = await this.decisionRepository.findOne(decisionId);
+    if (!decision) throw new Error('决策不存在');
+
+    decision.status = 'confirmed';
+    decision.confirmedBy = userId;
+    decision.confirmedAt = new Date();
+    decision.confirmationType = confirmationType;
+
+    await this.decisionRepository.save(decision);
+  }
+}
+```
+
+### 5. 持续学习
+```typescript
+// AI模型反馈服务
+class AIModelFeedbackService {
+  async collectFeedback<T>(
+    decisionId: string,
+    actualOutcome: T,
+    userFeedback: UserFeedback
+  ): Promise<void> {
+    const feedback: AIFeedback<T> = {
+      decisionId,
+      actualOutcome,
+      userFeedback,
+      collectedAt: new Date(),
+      modelVersion: userFeedback.modelVersion
+    };
+
+    // 存储反馈数据
+    await this.feedbackRepository.save(feedback);
+
+    // 定期批量发送到AI服务进行模型训练
+    await this.queueFeedbackForTraining(feedback);
+  }
+
+  async queueFeedbackForTraining(feedback: AIFeedback<any>): Promise<void> {
+    const trainingBatch: TrainingBatch = {
+      id: generateBatchId(),
+      feedbacks: [feedback],
+      status: 'pending',
+      createdAt: new Date()
+    };
+
+    await this.trainingQueue.add(trainingBatch);
+
+    // 当积累足够数据时触发模型训练
+    const pendingCount = await this.trainingQueue.getPendingCount();
+    if (pendingCount >= this.trainingThreshold) {
+      await this.triggerModelTraining();
+    }
+  }
+
+  async triggerModelTraining(): Promise<void> {
+    const pendingBatches = await this.trainingQueue.getPendingBatches();
+
+    // 准备训练数据
+    const trainingData = this.prepareTrainingData(pendingBatches);
+
+    // 使用DeepSeek API进行模型微调(如果支持)
+    // 或者将反馈数据用于改进提示词工程
+    await this.improvePromptTemplates(trainingData);
+
+    // 标记批次为已处理
+    await this.trainingQueue.markAsProcessed(pendingBatches.map(b => b.id));
+  }
+}
+```
+
+## 监控和可观测性
+
+### AI服务健康检查
+```typescript
+interface AIServiceHealth {
+  service: string;
+  status: 'healthy' | 'degraded' | 'unhealthy';
+  responseTime: number;
+  errorRate: number;
+  lastCheck: Date;
+  modelVersion: string;
+  features: string[];
+}
+
+// AI服务监控
+class AIServiceMonitor {
+  async checkServiceHealth(): Promise<AIServiceHealth[]> {
+    const services = ['sales_forecast', 'inventory_optimization', 'supplier_matching', 'customer_analysis', 'product_recommendation'];
+
+    const healthChecks = await Promise.all(
+      services.map(async service => {
+        try {
+          const startTime = Date.now();
+          await this.aiService.healthCheck(service);
+          const responseTime = Date.now() - startTime;
+
+          return {
+            service,
+            status: 'healthy',
+            responseTime,
+            errorRate: 0,
+            lastCheck: new Date(),
+            modelVersion: await this.getModelVersion(service),
+            features: await this.getSupportedFeatures(service)
+          };
+        } catch (error) {
+          return {
+            service,
+            status: 'unhealthy',
+            responseTime: -1,
+            errorRate: 1,
+            lastCheck: new Date(),
+            modelVersion: 'unknown',
+            features: []
+          };
+        }
+      })
+    );
+
+    return healthChecks;
+  }
+}
+```
+
+## DeepSeek API统一接入的优势
+
+### 技术优势
+1. **统一接口**: 所有AI功能使用同一API,简化集成复杂度
+2. **成本控制**: 统一计费,便于成本管理和预算控制
+3. **技术栈统一**: 统一的调用方式、错误处理和监控机制
+4. **维护简单**: 单一服务提供商,减少运维复杂度
+5. **功能丰富**: DeepSeek支持多种AI能力(文本理解、数据分析、智能推荐等)
+
+### 业务优势
+1. **快速迭代**: 通过提示词工程快速调整AI行为,无需模型重训练
+2. **灵活适配**: 可根据不同业务场景定制专用提示词模板
+3. **质量可控**: 统一的输出格式和验证机制确保数据质量
+4. **可扩展性**: 易于添加新的AI功能模块
+
+### 实施建议
+1. **环境配置**: 准备DeepSeek API密钥,配置合理的请求限制
+2. **提示词优化**: 持续优化各业务场景的提示词模板
+3. **监控告警**: 建立API调用监控和异常告警机制
+4. **成本监控**: 监控API使用量,优化提示词减少token消耗
+5. **备份方案**: 完善降级策略,确保AI服务不可用时系统仍可运行
+
+这个基于DeepSeek API的统一AI服务集成架构确保了集团AI智能进销存系统的智能化决策能力,同时通过完善的降级策略、缓存机制和监控体系,保证了系统的稳定性和可靠性。

+ 510 - 0
docs/architecture/core-business-modules.md

@@ -0,0 +1,510 @@
+# 核心业务模块设计
+
+## 版本信息
+| 版本 | 日期 | 描述 | 作者 |
+|------|------|------|------|
+| 3.0 | 2025-10-20 | 集团AI智能进销存系统核心业务模块 | Winston |
+
+## 1. 组织架构管理模块
+
+### 功能特性
+- **母子公司树形结构管理**: 支持无限层级组织架构
+- **公司信息维护和状态管理**: 完整的公司档案管理
+- **用户分配到具体公司**: 用户与公司绑定关系
+- **数据权限配置**: 基于组织架构的权限控制
+
+### 数据模型
+```typescript
+interface Company {
+  id: number;
+  name: string;
+  code: string;
+  parentId: number | null;
+  level: number;
+  path: string;
+  status: 'active' | 'inactive';
+  contactInfo: ContactInfo;
+  businessInfo: BusinessInfo;
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+interface ContactInfo {
+  phone: string | null;
+  address: string | null;
+  contactPerson: string | null;
+  email: string | null;
+}
+
+interface BusinessInfo {
+  businessLicense: string | null;
+  taxNumber: string | null;
+  industry: string | null;
+  scale: 'small' | 'medium' | 'large';
+}
+```
+
+### API端点
+- `GET /api/v1/companies` - 获取公司列表
+- `POST /api/v1/companies` - 创建公司
+- `GET /api/v1/companies/{id}` - 获取公司详情
+- `PUT /api/v1/companies/{id}` - 更新公司信息
+- `DELETE /api/v1/companies/{id}` - 删除公司
+- `GET /api/v1/companies/tree` - 获取组织架构树
+
+## 2. 供应商管理模块
+
+### 功能特性
+- **供应商全生命周期管理**: 从注册到合作的完整流程
+- **供应商评价和等级系统**: 基于绩效的供应商评级
+- **证件管理和合规检查**: 资质文件管理和验证
+- **供应商绩效分析**: 基于交易数据的供应商评估
+
+### 数据模型
+```typescript
+interface Supplier {
+  id: number;
+  name: string;
+  code: string;
+  companyId: number;
+  contactInfo: ContactInfo;
+  businessInfo: BusinessInfo;
+  rating: number; // 1-5星评价
+  status: 'active' | 'inactive' | 'blacklisted';
+  documents: SupplierDocument[];
+  performance: SupplierPerformance;
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+interface SupplierDocument {
+  id: number;
+  supplierId: number;
+  type: 'business_license' | 'tax_certificate' | 'quality_certificate';
+  name: string;
+  filePath: string;
+  expiryDate: Date | null;
+  status: 'valid' | 'expired' | 'pending';
+}
+
+interface SupplierPerformance {
+  deliveryRate: number; // 准时交付率
+  qualityRate: number; // 质量合格率
+  responseTime: number; // 平均响应时间
+  totalOrders: number; // 总订单数
+  totalAmount: number; // 总交易金额
+  lastOrderDate: Date | null;
+}
+```
+
+### API端点
+- `GET /api/v1/suppliers` - 获取供应商列表
+- `POST /api/v1/suppliers` - 创建供应商
+- `GET /api/v1/suppliers/{id}` - 获取供应商详情
+- `PUT /api/v1/suppliers/{id}` - 更新供应商信息
+- `POST /api/v1/suppliers/{id}/documents` - 上传供应商证件
+- `GET /api/v1/suppliers/{id}/performance` - 获取供应商绩效
+
+## 3. 销售管理模块
+
+### 功能特性
+- **销售订单全流程管理**: 从创建到完成的完整流程
+- **多彩宝订单导入和校验**: 第三方平台订单集成
+- **订单状态跟踪**: 实时订单状态更新
+- **销售统计分析**: 多维度销售数据分析
+
+### 数据模型
+```typescript
+interface SalesOrder {
+  id: number;
+  orderNumber: string;
+  companyId: number;
+  customerId: number;
+  warehouseId: number;
+  items: OrderItem[];
+  totalAmount: number;
+  status: 'pending' | 'confirmed' | 'shipped' | 'delivered' | 'cancelled';
+  source: 'manual' | 'duocaibao' | 'api';
+  paymentStatus: 'pending' | 'paid' | 'refunded';
+  shippingInfo: ShippingInfo;
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+interface OrderItem {
+  id: number;
+  orderId: number;
+  productId: number;
+  productName: string;
+  quantity: number;
+  unitPrice: number;
+  totalPrice: number;
+  sku: string;
+}
+
+interface ShippingInfo {
+  recipient: string;
+  phone: string;
+  address: string;
+  shippingMethod: string;
+  trackingNumber: string | null;
+  estimatedDelivery: Date | null;
+  actualDelivery: Date | null;
+}
+```
+
+### API端点
+- `GET /api/v1/sales-orders` - 获取销售订单列表
+- `POST /api/v1/sales-orders` - 创建销售订单
+- `GET /api/v1/sales-orders/{id}` - 获取订单详情
+- `PUT /api/v1/sales-orders/{id}/status` - 更新订单状态
+- `POST /api/v1/sales-orders/import` - 导入多彩宝订单
+- `GET /api/v1/sales-orders/statistics` - 获取销售统计
+
+## 4. 库存管理模块
+
+### 功能特性
+- **多仓库库存管理**: 支持多个物理仓库的库存管理
+- **实时库存监控和预警**: 库存水平实时监控和预警
+- **库存调拨和盘点**: 仓库间调拨和定期盘点
+- **AI库存分配建议**: 基于AI的智能库存分配
+
+### 数据模型
+```typescript
+interface Inventory {
+  id: number;
+  productId: number;
+  warehouseId: number;
+  companyId: number;
+  quantity: number;
+  reservedQuantity: number; // 预留数量
+  availableQuantity: number; // 可用数量
+  minStock: number; // 最低库存
+  maxStock: number; // 最高库存
+  safetyStock: number; // 安全库存
+  lastUpdated: Date;
+}
+
+interface Warehouse {
+  id: number;
+  name: string;
+  code: string;
+  companyId: number;
+  location: string;
+  capacity: number;
+  contactInfo: ContactInfo;
+  status: 'active' | 'inactive';
+}
+
+interface StockMovement {
+  id: number;
+  productId: number;
+  warehouseId: number;
+  type: 'in' | 'out' | 'transfer' | 'adjustment';
+  quantity: number;
+  referenceId: number | null; // 关联订单ID
+  referenceType: 'sales_order' | 'purchase_order' | 'transfer' | 'adjustment';
+  description: string;
+  createdAt: Date;
+}
+```
+
+### API端点
+- `GET /api/v1/inventory` - 获取库存列表
+- `GET /api/v1/inventory/{productId}` - 获取产品库存
+- `POST /api/v1/inventory/transfer` - 库存调拨
+- `POST /api/v1/inventory/adjustment` - 库存调整
+- `GET /api/v1/inventory/alerts` - 获取库存预警
+- `GET /api/v1/warehouses` - 获取仓库列表
+
+## 5. 采购管理模块
+
+### 功能特性
+- **采购计划和需求管理**: 基于库存和销售预测的采购计划
+- **采购订单和合同管理**: 完整的采购流程管理
+- **供应商匹配和审批流程**: AI驱动的供应商推荐和审批
+- **进货验收和发票管理**: 采购到货验收和发票处理
+
+### 数据模型
+```typescript
+interface PurchaseOrder {
+  id: number;
+  orderNumber: string;
+  companyId: number;
+  supplierId: number;
+  items: PurchaseItem[];
+  totalAmount: number;
+  status: 'draft' | 'submitted' | 'approved' | 'ordered' | 'received' | 'completed';
+  aiRecommendation: AIRecommendation; // AI供应商匹配建议
+  approvalInfo: ApprovalInfo;
+  deliveryInfo: DeliveryInfo;
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+interface PurchaseItem {
+  id: number;
+  orderId: number;
+  productId: number;
+  productName: string;
+  quantity: number;
+  unitPrice: number;
+  totalPrice: number;
+  expectedDelivery: Date;
+}
+
+interface AIRecommendation {
+  recommendedSuppliers: RecommendedSupplier[];
+  confidence: number;
+  reasoning: string;
+  timestamp: Date;
+}
+
+interface RecommendedSupplier {
+  supplierId: number;
+  supplierName: string;
+  score: number;
+  reasons: string[];
+}
+
+interface ApprovalInfo {
+  approverId: number;
+  approverName: string;
+  approvedAt: Date | null;
+  comments: string | null;
+}
+```
+
+### API端点
+- `GET /api/v1/purchase-orders` - 获取采购订单列表
+- `POST /api/v1/purchase-orders` - 创建采购订单
+- `GET /api/v1/purchase-orders/{id}` - 获取采购订单详情
+- `PUT /api/v1/purchase-orders/{id}/status` - 更新采购订单状态
+- `POST /api/v1/purchase-orders/{id}/approve` - 审批采购订单
+- `GET /api/v1/purchase-orders/{id}/ai-recommendation` - 获取AI推荐
+
+## 6. 产品管理模块
+
+### 功能特性
+- **产品分类和属性管理**: 支持多层级产品分类和自定义属性
+- **SKU和条码管理**: 完整的SKU编码和条码管理系统
+- **价格策略和成本管理**: 多维度价格策略和成本控制
+- **产品生命周期管理**: 从新品上市到退市的完整生命周期
+- **AI产品推荐**: 基于销售数据的智能产品推荐
+
+### 数据模型
+```typescript
+interface Product {
+  id: number;
+  name: string;
+  code: string;
+  sku: string;
+  barcode: string;
+  companyId: number;
+  categoryId: number;
+  brand: string;
+  model: string;
+  description: string;
+  specifications: ProductSpecification[];
+  images: ProductImage[];
+  pricing: ProductPricing;
+  inventoryInfo: ProductInventoryInfo;
+  status: 'active' | 'inactive' | 'discontinued';
+  aiRecommendation: ProductRecommendation; // AI推荐信息
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+interface ProductCategory {
+  id: number;
+  name: string;
+  code: string;
+  parentId: number | null;
+  level: number;
+  path: string;
+  attributes: CategoryAttribute[];
+  companyId: number;
+  status: 'active' | 'inactive';
+}
+
+interface CategoryAttribute {
+  id: number;
+  categoryId: number;
+  name: string;
+  type: 'text' | 'number' | 'select' | 'boolean';
+  required: boolean;
+  options: string[] | null;
+  defaultValue: string | number | boolean | null;
+}
+
+interface ProductSpecification {
+  id: number;
+  productId: number;
+  attributeId: number;
+  attributeName: string;
+  value: string | number | boolean;
+}
+
+interface ProductImage {
+  id: number;
+  productId: number;
+  url: string;
+  alt: string;
+  isPrimary: boolean;
+  sortOrder: number;
+}
+
+interface ProductPricing {
+  costPrice: number; // 成本价
+  retailPrice: number; // 零售价
+  wholesalePrice: number; // 批发价
+  vipPrice: number; // VIP价
+  discountRate: number; // 折扣率
+  currency: string; // 货币
+  taxRate: number; // 税率
+  validFrom: Date;
+  validTo: Date | null;
+}
+
+interface ProductInventoryInfo {
+  totalStock: number; // 总库存
+  reservedStock: number; // 预留库存
+  availableStock: number; // 可用库存
+  safetyStock: number; // 安全库存
+  reorderPoint: number; // 补货点
+  leadTime: number; // 采购提前期(天)
+  turnoverRate: number; // 周转率
+}
+
+interface ProductRecommendation {
+  popularityScore: number; // 受欢迎度评分
+  salesTrend: 'rising' | 'stable' | 'declining'; // 销售趋势
+  crossSellProducts: number[]; // 交叉销售产品ID
+  upSellProducts: number[]; // 升级销售产品ID
+  seasonalFactor: number; // 季节性因素
+  lastAnalysisDate: Date;
+}
+```
+
+### API端点
+- `GET /api/v1/products` - 获取产品列表
+- `POST /api/v1/products` - 创建产品
+- `GET /api/v1/products/{id}` - 获取产品详情
+- `PUT /api/v1/products/{id}` - 更新产品信息
+- `DELETE /api/v1/products/{id}` - 删除产品
+- `GET /api/v1/product-categories` - 获取产品分类
+- `POST /api/v1/product-categories` - 创建产品分类
+- `GET /api/v1/products/{id}/ai-recommendation` - 获取产品AI推荐
+- `POST /api/v1/products/batch-import` - 批量导入产品
+
+## 7. 客户档案管理模块
+
+### 功能特性
+- **客户信息全生命周期管理**: 客户从注册到流失的完整管理
+- **客户等级和信用评估**: 基于交易行为的客户评级
+- **历史订单关联分析**: 客户购买行为和偏好分析
+- **AI客户行为分析**: 基于AI的客户价值分析
+
+### 数据模型
+```typescript
+interface Customer {
+  id: number;
+  name: string;
+  code: string;
+  companyId: number;
+  contactInfo: ContactInfo;
+  level: 'A' | 'B' | 'C' | 'D'; // 客户等级
+  creditRating: number; // 信用评分 0-100
+  totalOrders: number;
+  totalAmount: number;
+  lastOrderDate: Date | null;
+  aiAnalysis: CustomerAnalysis; // AI分析结果
+  status: 'active' | 'inactive' | 'blacklisted';
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+interface CustomerAnalysis {
+  valueScore: number; // 客户价值评分
+  loyaltyScore: number; // 客户忠诚度评分
+  potentialScore: number; // 客户潜力评分
+  riskScore: number; // 客户风险评分
+  purchaseFrequency: number; // 购买频率
+  averageOrderValue: number; // 平均订单价值
+  preferredProducts: number[]; // 偏好产品ID
+  lastAnalysisDate: Date;
+}
+
+interface CustomerTransaction {
+  id: number;
+  customerId: number;
+  orderId: number;
+  type: 'purchase' | 'return' | 'refund';
+  amount: number;
+  description: string;
+  createdAt: Date;
+}
+```
+
+### API端点
+- `GET /api/v1/customers` - 获取客户列表
+- `POST /api/v1/customers` - 创建客户
+- `GET /api/v1/customers/{id}` - 获取客户详情
+- `PUT /api/v1/customers/{id}` - 更新客户信息
+- `GET /api/v1/customers/{id}/transactions` - 获取客户交易记录
+- `GET /api/v1/customers/{id}/ai-analysis` - 获取客户AI分析
+
+## 模块间交互
+
+### 数据流图
+```mermaid
+graph TD
+    A[组织架构管理] --> B[权限控制]
+    B --> C[供应商管理]
+    B --> D[产品管理]
+    B --> E[客户管理]
+    B --> F[销售管理]
+    B --> G[库存管理]
+    B --> H[采购管理]
+
+    D --> I[产品信息]
+    I --> F[销售订单]
+    I --> H[采购订单]
+    I --> G[库存管理]
+
+    F --> J[库存扣减]
+    H --> K[库存增加]
+    G --> L[库存预警]
+    L --> H[采购触发]
+
+    C --> M[供应商推荐]
+    D --> N[产品推荐]
+    E --> O[客户分析]
+    F --> P[销售预测]
+    G --> Q[库存优化]
+
+    M --> R[AI决策服务]
+    N --> R
+    O --> R
+    P --> R
+    Q --> R
+```
+
+### 关键业务流程
+
+1. **产品管理流程**:
+   - 产品分类定义 → 产品属性配置 → 产品信息录入 → SKU生成 → 价格策略设置
+
+2. **销售订单流程**:
+   - 选择产品 → 创建销售订单 → 检查库存 → 扣减库存 → 更新订单状态
+
+3. **采购订单流程**:
+   - 基于产品需求 → 创建采购需求 → AI供应商推荐 → 创建采购订单 → 审批 → 到货验收 → 增加库存
+
+4. **库存管理流程**:
+   - 产品库存监控 → 库存预警 → 触发采购 → 库存调拨 → 库存盘点
+
+5. **客户管理流程**:
+   - 客户注册 → 购买产品 → 交易记录 → AI分析 → 客户评级 → 个性化产品推荐
+
+这7个核心业务模块(组织架构管理、供应商管理、销售管理、库存管理、采购管理、产品管理、客户档案管理)共同构成了集团AI智能进销存系统的完整业务基础。产品管理作为系统的核心,为其他模块提供了标准化的产品信息,确保了数据的一致性和业务流程的顺畅性。通过模块化设计和清晰的接口定义,确保了系统的可扩展性和可维护性。

+ 45 - 52
docs/architecture/index.md

@@ -1,65 +1,58 @@
-# D8D Starter 遗留系统增强架构
+# 集团管理多公司AI智能进销存应用系统 - 架构文档
 
 ## Table of Contents
 
-- [D8D Starter 遗留系统增强架构](#table-of-contents)
+- [集团管理多公司AI智能进销存应用系统 - 架构文档](#table-of-contents)
   - [版本信息](./version-info.md)
   - [介绍](./introduction.md)
     - [文档范围](./introduction.md#文档范围)
     - [变更日志](./introduction.md#变更日志)
-  - [现有项目分析](./existing-project-analysis.md)
-    - [当前项目状态](./existing-project-analysis.md#当前项目状态)
-    - [可用文档分析](./existing-project-analysis.md#可用文档分析)
-    - [识别出的约束](./existing-project-analysis.md#识别出的约束)
-  - [增强范围和集成策略](./enhancement-scope-integration.md)
-    - [增强概述](./enhancement-scope-integration.md#增强概述)
-    - [集成方法](./enhancement-scope-integration.md#集成方法)
-    - [兼容性要求](./enhancement-scope-integration.md#兼容性要求)
+  - [高层架构](./high-level-architecture.md)
+    - [平台和基础设施选择](./high-level-architecture.md#平台和基础设施选择)
+    - [架构图](./high-level-architecture.md#架构图)
+    - [架构模式](./high-level-architecture.md#架构模式)
   - [技术栈](./tech-stack.md)
-    - [现有技术栈维护](./tech-stack.md#现有技术栈维护)
-    - [新技术添加](./tech-stack.md#新技术添加)
-  - [数据模型和Schema变更](./data-model-schema-changes.md)
-    - [现有数据模型状态](./data-model-schema-changes.md#现有数据模型状态)
-    - [Schema集成策略](./data-model-schema-changes.md#schema集成策略)
-    - [向后兼容性](./data-model-schema-changes.md#向后兼容性)
-  - [组件架构](./component-architecture.md)
-    - [现有组件优化](./component-architecture.md#现有组件优化)
-    - [组件交互](./component-architecture.md#组件交互)
-  - [API设计和集成](./api-design-integration.md)
-    - [API集成策略](./api-design-integration.md#api集成策略)
-    - [API端点示例](./api-design-integration.md#api端点示例)
-  - [源码树和文件组织](./source-tree.md)
-    - [现有项目结构](./source-tree.md#现有项目结构)
-    - [新文件组织](./source-tree.md#新文件组织)
-    - [集成指南](./source-tree.md#集成指南)
-  - [基础设施和部署集成](./infrastructure-deployment.md)
-    - [现有基础设施](./infrastructure-deployment.md#现有基础设施)
-    - [增强部署策略](./infrastructure-deployment.md#增强部署策略)
-    - [回滚策略](./infrastructure-deployment.md#回滚策略)
+    - [后端技术栈](./tech-stack.md#后端技术栈)
+    - [前端技术栈(Web)](./tech-stack.md#前端技术栈web)
+    - [小程序技术栈](./tech-stack.md#小程序技术栈)
+    - [AI服务集成](./tech-stack.md#ai服务集成)
+  - [多租户架构设计](./multi-tenant-architecture.md)
+    - [组织架构实体设计](./multi-tenant-architecture.md#组织架构实体设计)
+    - [数据隔离策略](./multi-tenant-architecture.md#数据隔离策略)
+    - [权限穿透机制](./multi-tenant-architecture.md#权限穿透机制)
+  - [核心业务模块设计](./core-business-modules.md)
+    - [组织架构管理模块](./core-business-modules.md#1-组织架构管理模块)
+    - [供应商管理模块](./core-business-modules.md#2-供应商管理模块)
+    - [销售管理模块](./core-business-modules.md#3-销售管理模块)
+    - [库存管理模块](./core-business-modules.md#4-库存管理模块)
+    - [采购管理模块](./core-business-modules.md#5-采购管理模块)
+    - [客户档案管理模块](./core-business-modules.md#6-客户档案管理模块)
+  - [AI服务集成架构](./ai-service-integration.md)
+    - [AI服务架构图](./ai-service-integration.md#ai服务架构图)
+    - [AI服务API设计](./ai-service-integration.md#ai服务api设计)
+    - [AI集成策略](./ai-service-integration.md#ai集成策略)
+  - [多端数据同步和API共享](./multi-platform-sync.md)
+    - [统一API设计](./multi-platform-sync.md#统一api设计)
+    - [数据同步策略](./multi-platform-sync.md#数据同步策略)
+    - [多级缓存策略](./multi-platform-sync.md#多级缓存策略)
+  - [性能优化策略](./performance-optimization.md)
+    - [数据库优化](./performance-optimization.md#数据库优化)
+    - [应用层优化](./performance-optimization.md#应用层优化)
+    - [前端优化](./performance-optimization.md#前端优化)
+  - [安全架构](./security-architecture.md)
+    - [认证授权](./security-architecture.md#认证授权)
+    - [数据安全](./security-architecture.md#数据安全)
+    - [应用安全](./security-architecture.md#应用安全)
+    - [基础设施安全](./security-architecture.md#基础设施安全)
+  - [部署和运维](./deployment-operations.md)
+    - [部署架构](./deployment-operations.md#部署架构)
+    - [监控体系](./deployment-operations.md#监控体系)
+    - [备份恢复](./deployment-operations.md#备份恢复)
+    - [伸缩策略](./deployment-operations.md#伸缩策略)
   - [开发工作流](./development-workflow.md)
-    - [实际开发命令](./development-workflow.md#实际开发命令)
+    - [开发环境](./development-workflow.md#开发环境)
     - [环境配置](./development-workflow.md#环境配置)
-  - [编码标准和测试策略](./coding-standards.md)
-    - [现有标准合规性](./coding-standards.md#现有标准合规性)
-    - [增强特定标准](./coding-standards.md#增强特定标准)
-    - [关键集成规则](./coding-standards.md#关键集成规则)
-  - [安全集成](./security-integration.md)
-    - [现有安全措施](./security-integration.md#现有安全措施)
-    - [增强安全要求](./security-integration.md#增强安全要求)
-    - [安全架构详细设计](./security-integration.md#安全架构详细设计)
-    - [安全测试](./security-integration.md#安全测试)
-  - [运营和监控](./operations-monitoring.md)
-    - [监控策略](./operations-monitoring.md#监控策略)
-    - [日志管理](./operations-monitoring.md#日志管理)
-    - [告警策略](./operations-monitoring.md#告警策略)
-    - [错误处理策略](./operations-monitoring.md#错误处理策略)
-  - [检查清单结果报告](./checklist-results.md)
-    - [架构师检查清单执行结果](./checklist-results.md#架构师检查清单执行结果)
-    - [需要立即修复的安全漏洞](./checklist-results.md#需要立即修复的安全漏洞)
-  - [下一步骤](./next-steps.md)
-    - [故事经理交接](./next-steps.md#故事经理交接)
-    - [开发者交接](./next-steps.md#开发者交接)
-    - [关键集成验证点](./next-steps.md#关键集成验证点)
+    - [CI/CD流程](./development-workflow.md#cicd流程)
   - [附录](./appendix.md)
     - [技术决策依据](./appendix.md#技术决策依据)
     - [相关文档](./appendix.md#相关文档)

+ 403 - 0
docs/architecture/multi-tenant-architecture.md

@@ -0,0 +1,403 @@
+# 多租户架构设计
+
+## 版本信息
+| 版本 | 日期 | 描述 | 作者 |
+|------|------|------|------|
+| 3.0 | 2025-10-20 | 集团AI智能进销存系统多租户架构 | Winston |
+
+## 组织架构实体设计
+
+### 公司实体设计
+```typescript
+// 公司实体
+interface Company {
+  id: number;
+  name: string;
+  code: string; // 公司编码
+  parentId: number | null; // 母公司ID
+  level: number; // 层级深度
+  path: string; // 层级路径
+  status: 'active' | 'inactive';
+  contactInfo: ContactInfo;
+  businessInfo: BusinessInfo;
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+// 用户实体扩展
+interface User {
+  id: number;
+  username: string;
+  email: string | null;
+  password: string;
+  companyId: number; // 所属公司
+  roles: Role[];
+  company: Company;
+  createdAt: Date;
+  updatedAt: Date;
+}
+
+// 联系信息
+interface ContactInfo {
+  phone: string | null;
+  address: string | null;
+  contactPerson: string | null;
+  email: string | null;
+}
+
+// 业务信息
+interface BusinessInfo {
+  businessLicense: string | null;
+  taxNumber: string | null;
+  industry: string | null;
+  scale: 'small' | 'medium' | 'large';
+}
+```
+
+### 组织架构树形结构
+```typescript
+// 组织架构树节点
+interface OrganizationNode {
+  id: number;
+  name: string;
+  code: string;
+  level: number;
+  parentId: number | null;
+  children: OrganizationNode[];
+  userCount: number;
+  status: 'active' | 'inactive';
+}
+
+// 组织架构查询结果
+interface OrganizationTree {
+  root: OrganizationNode;
+  totalCompanies: number;
+  totalUsers: number;
+}
+```
+
+## 数据隔离策略
+
+### 数据库层面隔离
+
+**表结构设计**:
+```sql
+-- 所有业务表添加 company_id 字段
+ALTER TABLE suppliers ADD COLUMN company_id INTEGER NOT NULL;
+ALTER TABLE customers ADD COLUMN company_id INTEGER NOT NULL;
+ALTER TABLE sales_orders ADD COLUMN company_id INTEGER NOT NULL;
+ALTER TABLE inventory ADD COLUMN company_id INTEGER NOT NULL;
+ALTER TABLE purchase_orders ADD COLUMN company_id INTEGER NOT NULL;
+
+-- 创建公司表
+CREATE TABLE companies (
+  id SERIAL PRIMARY KEY,
+  name VARCHAR(255) NOT NULL,
+  code VARCHAR(50) UNIQUE NOT NULL,
+  parent_id INTEGER REFERENCES companies(id),
+  level INTEGER NOT NULL DEFAULT 1,
+  path VARCHAR(1000) NOT NULL,
+  status VARCHAR(20) DEFAULT 'active',
+  contact_info JSONB,
+  business_info JSONB,
+  created_at TIMESTAMP DEFAULT NOW(),
+  updated_at TIMESTAMP DEFAULT NOW()
+);
+```
+
+**数据库视图**:
+```sql
+-- 创建数据隔离视图
+CREATE VIEW vw_suppliers AS
+SELECT s.*
+FROM suppliers s
+JOIN companies c ON s.company_id = c.id
+WHERE c.status = 'active';
+
+-- 创建层级数据视图(母公司可访问子公司数据)
+CREATE VIEW vw_hierarchical_suppliers AS
+SELECT s.*
+FROM suppliers s
+JOIN companies c ON s.company_id = c.id
+JOIN companies parent ON c.path LIKE parent.path || '%'
+WHERE parent.id = :current_company_id
+AND c.status = 'active';
+```
+
+**行级安全策略(RLS)**:
+```sql
+-- 启用行级安全
+ALTER TABLE suppliers ENABLE ROW LEVEL SECURITY;
+
+-- 创建策略:用户只能访问自己公司的数据
+CREATE POLICY company_isolation_policy ON suppliers
+FOR ALL USING (company_id = current_setting('app.current_company_id')::integer);
+```
+
+### 应用层面隔离
+
+**中间件自动注入**:
+```typescript
+// 多租户数据过滤中间件
+const multiTenantMiddleware = async (c: Context, next: Next) => {
+  const user = c.get('user') as User;
+
+  // 设置当前公司ID
+  c.set('currentCompanyId', user.companyId);
+
+  // 对于查询操作,自动添加公司过滤条件
+  const originalQuery = c.req.query();
+  if (originalQuery) {
+    c.req.query = {
+      ...originalQuery,
+      companyId: user.companyId.toString()
+    };
+  }
+
+  await next();
+};
+
+// 数据访问服务
+class MultiTenantService<T> {
+  constructor(private repository: Repository<T>) {}
+
+  async findAll(user: User, options?: FindOptions<T>): Promise<T[]> {
+    return this.repository.find({
+      ...options,
+      where: {
+        ...options?.where,
+        companyId: user.companyId
+      }
+    });
+  }
+
+  async findOne(user: User, id: number, options?: FindOptions<T>): Promise<T | null> {
+    return this.repository.findOne({
+      ...options,
+      where: {
+        id,
+        companyId: user.companyId,
+        ...options?.where
+      }
+    });
+  }
+}
+```
+
+## 权限穿透机制
+
+### 权限检查逻辑
+```typescript
+// 权限检查服务
+class PermissionService {
+  // 检查数据访问权限
+  async checkDataAccess(user: User, targetCompanyId: number): Promise<boolean> {
+    // 超级管理员可以访问所有数据
+    if (user.roles.some(role => role.name === 'super_admin')) {
+      return true;
+    }
+
+    // 母公司管理员可以访问子公司数据
+    if (user.roles.some(role => role.name === 'parent_admin')) {
+      return await this.isChildCompany(user.companyId, targetCompanyId);
+    }
+
+    // 普通用户只能访问本公司数据
+    return user.companyId === targetCompanyId;
+  }
+
+  // 检查是否是子公司
+  async isChildCompany(parentCompanyId: number, childCompanyId: number): Promise<boolean> {
+    const childCompany = await this.companyRepository.findOne({
+      where: { id: childCompanyId }
+    });
+
+    if (!childCompany) return false;
+
+    // 检查路径是否包含父公司路径
+    return childCompany.path.startsWith(
+      await this.getCompanyPath(parentCompanyId)
+    );
+  }
+
+  // 获取公司路径
+  async getCompanyPath(companyId: number): Promise<string> {
+    const company = await this.companyRepository.findOne({
+      where: { id: companyId }
+    });
+    return company?.path || '';
+  }
+
+  // 获取用户可访问的公司列表
+  async getAccessibleCompanies(user: User): Promise<number[]> {
+    if (user.roles.some(role => role.name === 'super_admin')) {
+      // 超级管理员可以访问所有公司
+      const allCompanies = await this.companyRepository.find({
+        where: { status: 'active' }
+      });
+      return allCompanies.map(c => c.id);
+    }
+
+    if (user.roles.some(role => role.name === 'parent_admin')) {
+      // 母公司管理员可以访问所有子公司
+      const childCompanies = await this.companyRepository.find({
+        where: {
+          path: Like(`${await this.getCompanyPath(user.companyId)}%`),
+          status: 'active'
+        }
+      });
+      return [user.companyId, ...childCompanies.map(c => c.id)];
+    }
+
+    // 普通用户只能访问本公司
+    return [user.companyId];
+  }
+}
+```
+
+### 数据查询优化
+```typescript
+// 多租户数据查询服务
+class MultiTenantQueryService {
+  constructor(private permissionService: PermissionService) {}
+
+  // 构建多租户查询条件
+  async buildQueryConditions(user: User, targetCompanyId?: number): Promise<any> {
+    const accessibleCompanies = await this.permissionService.getAccessibleCompanies(user);
+
+    if (targetCompanyId) {
+      // 检查特定公司的访问权限
+      const hasAccess = await this.permissionService.checkDataAccess(user, targetCompanyId);
+      if (!hasAccess) {
+        throw new Error('无权访问该公司数据');
+      }
+      return { companyId: targetCompanyId };
+    }
+
+    // 返回用户可访问的所有公司
+    return { companyId: In(accessibleCompanies) };
+  }
+
+  // 分页查询带权限检查
+  async findWithPagination<T>(
+    user: User,
+    repository: Repository<T>,
+    options: FindManyOptions<T> & { targetCompanyId?: number }
+  ): Promise<PaginatedResponse<T>> {
+    const conditions = await this.buildQueryConditions(user, options.targetCompanyId);
+
+    const [data, total] = await repository.findAndCount({
+      ...options,
+      where: {
+        ...options.where,
+        ...conditions
+      }
+    });
+
+    return {
+      data,
+      pagination: {
+        total,
+        current: options.skip ? Math.floor(options.skip / (options.take || 10)) + 1 : 1,
+        pageSize: options.take || 10,
+        totalPages: Math.ceil(total / (options.take || 10))
+      }
+    };
+  }
+}
+```
+
+### 审计日志
+```typescript
+// 数据访问审计
+interface DataAccessAudit {
+  id: number;
+  userId: number;
+  userCompanyId: number;
+  targetCompanyId: number;
+  resourceType: string; // 'supplier', 'customer', 'order', etc.
+  resourceId: number;
+  action: 'read' | 'create' | 'update' | 'delete';
+  timestamp: Date;
+  ipAddress: string;
+  userAgent: string;
+  success: boolean;
+  errorMessage?: string;
+}
+
+// 审计服务
+class AuditService {
+  async logDataAccess(
+    user: User,
+    targetCompanyId: number,
+    resourceType: string,
+    resourceId: number,
+    action: string,
+    success: boolean,
+    errorMessage?: string
+  ): Promise<void> {
+    const auditLog: Partial<DataAccessAudit> = {
+      userId: user.id,
+      userCompanyId: user.companyId,
+      targetCompanyId,
+      resourceType,
+      resourceId,
+      action,
+      timestamp: new Date(),
+      ipAddress: this.getClientIP(),
+      userAgent: this.getUserAgent(),
+      success,
+      errorMessage
+    };
+
+    await this.auditRepository.save(auditLog);
+  }
+}
+```
+
+## 性能优化
+
+### 数据库索引
+```sql
+-- 为多租户查询创建复合索引
+CREATE INDEX idx_suppliers_company_id ON suppliers(company_id);
+CREATE INDEX idx_customers_company_id ON customers(company_id);
+CREATE INDEX idx_orders_company_id ON sales_orders(company_id);
+CREATE INDEX idx_inventory_company_id ON inventory(company_id);
+
+-- 为层级查询创建索引
+CREATE INDEX idx_companies_path ON companies(path);
+CREATE INDEX idx_companies_parent_id ON companies(parent_id);
+```
+
+### 缓存策略
+```typescript
+// 多租户缓存服务
+class MultiTenantCacheService {
+  constructor(private redis: Redis) {}
+
+  // 公司数据缓存
+  async cacheCompanyData(companyId: number, data: any): Promise<void> {
+    const key = `company:${companyId}:data`;
+    await this.redis.setex(key, 3600, JSON.stringify(data)); // 缓存1小时
+  }
+
+  // 获取公司缓存数据
+  async getCachedCompanyData(companyId: number): Promise<any> {
+    const key = `company:${companyId}:data`;
+    const cached = await this.redis.get(key);
+    return cached ? JSON.parse(cached) : null;
+  }
+
+  // 清除公司缓存
+  async clearCompanyCache(companyId: number): Promise<void> {
+    const pattern = `company:${companyId}:*`;
+    const keys = await this.redis.keys(pattern);
+    if (keys.length > 0) {
+      await this.redis.del(...keys);
+    }
+  }
+}
+```
+
+这个多租户架构设计确保了集团级进销存系统的数据安全性和隔离性,同时提供了灵活的权限穿透机制,满足母子公司管理的复杂业务需求。

+ 38 - 19
docs/architecture/tech-stack.md

@@ -3,27 +3,46 @@
 ## 版本信息
 | 版本 | 日期 | 描述 | 作者 |
 |------|------|------|------|
-| 2.4 | 2025-09-20 | 与主架构文档版本一致 | Winston |
+| 3.0 | 2025-10-20 | 集团AI智能进销存系统技术栈 | Winston |
 
-## 现有技术栈维护
-| 类别 | 当前技术 | 版本 | 在增强中的用途 | 备注 |
-|------|----------|------|----------------|------|
-| 运行时 | Node.js | 20.18.3 | 服务器运行时环境 | ES模块支持 |
+## 后端技术栈
+| 类别 | 技术 | 版本 | 用途 | 备注 |
+|------|------|------|------|------|
+| 运行时 | Node.js | 20.19.2 | 服务器运行时环境 | ES模块支持 |
 | 框架 | Hono | 4.8.5 | Web框架和API路由 | RPC类型安全 |
-| 前端框架 | React | 19.1.0 | 用户界面构建 | 最新版本 |
-| 构建工具 | Vite | 7.0.0 | 开发服务器和构建 | 热重载支持 |
-| 数据库 | PostgreSQL | 17 | 数据持久化存储 | 通过TypeORM |
+| 数据库 | PostgreSQL | 17 | 数据持久化存储 | 多租户支持 |
 | ORM | TypeORM | 0.3.25 | 数据库操作抽象 | 实体管理 |
-| 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 设计一致性 |
-| 状态管理 | React Query | 5.83.0 | 服务端状态管理 | 数据同步 |
+| 缓存 | Redis | 7 | 会话和数据缓存 | 性能优化 |
+| 存储 | MinIO | latest | 对象存储服务 | 文件管理 |
+| 验证 | Zod | 4.x | Schema验证 | 类型安全 |
 | 认证 | JWT | 9.0.2 | 用户认证和安全 | Bearer Token |
+| 文档 | @hono/zod-openapi | latest | OpenAPI文档生成 | Swagger UI |
+
+## 前端技术栈(Web)
+| 类别 | 技术 | 版本 | 用途 | 备注 |
+|------|------|------|------|------|
+| 框架 | React | 19.1.0 | 用户界面构建 | 最新版本 |
+| 构建工具 | Vite | 7.0.0 | 开发服务器和构建 | 热重载支持 |
+| 路由 | React Router | v7 | 前端路由管理 | 声明式路由 |
+| 状态管理 | React Query | 5.83.0 | 服务端状态管理 | 数据同步 |
+| UI组件 | shadcn/ui | latest | 组件库 | 基于Radix UI |
+| 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 设计一致性 |
+| 类型检查 | TypeScript | 5.x | 类型安全 | 严格模式 |
+
+## 小程序技术栈
+| 类别 | 技术 | 版本 | 用途 | 备注 |
+|------|------|------|------|------|
+| 框架 | Taro | 4.1.4 | 多端小程序框架 | 一次开发多端运行 |
+| UI框架 | React | 18.0.0 | 小程序UI构建 | 与Web端共享逻辑 |
+| 状态管理 | @tanstack/react-query | 5.84.1 | 服务端状态管理 | 与Web端一致 |
+| 表单处理 | react-hook-form | 7.62.0 | 表单状态管理 | 类型安全 |
+| 验证 | Zod | 4.0.14 | Schema验证 | 与后端一致 |
+| 样式 | Tailwind CSS | 4.1.11 | 原子化CSS框架 | 跨端样式 |
 
-## 新技术添加
-| 技术 | 版本 | 用途 | Rationale | 集成方法 |
-|------|------|------|-----------|-----------|
-| Vitest | 2.x | 单元测试框架 | 填补测试空白,确保代码质量,更好的TypeORM支持 | 集成到现有构建流程 |
-| Testing Library | 13.x | React组件测试 | 提供组件级测试能力 | 与React项目集成 |
-| hono/testing | 内置 | API端点测试 | 验证API功能和集成 | Hono官方测试工具,更好的类型安全 |
-| node-cron | latest | 定时任务调度 | Node.js定时任务调度库 | 集成到应用启动流程 |
-| MinIO | latest | 对象存储服务 | 提供可扩展的文件存储解决方案,支持大文件上传和分段上传 | 通过MinIO客户端SDK集成 |
-| MinIO客户端SDK | latest | MinIO API集成 | 提供与MinIO服务的完整交互能力 | 后端服务集成 |
+## AI服务集成
+| 服务 | 用途 | 集成方式 | 数据流 |
+|------|------|----------|--------|
+| 销售预测 | 基于历史数据预测未来销售 | DeepSeek API + 提示词工程 | 销售数据 → DeepSeek → 预测结果 |
+| 库存优化 | 智能库存分配和补货建议 | DeepSeek API + 提示词工程 | 库存数据 → DeepSeek → 优化建议 |
+| 供应商匹配 | 基于采购需求推荐供应商 | DeepSeek API + 提示词工程 | 采购需求 → DeepSeek → 供应商推荐 |
+| 客户分析 | 客户行为分析和信用评估 | DeepSeek API + 提示词工程 | 客户数据 → DeepSeek → 分析报告 |

+ 1 - 1
docs/prd.md

@@ -258,7 +258,7 @@
 **so that** 能够基于数据做出更优的业务决策。
 
 **Acceptance Criteria**
-1. 集成第三方AI服务接口
+1. 统一集成DeepSeek API服务接口
 2. 实现AI供应商匹配功能
 3. 提供AI库存分配建议
 4. 实现销售预测和客户分析