feat: 添加ERP服务和系统服务,完善员工门户功能

## 新增服务模块

### 1. ERP服务 (hzhub-erp)
- 新增独立的ERP数据适配服务
- 支持SQL Server 2008 R2数据源
- 提供动态API配置管理系统
- 包含客户管理、销售数据等业务接口

### 2. 系统服务 (hzhub-system)
- 新增独立的系统管理服务
- 用户、角色、权限、部门、菜单管理
- 租户管理、操作日志、在线用户监控
- 工作流引擎(warm-flow)集成
- 企业微信审批同步功能

### 3. API网关 (hzhub-gateway)
- 新增Spring Cloud Gateway网关服务
- JWT认证、路由分发、限流熔断
- XSS防护、请求日志记录
- 统一入口端口8080

## 后台管理功能增强

### ERP动态API管理
- 新增动态API配置管理界面
- API测试、文档预览、统计监控
- 错误日志查看、缓存管理
- 从数据库表自动导入API配置

### 系统管理增强
- 企业微信配置管理
- 企业微信审批同步配置
- 部门和用户管理优化

## 员工门户功能完善

### 业务页面
- 审批中心:工作流审批、待办任务
- CRM管理:客户关系管理
- 经销商管理:经销商数据展示
- 供应链管理:采购、库存、销售
- BI报表:数据可视化分析
- ERP数据探索:SQL Server数据查询

### 个人中心
- 基本设置:个人信息管理
- 安全设置:密码修改、登录日志
- 锁屏功能:自动锁屏、手动锁屏

### 其他功能
- 标签页管理:多标签页导航
- 页面缓存:keepAlive缓存机制
- 会话超时:自动检测并提示

## 经销商门户

### 页面路由
- 新增经销商管理页面路由
- AI聊天界面完善

## 文档更新

- ERP API数据库初始化指南
- ERP API前端完整实现文档
- ERP API测试和验证指南
- Gateway路由迁移计划
- 项目配置文档更新

## 部署脚本

- 统一启动/停止/重启脚本
- Docker Compose配置优化
- Nginx配置文件更新

## 技术栈

- 后端: Spring Boot 3.5.8, Java 17
- 前端: Vue 3, TypeScript, Element Plus, Vben Admin
- 工作流: warm-flow 1.8.2
- 网关: Spring Cloud Gateway
- 数据库: MySQL 8.0, SQL Server 2008 R2
- 缓存: Redis 7
- 向量库: Weaviate 1.25.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
大壮
2026-05-08 08:00:19 +00:00
parent e6fc123b1f
commit c2513849b4
1564 changed files with 52903 additions and 641 deletions

View File

