dev
luotaiqian 2026-08-05 10:41:52 +08:00
parent b79790de7d
commit 8318de725b
7 changed files with 135 additions and 13 deletions

View File

@ -27,7 +27,7 @@ import java.util.List;
* @author safety-eval
*/
@Mapper(componentModel = "spring")
public interface QualFilingCmdConvertor {
public interface QualFilingAddCmdConvertor {
/**
* CmdCO

View File

@ -26,6 +26,9 @@ import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeCountDO;
import org.qinan.safetyeval.infrastructure.mapper.QualFilingChangeMapper;
import org.qinan.safetyeval.infrastructure.mapper.QualFilingPersonnelCertMapper;
import org.qinan.safetyeval.infrastructure.persistence.mapper.QualFilingPersonnelChangeMapper;
import org.qinan.safetyeval.infrastructure.utils.CommonUtil;
import org.qinan.safetyeval.infrastructure.utils.ComplianceCheckUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -33,6 +36,7 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.*;
@ -50,6 +54,10 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
@Resource
private QualFilingChangeMapper qualFilingChangeMapper;
@Resource
private QualFilingPersonnelChangeMapper qualFilingPersonnelChangeMapper;
@Resource
private QualFilingPersonnelCertMapper qualFilingPersonnelCertMapper;
@Lazy
@Autowired(required = false)
@ -438,9 +446,10 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
}
// 人员清单
List<QualFilingPersonnelChangeE> personnelChangeEs = qualFilingPersonnelChangeGateway.listByFilingId(changeFilingId);
if (!CollectionUtils.isEmpty(personnelChangeEs)) {
detail.setPersonnelList(qualFilingPersonnelChangeCmdConvertor.convertChangeEListToCOList(personnelChangeEs));
List<QualFilingPersonnelChangeInfoCO> personnelList = qualFilingPersonnelChangeMapper.getFillingChangePersonInfo(changeFilingId);
if (!CollectionUtils.isEmpty(personnelList)) {
setProfessionalCapabilityCodeList(personnelList);
detail.setPersonnelList(personnelList);
}
// 人员证书清单
@ -452,6 +461,39 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
return SingleResponse.success(detail);
}
/**
* codeList
*
* @param personnelList personnelList
*/
private void setProfessionalCapabilityCodeList(List<QualFilingPersonnelChangeInfoCO> personnelList) {
if (CollectionUtils.isEmpty(personnelList)) {
return;
}
List<Long> personnelIdList = personnelList.stream()
.map(QualFilingPersonnelChangeInfoCO::getSourcePersonnelId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(personnelIdList)) {
return;
}
List<PersonnelProfessionalCapabilityCO> capabilityList =
qualFilingPersonnelCertMapper.getProfessionalCapabilityCodeList(personnelIdList);
Map<Long, List<String>> capabilityMap = capabilityList.stream()
.filter(item -> StringUtils.hasText(item.getProfessionalCapabilityCodeList()))
.collect(Collectors.toMap(
PersonnelProfessionalCapabilityCO::getPersonnelId,
item -> Arrays.asList(item.getProfessionalCapabilityCodeList()
.split(CommonUtil.COMMA)),
(a, b) -> a));
for (QualFilingPersonnelChangeInfoCO personnel : personnelList) {
List<String> codes = capabilityMap.get(personnel.getSourcePersonnelId());
if (codes != null) {
personnel.setProfessionalCapabilityCodeList(codes);
}
}
}
/**
* CmdCmd
*/

View File

@ -75,7 +75,7 @@ public class QualFilingExecutor implements QualFilingApi {
@Resource
private QualFilingComplianceCmdConvertor qualFilingComplianceCmdConvertor;
@Resource
private QualFilingCmdConvertor qualFilingCmdConvertor;
private QualFilingAddCmdConvertor qualFilingAddCmdConvertor;
@Override
public SingleResponse<QualFilingCO> add(QualFilingAddCmd cmd) {
@ -192,21 +192,21 @@ public class QualFilingExecutor implements QualFilingApi {
}
}
QualFilingCO co = qualFilingCmdConvertor.convertFilingCmdToCO(cmd.getQualFilingAddCmd());
QualFilingCO co = qualFilingAddCmdConvertor.convertFilingCmdToCO(cmd.getQualFilingAddCmd());
// 拷贝基本信息
QualFilingEntity entity = qualFilingCmdConvertor.convertFilingCmdToEntity(cmd.getQualFilingAddCmd());
QualFilingEntity entity = qualFilingAddCmdConvertor.convertFilingCmdToEntity(cmd.getQualFilingAddCmd());
//备案承诺书
QualFilingCommitmentEntity commitmentEntity = qualFilingCmdConvertor.convertCommitmentCmdToEntity(cmd.getQualFilingCommitmentAddCmd());
QualFilingCommitmentEntity commitmentEntity = qualFilingAddCmdConvertor.convertCommitmentCmdToEntity(cmd.getQualFilingCommitmentAddCmd());
//备案装备
List<QualFilingEquipmentEntity> equipmentEntities = qualFilingCmdConvertor.convertEquipmentCmdListToEntityList(cmd.getQualFilingEquipmentAddCmds());
List<QualFilingEquipmentEntity> equipmentEntities = qualFilingAddCmdConvertor.convertEquipmentCmdListToEntityList(cmd.getQualFilingEquipmentAddCmds());
//备案材料清单
List<QualFilingMaterialEntity> materialEntities = qualFilingCmdConvertor.convertMaterialCmdListToEntityList(cmd.getQualFilingMaterialAddCmds());
List<QualFilingMaterialEntity> materialEntities = qualFilingAddCmdConvertor.convertMaterialCmdListToEntityList(cmd.getQualFilingMaterialAddCmds());
//备案人员
List<QualFilingPersonnelEntity> personnelEntities = qualFilingCmdConvertor.convertPersonnelCmdListToEntityList(cmd.getQualFilingPersonnelAddCmds());
List<QualFilingPersonnelEntity> personnelEntities = qualFilingAddCmdConvertor.convertPersonnelCmdListToEntityList(cmd.getQualFilingPersonnelAddCmds());
//备案人员证书列表
List<QualFilingPersonnelCertEntity> personnelCertEntities = CollectionUtils.isEmpty(cmd.getQualFilingPersonnelCertAddCmds())
? Collections.emptyList()
: qualFilingCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds());
: qualFilingAddCmdConvertor.convertPersonnelCertCmdListToEntityList(cmd.getQualFilingPersonnelCertAddCmds());
Long id = qualFilingDomainService.aggregationSaveOrEdit(entity, commitmentEntity, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities);
co.setId(id);
if (cmd.getQualFilingAddCmd().getFilingStatusCode() != null

View File

@ -25,7 +25,7 @@ public class QualFilingChangeAggregationCO extends QualFilingChangeCO {
private List<QualFilingMaterialCO> materials;
@ApiModelProperty(value = "变更人员列表")
private List<QualFilingPersonnelCO> personnelList;
private List<QualFilingPersonnelChangeInfoCO> personnelList;
@ApiModelProperty(value = "变更人员证书列表")
private List<QualFilingPersonnelCertCO> personnelCertList;

View File

@ -0,0 +1,55 @@
package org.qinan.safetyeval.client.co;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.util.List;
/**
* COClient Object
*
* @author safety-eval
*/
@Data
public class QualFilingPersonnelChangeInfoCO {
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "备案变更ID")
private Long filingChangeId;
@ApiModelProperty(value = "原始人员ID")
private Long sourcePersonnelId;
@ApiModelProperty(value = "人员姓名")
private String personName;
@ApiModelProperty(value = "部门名称")
private String deptName;
@ApiModelProperty(value = "职位名称")
private String positionName;
@ApiModelProperty(value = "性别编码(1男2女)")
private Integer genderCode;
@ApiModelProperty(value = "性别名称")
private String genderName;
@ApiModelProperty(value = "出生日期")
private LocalDate birthDate;
@ApiModelProperty(value = "是否注册安全工程师(1是2否)")
private Integer registerEngineerFlag;
@ApiModelProperty(value = "评价师证书编号")
private String evaluatorCertNo;
@ApiModelProperty(value = "参加工作日期")
private LocalDate joinWorkDate;
@ApiModelProperty(value = "能力codeList")
private List<String> professionalCapabilityCodeList;
}

View File

@ -2,8 +2,12 @@ package org.qinan.safetyeval.infrastructure.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.qinan.safetyeval.client.co.QualFilingPersonnelChangeInfoCO;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualFilingPersonnelChangeDO;
import java.util.List;
/**
* -Mapper
*
@ -12,4 +16,12 @@ import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualFilingPe
*/
@Mapper
public interface QualFilingPersonnelChangeMapper extends BaseMapper<QualFilingPersonnelChangeDO> {
/**
* ID
*
* @param filingChangeId ID
* @return
*/
List<QualFilingPersonnelChangeInfoCO> getFillingChangePersonInfo(@Param("filingChangeId") Long filingChangeId);
}

View File

@ -86,4 +86,17 @@
from qual_filing_personnel_change
</sql>
<select id="getFillingChangePersonInfo"
resultType="org.qinan.safetyeval.client.co.QualFilingPersonnelChangeInfoCO">
SELECT fp.source_personnel_id, fp.id, p.user_name personName, po.position_name, p.post_id, p.gender_code, p.gender_name
, p.birth_date, p.register_engineer_flag, p.evaluator_cert_no, fp.filing_change_id, p.join_work_date, d.dept_name
FROM org_personnel p
join qual_filing_personnel_change fp on p.id = fp.source_personnel_id
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'
WHERE fp.filing_change_id = #{filingChangeId}
and fp.delete_enum = 'false'
and p.delete_enum = 'false'
</select>
</mapper>