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.
 
 

159 lines
4.5 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.ccsens.tall.persist.dao.TaskSubTimeDao">
<select id="getUnderwayTaskByRoleId" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.po.ProTaskSubTime">
SELECT
*
FROM
`t_pro_task_sub_time` s LEFT JOIN `t_pro_task_detail` t ON s.task_detail_id = t.id
WHERE
s.rec_status = 0
and
s.complated_status = 1
and
t.executor_role = #{roleId}
and
s.id != #{subTaskId}
</select>
<update id="clearTaskRealTime" parameterType="java.util.Map">
UPDATE
t_pro_task_sub_time s LEFT JOIN t_pro_task_detail d on s.task_detail_id = d.id LEFT JOIN t_sys_project p on d.project_id = p.id
SET
s.real_begin_time = 0,
s.real_end_time = 0,
s.complated_status = 0
WHERE
p.id = #{projectId}
</update>
<select id="getKanbanTake" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.TaskVo$KanBanTask">
SELECT
d.id as taskDetailId,
s.id as id,
d.name as taskName,
d.executor_role as roleId,
r.name as roleName,
s.begin_time as taskBegintime,
s.end_time as taskEndTime,
if(a.rId is not null or r.`name` = '全体成员',1,0) as mine
FROM
t_pro_task_detail d LEFT JOIN t_pro_task_sub_time s on d.id = s.task_detail_id
LEFT JOIN t_pro_role r on r.id = d.executor_role
LEFT JOIN
(
SELECT
count(m.id) as mid,
s.id as sId
FROM
t_pro_sub_time_member m LEFT JOIN t_pro_task_sub_time s on m.task_sub_time_id = s.id
WHERE
m.member_id = #{memberId}
and
m.rec_status = 0
)t on t.sId = s.id
LEFT JOIN
(
SELECT
r.id as rId
FROM
t_pro_role r Left join t_pro_member_role mr on r.id = mr.role_id
LEFT JOIN t_pro_member m on mr.member_id = m.id
WHERE
m.user_id = #{userId}
and m.rec_status = 0
and r.rec_status = 0
) a on a.rId = r.id
WHERE
d.project_id = #{projectId}
and
d.rec_status = 0
and
d.level != 0
and
d.level != 1
<if test="roleId != null">
and
r.id = #{roleId}
</if>
and
s.complated_status = #{type}
and
FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d %H:%m:%s') &lt; NOW()
and
(
(
d.finish_need_all = 0
)
or
(
d.finish_need_all = 1
and
t.mid > 0
)
)
ORDER BY
<if test="orderType == 0">
s.begin_time DESC
</if>
<if test="orderType == 1">
d.priority DESC
,s.begin_time DESC
</if>
</select>
<select id="getKanbanTakeByType" parameterType="java.util.Map" resultType="com.ccsens.tall.bean.vo.TaskVo$KanBanTask">
SELECT
d.id as taskDetailId,
s.id as id,
d.name as taskName,
d.executor_role as roleId,
r.name as roleName,
s.begin_time as taskBegintime,
s.end_time as taskEndTime,
if(t.rId is not null or r.`name` = '全体成员',1,0) as mine
FROM
t_pro_task_detail d LEFT JOIN t_pro_task_sub_time s on d.id = s.task_detail_id
LEFT JOIN t_pro_role r on r.id = d.executor_role
LEFT JOIN
(
SELECT
r.id as rId
FROM
t_pro_role r Left join t_pro_member_role mr on r.id = mr.role_id
LEFT JOIN t_pro_member m on mr.member_id = m.id
WHERE
m.user_id = #{userId}
and m.rec_status = 0
and r.rec_status = 0
) t on t.rId = r.id
WHERE
d.project_id = #{projectId}
and
d.rec_status = 0
and
d.level != 0
and
d.level != 1
<if test="roleId != null">
and
r.id = #{roleId}
</if>
and
s.complated_status = #{type}
and
FROM_UNIXTIME(s.begin_time/1000,'%Y-%m-%d %H:%m:%s') &lt; NOW()
ORDER BY
<if test="orderType == 0">
s.begin_time DESC
</if>
<if test="orderType == 1">
d.priority DESC
,s.begin_time DESC
</if>
</select>
</mapper>