dev-tmp1
luotaiqian 2026-08-08 11:57:59 +08:00
parent 93b573109f
commit be5c92d1d9
6 changed files with 90 additions and 0 deletions

View File

@ -23,6 +23,8 @@ public interface OrgPersonnelConvertor {
@Mapping(target = "changeCount", ignore = true) @Mapping(target = "changeCount", ignore = true)
@Mapping(target = "resignApplyId", ignore = true) @Mapping(target = "resignApplyId", ignore = true)
@Mapping(target = "resignAuditStatus", ignore = true) @Mapping(target = "resignAuditStatus", ignore = true)
@Mapping(target = "registeredSafetyEngineerCert", ignore = true)
@Mapping(target = "evaluatorCert", ignore = true)
OrgPersonnelCO toCO(OrgPersonnelEntity entity); OrgPersonnelCO toCO(OrgPersonnelEntity entity);
/** /**

View File

@ -13,11 +13,14 @@ import org.qinan.safetyeval.app.support.OrgPersonnelChangeRecorder;
import org.qinan.safetyeval.app.support.OrgPersonnelExcelImporter; import org.qinan.safetyeval.app.support.OrgPersonnelExcelImporter;
import org.qinan.safetyeval.app.support.OrgPersonnelViewEnricher; import org.qinan.safetyeval.app.support.OrgPersonnelViewEnricher;
import org.qinan.safetyeval.client.api.OrgPersonnelApi; import org.qinan.safetyeval.client.api.OrgPersonnelApi;
import org.qinan.safetyeval.client.co.OrgPersonnelCertCO;
import org.qinan.safetyeval.client.co.OrgPersonnelCO; import org.qinan.safetyeval.client.co.OrgPersonnelCO;
import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO; import org.qinan.safetyeval.client.co.OrgPersonnelImportResultCO;
import org.qinan.safetyeval.client.co.PersonnelProfessionalCapabilityCO; import org.qinan.safetyeval.client.co.PersonnelProfessionalCapabilityCO;
import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO; import org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO;
import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.client.dto.*;
import org.qinan.safetyeval.domain.constant.CertTypeCodeEnum;
import org.qinan.safetyeval.domain.entity.OrgPersonnelCertEntity;
import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity; import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity;
import org.qinan.safetyeval.domain.entity.OrgPositionEntity; import org.qinan.safetyeval.domain.entity.OrgPositionEntity;
import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.domain.exception.BizException;
@ -26,11 +29,13 @@ import org.qinan.safetyeval.domain.gateway.FaceCompareGateway;
import org.qinan.safetyeval.domain.gateway.OrgResignApplyGateway; import org.qinan.safetyeval.domain.gateway.OrgResignApplyGateway;
import org.qinan.safetyeval.domain.query.OrgPersonnelQuery; import org.qinan.safetyeval.domain.query.OrgPersonnelQuery;
import org.qinan.safetyeval.domain.query.PageResult; import org.qinan.safetyeval.domain.query.PageResult;
import org.qinan.safetyeval.domain.service.OrgPersonnelCertDomainService;
import org.qinan.safetyeval.domain.service.OrgPersonnelDomainService; import org.qinan.safetyeval.domain.service.OrgPersonnelDomainService;
import org.qinan.safetyeval.domain.service.OrgPositionDomainService; import org.qinan.safetyeval.domain.service.OrgPositionDomainService;
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.adapter.gbs.GbsUserFacadeClient; import org.qinan.safetyeval.infrastructure.adapter.gbs.GbsUserFacadeClient;
import org.qinan.safetyeval.infrastructure.convertor.OrgPersonnelCertConvertor;
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper; import org.qinan.safetyeval.infrastructure.mapper.OrgPersonnelMapper;
import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper; import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper;
@ -73,6 +78,13 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
@Autowired @Autowired
private OrgPersonnelConvertor orgPersonnelConvertor; private OrgPersonnelConvertor orgPersonnelConvertor;
@Lazy
@Autowired(required = false)
private OrgPersonnelCertDomainService orgPersonnelCertDomainService;
@Autowired
private OrgPersonnelCertConvertor orgPersonnelCertConvertor;
@Autowired(required = false) @Autowired(required = false)
private OrgResignApplyGateway orgResignApplyGateway; private OrgResignApplyGateway orgResignApplyGateway;
@ -120,6 +132,9 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
} }
OrgPersonnelCO co = orgPersonnelConvertor.toCO(result); OrgPersonnelCO co = orgPersonnelConvertor.toCO(result);
enrich(co); enrich(co);
// 保存证书信息
savePersonnelCerts(cmd, result.getId());
fillCerts(co, result.getId());
UserAddCmd userAddCmd = new UserAddCmd(); UserAddCmd userAddCmd = new UserAddCmd();
userAddCmd.setId(result.getId()); userAddCmd.setId(result.getId());
userAddCmd.setAccount(result.getAccount()); userAddCmd.setAccount(result.getAccount());
@ -148,6 +163,7 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
OrgPersonnelEntity entity = orgPersonnelDomainService.get(id); OrgPersonnelEntity entity = orgPersonnelDomainService.get(id);
OrgPersonnelCO co = orgPersonnelConvertor.toCO(entity); OrgPersonnelCO co = orgPersonnelConvertor.toCO(entity);
enrich(co); enrich(co);
fillCerts(co, id);
return SingleResponse.success(co); return SingleResponse.success(co);
} }
@ -326,6 +342,48 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
} }
} }
/**
*
*/
private void savePersonnelCerts(OrgPersonnelAddCmd cmd, Long personnelId) {
if (orgPersonnelCertDomainService == null) {
return;
}
if (cmd.getRegisteredSafetyEngineerCert() != null) {
OrgPersonnelCertEntity certEntity = orgPersonnelCertConvertor.addCmdToEntity(cmd.getRegisteredSafetyEngineerCert());
certEntity.setPersonnelId(personnelId);
certEntity.setCertTypeCode(CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER.getCode());
orgPersonnelCertDomainService.add(certEntity);
}
if (cmd.getEvaluatorCert() != null) {
OrgPersonnelCertEntity certEntity = orgPersonnelCertConvertor.addCmdToEntity(cmd.getEvaluatorCert());
certEntity.setPersonnelId(personnelId);
certEntity.setCertTypeCode(CertTypeCodeEnum.EVALUATOR.getCode());
orgPersonnelCertDomainService.add(certEntity);
}
}
/**
* IDCO
*/
private void fillCerts(OrgPersonnelCO co, Long personnelId) {
if (orgPersonnelCertDomainService == null || personnelId == null) {
return;
}
List<OrgPersonnelCertEntity> certs = orgPersonnelCertDomainService.listByPersonnelId(personnelId);
if (certs == null) {
return;
}
for (OrgPersonnelCertEntity cert : certs) {
OrgPersonnelCertCO certCO = orgPersonnelCertConvertor.entityToCO(cert);
if (CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER.getCode().equals(cert.getCertTypeCode())) {
co.setRegisteredSafetyEngineerCert(certCO);
} else if (CertTypeCodeEnum.EVALUATOR.getCode().equals(cert.getCertTypeCode())) {
co.setEvaluatorCert(certCO);
}
}
}
@Override @Override
public SingleResponse<OrgPersonnelCO> updateOriginFace(OrgPersonnelUpdateOriginFaceCmd cmd) { public SingleResponse<OrgPersonnelCO> updateOriginFace(OrgPersonnelUpdateOriginFaceCmd cmd) {
OrgPersonnelEntity existing = orgPersonnelDomainService.get(cmd.getId()); OrgPersonnelEntity existing = orgPersonnelDomainService.get(cmd.getId());

View File

@ -151,6 +151,12 @@ public class OrgPersonnelCO {
@ApiModelProperty(value = "离职申请审核状态(列表展示,非持久化)") @ApiModelProperty(value = "离职申请审核状态(列表展示,非持久化)")
private Integer resignAuditStatus; private Integer resignAuditStatus;
@ApiModelProperty(value = "注安证书信息")
private OrgPersonnelCertCO registeredSafetyEngineerCert;
@ApiModelProperty(value = "评价师证书信息")
private OrgPersonnelCertCO evaluatorCert;
@ApiModelProperty(value = "租户ID") @ApiModelProperty(value = "租户ID")
private Long tenantId; private Long tenantId;
} }

View File

@ -6,6 +6,7 @@ import java.util.List;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import lombok.Data; import lombok.Data;
import org.qinan.safetyeval.client.co.OrgPersonnelCertCO;
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO; import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
import org.qinan.safetyeval.domain.entity.TitleCodeCo; import org.qinan.safetyeval.domain.entity.TitleCodeCo;
@ -131,6 +132,12 @@ public class OrgPersonnelAddCmd {
@ApiModelProperty(value = "能力认定") @ApiModelProperty(value = "能力认定")
private List<CapabilityAssessmentDTO> capabilityAssessment; private List<CapabilityAssessmentDTO> capabilityAssessment;
@ApiModelProperty(value = "注安证书信息")
private OrgPersonnelCertAddCmd registeredSafetyEngineerCert;
@ApiModelProperty(value = "评价师证书信息")
private OrgPersonnelCertAddCmd evaluatorCert;
@ApiModelProperty(value = "是否技术负责人") @ApiModelProperty(value = "是否技术负责人")
private Boolean technicalDirectorFlag; private Boolean technicalDirectorFlag;

View File

@ -7,6 +7,7 @@ import org.qinan.safetyeval.domain.gateway.OrgPersonnelCertGateway;
import org.qinan.safetyeval.domain.query.OrgPersonnelCertQuery; import org.qinan.safetyeval.domain.query.OrgPersonnelCertQuery;
import org.qinan.safetyeval.domain.query.PageResult; import org.qinan.safetyeval.domain.query.PageResult;
import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -29,6 +30,10 @@ public class OrgPersonnelCertDomainService {
return orgPersonnelCertGateway.get(id); return orgPersonnelCertGateway.get(id);
} }
public List<OrgPersonnelCertEntity> listByPersonnelId(Long personnelId) {
return orgPersonnelCertGateway.listByPersonnelId(personnelId);
}
public OrgPersonnelCertEntity modify(OrgPersonnelCertEntity entity) { public OrgPersonnelCertEntity modify(OrgPersonnelCertEntity entity) {
OrgPersonnelCertEntity existing = orgPersonnelCertGateway.get(entity.getId()); OrgPersonnelCertEntity existing = orgPersonnelCertGateway.get(entity.getId());
if (existing == null) { if (existing == null) {

View File

@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Named; import org.mapstruct.Named;
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity; import org.qinan.safetyeval.domain.entity.OrgPersonnelEntity;
import org.qinan.safetyeval.domain.entity.TitleCodeCo; import org.qinan.safetyeval.domain.entity.TitleCodeCo;
import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO; import org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO;
@ -25,6 +26,7 @@ public interface OrgPersonnelDoConvertor {
* @return * @return
*/ */
@Mapping(target = "titleCodeArr", source = "titleCodeArr", qualifiedByName = "titleCodeListToJson") @Mapping(target = "titleCodeArr", source = "titleCodeArr", qualifiedByName = "titleCodeListToJson")
@Mapping(target = "capabilityAssessment", source = "capabilityAssessment", qualifiedByName = "capabilityAssessmentListToJson")
OrgPersonnelDO convertEeToDo(OrgPersonnelEntity orgPersonnelEntity); OrgPersonnelDO convertEeToDo(OrgPersonnelEntity orgPersonnelEntity);
/** /**
@ -54,4 +56,14 @@ public interface OrgPersonnelDoConvertor {
default String titleCodeListToJson(List<TitleCodeCo> list) { default String titleCodeListToJson(List<TitleCodeCo> list) {
return list == null || list.isEmpty() ? null : JSONUtil.toJsonStr(list); return list == null || list.isEmpty() ? null : JSONUtil.toJsonStr(list);
} }
@Named("jsonToCapabilityAssessmentList")
default List<CapabilityAssessmentDTO> jsonToCapabilityAssessmentList(String json) {
return json == null || json.isEmpty() ? null : JSONUtil.toList(json, CapabilityAssessmentDTO.class);
}
@Named("capabilityAssessmentListToJson")
default String capabilityAssessmentListToJson(List<CapabilityAssessmentDTO> list) {
return list == null || list.isEmpty() ? null : JSONUtil.toJsonStr(list);
}
} }