文件上传
This commit is contained in:
163
CLAUDE.md
163
CLAUDE.md
@@ -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 分页使用
|
||||||
|
|||||||
BIN
assets/对接流水分析/ccdi_bank_statement.docx
Normal file
BIN
assets/对接流水分析/ccdi_bank_statement.docx
Normal file
Binary file not shown.
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user