dev
luotaiqian 2026-07-31 17:12:34 +08:00
parent 591884f6ec
commit 8471799126
3 changed files with 31 additions and 9 deletions

View File

@ -1,6 +1,7 @@
package org.qinan.safetyeval.client.co;
import lombok.Data;
import org.qinan.safetyeval.domain.constant.CertLevelEnum;
/**
*
@ -29,4 +30,18 @@ public class OrgPersonnelCertCapabilityComplianceCheckCO {
* ID
*/
private Long industryProfessionalStandardsId;
/**
*
*/
private String operationCategoryCode;
/**
*
*/
private String certTypeCode;
/**
*
*/
private String certLevel;
}

View File

@ -175,16 +175,20 @@ public class ComplianceCheckUtil {
QualFilingComplianceCheckEnum.STATUS_FAIL, "无人员数据");
}
int total = personnelList.size();
long engineerCount = personnelList.stream()
.filter(p -> p.getRegisterEngineerFlag() != null && p.getRegisterEngineerFlag() == 1)
.count();
long seniorTitleCount = personnelList.stream()
Set<Long> engineerSet = personnelCertCoList.stream()
.filter(p -> CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER
.getCode().equals(p.getCertTypeCode()) && !CertLevelEnum.JUNIOR.getCode().equals(p.getCertLevel()))
.map(OrgPersonnelCertCapabilityComplianceCheckCO::getPersonnelId)
.collect(Collectors.toSet());
Set<Long> seniorTitleSet = personnelList.stream()
.filter(p -> p.getTitleCodeArr() != null && p.getTitleCodeArr().stream()
.anyMatch(t -> QualificationLevelEnum.SENIOR.getCode().equals(t.getTitleCode())))
.count();
long engineerRate = engineerCount * 100 / total;
long seniorTitleRate = seniorTitleCount * 100 / total;
long sumRate = engineerRate + seniorTitleRate;
.map(QualFilingPersonnelAddCmd::getSourcePersonnelId)
.collect(Collectors.toSet());
long engineerRate = engineerSet.size() * 100L / total;
long seniorTitleRate = seniorTitleSet.size() * 100L / total;
engineerSet.addAll(seniorTitleSet);
long sumRate = engineerSet.size() * 100L / total;
boolean pass = engineerRate >= QualFilingComplianceCheckEnum.PERSONNEL_RATE
&& seniorTitleRate >= QualFilingComplianceCheckEnum.PERSONNEL_RATE
&& sumRate >= 60;

View File

@ -47,7 +47,10 @@
SELECT personnel_id,
business_scope,
ips.professional_capability_code,
industry_professional_standards_id
industry_professional_standards_id,
orc.operation_category_code,
orc.cert_type_code,
orc.cert_level
FROM org_personnel_cert orc
join industry_professional_standards ips on orc.industry_professional_standards_id = ips.id
WHERE ips.delete_enum = 'false'