优化查询语句

main
gaoshuguang 2 years ago
parent 0439b48c3e
commit c9901ce8c3

@ -1,5 +1,6 @@
package com.nmgs.workorder.mapper; package com.nmgs.workorder.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.workorder.entity.WorkInfo; import com.nmgs.workorder.entity.WorkInfo;
@ -16,6 +17,6 @@ import java.util.Map;
@Mapper @Mapper
public interface WorkInfoMapper extends BaseMapper<WorkInfo> { public interface WorkInfoMapper extends BaseMapper<WorkInfo> {
Page<WorkInfo> myPageWorkInfo2(Page<?> page,@Param("ew") QueryWrapper<WorkInfo> queryWarper);
Page<WorkInfo> myPageWorkInfo(Page<?> page, @Param("params") Map<String, Object> params);
} }

@ -5,55 +5,10 @@
<mapper namespace="com.nmgs.workorder.mapper.WorkInfoMapper"> <mapper namespace="com.nmgs.workorder.mapper.WorkInfoMapper">
<select id="myPageWorkInfo" resultType="com.nmgs.workorder.entity.WorkInfo"> <select id="myPageWorkInfo2" resultType="com.nmgs.workorder.entity.WorkInfo">
SELECT u.*, o.feedbackCount FROM GD_WORKINFO u LEFT JOIN (SELECT WORKORDERNO, COUNT(*) as feedbackCount FROM SELECT u.*, o.feedbackCount FROM GD_WORKINFO u LEFT JOIN (SELECT WORKORDERNO, COUNT(*) as feedbackCount FROM
GD_WORKFEEDBACK GROUP BY WORKORDERNO) o ON u.WORKORDERNO = o.WORKORDERNO GD_WORKFEEDBACK GROUP BY WORKORDERNO) o ON u.WORKORDERNO = o.WORKORDERNO
${ew.customSqlSegment}
<where>
<if test="params.DBTYPE == 1 and params.stdt != null and params.stdt != ''">
AND DT &gt;= dateadd(day,0,#{params.stdt})
</if>
<if test="params.DBTYPE == 1 and params.enddt != null and params.enddt != ''">
AND DT &lt;= dateadd(day,0,#{params.enddt})
</if>
<if test="params.DBTYPE == 2 and params.stdt != null and params.stdt != ''">
AND DT &gt;= TO_DATE(#{params.stdt}, 'SYYYY-MM-DD')
</if>
<if test="params.DBTYPE == 2 and params.enddt != null and params.enddt != ''">
AND DT &lt;= TO_DATE(#{params.enddt}, 'SYYYY-MM-DD')
</if>
<if test="params.DBTYPE == 3 and params.stdt != null and params.stdt != ''">
AND DT &gt;= TO_DATE(#{params.stdt}, 'SYYYY-MM-DD')
</if>
<if test="params.DBTYPE == 3 and params.enddt != null and params.enddt != ''">
AND DT &lt;= TO_DATE(#{params.enddt}, 'SYYYY-MM-DD')
</if>
<if test="params.DBTYPE == 4 and params.stdt != null and params.stdt != ''">
AND DT &gt;= DATE_FORMAT(#{params.stdt}, '%Y-%m-%d')
</if>
<if test="params.DBTYPE == 4 and params.enddt != null and params.enddt != ''">
AND DT &lt;= DATE_FORMAT(#{params.enddt}, '%Y-%m-%d')
</if>
<if test="params.workorderno !=null and params.workorderno != ''">
AND u.WORKORDERNO LIKE '%#{params.workorderno}%'
</if>
<if test="params.title !=null and params.title != ''">
AND u.TITLE LIKE '%#{params.title}%'
</if>
<if test="params.remarks !=null and params.remarks != ''">
AND u.REMARKS LIKE '%#{params.remarks}%'
</if>
<if test="params.stanos !=null and params.stanos != ''">
AND u.STANOS LIKE '%#{params.stanos}%'
</if>
</where>
order by DT desc order by DT desc
</select> </select>
</mapper> </mapper>

@ -75,39 +75,39 @@ public class WorkOrderServiceImpl implements WorkOrderService {
log.info("[uuid:{}]-开始查询查询工单信息,参数为{}", uuid, map); log.info("[uuid:{}]-开始查询查询工单信息,参数为{}", uuid, map);
int pageNum = (int) map.get("pageNum"); int pageNum = (int) map.get("pageNum");
int pageSize = (int) map.get("pageSize"); int pageSize = (int) map.get("pageSize");
Map<String, Object> params = new HashMap<>();
Page<WorkInfo> workInfoPage = new Page<>(pageNum, pageSize); Page<WorkInfo> workInfoPage = new Page<>(pageNum, pageSize);
try { try {
String DBType = PropertiesUtil.getValue("DBType");
params.put("DBTYPE", DBType);
List<String> dtList = castList(map.get("dt"), String.class); List<String> dtList = castList(map.get("dt"), String.class);
QueryWrapper<WorkInfo> queryWrapper = new QueryWrapper<>();
if (dtList != null && !dtList.isEmpty()) { if (dtList != null && !dtList.isEmpty()) {
Date end = DateTimeUtil.addDateDays(DateTimeUtil.getFormatStr(dtList.get(1)), 1); Date end = DateTimeUtil.addDateDays(DateTimeUtil.getFormatStr(dtList.get(1)), 1);
String startStr = dtList.get(0); String startStr = dtList.get(0);
String endStr = DateTimeUtil.getFormateString(end, Constant.YYYY_MM_DD); Date start = DateTimeUtil.getFormatDate(startStr, Constant.YYYY_MM_DD);
params.put("stdt", startStr); queryWrapper.ge("DT", start)
params.put("enddt", endStr); .le("DT", end);
} }
if (ObjectUtils.isNotEmpty(map.get("userUnitClass"))) { if (ObjectUtils.isNotEmpty(map.get("userUnitClass"))) {
String userUnitClass = (String) map.get("userUnitClass"); String userUnitClass = (String) map.get("userUnitClass");
String userStano = (String) map.get("userStano"); String userStano = (String) map.get("userStano");
if (Constant.STR_ONE.equals(userUnitClass)) { if (Constant.STR_ONE.equals(userUnitClass)) {
params.put("stanos", userStano); queryWrapper.like("stanos", userStano);
} }
} }
Object workorderno = map.get("workorderno"); Object workorderno = map.get("workorderno");
if (ObjectUtils.isNotEmpty(workorderno)) { if (ObjectUtils.isNotEmpty(workorderno)) {
params.put("workorderno", workorderno); queryWrapper.like("WORKORDERNO", workorderno);
} }
Object title = map.get("title"); Object title = map.get("title");
if (ObjectUtils.isNotEmpty(title)) { if (ObjectUtils.isNotEmpty(title)) {
params.put("title", title); queryWrapper.like("TITLE", workorderno);
} }
Object remarks = map.get("remarks"); Object remarks = map.get("remarks");
if (ObjectUtils.isNotEmpty(remarks)) { if (ObjectUtils.isNotEmpty(remarks)) {
params.put("remarks", remarks); queryWrapper.like("REMARKS", workorderno);
} }
workInfoPage = workInfoMapper.myPageWorkInfo(workInfoPage, params); workInfoPage = workInfoMapper.myPageWorkInfo2(workInfoPage, queryWrapper);
} catch (Exception e) { } catch (Exception e) {
log.error("[uuid:{}]-查询查询工单信息失败,报错:{}", uuid, e.getMessage(), e); log.error("[uuid:{}]-查询查询工单信息失败,报错:{}", uuid, e.getMessage(), e);
} }

Loading…
Cancel
Save