From 8c9fe9cf7890c0360672b8cd6924c76f11452006 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 월, 20 12월 2021 17:00:01 +0900 Subject: [PATCH] - 이슈상세에서 하위이슈 추가 검색시 상위 이슈는 검색 리스트에서 제외 - 이슈상세에서 연관 이슈/하위 이슈 리스트 전체 불러오기(10개이상 스크롤) - 이슈추가,수정 시 파트너 정보 불러오기 수정 - 하위이슈 히스토리 코드 수정 --- src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java | 10 + src/main/webapp/scripts/app/issue/issueAddRelation.controller.js | 53 +++++++--- src/main/webapp/scripts/app/issue/issueAddDown.controller.js | 53 +++++++--- src/main/webapp/views/issue/issueDetail.html | 5 src/main/webapp/scripts/app/issue/issueDetail.controller.js | 29 +++-- src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java | 11 + src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java | 11 + src/main/webapp/scripts/app/issue/issueAdd.controller.js | 18 +++ src/main/webapp/scripts/app/issue/issueModify.controller.js | 52 +++++++--- 9 files changed, 173 insertions(+), 69 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java index 94e0681..54e03d3 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java @@ -47,7 +47,7 @@ if (issueCompanyFields != null && issueCompanyFields.size() > 0) { Map<String, Object> param = issueCompanyFields.get(0); - if (param != null) { + if (param != null && param.get("companyId") != null && param.get("companyId") != "") { CompanyField companyField = this.companyFieldService.getCompany(MapUtil.getLong(param, "companyId")); //companyId 媛��졇�삤湲� Set<IssueCompany> issueCompanies = issue.getIssueCompanies(); @@ -62,20 +62,24 @@ issueCompany.setCompanyField(companyField); issueCompany.setName(MapUtil.getString(param, "name")); issueCompany.setEmail(MapUtil.getString(param, "email")); + issueCompany.setUrl(MapUtil.getString(param, "url")); issueCompany.setManager(MapUtil.getString(param, "manager")); issueCompany.setTel(MapUtil.getString(param, "tel")); issueCompany.setMemo(MapUtil.getString(param, "memo")); } else { //異붽� �븷 寃쎌슦 issueCompany = ConvertUtil.convertMapToClass(param, IssueCompany.class); issueCompany.setIssue(issue); - issueCompany.setCompanyField(companyField); + if (companyField != null) { + issueCompany.setCompanyField(companyField); + } // 異붽� �씠�젰 StringBuilder sb = new StringBuilder(); issueHistoryService.detectIssueCompany(IssueHistoryType.ADD, param, issueCompany, sb); issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); } this.issueCompanyRepository.saveAndFlush(issueCompany); - + } else { + this.issueCompanyRepository.deleteById(MapUtil.getLong(param, "id")); } } } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java index 9437299..8bd2b6c 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueHostingServiceImpl.java @@ -49,11 +49,11 @@ if (issueIspFields != null && issueIspFields.size() > 0) { Map<String, Object> param = issueIspFields.get(0); - if (param != null) { + if (param != null && param.get("hostingId") != null && param.get("hostingId") != "") { HostingField hostingField = this.hostingFieldService.getHosting(MapUtil.getLong(param, "hostingId")); Set<IssueHosting> issueHostings = issue.getIssueHostingFields(); - IssueHosting issueHosting = null; + IssueHosting issueHosting = new IssueHosting(); if (issueHostings != null && issueHostings.size() >0){//�닔�젙 �븷 寃쎌슦 issueHosting = issueHostings.iterator().next(); @@ -66,19 +66,24 @@ issueHosting.setName(MapUtil.getString(param, "name")); issueHosting.setEmail(MapUtil.getString(param, "email")); issueHosting.setCode(MapUtil.getString(param, "code")); + issueHosting.setUrl(MapUtil.getString(param, "url")); issueHosting.setManager(MapUtil.getString(param, "manager")); issueHosting.setTel(MapUtil.getString(param, "tel")); issueHosting.setMemo(MapUtil.getString(param, "memo")); }else{//異붽� �븷 寃쎌슦 issueHosting = ConvertUtil.convertMapToClass(param, IssueHosting.class); issueHosting.setIssue(issue); - issueHosting.setHostingField(hostingField); + if (hostingField != null) { + issueHosting.setHostingField(hostingField); + } // 異붽� �씠�젰 StringBuilder sb = new StringBuilder(); issueHistoryService.detectIssueHosting(IssueHistoryType.ADD, param, issueHosting, sb); issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); } this.issueHostingRepository.saveAndFlush(issueHosting); + }else { + this.issueHostingRepository.deleteById(MapUtil.getLong(param, "id")); } } } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java index 2cd7eef..7ea2290 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueIspServiceImpl.java @@ -47,11 +47,11 @@ if (issueIspFields != null && issueIspFields.size() > 0) { Map<String, Object> param = issueIspFields.get(0); - if (param != null) { + if (param != null && param.get("ispId") != null && param.get("ispId") != "") { IspField ispField = this.ispFieldService.getIsp(MapUtil.getLong(param, "ispId")); Set<IssueIsp> issueIsps = issue.getIssueIspFields(); - IssueIsp issueIsp = null; + IssueIsp issueIsp = new IssueIsp(); if (issueIsps != null && issueIsps.size() > 0) {//�닔�젙 �븷 寃쎌슦 issueIsp = issueIsps.iterator().next(); @@ -64,19 +64,24 @@ issueIsp.setName(MapUtil.getString(param, "name")); issueIsp.setEmail(MapUtil.getString(param, "email")); issueIsp.setCode(MapUtil.getString(param, "code")); + issueIsp.setUrl(MapUtil.getString(param, "url")); issueIsp.setManager(MapUtil.getString(param, "manager")); issueIsp.setTel(MapUtil.getString(param, "tel")); issueIsp.setMemo(MapUtil.getString(param, "memo")); } else {//異붽� �븷 寃쎌슦 issueIsp = ConvertUtil.convertMapToClass(param, IssueIsp.class); issueIsp.setIssue(issue); - issueIsp.setIspField(ispField); + if (ispField != null) { + issueIsp.setIspField(ispField); + } // 異붽� �씠�젰 StringBuilder sb = new StringBuilder(); issueHistoryService.detectIssueIsp(IssueHistoryType.ADD, param, issueIsp, sb); issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, sb.toString()); } this.issueIspRepository.saveAndFlush(issueIsp); + }else { + this.issueIspRepository.deleteById(MapUtil.getLong(param, "id")); } } } diff --git a/src/main/webapp/scripts/app/issue/issueAdd.controller.js b/src/main/webapp/scripts/app/issue/issueAdd.controller.js index cc4ba3a..f23ed07 100644 --- a/src/main/webapp/scripts/app/issue/issueAdd.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAdd.controller.js @@ -399,6 +399,24 @@ $scope.vm.companyUrl = result[0].url; $scope.vm.companyMemo = result[0].memo; + $scope.vm.ispId = ""; + $scope.vm.ispName = ""; + $scope.vm.ispCode = ""; + $scope.vm.ispManager = ""; + $scope.vm.ispTel = ""; + $scope.vm.ispEmail = ""; + $scope.vm.ispUrl = ""; + $scope.vm.ispMemo = ""; + + $scope.vm.hostingId = ""; + $scope.vm.hostingName = ""; + $scope.vm.hostingCode = ""; + $scope.vm.hostingManager = ""; + $scope.vm.hostingTel = ""; + $scope.vm.hostingEmail = ""; + $scope.vm.hostingUrl = ""; + $scope.vm.hostingMemo = ""; + if (ispFieldVo != null){ $scope.vm.ispId = ispFieldVo.id; $scope.vm.ispName = ispFieldVo.name; diff --git a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js index 0285107..5c4df4a 100644 --- a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js @@ -394,23 +394,44 @@ $scope.vm.companyUrl = result[0].url; $scope.vm.companyMemo = result[0].memo; - $scope.vm.ispId = ispFieldVo.id; - $scope.vm.ispName = ispFieldVo.name; - $scope.vm.ispCode = ispFieldVo.code; - $scope.vm.ispManager = ispFieldVo.manager; - $scope.vm.ispTel = ispFieldVo.tel; - $scope.vm.ispEmail = ispFieldVo.email; - $scope.vm.ispUrl = ispFieldVo.url; - $scope.vm.ispMemo = ispFieldVo.memo; + $scope.vm.ispId = ""; + $scope.vm.ispName = ""; + $scope.vm.ispCode = ""; + $scope.vm.ispManager = ""; + $scope.vm.ispTel = ""; + $scope.vm.ispEmail = ""; + $scope.vm.ispUrl = ""; + $scope.vm.ispMemo = ""; - $scope.vm.hostingId = hostingFieldVo.id; - $scope.vm.hostingName = hostingFieldVo.name; - $scope.vm.hostingCode = hostingFieldVo.code; - $scope.vm.hostingManager = hostingFieldVo.manager; - $scope.vm.hostingTel = hostingFieldVo.tel; - $scope.vm.hostingEmail = hostingFieldVo.email; - $scope.vm.hostingUrl = hostingFieldVo.url; - $scope.vm.hostingMemo = hostingFieldVo.memo; + $scope.vm.hostingId = ""; + $scope.vm.hostingName = ""; + $scope.vm.hostingCode = ""; + $scope.vm.hostingManager = ""; + $scope.vm.hostingTel = ""; + $scope.vm.hostingEmail = ""; + $scope.vm.hostingUrl = ""; + $scope.vm.hostingMemo = ""; + + if (ispFieldVo != null){ + $scope.vm.ispId = ispFieldVo.id; + $scope.vm.ispName = ispFieldVo.name; + $scope.vm.ispCode = ispFieldVo.code; + $scope.vm.ispManager = ispFieldVo.manager; + $scope.vm.ispTel = ispFieldVo.tel; + $scope.vm.ispEmail = ispFieldVo.email; + $scope.vm.ispUrl = ispFieldVo.url; + $scope.vm.ispMemo = ispFieldVo.memo; + } + if (hostingFieldVo != null){ + $scope.vm.hostingId = hostingFieldVo.id; + $scope.vm.hostingName = hostingFieldVo.name; + $scope.vm.hostingCode = hostingFieldVo.code; + $scope.vm.hostingManager = hostingFieldVo.manager; + $scope.vm.hostingTel = hostingFieldVo.tel; + $scope.vm.hostingEmail = hostingFieldVo.email; + $scope.vm.hostingUrl = hostingFieldVo.url; + $scope.vm.hostingMemo = hostingFieldVo.memo; + } }); // ISP�젙蹂� 寃곌낵 媛� Event 泥섎━(set) diff --git a/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js b/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js index 0c125e6..b13739f 100644 --- a/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAddRelation.controller.js @@ -406,23 +406,44 @@ $scope.vm.companyUrl = result[0].url; $scope.vm.companyMemo = result[0].memo; - $scope.vm.ispId = ispFieldVo.id; - $scope.vm.ispName = ispFieldVo.name; - $scope.vm.ispCode = ispFieldVo.code; - $scope.vm.ispManager = ispFieldVo.manager; - $scope.vm.ispTel = ispFieldVo.tel; - $scope.vm.ispEmail = ispFieldVo.email; - $scope.vm.ispUrl = ispFieldVo.url; - $scope.vm.ispMemo = ispFieldVo.memo; + $scope.vm.ispId = ""; + $scope.vm.ispName = ""; + $scope.vm.ispCode = ""; + $scope.vm.ispManager = ""; + $scope.vm.ispTel = ""; + $scope.vm.ispEmail = ""; + $scope.vm.ispUrl = ""; + $scope.vm.ispMemo = ""; - $scope.vm.hostingId = hostingFieldVo.id; - $scope.vm.hostingName = hostingFieldVo.name; - $scope.vm.hostingCode = hostingFieldVo.code; - $scope.vm.hostingManager = hostingFieldVo.manager; - $scope.vm.hostingTel = hostingFieldVo.tel; - $scope.vm.hostingEmail = hostingFieldVo.email; - $scope.vm.hostingUrl = hostingFieldVo.url; - $scope.vm.hostingMemo = hostingFieldVo.memo; + $scope.vm.hostingId = ""; + $scope.vm.hostingName = ""; + $scope.vm.hostingCode = ""; + $scope.vm.hostingManager = ""; + $scope.vm.hostingTel = ""; + $scope.vm.hostingEmail = ""; + $scope.vm.hostingUrl = ""; + $scope.vm.hostingMemo = ""; + + if (ispFieldVo != null){ + $scope.vm.ispId = ispFieldVo.id; + $scope.vm.ispName = ispFieldVo.name; + $scope.vm.ispCode = ispFieldVo.code; + $scope.vm.ispManager = ispFieldVo.manager; + $scope.vm.ispTel = ispFieldVo.tel; + $scope.vm.ispEmail = ispFieldVo.email; + $scope.vm.ispUrl = ispFieldVo.url; + $scope.vm.ispMemo = ispFieldVo.memo; + } + if (hostingFieldVo != null){ + $scope.vm.hostingId = hostingFieldVo.id; + $scope.vm.hostingName = hostingFieldVo.name; + $scope.vm.hostingCode = hostingFieldVo.code; + $scope.vm.hostingManager = hostingFieldVo.manager; + $scope.vm.hostingTel = hostingFieldVo.tel; + $scope.vm.hostingEmail = hostingFieldVo.email; + $scope.vm.hostingUrl = hostingFieldVo.url; + $scope.vm.hostingMemo = hostingFieldVo.memo; + } }); // ISP�젙蹂� 寃곌낵 媛� Event 泥섎━(set) diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index a6c9c90..37fadd0 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -55,7 +55,7 @@ // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� $scope.vm.viewer = {}; // �쁽�옱 �씠�뒋 $scope.vm.images = []; // 泥⑤��맂 �뙆�씪 以� �씠誘몄� �뙆�씪 - $scope.vm.activeTab = "ALL"; // �솢�룞 �궡�뿭 �꺆 + $scope.vm.activeTab = "RECODE"; // �솢�룞 �궡�뿭 �꺆 // �씠�뒋 �긽�깭 蹂�寃� �몴�떆 �뿬遺� $scope.vm.editor = { issueStatus : false @@ -1000,16 +1000,24 @@ $scope.vm.viewer.activeParentHistory = ""; $scope.vm.viewer.activeDownHistory = ""; $scope.vm.viewer.activeDownAllHistory = ""; + $scope.vm.viewer.downComment = ""; var downTitle = ""; + var oriDownHistory = []; + var oriDownCommentHistory = []; + // �븯�쐞�씠�뒋 �엳�뒪�넗由� for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++){ - if($scope.vm.viewer.issueDownVos.length > 1){ - $scope.vm.viewer.activeDownHistory = $scope.vm.viewer.issueDownVos[i].issueHistoryVos.concat($scope.vm.viewer.issueDownVos[i+1].issueHistoryVos); - i++; - }else { - $scope.vm.viewer.activeDownHistory = $scope.vm.viewer.issueDownVos[i].issueHistoryVos; + oriDownHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos); + oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos); + } + for (var i=0; i<oriDownHistory.length; i++){ + if ($scope.vm.viewer.activeDownHistory === "") { + $scope.vm.viewer.activeDownHistory = oriDownHistory[i]; + } else { + $scope.vm.viewer.activeDownHistory = $scope.vm.viewer.activeDownHistory.concat(oriDownHistory[i]); } } + for (var i=0; i<$scope.vm.viewer.activeDownHistory.length; i++){ downTitle = "<div class='dot' style='margin-bottom: -8px'>*�븯�쐞�씠�뒋 : "+$scope.vm.viewer.activeDownHistory[i].title+"</div>"; $scope.vm.viewer.activeDownHistory[i].desc = downTitle + $scope.vm.viewer.activeDownHistory[i].description; @@ -1019,12 +1027,11 @@ }); // �븯�쐞�씠�뒋 �뙎湲� �엳�뒪�넗由� - for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++) { - if($scope.vm.viewer.issueDownVos.length > 1){ - $scope.vm.viewer.downComment = $scope.vm.viewer.issueDownVos[i].issueCommentVos.concat($scope.vm.viewer.issueDownVos[i+1].issueCommentVos); - i++; + for (var i=0; i<oriDownCommentHistory.length; i++) { + if ($scope.vm.viewer.downComment === "") { + $scope.vm.viewer.downComment = oriDownCommentHistory[i]; } else { - $scope.vm.viewer.downComment = $scope.vm.viewer.issueDownVos[i].issueCommentVos; + $scope.vm.viewer.downComment = $scope.vm.viewer.downComment.concat(oriDownCommentHistory[i]); } } $scope.vm.viewer.issueDownVos.sort(function (a, b) { //�궡由쇱감�닚 diff --git a/src/main/webapp/scripts/app/issue/issueModify.controller.js b/src/main/webapp/scripts/app/issue/issueModify.controller.js index 65cf2c2..c11d506 100644 --- a/src/main/webapp/scripts/app/issue/issueModify.controller.js +++ b/src/main/webapp/scripts/app/issue/issueModify.controller.js @@ -382,24 +382,44 @@ $scope.vm.companyUrl = result[0].url; $scope.vm.companyMemo = result[0].memo; - $scope.vm.ispId = ispFieldVo.id; - $scope.vm.ispName = ispFieldVo.name; - $scope.vm.ispCode = ispFieldVo.code; - $scope.vm.ispManager = ispFieldVo.manager; - $scope.vm.ispTel = ispFieldVo.tel; - $scope.vm.ispEmail = ispFieldVo.email; - $scope.vm.ispUrl = ispFieldVo.url; - $scope.vm.ispMemo = ispFieldVo.memo; + $scope.vm.ispId = ""; + $scope.vm.ispName = ""; + $scope.vm.ispCode = ""; + $scope.vm.ispManager = ""; + $scope.vm.ispTel = ""; + $scope.vm.ispEmail = ""; + $scope.vm.ispUrl = ""; + $scope.vm.ispMemo = ""; - $scope.vm.hostingId = hostingFieldVo.id; - $scope.vm.hostingName = hostingFieldVo.name; - $scope.vm.hostingCode = hostingFieldVo.code; - $scope.vm.hostingManager = hostingFieldVo.manager; - $scope.vm.hostingTel = hostingFieldVo.tel; - $scope.vm.hostingEmail = hostingFieldVo.email; - $scope.vm.hostingUrl = hostingFieldVo.url; - $scope.vm.hostingMemo = hostingFieldVo.memo; + $scope.vm.hostingId = ""; + $scope.vm.hostingName = ""; + $scope.vm.hostingCode = ""; + $scope.vm.hostingManager = ""; + $scope.vm.hostingTel = ""; + $scope.vm.hostingEmail = ""; + $scope.vm.hostingUrl = ""; + $scope.vm.hostingMemo = ""; + if (ispFieldVo != null){ + $scope.vm.ispId = ispFieldVo.id; + $scope.vm.ispName = ispFieldVo.name; + $scope.vm.ispCode = ispFieldVo.code; + $scope.vm.ispManager = ispFieldVo.manager; + $scope.vm.ispTel = ispFieldVo.tel; + $scope.vm.ispEmail = ispFieldVo.email; + $scope.vm.ispUrl = ispFieldVo.url; + $scope.vm.ispMemo = ispFieldVo.memo; + } + if (hostingFieldVo != null){ + $scope.vm.hostingId = hostingFieldVo.id; + $scope.vm.hostingName = hostingFieldVo.name; + $scope.vm.hostingCode = hostingFieldVo.code; + $scope.vm.hostingManager = hostingFieldVo.manager; + $scope.vm.hostingTel = hostingFieldVo.tel; + $scope.vm.hostingEmail = hostingFieldVo.email; + $scope.vm.hostingUrl = hostingFieldVo.url; + $scope.vm.hostingMemo = hostingFieldVo.memo; + } }); // ISP�젙蹂� 寃곌낵 媛� Event 泥섎━(set) diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index a15370e..29da70c 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -692,6 +692,9 @@ <div class="tab-content"> <!-- �쟾泥� 湲곕줉 蹂닿린 --> <div ng-if="vm.activeTab == 'ALL'"> + <div class="no-cont2" ng-if="vm.viewer.activeHistory.length < 1" translate="common.noRecord"> + 湲곕줉�씠 �뾾�뒿�땲�떎. + </div> <div class="ae-item row" ng-repeat="activeHistory in vm.viewer.activeHistory"> <!-- 湲곕줉�씤 寃쎌슦 --> <div class="aei-content" @@ -825,7 +828,7 @@ </div> <!-- �븯�쐞�씠�뒋 湲곕줉 蹂닿린 --> <div ng-if="vm.activeTab == 'RECODE_DOWN'"> - <div class="no-cont2" ng-if="vm.viewer.activeDownAllHistory.length < 1" translate="common.noRecord"> + <div class="no-cont2" ng-if="!$root.isDefined(vm.viewer.activeDownAllHistory) || vm.viewer.activeDownAllHistory.length < 1" translate="common.noRecord"> 湲곕줉�씠 �뾾�뒿�땲�떎. </div> <div class="ae-item row" ng-repeat="issueDownHistory in vm.viewer.activeDownAllHistory"> -- Gitblit v1.8.0