diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgInfoController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgInfoController.java index 72fa899..2fe0f36 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgInfoController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgInfoController.java @@ -7,6 +7,7 @@ import org.qinan.safetyeval.client.api.OrgInfoApi; import org.qinan.safetyeval.client.co.OrgInfoCO; import org.qinan.safetyeval.client.co.OrgInfoSelectCO; import org.qinan.safetyeval.client.dto.*; +import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter; import org.qinan.safetyeval.infrastructure.dataobject.base.Req; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -80,4 +81,10 @@ public class OrgInfoController { public SingleResponse> selectList() { return orgInfoApi.selectList(); } + + @ApiOperation("查询机构备案的行业信息") + @GetMapping("/select/org/industry/code") + public SingleResponse> orgIndustryCode() { + return orgInfoApi.orgIndustryCode(ThreadLocalUserInfoAdapter.getOrgId()); + } } diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java index c4dda5f..b5c2f61 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java @@ -63,7 +63,8 @@ public class QualFilingChangeController { @ApiOperation("聚合新增or编辑资质备案变更申请") @PostMapping("/aggregationSaveOrEdit") - public SingleResponse aggregationSaveOrEdit(@RequestBody AggregationSaveOrEditQualFilingChangeCmd cmd) { + public SingleResponse> aggregationSaveOrEdit( + @RequestBody AggregationSaveOrEditQualFilingChangeCmd cmd) { cmd.getQualFilingChangeAddCmd().setFilingStatusCode(QualFilingStatusEnum.CHANGE_REVIEWING.getCode()); return qualFilingChangeApi.aggregationSaveOrEdit(cmd, false); } diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingController.java index e73c02e..0598447 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingController.java @@ -80,7 +80,7 @@ public class QualFilingController { /////////////////////////////////////聚合接口 @ApiOperation("聚合新增or编辑资质备案申请") @PostMapping("/aggregationSaveOrEdit") - public SingleResponse aggregationSaveOrEdit(@RequestBody AggregationSaveOrEditQualFilingCmd cmd) { + public SingleResponse> aggregationSaveOrEdit(@RequestBody AggregationSaveOrEditQualFilingCmd cmd) { return qualFilingApi.aggregationSaveOrEdit(cmd); } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java index 5b491f8..89402b9 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java @@ -221,6 +221,11 @@ public class OrgInfoExecutor implements OrgInfoApi { return SingleResponse.success(result); } + @Override + public SingleResponse> orgIndustryCode(Long orgId) { + return SingleResponse.success(orgInfoDomainService.orgIndustryCode(orgId)); + } + private OrgInfoCO toCO(OrgInfoEntity entity) { if (entity == null) { return null; diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java index 581f380..a5d1070 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java @@ -95,6 +95,7 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { @Resource private QualFilingChangeDetailGateway qualFilingChangeDetailGateway; + @Value("${def.reviewEnable:false}") private Boolean reviewEnable; @@ -261,21 +262,18 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { @Override @Transactional(rollbackFor = Exception.class) - public SingleResponse aggregationSaveOrEdit( + public SingleResponse> aggregationSaveOrEdit( AggregationSaveOrEditQualFilingChangeCmd cmd, boolean throwException) { validateBeforeSaveOrEdit(cmd); + // 合规性校验:只要有一项未通过则抛出异常 - if (reviewEnable) { - AggregationSaveOrEditQualFilingCmd qualFilingCmd = convertToQualFilingCmd(cmd); - List complianceResults = ComplianceCheckUtil.complianceCheck(qualFilingCmd, throwException); - 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)); - } + AggregationSaveOrEditQualFilingCmd qualFilingCmd = convertToQualFilingCmd(cmd); + List complianceResults = ComplianceCheckUtil.complianceCheck(qualFilingCmd, throwException); + complianceResults = complianceResults.stream() + .filter(r -> QualFilingComplianceCheckEnum.STATUS_FAIL.equals(r.getStatus())) + .collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(complianceResults)) { + return SingleResponse.success(complianceResults); } // 变更基本信息 @@ -328,12 +326,10 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { } } - Long id = qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity + qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity , equipmentEntities, materialEntities, personnelEntities, personnelCertEntities); - QualFilingChangeCO co = new QualFilingChangeCO(); - co.setId(id); - return SingleResponse.success(co); + return SingleResponse.success(null); } @Override 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 3641878..64ba46c 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 @@ -181,17 +181,15 @@ public class QualFilingExecutor implements QualFilingApi { @Override @Transactional(rollbackFor = Exception.class) - public SingleResponse aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd) { + 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() + complianceResults = 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)); + if (!CollectionUtils.isEmpty(complianceResults)) { + return SingleResponse.success(complianceResults); } } // 新增时校验:用当前id查询记录获取org_id,若同机构已存在其他资质备案记录则不允许新增 @@ -222,7 +220,7 @@ public class QualFilingExecutor implements QualFilingApi { : qualFilingAddCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds()); Long id = qualFilingDomainService.aggregationSaveOrEdit(entity, commitmentEntity, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities); co.setId(id); - return SingleResponse.success(co); + return SingleResponse.success(null); } @Override diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgInfoApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgInfoApi.java index e2afd48..445ef8a 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgInfoApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgInfoApi.java @@ -42,4 +42,12 @@ public interface OrgInfoApi { * @return 机构列表 */ SingleResponse> selectList(); + + /** + * 查询机构备案的行业信息 + * + * @param orgId 机构ID + * @return 行业编码列表 + */ + SingleResponse> orgIndustryCode(Long orgId); } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingApi.java index c18ab52..3850549 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingApi.java @@ -41,7 +41,7 @@ public interface QualFilingApi { SingleResponse> complianceCheck(Long id); - SingleResponse aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd); + SingleResponse> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd); void review(QualFilingReviewAddCmd cmd); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java index 0e07391..c7883ef 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java @@ -34,7 +34,7 @@ public interface QualFilingChangeApi { SingleResponse> complianceCheck(Long id); - SingleResponse aggregationSaveOrEdit(AggregationSaveOrEditQualFilingChangeCmd cmd + SingleResponse> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingChangeCmd cmd , boolean throwException); void review(QualFilingChangeReviewAddCmd cmd); diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgInfoGateway.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgInfoGateway.java index 18b1576..43d4b52 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgInfoGateway.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgInfoGateway.java @@ -47,4 +47,12 @@ public interface OrgInfoGateway { * @return 单位名称 */ String getUnitNameById(Long id); + + /** + * 查询机构备案的行业信息编码列表 + * + * @param orgId 机构ID + * @return 行业编码列表 + */ + List orgIndustryCode(Long orgId); } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgInfoDomainService.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgInfoDomainService.java index 89bde1e..4754979 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgInfoDomainService.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgInfoDomainService.java @@ -73,4 +73,8 @@ public class OrgInfoDomainService { public List selectList() { return orgInfoGateway.selectList(); } + + public List orgIndustryCode(Long orgId) { + return orgInfoGateway.orgIndustryCode(orgId); + } } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java index 4af7a3f..8922cc4 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java @@ -318,6 +318,21 @@ public class OrgInfoGatewayImpl implements OrgInfoGateway { return orgInfoDO == null ? null : orgInfoDO.getUnitName(); } + @Override + public List orgIndustryCode(Long orgId) { + if (orgId == null) { + return java.util.Collections.emptyList(); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(OrgInfoDO::getId, OrgInfoDO::getSafetyIndustryCategoryCode) + .eq(OrgInfoDO::getId, orgId); + OrgInfoDO orgInfoDO = orgInfoMapper.selectOne(wrapper); + if (orgInfoDO == null || !StringUtils.hasText(orgInfoDO.getSafetyIndustryCategoryCode())) { + return java.util.Collections.emptyList(); + } + return JSONUtil.toList(orgInfoDO.getSafetyIndustryCategoryCode(), String.class); + } + private void syncGbsUser(String action, Runnable runnable) { try { runnable.run();