feat(mms-mapping): 添加ICD校验结果保存功能支持文件上传
- 在CsIcdPathController中添加POST接口支持multipart表单上传ICD文件 - 实现saveIcdCheckResultWithFile方法处理文件上传和校验结果保存 - 添加fillIcdFile方法处理ICD文件内容填充到参数对象 - 在CsIcdPathPO中将Icd_Content字段重命名为Icd并使用JsonNodeTypeHandler处理JSON转换 - 更新resultMap配置使用新的字段映射关系 - 修改ICD一致性校验服务的日志记录和校验逻辑 - 移除自动修正映射差异的功能,只保留一致性检查 - 优化测试用例验证ICD校验结果保存和文件上传功能
This commit is contained in:
@@ -3,8 +3,28 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.njcn.gather.device.types.mapper.CsDevTypeMapper">
|
||||
|
||||
<resultMap id="DeviceTypeVOResultMap"
|
||||
type="com.njcn.gather.device.types.pojo.vo.DeviceTypeVO">
|
||||
<id column="id" property="id"/>
|
||||
<result column="name" property="name"/>
|
||||
<result column="icdId" property="icdId"/>
|
||||
<result column="icdName" property="icdName"/>
|
||||
<result column="icdPath" property="icdPath"/>
|
||||
<result column="icdResult" property="icdResult"/>
|
||||
<result column="icdMsg" property="icdMsg"
|
||||
typeHandler="com.njcn.gather.device.types.typehandler.JsonNodeTypeHandler"/>
|
||||
<result column="power" property="power"/>
|
||||
<result column="devVolt" property="devVolt"/>
|
||||
<result column="devCurr" property="devCurr"/>
|
||||
<result column="devChns" property="devChns"/>
|
||||
<result column="waveCmd" property="waveCmd"/>
|
||||
<result column="reportName" property="reportName"/>
|
||||
<result column="canCheckIcd" property="canCheckIcd"/>
|
||||
<result column="canCheckPqdif" property="canCheckPqdif"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectDeviceTypeCheckList"
|
||||
resultType="com.njcn.gather.device.types.pojo.vo.DeviceTypeVO">
|
||||
resultMap="DeviceTypeVOResultMap">
|
||||
SELECT
|
||||
d.id AS id,
|
||||
d.name AS name,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.gather.device.types.pojo.vo;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -29,8 +30,8 @@ public class DeviceTypeVO {
|
||||
@ApiModelProperty("ICD校验结论,0-否,1-是")
|
||||
private Integer icdResult;
|
||||
|
||||
@ApiModelProperty("ICD校验结论描述")
|
||||
private String icdMsg;
|
||||
@ApiModelProperty("ICD校验结论详情JSON")
|
||||
private JsonNode icdMsg;
|
||||
|
||||
@ApiModelProperty("功率字典code,不带单位,单位由前端展示")
|
||||
private String power;
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.njcn.gather.device.types.typehandler;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.ibatis.type.BaseTypeHandler;
|
||||
import org.apache.ibatis.type.JdbcType;
|
||||
|
||||
import java.sql.CallableStatement;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* 将 ICD 校验详情 JSON 映射为结构化对象。
|
||||
*/
|
||||
public class JsonNodeTypeHandler extends BaseTypeHandler<JsonNode> {
|
||||
|
||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i, JsonNode parameter, JdbcType jdbcType)
|
||||
throws SQLException {
|
||||
ps.setString(i, parameter.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonNode getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||
return parse(rs.getString(columnName));
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonNode getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
|
||||
return parse(rs.getString(columnIndex));
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonNode getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
|
||||
return parse(cs.getString(columnIndex));
|
||||
}
|
||||
|
||||
private JsonNode parse(String value) throws SQLException {
|
||||
if (value == null || value.trim().isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return OBJECT_MAPPER.readTree(value);
|
||||
} catch (Exception ex) {
|
||||
throw new SQLException("解析JSON字段失败", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user