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,267 @@
# 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