Commit Graph

30 Commits

Author SHA1 Message Date
wkc
a2c9c14092 docs: 添加中介库异步导入功能实施计划 2026-02-06 15:13:22 +08:00
wkc
9232a9f10f feat: 实现招聘信息异步导入功能
- 添加异步导入服务接口和实现
- 创建导入失败记录VO类
- 添加导入设计文档和测试数据生成脚本
- 支持大批量招聘数据的异步处理

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 15:12:40 +08:00
wkc
c8a05e3001 docs: 添加中介库异步导入功能设计文档 2026-02-06 14:46:16 +08:00
wkc
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
wkc
b932a7dba8 docs: 添加员工导入结果跨页面持久化设计文档
实现了导入状态的localStorage持久化方案:
- 支持切换菜单后查看上一次导入结果
- 仅保留最后一次导入记录
- 依赖Redis TTL自动清理过期数据
- 完整的错误处理和边界情况处理

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 12:11:42 +08:00
wkc
3d4a42b9fb 员工异步导入 2026-02-06 11:19:40 +08:00
wkc
50ac577297 fix: 修复异步方法返回类型不兼容问题
将@Async方法的返回类型从String改为CompletableFuture<ImportResultVO>,
并使用CompletableFuture.completedFuture()立即返回已完成的Future,
既符合@Async的要求,又能实现立即返回的效果。

修改文件:
- ICcdiEmployeeService.java: 更新接口返回类型
- CcdiEmployeeServiceImpl.java: 使用CompletableFuture.completedFuture()
- CcdiEmployeeController.java: 调用future.get()获取结果(不会阻塞)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 09:59:30 +08:00
wkc
9aee2b4cde docs: 添加员工信息导入接口文档
- 添加异步导入接口文档
- 添加导入状态查询接口文档
- 添加失败记录查询接口文档
- 说明使用流程和注意事项

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 09:53:12 +08:00
wkc
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
wkc
4c3eeea256 员工关系移除 2026-02-06 09:01:33 +08:00
wkc
1e691f9697 docs: 添加员工信息导入结果弹窗自适应优化设计文档
- 分析现有问题:弹窗内容过多时超出视口
- 设计固定高度+内容可滚动的Flexbox布局方案
- 提供完整的CSS样式和响应式设计
- 包含实施计划、验收标准和技术要点

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 16:09:40 +08:00
wkc
bed3ab5ed8 docs: 添加员工招聘信息管理功能设计文档
包含完整的数据库设计、API接口设计、批量导入优化方案和实施步骤。

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 14:46:12 +08:00
wkc
07dea1bf0c feat: 员工信息必填项优化 - 柜员号、所属部门、电话设为必填
## 后端修改
- AddDTO: deptId和phone添加@NotNull/@NotBlank注解
- EditDTO: deptId和phone添加@NotNull/@NotBlank注解
- Service: 导入验证添加deptId和phone必填校验

## 前端修改
- 表单校验规则: deptId和phone添加required校验
- 自动显示必填标记(红色星号)

## API文档更新
- 新增接口字段说明: deptId和phone标记为必填
- 导入模板: 标注必填项(*标记)
- 业务错误信息: 添加部门和电话相关错误提示

## 必填字段清单
1. employeeId(柜员号) - 7位数字
2. name(姓名)
3. deptId(所属部门)
4. idCard(身份证号)
5. phone(电话) - 11位手机号
6. status(状态)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 14:26:40 +08:00
wkc
da663fb635 feat: 员工柜员号优化 - 移除tellerNo,employeeId作为7位数字柜员号
## 数据库修改
- 删除teller_no字段
- employee_id改为非自增,手动输入7位数字
- 更新字段注释

## 后端修改
- Entity: 移除tellerNo,employeeId改为INPUT类型
- DTO: Add/Edit/Query/Excel全部使用employeeId
- VO: 移除tellerNo字段
- Service: 添加柜员号唯一性校验(使用selectById)
- Mapper XML: 移除teller_no查询和映射

## 前端修改
- 查询表单: tellerNo改为employeeId,添加7位数字限制
- 表格列: 显示employeeId作为柜员号
- 对话框: 新增可输入,编辑只读
- JavaScript: 数据结构和校验规则更新

## 文档更新
- API文档: 完整更新所有接口说明
- 实施报告: 生成详细实施报告

## 测试
- 生成测试脚本(9个测试用例)
- 测试账号: admin/admin123

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 14:18:28 +08:00
wkc
9c84af78f2 docs: 添加员工柜员号优化设计文档
- 移除tellerNo字段,将employeeId设置为柜员号
- 柜员号为7位数字,手动输入,唯一性校验
- 包含数据库、后端、前端、测试等完整设计方案
- 生成测试脚本和API文档更新计划
2026-02-05 14:06:35 +08:00
wkc
81d4038302 中介黑名单更新 2026-02-05 13:33:27 +08:00
wkc
e0ce344d09 feat: 完成中介黑名单管理模块测试脚本、API文档、菜单配置和测试报告模板
## 新增文件

