From 5242a486ed8b385dad5aea4b92a226fd1db5497c Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Mon, 10 Aug 2026 17:15:53 +0800 Subject: [PATCH] upgrade --- .../executor/QualFilingChangeExecutor.java | 49 +++++++++++-------- .../constant/QualFilingFormStepEnum.java | 2 +- .../QualFilingChangeDetailGateway.java | 2 + .../QualFilingChangeDetailGatewayImpl.java | 8 +++ 4 files changed, 40 insertions(+), 21 deletions(-) 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 2a91521d..a8c5240f 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 @@ -2,6 +2,7 @@ package org.qinan.safetyeval.app.executor; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.toolkit.Db; import org.qinan.safetyeval.app.change.convertor.*; import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator; import org.qinan.safetyeval.client.api.QualFilingChangeApi; @@ -25,9 +26,11 @@ import org.qinan.safetyeval.domain.service.QualFilingReviewDomainService; import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter; import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter; import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeCountDO; +import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeDetailDO; import org.qinan.safetyeval.infrastructure.mapper.QualFilingChangeMapper; import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper; import org.qinan.safetyeval.infrastructure.persistence.mapper.QualFilingPersonnelChangeMapper; +import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults; import org.qinan.safetyeval.infrastructure.utils.CommonUtil; import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -314,22 +317,8 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { // 编辑场景:对比请求数据与已有变更数据,生成变更明细 if (cmd.getOriginChangeFilingId() != null) { - Long changeId = cmd.getOriginChangeFilingId(); - List details = diffFromCmd(changeId - , entity, commitmentEntity, equipmentEntities - , materialEntities, personnelEntities, personnelCertEntities); - // 根据changeId先删除原有变更明细,再新增 - List existingDetails = qualFilingChangeDetailGateway.listByChangeId(changeId); - if (!CollectionUtils.isEmpty(existingDetails)) { - existingDetails.forEach(d -> qualFilingChangeDetailGateway.delete(d.getId())); - } - if (!CollectionUtils.isEmpty(details)) { - String operatorName = AuthUserContextAdapter.getCurrentUserName(); - details.forEach(d -> { - d.setCreateName(operatorName); - qualFilingChangeDetailGateway.save(d); - }); - } + regenerateChangeDetailsForEdit(cmd, entity, commitmentEntity + , equipmentEntities, materialEntities, personnelEntities, personnelCertEntities); } qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity @@ -338,6 +327,26 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { return SingleResponse.success(null); } + /** + * 编辑场景:对比请求数据与已有变更数据,重新生成变更明细。 + * 先删除原有变更明细,再新增对比生成的明细。 + */ + private void regenerateChangeDetailsForEdit(AggregationSaveOrEditQualFilingChangeCmd cmd + , QualFilingChangeEntity entity, QualFilingCommitmentChangeE commitmentEntity + , List equipmentEntities, List materialEntities + , List personnelEntities, List personnelCertEntities) { + Long changeId = cmd.getOriginChangeFilingId(); + List details = diffFromCmd(changeId + , entity, commitmentEntity, equipmentEntities + , materialEntities, personnelEntities, personnelCertEntities); + // 根据changeId先删除原有变更明细,再新增 + qualFilingChangeDetailGateway.deleteByChangeId(changeId); + if (!CollectionUtils.isEmpty(details)) { + details.forEach(InsertFieldDefaults::apply); + Db.saveBatch(details); + } + } + @Override @Transactional(rollbackFor = Exception.class) public void review(QualFilingChangeReviewAddCmd cmd) { @@ -567,11 +576,11 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { /** * 对比请求数据与已有变更数据,生成变更明细列表 */ - private List diffFromCmd( + private List diffFromCmd( Long changeId, QualFilingChangeEntity newEntity, QualFilingCommitmentChangeE newCommitment, List newEquipments, List newMaterials, List newPersonnel, List newCerts) { - List details = new ArrayList<>(); + List details = new ArrayList<>(); // 基本信息变更 QualFilingChangeEntity existingEntity = qualFilingChangeDomainService.get(changeId); @@ -702,9 +711,9 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { return list == null ? Collections.emptyList() : list; } - private QualFilingChangeDetailEntity stepDetail(Long changeId, QualFilingFormStepEnum step, + private QualFilingChangeDetailDO stepDetail(Long changeId, QualFilingFormStepEnum step, String content, String before, String after) { - QualFilingChangeDetailEntity detail = new QualFilingChangeDetailEntity(); + QualFilingChangeDetailDO detail = new QualFilingChangeDetailDO(); detail.setChangeId(changeId); detail.setFormStepCode(step.getCode()); detail.setFormStepName(step.getName()); diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/QualFilingFormStepEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/QualFilingFormStepEnum.java index 8dda7bc8..fd65cd2b 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/QualFilingFormStepEnum.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/QualFilingFormStepEnum.java @@ -5,7 +5,7 @@ package org.qinan.safetyeval.domain.constant; */ public enum QualFilingFormStepEnum { - BASIC_INFO(1, "备案基本信息"), + BASIC_INFO(1, "基本信息备案"), MATERIALS(2, "备案材料上传"), COMMITMENT(3, "法定代表人承诺书"), PERSONNEL(4, "备案人员管理"), diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/QualFilingChangeDetailGateway.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/QualFilingChangeDetailGateway.java index 745349e8..8c39cd69 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/QualFilingChangeDetailGateway.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/QualFilingChangeDetailGateway.java @@ -26,5 +26,7 @@ public interface QualFilingChangeDetailGateway { void delete(Long id); + void deleteByChangeId(Long changeId); + PageResult page(QualFilingChangeDetailQuery query); } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeDetailGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeDetailGatewayImpl.java index 66f31800..dc2b6e16 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeDetailGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/QualFilingChangeDetailGatewayImpl.java @@ -3,6 +3,7 @@ package org.qinan.safetyeval.infrastructure.gatewayimpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.toolkit.Db; import org.qinan.safetyeval.domain.entity.QualFilingChangeDetailEntity; import org.qinan.safetyeval.domain.gateway.QualFilingChangeDetailGateway; import org.qinan.safetyeval.domain.query.QualFilingChangeDetailQuery; @@ -76,6 +77,13 @@ public class QualFilingChangeDetailGatewayImpl implements QualFilingChangeDetail qualFilingChangeDetailMapper.deleteById(id); } + @Override + public void deleteByChangeId(Long changeId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(QualFilingChangeDetailDO::getChangeId, changeId); + qualFilingChangeDetailMapper.delete(wrapper); + } + @Override public PageResult page(QualFilingChangeDetailQuery query) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();