From 1dad4d94cc415d2f8092aff0368744289337f504 Mon Sep 17 00:00:00 2001 From: 박지현 <jhpark@maprex.co.kr> Date: 화, 22 2월 2022 14:29:43 +0900 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 22 +++++++++- src/main/java/kr/wisestone/owl/vo/IssueVo.java | 9 ++++ src/main/java/kr/wisestone/owl/service/IssueService.java | 4 +- src/main/webapp/scripts/app/issue/issueList.controller.js | 1 src/main/webapp/i18n/ko/global.json | 3 + src/main/webapp/scripts/app/issue/issueAddDown.controller.js | 15 ++++--- src/main/java/kr/wisestone/owl/web/controller/IssueController.java | 6 +-- src/main/resources/migration/V1_7__alter_data.sql | 3 + src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 2 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 2 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java | 8 ++-- src/main/webapp/scripts/app/issue/issueModify.controller.js | 13 ++++-- 12 files changed, 61 insertions(+), 27 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index 9a5bd12..a63f7bd 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -253,7 +253,7 @@ public static final String DEPARTMENT_NOT_EXIST = "DEPARTMENT_NOT_EXIST"; // 遺��꽌媛� 議댁옱�븯吏� �븡�뒿�땲�떎. public static final String DEPARTMENT_ALREADY_IN_USE = "DEPARTMENT_ALREADY_IN_USE"; // �꽑�깮�븳 遺��꽌�뒗 �씠誘� �궗�슜�븯怨� �엳�뒿�땲�떎. - public static final String DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW = "DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW"; // �꽑�깮�븳 遺��꽌�뒗 �씠誘� �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�뿉 �냽�빐 �엳�뒿�땲�떎. + public static final String DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW = "DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW"; // �꽑�깮�븳 遺��꽌�뒗 �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�뿉 �냽�빐 �엳�뒿�땲�떎. public static final String DEPARTMENT_ALREADY_IN_USE_IN_PROJECT = "DEPARTMENT_ALREADY_IN_USE_IN_PROJECT"; // �꽑�깮�븳 遺��꽌�뒗 �봽濡쒖젥�듃�쓽 �떞�떦遺��꽌�뿉 �냽�빐 �엳�뒿�땲�떎. public static final String DEPARTMENT_ALREADY_IN_USE_IN_ISSUE = "DEPARTMENT_ALREADY_IN_USE_IN_ISSUE"; // �꽑�깮�븳 遺��꽌�뒗 �씠�뒋�쓽 �떞�떦遺��꽌�뿉 �냽�빐 �엳�뒿�땲�떎. public static final String DEPARTMENT_REMOVE_NOT_SELECT = "DEPARTMENT_REMOVE_NOT_SELECT"; // �궘�젣�븷 遺��꽌媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎. diff --git a/src/main/java/kr/wisestone/owl/service/IssueService.java b/src/main/java/kr/wisestone/owl/service/IssueService.java index 1223244..f0eccc6 100644 --- a/src/main/java/kr/wisestone/owl/service/IssueService.java +++ b/src/main/java/kr/wisestone/owl/service/IssueService.java @@ -34,11 +34,11 @@ Issue addRelIssue(IssueForm issueForm, List<MultipartFile> files); - Issue addDownIssue(IssueForm issueForm, List<MultipartFile> files); + Issue addDownIssue(Map<String, Object> resJsonData, IssueForm issueForm, List<MultipartFile> files); Issue addRelIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles); - Issue addDownIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles); + Issue addDownIssue(Map<String, Object> resJsonData, User user, IssueForm issueForm, List<MultipartFile> multipartFiles); List<Issue> addApiIssue(IssueApiForm issueApiForm) throws CloneNotSupportedException; 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 0e8375e..283b46b 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -581,15 +581,15 @@ // �븯�쐞�씠�뒋瑜� �깮�꽦�븳�떎. @Override @Transactional - public Issue addDownIssue(IssueForm issueForm, List<MultipartFile> multipartFiles) { + public Issue addDownIssue(Map<String, Object> resJsonData, IssueForm issueForm, List<MultipartFile> multipartFiles) { User user = this.webAppUtil.getLoginUserObject(); - return addDownIssue(user, issueForm, multipartFiles); + return addDownIssue(resJsonData, user, issueForm, multipartFiles); } // �븯�쐞�씠�뒋瑜� �깮�꽦�븳�떎. @Override @Transactional - public Issue addDownIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) { + public Issue addDownIssue(Map<String, Object> resJsonData, User user, IssueForm issueForm, List<MultipartFile> multipartFiles) { StringBuilder detectIssueChange = new StringBuilder(); // �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎. @@ -653,6 +653,7 @@ this.issueHistoryService.addIssueHistory(issue, user, IssueHistoryType.ADD, null); // �씠�뒋 �쐞�뿕 愿�由� �깮�꽦 this.issueRiskService.addIssueRisk(issue, project.getWorkspace()); + // �쁺�냽�꽦 而⑦뀓�뒪�듃 鍮꾩슦湲� this.clear(); // �씠�뒋 �깮�꽦, �궘�젣�떆 �삁�빟 �씠硫붿씪�뿉 �벑濡앺빐�넃�뒗�떎. @@ -662,9 +663,24 @@ UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class); log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(userVo, ElasticSearchConstants.ISSUE_ADD)); + IssueVo issueVo = this.convertToIssueVo(issue); + resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo); + return issue; } + /** + * Issue瑜� IssueVo濡� 蹂��솚(�븯�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂� �긽�냽 �떆 �븘�슂) + * @param issue Issue + * @return IssueVo + */ + private IssueVo convertToIssueVo(Issue issue) { + IssueVo issueVo = ConvertUtil.copyProperties(issue, IssueVo.class); + issueVo.setInheritPartners(issue.getIssueType().getInheritPartners()); + issueVo.setUsePartner(issue.getIssueType().getUsePartner()); + return issueVo; + } + // �뿰愿��씠�뒋瑜� �깮�꽦�븳�떎. @Override @Transactional diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java index a000400..e3adfbe 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java @@ -98,16 +98,16 @@ switch (projectType) { case BTS_PROJECT: - issueTypes.add(new IssueType(workspace, workflow, "�븙�꽦 �룄硫붿씤", "", "#ff5f99", 0L, false)); // 踰꾧렇 - issueTypes.add(new IssueType(workspace, workflow, "寃쎌쑀吏� ���쓳", "", "#3598fe", 0L, false)); // 媛쒖꽑 + issueTypes.add(new IssueType(workspace, workflow, "�븙�꽦 �룄硫붿씤", "", "#ff5f99", 0L, true)); // 踰꾧렇 + issueTypes.add(new IssueType(workspace, workflow, "寃쎌쑀吏� ���쓳", "", "#3598fe", 0L, true)); // 媛쒖꽑 break; case RMS_PROJECT: - issueTypes.add(new IssueType(workspace, workflow, "�쑀�룷吏� ���쓳", "", "#3bcde2", 0L, false)); // �슂援� �궗�빆 + issueTypes.add(new IssueType(workspace, workflow, "�쑀�룷吏� ���쓳", "", "#3bcde2", 0L, true)); // �슂援� �궗�빆 break; case TCM_PROJECT: - issueTypes.add(new IssueType(workspace, workflow, "遺꾩꽍寃곌낵 ���쓳", "", "#008ca7", 0L, false)); // �뀒�뒪�듃 耳��씠�뒪, �떎�뻾 �닚�꽌, �쟾�젣 議곌굔, 湲곕� 寃곌낵 + issueTypes.add(new IssueType(workspace, workflow, "遺꾩꽍寃곌낵 ���쓳", "", "#008ca7", 0L, true)); // �뀒�뒪�듃 耳��씠�뒪, �떎�뻾 �닚�꽌, �쟾�젣 議곌굔, 湲곕� 寃곌낵 break; } this.issueTypeRepository.saveAll(issueTypes); diff --git a/src/main/java/kr/wisestone/owl/vo/IssueVo.java b/src/main/java/kr/wisestone/owl/vo/IssueVo.java index c82c4ea..d7319c0 100644 --- a/src/main/java/kr/wisestone/owl/vo/IssueVo.java +++ b/src/main/java/kr/wisestone/owl/vo/IssueVo.java @@ -84,6 +84,7 @@ private Long downTotalCount = 0L; private Boolean inheritPartners; // �뙆�듃�꼫�젙蹂� �긽�냽�쑀臾� 泥댄겕 + private Long usePartner; public IssueVo(){} @@ -660,4 +661,12 @@ public void setInheritPartners(Boolean inheritPartners) { this.inheritPartners = inheritPartners; } + + public Long getUsePartner() { + return usePartner; + } + + public void setUsePartner(Long usePartner) { + this.usePartner = usePartner; + } } diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java index 90fa933..db9ca42 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java @@ -69,18 +69,16 @@ } // �븯�쐞�씠�뒋 �깮�꽦 - @RequestMapping(value = "/issue/downIssueAdd", method = RequestMethod.POST) + @RequestMapping(value = "/issue/downIssueAdd", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody Map<String, Object> downIssueAdd(MultipartHttpServletRequest request) { Map<String, Object> resJsonData = new HashMap<>(); // �씠�뒋 �깮�꽦 - Issue issue = this.issueService.addDownIssue(IssueForm.make(ConvertUtil.convertJsonToMap(request.getParameter(Constants.REQ_KEY_CONTENT))), request.getFiles("file")); + Issue issue = this.issueService.addDownIssue(resJsonData, IssueForm.make(ConvertUtil.convertJsonToMap(request.getParameter(Constants.REQ_KEY_CONTENT))), request.getFiles("file")); // 踰꾩쟾 �깮�꽦 this.issueService.addIssueVersion(issue.getId()); - resJsonData.put(Constants.RES_KEY_CONTENTS, issue.getId()); //�븯�쐞�씠�뒋 ID - resJsonData.put(Constants.REQ_KEY_CONTENT, issue.getIssueType().getInheritPartners()); //�긽�냽 �뿬遺� return this.setSuccessMessage(resJsonData); } diff --git a/src/main/resources/migration/V1_7__alter_data.sql b/src/main/resources/migration/V1_7__alter_data.sql new file mode 100644 index 0000000..b4d6186 --- /dev/null +++ b/src/main/resources/migration/V1_7__alter_data.sql @@ -0,0 +1,3 @@ + +/* issue_type �뙆�듃�꼫 �긽�냽 湲곕낯媛� true */ +ALTER TABLE `issue_type` MODIFY COLUMN `inherit_partners` varchar(10) NULL DEFAULT true; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties index 0b716ec..58f3b6f 100644 --- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties @@ -235,7 +235,7 @@ DEPARTMENT_NOT_EXIST = \uBD80\uC11C\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. DEPARTMENT_ALREADY_IN_USE = \uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uBBF8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4. -DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW=\uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uBBF8 \uC6CC\uD06C\uD50C\uB85C\uC6B0\uC758 \uB2F4\uB2F9\uBD80\uC11C\uC5D0 \uC18D\uD574 \uC788\uC2B5\uB2C8\uB2E4. +DEPARTMENT_ALREADY_IN_USE_IN_WORKFLOW=\uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC6CC\uD06C\uD50C\uB85C\uC6B0\uC758 \uB2F4\uB2F9\uBD80\uC11C\uC5D0 \uC18D\uD574 \uC788\uC2B5\uB2C8\uB2E4. DEPARTMENT_ALREADY_IN_USE_IN_PROJECT=\uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uD504\uB85C\uC81D\uD2B8\uC758 \uB2F4\uB2F9\uBD80\uC11C\uC5D0 \uC18D\uD574 \uC788\uC2B5\uB2C8\uB2E4. DEPARTMENT_ALREADY_IN_USE_IN_ISSUE=\uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uC288\uC758 \uB2F4\uB2F9\uBD80\uC11C\uC5D0 \uC18D\uD574 \uC788\uC2B5\uB2C8\uB2E4. DEPARTMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uBD80\uC11C\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json index 224c477..30db5a6 100644 --- a/src/main/webapp/i18n/ko/global.json +++ b/src/main/webapp/i18n/ko/global.json @@ -370,7 +370,8 @@ "errorSelectDownIssue" : "�븯�쐞 �씠�뒋媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.", "failedToIssueTypeDefault": "�씠�뒋 �쑀�삎 湲곕낯媛� 議고쉶 �떎�뙣", "inheritPartners": "�뾽泥�/ISP/�샇�뒪�똿 �젙蹂� �긽�냽 �뿬遺�", - "wantToInheritPartnersOfParentIssue": "�긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� �쟻�슜�떆�궎寃좎뒿�땲源�?" + "wantToInheritPartnersOfParentIssue": "�긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� �쁽�옱 �씠�뒋�뿉 �쟻�슜�떆�궎寃좎뒿�땲源�?", + "wantToInheritPartnersOfIssue": "�쁽�옱 �씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� 紐⑤뱺 �븯�쐞�씠�뒋�뿉 �씪愿� �쟻�슜�떆�궎寃좎뒿�땲源�?" }, "project": { "createProject": "�봽濡쒖젥�듃 留뚮뱾湲�", diff --git a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js index 8d58bbe..b51b126 100644 --- a/src/main/webapp/scripts/app/issue/issueAddDown.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAddDown.controller.js @@ -843,7 +843,7 @@ }).then(function (result) { if (result.data.message.status === "success") { - $scope.fn.addDownIssue(result.data.data, result.data.content); + $scope.fn.addDownIssue(result.data.data); // �씠�뒋 �긽�꽭 �솕硫� �슂泥� $rootScope.$broadcast("getIssueDetail", { @@ -860,15 +860,18 @@ } // �븯�쐞 �씠�뒋 異붽� - function addDownIssue(downId, inheritYn) { + function addDownIssue(issueVo) { $rootScope.spinner = true; + let inheritYn = issueVo.inheritPartners; + let usePartner = issueVo.usePartner; var ids = []; - if (downId != null) { - ids.push(downId); + if (issueVo.id != null) { + ids.push(issueVo.id); } - if ($rootScope.isDefined(inheritYn) && inheritYn) { + if ($rootScope.isDefined(usePartner) && usePartner > 0 + && $rootScope.isDefined(inheritYn) && inheritYn) { SweetAlert.swal({ title : $filter("translate")("issue.addDownIssue"), // �븯�쐞 �씠�뒋 異붽� text : $filter("translate")("issue.wantToInheritPartnersOfParentIssue"), // �긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� �쟻�슜�떆�궎寃좎뒿�땲源�? @@ -923,7 +926,7 @@ $resourceProvider.getPageContent(0, 10))).then(function (result) { if (result.data.message.status === "success") { - SweetAlert.close(); + $scope.fn.cancel(); // �씠�뒋 �긽�꽭 �솕硫� �슂泥� $rootScope.$broadcast("getIssueDetail", { id : parameter.id diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js index 2e7dc86..ff16c1d 100644 --- a/src/main/webapp/scripts/app/issue/issueList.controller.js +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -860,6 +860,7 @@ id : id, issueTypeId : $scope.vm.viewer.issueTypeVo.id, inheritPartners : $scope.vm.viewer.issueTypeVo.inheritPartners, + usePartner : $scope.vm.viewer.usePartnerVos, downTotalCount : downTotalCount }; } diff --git a/src/main/webapp/scripts/app/issue/issueModify.controller.js b/src/main/webapp/scripts/app/issue/issueModify.controller.js index 8bf3780..39d20af 100644 --- a/src/main/webapp/scripts/app/issue/issueModify.controller.js +++ b/src/main/webapp/scripts/app/issue/issueModify.controller.js @@ -170,7 +170,8 @@ severities : [], // 以묒슂�룄 �젙蹂� fileTableConfigs : [], // �뙆�씪 �뾽濡쒕뱶 �젙蹂� �뀒�씠釉� inheritPartners : parameter.inheritPartners, - downTotalCount : parameter.downTotalCount + downTotalCount : parameter.downTotalCount, + usePartner : parameter.usePartner, }; // �뿰愿� �씪媛� 愿��젴 @@ -577,7 +578,6 @@ function formSubmit() { $rootScope.spinner = true; - let inheritYn = false; var content = { @@ -844,10 +844,12 @@ })() }; - if ($scope.vm.inheritPartners && $scope.vm.downTotalCount > 0) { + if ($rootScope.isDefined($scope.vm.usePartner) && $scope.vm.usePartner.length > 0 + && $rootScope.isDefined($scope.vm.inheritPartners) && $scope.vm.inheritPartners + && $rootScope.isDefined($scope.vm.downTotalCount) && $scope.vm.downTotalCount > 0) { SweetAlert.swal({ - title : $filter("translate")("issue.modifyDownIssue"), // �븯�쐞 �씠�뒋 蹂�寃� - text : $filter("translate")("issue.wantToInheritPartnersOfParentIssue"), // �긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� �쟻�슜�떆�궎寃좎뒿�땲源�? + title : $filter("translate")("issue.modifyIssues"), // �씠�뒋 蹂�寃� + text : $filter("translate")("issue.wantToInheritPartnersOfIssue"), // �쁽�옱 �씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� 紐⑤뱺 �븯�쐞�씠�뒋�뿉 �씪愿� �쟻�슜�떆�궎寃좎뒿�땲源�? type : "warning", showCancelButton : true, confirmButtonColor : "#DD6B55", @@ -859,6 +861,7 @@ function (isConfirm) { if (isConfirm) { inheritYn = true; + content.inheritYn = true; } Issue.modify({ -- Gitblit v1.8.0