From a27889839a0c6bfd6918f4c6b80bba1c9e35ae53 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Sat, 8 Aug 2026 15:20:00 +0800 Subject: [PATCH] upgrade --- .../client/co/QualFilingPersonnelInfoCO.java | 4 ++ .../CapabilityAssessmentListTypeHandler.java | 50 +++++++++++++++++++ .../resources/mapper/OrgPersonnelMapper.xml | 10 +++- 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/handler/CapabilityAssessmentListTypeHandler.java diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java index 288431ad..d127c772 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingPersonnelInfoCO.java @@ -2,6 +2,7 @@ package org.qinan.safetyeval.client.co; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.qinan.safetyeval.domain.entity.CapabilityAssessmentDTO; import java.time.LocalDate; import java.util.List; @@ -58,4 +59,7 @@ public class QualFilingPersonnelInfoCO { @ApiModelProperty(value = "能力codeList") private List personnelCertFilingPageCOList; + + @ApiModelProperty(value = "能力认定") + private List capabilityAssessment; } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/handler/CapabilityAssessmentListTypeHandler.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/handler/CapabilityAssessmentListTypeHandler.java new file mode 100644 index 00000000..d895b1cb --- /dev/null +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/handler/CapabilityAssessmentListTypeHandler.java @@ -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.CapabilityAssessmentDTO; + +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。 + * + * @author safety-eval + */ +@MappedJdbcTypes(JdbcType.VARCHAR) +public class CapabilityAssessmentListTypeHandler extends BaseTypeHandler> { + + @Override + public void setNonNullParameter(PreparedStatement ps, int i, List parameter, JdbcType jdbcType) throws SQLException { + ps.setString(i, JSONUtil.toJsonStr(parameter)); + } + + @Override + public List getNullableResult(ResultSet rs, String columnName) throws SQLException { + return parse(rs.getString(columnName)); + } + + @Override + public List getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + return parse(rs.getString(columnIndex)); + } + + @Override + public List getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + return parse(cs.getString(columnIndex)); + } + + private List parse(String json) { + if (json == null || json.isEmpty()) { + return Collections.emptyList(); + } + return JSONUtil.toList(json, CapabilityAssessmentDTO.class); + } +} diff --git a/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelMapper.xml index f3132a48..74c4c967 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/OrgPersonnelMapper.xml @@ -68,11 +68,17 @@ + + + + + - 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.evaluator_cert_no, p.join_work_date, p.capability_assessment 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'