dev-tmp1
luotaiqian 2026-08-11 11:13:31 +08:00
parent cfcc47bc84
commit dd5014c00f
7 changed files with 58 additions and 11 deletions

View File

@ -184,8 +184,11 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
existing == null ? null : existing.getPostId(), result.getPostId())) {
syncPersonGbsRoleByPost(result);
}
// 保存证书信息先按人员ID+类型删除,再新增
savePersonnelCerts(cmd, cmd.getId());
OrgPersonnelCO co = orgPersonnelConvertor.toCO(result);
enrich(co);
fillCerts(co, cmd.getId());
return SingleResponse.success(co);
}
@ -344,18 +347,34 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
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);
addCert(personnelId, cmd.getRegisteredSafetyEngineerCert(), CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER.getCode());
addCert(personnelId, cmd.getEvaluatorCert(), CertTypeCodeEnum.EVALUATOR.getCode());
}
if (cmd.getEvaluatorCert() != null) {
OrgPersonnelCertEntity certEntity = orgPersonnelCertConvertor.addCmdToEntity(cmd.getEvaluatorCert());
certEntity.setPersonnelId(personnelId);
certEntity.setCertTypeCode(CertTypeCodeEnum.EVALUATOR.getCode());
orgPersonnelCertDomainService.add(certEntity);
/**
* ID+
*/
private void savePersonnelCerts(OrgPersonnelModifyCmd cmd, Long personnelId) {
if (orgPersonnelCertDomainService == null) {
return;
}
orgPersonnelCertDomainService.deleteByPersonnelIdAndCertType(personnelId, CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER.getCode());
orgPersonnelCertDomainService.deleteByPersonnelIdAndCertType(personnelId, CertTypeCodeEnum.EVALUATOR.getCode());
addCert(personnelId, cmd.getRegisteredSafetyEngineerCert(), CertTypeCodeEnum.REGISTERED_SAFETY_ENGINEER.getCode());
addCert(personnelId, cmd.getEvaluatorCert(), CertTypeCodeEnum.EVALUATOR.getCode());
}
/**
*
*/
private void addCert(Long personnelId, OrgPersonnelCertAddCmd certCmd, String certTypeCode) {
if (certCmd == null) {
return;
}
OrgPersonnelCertEntity certEntity = orgPersonnelCertConvertor.addCmdToEntity(certCmd);
certEntity.setPersonnelId(personnelId);
certEntity.setCertTypeCode(certTypeCode);
orgPersonnelCertDomainService.add(certEntity);
}
/**

View File

@ -73,6 +73,9 @@ public class QualFilingPersonnelInfoCO {
@ApiModelProperty(value = "能力codeList")
private List<PersonnelCertFilingPageCO> personnelCertFilingPageCOList;
@ApiModelProperty(value = "发表著作")
private String publications;
@ApiModelProperty(value = "能力认定")
private List<CapabilityAssessmentDTO> capabilityAssessment;
}

View File

@ -134,6 +134,12 @@ public class OrgPersonnelModifyCmd {
@ApiModelProperty(value = "申报专业能力证明材料地址")
private String proofMaterialUrl;
@ApiModelProperty(value = "注安证书信息")
private OrgPersonnelCertAddCmd registeredSafetyEngineerCert;
@ApiModelProperty(value = "评价师证书信息")
private OrgPersonnelCertAddCmd evaluatorCert;
@ApiModelProperty(value = "能力认定")
private List<CapabilityAssessmentDTO> capabilityAssessment;

View File

@ -27,5 +27,10 @@ public interface OrgPersonnelCertGateway {
void delete(Long id);
/**
* ID
*/
void deleteByPersonnelIdAndCertType(Long personnelId, String certTypeCode);
PageResult<OrgPersonnelCertEntity> page(OrgPersonnelCertQuery query);
}

View File

@ -55,6 +55,13 @@ public class OrgPersonnelCertDomainService {
orgPersonnelCertGateway.delete(id);
}
/**
* ID
*/
public void deleteByPersonnelIdAndCertType(Long personnelId, String certTypeCode) {
orgPersonnelCertGateway.deleteByPersonnelIdAndCertType(personnelId, certTypeCode);
}
public PageResult<OrgPersonnelCertEntity> page(OrgPersonnelCertQuery query) {
return orgPersonnelCertGateway.page(query);
}

View File

@ -95,6 +95,13 @@ public class OrgPersonnelCertGatewayImpl implements OrgPersonnelCertGateway {
orgPersonnelCertMapper.deleteById(id);
}
@Override
public void deleteByPersonnelIdAndCertType(Long personnelId, String certTypeCode) {
orgPersonnelCertMapper.delete(new LambdaQueryWrapper<OrgPersonnelCertDO>()
.eq(OrgPersonnelCertDO::getPersonnelId, personnelId)
.eq(OrgPersonnelCertDO::getCertTypeCode, certTypeCode));
}
@Override
public PageResult<OrgPersonnelCertEntity> page(OrgPersonnelCertQuery query) {
LambdaQueryWrapper<OrgPersonnelCertDO> wrapper = new LambdaQueryWrapper<>();

View File

@ -90,7 +90,7 @@
<select id="filingPage" resultMap="FilingPersonnelInfoMap">
SELECT p.id source_personnel_id, p.id, p.user_name personName, d.dept_name, po.position_name, p.post_id, p.gender_code, p.gender_name
, p.birth_date, p.register_engineer_flag, p.technical_director_flag, p.process_control_leader_flag
, p.evaluator_cert_no, p.join_work_date, p.capability_assessment, p.personnel_position_type, p.title_code_arr
, p.evaluator_cert_no, p.join_work_date, p.capability_assessment, p.personnel_position_type, p.title_code_arr, p.publications
FROM org_personnel p
left join org_department d on p.dept_id = d.id and d.delete_enum = 'false'
left join org_position po on po.id = p.post_id and po.delete_enum = 'false'