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

1.9 KiB
Raw Blame History

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

目标

  • 在员工信息 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 查询部门并校验 statusdelFlag
    • 校验失败时抛出统一错误文案:所属部门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

影响范围

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