OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-10 3bdf2a1f2757de8ab6570508385d89124243943c
src/main/resources/mybatis/query-template/issue-template.xml
@@ -104,6 +104,10 @@
            ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate}
        </if>
        <if test="hideIssue != null and hideIssue == true">
            AND issue_status.issue_status_type != 'CLOSE'
        </if>
        <choose>
            <when test="projectIds.size != 0">
                AND project.id IN
@@ -193,7 +197,6 @@
            </when>
        </choose>
        AND issue.parent_issue_id IS NULL
        AND issue_status.issue_status_type != 'CLOSE'
        AND issue.reverse_index <![CDATA[ < ]]> 0
        AND workspace.id = #{workspaceId}
        GROUP BY issue.id
@@ -302,6 +305,10 @@
            ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate}
        </if>
        <if test="hideIssue != null and hideIssue == true">
            AND issue_status.issue_status_type != 'CLOSE'
        </if>
        <choose>
            <when test="myDepartmentIds.size != 0">
                AND isd.department_id IN
@@ -385,7 +392,6 @@
            </when>
        </choose>
        AND issue.parent_issue_id IS NULL
        AND issue_status.issue_status_type != 'CLOSE'
        AND issue.reverse_index <![CDATA[ < ]]> 0
        AND workspace.id = #{workspaceId}
        GROUP BY issue.id
@@ -536,7 +542,6 @@
        LEFT OUTER JOIN issue_status iss ON iss.id = issue.issue_status_id
        WHERE 1=1
        AND issue.parent_issue_id IS NULL
        AND iss.issue_status_type != 'CLOSE'
        <if test="title != null and !title.equals('') ">
            AND issue.title like CONCAT('%',#{title},'%')
        </if>
@@ -571,6 +576,10 @@
        <if test="endCompleteDate != null and !endCompleteDate.equals('')">
            ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate}
        </if>
        <if test="hideIssue != null and hideIssue == true">
            AND iss.issue_status_type != 'CLOSE'
        </if>
        <choose>
@@ -662,7 +671,6 @@
        LEFT OUTER JOIN issue_status iss ON iss.id = issue.issue_status_id
        WHERE 1=1
        AND issue.parent_issue_id IS NULL
        AND iss.issue_status_type != 'CLOSE'
        <if test="title != null and !title.equals('') ">
            AND issue.title like CONCAT('%',#{title},'%')
        </if>
@@ -699,6 +707,10 @@
            ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate}
        </if>
        <if test="hideIssue != null and hideIssue == true">
            AND iss.issue_status_type != 'CLOSE'
        </if>
        <choose>
            <when test="myDepartmentIds.size != 0">
                AND isd.department_id IN
@@ -706,6 +718,9 @@
                    #{item}
                </foreach>
            </when>
            <otherwise>
                AND 1 != 1
            </otherwise>
        </choose>
        <choose>
@@ -954,8 +969,6 @@
                    AND is_api = #{isApi};
    </select>
    <!--    이슈 상태를 사용하는 이슈 갯수를 조회한다. -->
    <select id="countByIssueStatusId" resultType="java.lang.Long" parameterType="java.lang.Long">
        SELECT COUNT(DISTINCT id) FROM
@@ -966,29 +979,32 @@
    <!--    특정 사용자 정의 필드 값이 같은 이슈를 조회 -->
    <select id="findByCustomFieldValue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition">
        SELECT
        issue_custom.issue_id as id,
        iss.parent_issue_id as parentIssueId
        FROM issue_custom_field_value issue_custom
        INNER JOIN issue iss ON iss.id = issue_custom.issue_id
        WHERE 1=1
        AND issue_custom.use_value = #{useValue}
        <choose>
          <when test="useParentIssueId.equals(true)">
              AND iss.parent_issue_id IS NULL
          </when>
          <otherwise>
              AND iss.parent_issue_id IS NOT NULL
          </otherwise>
        </choose>
            issue.id as id,
            issue.title as title,
            customFieldValue.customFieldType AS customFieldType,
            GROUP_CONCAT(customFieldValue.useValue) AS concatUseValue
        FROM issue issue FORCE INDEX(reverseIndex)
        INNER JOIN issue_status as issStatus ON issue.issue_status_id = issStatus.id
        LEFT OUTER JOIN (
            SELECT cf.id AS customFieldId, cf.custom_field_type AS customFieldType, issue_custom.use_value AS useValue, issue_custom.issue_id AS issueId
            FROM issue_custom_field_value issue_custom
            INNER JOIN custom_field cf ON cf.id = issue_custom.custom_field_id
            ORDER BY issue_custom.id ASC) customFieldValue ON customFieldValue.issueId = issue.id
        WHERE issStatus.issue_status_type != 'CLOSE'
        GROUP BY issue.id
        HAVING concatUseValue LIKE CONCAT('%', #{useValue}, '%')
    </select>
    <!--  종료 안된 하위 이슈 가져오기 -->
    <select id="findNotCompleteByParentIssueId" resultType="java.util.HashMap" parameterType="java.lang.Long">
    <select id="findNotCompleteByParentIssueId" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCondition">
        SELECT
        iss.id as id
        iss.id as id,
        iss.title as title
        FROM issue iss
        INNER JOIN issue_status issueStatus on iss.issue_status_id = issueStatus.id
        WHERE iss.parent_issue_id = #{parentIssueId}
        AND iss.id != #{id}
        AND issueStatus.issue_status_type != 'CLOSE'
    </select>
</mapper>