diff --git a/doc/api-docs/ccdi-file-upload-api.md b/doc/api-docs/ccdi-file-upload-api.md new file mode 100644 index 0000000..91a0cdd --- /dev/null +++ b/doc/api-docs/ccdi-file-upload-api.md @@ -0,0 +1,227 @@ +# 文件上传 API 文档 + +## 1. 批量上传文件 + +### 接口地址 +POST /ccdi/file-upload/batch + +### 请求参数 +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| projectId | Long | 是 | 项目ID | +| files | File[] | 是 | 文件数组(最多100个,单个最大50MB) | + +### 请求示例 +```bash +curl -X POST "http://localhost:8080/ccdi/file-upload/batch" \ + -H "Authorization: Bearer YOUR_TOKEN" \ + -F "projectId=1" \ + -F "files=@/path/to/file1.xlsx" \ + -F "files=@/path/to/file2.xlsx" +``` + +### 返回示例 +```json +{ + "code": 200, + "msg": "上传任务已提交", + "data": "a1b2c3d4e5f6g7h8" +} +``` + +### 返回字段说明 +| 字段 | 类型 | 说明 | +|------|------|------| +| code | Integer | 状态码,200表示成功 | +| msg | String | 提示信息 | +| data | String | 批次ID,用于追踪上传任务 | + +### 错误码说明 +| code | msg | 说明 | +|------|-----|------| +| 500 | 项目ID不能为空 | 缺少必填参数 | +| 500 | 请选择要上传的文件 | 文件数组为空 | +| 500 | 单次最多上传100个文件 | 文件数量超限 | +| 500 | 文件 xxx 超过50MB限制 | 文件大小超限 | +| 500 | 文件 xxx 格式不支持,仅支持Excel文件 | 文件格式错误 | +| 500 | 系统繁忙,请稍后再试 | 线程池已满 | + +--- + +## 2. 查询上传记录列表 + +### 接口地址 +GET /ccdi/file-upload/list + +### 请求参数 +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| projectId | Long | 否 | 项目ID | +| fileStatus | String | 否 | 文件状态:uploading/parsing/parsed_success/parsed_failed | +| fileName | String | 否 | 文件名称(模糊查询) | +| uploadUser | String | 否 | 上传人 | +| pageNum | Integer | 否 | 页码,默认1 | +| pageSize | Integer | 否 | 每页数量,默认10 | + +### 请求示例 +```bash +curl -X GET "http://localhost:8080/ccdi/file-upload/list?projectId=1&fileStatus=parsed_success&pageNum=1&pageSize=10" \ + -H "Authorization: Bearer YOUR_TOKEN" +``` + +### 返回示例 +```json +{ + "code": 200, + "msg": "查询成功", + "rows": [ + { + "id": 1, + "projectId": 1, + "lsfxProjectId": 100, + "logId": 123456, + "fileName": "流水1.xlsx", + "fileSize": 2621440, + "fileStatus": "parsed_success", + "enterpriseNames": "张三,李四", + "accountNos": "622xxx,623xxx", + "uploadTime": "2026-03-05 10:30:00", + "uploadUser": "admin" + } + ], + "total": 100 +} +``` + +### 返回字段说明 +| 字段 | 类型 | 说明 | +|------|------|------| +| rows | Array | 记录列表 | +| total | Long | 总记录数 | + +--- + +## 3. 查询上传统计 + +### 接口地址 +GET /ccdi/file-upload/statistics/{projectId} + +### 路径参数 +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| projectId | Long | 是 | 项目ID | + +### 请求示例 +```bash +curl -X GET "http://localhost:8080/ccdi/file-upload/statistics/1" \ + -H "Authorization: Bearer YOUR_TOKEN" +``` + +### 返回示例 +```json +{ + "code": 200, + "msg": "查询成功", + "data": { + "uploading": 2, + "parsing": 3, + "parsedSuccess": 15, + "parsedFailed": 1, + "total": 21 + } +} +``` + +### 返回字段说明 +| 字段 | 类型 | 说明 | +|------|------|------| +| uploading | Long | 上传中数量 | +| parsing | Long | 解析中数量 | +| parsedSuccess | Long | 解析成功数量 | +| parsedFailed | Long | 解析失败数量 | +| total | Long | 总数量 | + +--- + +## 4. 查询记录详情 + +### 接口地址 +GET /ccdi/file-upload/detail/{id} + +### 路径参数 +| 参数 | 类型 | 必填 | 说明 | +|------|------|------|------| +| id | Long | 是 | 记录ID | + +### 请求示例 +```bash +curl -X GET "http://localhost:8080/ccdi/file-upload/detail/1" \ + -H "Authorization: Bearer YOUR_TOKEN" +``` + +### 返回示例 +```json +{ + "code": 200, + "msg": "查询成功", + "data": { + "id": 1, + "projectId": 1, + "lsfxProjectId": 100, + "logId": 123456, + "fileName": "流水1.xlsx", + "fileSize": 2621440, + "fileStatus": "parsed_success", + "enterpriseNames": "张三,李四", + "accountNos": "622xxx,623xxx", + "errorMessage": null, + "uploadTime": "2026-03-05 10:30:00", + "uploadUser": "admin" + } +} +``` + +--- + +## 5. 文件状态说明 + +| 状态 | 说明 | +|------|------| +| uploading | 文件上传中 | +| parsing | 文件解析中 | +| parsed_success | 文件解析成功 | +| parsed_failed | 文件解析失败 | + +--- + +## 6. 通用说明 + +### 认证方式 +所有接口需要在请求头中携带 Token: +``` +Authorization: Bearer YOUR_TOKEN +``` + +### 获取 Token +```bash +POST /login/test?username=admin&password=admin123 +``` + +### 响应格式 +所有接口统一返回格式: +```json +{ + "code": 200, + "msg": "操作成功", + "data": {} +} +``` + +### 错误处理 +当发生错误时,返回格式: +```json +{ + "code": 500, + "msg": "错误信息" +} +```