diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java index 840baa59..09a63e76 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/support/OrgPersonnelExcelImporter.java @@ -10,6 +10,7 @@ import com.jjb.saas.system.client.user.request.RoleDeptAddCmd; import com.jjb.saas.system.client.user.request.UserAddCmd; import com.zcloud.gbscommon.utils.MD5; import com.zcloud.gbscommon.utils.Sm2Util; +import org.jetbrains.annotations.UnknownNullability; import org.qinan.safetyeval.client.co.OrgPersonnelImportErrorCO; import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO; import org.qinan.safetyeval.domain.constant.CertTypeCodeEnum; @@ -286,7 +287,7 @@ public class OrgPersonnelExcelImporter { OrgPersonnelImportRow row = new OrgPersonnelImportRow(); basic.setRowIndex(i + 2); row.setBasic(basic); - boolean validate = matchCapability(basic, capabilityMap, errors); + boolean validate = matchCapability(row, capabilityMap, errors); // 能力信息未匹配或存在多条,已记录异常,剔除该行 if (!validate) { continue; @@ -339,17 +340,17 @@ public class OrgPersonnelExcelImporter { * 任一不通过记录异常并返回 null。 *

*/ - private Boolean matchCapability(OrgPersonnelImportRow.BasicRow basic + private Boolean matchCapability(@UnknownNullability OrgPersonnelImportRow row , Map> capabilityMap, List errors) { - List capabilityList = capabilityMap.get(trim(basic.getIdCardNo())); + List capabilityList = capabilityMap.get(trim(row.getBasic().getIdCardNo())); if (CollectionUtils.isEmpty(capabilityList)) { return true; } if (capabilityList.size() > 1) { - errors.add(new OrgPersonnelImportErrorCO(basic.getRowIndex(), trim(basic.getAccount()), trim(basic.getUserName()), - "专职人员能力信息中查询到多条数据")); + errors.add(new OrgPersonnelImportErrorCO(row.getBasic().getRowIndex(), row.getBasic().getAccount() + , row.getBasic().getUserName(), "专职人员能力信息中查询到多条数据")); return false; } OrgPersonnelImportRow.CapabilityRow capabilityRow = capabilityList.get(0); @@ -370,30 +371,31 @@ public class OrgPersonnelExcelImporter { } // 能力认证一/二:认证行业、专业能力、来源 有值时校验枚举并回填,不通过记录异常 - if (!validateAndFillCertEnums(basic, capabilityRow, errors)) { + if (!validateAndFillCertEnums(row.getBasic(), capabilityRow, errors)) { return false; } // 是否注册安全工程师:为[是]时 注安专业类别/注安等级/证书编号/执业证书编号 必填并校验枚举,通过后写入证书实体 - if (!validateAndFillRegisterEngineerCert(basic, capabilityRow, errors)) { + if (!validateAndFillRegisterEngineerCert(row.getBasic(), capabilityRow, errors)) { return false; } // 是否评价师:为[是]时 评价师等级/证书编号 必填并校验枚举,通过后写入证书实体 - if (!validateAndFillEvaluatorCert(basic, capabilityRow, errors)) { + if (!validateAndFillEvaluatorCert(row.getBasic(), capabilityRow, errors)) { return false; } // 职称:有值时校验枚举并回填,查询不到记录异常 - if (!validateAndFillTitle(basic, capabilityRow, errors)) { + if (!validateAndFillTitle(row.getBasic(), capabilityRow, errors)) { return false; } // 学历类型、毕业院校、学历层次、所学专业 回填到基础信息行(@ExcelIgnore 字段,Excel原始值忽略) - basic.setEducationType(capabilityRow.getEducationType()); - basic.setGraduateSchool(capabilityRow.getGraduateSchool()); - basic.setEducationLevel(capabilityRow.getEducationLevel()); - basic.setMajor(capabilityRow.getMajor()); + row.getBasic().setEducationType(capabilityRow.getEducationType()); + row.getBasic().setGraduateSchool(capabilityRow.getGraduateSchool()); + row.getBasic().setEducationLevel(capabilityRow.getEducationLevel()); + row.getBasic().setMajor(capabilityRow.getMajor()); + row.setCapability(capabilityRow); return true; } @@ -994,6 +996,9 @@ public class OrgPersonnelExcelImporter { // 逐行校验:字段为空跳过;对照表中不存在的记录异常并标记;校验通过则回填 for (OrgPersonnelImportRow row : rows) { OrgPersonnelImportRow.CapabilityRow capability = row.getCapability(); + if (capability == null) { + continue; + } // 所学专业:查询不到记录异常;查询到回填 basicDisciplineMajorId、bdmMajor String majorName = trim(capability.getMajor());