select <iftest="projectId == null">'合计' AS project_name,</if><iftest="projectId != null"> project_name,'合计' AS dept_name,</if> group_CONCAT(DISTINCT YEAR (statistics_start),'年',MONTH (statistics_start),'月') AS date,year(statistics_start) AS year, sum(total_time) AS total_time, sum(cost) AS cost
select <iftest="projectId == null">'合计' AS project_name,</if><iftest="projectId != null || projectIds != null"> project_name,'合计' AS dept_name,</if> group_CONCAT(DISTINCT YEAR (statistics_start),'年',MONTH (statistics_start),'月') AS date,year(statistics_start) AS year, sum(total_time) AS total_time, sum(cost) AS cost
from work_project_time_cost ptc join work_project p on ptc.project_id = p.id join work_dept d on ptc.dept_id = d.id
IF (YEAR (work_day) = YEAR (NOW()), concat(YEAR (work_day),'年',MONTH (work_day),'月') , concat(YEAR(work_day), '年')) AS statistics_time ,SUM(t.work_time)/8 AS
total_time, SUM(t.work_time * s.day_salary)/8 AS cost
FROM work_time_order t join work_dept d on d.id = t.dept_id join work_user_salary s on s.user_id = t.user_id
WHERE status IN (2,5) AND s.create_time < t.work_day AND s.end_time > t.work_day
<iftest="isAll">u.id AS user_id, u.`name` AS user_name,</if>
<iftest="!isAll">'合计' AS user_name ,</if>
t.project_id AS project_id, t.type AS project_type, p.project_name AS
project_name,
IF(t.is_overtime = 0,
<iftest="!isAll">0</if>
<iftest="isAll">null</if>, sum(t.work_time)) AS over_time, IF(t.is_overtime=1,
<iftest="!isAll">0</if>
<iftest="isAll">null</if>, sum(t.work_time)) AS normal_time
SELECT <iftest="isAll"> u.id AS user_id, u.`name` AS user_name,</if><iftest="!isAll">'合计' AS user_name ,</if> t.project_id AS project_id, t.type AS work_time_type, p.project_name AS project_name,
IF(t.is_overtime = 0, <iftest="!isAll">0</if><iftest="isAll">null</if>, sum(t.work_time)) AS over_time, IF(t.is_overtime=1, <iftest="!isAll">0</if><iftest="isAll">null</if>, sum(t.work_time)) AS normal_time
from work_time_order t left join work_project p on t.project_id = p.id join work_user u on t.user_id = u.id
where
t.status in (2,5) AND
t.work_day <= #{endDate}
AND t.dept_id = #{deptId}
<iftest="startDate != null">
AND t.work_day >= #{startDate}
</if>
<iftest="isConclusion != null">
AND p.is_conclusion = #{isConclusion}
</if>
<iftest="deptId != null and managerId == null">
AND p.dept_id = #{deptId}
</if>
<iftest="deptId != null and managerId != null">
AND (p.dept_id = #{deptId} OR p.manager_id = #{managerId})
</if>
<iftest="managerId != null and deptId == null">
AND p.manager_id = #{managerId}
</if>
GROUP BY <iftest="isAll">u.id,u.`name`,</if>t.project_id,t.type,p.project_name, t.is_overtime
GROUP BY <iftest="isAll"> u.id,u.`name`,</if> t.project_id,t.type,p.project_name, t.is_overtime
ORDER BY <iftest="isAll">convert(u.`name` using gbk) asc</if><iftest="!isAll">field(t.type,1,2,5,6,7,3,4)</if> ,t.project_id