Files
hzhub/docs/erp-api-quick-test-guide.md
大壮 c2513849b4 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>
2026-05-08 08:00:19 +00:00

277 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ERP API 管理平台 - 快速测试指南
## 当前状态确认
**ERP 服务运行正常**Health: UP
**SQL Server 数据库连接正常**
**数据库表已创建**(需要在 MySQL hzhub 数据库中验证)
---
## 测试方案一:通过管理后台测试(推荐)
### Step 1: 访问管理后台
访问地址http://192.168.120.60:5666 或 http://localhost:5666
登录管理员账号
### Step 2: 检查新菜单
刷新页面后,左侧菜单应该出现:
```
系统管理
工具
监控
ERP管理 ← 新增
├── API配置 ← 点击进入列表页
└── API监控
```
如果菜单未显示,可能需要:
- 重新登录
- 清除浏览器缓存
- 检查角色权限是否包含 `erp:api:list`
### Step 3: 进入 API 配置页面
点击"ERP管理 > API配置",应该看到:
- 空列表(因为还没有创建任何 API 配置)
- 工具栏有"新增"按钮
### Step 4: 创建测试 API
点击"新增"按钮,填写以下信息:
**基础信息**
- API名称`测试客户列表查询`
- API路径`/erp/dynamic/v1/test_customer_list`
- HTTP方法`GET`
- API描述`测试SQL Server客户数据查询`
- API版本`v1`
- 数据源:`erp`(默认)
- 结果类型:`LIST`
- 支持分页:`否`(先测试不分页)
**SQL模板**(选择一个测试):
**方案A简单查询推荐不依赖具体表结构**
```sql
SELECT TOP 10 customer_code, customer_name FROM customer_general
```
**方案B查询系统表通用**
```sql
SELECT TOP 5 TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
```
**权限配置**
- 是否需要认证:`否`(方便测试)
- 状态:`启用`
点击"确定"保存。
### Step 5: 测试 API 执行
在列表中找到刚创建的 API点击"测试"按钮。
**测试参数**:输入空对象 `{}`因为SQL没有参数
点击"执行",查看结果:
- 应该显示 SQL Server 的数据
- 显示执行时间(毫秒)
- 显示成功状态
如果成功,返回类似:
```json
{
"success": true,
"data": [
{"customer_code": "C001", "customer_name": "客户A"},
{"customer_code": "C002", "customer_name": "客户B"}
],
"executionTime": 156,
"executedSql": "SELECT TOP 10 customer_code, customer_name FROM customer_general"
}
```
### Step 6: 测试带参数的 API可选
创建第二个测试 API
**信息**
- API名称`测试带参数查询`
- API路径`/erp/dynamic/v1/test_param_query`
- SQL模板
```sql
SELECT customer_code, customer_name FROM customer_general
WHERE #{customerCode} IS NOT NULL THEN customer_code = #{customerCode}
```
**测试参数**
```json
{
"customerCode": "C001"
}
```
查看结果,应该只返回指定客户的数据。
---
## 测试方案二:通过 curl 直接测试 API
### 测试1无参数查询
```bash
# 直接访问动态API不需要Token因为配置了@SaIgnore
curl http://localhost:8082/erp/dynamic/v1/test_customer_list
# 或通过网关访问需要先获取Token
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:8080/erp/dynamic/v1/test_customer_list
```
**预期返回**
```json
{
"code": 200,
"msg": "操作成功",
"data": [
{"customer_code": "xxx", "customer_name": "xxx"}
]
}
```
### 测试2带参数查询
```bash
curl -X POST http://localhost:8082/erp/dynamic/v1/test_param_query \
-H "Content-Type: application/json" \
-d '{"customerCode":"C001"}'
```
### 测试3API配置管理接口
```bash
# 查询API配置列表需要Token
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:8080/erp/api/config/list?pageNum=1&pageSize=10
# 测试API需要Token
curl -X POST \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8080/erp/api/config/test/1 \
-d '{}'
```
---
## 测试验证清单
### 功能验证
**菜单显示**ERP管理菜单正常显示
**列表页面**API配置列表正常加载
**新增功能**能成功保存API配置到MySQL数据库
**测试功能**API测试弹窗正常工作
**SQL执行**动态SQL能成功查询SQL Server数据
**参数处理**带参数的SQL能正确执行
**错误处理**错误的SQL能显示详细错误信息
### 数据验证
检查 MySQL 数据库:
```sql
-- 查看创建的API配置
SELECT * FROM hzhub.erp_api_config;
-- 查看参数配置(如果有)
SELECT * FROM hzhub.erp_api_param;
-- 查看菜单配置
SELECT menu_id, menu_name, menu_type, visible, perms
FROM hzhub.sys_menu
WHERE menu_name LIKE '%ERP%' OR menu_name LIKE '%API%';
```
---
## 可能遇到的问题
### 问题1: 菜单不显示
**原因**
- SQL未执行到sys_menu表
- 角色未分配权限
**解决**
```sql
-- 检查菜单是否插入
SELECT * FROM sys_menu WHERE menu_name='ERP管理';
-- 给管理员角色分配权限假设角色ID=1
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, menu_id FROM sys_menu WHERE perms LIKE 'erp:api:%';
```
### 问题2: API执行失败
**原因**
- SQL Server连接问题
- SQL语法错误
- 表不存在
**解决**
```bash
# 测试SQL Server连接
curl http://localhost:8082/erp/test/connection
# 查看错误详情
# 在测试弹窗中查看完整的错误信息和堆栈
```
### 问题3: 保存配置失败
**原因**
- MySQL表未创建
- 字段类型不匹配
**解决**
```sql
-- 验证表结构
DESC hzhub.erp_api_config;
DESC hzhub.erp_api_param;
```
---
## 测试成功后的下一步
测试成功后,我将继续创建:
1. **前端完整界面**Phase 2
- API配置列表页含搜索、分页
- 编辑页(基础设置 + 参数配置两Tab
- 从表导入弹窗
- 测试弹窗优化
2. **从表导入功能**Phase 2
- 自动生成SQL模板
- 自动生成参数配置
3. **监控统计功能**Phase 3
- API调用统计表记录
- 统计图表展示
---
## 请告诉我测试结果
请尝试测试并告诉我:
- ✅ 测试成功,看到了数据
- ❌ 遇到问题,具体错误信息
我将根据测试结果继续优化或创建前端代码!