From ee65aa4472baee240808689a866866abb2e44608 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 화, 16 11월 2021 10:09:17 +0900 Subject: [PATCH] 담당자 -> 담당부서 변경 및 추가 기능 완료 * db날리고 실행 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 100 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 70 insertions(+), 30 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 9b1895f..c692a5e 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -85,6 +85,9 @@ private IssueUserService issueUserService; @Autowired + private IssueDepartmentService issueDepartmentService; + + @Autowired private CustomFieldService customFieldService; @Autowired @@ -189,7 +192,7 @@ // �떞�떦�옄 吏��젙 //this.issueUserService.modifyIssueUser(issue, project.getWorkspace(), issueForm.getUserIds()); // �떞�떦遺��꽌 吏��젙 - this.issueUserService.modifyIssueDepartment(issue, project.getWorkspace(), issueForm.getDepartmentIds()); + this.issueDepartmentService.modifyIssueDepartment(issue, project.getWorkspace(), issueForm.getDepartmentIds()); // multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎. List<Map<String, Object>> convertFileMaps = this.convertMultipartFileToFile(multipartFiles); @@ -246,9 +249,9 @@ // �떞�떦遺��꽌 StringBuilder assigneeBuilder = new StringBuilder(); - for (IssueUser issueUser : issue.getIssueUsers()) { + for (IssueDepartment issueDepartment : issue.getIssueDepartments()) { //assigneeBuilder.append(issueUser.getUser().getName()); - assigneeBuilder.append(issueUser.getDepartment().getDepartmentName()); + assigneeBuilder.append(issueDepartment.getDepartment().getDepartmentName()); /*assigneeBuilder.append("("); assigneeBuilder.append(CommonUtil.decryptAES128(issueUser.getUser().getAccount())); assigneeBuilder.append(")");*/ @@ -386,6 +389,7 @@ issueCondition.setIssueIds(issueKeys); List<Map<String, Object>> results = this.issueMapper.find(issueCondition); + // �뒠�떇 �쟾 - 0.8, 0.9, 0.9, 0.9, 0.9 StopWatch serviceStart = new StopWatch(); serviceStart.start(); @@ -660,8 +664,8 @@ return true; } - // �씠�뒋 �떞�떦�옄 �젙蹂대�� �뀑�똿�븳�떎. => �떞�떦遺��꽌 - private void setIssueDepartmentList(List<IssueVo> issueVos, IssueCondition issueCondition) { + // �씠�뒋 �떞�떦�옄 �젙蹂대�� �뀑�똿�븳�떎. + private void setIssueUserList(List<IssueVo> issueVos, IssueCondition issueCondition) { if (issueVos.size() < 1) { return; } @@ -669,28 +673,61 @@ List<Map<String, Object>> issueUsers = this.issueMapper.findIssueUser(issueCondition); Map<String, Object> issueConverterUsers = new HashMap<>(); - // �씠�뒋�뿉 �빐�떦�븯�뒗 �씠�뒋 �떞�떦遺��꽌 �젙蹂� �뀑�똿 + // �씠�뒋�뿉 �빐�떦�븯�뒗 �씠�뒋 �떞�떦�옄 �젙蹂� �뀑�똿 for (Map<String, Object> issueUser : issueUsers) { String issueId = MapUtil.getString(issueUser, "issueId"); if (MapUtil.getObject(issueConverterUsers, issueId) != null) { - List<DepartmentVo> departments = (List) MapUtil.getObject(issueConverterUsers, issueId); - departments.add(new DepartmentVo(MapUtil.getLong(issueUser, "id"), MapUtil.getString(issueUser, "departmentName"), MapUtil.getString(issueUser, "departmentDescription"))); - //List<UserVo> users = (List) MapUtil.getObject(issueConverterUsers, issueId); - //users.add(new UserVo(MapUtil.getLong(issueUser, "id"), MapUtil.getString(issueUser, "name"), CommonUtil.decryptAES128(MapUtil.getString(issueUser, "account")), MapUtil.getString(issueUser, "profile"))); + List<UserVo> users = (List) MapUtil.getObject(issueConverterUsers, issueId); + users.add(new UserVo(MapUtil.getLong(issueUser, "id"), MapUtil.getString(issueUser, "name"), CommonUtil.decryptAES128(MapUtil.getString(issueUser, "account")), MapUtil.getString(issueUser, "profile"))); } else { - List<DepartmentVo> departments = Lists.newArrayList(new DepartmentVo(MapUtil.getLong(issueUser, "id"), MapUtil.getString(issueUser, "departmentName"), MapUtil.getString(issueUser, "departmentDescription"))); - issueConverterUsers.put(issueId, departments); - /*List<UserVo> users = Lists.newArrayList(new UserVo(MapUtil.getLong(issueUser, "id"), MapUtil.getString(issueUser, "name"), CommonUtil.decryptAES128(MapUtil.getString(issueUser, "account")), + List<UserVo> users = Lists.newArrayList(new UserVo(MapUtil.getLong(issueUser, "id"), MapUtil.getString(issueUser, "name"), CommonUtil.decryptAES128(MapUtil.getString(issueUser, "account")), MapUtil.getString(issueUser, "profile"))); - issueConverterUsers.put(issueId, users);*/ + issueConverterUsers.put(issueId, users); + } + } + + // �씠�뒋Vo�뿉 �떞�떦�옄 �젙蹂대�� �뀑�똿 + for (IssueVo issueVo : issueVos) { + if (MapUtil.getObject(issueConverterUsers, String.valueOf(issueVo.getId())) != null) { + List<UserVo> userVos = (List) MapUtil.getObject(issueConverterUsers, String.valueOf(issueVo.getId())); + + issueVo.setUserVos(userVos); + } + + // �씠�뒋 �닔�젙 沅뚰븳�쓣 媛뽮퀬 �엳�뒗吏� �솗�씤 + if (this.checkHasPermission(issueVo, issueVo.getUserVos())) { + issueVo.setModifyPermissionCheck(Boolean.TRUE); + } + } + } + + // �씠�뒋 �떞�떦遺��꽌 �젙蹂대�� �뀑�똿�븳�떎. + private void setIssueDepartmentList(List<IssueVo> issueVos, IssueCondition issueCondition) { + if (issueVos.size() < 1) { + return; + } + + List<Map<String, Object>> issueDepartments = this.issueMapper.findIssueDepartment(issueCondition); + Map<String, Object> issueConverterDepartments = new HashMap<>(); + + // �씠�뒋�뿉 �빐�떦�븯�뒗 �씠�뒋 �떞�떦遺��꽌 �젙蹂� �뀑�똿 + for (Map<String, Object> issueDepartment : issueDepartments) { + String issueId = MapUtil.getString(issueDepartment, "issueId"); + + if (MapUtil.getObject(issueConverterDepartments, issueId) != null) { + List<DepartmentVo> departments = (List) MapUtil.getObject(issueConverterDepartments, issueId); + departments.add(new DepartmentVo(MapUtil.getLong(issueDepartment, "id"), MapUtil.getString(issueDepartment, "departmentName"), MapUtil.getString(issueDepartment, "departmentDescription"))); + } else { + List<DepartmentVo> departments = Lists.newArrayList(new DepartmentVo(MapUtil.getLong(issueDepartment, "id"), MapUtil.getString(issueDepartment, "departmentName"), MapUtil.getString(issueDepartment, "departmentDescription"))); + issueConverterDepartments.put(issueId, departments); } } // �씠�뒋Vo�뿉 �떞�떦遺��꽌 �젙蹂대�� �뀑�똿 for (IssueVo issueVo : issueVos) { - if (MapUtil.getObject(issueConverterUsers, String.valueOf(issueVo.getId())) != null) { - List<DepartmentVo> departmentVos = (List) MapUtil.getObject(issueConverterUsers, String.valueOf(issueVo.getId())); + if (MapUtil.getObject(issueConverterDepartments, String.valueOf(issueVo.getId())) != null) { + List<DepartmentVo> departmentVos = (List) MapUtil.getObject(issueConverterDepartments, String.valueOf(issueVo.getId())); issueVo.setDepartmentVos(departmentVos); } @@ -844,8 +881,8 @@ private void setIssueDepartment(Issue issue, IssueVo issueVo) { List<DepartmentVo> departmentVos = Lists.newArrayList(); - for (IssueUser issueUser : issue.getIssueUsers()) { - DepartmentVo departmentVo = ConvertUtil.copyProperties(issueUser.getDepartment(), DepartmentVo.class); + for (IssueDepartment issueDepartment : issue.getIssueDepartments()) { + DepartmentVo departmentVo = ConvertUtil.copyProperties(issueDepartment.getDepartment(), DepartmentVo.class); departmentVo.setByName(departmentVo.getByName()); departmentVos.add(departmentVo); } @@ -914,7 +951,7 @@ this.checkStartCompleteDate(issueForm.getStartDate(), issueForm.getCompleteDate()); // �떞�떦�옄 �쑀�슚�꽦 泥댄겕 => �떞�떦遺��꽌濡� 蹂�寃� - this.verifyIssueAssignee(project, issueForm); + //this.verifyIssueAssignee(project, issueForm); Issue issue = this.getIssue(issueForm.getId()); @@ -942,9 +979,11 @@ issue.setCompleteDate(issueForm.getCompleteDate()); this.issueRepository.saveAndFlush(issue); - // �떞�떦遺��꽌 吏��젙 //this.issueUserService.modifyIssueUser(issue, project.getWorkspace(), issueForm.getUserIds()); - this.issueUserService.modifyIssueDepartment(issue, project.getWorkspace(), issueForm.getDepartmentIds()); + // �떞�떦遺��꽌 吏��젙 + if(issueForm.getDepartmentIds().size()>0){ + this.issueDepartmentService.modifyIssueDepartment(issue, project.getWorkspace(), issueForm.getDepartmentIds()); + } // multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎. List<Map<String, Object>> convertFileMaps = this.convertMultipartFileToFile(multipartFiles); @@ -1025,7 +1064,7 @@ for (Long departmentId : issueForm.getDepartmentIds()) { boolean includeProject = false; - for (ProjectRole projectRole : project.getProjectRoles()) { + /*for (ProjectRole projectRole : project.getProjectRoles()) { ProjectRoleUser projectRoleUser = this.projectRoleUserService.findByProjectRoleIdAndDepartmentId(projectRole.getId(), departmentId); if (projectRoleUser != null) { @@ -1033,7 +1072,7 @@ trustDepartmentIds.add(departmentId); break; } - } + }*/ // �뜲�씠�꽣 蹂댁젙 �옉�뾽 - �봽濡쒖젥�듃�뿉�꽌 �젣�쇅�맂 �궗�슜�옄�뒗 �떞�떦�옄�뿉�꽌 �젣�쇅 �맆 �닔 �엳�룄濡� 泥섎━ /*if (!includeProject) { @@ -1075,7 +1114,7 @@ } }*/ - /*// �씠�뒋 �닔�젙 沅뚰븳 泥댄겕 + // �씠�뒋 �닔�젙 沅뚰븳 泥댄겕 private void verifyIssueModifyPermission(Long issueId) { Issue issue = this.getIssue(issueId); @@ -1096,7 +1135,7 @@ } return userVos; - }*/ + } // �씠�뒋 �닔�젙 沅뚰븳�쓣 媛뽮퀬 �엳�뒗吏� �솗�씤 private boolean checkHasPermission(IssueVo issueVo, List<UserVo> issueUserVos) { @@ -1165,7 +1204,7 @@ // 蹂�寃� �씠�젰 �젙蹂� 異붿텧 StringBuilder detectIssueChange = new StringBuilder(); // �씠�뒋 �닔�젙 沅뚰븳 泥댄겕 - //this.verifyIssueModifyPermission(issueForm.getId()); + this.verifyIssueModifyPermission(issueForm.getId()); Issue issue = this.getIssue(issueForm.getId()); IssueStatus issueStatus = this.issueStatusService.getIssueStatus(issueForm.getIssueStatusId()); @@ -1246,7 +1285,7 @@ // 蹂�寃� �씠�젰 �젙蹂� 異붿텧 StringBuilder detectIssueChange = new StringBuilder(); // �씠�뒋 �닔�젙 沅뚰븳 泥댄겕 - //this.verifyIssueModifyPermission(issueForm.getId()); + this.verifyIssueModifyPermission(issueForm.getId()); Issue issue = this.getIssue(issueForm.getId()); issue.setProject(this.projectService.getProject(issueForm.getProjectId())); @@ -1254,7 +1293,7 @@ this.issueHistoryService.detectIssueManager(issue, issueForm, detectIssueChange); //this.issueUserService.modifyIssueUser(issue, issue.getProject().getWorkspace(), issueForm.getUserIds()); - this.issueUserService.modifyIssueDepartment(issue, issue.getProject().getWorkspace(), issueForm.getDepartmentIds()); + this.issueDepartmentService.modifyIssueDepartment(issue, issue.getProject().getWorkspace(), issueForm.getDepartmentIds()); this.issueRepository.saveAndFlush(issue); // �씠�뒋 �씠�젰 �벑濡� @@ -1304,7 +1343,7 @@ private Issue issueRemoves(Long issueId) { Issue issue = this.getIssue(issueId); // �씠�뒋 �닔�젙 沅뚰븳�쓣 媛뽮퀬 �엳�뒗吏� �솗�씤 - //this.verifyIssueModifyPermission(issueId); + this.verifyIssueModifyPermission(issueId); // �씠�뒋 泥⑤� �뙆�씪�쓣 �궘�젣�븳�떎. if (issue.getAttachedFiles().size() > 0) { @@ -1802,7 +1841,8 @@ if (issueAssigneeMaps.size() > 0) { // �씠�뒋 �떞�떦�옄 踰뚰겕 �벑濡� - this.issueUserService.insertIssueUser(issueAssigneeMaps); + //this.issueUserService.insertIssueUser(issueAssigneeMaps); + this.issueDepartmentService.insertIssueDepartment(issueAssigneeMaps); } } -- Gitblit v1.8.0