src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/vo/UserVo.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/scripts/app/issue/issueImportExcel.controller.js | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/views/issue/issueExcelImport.html | ●●●●● 패치 | 보기 | raw | blame | 히스토리 |
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -2966,7 +2966,7 @@ Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); // 이슈를 넣으려는 업무 공간 // 이슈의 주요 속성을 map 에 저장하여 엑셀 import 에서 지정한 대상(이슈 속성)을 빠르게 찾을 수 있게 한다. this.IssueAttributeMapToList(priorityMaps, severityMaps, departmentMaps, customFieldMaps, issueTypeCustomFieldMaps); this.IssueAttributeMapToList(issueForm, priorityMaps, severityMaps, departmentMaps, customFieldMaps, issueTypeCustomFieldMaps); // 0.237 - 0.230 List<IssueForm> issueForms = Lists.newArrayList(); @@ -3047,7 +3047,9 @@ issue.setIssueType(issueType); issue.setProject(project); issue.setIssueNumber(issueNumber); issue.setParentIssue(this.getIssue(saveIssueForm.getParentIssueId())); if (saveIssueForm.getParentIssueId() != null && saveIssueForm.getParentIssueId() > -1) { issue.setParentIssue(this.getIssue(saveIssueForm.getParentIssueId())); } issue = this.issueRepository.saveAndFlush(issue); @@ -3058,10 +3060,12 @@ issueDepartment.setWorkspace(workspace); List<Long> departmentsIds = this.workflowDepartmentService.findFirstDepartmentIds(workflow); for (Long departmentId : departmentsIds) { issueDepartment.setDepartment(this.departmentService.getDepartment(departmentId)); if (departmentsIds != null && departmentsIds.size() > 0) { for (Long departmentId : departmentsIds) { issueDepartment.setDepartment(this.departmentService.getDepartment(departmentId)); } issue.addIssueDepartment(issueDepartment); } issue.addIssueDepartment(issueDepartment); saveIssueForm.setIssueStatusId(issueStatus.getId()); } @@ -3206,8 +3210,16 @@ } // 이슈의 주요 속성을 map 에 저장하여 엑셀 import 에서 지정한 대상(이슈 속성)을 빠르게 찾을 수 있게 한다. private void IssueAttributeMapToList(Map<String, Priority> priorityMaps, Map<String, Severity> severityMaps, private void IssueAttributeMapToList(IssueForm issueForm, Map<String, Priority> priorityMaps, Map<String, Severity> severityMaps, Map<String, DepartmentVo> departmentMaps, Map<String, CustomField> customFieldMaps,Map<String, Long> issueTypeCustomFieldMaps) { Project project = this.projectService.getProject(issueForm.getProjectId()); for (IssueTypeCustomField issueTypeCustomField : project.getIssueTypeCustomFields()) { // 빠르게 찾기 위해 이슈 타입 아이디 + 사용자 정의 필드 아이디를 키로 한다. String makeKey = issueTypeCustomField.getIssueType().getId().toString() + issueTypeCustomField.getCustomField().getId().toString(); issueTypeCustomFieldMaps.put(makeKey, issueTypeCustomField.getId()); } // 우선순위를 바로 찾을 수 있게 준비 List<Priority> priorities = this.priorityService.findByWorkspaceId(); @@ -3392,7 +3404,7 @@ // 값이 공백이면 중지 String cellValue = CommonUtil.convertExcelStringToCell(cell); if (StringUtils.isEmpty(cellValue)) { if (StringUtils.isEmpty(cellValue) || !cell.toString().equals("null")) { return; } src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
@@ -1244,9 +1244,8 @@ @Transactional(readOnly = true) public User getUserSession(Map<String, Object> resJsonData, HttpServletRequest httpServletRequest) { User user = this.getUser(this.webAppUtil.getLoginId()); UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class, "password","permission"); UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class, "password"); // user에서 Permission 값을 가져와서 userVo 에 setPermission 함 userVo.setPermission(user.getPermission()); userVo.setAccount(CommonUtil.decryptAES128(userVo.getAccount())); UserLevel userLevel = user.getUserLevel(); src/main/java/kr/wisestone/owl/vo/UserVo.java
@@ -28,7 +28,6 @@ private List<ProjectVo> projectVos = Lists.newArrayList(); private String reservationNotifyTime; private String language; private Integer permission; private String licensekey; private Long sessionActiveTime; // 클러스터링 환경에서 접속중인 사용자 관리에 사용 private Boolean projectManagerYN = Boolean.FALSE; @@ -169,14 +168,6 @@ public void setLanguage(String language) { this.language = language; } public Integer getPermission() { return permission; } public void setPermission(Integer permission) { this.permission = permission; } public String getLicensekey() { src/main/webapp/scripts/app/issue/issueImportExcel.controller.js
@@ -94,9 +94,9 @@ return false; } if ($scope.vm.form.issues == null || $scope.vm.form.issues.length === 0) { /*if ($scope.vm.form.issues == null || $scope.vm.form.issues.length === 0) { return false; } }*/ if ($scope.vm.form.file.length < 1) { return true; @@ -117,7 +117,13 @@ content : { projectId : $scope.vm.form.projects[0].id, issueTypeId : $scope.vm.form.issueTypeId, parentIssueId : $scope.vm.form.issues[0].id parentIssueId : (function () { var id = -1; if ($scope.vm.form.issues != null) { id = $scope.vm.form.issues[0].id } return id; })() } }, fileFormDataName : "file" src/main/webapp/views/issue/issueExcelImport.html
@@ -26,8 +26,7 @@ type : '', maxlength : 200, autoResize : true, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> <label><span translate="issue.parentIssue">상위 이슈</span> <code class="highlighter-rouge">*</code></label> <label><span translate="issue.parentIssue">상위 이슈</span></label> <js-autocomplete-single data-input-name="issue" selected-model="vm.form.issues" search="vm.issueName"