From 928e5ec2e15c496c6fee96e8f323387eca23ccf9 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Mar 2026 16:32:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/项目异步文件上传/task.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/assets/项目异步文件上传/task.md b/assets/项目异步文件上传/task.md index 2be659b..fe405b7 100644 --- a/assets/项目异步文件上传/task.md +++ b/assets/项目异步文件上传/task.md @@ -1,10 +1,18 @@ # 项目异步文件上传功能 ## 数据库 -- 文件上传记录表:记录项目下所有文件的上传记录。项目id,流水分析平台的项目id,文件id,文件名称,文件大小,文件状态(上传中、解析中、解析成功、解析失败),主体名称,主体证件号,上传时间,上传人 +- 文件上传记录表:记录项目下所有文件的上传记录。项目id,流水分析平台的项目id,文件id,文件名称,文件大小,文件状态(上传中、解析中、解析成功、解析失败),主体名称,主体账号,上传时间,上传人 ## 流程 - 在项目详情的上传数据页面,点击流水导入的上传流水按钮 - 批量选择文件,点击确认 - 每个文件都需要调接口传输到流水分析平台。建一个线程池,然后每个文件一个线程进行异步处理。处理流程如下 - 1. 在文件上传表中插入一条该文件的记录,关联文件与项目,此时文件状态为上传中 - 2. 调用流水分析平台的上传文件接口, \ No newline at end of file + 1. 在文件上传表中插入一条该文件的记录,关联文件与项目和保存文件参数,此时文件状态为上传中 + 2. 调用流水分析平台的上传文件接口,获取返回参数中的logId,将状态更新为解析中并更新数据库 + 3. 轮询调用判断文件是否解析结束接口,间隔2秒,如果parsing为true继续,如果为false或者轮询达到300次则结束 + 4. 调用文件上传后获取单个文件上传后的状态接口,status等于-5且uploadStatusDesc等于data.wait.confirm.newaccount表示文件上传后解析成功,从返回值中获取enterpriseNameList更新到主体名称,accountNoList更新到主体账号,文件状态更新为解析成功;反之将文件状态更新为解析失败 + 5. 解析成功后,轮询调用获取流水列表并存储到兰溪本地接口,获取所有的流水,通过批量插入的方式保存到流水表中 + +## 设计 +- 线程池容量为200个线程。如果线程池空闲线程不足,则提示系统繁忙稍后再试 +- 方法中添加完善的日志 +- 每次调用文件上传接口产生的日志单独生成一个日志文件,方便进行维护 \ No newline at end of file