From 12a790240ef0301f839a55e1846ed0c5a32dffee Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 화, 07 12월 2021 13:29:34 +0900
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/resources/mybatis/query-template/issue-template.xml |  458 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 453 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml
index f5d76f5..bbf5ef7 100644
--- a/src/main/resources/mybatis/query-template/issue-template.xml
+++ b/src/main/resources/mybatis/query-template/issue-template.xml
@@ -42,7 +42,7 @@
         INNER JOIN priority priority FORCE INDEX(PRIMARY) ON issue.priority_id = priority.id
         INNER JOIN severity severity FORCE INDEX(PRIMARY) ON issue.severity_id = severity.id
         LEFT OUTER JOIN issue_custom_field_value issue_custom FORCE INDEX(issueIdIndex) ON issue.id = issue_custom.issue_id
-        LEFT OUTER JOIN issue_department issued FORCE INDEX(issueIdIndex) ON issue.id = issued.issue_id
+        LEFT OUTER JOIN issue_department isd FORCE INDEX(issueIdIndex) ON issue.id = isd.issue_id
         LEFT OUTER JOIN issue_user issue_user FORCE INDEX(issueIdIndex) ON issue.id = issue_user.issue_id
         LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as attachedFileCount FROM attached_file GROUP BY issue_id)
         temp_attached_file on (temp_attached_file.issue_id = issue.id)
@@ -159,7 +159,7 @@
 
         <choose>
             <when test="departmentIds.size != 0">
-                AND issue_department.department_id IN
+                AND isd.department_id IN
                 <foreach collection="departmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -201,7 +201,198 @@
         </if>
     </select>
 
