<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="org.springblade.modules.userstatistics.mapper.UserStatisticsMapper">
|
|
|
<select id="getRepairTask" resultType="java.util.Map">
|
SELECT DISTINCT
|
user.id,name,
|
IFNULL(a.num, 0) as wxDaiNum,
|
IFNULL(b.num, 0) as wxOkNum,
|
IFNULL(c.num, 0) as skDaiNum,
|
IFNULL(d.num, 0) as skOkNum
|
FROM blade_user user
|
LEFT JOIN blade_role role ON user.role_id = role.id
|
LEFT JOIN (
|
SELECT DISTINCT re.to_user_id,count(*) as num FROM ins_repairsorder re WHERE re.is_deleted = 0 AND re.state = 1 -- 状态state = 1 派单的数据
|
<if test="startTime !=null and startTime !=''">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') >= #{startTime}
|
</if>
|
<if test="endTime != null and endTime !='' ">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') <= #{endTime}
|
</if>
|
GROUP BY re.to_user_id
|
) a ON user.id = a.to_user_id
|
LEFT JOIN (
|
SELECT DISTINCT re.to_user_id,count(*) as num FROM ins_repairsorder re WHERE re.is_deleted = 0 AND re.state = 2 -- 状态state = 2 完成派单
|
<if test="startTime !=null and startTime !=''">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') >= #{startTime}
|
</if>
|
<if test="endTime != null and endTime !='' ">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') <= #{endTime}
|
</if>
|
GROUP BY re.to_user_id
|
) b ON user.id = b.to_user_id
|
LEFT JOIN (
|
SELECT DISTINCT sk.to_user_id,count(*) as num FROM ins_taskinfo sk WHERE sk.is_deleted = 0 AND sk.state = 0
|
<if test="startTime !=null and startTime !=''">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') >= #{startTime}
|
</if>
|
<if test="endTime != null and endTime !='' ">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') <= #{endTime}
|
</if>
|
GROUP BY sk.to_user_id
|
) c ON user.id = c.to_user_id
|
LEFT JOIN (
|
SELECT DISTINCT sk.to_user_id,count(*) as num FROM ins_taskinfo sk WHERE sk.is_deleted = 0 AND sk.state = 2
|
<if test="startTime !=null and startTime !=''">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') >= #{startTime}
|
</if>
|
<if test="endTime != null and endTime !='' ">
|
AND DATE_FORMAT(re.create_time,'%Y-%m-%d') <= #{endTime}
|
</if>
|
GROUP BY sk.to_user_id
|
) d ON user.id = d.to_user_id
|
WHERE (role.role_alias = 'wx' or role.role_alias = 'xj') and user.is_deleted = 0
|
</select>
|
</mapper>
|