From 2c273d1072424a9363314fb258265cbf487f0297 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 16 12월 2021 17:48:46 +0900 Subject: [PATCH] - Excel Import 기능 담당부서도 들어가게 하기(기간 미지정 시에도 가능하도록 수정) - 이슈 통합검색 키워드에 업체,ISP,호스팅 정보도 포함 - 프로젝트에서 설정한 이슈유형만 보여주기 --- src/main/resources/mybatis/query-template/issue-template.xml | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 105 insertions(+), 13 deletions(-) diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml index d4dea19..87e2afb 100644 --- a/src/main/resources/mybatis/query-template/issue-template.xml +++ b/src/main/resources/mybatis/query-template/issue-template.xml @@ -46,6 +46,10 @@ 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 user_department ud ON ud.department_id = isd.department_id + LEFT OUTER JOIN department d ON d.id = isd.department_id + LEFT OUTER JOIN issue_company ic ON ic.issue_id = issue.id + LEFT OUTER JOIN issue_isp ii ON ii.issue_id = issue.id + LEFT OUTER JOIN issue_hosting ih ON ih.issue_id = 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) @@ -53,7 +57,7 @@ LEFT OUTER JOIN user user ON issue_user.user_id = user.id WHERE 1=1 <if test="keyWord != null and !keyWord.equals('') "> - AND issue.title like CONCAT('%',#{keyWord},'%') + 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},'%') @@ -67,6 +71,27 @@ OR priority.name like CONCAT('%',#{keyWord},'%') OR severity.name like CONCAT('%',#{keyWord},'%') OR issue_custom.use_value like CONCAT('%',#{keyWord},'%') + OR d.department_name like CONCAT('%',#{keyWord},'%') + OR ic.name like CONCAT('%',#{keyWord},'%') + OR ic.manager like CONCAT('%',#{keyWord},'%') + OR ic.tel like CONCAT('%',#{keyWord},'%') + OR ic.email like CONCAT('%',#{keyWord},'%') + OR ic.url like CONCAT('%',#{keyWord},'%') + OR ic.memo like CONCAT('%',#{keyWord},'%') + OR ii.name like CONCAT('%',#{keyWord},'%') + OR ii.code like CONCAT('%',#{keyWord},'%') + OR ii.manager like CONCAT('%',#{keyWord},'%') + OR ii.tel like CONCAT('%',#{keyWord},'%') + OR ii.email like CONCAT('%',#{keyWord},'%') + OR ii.url like CONCAT('%',#{keyWord},'%') + OR ii.memo like CONCAT('%',#{keyWord},'%') + OR ih.name like CONCAT('%',#{keyWord},'%') + OR ih.code like CONCAT('%',#{keyWord},'%') + OR ih.manager like CONCAT('%',#{keyWord},'%') + OR ih.tel like CONCAT('%',#{keyWord},'%') + OR ih.email like CONCAT('%',#{keyWord},'%') + OR ih.url like CONCAT('%',#{keyWord},'%') + OR ih.memo like CONCAT('%',#{keyWord},'%')) </if> <if test="title != null and !title.equals('')"> @@ -105,7 +130,13 @@ ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate} </if> - <if test="hideIssue != null and hideIssue == true"> + <if test="combinationIssueNumber == null or combinationIssueNumber.equals('')"> + <if test="hideDownIssue != null and hideDownIssue == true"> + AND issue.parent_issue_id IS NULL + </if> + </if> + + <if test="hideCompleteIssue != null and hideCompleteIssue == true"> AND issue_status.issue_status_type != 'CLOSE' </if> @@ -206,9 +237,6 @@ </foreach> </when> </choose> - <if test="combinationIssueNumber == null or combinationIssueNumber.equals('')"> - AND issue.parent_issue_id IS NULL - </if> AND issue.reverse_index <![CDATA[ < ]]> 0 AND workspace.id = #{workspaceId} GROUP BY issue.id @@ -550,12 +578,65 @@ SELECT COUNT(DISTINCT issue.id) FROM issue issue - LEFT OUTER JOIN issue_department isd ON issue.id = isd.issue_id - LEFT OUTER JOIN issue_status iss ON iss.id = issue.issue_status_id + 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 + LEFT OUTER JOIN issue_custom_field_value issue_custom FORCE INDEX(issueIdIndex) ON issue.id = issue_custom.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 user_department ud ON ud.department_id = isd.department_id + LEFT OUTER JOIN department d ON d.id = isd.department_id + LEFT OUTER JOIN issue_company ic ON ic.issue_id = issue.id + LEFT OUTER JOIN issue_isp ii ON ii.issue_id = issue.id + LEFT OUTER JOIN issue_hosting ih ON ih.issue_id = 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) + LEFT OUTER JOIN user user ON issue_user.user_id = user.id WHERE 1=1 - AND issue.parent_issue_id IS NULL - <if test="title != null and !title.equals('') "> + <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},'%') + OR d.department_name like CONCAT('%',#{keyWord},'%') + OR ic.name like CONCAT('%',#{keyWord},'%') + OR ic.manager like CONCAT('%',#{keyWord},'%') + OR ic.tel like CONCAT('%',#{keyWord},'%') + OR ic.email like CONCAT('%',#{keyWord},'%') + OR ic.url like CONCAT('%',#{keyWord},'%') + OR ic.memo like CONCAT('%',#{keyWord},'%') + OR ii.name like CONCAT('%',#{keyWord},'%') + OR ii.code like CONCAT('%',#{keyWord},'%') + OR ii.manager like CONCAT('%',#{keyWord},'%') + OR ii.tel like CONCAT('%',#{keyWord},'%') + OR ii.email like CONCAT('%',#{keyWord},'%') + OR ii.url like CONCAT('%',#{keyWord},'%') + OR ii.memo like CONCAT('%',#{keyWord},'%') + OR ih.name like CONCAT('%',#{keyWord},'%') + OR ih.code like CONCAT('%',#{keyWord},'%') + OR ih.manager like CONCAT('%',#{keyWord},'%') + OR ih.tel like CONCAT('%',#{keyWord},'%') + OR ih.email like CONCAT('%',#{keyWord},'%') + OR ih.url like CONCAT('%',#{keyWord},'%') + OR ih.memo like CONCAT('%',#{keyWord},'%')) + </if> + + <if test="title != null and !title.equals('')"> AND issue.title like CONCAT('%',#{title},'%') </if> @@ -591,8 +672,14 @@ ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate} </if> - <if test="hideIssue != null and hideIssue == true"> - AND iss.issue_status_type != 'CLOSE' + <if test="combinationIssueNumber == null or combinationIssueNumber.equals('')"> + <if test="hideDownIssue != null and hideDownIssue == true"> + AND issue.parent_issue_id IS NULL + </if> + </if> + + <if test="hideCompleteIssue != null and hideCompleteIssue == true"> + AND issue_status.issue_status_type != 'CLOSE' </if> <choose> @@ -692,7 +779,6 @@ LEFT OUTER JOIN issue_department isd ON issue.id = isd.issue_id LEFT OUTER JOIN issue_status iss ON iss.id = issue.issue_status_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> @@ -729,7 +815,13 @@ ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate} </if> - <if test="hideIssue != null and hideIssue == true"> + <if test="combinationIssueNumber == null or combinationIssueNumber.equals('')"> + <if test="hideDownIssue != null and hideDownIssue == true"> + AND issue.parent_issue_id IS NULL + </if> + </if> + + <if test="hideCompleteIssue != null and hideCompleteIssue == true"> AND iss.issue_status_type != 'CLOSE' </if> -- Gitblit v1.8.0