You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
8.1 KiB
139 lines
8.1 KiB
<?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="com.biutag.lan.mapper.DataScreenMapper"> |
|
|
|
|
|
<select id="selectRecentlyMailList" resultType="com.biutag.lan.domain.Mail"> |
|
|
|
select a.id,contact_name,contact_phone,a.create_time ,b.name mail_state from mail a |
|
left join dict_data b on a.mail_state=b.value |
|
left join mail_mark c on a.id=c.mail_id |
|
/* where c.resolved ='1' or satisfied='1'*/ |
|
order by a.create_time desc limit 20; |
|
</select> |
|
|
|
<select id="getCompletedRate" resultType="java.util.Map"> |
|
select b.second_dept_name name,CONCAT(ROUND(sum(COALESCE(b.completed, 0))*100/count(1),0),'%') rate, |
|
ROUND(sum(COALESCE(b.completed, 0))*100/count(1),0) rateNumber, |
|
SUM(COALESCE(b.completed, 0)) completed,count(1) sum |
|
from dept a inner join mail_mark b on a.id=b.second_dept_id where a.category='2' GROUP BY second_dept_name order by rateNumber desc limit 10 |
|
</select> |
|
<select id="getResolvedRate" resultType="java.util.Map"> |
|
select b.second_dept_name name,CONCAT(ROUND(sum(COALESCE(b.resolved, 0))*100/count(1),0),'%') rate, |
|
ROUND(sum(COALESCE(b.resolved, 0))*100/count(1),0) rateNumber, |
|
SUM(COALESCE(b.resolved, 0)) resolved,count(1) sum |
|
from dept a inner join mail_mark b on a.id=b.second_dept_id where a.category='2' GROUP BY second_dept_name order by rateNumber desc limit 10 |
|
</select> |
|
<select id="getSatisfiedRate" resultType="java.util.Map"> |
|
select b.second_dept_name name,CONCAT(ROUND(sum(COALESCE(b.satisfied, 0))*100/count(1),0),'%') rate, |
|
ROUND(sum(COALESCE(b.satisfied, 0))*100/count(1),0) rateNumber, |
|
SUM(COALESCE(b.satisfied, 0)) satisfied,count(1) sum |
|
from dept a inner join mail_mark b on a.id=b.second_dept_id where a.category='2' GROUP BY second_dept_name order by rateNumber desc limit 10 |
|
</select> |
|
|
|
|
|
<select id="getStationCompletedRateByDept" resultType="java.util.Map" parameterType="String"> |
|
select b.three_dept_name name,CONCAT(ROUND(sum(COALESCE(b.completed, 0))*100/count(1),0),'%') rate, |
|
ROUND(sum(COALESCE(b.completed, 0))*100/count(1),0) rateNumber, |
|
SUM(COALESCE(b.completed, 0)) completed,count(1) sum |
|
from dept a inner join mail_mark b on a.id=b.second_dept_id where a.id=b.three_dept_id where b.second_dept_id=#{deptId} |
|
GROUP BY three_dept_name order by rateNumber desc limit 10 |
|
</select> |
|
<select id="getStationResolvedRateByDept" resultType="java.util.Map" parameterType="String"> |
|
select b.three_dept_name name,CONCAT(ROUND(sum(COALESCE(b.resolved, 0))*100/count(1),0),'%') rate, |
|
ROUND(sum(COALESCE(b.resolved, 0))*100/count(1),0) rateNumber, |
|
SUM(COALESCE(b.resolved, 0)) resolved,count(1) sum |
|
from dept a inner join mail_mark b on a.id=b.second_dept_id where a.id=b.three_dept_id where b.second_dept_id=#{deptId} |
|
GROUP BY three_dept_name order by rateNumber desc limit 10 |
|
</select> |
|
<select id="getStationSatisfiedRateByDept" resultType="java.util.Map" parameterType="String"> |
|
select b.three_dept_name name,CONCAT(ROUND(sum(COALESCE(b.satisfied, 0))*100/count(1),0),'%') rate, |
|
ROUND(sum(COALESCE(b.satisfied, 0))*100/count(1),0) rateNumber, |
|
SUM(COALESCE(b.satisfied, 0)) satisfied,count(1) sum |
|
from dept a inner join mail_mark b on a.id=b.second_dept_id where a.id=b.three_dept_id where b.second_dept_id=#{deptId} |
|
GROUP BY three_dept_name order by rateNumber desc limit 10 |
|
</select> |
|
|
|
<select id="getTodayMailCount" resultType="Integer" parameterType="String"> |
|
select count(1) mailCount from mail where create_time>=CURRENT_DATE |
|
<if test="deptId != null and deptId != ''">and second_dep_id=#{deptId} </if> |
|
</select> |
|
<select id="getAllMailCount" resultType="Integer"> |
|
select count(1) as countSum from mail_mark |
|
</select> |
|
|
|
|
|
<select id="getResolvedRateByDeptId" resultType="java.util.Map" > |
|
select b.second_dept_name name,CONCAT(ROUND(sum(COALESCE(b.resolved, 0))*100/count(1),0),'%') rate,SUM(COALESCE(b.resolved, 0)) resolved,count(1) sum |
|
from dept a inner join mail_mark b on a.id=b.second_dept_id where a.category='2' |
|
<if test="deptId != null and deptId != ''">and b.second_dept_id=#{deptId} GROUP BY second_dept_name </if> |
|
|
|
</select> |
|
<select id="getAllResolvedRate" resultType="java.util.Map"> |
|
select CONCAT(ROUND(sum(COALESCE(b.resolved, 0))*100/count(1),0),'%') resolvedRate,SUM(COALESCE(b.resolved, 0)) resolved,count(1) resolvedSum |
|
from mail_mark b left join dept a on a.id=b.second_dept_id where 1=1 |
|
|
|
<if test="deptId != null and deptId != ''"> and a.category='2' and b.second_dept_id=#{deptId} GROUP BY second_dept_name</if> |
|
</select> |
|
<select id="getAllCompletedRate" resultType="java.util.Map"> |
|
select CONCAT(ROUND(sum(COALESCE(b.completed, 0))*100/count(1),0),'%') completedRate,SUM(COALESCE(b.completed, 0)) completed,count(1) completedSum |
|
from mail_mark b left join dept a on a.id=b.second_dept_id where 1=1 |
|
|
|
<if test="deptId != null and deptId != ''"> and a.category='2' and b.second_dept_id=#{deptId} GROUP BY second_dept_name</if> |
|
</select> |
|
<select id="getAllSatisfiedRate" resultType="java.util.Map"> |
|
select CONCAT(ROUND(sum(COALESCE(b.satisfied, 0))*100/count(1),0),'%') satisfiedRate,SUM(COALESCE(b.satisfied, 0)) satisfied,count(1) satisfiedSum |
|
from mail_mark b left join dept a on a.id=b.second_dept_id where 1=1 |
|
|
|
<if test="deptId != null and deptId != ''"> and a.category='2' and b.second_dept_id=#{deptId} GROUP BY second_dept_name</if> |
|
</select> |
|
<select id="mailTypeRank" resultType="java.util.Map"> |
|
select ROW_NUMBER() OVER (ORDER BY sumCount desc) AS rowNumber , mail_first_category category,count(1) sumCount ,CONCAT(ROUND(count(1)*100/(select count(1) from mail),0),'%') countRate |
|
from mail group by mail_first_category limit 10 |
|
</select> |
|
|
|
<select id="getMailDayTrend" resultType="java.util.Map"> |
|
select TO_CHAR(create_time, 'YYYY/MM/DD') create_time,count(1) countsum from mail |
|
WHERE create_time between #{startDate} and #{endDate} |
|
group by TO_CHAR(create_time, 'YYYY/MM/DD') order by create_time |
|
</select> |
|
|
|
<select id="getMailWeekTrend" resultType="java.util.Map"> |
|
select countSum ,CONCAT(year,'/',week) week from ( |
|
SELECT |
|
EXTRACT(YEAR FROM create_time) AS year, |
|
EXTRACT(WEEK FROM create_time) AS week , |
|
count(1) countSum |
|
FROM mail WHERE create_time between #{startDate} and #{endDate} |
|
GROUP BY year,week order by year,week) a |
|
</select> |
|
<select id="getMailMonthTrend" resultType="java.util.Map"> |
|
SELECT |
|
to_char(create_time::DATE, 'MM') AS month , |
|
count(1) countSum |
|
FROM mail where EXTRACT(YEAR FROM create_time)=#{year} |
|
GROUP BY month order by month |
|
</select> |
|
<select id="mapData" resultType="java.util.Map"> |
|
select d.name, a.id, |
|
(select count(1) mailCount from mail c where c.create_time>=CURRENT_DATE and c.second_dept_id=a.id) todaysum , |
|
CONCAT(ROUND(sum(COALESCE(b.resolved, 0))*100/count(1),0),'%') resolvedRate, |
|
SUM(COALESCE(b.resolved, 0)) resolved, |
|
ROUND(sum(COALESCE(b.completed, 0))*100/count(b.mail_id),0) value, |
|
CONCAT(ROUND(sum(COALESCE(b.completed, 0))*100/count(b.mail_id),0),'%') completedRate, |
|
SUM(COALESCE(b.completed, 0)) completed, |
|
CONCAT(ROUND(sum(COALESCE(b.satisfied, 0))*100/count(1),0),'%') satisfiedRate, |
|
SUM(COALESCE(b.satisfied, 0)) satisfied, |
|
count(1) allsum |
|
from mail_mark b left join dept a on a.id=b.second_dept_id |
|
inner join county_street_dept d on b.second_dept_id=d.dept_id |
|
where 1=1 |
|
<if test="deptId != null and deptId != ''"> and b.second_dept_id=#{deptId}</if> |
|
GROUP BY d.name,a.id |
|
|
|
</select> |
|
|
|
|
|
</mapper>
|
|
|