luotaiqian 2026-08-05 17:10:36 +08:00
parent e9b88ba872
commit 13e238f1f9
12 changed files with 69 additions and 27 deletions

View File

@ -7,6 +7,7 @@ import org.qinan.safetyeval.client.api.OrgInfoApi;
import org.qinan.safetyeval.client.co.OrgInfoCO; import org.qinan.safetyeval.client.co.OrgInfoCO;
import org.qinan.safetyeval.client.co.OrgInfoSelectCO; import org.qinan.safetyeval.client.co.OrgInfoSelectCO;
import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.client.dto.*;
import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
import org.qinan.safetyeval.infrastructure.dataobject.base.Req; import org.qinan.safetyeval.infrastructure.dataobject.base.Req;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -80,4 +81,10 @@ public class OrgInfoController {
public SingleResponse<List<OrgInfoSelectCO>> selectList() { public SingleResponse<List<OrgInfoSelectCO>> selectList() {
return orgInfoApi.selectList(); return orgInfoApi.selectList();
} }
@ApiOperation("查询机构备案的行业信息")
@GetMapping("/select/org/industry/code")
public SingleResponse<List<String>> orgIndustryCode() {
return orgInfoApi.orgIndustryCode(ThreadLocalUserInfoAdapter.getOrgId());
}
} }

View File

@ -63,7 +63,8 @@ public class QualFilingChangeController {
@ApiOperation("聚合新增or编辑资质备案变更申请") @ApiOperation("聚合新增or编辑资质备案变更申请")
@PostMapping("/aggregationSaveOrEdit") @PostMapping("/aggregationSaveOrEdit")
public SingleResponse<QualFilingChangeCO> aggregationSaveOrEdit(@RequestBody AggregationSaveOrEditQualFilingChangeCmd cmd) { public SingleResponse<List<QualFilingComplianceCheckResultCO>> aggregationSaveOrEdit(
@RequestBody AggregationSaveOrEditQualFilingChangeCmd cmd) {
cmd.getQualFilingChangeAddCmd().setFilingStatusCode(QualFilingStatusEnum.CHANGE_REVIEWING.getCode()); cmd.getQualFilingChangeAddCmd().setFilingStatusCode(QualFilingStatusEnum.CHANGE_REVIEWING.getCode());
return qualFilingChangeApi.aggregationSaveOrEdit(cmd, false); return qualFilingChangeApi.aggregationSaveOrEdit(cmd, false);
} }

View File

@ -80,7 +80,7 @@ public class QualFilingController {
/////////////////////////////////////聚合接口 /////////////////////////////////////聚合接口
@ApiOperation("聚合新增or编辑资质备案申请") @ApiOperation("聚合新增or编辑资质备案申请")
@PostMapping("/aggregationSaveOrEdit") @PostMapping("/aggregationSaveOrEdit")
public SingleResponse<QualFilingCO> aggregationSaveOrEdit(@RequestBody AggregationSaveOrEditQualFilingCmd cmd) { public SingleResponse<List<QualFilingComplianceCheckResultCO>> aggregationSaveOrEdit(@RequestBody AggregationSaveOrEditQualFilingCmd cmd) {
return qualFilingApi.aggregationSaveOrEdit(cmd); return qualFilingApi.aggregationSaveOrEdit(cmd);
} }

View File

@ -221,6 +221,11 @@ public class OrgInfoExecutor implements OrgInfoApi {
return SingleResponse.success(result); return SingleResponse.success(result);
} }
@Override
public SingleResponse<List<String>> orgIndustryCode(Long orgId) {
return SingleResponse.success(orgInfoDomainService.orgIndustryCode(orgId));
}
private OrgInfoCO toCO(OrgInfoEntity entity) { private OrgInfoCO toCO(OrgInfoEntity entity) {
if (entity == null) { if (entity == null) {
return null; return null;

View File

@ -95,6 +95,7 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
@Resource @Resource
private QualFilingChangeDetailGateway qualFilingChangeDetailGateway; private QualFilingChangeDetailGateway qualFilingChangeDetailGateway;
@Value("${def.reviewEnable:false}") @Value("${def.reviewEnable:false}")
private Boolean reviewEnable; private Boolean reviewEnable;
@ -261,21 +262,18 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public SingleResponse<QualFilingChangeCO> aggregationSaveOrEdit( public SingleResponse<List<QualFilingComplianceCheckResultCO>> aggregationSaveOrEdit(
AggregationSaveOrEditQualFilingChangeCmd cmd, boolean throwException) { AggregationSaveOrEditQualFilingChangeCmd cmd, boolean throwException) {
validateBeforeSaveOrEdit(cmd); validateBeforeSaveOrEdit(cmd);
// 合规性校验:只要有一项未通过则抛出异常 // 合规性校验:只要有一项未通过则抛出异常
if (reviewEnable) {
AggregationSaveOrEditQualFilingCmd qualFilingCmd = convertToQualFilingCmd(cmd); AggregationSaveOrEditQualFilingCmd qualFilingCmd = convertToQualFilingCmd(cmd);
List<QualFilingComplianceCheckResultCO> complianceResults = ComplianceCheckUtil.complianceCheck(qualFilingCmd, throwException); List<QualFilingComplianceCheckResultCO> complianceResults = ComplianceCheckUtil.complianceCheck(qualFilingCmd, throwException);
List<String> failedItems = complianceResults.stream() complianceResults = complianceResults.stream()
.filter(r -> QualFilingComplianceCheckEnum.STATUS_FAIL.equals(r.getStatus())) .filter(r -> QualFilingComplianceCheckEnum.STATUS_FAIL.equals(r.getStatus()))
.map(QualFilingComplianceCheckResultCO::getTitle)
.collect(Collectors.toList()); .collect(Collectors.toList());
if (!failedItems.isEmpty()) { if (!CollectionUtils.isEmpty(complianceResults)) {
throw new BizException(ErrorCode.QUAL_FILING_COMPLIANCE_CHECK_FAIL, return SingleResponse.success(complianceResults);
"合规性校验未通过:" + String.join("、", failedItems));
}
} }
// 变更基本信息 // 变更基本信息
@ -328,12 +326,10 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
} }
} }
Long id = qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity
, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities); , equipmentEntities, materialEntities, personnelEntities, personnelCertEntities);
QualFilingChangeCO co = new QualFilingChangeCO(); return SingleResponse.success(null);
co.setId(id);
return SingleResponse.success(co);
} }
@Override @Override

