dev-tmp1
luotaiqian 2026-08-10 17:15:53 +08:00
parent da9c0e764c
commit 5242a486ed
4 changed files with 40 additions and 21 deletions

View File

@ -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<QualFilingChangeDetailEntity> details = diffFromCmd(changeId
, entity, commitmentEntity, equipmentEntities
, materialEntities, personnelEntities, personnelCertEntities);
// 根据changeId先删除原有变更明细再新增
List<QualFilingChangeDetailEntity> 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<QualFilingEquipmentChangeE> equipmentEntities, List<QualFilingMaterialChangeE> materialEntities
, List<QualFilingPersonnelChangeE> personnelEntities, List<QualFilingPersonnelCertChangeE> personnelCertEntities) {
Long changeId = cmd.getOriginChangeFilingId();
List<QualFilingChangeDetailDO> 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<QualFilingChangeDetailEntity> diffFromCmd(
private List<QualFilingChangeDetailDO> diffFromCmd(
Long changeId, QualFilingChangeEntity newEntity, QualFilingCommitmentChangeE newCommitment,
List<QualFilingEquipmentChangeE> newEquipments, List<QualFilingMaterialChangeE> newMaterials,
List<QualFilingPersonnelChangeE> newPersonnel, List<QualFilingPersonnelCertChangeE> newCerts) {
List<QualFilingChangeDetailEntity> details = new ArrayList<>();
List<QualFilingChangeDetailDO> 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());

View File

@ -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, "备案人员管理"),

View File

@ -26,5 +26,7 @@ public interface QualFilingChangeDetailGateway {
void delete(Long id);
void deleteByChangeId(Long changeId);
PageResult<QualFilingChangeDetailEntity> page(QualFilingChangeDetailQuery query);
}

View File

@ -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<QualFilingChangeDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(QualFilingChangeDetailDO::getChangeId, changeId);
qualFilingChangeDetailMapper.delete(wrapper);
}
@Override
public PageResult<QualFilingChangeDetailEntity> page(QualFilingChangeDetailQuery query) {
LambdaQueryWrapper<QualFilingChangeDetailDO> wrapper = new LambdaQueryWrapper<>();