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