dev
luotaiqian 2026-08-05 10:16:25 +08:00
parent 21fa58aec7
commit 014e71a1aa
4 changed files with 145 additions and 46 deletions

View File

@ -0,0 +1,119 @@
package org.qinan.safetyeval.app.change.convertor;
import com.alibaba.fastjson.JSON;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.qinan.safetyeval.client.co.QualFilingCO;
import org.qinan.safetyeval.client.dto.QualFilingAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingCommitmentAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingEquipmentAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingMaterialAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingPersonnelAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingPersonnelCertAddCmd;
import org.qinan.safetyeval.domain.entity.QualFilingCommitmentEntity;
import org.qinan.safetyeval.domain.entity.QualFilingEntity;
import org.qinan.safetyeval.domain.entity.QualFilingEquipmentEntity;
import org.qinan.safetyeval.domain.entity.QualFilingMaterialEntity;
import org.qinan.safetyeval.domain.entity.QualFilingPersonnelCertEntity;
import org.qinan.safetyeval.domain.entity.QualFilingPersonnelEntity;
import java.util.List;
/**
*
* AddCmd / CO
*
* @author safety-eval
*/
@Mapper(componentModel = "spring")
public interface QualFilingCmdConvertor {
/**
* CmdCO
*/
QualFilingCO convertFilingCmdToCO(QualFilingAddCmd qualFilingAddCmd);
/**
* CmdbusinessScope List JSON
*/
@Mapping(target = "businessScope", source = "businessScope", qualifiedByName = "listToJsonString")
@Mapping(target = "orgId", ignore = true)
@Mapping(target = "originFilingId", ignore = true)
@Mapping(target = "rejectReason", ignore = true)
@Mapping(target = "submitTime", ignore = true)
@Mapping(target = "approveTime", ignore = true)
@Mapping(target = "alertStatus", ignore = true)
@Mapping(target = "tenantId", ignore = true)
QualFilingEntity convertFilingCmdToEntity(QualFilingAddCmd qualFilingAddCmd);
/**
* Cmd
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingCommitmentEntity convertCommitmentCmdToEntity(QualFilingCommitmentAddCmd qualFilingCommitmentAddCmd);
/**
* Cmd
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingEquipmentEntity convertEquipmentCmdToEntity(QualFilingEquipmentAddCmd qualFilingEquipmentAddCmd);
/**
* Cmd
*/
List<QualFilingEquipmentEntity> convertEquipmentCmdListToEntityList(List<QualFilingEquipmentAddCmd> qualFilingEquipmentAddCmds);
/**
* Cmd
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingMaterialEntity convertMaterialCmdToEntity(QualFilingMaterialAddCmd qualFilingMaterialAddCmd);
/**
* Cmd
*/
List<QualFilingMaterialEntity> convertMaterialCmdListToEntityList(List<QualFilingMaterialAddCmd> qualFilingMaterialAddCmds);
/**
* Cmd
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingPersonnelEntity convertPersonnelCmdToEntity(QualFilingPersonnelAddCmd qualFilingPersonnelAddCmd);
/**
* Cmd
*/
List<QualFilingPersonnelEntity> convertPersonnelCmdListToEntityList(List<QualFilingPersonnelAddCmd> qualFilingPersonnelAddCmds);
/**
* Cmd
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingPersonnelCertEntity convertPersonnelCertCmdToEntity(QualFilingPersonnelCertAddCmd qualFilingPersonnelCertAddCmd);
/**
* Cmd
*/
List<QualFilingPersonnelCertEntity> convertPersonnelCertCmdListToEntityList(List<QualFilingPersonnelCertAddCmd> qualFilingPersonnelCertAddCmds);
@Named("listToJsonString")
default String listToJsonString(List<String> list) {
return list == null ? null : JSON.toJSONString(list);
}
}

View File