-    <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
+    <select id="findByDepartment" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
+        SELECT
+        DISTINCT issue.id as id,
+        issue.register_id as registerId,
+        issue.reverse_index as reverseIndex,
+        issue.title as title,
+        issue.description as description,
+        issue.parent_issue_id as parentIssueId,
+        issue.start_date as startDate,
+        issue.complete_date as completeDate,
+        issue.issue_number as issueNumber,
+        issue.register_date as registerDate,
+        SUBSTRING(issue.modify_date, 1, 19) as modifyDate,
+        project.id as projectId,
+        project.name as projectName,
+        project.project_key as projectKey,
+        issue_type.id as issueTypeId,
+        issue_type.name as issueTypeName,
+        issue_status.id as issueStatusId,
+        issue_status.issue_status_type as issueStatusType,
+        issue_status.name as issueStatusName,
+        issue_status.color as issueStatusColor,
+        priority.id as priorityId,
+        priority.name as priorityName,
+        priority.color as priorityColor,
+        severity.id as severityId,
+        severity.name as severityName,
+        severity.color as severityColor,
+        GROUP_CONCAT(issue_custom.use_value) AS useValue,
+        IFNULL(temp_attached_file.attachedFileCount, 0) as attachedFileCount,
+        IFNULL(temp_issue_comment.issueCommentCount, 0) as issueCommentCount
+        FROM issue issue FORCE INDEX(reverseIndex)
+        INNER JOIN project project FORCE INDEX(workspaceIdIndex) ON issue.project_id = project.id
+        INNER JOIN workspace workspace ON workspace.id = project.workspace_id
+        INNER JOIN issue_status issue_status FORCE INDEX(PRIMARY) ON issue.issue_status_id = issue_status.id
+        INNER JOIN issue_type issue_type FORCE INDEX(PRIMARY) ON issue.issue_type_id = issue_type.id
+        INNER JOIN priority priority FORCE INDEX(PRIMARY) ON issue.priority_id = priority.id
+        INNER JOIN severity severity FORCE INDEX(PRIMARY) ON issue.severity_id = severity.id
+        INNER JOIN issue_department isd ON isd.issue_id = issue.id
+        INNER JOIN department d ON d.id = isd.department_id
+        LEFT OUTER JOIN issue_custom_field_value issue_custom FORCE INDEX(issueIdIndex) ON issue.id = issue_custom.issue_id
+        LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as attachedFileCount FROM attached_file GROUP BY issue_id)
+        temp_attached_file on (temp_attached_file.issue_id = issue.id)
+        LEFT OUTER JOIN (SELECT issue_id, COUNT(id) as issueCommentCount FROM issue_comment GROUP BY issue_id)
+        temp_issue_comment on (temp_issue_comment.issue_id = issue.id)
+        WHERE 1=1
+        <if test="keyWord != null and !keyWord.equals('') ">
+            AND issue.title like CONCAT('%',#{keyWord},'%')
+            OR issue.description like CONCAT('%',#{keyWord},'%')
+            OR issue.start_date like CONCAT('%',#{keyWord},'%')
+            OR issue.complete_date like CONCAT('%',#{keyWord},'%')
+            OR issue.issue_number like CONCAT('%',#{keyWord},'%')
+            OR issue.register_date like CONCAT('%',#{keyWord},'%')
+            OR project.name like CONCAT('%',#{keyWord},'%')
+            OR project.project_key like CONCAT('%',#{keyWord},'%')
+            OR issue_type.name like CONCAT('%',#{keyWord},'%')
+            OR issue_status.issue_status_type like CONCAT('%',#{keyWord},'%')
+            OR issue_status.name like CONCAT('%',#{keyWord},'%')
+            OR priority.name like CONCAT('%',#{keyWord},'%')
+            OR severity.name like CONCAT('%',#{keyWord},'%')
+            OR issue_custom.use_value like CONCAT('%',#{keyWord},'%')
+        </if>
+
+        <if test="title != null and !title.equals('')">
+            AND issue.title like CONCAT('%',#{title},'%')
+        </if>
+
+        <if test="description != null and !description.equals('')">
+            AND issue.description like CONCAT('%',#{description},'%')
+        </if>
+
+        <if test="issueNumber != null and !issueNumber.equals('')">
+            AND issue.issue_number = #{issueNumber}
+        </if>
+
+        <if test="beginRegisterDate != null and !beginRegisterDate.equals('')">
+            ANd issue.register_date >= #{beginRegisterDate}
+        </if>
+
+        <if test="endRegisterDate != null and !endRegisterDate.equals('')">
+            ANd issue.register_date <![CDATA[ <= ]]> #{endRegisterDate}
+        </if>
+
+        <if test="beginStartDate != null and !beginStartDate.equals('')">
+            ANd issue.start_date >= #{beginStartDate}
+        </if>
+
+        <if test="endStartDate != null and !endStartDate.equals('')">
+            ANd issue.start_date <![CDATA[ <= ]]> #{endStartDate}
+        </if>
+
+        <if test="beginCompleteDate != null and !beginCompleteDate.equals('')">
+            ANd issue.complete_date >= #{beginCompleteDate}
+        </if>
+
+        <if test="endCompleteDate != null and !endCompleteDate.equals('')">
+            ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate}
+        </if>
+
+        <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>
+
+        <choose>
+            <when test="projectIds.size != 0">
+                AND project.id IN
+                <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueStatusIds.size != 0">
+                AND issue_status.id IN
+                <foreach collection="issueStatusIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueTypeIds.size != 0">
+                AND issue_type.id IN
+                <foreach collection="issueTypeIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="priorityIds.size != 0">
+                AND priority.id IN
+                <foreach collection="priorityIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="severityIds.size != 0">
+                AND severity.id IN
+                <foreach collection="severityIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="registerIds.size != 0">
+                AND issue.register_id IN
+                <foreach collection="registerIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueIds.size != 0">
+                AND issue.id IN
+                <foreach collection="issueIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+        <choose>
+            <when test="excludeIds.size != 0">
+                AND issue.id NOT IN
+                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+        AND issue.parent_issue_id IS NULL
+        AND issue.reverse_index <![CDATA[ < ]]> 0
+        AND workspace.id = #{workspaceId}
+        GROUP BY issue.id
+        ORDER BY issue.register_date DESC
+        <if test="page != null and !page.equals('')">
+            limit #{pageSize} offset #{page};
+        </if>
+    </select>
+
+    <!--<select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
         SELECT
         COUNT(DISTINCT issue.id)
         FROM issue issue
@@ -301,6 +492,263 @@
         <choose>
             <when test="departmentIds.size != 0">
                 AND issue_department.department_id IN
+                <foreach collection="departmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="registerIds.size != 0">
+                AND issue.register_id IN
+                <foreach collection="registerIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueIds.size != 0">
+                AND issue.id IN
+                <foreach collection="issueIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+        <choose>
+            <when test="excludeIds.size != 0">
+                AND issue.id NOT IN
+                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+    </select>-->
+
+    <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
+        SELECT
+        COUNT(DISTINCT issue.id)
+        FROM issue issue
+        LEFT OUTER JOIN issue_department isd ON issue.id = isd.issue_id
+        WHERE 1=1
+        AND issue.parent_issue_id IS NULL
+        <if test="title != null and !title.equals('') ">
+            AND issue.title like CONCAT('%',#{title},'%')
+        </if>
+
+        <if test="description != null and !description.equals('')">
+            AND issue.description like CONCAT('%',#{description},'%')
+        </if>
+
+        <if test="issueNumber != null and !issueNumber.equals('')">
+            AND issue.issue_number = #{issueNumber}
+        </if>
+
+        <if test="beginRegisterDate != null and !beginRegisterDate.equals('')">
+            ANd issue.register_date >= #{beginRegisterDate}
+        </if>
+
+        <if test="endRegisterDate != null and !endRegisterDate.equals('')">
+            ANd issue.register_date <![CDATA[ <= ]]> #{endRegisterDate}
+        </if>
+
+        <if test="beginStartDate != null and !beginStartDate.equals('')">
+            ANd issue.start_date >= #{beginStartDate}
+        </if>
+
+        <if test="endStartDate != null and !endStartDate.equals('')">
+            ANd issue.start_date <![CDATA[ <= ]]> #{endStartDate}
+        </if>
+
+        <if test="beginCompleteDate != null and !beginCompleteDate.equals('')">
+            ANd issue.complete_date >= #{beginCompleteDate}
+        </if>
+
+        <if test="endCompleteDate != null and !endCompleteDate.equals('')">
+            ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate}
+        </if>
+
+        <choose>
+            <when test="projectIds.size != 0">
+                AND issue.project_id IN
+                <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueStatusIds.size != 0">
+                AND issue.issue_status_id IN
+                <foreach collection="issueStatusIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueTypeIds.size != 0">
+                AND issue.issue_type_id IN
+                <foreach collection="issueTypeIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="priorityIds.size != 0">
+                AND issue.priority_id IN
+                <foreach collection="priorityIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="severityIds.size != 0">
+                AND issue.severity_id IN
+                <foreach collection="severityIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="departmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="departmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="registerIds.size != 0">
+                AND issue.register_id IN
+                <foreach collection="registerIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueIds.size != 0">
+                AND issue.id IN
+                <foreach collection="issueIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+        <choose>
+            <when test="excludeIds.size != 0">
+                AND issue.id NOT IN
+                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+    </select>
+
+    <select id="countByDepartment" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
+        SELECT
+        COUNT(DISTINCT issue.id)
+        FROM issue issue
+        LEFT OUTER JOIN issue_department isd ON issue.id = isd.issue_id
+        WHERE 1=1
+        AND issue.parent_issue_id IS NULL
+        <if test="title != null and !title.equals('') ">
+            AND issue.title like CONCAT('%',#{title},'%')
+        </if>
+
+        <if test="description != null and !description.equals('')">
+            AND issue.description like CONCAT('%',#{description},'%')
+        </if>
+
+        <if test="issueNumber != null and !issueNumber.equals('')">
+            AND issue.issue_number = #{issueNumber}
+        </if>
+
+        <if test="beginRegisterDate != null and !beginRegisterDate.equals('')">
+            ANd issue.register_date >= #{beginRegisterDate}
+        </if>
+
+        <if test="endRegisterDate != null and !endRegisterDate.equals('')">
+            ANd issue.register_date <![CDATA[ <= ]]> #{endRegisterDate}
+        </if>
+
+        <if test="beginStartDate != null and !beginStartDate.equals('')">
+            ANd issue.start_date >= #{beginStartDate}
+        </if>
+
+        <if test="endStartDate != null and !endStartDate.equals('')">
+            ANd issue.start_date <![CDATA[ <= ]]> #{endStartDate}
+        </if>
+
+        <if test="beginCompleteDate != null and !beginCompleteDate.equals('')">
+            ANd issue.complete_date >= #{beginCompleteDate}
+        </if>
+
+        <if test="endCompleteDate != null and !endCompleteDate.equals('')">
+            ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate}
+        </if>
+
+        <choose>
+            <when test="myDepartmentIds.size != 0">
+                AND isd.department_id IN
+                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="projectIds.size != 0">
+                AND issue.project_id IN
+                <foreach collection="projectIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueStatusIds.size != 0">
+                AND issue.issue_status_id IN
+                <foreach collection="issueStatusIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="issueTypeIds.size != 0">
+                AND issue.issue_type_id IN
+                <foreach collection="issueTypeIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="priorityIds.size != 0">
+                AND issue.priority_id IN
+                <foreach collection="priorityIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="severityIds.size != 0">
+                AND issue.severity_id IN
+                <foreach collection="severityIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </when>
+        </choose>
+
+        <choose>
+            <when test="departmentIds.size != 0">
+                AND isd.department_id IN
                 <foreach collection="departmentIds" item="item" index="index" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -470,8 +918,8 @@
         d.id AS id,
         d.department_name AS departmentName
         FROM issue i
-        INNER JOIN issue_department issued ON issued.issue_id = i.id
-        INNER JOIN department d ON d.id = issued.department_id
+        INNER JOIN issue_department isd ON isd.issue_id = i.id
+        INNER JOIN department d ON d.id = isd.department_id
         WHERE 1=1
         <choose>
             <when test="issueIds.size != 0">

--
Gitblit v1.8.0