init
parent
247e384a96
commit
7fa193897b
|
|
@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目进度管理列表项
|
* 项目进度管理列表项
|
||||||
|
|
@ -43,4 +44,7 @@ public class EvalProjectProgressCO {
|
||||||
|
|
||||||
@ApiModelProperty("项目进度状态名称:正常/项目临期/项目延期")
|
@ApiModelProperty("项目进度状态名称:正常/项目临期/项目延期")
|
||||||
private String progressStatusName;
|
private String progressStatusName;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目节点")
|
||||||
|
private List<EvalProjectNodeItemCO> projectNode;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package org.qinan.safetyeval.infrastructure.handler;
|
package org.qinan.safetyeval.infrastructure.handler;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import cn.hutool.json.JSONUtil;
|
||||||
import org.apache.ibatis.type.BaseTypeHandler;
|
import org.apache.ibatis.type.BaseTypeHandler;
|
||||||
import org.apache.ibatis.type.JdbcType;
|
import org.apache.ibatis.type.JdbcType;
|
||||||
import org.apache.ibatis.type.MappedJdbcTypes;
|
import org.apache.ibatis.type.MappedJdbcTypes;
|
||||||
|
|
@ -27,7 +27,7 @@ public class JsonStringListTypeHandler extends BaseTypeHandler<List<String>> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
|
public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
|
||||||
ps.setString(i, JSON.toJSONString(parameter));
|
ps.setString(i, JSONUtil.toJsonStr(parameter));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -49,6 +49,6 @@ public class JsonStringListTypeHandler extends BaseTypeHandler<List<String>> {
|
||||||
if (json == null || json.isEmpty()) {
|
if (json == null || json.isEmpty()) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
return JSON.parseArray(json, String.class);
|
return JSONUtil.toList(json, String.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
package org.qinan.safetyeval.infrastructure.handler;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import org.apache.ibatis.type.BaseTypeHandler;
|
||||||
|
import org.apache.ibatis.type.JdbcType;
|
||||||
|
import org.apache.ibatis.type.MappedJdbcTypes;
|
||||||
|
import org.qinan.safetyeval.client.co.institution.EvalProjectNodeItemCO;
|
||||||
|
|
||||||
|
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<EvalProjectNodeItemCO>。
|
||||||
|
* <p>
|
||||||
|
* 入库: List<EvalProjectNodeItemCO> -> JSON.toJSONString -> String
|
||||||
|
* 出库: String -> JSON.parseArray -> List<EvalProjectNodeItemCO>
|
||||||
|
*
|
||||||
|
* @author safety-eval
|
||||||
|
*/
|
||||||
|
@MappedJdbcTypes(JdbcType.VARCHAR)
|
||||||
|
public class ProjectNodeListTypeHandler extends BaseTypeHandler<List<EvalProjectNodeItemCO>> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNonNullParameter(PreparedStatement ps, int i, List<EvalProjectNodeItemCO> parameter, JdbcType jdbcType) throws SQLException {
|
||||||
|
ps.setString(i, JSONUtil.toJsonStr(parameter));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EvalProjectNodeItemCO> getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||||
|
return parse(rs.getString(columnName));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EvalProjectNodeItemCO> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
|
||||||
|
return parse(rs.getString(columnIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EvalProjectNodeItemCO> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
|
||||||
|
return parse(cs.getString(columnIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<EvalProjectNodeItemCO> parse(String json) {
|
||||||
|
if (json == null || json.isEmpty()) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
return JSONUtil.toList(json, EvalProjectNodeItemCO.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,8 +3,15 @@
|
||||||
<mapper namespace="org.qinan.safetyeval.infrastructure.mapper.EvalProjectMapper">
|
<mapper namespace="org.qinan.safetyeval.infrastructure.mapper.EvalProjectMapper">
|
||||||
|
|
||||||
<!-- 项目进度管理分页查询(关联 eval_customer 获取客户名称;进度状态/剩余天数由业务代码计算) -->
|
<!-- 项目进度管理分页查询(关联 eval_customer 获取客户名称;进度状态/剩余天数由业务代码计算) -->
|
||||||
|
<resultMap id="EvalProjectProgressCOMap"
|
||||||
|
type="org.qinan.safetyeval.client.co.institution.EvalProjectProgressCO"
|
||||||
|
autoMapping="true">
|
||||||
|
<result property="projectNode" column="project_node"
|
||||||
|
typeHandler="org.qinan.safetyeval.infrastructure.handler.ProjectNodeListTypeHandler"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
<select id="selectProgressPage"
|
<select id="selectProgressPage"
|
||||||
resultType="org.qinan.safetyeval.client.co.institution.EvalProjectProgressCO">
|
resultMap="EvalProjectProgressCOMap">
|
||||||
SELECT
|
SELECT
|
||||||
p.id,
|
p.id,
|
||||||
p.project_no,
|
p.project_no,
|
||||||
|
|
@ -12,7 +19,8 @@
|
||||||
c.customer_name,
|
c.customer_name,
|
||||||
p.customer_contact_name,
|
p.customer_contact_name,
|
||||||
p.project_leader_name,
|
p.project_leader_name,
|
||||||
p.plan_end_date
|
p.plan_end_date,
|
||||||
|
p.project_node
|
||||||
FROM eval_project p
|
FROM eval_project p
|
||||||
LEFT JOIN eval_customer c
|
LEFT JOIN eval_customer c
|
||||||
ON c.id = p.customer_id
|
ON c.id = p.customer_id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue