# 员工信息导入机构号校验后端实施计划

## 目标
- 在员工信息 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`

## 影响范围
- 员工信息导入后端异步校验逻辑
- 系统部门主键查询字段映射
- 员工导入相关单元测试
