luotaiqian 2026-07-29 15:08:19 +08:00
parent 3b83a3f948
commit 7bad891f04
5 changed files with 42 additions and 13 deletions

View File

@ -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<OrgPersonnelCertDO> {
* @param personnelIds id
* @return
*/
List<org.qinan.safetyeval.client.co.OrgPersonnelCertCapabilityComplianceCheckCO> selectCapabilityByPersonnelIds(@Param("personnelIds") List<Long> personnelIds);
List<OrgPersonnelCertCapabilityComplianceCheckCO> selectCapabilityByPersonnelIds(
@Param("personnelIds") List<Long> personnelIds);
/**
* IDindustry_professional_standards

View File

@ -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<OrgPersonnelDO> {
* @return
*/
OrgPersonnelLeaderCountDO countLeaderFlags(@Param("ids") List<Long> ids);
/**
* idcode basic_discipline_major
*
* @param ids idorg_personnel.id
* @return
*/
List<IndustryProfessionalPersonCo> selectProfessionalCapabilityByPersonnelIds(@Param("ids") List<Long> ids);
}

View File

@ -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<OrgPersonnelCertCapabilityComplianceCheckCO> queryOrgPersonnelCertCapability(List<QualFilingPersonnelAddCmd> personnelList) {
private List<OrgPersonnelCertCapabilityComplianceCheckCO> queryOrgPersonnelCertCapability(
List<QualFilingPersonnelAddCmd> personnelList) {
if (CollectionUtils.isEmpty(personnelList)) {
return Collections.emptyList();
}
@ -167,8 +167,9 @@ public class ComplianceCheckUtil {
/**
* >= 30% >= 30% >= 60%
*/
private QualFilingComplianceCheckResultCO checkPersonnelRatio(List<String> businessScope
, List<QualFilingPersonnelAddCmd> personnelList, List<OrgPersonnelCertCapabilityComplianceCheckCO> personnelCertCoList, boolean throwException) {
private QualFilingComplianceCheckResultCO checkPersonnelRatio(
List<String> businessScope, List<QualFilingPersonnelAddCmd> personnelList
, List<OrgPersonnelCertCapabilityComplianceCheckCO> 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<IndustryProfessionalPersonCo> personnelCoList = SpringUtil.getBean(QualFilingPersonnelCoConvertor.class)
.convertCmdsToCos(personnelList);
// 根据人员id查询专业能力code并设置到CO中
List<Long> sourcePersonnelIds = personnelList.stream()
.map(QualFilingPersonnelAddCmd::getSourcePersonnelId)
.distinct()
.collect(Collectors.toList());
List<IndustryProfessionalPersonCo> personnelCoList = SpringUtil.getBean(OrgPersonnelMapper.class)
.selectProfessionalCapabilityByPersonnelIds(sourcePersonnelIds);
Pair<Boolean, String> booleanStringPair = industryProfessionalStandardsValid(
businessScope, personnelCoList, personnelCertCoList);
boolean personPassed = Boolean.TRUE.equals(booleanStringPair.getKey());

View File

@ -45,11 +45,12 @@
<select id="selectCapabilityByPersonnelIds"
resultType="org.qinan.safetyeval.client.co.OrgPersonnelCertCapabilityComplianceCheckCO">
SELECT personnel_id,
business_scope,
professional_capability_code,
industry_professional_standards_id
FROM org_personnel_cert
WHERE delete_enum = 'false'
business_scope,
ips.professional_capability_code,
industry_professional_standards_id
FROM org_personnel_cert orc
join industry_professional_standards ips on orc.industry_professional_standards_id = ips.id
WHERE ips.delete_enum = 'false'
AND personnel_id IN
<foreach collection="personnelIds" item="personnelId" open="(" separator="," close=")">
#{personnelId}

View File

@ -54,4 +54,16 @@
</foreach>
</select>
<!-- 根据人员id列表查询专业能力code关联 basic_discipline_major -->
<select id="selectProfessionalCapabilityByPersonnelIds" resultType="org.qinan.safetyeval.client.co.IndustryProfessionalPersonCo">
SELECT p.id AS source_personnel_id, bdm.professional_capability_code, bdm.industry_code
FROM org_personnel p
JOIN basic_discipline_major bdm ON p.basic_discipline_major_id = bdm.id
WHERE p.delete_enum = 'false'
AND p.id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>