From 3bdf2a1f2757de8ab6570508385d89124243943c Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 10 12월 2021 15:34:13 +0900
Subject: [PATCH] 일반회원 대시보드 오류 해결

---
 src/main/resources/mybatis/query-template/widget-template.xml |  489 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 460 insertions(+), 29 deletions(-)

diff --git a/src/main/resources/mybatis/query-template/widget-template.xml b/src/main/resources/mybatis/query-template/widget-template.xml
index b482c87..4b94ec0 100644
--- a/src/main/resources/mybatis/query-template/widget-template.xml
+++ b/src/main/resources/mybatis/query-template/widget-template.xml
@@ -24,6 +24,35 @@
         </choose>
     </select>
 
+    <select id="countRemainIssueByDepartment" resultType="java.lang.Long"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        SELECT
+        COUNT(i.id) FROM issue i
+        INNER JOIN issue_department isd ON isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_id
+        WHERE EXISTS(SELECT 1 FROM issue_status iss WHERE iss.issue_status_type != 'CLOSE' AND i.issue_status_id =
+        iss.id)
+        <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 != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
+        </choose>
+    </select>
+
     <!--    吏��뿰 �씠�뒋 媛쒖닔   -->
     <select id="countTodayDelayIssue" resultType="java.lang.Long"
             parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
@@ -37,6 +66,36 @@
                     #{item}
                 </foreach>
             </when>
+        </choose>
+        AND i.complete_date IS NOT NULL
+        AND i.complete_date <![CDATA[ < ]]> #{completeDate}
+    </select>
+
+    <select id="countTodayDelayIssueByDepartment" resultType="java.lang.Long"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        SELECT
+        COUNT(i.id) FROM issue i
+        INNER JOIN issue_department isd ON isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_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>
+        <choose>
+            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
         </choose>
         AND i.complete_date IS NOT NULL
         AND i.complete_date <![CDATA[ < ]]> #{completeDate}
@@ -72,10 +131,39 @@
             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
