Files
ccdi/docs/plans/backend/2026-04-23-base-staff-import-dept-validation-backend-implementation.md

33 lines
1.9 KiB
Markdown
Raw Normal View History

2026-04-24 13:29:13 +08:00
# 员工信息导入机构号校验后端实施计划
## 目标
- 在员工信息 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`
## 影响范围
- 员工信息导入后端异步校验逻辑
- 系统部门主键查询字段映射
- 员工导入相关单元测试