文件上传

This commit is contained in:
wkc
2026-03-04 09:47:42 +08:00
parent 3f71217dfc
commit 301fa6c85c
5 changed files with 153 additions and 13 deletions

163
CLAUDE.md
View File

@@ -34,7 +34,7 @@ POST http://localhost:8080/login/test?username=admin&password=admin123
| 后端技术 | 版本 | 前端技术 | 版本 | | 后端技术 | 版本 | 前端技术 | 版本 |
|-----------------------------|--------|------------|---------| |-----------------------------|--------|------------|---------|
| Spring Boot | 3.5.8 | Vue.js | 2.6.12 | | Spring Boot | 3.5.8 | Vue.js | 2.6.12 |
| Java | 17 | Element UI | 2.15.14 | | Java | 21 | Element UI | 2.15.14 |
| MyBatis Spring Boot Starter | 3.0.5 | Vuex | 3.6.0 | | MyBatis Spring Boot Starter | 3.0.5 | Vuex | 3.6.0 |
| MySQL Connector | 8.2.0 | Vue Router | 3.4.9 | | MySQL Connector | 8.2.0 | Vue Router | 3.4.9 |
| SpringDoc OpenAPI | 2.8.14 | Axios | 0.28.1 | | SpringDoc OpenAPI | 2.8.14 | Axios | 0.28.1 |
@@ -114,7 +114,10 @@ ccdi/
├── ruoyi-common/ # 通用工具 (annotations, utils, constants) ├── ruoyi-common/ # 通用工具 (annotations, utils, constants)
├── ruoyi-quartz/ # 定时任务 ├── ruoyi-quartz/ # 定时任务
├── ruoyi-generator/ # 代码生成器 ├── ruoyi-generator/ # 代码生成器
├── ruoyi-info-collection/ # 【核心业务模块】信息采集 ├── ccdi-info-collection/ # 【核心业务模块】信息采集
├── ccdi-project/ # 【核心业务模块】项目管理
├── ccdi-lsfx/ # 【核心业务模块】流水分析对接
├── lsfx-mock-server/ # 流水分析模拟服务器 (Python)
├── ruoyi-ui/ # 前端 Vue 应用 ├── ruoyi-ui/ # 前端 Vue 应用
├── sql/ # 数据库脚本 ├── sql/ # 数据库脚本
├── bin/ # 启动脚本 ├── bin/ # 启动脚本
@@ -130,7 +133,11 @@ ruoyi-admin (启动模块)
├── ruoyi-common (共享工具) ├── ruoyi-common (共享工具)
├── ruoyi-quartz (定时任务) ├── ruoyi-quartz (定时任务)
├── ruoyi-generator (代码生成) ├── ruoyi-generator (代码生成)
── ruoyi-info-collection (信息采集模块) ── ccdi-info-collection (信息采集模块)
│ └── 依赖 ruoyi-common
├── ccdi-project (项目管理模块)
│ └── 依赖 ruoyi-common
└── ccdi-lsfx (流水分析对接模块)
└── 依赖 ruoyi-common └── 依赖 ruoyi-common
``` ```
@@ -140,7 +147,7 @@ ruoyi-admin (启动模块)
3.`ruoyi-admin/pom.xml` 中添加对新模块的依赖 3.`ruoyi-admin/pom.xml` 中添加对新模块的依赖
4. 在新模块中按照分层规范创建 controller/service/mapper/domain 包 4. 在新模块中按照分层规范创建 controller/service/mapper/domain 包
### ruoyi-info-collection 业务模块 (核心) ### ccdi-info-collection 业务模块 (核心)
自定义业务模块,包含以下核心功能: 自定义业务模块,包含以下核心功能:
@@ -158,14 +165,87 @@ ruoyi-admin (启动模块)
**分层结构:** **分层结构:**
- Controller: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/controller/` - Controller: `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/`
- Service: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/service/` - Service: `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/`
- Mapper: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/mapper/` - Mapper: `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/mapper/`
- Domain: `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/domain/` - Domain: `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/`
- dto/: 数据传输对象 - dto/: 数据传输对象
- vo/: 视图对象 - vo/: 视图对象
- excel/: Excel导入导出实体 - excel/: Excel导入导出实体
- XML映射: `ruoyi-info-collection/src/main/resources/mapper/info/collection/` - XML映射: `ccdi-info-collection/src/main/resources/mapper/info/collection/`
### ccdi-project 业务模块 (核心)
项目管理模块,用于管理纪检初核项目的全生命周期:
**核心功能:**
- 项目创建、更新、删除、查询
- 项目状态管理 (进行中、已完成、已归档)
- 项目统计(按状态统计数量)
- 模型参数配置管理
**主要 Controller:**
- CcdiProjectController: 项目管理
- CcdiModelParamController: 模型参数配置
**分层结构:**
- Controller: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/`
- Service: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/`
- Mapper: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/mapper/`
- Domain: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/domain/`
- XML映射: `ccdi-project/src/main/resources/mapper/ccdi/project/`
### ccdi-lsfx 业务模块 (核心)
流水分析平台对接模块,用于与外部流水分析系统交互:
**核心功能:**
- 获取访问令牌 (Token)
- 上传流水文件并解析
- 拉取行内流水数据
- 查询解析状态和结果
- 获取银行流水明细
**主要组件:**
- LsfxAnalysisClient: 流水分析平台客户端
- LsfxTestController: 测试接口
**配置项 (application-dev.yml):**
```yaml
lsfx:
api:
base-url: http://localhost:8000 # 流水分析平台地址
app-id: your-app-id
app-secret: your-app-secret
client-id: your-client-id
endpoints:
get-token: /api/auth/token
upload-file: /api/files/upload
fetch-inner-flow: /api/flow/inner
```
**分层结构:**
- Client: `ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/`
- Controller: `ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/`
- Domain: `ccdi-lsfx/src/main/java/com/ruoyi/lsfx/domain/`
- request/: 请求对象
- response/: 响应对象
- Config: `ccdi-lsfx/src/main/java/com/ruoyi/lsfx/config/`
### lsfx-mock-server (开发测试工具)
Python 实现的流水分析平台模拟服务器,用于本地开发和测试:
**用途:**
- 模拟流水分析平台的 API 接口
- 提供测试数据和模拟响应
- 支持错误场景模拟
**启动方式:**
```bash
cd lsfx-mock-server
python app.py # 默认监听 http://localhost:8000
```
--- ---
@@ -389,6 +469,55 @@ POST /login/test?username=admin&password=admin123
- **数据库索引**: 0 - **数据库索引**: 0
- **连接超时**: 10s - **连接超时**: 10s
### 流水分析平台配置
项目集成了外部流水分析平台,配置项位于 `application-dev.yml`:
```yaml
lsfx:
api:
base-url: http://localhost:8000 # 流水分析平台基础地址
app-id: ccdi-app # 应用ID
app-secret: ccdi-secret-2024 # 应用密钥
client-id: ccdi-client # 客户端ID
endpoints:
get-token: /api/auth/token # 获取令牌接口
upload-file: /api/files/upload # 文件上传接口
fetch-inner-flow: /api/flow/inner # 拉取行内流水接口
```
**开发环境使用 Mock 服务器:**
- 本地开发时,将 `base-url` 设置为 `http://localhost:8000`
- 启动 `lsfx-mock-server` 提供模拟接口
- 生产环境替换为真实的流水分析平台地址
### MCP 配置
项目使用 MCP (Model Context Protocol) 连接数据库,配置文件: `.mcp.json`
```json
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@fhuang/mcp-mysql-server"],
"env": {
"MYSQL_HOST": "116.62.17.81",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "Kfcx@1234",
"MYSQL_DATABASE": "ccdi"
}
}
}
}
```
**使用场景:**
- 通过 MCP 工具直接查询和操作数据库
- 在开发过程中快速验证数据
- 生成测试数据和调试 SQL
### Druid 监控台 ### Druid 监控台
访问地址: `http://localhost:8080/druid/` 访问地址: `http://localhost:8080/druid/`
@@ -405,8 +534,11 @@ POST /login/test?username=admin&password=admin123
|---------------|--------------------------------------------------------------------------------| |---------------|--------------------------------------------------------------------------------|
| 应用入口 | `ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java` | | 应用入口 | `ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java` |
| 安全配置 | `ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java` | | 安全配置 | `ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java` |
| 业务 Controller | `ruoyi-info-collection/src/main/java/com/ruoyi/info/collection/controller/` | | 信息采集 Controller | `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/` |
| 业务 Mapper XML | `ruoyi-info-collection/src/main/resources/mapper/info/collection/` | | 信息采集 Mapper XML | `ccdi-info-collection/src/main/resources/mapper/info/collection/` |
| 项目管理 Controller | `ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/` |
| 项目管理 Mapper XML | `ccdi-project/src/main/resources/mapper/ccdi/project/` |
| 流水分析 Client | `ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java` |
| Vue 路由 | `ruoyi-ui/src/router/index.js` | | Vue 路由 | `ruoyi-ui/src/router/index.js` |
| Vuex Store | `ruoyi-ui/src/store/` | | Vuex Store | `ruoyi-ui/src/store/` |
| 前端 API | `ruoyi-ui/src/api/` | | 前端 API | `ruoyi-ui/src/api/` |
@@ -499,6 +631,15 @@ doc/
3. 确认 Excel 模板格式正确 3. 确认 Excel 模板格式正确
4. 检查必填字段是否为空 4. 检查必填字段是否为空
### 流水分析平台连接失败
**检查项:**
1. 确认 `lsfx-mock-server` 已启动(开发环境)
2. 检查 `application-dev.yml` 中的 `lsfx.api.base-url` 配置
3. 验证 app-id、app-secret、client-id 是否正确
4. 检查网络连接和防火墙设置
5. 查看后端日志中的 HTTP 请求错误信息
--- ---
## MyBatis Plus 分页使用 ## MyBatis Plus 分页使用

Binary file not shown.

View File

@@ -82,8 +82,7 @@ public class LsfxAnalysisClient {
long elapsed = System.currentTimeMillis() - startTime; long elapsed = System.currentTimeMillis() - startTime;
if (response != null && response.getData() != null) { if (response != null && response.getData() != null) {
log.info("【流水分析】获取Token成功: projectId={}, 耗时={}ms", log.info("【流水分析】获取Token成功: projectId={}, 耗时={}ms", response.getData().getProjectId(), elapsed);
response.getData().getProjectId(), elapsed);
} else { } else {
log.warn("【流水分析】获取Token响应异常: 耗时={}ms", elapsed); log.warn("【流水分析】获取Token响应异常: 耗时={}ms", elapsed);
} }