Commit Graph

59 Commits

Author SHA1 Message Date
wkc
328e5d9bec fix(ccdi-project): 修复审计字段和批量更新性能问题
- 修复updateParamValue添加update_by字段
- 修复insertBatch添加create_by和update_by字段
- 优化saveAllParams批量更新性能
- 使用batchUpdateParamValues替代循环单次更新
- 添加LambdaQueryWrapper导入
- 在Mapper接口中添加batchUpdateParamValues方法
2026-03-09 09:50:59 +08:00
wkc
c2a95e35ae fix(ccdi-project): 修复审计字段和批量更新性能问题
1. 补充审计字段设置:
   - updateParamValue 添加 update_by 字段
   - insertBatch 添加 create_by 和 update_by 字段
   - Service 层手动设置审计字段

2. 优化批量更新性能:
   - 从循环单次更新改为批量更新
   - 使用 batchUpdateParamValues 方法
   - 减少数据库交互次数(从18次减少到1次)

影响:提升性能,完善审计追踪
2026-03-09 09:49:05 +08:00
wkc
d825d3649a fix(ccdi-project): 添加updateParamValue方法到Mapper接口 2026-03-09 08:53:19 +08:00
wkc
afbaa34500 fix(ccdi-project): 添加selectByProjectAndModel方法到Mapper接口 2026-03-09 08:52:06 +08:00
wkc
fa1a31517d fix(ccdi-project): 修复Mapper接口,添加缺失的selectDistinctModels方法 2026-03-06 17:19:22 +08:00
wkc
500285de2d fix(ccdi-project): 添加Mapper批量插入方法 2026-03-06 17:16:37 +08:00
wkc
a102643b9f fix(ccdi-project): 修复批量保存时复制所有模型参数的逻辑 2026-03-06 17:12:02 +08:00
wkc
b484f1226f feat(ccdi-project): 在Mapper XML中添加批量查询SQL 2026-03-06 17:06:53 +08:00
wkc
9f6ee35638 feat(ccdi-project): 在Controller中添加批量查询和保存接口 2026-03-06 17:06:40 +08:00
wkc
89b852ab8d feat(ccdi-project): 实现批量查询和保存方法 2026-03-06 17:05:36 +08:00
wkc
356ecbc67f feat(ccdi-project): 在Service接口中添加批量查询和保存方法 2026-03-06 17:02:44 +08:00
wkc
42a2cea3e0 feat(ccdi-project): 在Mapper接口中添加批量查询方法 2026-03-06 17:00:47 +08:00
wkc
3507e32800 debug: 添加 selectModelList 方法调试日志 2026-03-06 15:43:31 +08:00
wkc
c09cd77723 feat: 修改 saveParams 方法支持首次保存自动复制默认参数 2026-03-06 15:25:41 +08:00
wkc
7dba7845cc feat: 添加 copyDefaultParamsToProject 私有方法 2026-03-06 15:25:00 +08:00
wkc
0828897860 feat: 修改 selectParamList 方法支持根据 configType 返回对应参数 2026-03-06 15:24:24 +08:00
wkc
c38b87319d feat: 注入 CcdiProjectMapper 依赖 2026-03-06 15:17:38 +08:00
wkc
3f6db8e921 feat: 添加 Mapper XML SQL updateParamValue 和 insertBatch 2026-03-06 15:16:56 +08:00
wkc
b37bd7380b feat: 添加 Mapper 接口方法 updateParamValue 和 insertBatch 2026-03-06 15:16:20 +08:00
wkc
de35bd33c0 拼写错误 2026-03-05 17:28:39 +08:00
wkc
b7197682e7 fix: 补充银行流水接口 uploadSequnceNumber 字段接收和映射
- 在 GetBankStatementResponse.BankStatementItem 中添加 uploadSequnceNumber 字段
- 在 CcdiBankStatement.fromResponse() 中添加字段映射到 batchSequence
- 修复流水分析接口返回的上传序号数据丢失问题
2026-03-05 16:57:13 +08:00
wkc
756129b913 fix: 修复tempFilePaths和records对应关系的潜在bug
问题:
- 原代码中保存临时文件和创建记录使用两个独立的循环
- 无法保证两个列表的索引严格一一对应
- 如果中间出现异常或跳过,会导致对应关系错乱

修复:
- 将两个循环合并为一个,在同一个循环中处理
- 使用相同的索引i创建tempFilePaths[i]和records[i]
- 添加数量一致性验证
- 临时文件名中加入索引i,避免文件名冲突
- 日志中记录索引i便于调试

影响:
- 确保临时文件和数据库记录严格一一对应
- 避免异步处理时出现文件与记录不匹配的问题
2026-03-05 13:47:39 +08:00
wkc
d8d60f9103 feat: 实现CcdiFileUploadServiceImpl所有TODO
完整实现异步文件上传服务的所有TODO方法:

1. 新增批次日志管理器
   - 为每个批次创建独立日志文件
   - 路径: {ruoyi.profile}/logs/file-upload/{projectId}/{timestamp}.log
   - 支持ThreadLocal隔离

2. 完善CcdiFileUploadServiceImpl
   - 注入LsfxAnalysisClient和CcdiBankStatementMapper
   - 实现processFileAsync: 文件上传到流水分析平台
   - 实现waitForParsingComplete: 固定间隔轮询(300次×2秒)
   - 实现获取解析结果: status=-5判断成功
   - 实现fetchAndSaveBankStatements: 分页获取(每页1000条)+批量插入(每批1000条)
   - 集成批次日志管理

3. 关键特性
   - 完整的流水分析平台集成
   - 固定间隔轮询策略
   - 大批量分页获取(每页1000条)
   - 批量插入优化(每批1000条)
   - 严格失败策略: 任何异常直接标记为parsed_failed
   - 完善的日志记录

4. 测试验证
   - 编译通过,无错误
   - 所有TODO已实现
2026-03-05 13:40:29 +08:00
wkc
190c7b096e 修改配置文件 2026-03-05 11:05:41 +08:00
wkc
5af6f236f0 refactor: 使用ruoyi.profile配置作为临时文件路径
- 恢复application.yml中的ruoyi.profile配置项
- Service使用@Value注解读取ruoyi.profile
- 临时文件存储在 {ruoyi.profile}/temp 目录下
- 移除硬编码的临时目录配置
2026-03-05 10:59:10 +08:00
wkc
18dc022b55 refactor: 临时文件目录使用ruoyi.profile配置
- 移除硬编码的临时目录常量
- 使用ruoyi.profile配置(D:/ruoyi/uploadPath)
- 临时文件存储路径:{ruoyi.profile}/temp/upload
- 复用若依框架统一的文件路径配置
2026-03-05 10:54:40 +08:00
wkc
9f6a4b0962 feat: 添加文件上传Controller 2026-03-05 10:46:33 +08:00
wkc
aa0c49f9b1 fix: 修复硬编码lsfxProjectId问题
- 注入CcdiProjectMapper
- 查询项目信息获取真实的lsfxProjectId
- 验证项目存在,不存在则抛出IllegalArgumentException
- 验证项目已关联流水分析平台,未关联则抛出IllegalStateException
- 添加日志记录项目信息验证通过
2026-03-05 10:39:13 +08:00
wkc
ebf66ea70b fix: 修复3个Critical代码问题
Critical Fix #1: 事务边界违规
- 添加@Transactional注解
- 使用TransactionSynchronizationManager确保异步任务在事务提交后启动
- 避免事务回滚导致的数据不一致问题

Critical Fix #2: MultipartFile生命周期问题
- 在启动异步任务前将MultipartFile保存到临时存储
- 使用临时文件路径替代MultipartFile对象
- 在处理完成后清理临时文件

Critical Fix #3: 批量插入后ID生成验证
- 在XML映射中添加useGeneratedKeys=true和keyProperty=id
- 在批量插入后验证所有记录ID已生成
- 抛出异常如果ID未生成

Additional Fix: 线程中断处理
- 在调度线程中检查中断状态
- 被中断时停止提交剩余任务
2026-03-05 10:30:36 +08:00
wkc
71d9b5b2d1 feat: 实现异步处理单个文件的完整流程 2026-03-05 09:56:50 +08:00
wkc
85a03a001d feat: 实现批量上传主方法和调度线程 2026-03-05 09:55:18 +08:00
wkc
10cc8e87a5 feat: 添加文件上传服务实现(基础CRUD方法) 2026-03-05 09:47:52 +08:00
wkc
1fd40c8ab1 feat: 添加文件上传服务接口 2026-03-05 09:46:44 +08:00
wkc
56a2b600bc feat: 添加异步线程池配置 2026-03-05 09:35:13 +08:00
wkc
5205874224 feat: 添加文件上传查询DTO和统计VO 2026-03-05 09:34:25 +08:00
wkc
8706a2c1df feat: 添加文件上传记录Mapper接口和XML映射 2026-03-05 09:33:05 +08:00
wkc
bf4b4e41a2 feat: 添加文件上传记录实体类 2026-03-05 09:32:00 +08:00
wkc
6ca5aa4812 feat: 创建银行流水 Mapper XML 映射文件 2026-03-04 16:16:03 +08:00
wkc
ac21ca1225 feat: 创建银行流水 Mapper 接口 2026-03-04 16:14:57 +08:00
wkc
a727119f51 feat: 实现银行流水转换方法 fromResponse() 2026-03-04 16:14:17 +08:00
wkc
638795e096 test: 添加银行流水转换方法的单元测试 2026-03-04 16:08:46 +08:00
wkc
4755e6fea3 feat: 创建银行流水实体类基础结构 2026-03-04 16:05:47 +08:00
wkc
b9ca44cbca feat: createProject方法集成流水分析平台调用 2026-03-04 10:56:34 +08:00
wkc
9916f641ac feat: 实现callLsfxPlatform方法调用流水分析平台 2026-03-04 10:55:31 +08:00
wkc
4cf76a13a0 feat: CcdiProjectServiceImpl注入LsfxAnalysisClient依赖 2026-03-04 10:54:55 +08:00
wkc
e43d2ac0f6 feat: CcdiProjectVO添加lsfxProjectId字段 2026-03-04 09:55:38 +08:00
wkc
4a2d993a91 feat: CcdiProject实体类添加lsfxProjectId字段 2026-03-04 09:55:10 +08:00
wkc
6dccf48160 feat: 添加项目状态统计接口 2026-02-28 09:06:01 +08:00
wkc
9423184d37 feat: 实现项目状态统计方法
- 添加 getStatusCounts() 方法实现
- 使用 MyBatis Plus selectCount 统计各状态项目数量
- 统计全部项目、进行中(0)、已完成(1)、已归档(2)的项目数量
2026-02-28 08:53:02 +08:00
wkc
f7bf5ee62d feat: Service 接口添加状态统计方法声明 2026-02-27 17:33:27 +08:00