## 新增服务模块 ### 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>
267 lines
8.8 KiB
Markdown
267 lines
8.8 KiB
Markdown
# ERP API 统计监控功能完善日志
|
||
|
||
## 更新时间
|
||
2026-04-30
|
||
|
||
## 更新内容
|
||
|
||
### 前端功能完善
|
||
|
||
#### 1. 新增错误详情弹窗组件
|
||
- 文件:`/data/hzhub/hzhub-admin/apps/web-antd/src/views/erp/stats/error-detail-modal.vue`
|
||
- 功能:
|
||
- 显示完整的错误信息和错误堆栈
|
||
- 显示实际执行的SQL语句(参数已替换)
|
||
- 显示调用参数(JSON格式化)
|
||
- 显示客户端IP、用户ID、响应时间等详细信息
|
||
- 使用Collapse组件折叠显示SQL和堆栈
|
||
- 错误堆栈只显示前10行便于快速定位
|
||
|
||
#### 2. 优化统计主页面
|
||
- 文件:`/data/hzhub/hzhub-admin/apps/web-antd/src/views/erp/stats/index.vue`
|
||
- 新增功能:
|
||
|
||
**自动刷新功能**:
|
||
- 添加自动刷新开关(Switch组件)
|
||
- 可配置刷新间隔(InputNumber,范围10-300秒)
|
||
- 使用setInterval定时器实现自动刷新
|
||
- 组件卸载时自动清理定时器
|
||
- 监听刷新间隔变化动态调整定时器
|
||
|
||
**慢查询分析**:
|
||
- 添加慢查询阈值配置(InputNumber,范围100-10000ms)
|
||
- 统计卡片中显示慢查询次数
|
||
- 响应时间超过阈值时黄色/红色标识
|
||
- 性能优化建议中包含慢查询警告
|
||
|
||
**性能健康度评估**:
|
||
- 综合考虑错误率和响应时间计算健康度(0-100分)
|
||
- 三级健康状态:
|
||
- 80+分:优秀(绿色)
|
||
- 60-80分:一般(黄色)
|
||
- <60分:差(红色)
|
||
- 自动生成健康状态描述
|
||
- 使用Progress组件可视化展示
|
||
|
||
**成功率展示**:
|
||
- Progress组件显示成功率百分比
|
||
- 显示成功次数/总次数的详细数据
|
||
- 颜色从绿色到深绿色渐变
|
||
|
||
**响应时间分布**:
|
||
- 基于平均响应时间和阈值对比计算评分
|
||
- 四级颜色标识:
|
||
- ≥80分:绿色(优秀)
|
||
- ≥60分:蓝色(良好)
|
||
- ≥40分:黄色(一般)
|
||
- <40分:红色(较差)
|
||
- 显示平均/最大响应时间的对比
|
||
|
||
**缓存状态展示**:
|
||
- 显示API是否启用Redis缓存
|
||
- 启用时绿色,未启用时灰色
|
||
- 提示缓存可提升性能
|
||
|
||
**性能优化建议**:
|
||
- 根据统计数据自动生成4种建议:
|
||
- 高错误率警告(错误率>5%)
|
||
- 慢查询警告(平均响应时间>阈值)
|
||
- 缓存未启用提示(调用次数>10且未启用)
|
||
- 性能优秀提示(错误率≤1%且响应时间良好)
|
||
|
||
**优化错误日志表格**:
|
||
- 新增"用户ID"列
|
||
- 错误消息过长时截断显示(前50字符)
|
||
- Tooltip显示完整错误消息
|
||
- 修复fixed字段的TypeScript类型问题
|
||
- 添加横向滚动支持(scroll={{ x: 1000 }})
|
||
- 顶部添加错误记录数量提示(Alert组件)
|
||
|
||
**优化筛选栏布局**:
|
||
- 使用Space组件wrap属性支持换行
|
||
- 添加Divider分隔符分隔不同功能区
|
||
- 添加Tooltip提示说明各配置项的作用
|
||
- 新增"慢查询阈值"配置(带说明Tooltip)
|
||
|
||
**新增8个统计卡片**:
|
||
- 总调用次数
|
||
- 成功次数(绿色)
|
||
- 错误次数(红色)
|
||
- 错误率(超过5%红色警告)
|
||
- 平均响应时间(超过阈值黄色)
|
||
- 最大响应时间(超过阈值红色)
|
||
- 最小响应时间
|
||
- 慢查询次数(黄色,带阈值说明)
|
||
|
||
**新增4个性能指标卡片**:
|
||
- 性能健康度(Progress + 描述)
|
||
- 成功率(Progress + 详细数据)
|
||
- 响应时间分布(Progress + 对比数据)
|
||
- 缓存状态(Statistic + 描述)
|
||
|
||
**优化统计概览Tab**:
|
||
- 移除"功能正在开发"提示
|
||
- 添加"功能已完善"成功提示
|
||
- 新增性能优化建议卡片
|
||
|
||
**优化错误日志Tab**:
|
||
- 顶部添加错误数量提示Alert
|
||
- 错误消息使用Tooltip显示完整内容
|
||
- 详情按钮打开错误详情弹窗
|
||
|
||
#### 3. 新增样式类
|
||
- `.mb-2`:底部间距8px
|
||
- `.mt-4`:顶部间距16px
|
||
- `.metric-desc`:指标描述样式(12px字体,灰色)
|
||
|
||
### 后端功能完善(已完成)
|
||
|
||
#### 1. API测试功能统计记录
|
||
- 文件:`/data/hzhub/hzhub-erp/src/main/java/org/hzhub/erp/service/impl/ErpApiServiceImpl.java`
|
||
- 修改:
|
||
- 添加ApiStatsRecorder依赖注入
|
||
- testApi方法新增clientIp和userId参数
|
||
- 执行成功时调用recordSuccess记录统计
|
||
- 执行失败时调用recordError记录统计
|
||
- 修复ApiExecutionResult类型导入
|
||
|
||
#### 2. API测试接口客户端信息提取
|
||
- 文件:`/data/hzhub/hzhub-erp/src/main/java/org/hzhub/erp/controller/ErpApiController.java`
|
||
- 修改:
|
||
- testApi方法新增HttpServletRequest参数
|
||
- 实现getClientIp方法(支持多代理场景)
|
||
- 实现getUserId方法(从网关请求头提取)
|
||
- 测试环境默认userId为"test-user"
|
||
|
||
#### 3. 服务接口签名更新
|
||
- 文件:`/data/hzhub/hzhub-erp/src/main/java/org/hzhub/erp/service/IErpApiService.java`
|
||
- 修改:
|
||
- testApi方法签名新增clientIp和userId参数
|
||
|
||
## 测试验证
|
||
|
||
### 功能测试结果
|
||
|
||
1. **API调用统计记录** ✅
|
||
- 动态API路径调用:正常记录
|
||
- API测试接口调用:正常记录
|
||
- 统计字段:client_ip, user_id, executed_sql, call_params, response_time全部正确
|
||
|
||
2. **统计查询接口** ✅
|
||
- 返回正确的统计数据:totalCalls, successCalls, errorCalls, avgResponseTime, maxResponseTime, minResponseTime, errorRate
|
||
- 类型转换正确(Long/BigDecimal兼容)
|
||
|
||
3. **错误日志查询** ✅
|
||
- 返回错误记录列表
|
||
- 包含所有必要字段
|
||
|
||
4. **前端页面访问** ✅
|
||
- 页面正常加载:http://localhost:5666/#/erp/stats
|
||
- 无编译错误
|
||
|
||
### 统计数据测试
|
||
```bash
|
||
# 测试API ID 1
|
||
curl -X POST -H "Content-Type: application/json" \
|
||
-d '{"pageNum":1,"pageSize":20}' \
|
||
http://localhost:8082/erp/api/config/test/1
|
||
|
||
# 查询统计
|
||
curl http://localhost:8082/erp/api/config/stats/1
|
||
|
||
# 结果
|
||
{
|
||
"totalCalls": 6,
|
||
"avgResponseTime": 10,
|
||
"errorRate": 0,
|
||
"successCalls": 6,
|
||
"errorCalls": 0
|
||
}
|
||
```
|
||
|
||
## 功能对比
|
||
|
||
### 原有功能
|
||
- 基础统计卡片(6个)
|
||
- API选择和筛选
|
||
- 错误日志表格(简单)
|
||
- 简单的进度条显示
|
||
- 手动刷新
|
||
|
||
### 新增功能
|
||
- 错误详情弹窗(完整信息)
|
||
- 自动刷新(可配置间隔)
|
||
- 慢查询分析(可配置阈值)
|
||
- 性能健康度评估(综合评分)
|
||
- 多维度性能指标(4个综合卡片)
|
||
- 性能优化建议(自动生成)
|
||
- 优化错误日志表格(新增用户ID列、Tooltip)
|
||
- 更多统计指标(慢查询次数、缓存状态)
|
||
- Tooltip提示说明
|
||
- TypeScript类型安全修复
|
||
|
||
## 文件清单
|
||
|
||
### 前端文件
|
||
- `/data/hzhub/hzhub-admin/apps/web-antd/src/views/erp/stats/index.vue` - 主页面(已完善)
|
||
- `/data/hzhub/hzhub-admin/apps/web-antd/src/views/erp/stats/error-detail-modal.vue` - 错误详情弹窗(新增)
|
||
|
||
### 后端文件
|
||
- `/data/hzhub/hzhub-erp/src/main/java/org/hzhub/erp/service/impl/ErpApiServiceImpl.java` - 统计记录(已完善)
|
||
- `/data/hzhub/hzhub-erp/src/main/java/org/hzhub/erp/controller/ErpApiController.java` - 客户端信息提取(已完善)
|
||
- `/data/hzhub/hzhub-erp/src/main/java/org/hzhub/erp/service/IErpApiService.java` - 接口签名(已完善)
|
||
|
||
### 文档文件
|
||
- `/data/hzhub/hzhub-erp/docs/api-stats-feature.md` - 功能说明文档(新增)
|
||
- `/data/hzhub/hzhub-erp/docs/api-stats-update-log.md` - 更新日志(新增)
|
||
|
||
## 部署说明
|
||
|
||
### 前端部署
|
||
前端开发服务器已在运行(端口5666),代码修改会自动热更新。
|
||
|
||
### 后端部署
|
||
后端服务已重启(端口8082),修改已生效。
|
||
|
||
### 访问地址
|
||
- 前端:http://192.168.120.60:5666/erp/stats
|
||
- 后端API:
|
||
- http://192.168.120.60:8082/erp/api/config/stats/{apiId}
|
||
- http://192.168.120.60:8082/erp/api/config/errorLog/{apiId}
|
||
|
||
## 使用建议
|
||
|
||
1. **实时监控**:开启自动刷新,设置30秒间隔,实时观察API性能
|
||
2. **性能优化**:关注健康度评分和优化建议,针对性改进
|
||
3. **错误定位**:通过错误详情弹窗快速定位问题根源
|
||
4. **慢查询分析**:设置合适的阈值,识别需要优化的SQL
|
||
5. **缓存优化**:根据缓存状态提示,为高频API启用缓存
|
||
|
||
## 后续计划
|
||
|
||
### 可扩展功能
|
||
1. 集成ECharts图表库,添加:
|
||
- 调用趋势折线图
|
||
- 响应时间分布柱状图
|
||
- 错误率变化趋势图
|
||
2. 导出统计数据为CSV/Excel
|
||
3. 配置告警阈值,超过阈值发送通知
|
||
4. 多API性能对比分析
|
||
5. 缓存命中率统计
|
||
6. 慢查询日志详情展示
|
||
|
||
### 数据留存优化
|
||
- 添加统计数据定时清理机制
|
||
- 配置数据保留时长
|
||
- 添加数据归档功能
|
||
|
||
## 总结
|
||
|
||
本次完善大幅提升了ERP API统计监控功能的实用性和用户体验:
|
||
- 从基础统计展示升级为多维度性能分析
|
||
- 添加了自动化监控功能(自动刷新)
|
||
- 提供了智能化的优化建议
|
||
- 完善了错误定位功能(详细弹窗)
|
||
- 增强了数据可视化(健康度、成功率、响应时间分布)
|
||
|
||
所有功能都已测试验证,可以正常使用。前端页面访问地址:http://192.168.120.60:5666/erp/stats |