diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java index 4e80099..3641878 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java @@ -12,6 +12,7 @@ import org.qinan.safetyeval.client.co.QualFilingStatisticsCO; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.constant.BooleanQAEnum; import org.qinan.safetyeval.domain.constant.QualFilingApplyTypeEnum; +import org.qinan.safetyeval.domain.constant.QualFilingComplianceCheckEnum; import org.qinan.safetyeval.domain.constant.QualFilingStatusEnum; import org.qinan.safetyeval.domain.entity.*; import org.qinan.safetyeval.domain.exception.BizException; @@ -181,6 +182,18 @@ public class QualFilingExecutor implements QualFilingApi { @Override @Transactional(rollbackFor = Exception.class) public SingleResponse aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd) { + if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null + && cmd.getQualFilingAddCmd().getFilingStatusCode() != QualFilingStatusEnum.DRAFT.getCode()) { + List complianceResults = ComplianceCheckUtil.complianceCheck(cmd, false); + List failedItems = complianceResults.stream() + .filter(r -> QualFilingComplianceCheckEnum.STATUS_FAIL.equals(r.getStatus())) + .map(QualFilingComplianceCheckResultCO::getTitle) + .collect(Collectors.toList()); + if (!failedItems.isEmpty()) { + throw new BizException(ErrorCode.QUAL_FILING_COMPLIANCE_CHECK_FAIL, + "合规性校验未通过:" + String.join("、", failedItems)); + } + } // 新增时校验:用当前id查询记录获取org_id,若同机构已存在其他资质备案记录则不允许新增 Long currentId = cmd.getQualFilingAddCmd().getId(); if (currentId == null) { @@ -209,10 +222,6 @@ public class QualFilingExecutor implements QualFilingApi { : qualFilingAddCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds()); Long id = qualFilingDomainService.aggregationSaveOrEdit(entity, commitmentEntity, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities); co.setId(id); - if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null - && cmd.getQualFilingAddCmd().getFilingStatusCode() != QualFilingStatusEnum.DRAFT.getCode()) { - ComplianceCheckUtil.complianceCheck(cmd, true); - } return SingleResponse.success(co); } 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 2a4bb32..59e5e64 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 @@ -86,6 +86,7 @@ public class ComplianceCheckUtil { // 9. 承诺书/网站/报告查询 results.add(checkCommitment(cmd.getQualFilingCommitmentAddCmd(), filing)); + // 承诺书签字管理 results.add(checkCommitmentSignature(cmd.getQualFilingCommitmentAddCmd(), filing)); @@ -103,8 +104,11 @@ public class ComplianceCheckUtil { QualFilingComplianceCheckResultCO qualFilingComplianceCheckResultCO = new QualFilingComplianceCheckResultCO(); qualFilingComplianceCheckResultCO.setTitle(QualFilingComplianceCheckEnum.COMMITMENT_SIGNATURE.getTitle()); qualFilingComplianceCheckResultCO.setDescription(QualFilingComplianceCheckEnum.COMMITMENT_SIGNATURE.getDescription()); - qualFilingComplianceCheckResultCO.setStatus(Objects.nonNull(commitment) && StringUtils.hasText(commitment.getLegalRepSignatureUrl()) ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL); - qualFilingComplianceCheckResultCO.setCurrentValue(Objects.nonNull(commitment) && StringUtils.hasText(commitment.getLegalRepSignatureUrl()) ? "法定代表人已签字" : "法定代表人未签字"); + qualFilingComplianceCheckResultCO.setStatus(Objects.nonNull(commitment) + && StringUtils.hasText(commitment.getLegalRepSignatureUrl()) + ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL); + qualFilingComplianceCheckResultCO.setCurrentValue(Objects.nonNull(commitment) + && StringUtils.hasText(commitment.getLegalRepSignatureUrl()) ? "法定代表人已签字" : "法定代表人未签字"); qualFilingComplianceCheckResultCO.setSourceColumn(QualFilingComplianceCheckEnum.COMMITMENT_SIGNATURE.getSourceColumn()); return qualFilingComplianceCheckResultCO; }