|
|
e95abccf5d
|
fix: 修复isRowAlreadyFailed方法的NPE风险
修复第387行潜在的空指针异常:
- 将 f.getStaffId().equals(excel.getStaffId())
- 改为 Objects.equals(f.getStaffId(), excel.getStaffId())
- 确保当staffId为null时不会抛出NPE
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-11 13:42:55 +08:00 |
|
|
|
03b721d92f
|
docs: 添加员工调动导入员工ID校验设计文档
- 完成需求分析和架构设计
- 定义批量预验证方案
- 详述数据流和代码实现
- 列出边界情况和测试场景
- 分析性能影响范围
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-11 11:06:51 +08:00 |
|
|
|
f7c8bd1c95
|
feat
|
2026-02-09 17:00:41 +08:00 |
|
|
|
02249c402e
|
文件夹整理
|
2026-02-09 14:28:25 +08:00 |
|
|
|
886176ed7e
|
除员工外 取消导入更新
|
2026-02-09 02:18:56 +08:00 |
|
|
|
cf5e435992
|
docs: 添加中介导入历史清除功能完成报告
- 添加功能设计文档
- 添加功能完成总结报告
- 包含代码审查结果和后续优化建议
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 18:52:44 +08:00 |
|
|
|
5ec5913759
|
fix: 修复中介导入成功条数计算错误
问题:
- 导入成功条数显示为负数
- 原因:成功数量计算使用 validRecords.size() - failures.size()
- 但没有使用实际的数据库操作返回值
修复:
- saveBatchWithUpsert 和 saveBatch 方法现在返回 int
- 累加实际的数据库影响行数
- 使用 actualSuccessCount 变量跟踪真实成功数量
影响范围:
- CcdiIntermediaryPersonImportServiceImpl
- CcdiIntermediaryEntityImportServiceImpl
|
2026-02-08 17:18:18 +08:00 |
|
|
|
717bfb67c5
|
docs: 添加Task 5&6完成报告
- 详细记录Service层重构过程
- 代码对比和性能分析
- 测试覆盖和验证点
- 后续建议和风险评估
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 16:25:08 +08:00 |
|
|
|
7d534de54f
|
refactor: 重构Service层使用ON DUPLICATE KEY UPDATE
- 更新模式直接调用importPersonBatch/importEntityBatch
- 移除'先删除再插入'逻辑,代码简化约50%
- 添加辅助方法saveBatchWithUpsert/getExistingPersonIdsFromDb
- 添加createFailureVO重载方法简化失败记录创建
变更详情:
- CcdiIntermediaryPersonImportServiceImpl: 重构importPersonAsync方法
- CcdiIntermediaryEntityImportServiceImpl: 重构importEntityAsync方法
- 两个Service均采用统一的处理模式
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 16:21:22 +08:00 |
|
|
|
34357b1f38
|
chore: 添加.worktrees/到gitignore
为使用git worktree功能做准备,防止意外提交worktree内容。
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 15:49:18 +08:00 |
|
|
|
5f86d378ef
|
docs: 添加采购交易导入功能优化完成标记
- 所有任务已完成
- 代码验证通过
- 文档完善
- 功能ready
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 14:05:32 +08:00 |
|
|
|
60e836163e
|
docs: 添加采购交易导入功能优化变更日志
- 详细的前端交互变更说明
- 技术实现细节
- 测试验证结果
- 后续优化建议
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 14:04:48 +08:00 |
|
|
|
d4f2f01d20
|
docs: 添加采购交易导入功能优化实施计划
实施计划包含:
- 24个详细任务,每个任务2-5分钟完成
- 分11个阶段:前置准备、data属性、computed属性、生命周期、
localStorage管理、状态恢复、上传逻辑、轮询机制、
失败记录查看、UI修改、验证测试、文档更新
- 每个任务包含:文件路径、完整代码、验证步骤、提交命令
- TDD原则、频繁提交、完整文档
预期工作量: 2-3小时
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 13:44:13 +08:00 |
|
|
|
e120f836b2
|
docs: 添加采购交易导入功能优化设计文档
设计目标:
- 采用后台异步处理+通知提示,避免弹窗阻塞用户操作
- 完全复用员工信息维护的导入逻辑
- 支持查看导入失败记录
- 实现状态持久化
主要设计内容:
- 整体架构和用户交互流程
- 前端组件结构和状态管理
- UI组件修改方案
- 核心方法实现(10个方法)
- 完整修改清单和测试要点
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-08 13:40:32 +08:00 |
|
|
|
89399cab67
|
Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
# doc/plans/2026-02-06-ccdi_purchase_transaction.md
|
2026-02-06 17:23:59 +08:00 |
|
|
|
f659913b2f
|
员工采购
|
2026-02-06 17:22:59 +08:00 |
|
|
|
b38c1121e6
|
docs: 添加采购交易最终验证清单
- 功能测试清单(前端8大功能模块详细检查点)
- 页面访问、查询、新增、编辑、详情、删除、导出、导入
- 后端10个接口测试要点
- 权限测试(菜单权限、按钮权限、数据权限)
- 代码审查清单(后端7个方面、前端6个方面、数据库3个方面)
- 性能测试建议(查询/写入/导入导出/并发/压力测试)
- 部署前检查项(代码/配置/数据/文档/测试/部署)
- 验收标准(7个维度)
- 验收流程(4个阶段)
- Bug分级标准
文件路径: doc/plans/2026-02-06-ccdi_purchase_transaction-verification.md
Task 21: 最终验证清单
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 16:52:20 +08:00 |
|
|
|
a2c9c14092
|
docs: 添加中介库异步导入功能实施计划
|
2026-02-06 15:13:22 +08:00 |
|
|
|
9232a9f10f
|
feat: 实现招聘信息异步导入功能
- 添加异步导入服务接口和实现
- 创建导入失败记录VO类
- 添加导入设计文档和测试数据生成脚本
- 支持大批量招聘数据的异步处理
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 15:12:40 +08:00 |
|
|
|
fac41d4711
|
feat: 实现招聘信息异步导入功能
- 添加异步导入服务接口和实现
- 创建导入失败记录VO类
- 添加导入设计文档和测试数据生成脚本
- 支持大批量招聘数据的异步处理
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 15:04:19 +08:00 |
|
|
|
c8a05e3001
|
docs: 添加中介库异步导入功能设计文档
|
2026-02-06 14:46:16 +08:00 |
|
|
|
9e9733cf52
|
feat: 完成员工导入结果跨页面持久化功能
功能概述:
- 使用localStorage存储最近一次导入任务信息
- 支持切换菜单后查看上一次的导入失败记录
- 自动过期处理(7天)
- 完整的错误处理和用户友好的提示信息
- 新增清除历史记录功能
核心实现:
- saveImportTaskToStorage: 保存导入状态到localStorage
- getImportTaskFromStorage: 读取并验证导入状态
- clearImportTaskFromStorage: 清除localStorage数据
- restoreImportState: 页面加载时恢复导入状态
- getLastImportTooltip: 获取导入时间提示
- clearImportHistory: 用户手动清除历史记录
导入流程增强:
- handleFileSuccess: 保存初始状态,清除旧数据
- handleImportComplete: 保存完整状态,更新UI
- startImportStatusPolling: 添加5分钟超时机制
错误处理增强:
- getFailureList: 分类处理404/500/网络错误
- 404错误时自动清除localStorage并隐藏按钮
- 友好的用户提示信息
UI优化:
- lastImportInfo计算属性显示导入统计
- 失败记录按钮tooltip显示导入时间
- 失败记录对话框显示完整统计信息
- 对话框添加清除历史记录按钮
测试场景:
- 导入成功无失败后刷新页面
- 导入有失败后刷新页面
- 导入有失败后切换菜单
- 新导入覆盖旧记录
- 手动清除历史记录
- localStorage过期处理
相关提交:
- b932a7d docs: 添加员工导入结果跨页面持久化设计文档
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 13:40:39 +08:00 |
|
|
|
b932a7dba8
|
docs: 添加员工导入结果跨页面持久化设计文档
实现了导入状态的localStorage持久化方案:
- 支持切换菜单后查看上一次导入结果
- 仅保留最后一次导入记录
- 依赖Redis TTL自动清理过期数据
- 完整的错误处理和边界情况处理
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 12:11:42 +08:00 |
|
|
|
8bdce0adbf
|
feat: 实现员工信息异步导入Service层方法
完成功能:
- 新增异步导入方法 importEmployeeAsync,使用@Async注解实现异步处理
- 新增查询导入状态方法 getImportStatus
- 新增查询导入失败记录方法 getImportFailures
- 实现完整的导入逻辑,包括数据分类、批量操作、进度跟踪
- 使用Redis存储导入状态和失败记录,TTL设置为7天
- 支持增量更新模式,批量插入新数据,批量更新已有数据
- 实时更新导入进度到Redis
技术要点:
- 使用RedisTemplate操作Redis,Hash结构存储状态
- 使用importExecutor线程池异步执行导入任务
- 使用UUID生成唯一任务ID
- 使用CompletableFuture包装返回结果
- 批量操作提高性能(saveBatch每500条一批)
- 失败记录只保存到Redis,不保存成功记录
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-06 09:34:08 +08:00 |
|
|
|
4c3eeea256
|
员工关系移除
|
2026-02-06 09:01:33 +08:00 |
|
|
|
1e691f9697
|
docs: 添加员工信息导入结果弹窗自适应优化设计文档
- 分析现有问题:弹窗内容过多时超出视口
- 设计固定高度+内容可滚动的Flexbox布局方案
- 提供完整的CSS样式和响应式设计
- 包含实施计划、验收标准和技术要点
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-05 16:09:40 +08:00 |
|
|
|
bed3ab5ed8
|
docs: 添加员工招聘信息管理功能设计文档
包含完整的数据库设计、API接口设计、批量导入优化方案和实施步骤。
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-05 14:46:12 +08:00 |
|
|
|
81d4038302
|
中介黑名单更新
|
2026-02-05 13:33:27 +08:00 |
|
|
|
dc8f1be4c3
|
中介黑名单更新
|
2026-02-04 19:16:34 +08:00 |
|
|
|
bc2959b93c
|
中介黑名单更新
|
2026-02-04 18:36:20 +08:00 |
|
|
|
72e2539134
|
docs: 添加项目详情页面设计文档
- 独立页面路由架构设计
- 五个子页面功能规划
- 接口设计与Mock数据定义
- 组件结构与状态管理方案
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-01-30 17:26:15 +08:00 |
|