upgrade
parent
a27889839a
commit
c9da45a05a
|
|
@ -243,6 +243,8 @@ public class OrgPersonnelExecutor implements OrgPersonnelApi {
|
||||||
})
|
})
|
||||||
.collect(java.util.stream.Collectors.toList());
|
.collect(java.util.stream.Collectors.toList());
|
||||||
|
|
||||||
|
fillCertsBatch(records);
|
||||||
|
|
||||||
return PageResponse.of(records, pageResult.getTotal());
|
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
|
@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());
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.qinan.safetyeval.client.co;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
|
import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO;
|
||||||
|
import org.qinan.safetyeval.domain.entity.TitleCodeCo;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -33,6 +34,9 @@ public class QualFilingPersonnelInfoCO {
|
||||||
@ApiModelProperty(value = "职位名称")
|
@ApiModelProperty(value = "职位名称")
|
||||||
private String positionName;
|
private String positionName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "职称(多个逗号分隔)")
|
||||||
|
private List<TitleCodeCo> titleCodeArr;
|
||||||
|
|
||||||
@ApiModelProperty(value = "性别编码(1男2女)")
|
@ApiModelProperty(value = "性别编码(1男2女)")
|
||||||
private Integer genderCode;
|
private Integer genderCode;
|
||||||
|
|
||||||
|
|
@ -51,6 +55,9 @@ public class QualFilingPersonnelInfoCO {
|
||||||
@ApiModelProperty(value = "是否过程控制负责人(0否1是)")
|
@ApiModelProperty(value = "是否过程控制负责人(0否1是)")
|
||||||
private Integer processControlLeaderFlag;
|
private Integer processControlLeaderFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "人员岗位类型(TECHNICAL_LEADER=>技术负责人; PROCESS_CONTROL_LEADER=>过程控制负责人)")
|
||||||
|
private String personnelPositionType;
|
||||||
|
|
||||||
@ApiModelProperty(value = "评价师证书编号")
|
@ApiModelProperty(value = "评价师证书编号")
|
||||||
private String evaluatorCertNo;
|
private String evaluatorCertNo;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 职称能力
|
* 职称专业,能力
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|
@ -33,7 +33,7 @@ public enum TitleCapabilityEnum {
|
||||||
private final String label;
|
private final String label;
|
||||||
private final String capability;
|
private final String capability;
|
||||||
|
|
||||||
public static final String REMARKS = "职称能力: P01=>安全工程(安全);" +
|
public static final String REMARKS = "职称专业能力: P01=>安全工程(安全);" +
|
||||||
"P02=>机械工程(机械、化工机械);" +
|
"P02=>机械工程(机械、化工机械);" +
|
||||||
"P03=>化工机械(化工机械);" +
|
"P03=>化工机械(化工机械);" +
|
||||||
"P04=>化学工程(化工工艺);" +
|
"P04=>化学工程(化工工艺);" +
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.qinan.safetyeval.domain.gateway;
|
||||||
import org.qinan.safetyeval.domain.entity.OrgPersonnelCertEntity;
|
import org.qinan.safetyeval.domain.entity.OrgPersonnelCertEntity;
|
||||||
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.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -18,6 +19,8 @@ public interface OrgPersonnelCertGateway {
|
||||||
|
|
||||||
List<OrgPersonnelCertEntity> listByPersonnelId(Long personnelId);
|
List<OrgPersonnelCertEntity> listByPersonnelId(Long personnelId);
|
||||||
|
|
||||||
|
List<OrgPersonnelCertEntity> listByPersonnelIds(Collection<Long> personnelIds);
|
||||||
|
|
||||||
List<OrgPersonnelCertEntity> listByOrgId(Long orgId);
|
List<OrgPersonnelCertEntity> listByOrgId(Long orgId);
|
||||||
|
|
||||||
OrgPersonnelCertEntity modify(OrgPersonnelCertEntity entity);
|
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.OrgPersonnelCertQuery;
|
||||||
import org.qinan.safetyeval.domain.query.PageResult;
|
import org.qinan.safetyeval.domain.query.PageResult;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -34,6 +35,10 @@ public class OrgPersonnelCertDomainService {
|
||||||
return orgPersonnelCertGateway.listByPersonnelId(personnelId);
|
return orgPersonnelCertGateway.listByPersonnelId(personnelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<OrgPersonnelCertEntity> listByPersonnelIds(Collection<Long> personnelIds) {
|
||||||
|
return orgPersonnelCertGateway.listByPersonnelIds(personnelIds);
|
||||||
|
}
|
||||||
|
|
||||||
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) {
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -59,6 +60,18 @@ public class OrgPersonnelCertGatewayImpl implements OrgPersonnelCertGateway {
|
||||||
return dataObjects.stream().map(orgPersonnelCertConvertor::doToEntity).collect(Collectors.toList());
|
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
|
@Override
|
||||||
public List<OrgPersonnelCertEntity> listByOrgId(Long orgId) {
|
public List<OrgPersonnelCertEntity> listByOrgId(Long orgId) {
|
||||||
LambdaQueryWrapper<OrgPersonnelCertDO> wrapper = new LambdaQueryWrapper<>();
|
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">
|
<resultMap id="FilingPersonnelInfoMap" type="org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO">
|
||||||
<result column="capability_assessment" property="capabilityAssessment"
|
<result column="capability_assessment" property="capabilityAssessment"
|
||||||
typeHandler="org.qinan.safetyeval.infrastructure.handler.CapabilityAssessmentListTypeHandler"/>
|
typeHandler="org.qinan.safetyeval.infrastructure.handler.CapabilityAssessmentListTypeHandler"/>
|
||||||
|
<result column="title_code_arr" property="titleCodeArr"
|
||||||
|
typeHandler="org.qinan.safetyeval.infrastructure.handler.TitleCodeListTypeHandler"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<!-- 资质备案人员分页查询,直接返回 CO -->
|
<!-- 资质备案人员分页查询,直接返回 CO -->
|
||||||
<select id="filingPage" resultMap="FilingPersonnelInfoMap">
|
<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
|
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.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
|
FROM org_personnel p
|
||||||
left join org_department d on p.dept_id = d.id and d.delete_enum = 'false'
|
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'
|
left join org_position po on po.id = p.post_id and po.delete_enum = 'false'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue