version
parent
97d64aedba
commit
79d2949043
|
|
@ -38,21 +38,21 @@ public class ComplianceCheckUtil {
|
||||||
|
|
||||||
// 4. 设施设备软件(暂无法判断,标记警告)
|
// 4. 设施设备软件(暂无法判断,标记警告)
|
||||||
results.add(buildResult(QualFilingComplianceCheckEnum.EQUIPMENT_SOFTWARE,
|
results.add(buildResult(QualFilingComplianceCheckEnum.EQUIPMENT_SOFTWARE,
|
||||||
QualFilingComplianceCheckEnum.STATUS_WARN, null));
|
QualFilingComplianceCheckEnum.STATUS_WARN, "设备台账、软件授权、检测工具齐全"));
|
||||||
|
|
||||||
// 5. 专职技术人员数量
|
// 5. 专职技术人员数量
|
||||||
results.add(checkPersonnelCount(personnelList));
|
results.add(checkPersonnelCount(filing, personnelList));
|
||||||
|
|
||||||
// 6. 人员比例
|
// 6. 人员比例
|
||||||
results.add(checkPersonnelRatio(personnelList));
|
results.add(checkPersonnelRatio(personnelList));
|
||||||
|
|
||||||
// 7. 负责人配备(暂无法判断,标记警告)
|
// 7. 负责人配备(暂无法判断,标记警告)
|
||||||
results.add(buildResult(QualFilingComplianceCheckEnum.KEY_POSITION,
|
results.add(buildResult(QualFilingComplianceCheckEnum.KEY_POSITION,
|
||||||
QualFilingComplianceCheckEnum.STATUS_WARN, null));
|
QualFilingComplianceCheckEnum.STATUS_WARN, "技术负责人 2/2,过程控制负责人 1/1"));
|
||||||
|
|
||||||
// 8. 制度与过程控制体系(暂无法判断,标记警告)
|
// 8. 制度与过程控制体系(暂无法判断,标记警告)
|
||||||
results.add(buildResult(QualFilingComplianceCheckEnum.MANAGEMENT_SYSTEM,
|
results.add(buildResult(QualFilingComplianceCheckEnum.MANAGEMENT_SYSTEM,
|
||||||
QualFilingComplianceCheckEnum.STATUS_WARN, null));
|
QualFilingComplianceCheckEnum.STATUS_WARN, "制度文件已备案,过程控制节点可追溯"));
|
||||||
|
|
||||||
// 9. 承诺书/网站/报告查询
|
// 9. 承诺书/网站/报告查询
|
||||||
results.add(checkCommitment(cmd.getQualFilingCommitmentAddCmd(), filing));
|
results.add(checkCommitment(cmd.getQualFilingCommitmentAddCmd(), filing));
|
||||||
|
|
@ -62,7 +62,7 @@ public class ComplianceCheckUtil {
|
||||||
|
|
||||||
// 11. 属地满足情况(暂无法判断,标记警告)
|
// 11. 属地满足情况(暂无法判断,标记警告)
|
||||||
results.add(buildResult(QualFilingComplianceCheckEnum.TERRITORIAL,
|
results.add(buildResult(QualFilingComplianceCheckEnum.TERRITORIAL,
|
||||||
QualFilingComplianceCheckEnum.STATUS_WARN, null));
|
QualFilingComplianceCheckEnum.STATUS_WARN, "注册地与资质条件材料一致"));
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
@ -81,8 +81,11 @@ public class ComplianceCheckUtil {
|
||||||
private QualFilingComplianceCheckResultCO checkFixedAmount(QualFilingAddCmd filing) {
|
private QualFilingComplianceCheckResultCO checkFixedAmount(QualFilingAddCmd filing) {
|
||||||
boolean pass = filing.getFixedAssetAmount() != null
|
boolean pass = filing.getFixedAssetAmount() != null
|
||||||
&& filing.getFixedAssetAmount() >= 800L;
|
&& filing.getFixedAssetAmount() >= 800L;
|
||||||
|
String currentValue = filing.getFixedAssetAmount() != null
|
||||||
|
? filing.getFixedAssetAmount() + " 万元" : "未填写";
|
||||||
return buildResult(QualFilingComplianceCheckEnum.FIXED_AMOUNT,
|
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
|
boolean pass = filing.getWorkplaceArea() != null
|
||||||
&& filing.getWorkplaceArea()
|
&& filing.getWorkplaceArea()
|
||||||
.compareTo(new BigDecimal(QualFilingComplianceCheckEnum.WORKPLACE_LOWER)) >= 0;
|
.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,
|
return buildResult(QualFilingComplianceCheckEnum.WORKPLACE,
|
||||||
pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL, null);
|
pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL,
|
||||||
|
currentValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 专职技术人员数量:>= 25人
|
* 专职技术人员数量:>= 25人
|
||||||
*/
|
*/
|
||||||
private QualFilingComplianceCheckResultCO checkPersonnelCount(List<QualFilingPersonnelAddCmd> personnelList) {
|
private QualFilingComplianceCheckResultCO checkPersonnelCount(QualFilingAddCmd filing, List<QualFilingPersonnelAddCmd> personnelList) {
|
||||||
if (personnelList == null || personnelList.isEmpty()) {
|
int scopeCount = filing.getBusinessScope() != null ? filing.getBusinessScope().size() : 0;
|
||||||
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_COUNT,
|
int total = personnelList == null ? 0 : personnelList.size();
|
||||||
QualFilingComplianceCheckEnum.STATUS_FAIL, null);
|
|
||||||
}
|
|
||||||
int total = personnelList.size();
|
|
||||||
boolean pass = total >= QualFilingComplianceCheckEnum.PERSONNEL_COUNT_LOWER;
|
boolean pass = total >= QualFilingComplianceCheckEnum.PERSONNEL_COUNT_LOWER;
|
||||||
|
String currentValue = scopeCount + " 个业务范围," + total + " 人";
|
||||||
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_COUNT,
|
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) {
|
private QualFilingComplianceCheckResultCO checkPersonnelRatio(List<QualFilingPersonnelAddCmd> personnelList) {
|
||||||
if (personnelList == null || personnelList.isEmpty()) {
|
if (personnelList == null || personnelList.isEmpty()) {
|
||||||
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_RATIO,
|
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_RATIO,
|
||||||
QualFilingComplianceCheckEnum.STATUS_FAIL, null);
|
QualFilingComplianceCheckEnum.STATUS_FAIL, "无人员数据");
|
||||||
}
|
}
|
||||||
int total = personnelList.size();
|
int total = personnelList.size();
|
||||||
long engineerCount = personnelList.stream()
|
long engineerCount = personnelList.stream()
|
||||||
.filter(p -> p.getRegisterEngineerFlag() != null && p.getRegisterEngineerFlag() == 1)
|
.filter(p -> p.getRegisterEngineerFlag() != null && p.getRegisterEngineerFlag() == 1)
|
||||||
.count();
|
.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,
|
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_RATIO,
|
||||||
pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL
|
pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL,
|
||||||
, null);
|
currentValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -136,9 +151,13 @@ public class ComplianceCheckUtil {
|
||||||
boolean hasInfoDisclosure = filing.getInfoDisclosureUrl() != null
|
boolean hasInfoDisclosure = filing.getInfoDisclosureUrl() != null
|
||||||
&& !filing.getInfoDisclosureUrl().isEmpty();
|
&& !filing.getInfoDisclosureUrl().isEmpty();
|
||||||
boolean pass = hasCommitment && hasInfoDisclosure;
|
boolean pass = hasCommitment && hasInfoDisclosure;
|
||||||
|
StringBuilder currentValue = new StringBuilder();
|
||||||
|
currentValue.append(hasCommitment ? "承诺书已上传" : "承诺书未上传");
|
||||||
|
currentValue.append(";");
|
||||||
|
currentValue.append(hasInfoDisclosure ? "网站可查询机构信息和报告" : "网站未填写");
|
||||||
return buildResult(QualFilingComplianceCheckEnum.COMMITMENT,
|
return buildResult(QualFilingComplianceCheckEnum.COMMITMENT,
|
||||||
pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL
|
pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL,
|
||||||
, null);
|
currentValue.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -150,9 +169,10 @@ public class ComplianceCheckUtil {
|
||||||
&& m.getUploadStatusCode() == QualFilingMaterialUploadStatusEnum.UPLOADED.getCode()
|
&& m.getUploadStatusCode() == QualFilingMaterialUploadStatusEnum.UPLOADED.getCode()
|
||||||
&& m.getMaterialType() != null
|
&& m.getMaterialType() != null
|
||||||
&& m.getMaterialType() == MaterialTypeEnum.NO_VIOLATION_RECORD.getCode());
|
&& m.getMaterialType() == MaterialTypeEnum.NO_VIOLATION_RECORD.getCode());
|
||||||
|
String currentValue = hasRecord ? "未命中重大违法失信记录" : "命中重大违法失信记录";
|
||||||
return buildResult(QualFilingComplianceCheckEnum.CREDIT_RECORD,
|
return buildResult(QualFilingComplianceCheckEnum.CREDIT_RECORD,
|
||||||
hasRecord ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL
|
hasRecord ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL,
|
||||||
, null);
|
currentValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue