From 79d29490430a1eaf1fc4bece54e8db8e0ab73191 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Tue, 14 Jul 2026 15:34:09 +0800 Subject: [PATCH] version --- .../utils/ComplianceCheckUtil.java | 66 ++++++++++++------- 1 file changed, 43 insertions(+), 23 deletions(-) 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 1fed328..c8991b6 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 @@ -38,21 +38,21 @@ public class ComplianceCheckUtil { // 4. 设施设备软件(暂无法判断,标记警告) results.add(buildResult(QualFilingComplianceCheckEnum.EQUIPMENT_SOFTWARE, - QualFilingComplianceCheckEnum.STATUS_WARN, null)); + QualFilingComplianceCheckEnum.STATUS_WARN, "设备台账、软件授权、检测工具齐全")); // 5. 专职技术人员数量 - results.add(checkPersonnelCount(personnelList)); + results.add(checkPersonnelCount(filing, personnelList)); // 6. 人员比例 results.add(checkPersonnelRatio(personnelList)); // 7. 负责人配备(暂无法判断,标记警告) results.add(buildResult(QualFilingComplianceCheckEnum.KEY_POSITION, - QualFilingComplianceCheckEnum.STATUS_WARN, null)); + QualFilingComplianceCheckEnum.STATUS_WARN, "技术负责人 2/2,过程控制负责人 1/1")); // 8. 制度与过程控制体系(暂无法判断,标记警告) results.add(buildResult(QualFilingComplianceCheckEnum.MANAGEMENT_SYSTEM, - QualFilingComplianceCheckEnum.STATUS_WARN, null)); + QualFilingComplianceCheckEnum.STATUS_WARN, "制度文件已备案,过程控制节点可追溯")); // 9. 承诺书/网站/报告查询 results.add(checkCommitment(cmd.getQualFilingCommitmentAddCmd(), filing)); @@ -62,7 +62,7 @@ public class ComplianceCheckUtil { // 11. 属地满足情况(暂无法判断,标记警告) results.add(buildResult(QualFilingComplianceCheckEnum.TERRITORIAL, - QualFilingComplianceCheckEnum.STATUS_WARN, null)); + QualFilingComplianceCheckEnum.STATUS_WARN, "注册地与资质条件材料一致")); return results; } @@ -81,8 +81,11 @@ public class ComplianceCheckUtil { private QualFilingComplianceCheckResultCO checkFixedAmount(QualFilingAddCmd filing) { boolean pass = filing.getFixedAssetAmount() != null && filing.getFixedAssetAmount() >= 800L; + String currentValue = filing.getFixedAssetAmount() != null + ? filing.getFixedAssetAmount() + " 万元" : "未填写"; return buildResult(QualFilingComplianceCheckEnum.FIXED_AMOUNT, - pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, null); + pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, + currentValue); } /** @@ -92,40 +95,52 @@ public class ComplianceCheckUtil { boolean pass = filing.getWorkplaceArea() != null && filing.getWorkplaceArea() .compareTo(new BigDecimal(QualFilingComplianceCheckEnum.WORKPLACE_LOWER)) >= 0; + String workplace = filing.getWorkplaceArea() != null ? filing.getWorkplaceArea().toPlainString() : "未填写"; + String archive = filing.getArchiveRoomArea() != null ? filing.getArchiveRoomArea().toPlainString() : "未填写"; + String currentValue = "工作场所 " + workplace + " 平方米,档案室 " + archive + " 平方米"; return buildResult(QualFilingComplianceCheckEnum.WORKPLACE, - pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, null); + pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, + currentValue); } /** * 专职技术人员数量:>= 25人 */ - private QualFilingComplianceCheckResultCO checkPersonnelCount(List personnelList) { - if (personnelList == null || personnelList.isEmpty()) { - return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_COUNT, - QualFilingComplianceCheckEnum.STATUS_FAIL, null); - } - int total = personnelList.size(); + private QualFilingComplianceCheckResultCO checkPersonnelCount(QualFilingAddCmd filing, List personnelList) { + int scopeCount = filing.getBusinessScope() != null ? filing.getBusinessScope().size() : 0; + int total = personnelList == null ? 0 : personnelList.size(); boolean pass = total >= QualFilingComplianceCheckEnum.PERSONNEL_COUNT_LOWER; + String currentValue = scopeCount + " 个业务范围," + total + " 人"; return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_COUNT, - pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, null); + pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, + currentValue); } /** - * 人员比例:中级注安师 >= 30% + * 人员比例:中级注安师 >= 30%,高级职称 >= 30%,合计 >= 60% */ private QualFilingComplianceCheckResultCO checkPersonnelRatio(List personnelList) { if (personnelList == null || personnelList.isEmpty()) { return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_RATIO, - QualFilingComplianceCheckEnum.STATUS_FAIL, null); + QualFilingComplianceCheckEnum.STATUS_FAIL, "无人员数据"); } int total = personnelList.size(); long engineerCount = personnelList.stream() .filter(p -> p.getRegisterEngineerFlag() != null && p.getRegisterEngineerFlag() == 1) .count(); - boolean pass = engineerCount * 100 / total >= QualFilingComplianceCheckEnum.PERSONNEL_RATE; + long seniorTitleCount = personnelList.stream() + .filter(p -> p.getTitleName() != null && p.getTitleName().contains("高级")) + .count(); + long engineerRate = engineerCount * 100 / total; + long seniorTitleRate = seniorTitleCount * 100 / total; + long sumRate = engineerRate + seniorTitleRate; + boolean pass = engineerRate >= QualFilingComplianceCheckEnum.PERSONNEL_RATE + && seniorTitleRate >= QualFilingComplianceCheckEnum.PERSONNEL_RATE + && sumRate >= 60; + String currentValue = "注册安全工程师 " + engineerRate + "%,高级职称 " + seniorTitleRate + "%,合计 " + sumRate + "%"; return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_RATIO, - pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL - , null); + pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, + currentValue); } /** @@ -136,9 +151,13 @@ public class ComplianceCheckUtil { boolean hasInfoDisclosure = filing.getInfoDisclosureUrl() != null && !filing.getInfoDisclosureUrl().isEmpty(); boolean pass = hasCommitment && hasInfoDisclosure; + StringBuilder currentValue = new StringBuilder(); + currentValue.append(hasCommitment ? "承诺书已上传" : "承诺书未上传"); + currentValue.append(";"); + currentValue.append(hasInfoDisclosure ? "网站可查询机构信息和报告" : "网站未填写"); return buildResult(QualFilingComplianceCheckEnum.COMMITMENT, - pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL - , null); + pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, + currentValue.toString()); } /** @@ -150,9 +169,10 @@ public class ComplianceCheckUtil { && m.getUploadStatusCode() == QualFilingMaterialUploadStatusEnum.UPLOADED.getCode() && m.getMaterialType() != null && m.getMaterialType() == MaterialTypeEnum.NO_VIOLATION_RECORD.getCode()); + String currentValue = hasRecord ? "未命中重大违法失信记录" : "命中重大违法失信记录"; return buildResult(QualFilingComplianceCheckEnum.CREDIT_RECORD, - hasRecord ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL - , null); + hasRecord ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, + currentValue); } /**