Files
ccdi/docs/plans/backend/2026-04-23-base-staff-import-dept-validation-backend-implementation.md
2026-04-24 13:29:13 +08:00

33 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 员工信息导入机构号校验后端实施计划
## 目标
- 在员工信息 Excel 导入链路中校验 `所属部门IDdeptId` 是否对应有效机构号。
- 有效口径统一为 `sys_dept` 中“正常且未删除”的部门,即 `status = '0'``del_flag = '0'`
- 命中不存在、已停用或已删除的部门时,不入库,直接进入员工导入失败记录。
## 实施内容
- 导入服务改造
- 修改 `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiBaseStaffImportServiceImpl.java`
-`validateStaffData` 中于必填校验后增加 `deptId` 有效性校验。
- 新增私有方法按 `deptId` 查询部门并校验 `status``delFlag`
- 校验失败时抛出统一错误文案:`所属部门ID[xxx]不存在或已停用/删除,请检查机构号`
- 部门 Mapper 对齐
- 修改 `ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml`
-`selectDeptById` 查询补齐 `d.del_flag` 字段,保证导入服务可同时判断停用与逻辑删除状态。
- 单元测试补充
- 修改 `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiBaseStaffImportServiceImplTest.java`
- 增加部门存在、停用、删除三类校验测试。
- 修改 `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiBaseStaffDualImportServiceTest.java`
- 增加混合导入场景测试,验证合法员工成功入库、非法 `deptId` 写入失败记录且任务状态为 `PARTIAL_SUCCESS`
## 验证
- 定向单测:
- `mvn -pl ccdi-info-collection -am -Dsurefire.failIfNoSpecifiedTests=false -Dtest=CcdiBaseStaffImportServiceImplTest,CcdiBaseStaffDualImportServiceTest test`
- 编译校验:
- `mvn -pl ccdi-info-collection,ruoyi-admin -am -DskipTests compile`
## 影响范围
- 员工信息导入后端异步校验逻辑
- 系统部门主键查询字段映射
- 员工导入相关单元测试