@@ -0,0 +1,199 @@
# ERP API 统计监控功能说明
## 功能概述
ERP API统计监控页面提供多维度的API调用分析和性能监控功能帮助开发者快速定位问题、优化性能。
## 页面布局
页面采用上下堆叠布局:
- **上方**API概览显示所有API的汇总统计
- **下方**详细统计单个API的详细分析和监控
## 主要功能模块
### 1. API概览卡片
显示整个系统的API汇总数据
- **API总数**系统中配置的API数量
- **启用API**状态为启用的API数量
- **禁用API**状态为禁用的API数量
- **启用缓存**启用Redis缓存的API数量
### 2. 详细统计筛选
提供多种筛选和控制选项:
- **API选择**下拉选择要查看的API
- **时间范围**DatePicker范围选择器可选
- **查询按钮**:立即查询统计数据
- **刷新按钮**:手动刷新统计数据
- **重置按钮**:重置时间范围并重新查询
- **自动刷新开关**:开启/关闭自动刷新
- **刷新间隔配置**设置自动刷新的时间间隔10-300秒
- **慢查询阈值配置**定义慢查询的响应时间阈值100-10000ms
### 3. 统计卡片组8个核心指标
横向排列的统计卡片显示API的核心性能数据
- **总调用次数**该API的总调用次数
- **成功次数**:调用成功的次数(绿色标识)
- **错误次数**:调用失败的次数(红色标识)
- **错误率**错误次数占比百分比超过5%时红色警告)
- **平均响应时间**:所有调用的平均响应时间(超过阈值时黄色警告)
- **最大响应时间**:响应时间最大值(超过阈值时红色警告)
- **最小响应时间**:响应时间最小值
- **慢查询次数**:响应时间超过阈值的调用次数(黄色标识)
### 4. 性能指标卡片4个综合指标
提供更深度的性能分析:
- **性能健康度**综合考虑错误率和响应时间的健康评分0-100分
- 80+分:优秀(绿色)
- 60-80分一般黄色
- <60分红色
- 包含健康状态描述
- **成功率**:成功调用占比的进度条展示
- 显示成功次数/总次数的详细数据
- **响应时间分布**:响应时间性能评分
- 基于平均响应时间和阈值的对比
- 颜色分级显示性能状态
- **缓存状态**显示该API是否启用Redis缓存
- 启用:绿色显示"已启用"
- 未启用:灰色显示"未启用"
- 提示缓存可提升性能
### 5. 性能优化建议卡片
基于统计数据自动生成优化建议:
- **高错误率警告**:错误率>5%建议检查API配置和SQL
- **慢查询警告**平均响应时间超过阈值建议优化SQL或启用缓存
- **缓存未启用提示**:调用次数>10且未启用缓存建议启用
- **性能优秀提示**错误率≤1%且响应时间良好,保持现状
### 6. 统计概览Tab
当API有调用记录时显示
- 功能完善说明
- 性能优化建议卡片
当API无调用记录时提示
- 该API暂无调用记录
- 建议先调用动态API触发统计
### 7. 错误日志Tab
显示API的错误调用记录
- **调用时间**:错误发生的时间
- **响应时间**:该次调用的响应时间
- **客户端IP**调用方的IP地址
- **用户ID**:调用方的用户标识
- **错误消息**截断显示完整内容在Tooltip中
- **详情按钮**:打开错误详情弹窗
### 8. 错误详情弹窗
点击"详情"按钮打开,显示完整的错误信息:
- **调用信息**调用时间、响应时间、客户端IP、用户ID、调用状态、统计ID
- **错误信息**醒目的红色Alert显示完整错误消息
- **调用参数**可折叠的JSON格式化参数展示
- **执行的SQL**可折叠的SQL语句展示实际执行的SQL参数已替换
- **错误堆栈**可折叠的错误堆栈前10行
## 使用场景
### 场景1监控API运行状态
1. 选择要监控的API
2. 查看统计卡片了解基本性能数据
3. 查看性能健康度了解整体状态
4. 根据优化建议进行改进
### 场景2分析错误问题
1. 选择有错误的API
2. 切换到"错误日志"Tab
3. 查看错误消息概览
4. 点击"详情"查看完整的错误信息、SQL和堆栈
5. 根据详细信息定位问题根源
### 场景3优化慢查询
1. 设置慢查询阈值如1000ms
2. 查看慢查询次数统计
3. 如果慢查询较多,查看平均/最大响应时间
4. 根据建议优化SQL或启用缓存
### 场景4实时监控
1. 开启自动刷新开关
2. 设置刷新间隔如30秒
3. 页面将自动刷新统计数据
4. 实时观察API性能变化
### 场景5时间范围分析
1. 选择时间范围如最近1小时
2. 查询该时间段内的统计数据
3. 对比不同时间段的性能差异
4. 分析高峰时段的性能表现
## 技术实现要点
### 前端技术栈
- Vue 3 Composition API
- Ant Design Vue组件库
- TypeScript类型安全
- Reactive响应式数据
- Computed计算属性
- Watch监听器
- 定时器管理
### 后端支持接口
- `GET /erp/api/config/stats/{apiId}` - 查询统计数据
- `GET /erp/api/config/errorLog/{apiId}` - 查询错误日志
- `GET /erp/api/config/list` - 查询API列表
### 数据库表
- `erp_api_stats` - 存储每次API调用的详细信息
- 字段api_id, call_time, call_params, executed_sql, response_time, call_status, error_message, error_stack, client_ip, user_id
### 性能指标计算公式
**健康度评分**
```javascript
健康度 = (错误评分 + 响应时间评分) / 2
错误评分 = max(0, 100 - 错误率 * 10) // 每1%错误率扣10分
响应时间评分 = max(0, 100 - (平均响应时间 / 阈值) * 20)
```
**慢查询判定**
```javascript
慢查询 = 响应时间 > 配置的阈值默认1000ms
```
## 扩展功能建议
### 未来可扩展功能
1. **图表可视化**集成ECharts展示调用趋势图、响应时间分布图
2. **导出功能**导出统计数据为CSV或Excel
3. **告警通知**:配置告警阈值,超过阈值发送邮件/短信通知
4. **对比分析**多个API的性能对比
5. **缓存命中率统计**:如果启用缓存,显示缓存命中率
6. **数据留存策略**:设置统计数据保留时长
7. **慢查询日志详情**显示慢查询的具体SQL和参数
## 注意事项
1. **自动刷新**:自动刷新会消耗服务器资源,建议在需要实时监控时才开启
2. **时间范围**:查询较长时间范围的数据可能较慢,建议根据数据量选择合适的时间范围
3. **错误详情**错误堆栈可能很长弹窗中只显示前10行便于快速定位
4. **性能建议**:系统自动给出的建议仅供参考,实际优化需结合具体业务场景
## 页面访问地址
```
http://192.168.120.60:5666/erp/stats
```
或本地开发环境:
```
http://localhost:5666/#/erp/stats
```