+        WHERE EXISTS(SELECT 1 FROM issue_department isd WHERE isd.issue_id = i.id
         <choose>
             <when test="myDepartmentIds.size != 0">
-                AND id.department_id IN
+                AND isd.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>
+
+    <select id="countAssigneeIssueByDepartment" resultType="java.lang.Long"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        SELECT
+        COUNT(i.id) FROM issue i
+        INNER JOIN issue_department isd ON isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_id
+        WHERE EXISTS(SELECT 1 FROM issue_department isd WHERE isd.issue_id = i.id
+        <choose>
+            <when test="myDepartmentIds.size != 0">
+                AND isd.department_id IN
                 <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -112,6 +200,36 @@
         AND i.register_date BETWEEN (CURDATE()) AND (CURDATE() + INTERVAL 1 DAY)
     </select>
 
+    <select id="countTodayRegisterIssueByDepartment" resultType="java.lang.Long"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        select
+        count(i.id) as todayCount from issue i
+        INNER JOIN issue_department isd ON isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_id
+        where
+        i.register_id = #{loginUserId}
+        <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 != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
+        </choose>
+        AND i.register_date BETWEEN (CURDATE()) AND (CURDATE() + INTERVAL 1 DAY)
+    </select>
+
     <!--    誘명븷�떦 �씠�뒋 媛쒖닔   -->
     <!--<select id="countNoAssigneeIssue" resultType="java.lang.Long"
             parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
@@ -136,7 +254,7 @@
             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
+        LEFT OUTER JOIN issue_department isd ON isd.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>
@@ -147,8 +265,34 @@
                 </foreach>
             </when>
         </choose>
-        AND id.id IS NULL
+        AND isd.id IS NULL
     </select>
+
+    <!--<select id="countNoAssigneeIssueByDepartment" resultType="java.lang.Long"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        SELECT
+        COUNT(DISTINCT i.id) FROM issue i
+        LEFT OUTER JOIN issue_department isd ON isd.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>
+        <choose>
+            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+        AND isd.id IS NULL
+    </select>-->
 
     <!--    �셿猷뚮맂 �씠�뒋 媛쒖닔   -->
     <select id="countCompleteIssue" resultType="java.lang.Long"
@@ -164,6 +308,35 @@
                     #{item}
                 </foreach>
             </when>
+        </choose>
+    </select>
+
+    <select id="countCompleteIssueByDepartment" resultType="java.lang.Long"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        select
+        count(*) as issueCount from issue i
+        inner join issue_status iss on iss.id = i.issue_status_id
+        INNER JOIN issue_department isd ON isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_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>
+        <choose>
+            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
         </choose>
     </select>
 
@@ -328,9 +501,9 @@
         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'
+         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
         ,
         (
@@ -374,10 +547,12 @@
             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
+        exists(select 1 from issue_department isd
+        INNER JOIN user_department ud ON ud.department_id = isd.department_id
+        where isd.issue_id = i.id
         <choose>
-            <when test="myDepartmentIds.size != 0">
-                AND id.department_id IN
+            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
                 <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -386,7 +561,7 @@
                 AND 1 != 1
             </otherwise>
         </choose>
-        and id.register_date
+        and isd.register_date
         BETWEEN (CURDATE()) AND (CURDATE() + INTERVAL 1 DAY))
         <choose>
             <when test="meAndDownProjectIds != null and meAndDownProjectIds.size != 0">
@@ -425,7 +600,7 @@
         select
         count(distinct i.id)
         from issue i
-        inner join issue_department id on id.issue_id = i.id
+        inner join issue_department isd on isd.issue_id = i.id
         inner join issue_status iss on iss.id = i.issue_status_id
         WHERE 1=1
         <choose>
@@ -438,7 +613,7 @@
         </choose>
         <choose>
             <when test="myDepartmentIds.size != 0">
-                AND id.department_id IN
+                AND isd.department_id IN
                 <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -483,7 +658,38 @@
         </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_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>
+        and iss.issue_status_type != 'CLOSE'
+        GROUP by i.id
+        <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
@@ -497,7 +703,8 @@
         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_department isd on isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_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
@@ -510,8 +717,8 @@
             </when>
         </choose>
         <choose>
-            <when test="myDepartmentIds.size != 0">
-                AND id.department_id IN
+            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
                 <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -818,6 +1025,46 @@
         group by p.id
     </select>
 
+    <select id="findByStandIssueStatusOfDepartment" resultType="java.util.HashMap"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        select
+        <choose>
+            <when test="issueStatuses.size != 0">
+                <foreach collection="issueStatuses" item="item" index="index" separator="," open="" close="">
+                    count(case when i.issue_status_id = #{item.id} then 1 end) as #{item.name}
+                </foreach>
+            </when>
+        </choose>
+        ,p.id,
+        p.name as projectName
+        from issue i
+        inner join project p on p.id = i.project_id
+        inner join issue_status iss on iss.id = i.issue_status_id
+        INNER JOIN issue_department isd ON isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_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 != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
+        </choose>
+        group by p.id
+    </select>
+
     <!--    9踰� �쐞�젽 �걹 -->
 
     <!--    11踰� �쐞�젽 �떆�옉 -->
@@ -854,17 +1101,17 @@
         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_department isd on isd.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,
+        where isd.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_department isd on isd.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,
+        where isd.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_department isd on isd.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
+        where isd.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
@@ -878,6 +1125,52 @@
                     #{item}
                 </foreach>
             </when>
+        </choose>
+        and p.status = '02';
+    </select>
+
+    <select id="findProjectMemberIssueByDepartment" 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 isd on isd.issue_id = i.id
+        inner join issue_status iss on iss.id = i.issue_status_id
+        where isd.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 isd on isd.issue_id = i.id
+        inner join issue_status iss on iss.id = i.issue_status_id
+        where isd.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 isd on isd.issue_id = i.id
+        inner join issue_status iss on iss.id = i.issue_status_id
+        where isd.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 user_department ud ON ud.department_id = prd.department_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>
+        <choose>
+            <when test="myDepartmentIds.size != 0">
+                AND prd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
         </choose>
         and p.status = '02';
     </select>
@@ -946,11 +1239,11 @@
     <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_department isd on isd.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
+                AND isd.department_id IN
                 <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -993,12 +1286,12 @@
     <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_department isd on isd.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
+                AND isd.department_id IN
                 <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -1024,9 +1317,30 @@
 
     <select id="findByStandIssueType" resultType="java.util.HashMap"
             parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
-        SELECT issue_type.name as name, COUNT(issue.id) as issueCount FROM issue issue
-        INNER JOIN issue_type issue_type ON issue.issue_type_id = issue_type.id
+        SELECT issue_type.name as name, COUNT(issue.id) as issueCount FROM issue
+        INNER JOIN issue_type ON issue.issue_type_id = issue_type.id
         WHERE issue.project_id = #{projectId}
+        GROUP BY issue_type.name
+    </select>
+
+    <select id="findByStandIssueTypeOfDepartment" resultType="java.util.HashMap"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        SELECT issue_type.name as name, COUNT(issue.id) as issueCount FROM issue
+        INNER JOIN issue_type ON issue.issue_type_id = issue_type.id
+        INNER JOIN issue_department isd ON isd.issue_id = issue.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_id
+        WHERE issue.project_id = #{projectId}
+        <choose>
+            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
+        </choose>
         GROUP BY issue_type.name
     </select>
 
@@ -1054,6 +1368,43 @@
                     #{item}
                 </foreach>
             </when>
+        </choose>
+    </select>
+
+    <select id="countSeverityIssueByDepartment" resultType="java.util.HashMap"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        SELECT
+        COUNT(case when s.id = 1 then 'CRITICAL' END) AS 'critical',
+        COUNT(case when s.id = 2 then 'MAJOR' END) AS 'major',
+        COUNT(case when s.id = 3 then 'MINOR' END) AS 'minor',
+        COUNT(case when s.id = 4 then 'TRIVIAL' END) AS 'trivial'
+        FROM issue i
+        INNER JOIN project p ON p.id = i.project_id
+        INNER JOIN workspace w ON w.id = p.workspace_id
+        INNER JOIN severity s ON s.id = i.severity_id
+        INNER JOIN issue_status iss ON iss.id = i.issue_status_id
+        INNER JOIN issue_department isd on isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_id
+        WHERE w.id = #{workspaceId}
+        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>
+        <choose>
+            <when test="myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
         </choose>
     </select>
 
@@ -1092,6 +1443,53 @@
         </if>
     </select>
 
+    <select id="findSeverityIssuesByDepartment" resultType="java.util.HashMap"
+            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
+        INNER JOIN project p ON p.id = i.project_id
+        INNER JOIN workspace w ON w.id = p.workspace_id
+        INNER JOIN severity s ON s.id = i.severity_id
+        INNER JOIN issue_status iss ON iss.id = i.issue_status_id
+        INNER JOIN issue_department isd on isd.issue_id = i.id
+        INNER JOIN user_department ud ON ud.department_id = isd.department_id
+        WHERE w.id = #{workspaceId}
+        AND s.id = #{severityId}
+        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>
+        <choose>
+            <when test="myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
+        </choose>
+        <if test="page != null and !page.equals('')">
+            limit #{pageSize} offset #{page};
+        </if>
+    </select>
+
     <!-- 以묒슂�룄 �빆紐� 蹂� 媛��닔 -->
     <select id="countSearchIssue" resultType="java.lang.Long"
             parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
@@ -1114,6 +1512,39 @@
         </choose>
     </select>
 
+    <select id="countSearchIssueByDepartment" resultType="java.lang.Long"
+            parameterType="kr.wisestone.owl.web.condition.WidgetCondition">
+        SELECT COUNT(distinct i.id)
+        FROM issue i
+        INNER JOIN project p ON p.id = i.project_id
+        INNER JOIN workspace w ON w.id = p.workspace_id
+        INNER JOIN severity s ON s.id = i.severity_id
+        INNER JOIN issue_status iss ON iss.id = i.issue_status_id
+        INNER JOIN issue_department isd on isd.issue_id = i.id
+        WHERE w.id = #{workspaceId}
+        AND s.id = #{severityId}
+        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>
+        <choose>
+            <when test="myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+            <otherwise>
+                AND 1 != 1
+            </otherwise>
+        </choose>
+    </select>
+
     <!-- 13踰� �쐞�젽 �걹 -->
 
 </mapper>

--
Gitblit v1.8.0