@ -22,7 +22,6 @@ import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
import org.qinan.safetyeval.infrastructure.dataobject.*; import org.qinan.safetyeval.infrastructure.dataobject.*;
import org.qinan.safetyeval.infrastructure.mapper.*; import org.qinan.safetyeval.infrastructure.mapper.*;
import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil; import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -75,6 +74,8 @@ public class QualFilingExecutor implements QualFilingApi {
private QualFilingPersonnelChangeCmdConvertor qualFilingPersonnelChangeCmdConvertor; private QualFilingPersonnelChangeCmdConvertor qualFilingPersonnelChangeCmdConvertor;
@Resource @Resource
private QualFilingComplianceCmdConvertor qualFilingComplianceCmdConvertor; private QualFilingComplianceCmdConvertor qualFilingComplianceCmdConvertor;
@Resource
private QualFilingCmdConvertor qualFilingCmdConvertor;
@Override @Override
public SingleResponse<QualFilingCO> add(QualFilingAddCmd cmd) { public SingleResponse<QualFilingCO> add(QualFilingAddCmd cmd) {
@ -191,42 +192,21 @@ public class QualFilingExecutor implements QualFilingApi {
} }
} }
QualFilingCO co = new QualFilingCO(); QualFilingCO co = qualFilingCmdConvertor.convertFilingCmdToCO(cmd.getQualFilingAddCmd());
BeanUtils.copyProperties(cmd.getQualFilingAddCmd(), co);
// 拷贝基本信息 // 拷贝基本信息
QualFilingEntity entity = new QualFilingEntity(); QualFilingEntity entity = qualFilingCmdConvertor.convertFilingCmdToEntity(cmd.getQualFilingAddCmd());
BeanUtils.copyProperties(cmd.getQualFilingAddCmd(), entity);
entity.setBusinessScope(JSON.toJSONString(cmd.getQualFilingAddCmd().getBusinessScope()));
//备案承诺书 //备案承诺书
QualFilingCommitmentEntity commitmentEntity = new QualFilingCommitmentEntity(); QualFilingCommitmentEntity commitmentEntity = qualFilingCmdConvertor.convertCommitmentCmdToEntity(cmd.getQualFilingCommitmentAddCmd());
BeanUtils.copyProperties(cmd.getQualFilingCommitmentAddCmd(), commitmentEntity);
//备案装备 //备案装备
List<QualFilingEquipmentEntity> equipmentEntities = cmd.getQualFilingEquipmentAddCmds().stream().map(item -> { List<QualFilingEquipmentEntity> equipmentEntities = qualFilingCmdConvertor.convertEquipmentCmdListToEntityList(cmd.getQualFilingEquipmentAddCmds());
QualFilingEquipmentEntity equipmentEntity = new QualFilingEquipmentEntity();
BeanUtils.copyProperties(item, equipmentEntity);
return equipmentEntity;
}).collect(Collectors.toList());
//备案材料清单 //备案材料清单
List<QualFilingMaterialEntity> materialEntities = cmd.getQualFilingMaterialAddCmds().stream().map(item -> { List<QualFilingMaterialEntity> materialEntities = qualFilingCmdConvertor.convertMaterialCmdListToEntityList(cmd.getQualFilingMaterialAddCmds());
QualFilingMaterialEntity materialEntity = new QualFilingMaterialEntity();
BeanUtils.copyProperties(item, materialEntity);
return materialEntity;
}).collect(Collectors.toList());
//备案人员 //备案人员
List<QualFilingPersonnelEntity> personnelEntities = cmd.getQualFilingPersonnelAddCmds().stream().map(item -> { List<QualFilingPersonnelEntity> personnelEntities = qualFilingCmdConvertor.convertPersonnelCmdListToEntityList(cmd.getQualFilingPersonnelAddCmds());
QualFilingPersonnelEntity personnelEntity = new QualFilingPersonnelEntity();
BeanUtils.copyProperties(item, personnelEntity);
return personnelEntity;
}).collect(Collectors.toList());
//备案人员证书列表 //备案人员证书列表
List<QualFilingPersonnelCertEntity> personnelCertEntities = Collections.emptyList(); List<QualFilingPersonnelCertEntity> personnelCertEntities = CollectionUtils.isEmpty(cmd.getQualFilingPersonnelCertAddCmds())
if (!CollectionUtils.isEmpty(cmd.getQualFilingPersonnelCertAddCmds())) { ? Collections.emptyList()
personnelCertEntities = cmd.getQualFilingPersonnelCertAddCmds().stream().map(item -> { : qualFilingCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds());
QualFilingPersonnelCertEntity personnelCertEntity = new QualFilingPersonnelCertEntity();
BeanUtils.copyProperties(item, personnelCertEntity);
return personnelCertEntity;
}).collect(Collectors.toList());
}
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);
if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null

View File

@ -1,25 +1,24 @@
package org.qinan.safetyeval.domain.constant; package org.qinan.safetyeval.domain.constant;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import java.util.Objects; import java.util.Objects;
/** /**
* *
*/ */
@RequiredArgsConstructor
@Getter
public enum CertTypeCodeEnum { public enum CertTypeCodeEnum {
REGISTERED_SAFETY_ENGINEER("注册安全工程师"), REGISTERED_SAFETY_ENGINEER("registered_safety_engineer","注册安全工程师"),
EVALUATOR("评价师"), EVALUATOR("evaluator","评价师"),
; ;
private final String code; private final String code;
private final String desc;
CertTypeCodeEnum(String code) {
this.code = code;
}
public String getCode() {
return code;
}
public static CertTypeCodeEnum ofCode(String code) { public static CertTypeCodeEnum ofCode(String code) {
if (code == null) { if (code == null) {

View File

@ -425,12 +425,13 @@ public class ComplianceCheckUtil {
personCapabilityMap.computeIfAbsent(pc.getPersonnelId(), k -> new HashSet<>()) personCapabilityMap.computeIfAbsent(pc.getPersonnelId(), k -> new HashSet<>())
.add(pc.getProfessionalCapabilityCode()); .add(pc.getProfessionalCapabilityCode());
IndustryProfessionalPersonCo co = personnelMap.get(pc.getPersonnelId()); IndustryProfessionalPersonCo co = personnelMap.get(pc.getPersonnelId());
if (co != null) {
// 人员学科能力 // 人员学科能力
Set<String> pdcSet = Arrays.stream(co.getProfessionalCapabilityCode().split(CommonUtil.COMMA)) Set<String> pdcSet = Arrays.stream(co.getProfessionalCapabilityCode().split(CommonUtil.COMMA))
.collect(Collectors.toSet()); .collect(Collectors.toSet());
personCapabilityMap.computeIfAbsent(pc.getPersonnelId(), k -> new HashSet<>()) personCapabilityMap.computeIfAbsent(pc.getPersonnelId(), k -> new HashSet<>())
.addAll(pdcSet); .addAll(pdcSet);
}
} }
// 数据来源industryProfessionalPersonCos备案人员自带专业能力+ certCapabilityList证书专业能力 // 数据来源industryProfessionalPersonCos备案人员自带专业能力+ certCapabilityList证书专业能力