mybatis 查询无结果,SQL查询有结果
噗哩噼啦 2018-04-24 11:26:43 pojo类有set/get方法
public class GzltjCount implements Serializable {
private static final long serialVersionUID = 1L;
private String CId;
private String CName;
private String CDeptId;
private String CDeptName;
private String CCountCun;
private String CCountQu;
/**
* 创建扫描任务的扫描任务
*/
private String CCountCreateScan;
private String CCountDoScan;
private String CCountDoHeyan;
private String CCountUpCl;
/**
* 平均取件天数
*/
private String CAvgQuDay;
/**
* 文件滞留天数
*/
private String CRetentionFileDay;
}
xml
<resultMap id="BaseResultMap" type="com.thunisoft.ssclsz.platform.pojo.GzltjCount">
<!-- WARNING - @mbggenerated This element is automatically generated by
MyBatis Generator, do not modify. -->
<id column="cid" jdbcType="VARCHAR" property="CId" />
<result column="deptName" jdbcType="VARCHAR" property="CDeptName" />
<result column="deptId" jdbcType="VARCHAR" property="CDeptId" />
<result column="countCun" jdbcType="VARCHAR" property="CCountCun" />
<result column="countQu" jdbcType="VARCHAR" property="CCountQu" />
<result column="countCreateScan" jdbcType="VARCHAR" property="CCountCreateScan" />
<result column="countDoScan" jdbcType="VARCHAR" property="CCountDoScan" />
<result column="countDoHy" jdbcType="VARCHAR" property="CCountDoHeyan" />
<result column="countUpCl" jdbcType="VARCHAR" property="CCountUpCl" />
<result column="countAvg" jdbcType="VARCHAR" property="CAvgQuDay" />
<result column="countRetention" jdbcType="VARCHAR" property="CRetentionFileDay" />
</resultMap>
<select id="selectZlForDept" resultMap="BaseResultMap" parameterType="java.util.Map">
SELECT
foo.c_id AS "cid",
SUM (FIRST) AS "countCun",
SUM (SECOND) AS "countQu",
SUM (third) AS "countAvg",
SUM (forth) AS "countRetention"
FROM
(
SELECT
t_court_user.c_id,
COUNT (1) AS "first",
0 AS "second",
0 AS "third",
0 AS "forth"
FROM
t_szxx_history
LEFT JOIN t_court_user ON c_input_user_id = t_court_user.c_id
WHERE
c_input_user_id IS NOT NULL
AND c_input_user_id != ''
AND d_cfsj BETWEEN '2017-04-20'
AND '2019-04-20'
AND c_js_dept_id = '157286457'
GROUP BY
t_court_user.c_id
UNION ALL
SELECT
t_court_user.c_id,
0,
COUNT (1),
0,
0
FROM
t_szxx_history
LEFT JOIN t_court_user ON c_output_user_id = t_court_user.c_id
WHERE
c_output_user_id IS NOT NULL
AND c_output_user_id != ''
AND d_cfsj BETWEEN '2017-04-20'
AND '2019-04-20'
AND c_js_dept_id = '157286457'
GROUP BY
t_court_user.c_id
UNION ALL
SELECT
t_court_user.c_id,
0,
0,
SUM (
date_part(
'day',
t_szxx_history.d_cfsj :: TIMESTAMP - t_szxx_history.d_update :: TIMESTAMP
) + 1
) / COUNT (1),
MAX (
date_part(
'day',
t_szxx_history.d_cfsj :: TIMESTAMP - t_szxx_history.d_update :: TIMESTAMP
) + 1
)
FROM
t_szxx_history
LEFT JOIN t_court_user ON c_input_user_id = t_court_user.c_id
WHERE
t_szxx_history.d_cfsj BETWEEN '2017-04-20'
AND '2019-04-20'
AND c_js_dept_id = '157286457'
AND t_szxx_history.n_zt = 4
AND t_szxx_history.c_input_user_id IS NOT NULL
AND t_szxx_history.c_input_user_id != ''
GROUP BY
t_court_user.c_id
) AS foo
GROUP BY c_id
</select>
实现层
public List<GzltjCount> selectZlForDept(Timestamp alarmStartTime,
Timestamp alarmEndTime, String column, String sort) {
Map<String, Object> selectInfo = new HashMap<String, Object>();
selectInfo.put("alarmStartTime", alarmStartTime);
selectInfo.put("alarmEndTime", alarmEndTime);
selectInfo.put("column", column);
selectInfo.put("sort", sort);
List<GzltjCount> list = szxxCountMapper.selectZlForDept(selectInfo);
return list;
}