version
parent
97d64aedba
commit
79d2949043
|
|
@ -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<QualFilingPersonnelAddCmd> 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<QualFilingPersonnelAddCmd> 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<QualFilingPersonnelAddCmd> 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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue