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