### 测试脚本 (Task 11)
- doc/scripts/test-intermediary-api.sh: 完整的API自动化测试脚本
  * 获取Token
  * 测试查询列表(含条件查询)
  * 测试新增个人/实体中介
  * 测试查询详情
  * 测试修改操作
  * 测试唯一性校验
  * 支持彩色输出和错误处理

- doc/scripts/cleanup-intermediary-test-data.sh: 测试数据清理脚本
  * 查询测试数据
  * 删除测试数据
  * 验证删除结果

- doc/scripts/run-test.bat: Windows测试脚本启动器
- doc/scripts/run-cleanup.bat: Windows清理脚本启动器

### API文档 (Task 12)
- doc/api/中介黑名单管理API文档-v2.0.md: 完整的v2.0 API接口文档
  * 14个API接口详细说明
  * 请求参数、响应格式、错误码
  * 字典数据说明
  * 业务错误信息
  * v2.0主要变更说明

### 菜单配置 (Task 13)
- sql/menu-intermediary.sql: 菜单和权限配置SQL
  * 主菜单: 中介黑名单(目录)
  * 子菜单: 中介管理(页面)
  * 按钮权限: 查询、列表、新增、修改、删除、导出、导入
  * 包含详细的注释和使用说明

### 测试报告模板 (Task 14)
- doc/test/intermediary-blacklist-test-report.md: 测试报告模板
  * 44个测试用例(列表查询、个人/实体中介、唯一性校验、删除、导入导出、权限)
  * 测试结果统计表格
  * 缺陷统计表格
  * 测试结论模板
  * 签名确认

### 文档 (Task 10)
- doc/README-中介黑名单测试部署.md: 测试与部署指南
  * 快速开始指南
  * API接口列表
  * 菜单权限说明
  * 数据字典说明
  * 常见问题解答
  * 版本历史

## 功能特性

1. **自动化测试**
   - 支持Linux/Windows环境
   - 完整的API覆盖
   - 彩色输出,易于阅读
   - 错误处理和提示

2. **完整的文档**
   - 详细的API文档
   - 清晰的测试报告模板
   - 便于复现的测试用例

3. **菜单配置**
   - 一键SQL执行
   - 完整的权限体系
   - 支持角色分配

4. **测试支持**
   - 测试数据清理
   - 测试结果验证
   - 批处理支持

## 技术亮点

- 使用jq进行JSON解析
- 支持Token自动获取
- 完整的错误处理
- 跨平台支持(Linux/Windows)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-04 19:37:17 +08:00
wkc
dc8f1be4c3 中介黑名单更新 2026-02-04 19:16:34 +08:00
wkc
bc2959b93c 中介黑名单更新 2026-02-04 18:36:20 +08:00
wkc
72e2539134 docs: 添加项目详情页面设计文档
- 独立页面路由架构设计
- 五个子页面功能规划
- 接口设计与Mock数据定义
- 组件结构与状态管理方案

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-30 17:26:15 +08:00
wkc
16dc95de06 添加按钮 2026-01-30 15:50:30 +08:00
wkc
29a2e60ee1 变更项目缩写 2026-01-30 14:15:21 +08:00
wkc
e99b05acc2 项管首页 2026-01-30 11:01:13 +08:00
wkc
ac4e02e8c5 中介新增 修改接口 2026-01-29 22:03:42 +08:00
wkc
1b043fa2d6 中介类型修改 2026-01-29 13:39:47 +08:00
wkc
47f9491941 feat: 员工信息管理功能完善
- 将员工表org_no字段迁移至dept_id,关联系统部门表
- 更新员工信息相关DTO、VO和Controller,使用deptId替代orgNo
- 添加员工信息管理OpenSpec规范文档(proposal/design/spec/tasks)
- 更新API文档,反映部门关联变更
- 添加数据库迁移脚本employee_org_no_to_dept_id.sql
- 新增员工信息分页接口测试脚本(PowerShell/Python)
- 更新CLAUDE.md,添加MCP数据库工具使用说明

Co-Authored-By: Claude (glm-4.7) <noreply@anthropic.com>
2026-01-28 16:57:38 +08:00
wkc
0cc8ef0fc3 员工信息管理
- 新增员工信息CRUD功能
- 添加员工关联人员管理
- 配置MyBatis Plus审计字段
- 添加OpenSpec规范文档
- 新增测试脚本和数据

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-28 14:40:27 +08:00
wkc
5b0c338b5e 导出excel替换 2026-01-27 17:55:53 +08:00
wkc
79cd4fe755 需求分解 2026-01-27 17:09:32 +08:00
wkc
6e4ab22d4c init 2026-01-26 18:20:13 +08:00