upgrade
parent
a27889839a
commit
c9da45a05a
|
|
@ -243,6 +243,8 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
})
|
||||
.collect(java.util.stream.Collectors.toList());
|
||||
|
||||
fillCertsBatch(records);
|
||||
|
||||
return PageResponse.of(records, pageResult.getTotal());
|
||||
}
|
||||
|
||||
|
|
@ -375,6 +377,42 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量查询证书并填充到CO列表中,一次查询后按人员分组分别设置注安证书和评价师证书
|
||||
*/
|
||||
private void fillCertsBatch(List<OrgPersonnelCO> records) {
|
||||
if (orgPersonnelCertDomainService == null || CollectionUtils.isEmpty(records)) {
|
||||
return;
|
||||
}
|
||||
List<Long> personnelIds = records.stream()
|
||||
.map(OrgPersonnelCO::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(personnelIds)) {
|
||||
return;
|
||||
}
|
||||
List<OrgPersonnelCertEntity> certs = orgPersonnelCertDomainService.listByPersonnelIds(personnelIds);
|
||||
if (CollectionUtils.isEmpty(certs)) {
|
||||
return;
|
||||
}
|
||||
Map<Long, List<OrgPersonnelCertEntity>> certMap = certs.stream()
|
||||
.collect(Collectors.groupingBy(OrgPersonnelCertEntity::getPersonnelId));
|
||||
for (OrgPersonnelCO co : records) {
|
||||
List<OrgPersonnelCertEntity> personCerts = certMap.get(co.getId());
|
||||
if (CollectionUtils.isEmpty(personCerts)) {
|
||||
continue;
|
||||
}
|
||||
for (OrgPersonnelCertEntity cert : personCerts) {
|
||||
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
|
||||
public SingleResponse<OrgPersonnelCO> updateOriginFace(OrgPersonnelUpdateOriginFaceCmd cmd) {
|
||||
OrgPersonnelEntity existing = orgPersonnelDomainService.get(cmd.getId());
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.qinan.safetyeval.client.co;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
|
||||
import org.qinan.safetyeval.domain.entity.TitleCodeCo;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
|
@ -33,6 +34,9 @@ public class QualFilingPersonnelInfoCO {
|
|||
@ApiModelProperty(value = "职位名称")
|
||||
private String positionName;
|
||||
|
||||
@ApiModelProperty(value = "职称(多个逗号分隔)")
|
||||
private List<TitleCodeCo> titleCodeArr;
|
||||
|
||||
@ApiModelProperty(value = "性别编码(1男2女)")
|
||||
private Integer genderCode;
|
||||
|
||||
|
|
@ -51,6 +55,9 @@ public class QualFilingPersonnelInfoCO {
|
|||
@ApiModelProperty(value = "是否过程控制负责人(0否1是)")
|
||||
private Integer processControlLeaderFlag;
|
||||
|
||||
@ApiModelProperty(value = "人员岗位类型(TECHNICAL_LEADER=>技术负责人; PROCESS_CONTROL_LEADER=>过程控制负责人)")
|
||||
private String personnelPositionType;
|
||||
|
||||
@ApiModelProperty(value = "评价师证书编号")
|
||||
private String evaluatorCertNo;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import lombok.Getter;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 职称能力
|
||||
* 职称专业,能力
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
|
|
@ -33,7 +33,7 @@ public enum TitleCapabilityEnum {
|
|||
private final String label;
|
||||
private final String capability;
|
||||
|
||||
public static final String REMARKS = "职称能力: P01=>安全工程(安全);" +
|
||||
public static final String REMARKS = "职称专业能力: P01=>安全工程(安全);" +
|
||||
"P02=>机械工程(机械、化工机械);" +
|
||||
"P03=>化工机械(化工机械);" +
|
||||
"P04=>化学工程(化工工艺);" +
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.qinan.safetyeval.domain.gateway;
|
|||
import org.qinan.safetyeval.domain.entity.OrgPersonnelCertEntity;
|
||||
import org.qinan.safetyeval.domain.query.OrgPersonnelCertQuery;
|
||||
import org.qinan.safetyeval.domain.query.PageResult;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -18,6 +19,8 @@ public interface OrgPersonnelCertGateway {
|
|||
|
||||
List<OrgPersonnelCertEntity> listByPersonnelId(Long personnelId);
|
||||
|
||||
List<OrgPersonnelCertEntity> listByPersonnelIds(Collection<Long> personnelIds);
|
||||
|
||||
List<OrgPersonnelCertEntity> listByOrgId(Long orgId);
|
||||
|
||||
OrgPersonnelCertEntity modify(OrgPersonnelCertEntity entity);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.qinan.safetyeval.domain.gateway.OrgPersonnelCertGateway;
|
|||
import org.qinan.safetyeval.domain.query.OrgPersonnelCertQuery;
|
||||
import org.qinan.safetyeval.domain.query.PageResult;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -34,6 +35,10 @@ public class OrgPersonnelCertDomainService {
|
|||
return orgPersonnelCertGateway.listByPersonnelId(personnelId);
|
||||
}
|
||||
|
||||
public List<OrgPersonnelCertEntity> listByPersonnelIds(Collection<Long> personnelIds) {
|
||||
return orgPersonnelCertGateway.listByPersonnelIds(personnelIds);
|
||||
}
|
||||
|
||||
public OrgPersonnelCertEntity modify(OrgPersonnelCertEntity entity) {
|
||||
OrgPersonnelCertEntity existing = orgPersonnelCertGateway.get(entity.getId());
|
||||
if (existing == null) {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import org.springframework.stereotype.Component;
|
|||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -59,6 +60,18 @@ public class OrgPersonnelCertGatewayImpl implements OrgPersonnelCertGateway {
|
|||
return dataObjects.stream().map(orgPersonnelCertConvertor::doToEntity).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrgPersonnelCertEntity> listByPersonnelIds(Collection<Long> personnelIds) {
|
||||
if (personnelIds == null || personnelIds.isEmpty()) {
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
LambdaQueryWrapper<OrgPersonnelCertDO> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(OrgPersonnelCertDO::getPersonnelId, personnelIds);
|
||||
wrapper.eq(OrgPersonnelCertDO::getDeleteEnum, "false");
|
||||
List<OrgPersonnelCertDO> dataObjects = orgPersonnelCertMapper.selectList(wrapper);
|
||||
return dataObjects.stream().map(orgPersonnelCertConvertor::doToEntity).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrgPersonnelCertEntity> listByOrgId(Long orgId) {
|
||||
LambdaQueryWrapper<OrgPersonnelCertDO> wrapper = new LambdaQueryWrapper<>();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
package org.qinan.safetyeval.infrastructure.handler;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
import org.apache.ibatis.type.MappedJdbcTypes;
|
||||
import org.qinan.safetyeval.domain.entity.TitleCodeCo;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* MyBatis TypeHandler: 在数据库的 varchar/text 列中以 JSON 数组字符串形式存储 List<TitleCodeCo>。
|
||||
*
|
||||
* @author safety-eval
|
||||
*/
|
||||
@MappedJdbcTypes(JdbcType.VARCHAR)
|
||||
public class TitleCodeListTypeHandler extends BaseTypeHandler<List<TitleCodeCo>> {
|
||||
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i, List<TitleCodeCo> parameter, JdbcType jdbcType) throws SQLException {
|
||||
ps.setString(i, JSONUtil.toJsonStr(parameter));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TitleCodeCo> getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||
return parse(rs.getString(columnName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TitleCodeCo> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
|
||||
return parse(rs.getString(columnIndex));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TitleCodeCo> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
|
||||
return parse(cs.getString(columnIndex));
|
||||
}
|
||||
|
||||
private List<TitleCodeCo> parse(String json) {
|
||||
if (json == null || json.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return JSONUtil.toList(json, TitleCodeCo.class);
|
||||
}
|
||||
}
|
||||
|
|
@ -72,13 +72,15 @@
|
|||
<resultMap id="FilingPersonnelInfoMap" type="org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO">
|
||||
<result column="capability_assessment" property="capabilityAssessment"
|
||||
typeHandler="org.qinan.safetyeval.infrastructure.handler.CapabilityAssessmentListTypeHandler"/>
|
||||
<result column="title_code_arr" property="titleCodeArr"
|
||||
typeHandler="org.qinan.safetyeval.infrastructure.handler.TitleCodeListTypeHandler"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 资质备案人员分页查询,直接返回 CO -->
|
||||
<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.evaluator_cert_no, p.join_work_date, p.capability_assessment, p.personnel_position_type, p.title_code_arr
|
||||
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'
|
||||
|
|
|
|||
Loading…
Reference in New Issue