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 d9e7995..e69e320 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 @@ -1,19 +1,28 @@ package org.qinan.safetyeval.app.executor; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator; import org.qinan.safetyeval.client.api.QualFilingApi; +import org.qinan.safetyeval.client.change.request.QualFilingCommitmentChangeAddCmd; +import org.qinan.safetyeval.client.change.request.QualFilingEquipmentChangeAddCmd; +import org.qinan.safetyeval.client.change.request.QualFilingMaterialChangeAddCmd; +import org.qinan.safetyeval.client.change.request.QualFilingPersonnelChangeAddCmd; import org.qinan.safetyeval.client.co.QualFilingCO; import org.qinan.safetyeval.client.co.QualFilingComplianceCheckResultCO; import org.qinan.safetyeval.client.co.QualFilingDetailCO; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.constant.QualFilingApplyTypeEnum; +import org.qinan.safetyeval.domain.constant.QualFilingReviewResultEnum; import org.qinan.safetyeval.domain.entity.*; import org.qinan.safetyeval.domain.query.PageResult; import org.qinan.safetyeval.domain.service.QualFilingDomainService; +import org.qinan.safetyeval.infrastructure.dataobject.*; +import org.qinan.safetyeval.infrastructure.mapper.*; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -35,6 +44,22 @@ public class QualFilingExecutor implements QualFilingApi { @Resource private QualFilingOrchestrator qualFilingOrchestrator; + @Resource + private QualFilingChangeExecutor qualFilingChangeExecutor; + + @Resource + private QualFilingMapper qualFilingMapper; + @Resource + private QualFilingCommitmentMapper qualFilingCommitmentMapper; + @Resource + private QualFilingEquipmentMapper qualFilingEquipmentMapper; + @Resource + private QualFilingMaterialMapper qualFilingMaterialMapper; + @Resource + private QualFilingPersonnelMapper qualFilingPersonnelMapper; + @Resource + private QualFilingPersonnelCertMapper qualFilingPersonnelCertMapper; + @Override public SingleResponse add(QualFilingAddCmd cmd) { QualFilingEntity entity = new QualFilingEntity(); @@ -179,8 +204,49 @@ public class QualFilingExecutor implements QualFilingApi { } @Override + @Transactional(rollbackFor = Exception.class) public void review(QualFilingReviewAddCmd cmd) { qualFilingDomainService.review(cmd.getFilingId(), cmd.getReviewResult(), cmd.getReviewResultRemark(), cmd.getFilingExpertId(), cmd.getFilingExpertName(), cmd.getReviewOpinion()); + if (QualFilingReviewResultEnum.PASS.getCode() == Integer.parseInt(cmd.getReviewResult())) { + // 审核通过,需要新增资质变更记录 + AggregationSaveOrEditQualFilingChangeCmd cmdSync = new AggregationSaveOrEditQualFilingChangeCmd(); + // 基本信息 + QualFilingDO qualFilingDO = qualFilingMapper.selectById(cmd.getFilingId()); + QualFilingChangeAddCmd qualFilingChangeAddCmd = new QualFilingChangeAddCmd(); + BeanUtils.copyProperties(qualFilingDO, qualFilingChangeAddCmd, "id"); + cmdSync.setQualFilingChangeAddCmd(qualFilingChangeAddCmd); + // 备案承诺书 + QualFilingCommitmentDO qualFilingCommitmentDO = qualFilingCommitmentMapper.selectOne(new LambdaQueryWrapper() + .eq(QualFilingCommitmentDO::getFilingId, cmd.getFilingId())); + QualFilingCommitmentChangeAddCmd qualFilingCommitmentChangeAddCmd = new QualFilingCommitmentChangeAddCmd(); + BeanUtils.copyProperties(qualFilingCommitmentDO, qualFilingCommitmentChangeAddCmd); + cmdSync.setQualFilingCommitmentChangeAddCmd(qualFilingCommitmentChangeAddCmd); + // 备案装备 + List qualFilingEquipmentDOs = qualFilingEquipmentMapper.selectList(new LambdaQueryWrapper() + .eq(QualFilingEquipmentDO::getFilingId, cmd.getFilingId())); + cmdSync.setQualFilingEquipmentChangeAddCmds(qualFilingEquipmentDOs.stream().map(item -> { + QualFilingEquipmentChangeAddCmd qualFilingEquipmentChangeAddCmd = new QualFilingEquipmentChangeAddCmd(); + BeanUtils.copyProperties(item, qualFilingEquipmentChangeAddCmd); + return qualFilingEquipmentChangeAddCmd; + }).collect(Collectors.toList())); + // 备案材料清单 + List qualFilingMaterialDOs = qualFilingMaterialMapper.selectList(new LambdaQueryWrapper() + .eq(QualFilingMaterialDO::getFilingId, cmd.getFilingId())); + cmdSync.setQualFilingMaterialChangeAddCmds(qualFilingMaterialDOs.stream().map(item -> { + QualFilingMaterialChangeAddCmd qualFilingMaterialChangeAddCmd = new QualFilingMaterialChangeAddCmd(); + BeanUtils.copyProperties(item, qualFilingMaterialChangeAddCmd); + return qualFilingMaterialChangeAddCmd; + }).collect(Collectors.toList())); + // 备案人员 + List qualFilingPersonnelDOs = qualFilingPersonnelMapper.selectList(new LambdaQueryWrapper() + .eq(QualFilingPersonnelDO::getFilingId, cmd.getFilingId())); + cmdSync.setQualFilingPersonnelChangeAddCmds(qualFilingPersonnelDOs.stream().map(item -> { + QualFilingPersonnelChangeAddCmd qualFilingPersonnelChangeAddCmd = new QualFilingPersonnelChangeAddCmd(); + BeanUtils.copyProperties(item, qualFilingPersonnelChangeAddCmd); + return qualFilingPersonnelChangeAddCmd; + }).collect(Collectors.toList())); + qualFilingChangeExecutor.aggregationSaveOrEdit(cmdSync); + } } private QualFilingCO toLegacyCO(QualFilingEntity entity) { diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeGatewayImpl.java index 59c644c..8c72b51 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeGatewayImpl.java @@ -200,7 +200,7 @@ public class QualFilingChangeGatewayImpl implements QualFilingChangeGateway { .stream().map(QualFilingPersonnelChangeE::getSourcePersonnelId).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(sourcePersonnelIds)) { List orgPersonnelCertDOS = orgPersonnelCertMapper.selectList(new LambdaQueryWrapper() - .eq(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds)); + .in(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds)); if (!CollectionUtils.isEmpty(orgPersonnelCertDOS)) { for (OrgPersonnelCertDO orgPersonnelCertDO : orgPersonnelCertDOS) { QualFilingPersonnelCertChangeDO qualFilingPersonnelCertChangeDO = diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingGatewayImpl.java index 929413e..fa540d3 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingGatewayImpl.java @@ -200,7 +200,7 @@ public class QualFilingGatewayImpl implements QualFilingGateway { List sourcePersonnelIds = personnelEntities.stream().map(QualFilingPersonnelEntity::getSourcePersonnelId).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(sourcePersonnelIds)) { List orgPersonnelCertDOS = orgPersonnelCertMapper.selectList(new LambdaQueryWrapper() - .eq(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds)); + .in(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds)); if (!CollectionUtils.isEmpty(orgPersonnelCertDOS)) { for (OrgPersonnelCertDO orgPersonnelCertDO : orgPersonnelCertDOS) { QualFilingPersonnelCertDO qualFilingPersonnelCertDO = new QualFilingPersonnelCertDO(); @@ -236,7 +236,6 @@ public class QualFilingGatewayImpl implements QualFilingGateway { * @param reviewOpinion 审核意见 */ @Override - @Transactional(rollbackFor = Exception.class) public void review(Long filingId, String reviewResult, String reviewResultRemark, Long filingExpertId, String filingExpertName, String reviewOpinion) { // 保存审核记录 QualFilingReviewDO qualFilingReviewDO = new QualFilingReviewDO(); @@ -258,7 +257,6 @@ public class QualFilingGatewayImpl implements QualFilingGateway { filing.setFilingReviewId(qualFilingReviewDO.getId()); InsertFieldDefaults.applyForUpdate(filing); qualFilingMapper.updateById(filing); - //todo 审核通过是否需要新增资质变更记录 } /**