diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java index 8fe12fe..12de8e6 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelCertMapper.java @@ -3,6 +3,7 @@ package org.qinan.safetyeval.infrastructure.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.qinan.safetyeval.client.co.OrgPersonnelCertCapabilityComplianceCheckCO; import org.qinan.safetyeval.client.co.OrgPersonnelCertDetailCO; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelCertDO; @@ -17,7 +18,8 @@ public interface OrgPersonnelCertMapper extends BaseMapper { * @param personnelIds 人员id列表 * @return 证书专业能力列表 */ - List selectCapabilityByPersonnelIds(@Param("personnelIds") List personnelIds); + List selectCapabilityByPersonnelIds( + @Param("personnelIds") List personnelIds); /** * 根据主键ID查询人员证书详情(关联industry_professional_standards获取专业能力名称) diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelMapper.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelMapper.java index de1aba9..306e898 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelMapper.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/OrgPersonnelMapper.java @@ -3,6 +3,7 @@ package org.qinan.safetyeval.infrastructure.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.qinan.safetyeval.client.co.IndustryProfessionalPersonCo; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO; import org.qinan.safetyeval.infrastructure.persistence.domainobject.OrgPersonnelLeaderCountDO; @@ -18,4 +19,12 @@ public interface OrgPersonnelMapper extends BaseMapper { * @return 负责人标志位统计结果 */ OrgPersonnelLeaderCountDO countLeaderFlags(@Param("ids") List ids); + + /** + * 根据人员id列表查询专业能力code(关联 basic_discipline_major) + * + * @param ids 人员id列表(org_personnel.id) + * @return 人员专业能力信息列表 + */ + List selectProfessionalCapabilityByPersonnelIds(@Param("ids") List ids); } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java index 9f71273..00317da 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/utils/ComplianceCheckUtil.java @@ -11,7 +11,6 @@ import org.qinan.safetyeval.client.co.QualFilingComplianceCheckResultCO; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.constant.*; import org.qinan.safetyeval.domain.exception.BizException; -import org.qinan.safetyeval.infrastructure.convertor.QualFilingPersonnelCoConvertor; import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelCertMapper; import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper; import org.qinan.safetyeval.infrastructure.persistence.domainobject.IndustryProfessionalStandardsDO; @@ -99,7 +98,8 @@ public class ComplianceCheckUtil { * @param personnelList 备案人员列表 * @return 人员证书专业能力信息列表 */ - private List queryOrgPersonnelCertCapability(List personnelList) { + private List queryOrgPersonnelCertCapability( + List personnelList) { if (CollectionUtils.isEmpty(personnelList)) { return Collections.emptyList(); } @@ -167,8 +167,9 @@ public class ComplianceCheckUtil { /** * 人员比例:中级注安师 >= 30%,高级职称 >= 30%,合计 >= 60% */ - private QualFilingComplianceCheckResultCO checkPersonnelRatio(List businessScope - , List personnelList, List personnelCertCoList, boolean throwException) { + private QualFilingComplianceCheckResultCO checkPersonnelRatio( + List businessScope, List personnelList + , List personnelCertCoList, boolean throwException) { if (personnelList == null || personnelList.isEmpty()) { return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_RATIO, QualFilingComplianceCheckEnum.STATUS_FAIL, "无人员数据"); @@ -188,9 +189,13 @@ public class ComplianceCheckUtil { && sumRate >= 60; String currentValue = "注册安全工程师 " + engineerRate + "%,高级职称 " + seniorTitleRate + "%,合计 " + sumRate + "%"; - - List personnelCoList = SpringUtil.getBean(QualFilingPersonnelCoConvertor.class) - .convertCmdsToCos(personnelList); + // 根据人员id查询专业能力code并设置到CO中 + List sourcePersonnelIds = personnelList.stream() + .map(QualFilingPersonnelAddCmd::getSourcePersonnelId) + .distinct() + .collect(Collectors.toList()); + List personnelCoList = SpringUtil.getBean(OrgPersonnelMapper.class) + .selectProfessionalCapabilityByPersonnelIds(sourcePersonnelIds); Pair booleanStringPair = industryProfessionalStandardsValid( businessScope, personnelCoList, personnelCertCoList); boolean personPassed = Boolean.TRUE.equals(booleanStringPair.getKey()); diff --git a/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml index 9a1a7a4..b7ac62d 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelCertMapper.xml @@ -45,11 +45,12 @@ + + +