View File

@ -181,17 +181,15 @@ public class QualFilingExecutor implements QualFilingApi {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public SingleResponse<QualFilingCO> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd) { public SingleResponse<List<QualFilingComplianceCheckResultCO>> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd) {
if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null
&& cmd.getQualFilingAddCmd().getFilingStatusCode() != QualFilingStatusEnum.DRAFT.getCode()) { && cmd.getQualFilingAddCmd().getFilingStatusCode() != QualFilingStatusEnum.DRAFT.getCode()) {
List<QualFilingComplianceCheckResultCO> complianceResults = ComplianceCheckUtil.complianceCheck(cmd, false); List<QualFilingComplianceCheckResultCO> complianceResults = ComplianceCheckUtil.complianceCheck(cmd, false);
List<String> failedItems = complianceResults.stream() complianceResults = complianceResults.stream()
.filter(r -> QualFilingComplianceCheckEnum.STATUS_FAIL.equals(r.getStatus())) .filter(r -> QualFilingComplianceCheckEnum.STATUS_FAIL.equals(r.getStatus()))
.map(QualFilingComplianceCheckResultCO::getTitle)
.collect(Collectors.toList()); .collect(Collectors.toList());
if (!failedItems.isEmpty()) { if (!CollectionUtils.isEmpty(complianceResults)) {
throw new BizException(ErrorCode.QUAL_FILING_COMPLIANCE_CHECK_FAIL, return SingleResponse.success(complianceResults);
"合规性校验未通过:" + String.join("、", failedItems));
} }
} }
// 新增时校验用当前id查询记录获取org_id若同机构已存在其他资质备案记录则不允许新增 // 新增时校验用当前id查询记录获取org_id若同机构已存在其他资质备案记录则不允许新增
@ -222,7 +220,7 @@ public class QualFilingExecutor implements QualFilingApi {
: qualFilingAddCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds()); : qualFilingAddCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds());
Long id = qualFilingDomainService.aggregationSaveOrEdit(entity, commitmentEntity, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities); Long id = qualFilingDomainService.aggregationSaveOrEdit(entity, commitmentEntity, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities);
co.setId(id); co.setId(id);
return SingleResponse.success(co); return SingleResponse.success(null);
} }
@Override @Override

View File

@ -42,4 +42,12 @@ public interface OrgInfoApi {
* @return * @return
*/ */
SingleResponse<List<OrgInfoSelectCO>> selectList(); SingleResponse<List<OrgInfoSelectCO>> selectList();
/**
*
*
* @param orgId ID
* @return
*/
SingleResponse<List<String>> orgIndustryCode(Long orgId);
} }

View File

@ -41,7 +41,7 @@ public interface QualFilingApi {
SingleResponse<List<QualFilingComplianceCheckResultCO>> complianceCheck(Long id); SingleResponse<List<QualFilingComplianceCheckResultCO>> complianceCheck(Long id);
SingleResponse<QualFilingCO> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd); SingleResponse<List<QualFilingComplianceCheckResultCO>> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingCmd cmd);
void review(QualFilingReviewAddCmd cmd); void review(QualFilingReviewAddCmd cmd);

View File

@ -34,7 +34,7 @@ public interface QualFilingChangeApi {
SingleResponse<List<QualFilingComplianceCheckResultCO>> complianceCheck(Long id); SingleResponse<List<QualFilingComplianceCheckResultCO>> complianceCheck(Long id);
SingleResponse<QualFilingChangeCO> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingChangeCmd cmd SingleResponse<List<QualFilingComplianceCheckResultCO>> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingChangeCmd cmd
, boolean throwException); , boolean throwException);
void review(QualFilingChangeReviewAddCmd cmd); void review(QualFilingChangeReviewAddCmd cmd);

View File

@ -47,4 +47,12 @@ public interface OrgInfoGateway {
* @return * @return
*/ */
String getUnitNameById(Long id); String getUnitNameById(Long id);
/**
*
*
* @param orgId ID
* @return
*/
List<String> orgIndustryCode(Long orgId);
} }

View File

@ -73,4 +73,8 @@ public class OrgInfoDomainService {
public List<OrgInfoEntity> selectList() { public List<OrgInfoEntity> selectList() {
return orgInfoGateway.selectList(); return orgInfoGateway.selectList();
} }
public List<String> orgIndustryCode(Long orgId) {
return orgInfoGateway.orgIndustryCode(orgId);
}
} }

View File

@ -318,6 +318,21 @@ public class OrgInfoGatewayImpl implements OrgInfoGateway {
return orgInfoDO == null ? null : orgInfoDO.getUnitName(); return orgInfoDO == null ? null : orgInfoDO.getUnitName();
} }
@Override
public List<String> orgIndustryCode(Long orgId) {
if (orgId == null) {
return java.util.Collections.emptyList();
}
LambdaQueryWrapper<OrgInfoDO> 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) { private void syncGbsUser(String action, Runnable runnable) {
try { try {
runnable.run(); runnable.run();