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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.change.convertor.*;
import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator; import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator;
import org.qinan.safetyeval.client.api.QualFilingChangeApi; 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.ThreadLocalUserInfoAdapter;
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter; import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeCountDO; 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.QualFilingChangeMapper;
import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper; import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper;
import org.qinan.safetyeval.infrastructure.persistence.mapper.QualFilingPersonnelChangeMapper; 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.CommonUtil;
import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil; import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -314,22 +317,8 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
// 编辑场景:对比请求数据与已有变更数据,生成变更明细 // 编辑场景:对比请求数据与已有变更数据,生成变更明细
if (cmd.getOriginChangeFilingId() != null) { if (cmd.getOriginChangeFilingId() != null) {
Long changeId = cmd.getOriginChangeFilingId(); regenerateChangeDetailsForEdit(cmd, entity, commitmentEntity
List<QualFilingChangeDetailEntity> details = diffFromCmd(changeId , equipmentEntities, materialEntities, personnelEntities, personnelCertEntities);
, 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);
});
}
} }
qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity
@ -338,6 +327,26 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
return SingleResponse.success(null); 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 @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void review(QualFilingChangeReviewAddCmd cmd) { 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, Long changeId, QualFilingChangeEntity newEntity, QualFilingCommitmentChangeE newCommitment,
List<QualFilingEquipmentChangeE> newEquipments, List<QualFilingMaterialChangeE> newMaterials, List<QualFilingEquipmentChangeE> newEquipments, List<QualFilingMaterialChangeE> newMaterials,
List<QualFilingPersonnelChangeE> newPersonnel, List<QualFilingPersonnelCertChangeE> newCerts) { List<QualFilingPersonnelChangeE> newPersonnel, List<QualFilingPersonnelCertChangeE> newCerts) {
List<QualFilingChangeDetailEntity> details = new ArrayList<>(); List<QualFilingChangeDetailDO> details = new ArrayList<>();
// 基本信息变更 // 基本信息变更
QualFilingChangeEntity existingEntity = qualFilingChangeDomainService.get(changeId); QualFilingChangeEntity existingEntity = qualFilingChangeDomainService.get(changeId);
@ -702,9 +711,9 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
return list == null ? Collections.emptyList() : list; 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) { String content, String before, String after) {
QualFilingChangeDetailEntity detail = new QualFilingChangeDetailEntity(); QualFilingChangeDetailDO detail = new QualFilingChangeDetailDO();
detail.setChangeId(changeId); detail.setChangeId(changeId);
detail.setFormStepCode(step.getCode()); detail.setFormStepCode(step.getCode());
detail.setFormStepName(step.getName()); detail.setFormStepName(step.getName());

View File

@ -5,7 +5,7 @@ package org.qinan.safetyeval.domain.constant;
*/ */
public enum QualFilingFormStepEnum { public enum QualFilingFormStepEnum {
BASIC_INFO(1, "备案基本信息"), BASIC_INFO(1, "基本信息备案"),
MATERIALS(2, "备案材料上传"), MATERIALS(2, "备案材料上传"),
COMMITMENT(3, "法定代表人承诺书"), COMMITMENT(3, "法定代表人承诺书"),
PERSONNEL(4, "备案人员管理"), PERSONNEL(4, "备案人员管理"),

View File

@ -26,5 +26,7 @@ public interface QualFilingChangeDetailGateway {
void delete(Long id); void delete(Long id);
void deleteByChangeId(Long changeId);
PageResult<QualFilingChangeDetailEntity> page(QualFilingChangeDetailQuery query); 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.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.QualFilingChangeDetailEntity;
import org.qinan.safetyeval.domain.gateway.QualFilingChangeDetailGateway; import org.qinan.safetyeval.domain.gateway.QualFilingChangeDetailGateway;
import org.qinan.safetyeval.domain.query.QualFilingChangeDetailQuery; import org.qinan.safetyeval.domain.query.QualFilingChangeDetailQuery;
@ -76,6 +77,13 @@ public class QualFilingChangeDetailGatewayImpl implements QualFilingChangeDetail
qualFilingChangeDetailMapper.deleteById(id); qualFilingChangeDetailMapper.deleteById(id);
} }
@Override
public void deleteByChangeId(Long changeId) {
LambdaQueryWrapper<QualFilingChangeDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(QualFilingChangeDetailDO::getChangeId, changeId);
qualFilingChangeDetailMapper.delete(wrapper);
}
@Override @Override
public PageResult<QualFilingChangeDetailEntity> page(QualFilingChangeDetailQuery query) { public PageResult<QualFilingChangeDetailEntity> page(QualFilingChangeDetailQuery query) {
LambdaQueryWrapper<QualFilingChangeDetailDO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<QualFilingChangeDetailDO> wrapper = new LambdaQueryWrapper<>();