From a8a8d35b27df67e169c8b1aab45edec1c1b25eae Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 02 12월 2021 21:48:04 +0900 Subject: [PATCH] - 이메일 실시간 발송 - 이슈 리스트에서 하위일감 개수 표시 - 이슈 리스트에서 하위 이슈는 안보이게 --- src/main/resources/mybatis/query-template/widget-template.xml | 481 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 427 insertions(+), 54 deletions(-) diff --git a/src/main/resources/mybatis/query-template/widget-template.xml b/src/main/resources/mybatis/query-template/widget-template.xml index 3ff9f57..b482c87 100644 --- a/src/main/resources/mybatis/query-template/widget-template.xml +++ b/src/main/resources/mybatis/query-template/widget-template.xml @@ -15,9 +15,9 @@ WHERE EXISTS(SELECT 1 FROM issue_status iss WHERE iss.issue_status_type != 'CLOSE' AND i.issue_status_id = iss.id) <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -31,9 +31,9 @@ COUNT(i.id) FROM issue i where exists(select 1 from issue_status iss where iss.id = i.issue_status_id and iss.issue_status_type != 'CLOSE') <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -42,8 +42,8 @@ AND i.complete_date <![CDATA[ < ]]> #{completeDate} </select> - <!-- �븷�떦 �씠�뒋 媛쒖닔 --> - <select id="countAssigneeIssue" resultType="java.lang.Long" + <!-- �븷�떦 �씠�뒋 媛쒖닔 - �떞�떦�옄 踰꾩쟾 --> + <!--<select id="countAssigneeIssue" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> SELECT COUNT(i.id) FROM issue i @@ -57,6 +57,42 @@ </foreach> </when> </choose> + <choose> + <when test="downProjectIds.size != 0"> + OR i.project_id IN + <foreach collection="downProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + </select>--> + + <!-- �븷�떦 �씠�뒋 媛쒖닔 - �떞�떦遺��꽌 踰꾩쟾 --> + <select id="countAssigneeIssue" resultType="java.lang.Long" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + SELECT + COUNT(i.id) FROM issue i + WHERE EXISTS(SELECT 1 FROM issue_department id WHERE id.issue_id = i.id + <choose> + <when test="myDepartmentIds.size != 0"> + AND id.department_id IN + <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + <otherwise> + AND 1 != 1 + </otherwise> + </choose> + ) AND EXISTS(SELECT 1 FROM issue_status iss WHERE iss.id = i.issue_status_id and iss.issue_status_type != 'CLOSE') + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND i.project_id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> </select> <!-- �궡媛� �삤�뒛 �벑濡앺븳 �씠�뒋 媛쒖닔 --> @@ -66,9 +102,9 @@ count(i.id) as todayCount from issue i where i.register_id = #{loginUserId} <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -77,7 +113,7 @@ </select> <!-- 誘명븷�떦 �씠�뒋 媛쒖닔 --> - <select id="countNoAssigneeIssue" resultType="java.lang.Long" + <!--<select id="countNoAssigneeIssue" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> SELECT COUNT(DISTINCT i.id) FROM issue i @@ -85,15 +121,35 @@ WHERE EXISTS(select 1 from issue_status iss where iss.id = i.issue_status_id and iss.issue_status_type != 'CLOSE') <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> </choose> AND iu.id IS NULL + </select>--> + + <!-- 誘명븷�떦 �씠�뒋 媛쒖닔 (�떞�떦遺��꽌 踰꾩쟾) --> + <select id="countNoAssigneeIssue" resultType="java.lang.Long" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + SELECT + COUNT(DISTINCT i.id) FROM issue i + LEFT OUTER JOIN issue_department id ON id.issue_id = i.id + WHERE + EXISTS(select 1 from issue_status iss where iss.id = i.issue_status_id and iss.issue_status_type != 'CLOSE') + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND i.project_id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + AND id.id IS NULL </select> + <!-- �셿猷뚮맂 �씠�뒋 媛쒖닔 --> <select id="countCompleteIssue" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> @@ -102,9 +158,9 @@ inner join issue_status iss on iss.id = i.issue_status_id where iss.issue_status_type = 'CLOSE' <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -124,9 +180,9 @@ where iss.issue_status_type = 'CLOSE' and i.modify_date between #{searchStartDate} and #{searchEndDate} <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -141,9 +197,9 @@ inner join issue_status iss on iss.id = i.issue_status_id where 1=1 <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -155,8 +211,8 @@ <!-- 3踰� �쐞�젽 �떆�옉 --> - <!-- 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴 --> - <select id="findProjectProgress" resultType="java.util.HashMap" + <!-- 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴 (�떞�떦�옄 踰꾩쟾) --> + <!--<select id="findProjectProgress" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select p.id as id, @@ -191,10 +247,48 @@ </when> </choose> GROUP by p.id + </select>--> + + <!-- 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴 (�떞�떦遺��꽌 踰꾩쟾) --> + <select id="findProjectProgress" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + p.id as id, + p.name as name, + replace(p.start_date, "-", ".") as startDate, + replace(p.end_date, "-", ".") as endDate, + count(case when iss.issue_status_type = 'CLOSE' THEN 1 END) as 'close', + count(case when iss.issue_status_type != 'CLOSE' THEN 1 END) as 'remain', + (select concat(u.name, "%", u.account, "%", u.profile) from user u + inner join project_role_user pru on pru.user_id = u.id + inner join project_role pr on pr.id = pru.project_role_id + where pr.project_id = p.id and pr.role_type = '02' + ) as managerInfo + , + ( + select count(distinct(d.id)) from department d + inner join project_role_department prd on prd.department_id = d.id + inner join project_role pr on pr.id = prd.project_role_id + where pr.project_id = p.id and pr.role_type = '01' + ) as teamCount + from + project p + left outer join issue i on p.id = i.project_id + left outer join issue_status iss on iss.id = i.issue_status_id + WHERE 1=1 + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND p.id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + GROUP by p.id </select> - <!-- 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴(�쟾泥�) --> - <select id="findProjectProgressAll" resultType="java.util.HashMap" + <!-- 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴(�쟾泥�) (�떞�떦�옄 踰꾩쟾) --> + <!--<select id="findProjectProgressAll" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select p.id as id, @@ -221,6 +315,36 @@ left outer join issue_status iss on iss.id = i.issue_status_id WHERE 1=1 GROUP by p.id + </select>--> + + <!-- 吏꾪뻾以묒씤 �봽濡쒖젥�듃 �쁽�솴(�쟾泥�) (�떞�떦遺��꽌 踰꾩쟾) --> + <select id="findProjectProgressAll" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + p.id as id, + p.name as name, + replace(p.start_date, "-", ".") as startDate, + replace(p.end_date, "-", ".") as endDate, + count(case when iss.issue_status_type = 'CLOSE' THEN 1 END) as 'close', + count(case when iss.issue_status_type != 'CLOSE' THEN 1 END) as 'remain', + (select concat(u.name, "%", u.account, "%", u.profile) from user u + inner join project_role_user pru on pru.user_id = u.id + inner join project_role pr on pr.id = pru.project_role_id + where pr.project_id = p.id and pr.role_type = '02' + ) as managerInfo + , + ( + select count(distinct(d.id)) from department d + inner join project_role_department prd on prd.department_id = d.id + inner join project_role pr on pr.id = prd.project_role_id + where pr.project_id = p.id and pr.role_type = '01' + ) as teamCount + from + project p + left outer join issue i on p.id = i.project_id + left outer join issue_status iss on iss.id = i.issue_status_id + WHERE 1=1 + GROUP by p.id </select> <!-- 3踰� �쐞�젽 �걹 --> @@ -228,8 +352,8 @@ <!-- 4踰� �쐞�젽 �떆�옉 --> - <!-- �궡媛� �삤�뒛 �븷�떦諛쏆� �씠�뒋 媛쒖닔 --> - <select id="countTodayMyAssigneeIssue" resultType="java.lang.Long" + <!--�궡媛� �삤�뒛 �븷�떦諛쏆� �씠�뒋 媛쒖닔 - �떞�떦�옄 踰꾩쟾--> + <!--<select id="countTodayMyAssigneeIssue" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select count(i.id) as todayCount from issue i where @@ -243,10 +367,39 @@ </foreach> </when> </choose> + </select>--> + + <!-- �궡媛� �삤�뒛 �븷�떦諛쏆� �씠�뒋 媛쒖닔 - �떞�떦遺��꽌 踰꾩쟾 --> + <select id="countTodayMyAssigneeIssue" resultType="java.lang.Long" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + count(i.id) as todayCount from issue i where + exists(select 1 from issue_department id where id.issue_id = i.id + <choose> + <when test="myDepartmentIds.size != 0"> + AND id.department_id IN + <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + <otherwise> + AND 1 != 1 + </otherwise> + </choose> + and id.register_date + BETWEEN (CURDATE()) AND (CURDATE() + INTERVAL 1 DAY)) + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND i.project_id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> </select> - <!-- �궡媛� �떞�떦�븯�뒗 �씠�뒋 媛쒖닔 --> - <select id="countMyAssigneeIssue" resultType="java.lang.Long" + <!-- �궡媛� �떞�떦�븯�뒗 �씠�뒋 媛쒖닔 - �떞�떦�옄 --> + <!--<select id="countMyAssigneeIssue" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select count(distinct i.id) @@ -264,10 +417,41 @@ </choose> and iu.user_id = #{loginUserId} and iss.issue_status_type != 'CLOSE' + </select>--> + + <!-- �궡媛� �떞�떦�븯�뒗 �씠�뒋 媛쒖닔 - �떞�떦遺��꽌 --> + <select id="countMyAssigneeIssue" resultType="java.lang.Long" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + count(distinct i.id) + from issue i + inner join issue_department id on id.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + WHERE 1=1 + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND i.project_id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + <choose> + <when test="myDepartmentIds.size != 0"> + AND id.department_id IN + <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + <otherwise> + AND 1 != 1 + </otherwise> + </choose> + And iss.issue_status_type != 'CLOSE' </select> <!-- �궡媛� �떞�떦�븯�뒗 �씠�뒋 --> - <select id="findMyAssigneeIssue" resultType="java.util.HashMap" + <!--<select id="findMyAssigneeIssue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select distinct i.id as id, @@ -297,6 +481,50 @@ <if test="page != null and !page.equals('')"> limit #{pageSize} offset #{page}; </if> + </select>--> + + <!-- �궡媛� �떞�떦�븯�뒗 �씠�뒋 - �떞�떦遺��꽌 --> + <select id="findMyAssigneeIssue" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + distinct i.id as id, + i.title as title, + p.name as projectName, + CONCAT(p.project_key, '-', i.issue_number) AS issueKey, + p.project_key as projectKey, + i.issue_number as issueNumber, + iss.name as issueStatusName, + replace(i.complete_date, "-", ".") as completeDate, + replace(SUBSTRING(i.register_date, 1, 10), "-", ".") as registerDate + from issue i + inner join issue_department id on id.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + inner join project p on p.id = i.project_id + WHERE 1=1 + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND p.id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + <choose> + <when test="myDepartmentIds.size != 0"> + AND id.department_id IN + <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + <otherwise> + AND 1 != 1 + </otherwise> + </choose> + and iss.issue_status_type != 'CLOSE' + GROUP by i.id + <if test="page != null and !page.equals('')"> + limit #{pageSize} offset #{page}; + </if> </select> <!-- 4踰� �쐞�젽 �걹 --> @@ -305,7 +533,7 @@ <!-- 5踰� �쐞�젽 �떆�옉 --> <!-- 踰덈났�릺�뒗 �긽�깭 蹂�寃� 諛� 鍮덈쾲�븳 �떞�떦�옄 蹂�寃� 媛쒖닔 --> - <select id="countChangeStatusAndAssigneeIssue" resultType="java.util.HashMap" + <!--<select id="countChangeStatusAndAssigneeIssue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select count(case when ir.change_assignee_count > 3 then 1 end) as changeAssigneeCount, @@ -322,10 +550,29 @@ </foreach> </when> </choose> + </select>--> + + <select id="countChangeStatusAndDepartmentIssue" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + count(case when ir.change_department_count > 3 then 1 end) as changeDepartmentCount, + count(case when ir.change_issue_status_count > 3 then 1 end) as changeIssueStatusCount + from issue i + inner join issue_risk ir on ir.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + where iss.issue_status_type != 'CLOSE' + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND i.project_id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> </select> <!-- �쐞�뿕 愿�由� --> - <select id="findRiskIssue" resultType="java.util.HashMap" + <!--<select id="findRiskIssue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select DISTINCT i.id, i.title, iss.name as issueStatusName, @@ -351,6 +598,34 @@ <if test="page != null and !page.equals('')"> limit #{pageSize} offset #{page}; </if> + </select>--> + <select id="findRiskIssue" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + DISTINCT i.id, i.title, iss.name as issueStatusName, + (case when ir.change_department_count > 3 then true else false end) as changeDepartmentType, + (case when ir.change_issue_status_count > 3 then true else false end) as changeIssueStatusType, + CONCAT(p.project_key, '-', i.issue_number) AS issueKey, + i.issue_number as issueNumber, + p.project_key as projectKey, + p.name as projectName + from issue i + inner join issue_risk ir on ir.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + inner join project p on p.id = i.project_id + where iss.issue_status_type != 'CLOSE' + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND p.id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + and (ir.change_department_count > 3 || ir.change_issue_status_count > 3) + <if test="page != null and !page.equals('')"> + limit #{pageSize} offset #{page}; + </if> </select> <!-- �쐞�뿕 愿�由� 媛쒖닔 --> @@ -363,14 +638,14 @@ inner join issue_status iss on iss.id = i.issue_status_id where iss.issue_status_type != 'CLOSE' <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> </choose> - and (ir.change_assignee_count > 3 || ir.change_issue_status_count > 3) + and (ir.change_department_count > 3 || ir.change_issue_status_count > 3) </select> <!-- 5踰� �쐞�젽 �걹 --> @@ -387,6 +662,7 @@ , replace(i.start_date, "-", ".") as startDate , replace(i.complete_date, "-", ".") as completeDate , i.title as title + , p.name as projectName , iss.name as issueStatusName , i.issue_number as issueNumber , p.project_key as projectKey @@ -400,9 +676,9 @@ WHERE 1=1 AND i.register_id = #{loginUserId} <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -431,9 +707,9 @@ AND EXISTS (SELECT 1 FROM issue_status iss WHERE iss.id = i.issue_status_id AND iss.issue_status_type != 'CLOSE') </if> <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -456,6 +732,7 @@ , replace(i.start_date, "-", ".") as startDate , replace(i.complete_date, "-", ".") as completeDate , i.title as title + , p.name as projectName , iss.name as issueStatusName , i.issue_number as issueNumber , p.project_key as projectKey @@ -468,9 +745,9 @@ </if> WHERE 1=1 <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -494,9 +771,9 @@ </if> WHERE 1=1 <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -531,9 +808,9 @@ inner join issue_status iss on iss.id = i.issue_status_id where 1=1 <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -546,7 +823,7 @@ <!-- 11踰� �쐞�젽 �떆�옉 --> <!-- 硫ㅻ쾭蹂� 吏꾪뻾瑜� --> - <select id="findProjectMemberIssue" resultType="java.util.HashMap" + <!--<select id="findProjectMemberIssue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select u.name, u.profile, u.account, @@ -568,7 +845,43 @@ inner join project_role pr on pr.id = pru.project_role_id inner join project p on p.id = pr.project_id where p.id = #{projectId} and p.status = '02' + </select>--> + + <!-- �떞�떦遺��꽌蹂� 吏꾪뻾瑜� --> + <select id="findProjectMemberIssue" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select + d.department_name as departmentName, + p.name as projectName, + (select count(*) from issue i + inner join issue_department id on id.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + where id.department_id = d.id and i.project_id = p.id and iss.issue_status_type = 'CLOSE') as completeCount, + (select count(*) from issue i + inner join issue_department id on id.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + where id.department_id = d.id and i.project_id = p.id and iss.issue_status_type != 'CLOSE') as remainCount, + (select count(*) from issue i + inner join issue_department id on id.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + where id.department_id = d.id and i.project_id = p.id and iss.issue_status_type != 'CLOSE' and i.complete_date is not null and i.complete_date <![CDATA[ < ]]> now()) as delayCount + from + department d + inner join project_role_department prd on prd.department_id = d.id + inner join project_role pr on pr.id = prd.project_role_id + inner join project p on p.id = pr.project_id + WHERE + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + p.id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + and p.status = '02'; </select> + <!-- 11踰� �쐞�젽 �걹 --> @@ -583,9 +896,9 @@ 'CLOSE') AND i.register_id = #{loginUserId} <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -601,9 +914,9 @@ 'CLOSE') AND i.register_id = #{loginUserId} <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -612,7 +925,7 @@ </select> <!-- �떞�떦�븳 �씠�뒋 以� �셿猷� 媛��닔 --> - <select id="findMyAssigneeCompleteIssue" resultType="java.util.HashMap" + <!--<select id="findMyAssigneeCompleteIssue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select i.project_id as projectId, count(distinct i.id) as issueCount from issue i inner join issue_user iu on iu.issue_id = i.id @@ -627,10 +940,39 @@ </when> </choose> group by i.project_id + </select>--> + + <!-- �떞�떦�븳 �씠�뒋 以� �셿猷� 媛��닔 - �떞�떦遺��꽌 --> + <select id="findMyAssigneeCompleteIssue" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select i.project_id as projectId, count(distinct i.id) as issueCount from issue i + inner join issue_department id on id.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + <choose> + <when test="myDepartmentIds.size != 0"> + AND id.department_id IN + <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + <otherwise> + AND 1 != 1 + </otherwise> + </choose> + and iss.issue_status_type = 'CLOSE' + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND i.project_id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + group by i.project_id </select> <!-- �떞�떦�븳 �씠�뒋 以� 吏꾪뻾 媛��닔 --> - <select id="findMyAssigneeRemainIssue" resultType="java.util.HashMap" + <!--<select id="findMyAssigneeRemainIssue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> select i.project_id as projectId, count(distinct i.id) as issueCount from issue i inner join issue_user iu on iu.issue_id = i.id @@ -640,6 +982,35 @@ <when test="projectIds.size != 0"> AND i.project_id IN <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + </choose> + group by i.project_id + </select>--> + + <!-- �떞�떦�븳 �씠�뒋 以� 吏꾪뻾 媛��닔 - �떞�떦遺��꽌 --> + <select id="findMyAssigneeRemainIssue" resultType="java.util.HashMap" + parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> + select i.project_id as projectId, count(distinct i.id) as issueCount from issue i + inner join issue_department id on id.issue_id = i.id + inner join issue_status iss on iss.id = i.issue_status_id + where iss.issue_status_type != 'CLOSE' + <choose> + <when test="myDepartmentIds.size != 0"> + id.department_id IN + <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </when> + <otherwise> + AND 1 != 1 + </otherwise> + </choose> + <choose> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> + AND i.project_id IN + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -677,9 +1048,9 @@ WHERE w.id = #{workspaceId} AND iss.issue_status_type != 'CLOSE' <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -691,11 +1062,13 @@ parameterType="kr.wisestone.owl.web.condition.WidgetCondition"> SELECT i.title AS title, s.name AS severityName, + p.name AS projectName, s.color AS severityColor, replace(i.start_date, "-", ".") AS startDate, replace(i.complete_date, "-", ".") AS completeDate, i.issue_number AS issueNumber, p.project_key AS projectKey, + p.name AS projectName, iss.name AS issueStatusName, CONCAT(p.project_key, '-', i.issue_number) AS issueKey FROM issue i @@ -707,9 +1080,9 @@ AND s.id = #{severityId} AND iss.issue_status_type != 'CLOSE' <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> @@ -732,9 +1105,9 @@ AND s.id = #{severityId} AND iss.issue_status_type != 'CLOSE' <choose> - <when test="projectIds.size != 0"> + <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0"> AND i.project_id IN - <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")"> + <foreach collection="meAndDownProjectIds" item="item" index="index" separator="," open="(" close=")"> #{item} </foreach> </when> -- Gitblit v1.8.0