From e0e5ecc842ce5af1a7c0229a923c0edd4aaac2f1 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 08 2월 2022 16:45:30 +0900 Subject: [PATCH] 이슈 상세 검색 시 기간검색 가능 --- src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java | 31 +++++++++++++++ src/main/webapp/views/issue/issueListNormal.html | 19 +++++++++ src/main/resources/mybatis/query-template/issue-template.xml | 8 ++++ src/main/webapp/scripts/app/issue/issueList.controller.js | 6 +++ src/main/webapp/i18n/ko/global.json | 1 5 files changed, 65 insertions(+), 0 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java index ae863c5..a0b9fac 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.util.StringUtils; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; @@ -27,6 +28,8 @@ private String endStartDate; private String beginCompleteDate; private String endCompleteDate; + private String beginDateRange; + private String endDateRange; private Integer page; private Integer pageSize; private Long loginUserId; @@ -158,6 +161,18 @@ if (StringUtils.hasText(MapUtil.getString(conditions, "endCompleteDate"))) { Date endCompleteDate = DateUtil.convertStrToDate(MapUtil.getString(conditions, "endCompleteDate"), "yy-MM-dd"); condition.setEndCompleteDate(DateUtil.convertDateToStr(endCompleteDate, "yyyy-MM-dd")); + } + + if (StringUtils.hasText(MapUtil.getString(conditions, "dateRange"))) { + String dateRange = MapUtil.getString(conditions, "dateRange"); + if (!StringUtils.isEmpty(dateRange)) { + List<String> date = Arrays.asList(dateRange.split("~")); + + Date beginDateRange = DateUtil.convertStrToDate(date.get(0).trim(), "yy-MM-dd"); + condition.setBeginDateRange(DateUtil.convertDateToStr(beginDateRange, "yyyy-MM-dd")); + Date endDateRange = DateUtil.convertStrToDate(date.get(1).trim(), "yy-MM-dd"); + condition.setEndDateRange(DateUtil.convertDateToStr(endDateRange, "yyyy-MM-dd")); + } } if (MapUtil.getLongs(conditions, "projectIds") != null) { @@ -317,6 +332,22 @@ this.endCompleteDate = endCompleteDate; } + public String getBeginDateRange() { + return beginDateRange; + } + + public void setBeginDateRange(String beginDateRange) { + this.beginDateRange = beginDateRange; + } + + public String getEndDateRange() { + return endDateRange; + } + + public void setEndDateRange(String endDateRange) { + this.endDateRange = endDateRange; + } + public Integer getPage() { return page; } diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml index d220849..56c91b8 100644 --- a/src/main/resources/mybatis/query-template/issue-template.xml +++ b/src/main/resources/mybatis/query-template/issue-template.xml @@ -132,6 +132,10 @@ ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate} </if> + <if test="beginDateRange != null and !beginDateRange.equals('') and endDateRange != null and !endDateRange.equals('')"> + AND (issue.start_date BETWEEN #{beginDateRange} AND #{endDateRange} OR issue.complete_date BETWEEN #{beginDateRange} AND #{endDateRange}) + </if> + <if test="combinationIssueNumber == null or combinationIssueNumber.equals('')"> <if test="hideDownIssue != null and hideDownIssue == true"> AND issue.parent_issue_id IS NULL @@ -349,6 +353,10 @@ ANd issue.complete_date <![CDATA[ <= ]]> #{endCompleteDate} </if> + <if test="beginDateRange != null and !beginDateRange.equals('') and endDateRange != null and !endDateRange.equals('')"> + AND (issue.start_date BETWEEN #{beginDateRange} AND #{endDateRange} OR issue.complete_date BETWEEN #{beginDateRange} AND #{endDateRange}) + </if> + <if test="combinationIssueNumber == null or combinationIssueNumber.equals('')"> <if test="hideDownIssue != null and hideDownIssue == true"> AND issue.parent_issue_id IS NULL diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json index 7319699..01db0f7 100644 --- a/src/main/webapp/i18n/ko/global.json +++ b/src/main/webapp/i18n/ko/global.json @@ -740,6 +740,7 @@ "register": "�벑濡앹옄", "startDate": "�떆�옉�씪", "endDate": "醫낅즺�씪", + "dateRange": "湲곌컙", "company": "�뾽泥�", "isp": "ISP", "hosting": "�샇�뒪�똿", diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js index 4fe4e8b..53ddc18 100644 --- a/src/main/webapp/scripts/app/issue/issueList.controller.js +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -61,6 +61,7 @@ registerDateRange : "", // �벑濡앹씪 湲곌컙 寃��깋 startDateRange : "", // �떆�옉�씪 湲곌컙 寃��깋 completeDateRange : "", // �셿猷뚯씪 湲곌컙 寃��깋 + dateRange : "", // 湲곌컙 寃��깋 severityIds : [], // 以묒슂�룄 寃��깋 priorityIds : [], // �슦�꽑�닚�쐞 寃��깋 issueStatusIds : [], // �씠�뒋 �긽�깭 寃��깋 @@ -495,6 +496,7 @@ endStartDate : "", beginCompleteDate : "", endCompleteDate : "", + dateRange: "", hideCompleteIssue: $scope.vm.hideCompleteIssue, hideDownIssue : $scope.vm.hideDownIssue, isTree : $scope.vm.listMode === 1, @@ -618,6 +620,10 @@ conditions.beginCompleteDate = completeDateRange[0].trim(); conditions.endCompleteDate = completeDateRange[1].trim(); } + // 湲곌컙 + if ($rootScope.isDefined($scope.vm.search.dateRange)) { + conditions.dateRange = $scope.vm.search.dateRange.trim(); + } return conditions; diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html index 8e645ab..0d13530 100644 --- a/src/main/webapp/views/issue/issueListNormal.html +++ b/src/main/webapp/views/issue/issueListNormal.html @@ -87,6 +87,12 @@ <span ng-click="vm.search.completeDateRange = ''">횞</span> </p> + <!-- 湲곌컙 --> + <p ng-if="$root.isDefined(vm.search.dateRange)"> + {{vm.search.dateRange}} + <span ng-click="vm.search.dateRange = ''">횞</span> + </p> + <!-- �벑濡앹씪 --> <p ng-if="$root.isDefined(vm.search.registerDateRange)"> {{vm.search.registerDateRange}} @@ -264,6 +270,19 @@ </div> </div> + <div class="col-lg-3"> + <div class="form-group"> + <label> <span translate="common.dateRange">湲곌컙</span></label> + <input type="text" + readonly + class="form-control input-sm input-readonly" + ng-model="vm.search.dateRange" + modal-form-auto-scroll + date-format="YY-MM-DD" + parent-el="'#createdWidget'" + date-range-picker> + </div> + </div> <div class="col-lg-3" ng-repeat="customField in vm.customFields"> -- Gitblit v1.8.0