<?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.yuanchu.mom.mapper.AuxiliaryOriginalHoursMapper">
|
<select id="totalHours" resultType="java.util.Map">
|
select E.name, E.month, E.total
|
from (select C.name, C.month, C.manHours + D.manHours as total
|
from (select A.name,
|
A.month,
|
sum(A.manHour) as manHours
|
from (
|
select user.name,
|
case
|
when reviewer_nonproductive_time is null then nonproductive_time
|
else reviewer_nonproductive_time end as manHour,
|
date_time as month
|
from auxiliary_working_hours_day awhd
|
left join user on user.id = awhd.name_user
|
left join department_lims dl on depart_lims_id = dl.id
|
where date_time LIKE CONCAT('%', #{month}, '%')
|
and awhd.state='已批准'
|
<if test="ids !=null and ids != ''">
|
and name_user in
|
<foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
|
#{val}
|
</foreach>
|
</if>
|
order by month
|
) A
|
group by A.name, A.month) C
|
LEFT JOIN
|
(select B.name,
|
B.month,
|
B.manHours
|
from (
|
select user.name,
|
date_time as month,
|
sum(output_work_time) as manHours
|
from auxiliary_output_working_hours aowh
|
left join user on user.id = aowh.`check`
|
left join department_lims dl on depart_lims_id = dl.id
|
where date_time LIKE CONCAT('%', #{month}, '%')
|
<if test="ids !=null and ids != ''">
|
and `check` in
|
<foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
|
#{val}
|
</foreach>
|
</if>
|
group by user.name, month
|
order by user.name, month
|
) B
|
group by B.name, B.month) D
|
on C.month = D.month
|
where C.name = D.name
|
) E
|
group by E.name, E.month
|
</select>
|
</mapper>
|