# 员工信息导入机构号校验后端实施计划 ## 目标 - 在员工信息 Excel 导入链路中校验 `所属部门ID(deptId)` 是否对应有效机构号。 - 有效口径统一为 `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` ## 影响范围 - 员工信息导入后端异步校验逻辑 - 系统部门主键查询字段映射 - 员工导入相关单元测试