person
parent
21fa58aec7
commit
014e71a1aa
|
|
@ -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 {
|
||||
|
||||
/**
|
||||
* 备案基本信息Cmd转CO
|
||||
*/
|
||||
QualFilingCO convertFilingCmdToCO(QualFilingAddCmd qualFilingAddCmd);
|
||||
|
||||
/**
|
||||
* 备案基本信息Cmd转实体(businessScope 由 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +22,6 @@ import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
|
|||
import org.qinan.safetyeval.infrastructure.dataobject.*;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.*;
|
||||
import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -75,6 +74,8 @@ public class QualFilingExecutor implements QualFilingApi {
|
|||
private QualFilingPersonnelChangeCmdConvertor qualFilingPersonnelChangeCmdConvertor;
|
||||
@Resource
|
||||
private QualFilingComplianceCmdConvertor qualFilingComplianceCmdConvertor;
|
||||
@Resource
|
||||
private QualFilingCmdConvertor qualFilingCmdConvertor;
|
||||
|
||||
@Override
|
||||
public SingleResponse<QualFilingCO> add(QualFilingAddCmd cmd) {
|
||||
|
|
@ -191,42 +192,21 @@ public class QualFilingExecutor implements QualFilingApi {
|
|||
}
|
||||
}
|
||||
|
||||
QualFilingCO co = new QualFilingCO();
|
||||
BeanUtils.copyProperties(cmd.getQualFilingAddCmd(), co);
|
||||
QualFilingCO co = qualFilingCmdConvertor.convertFilingCmdToCO(cmd.getQualFilingAddCmd());
|
||||
// 拷贝基本信息
|
||||
QualFilingEntity entity = new QualFilingEntity();
|
||||
BeanUtils.copyProperties(cmd.getQualFilingAddCmd(), entity);
|
||||
entity.setBusinessScope(JSON.toJSONString(cmd.getQualFilingAddCmd().getBusinessScope()));
|
||||
QualFilingEntity entity = qualFilingCmdConvertor.convertFilingCmdToEntity(cmd.getQualFilingAddCmd());
|
||||
//备案承诺书
|
||||
QualFilingCommitmentEntity commitmentEntity = new QualFilingCommitmentEntity();
|
||||
BeanUtils.copyProperties(cmd.getQualFilingCommitmentAddCmd(), commitmentEntity);
|
||||
QualFilingCommitmentEntity commitmentEntity = qualFilingCmdConvertor.convertCommitmentCmdToEntity(cmd.getQualFilingCommitmentAddCmd());
|
||||
//备案装备
|
||||
List<QualFilingEquipmentEntity> equipmentEntities = cmd.getQualFilingEquipmentAddCmds().stream().map(item -> {
|
||||
QualFilingEquipmentEntity equipmentEntity = new QualFilingEquipmentEntity();
|
||||
BeanUtils.copyProperties(item, equipmentEntity);
|
||||
return equipmentEntity;
|
||||
}).collect(Collectors.toList());
|
||||
List<QualFilingEquipmentEntity> equipmentEntities = qualFilingCmdConvertor.convertEquipmentCmdListToEntityList(cmd.getQualFilingEquipmentAddCmds());
|
||||
//备案材料清单
|
||||
List<QualFilingMaterialEntity> materialEntities = cmd.getQualFilingMaterialAddCmds().stream().map(item -> {
|
||||
QualFilingMaterialEntity materialEntity = new QualFilingMaterialEntity();
|
||||
BeanUtils.copyProperties(item, materialEntity);
|
||||
return materialEntity;
|
||||
}).collect(Collectors.toList());
|
||||
List<QualFilingMaterialEntity> materialEntities = qualFilingCmdConvertor.convertMaterialCmdListToEntityList(cmd.getQualFilingMaterialAddCmds());
|
||||
//备案人员
|
||||
List<QualFilingPersonnelEntity> personnelEntities = cmd.getQualFilingPersonnelAddCmds().stream().map(item -> {
|
||||
QualFilingPersonnelEntity personnelEntity = new QualFilingPersonnelEntity();
|
||||
BeanUtils.copyProperties(item, personnelEntity);
|
||||
return personnelEntity;
|
||||
}).collect(Collectors.toList());
|
||||
List<QualFilingPersonnelEntity> personnelEntities = qualFilingCmdConvertor.convertPersonnelCmdListToEntityList(cmd.getQualFilingPersonnelAddCmds());
|
||||
//备案人员证书列表
|
||||
List<QualFilingPersonnelCertEntity> personnelCertEntities = Collections.emptyList();
|
||||
if (!CollectionUtils.isEmpty(cmd.getQualFilingPersonnelCertAddCmds())) {
|
||||
personnelCertEntities = cmd.getQualFilingPersonnelCertAddCmds().stream().map(item -> {
|
||||
QualFilingPersonnelCertEntity personnelCertEntity = new QualFilingPersonnelCertEntity();
|
||||
BeanUtils.copyProperties(item, personnelCertEntity);
|
||||
return personnelCertEntity;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
List<QualFilingPersonnelCertEntity> personnelCertEntities = CollectionUtils.isEmpty(cmd.getQualFilingPersonnelCertAddCmds())
|
||||
? Collections.emptyList()
|
||||
: qualFilingCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds());
|
||||
Long id = qualFilingDomainService.aggregationSaveOrEdit(entity, commitmentEntity, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities);
|
||||
co.setId(id);
|
||||
if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null
|
||||
|
|
|
|||
|
|
@ -1,25 +1,24 @@
|
|||
package org.qinan.safetyeval.domain.constant;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 证书类型编码
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
public enum CertTypeCodeEnum {
|
||||
|
||||
REGISTERED_SAFETY_ENGINEER("注册安全工程师"),
|
||||
EVALUATOR("评价师"),
|
||||
REGISTERED_SAFETY_ENGINEER("registered_safety_engineer","注册安全工程师"),
|
||||
EVALUATOR("evaluator","评价师"),
|
||||
;
|
||||
|
||||
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) {
|
||||
if (code == null) {
|
||||
|
|
|
|||
|
|
@ -425,13 +425,14 @@ public class ComplianceCheckUtil {
|
|||
personCapabilityMap.computeIfAbsent(pc.getPersonnelId(), k -> new HashSet<>())
|
||||
.add(pc.getProfessionalCapabilityCode());
|
||||
IndustryProfessionalPersonCo co = personnelMap.get(pc.getPersonnelId());
|
||||
|
||||
if (co != null) {
|
||||
// 人员学科能力
|
||||
Set<String> pdcSet = Arrays.stream(co.getProfessionalCapabilityCode().split(CommonUtil.COMMA))
|
||||
.collect(Collectors.toSet());
|
||||
personCapabilityMap.computeIfAbsent(pc.getPersonnelId(), k -> new HashSet<>())
|
||||
.addAll(pdcSet);
|
||||
}
|
||||
}
|
||||
|
||||
// 数据来源:industryProfessionalPersonCos(备案人员自带专业能力)+ certCapabilityList(证书专业能力)
|
||||
Map<String, Long> assignedMap = canFullyAssign(personCapabilityMap, requiredMap);
|
||||
|
|
|
|||
Loading…
Reference in New Issue