From 608e92c8180a06db472694bbaec3afbb5798c2a1 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 07 12월 2021 19:31:00 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 31 ++++++++++++++- src/main/resources/mybatis/query-template/issue-template.xml | 12 +++++- src/main/webapp/scripts/app/issue/issueDetail.controller.js | 12 +++--- src/main/java/kr/wisestone/owl/service/impl/IssueTableConfigServiceImpl.java | 4 + src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java | 10 +++++ 5 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index 7c58174..290fc31 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -242,7 +242,7 @@ issueForm.setSeverityId(issueApiDefault.getSeverity().getId()); } - // 以묐났 媛� �븯�쐞 �씠�뒋濡� 泥섎━�븯湲� + // 以묐났 媛� �긽�쐞 �씠�뒋�쓽 �븯�쐞 �씠�뒋濡� 泥섎━�븯湲� CustomFieldApiOverlapForm customFieldApiOverlapForm = new CustomFieldApiOverlapForm(); customFieldApiOverlapForm.setUserId(user.getId()); customFieldApiOverlapForm.setIssueTypeId(issueForm.getIssueTypeId()); @@ -311,14 +311,25 @@ return issues; } + // �긽�쐞 �씠�뒋 媛��졇�삤湲� + private IssueVo getParentIssueVo(Long parentIssueId) { + if (parentIssueId != null) { + Issue parentIssue = this.getIssue(parentIssueId); + return ConvertUtil.copyProperties(parentIssue, IssueVo.class); + } + return null; + } + // 以묐났�맂 �긽�쐞 �씠�뒋 寃��깋 private List<IssueVo> findIssue(IssueApiForm issueApiForm, List<CustomFieldApiOverlap> customFieldApiOverlaps, Long userId) { List<IssueVo> resultIssueVos = new ArrayList<>(); + if (customFieldApiOverlaps != null && customFieldApiOverlaps.size() > 0) { for (CustomFieldApiOverlap customFieldApiOverlap : customFieldApiOverlaps) { for (IssueCustomFieldValueForm issueCustomFieldValue : issueApiForm.getIssueCustomFieldValues()) { IssueCustomFieldValueCondition issueCustomFieldValueCondition = new IssueCustomFieldValueCondition(); + issueCustomFieldValueCondition.setUseParentIssueId(true); if (customFieldApiOverlap.getCustomField().getId().equals(issueCustomFieldValue.getCustomFieldId())) { issueCustomFieldValueCondition.setUseValue(issueCustomFieldValue.getUseValue()); @@ -1442,12 +1453,20 @@ @Override @Transactional public List<IssueVo> findIssue(IssueApiForm issueApiform) { + List<IssueCustomFieldValueForm> issueCustomFieldValueForms = issueApiform.getIssueCustomFieldValues(); List<IssueVo> resultIssueVos = new ArrayList<>(); IssueCustomFieldValueCondition issueCustomFieldValueCondition = new IssueCustomFieldValueCondition(); + issueCustomFieldValueCondition.setUseParentIssueId(false); if (issueCustomFieldValueForms.size() > 0) { for (IssueCustomFieldValueForm issueCustomFieldValueForm : issueCustomFieldValueForms) { + + CustomField customField = this.customFieldService.getCustomField(issueCustomFieldValueForm.getCustomFieldId()); + CustomFieldType customFieldType = CustomFieldType.DATETIME; + if (customFieldType.equals(customField.getCustomFieldType())) { + continue; + } // issueCustomFieldValueCondition.addUseValue(issueCustomFieldValueForm.getUseValue()); issueCustomFieldValueCondition.setUseValue(issueCustomFieldValueForm.getUseValue()); List<Map<String, Object>> results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition); @@ -1457,6 +1476,8 @@ resultIssueVos.clear(); for (Map<String, Object> result : results) { IssueVo issueVo = ConvertUtil.convertMapToClass(result, IssueVo.class); + + issueVo.setParentIssueVo(this.getParentIssueVo(MapUtil.getLong(result, "parentIssueId"))); if (findIssueVos.size() == 0) { resultIssueVos.add(issueVo); @@ -1495,11 +1516,17 @@ User user = this.convertToUser(issueApiForm.getToken()); IssueForm issueForm = this.convertToIssueForm(issueApiForm, user); + List<IssueVo> issueVos = this.findIssue(issueApiForm); if (issueVos != null && issueVos.size() > 0) { List<Issue> issue = Lists.newArrayList(); for (IssueVo issueVo : issueVos) { - issueForm.setId(issueVo.getId()); + IssueVo parentIssueVo = issueVo.getParentIssueVo(); + if (parentIssueVo != null) { + issueForm.setId(parentIssueVo.getId()); + } else { + issueForm.setId(issueVo.getId()); + } issue.add(this.modifyIssueForApi(user, issueForm, files)); } return issue; diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTableConfigServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTableConfigServiceImpl.java index ce863bf..4a8da1d 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTableConfigServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTableConfigServiceImpl.java @@ -114,7 +114,9 @@ // �빐�떦 �뾽臾� 怨듦컙�뿉�꽌 �궗�슜�옄�쓽 �씠�뒋 寃��깋 議곌굔�쓣 議고쉶�븳�떎. IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceIdAndIssueTypeIdAndIssueTableType(issueTypeId, issueTableType); - if (issueTableConfig != null) { + if (issueTableConfig != null && issueTableConfig.getIssueTableType() == 2) { + resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs()); + } else if (issueTableConfig != null && issueTableConfig.getIssueTableType() == 3) { resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs()); } else { diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java index 478b78d..9231e18 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCustomFieldValueCondition.java @@ -18,6 +18,7 @@ private String customFieldType; private List<String> useValues = Lists.newArrayList(); // �떒�씪, �떎以� �씪�븣 寃��깋 媛� private String useValue; // �뀓�뒪�듃 �븘�뱶�씪 �븣 寃��깋 媛� + private boolean useParentIssueId = true; public IssueCustomFieldValueCondition(){} @@ -103,4 +104,13 @@ public void setCustomFieldType(String customFieldType) { this.customFieldType = customFieldType; } + + public boolean isUseParentIssueId() { + return useParentIssueId; + } + + public void setUseParentIssueId(boolean useParentIssueId) { + this.useParentIssueId = useParentIssueId; + } + } diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml index bbf5ef7..980a1ed 100644 --- a/src/main/resources/mybatis/query-template/issue-template.xml +++ b/src/main/resources/mybatis/query-template/issue-template.xml @@ -959,12 +959,20 @@ <!-- �듅�젙 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪씠 媛숈� �씠�뒋瑜� 議고쉶 --> <select id="findByCustomFieldValue" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueCustomFieldValueCondition"> SELECT - issue_custom.issue_id as id + 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 iss.parent_issue_id IS NULL 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> </select> </mapper> diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index da36afb..aa5a3b3 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -134,9 +134,9 @@ angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊 - $scope.$on("getIssueList", function () { - $scope.fn.getIssueDetail(); - }); + // $scope.$on("getIssueList", function () { + // $scope.fn.getIssueDetail(); + // }); @@ -909,9 +909,9 @@ //$scope.vm.form.issuesDown.push(issueDownVo.issueDown); $scope.vm.form.issuesDown.push(issueDownVo); // 媛꾪뿉�쟻�씤 �븯�쐞 �씠�뒋 媛깆떊 �삤瑜� 諛⑹� - $rootScope.$on("getIssueDetail", function (event, args) { - $scope.fn.getIssueDetail(); - }); + // $rootScope.$on("getIssueDetail", function (event, args) { + // $scope.fn.getIssueDetail(); + // }); }); } -- Gitblit v1.8.0