From dc873bdc1e57945d6cb6eadd41ef38cc2a4b35d3 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 15 11월 2021 17:21:18 +0900
Subject: [PATCH] 담당자 -> 담당부서 변경 * db날리고 실행

---
 src/main/java/kr/wisestone/owl/service/impl/IssueUserServiceImpl.java |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueUserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueUserServiceImpl.java
index 13dfa3f..f202174 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueUserServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueUserServiceImpl.java
@@ -75,7 +75,84 @@
         }
     }
 
+    //  �씠�뒋 �떞�떦遺��꽌瑜� 蹂�寃쏀븳�떎.
+    @Override
+    @Transactional
+    public void modifyIssueDepartment(Issue issue, Workspace workspace, List<Long> departmentIds) {
+        List<Long> oldDepartmentIds = Lists.newArrayList();
 
+        //  �씠�쟾 �떞�떦 遺��꽌
+        for (IssueUser issueUser : issue.getIssueUsers()) {
+            oldDepartmentIds.add(issueUser.getDepartment().getId());
+        }
+
+        List<Long> newDepartmentIds = CommonUtil.searchChangeList(oldDepartmentIds, departmentIds); //  異붽��빐�빞�븷 遺��꽌瑜� 李얜뒗�떎.
+        List<Long> removeDepartmentIds = CommonUtil.searchChangeList(departmentIds, oldDepartmentIds); //  �궘�젣�빐�빞�븷 遺��꽌瑜� 李얜뒗�떎.
+
+        if (removeDepartmentIds.size() > 0) {
+            Map<String, Object> removeIssueAssigneeMap = new HashMap<>();
+            removeIssueAssigneeMap.put("issueId", issue.getId());
+            removeIssueAssigneeMap.put("departmentIds", removeDepartmentIds);
+
+            //  �떞�떦遺��꽌 �궘�젣
+            this.issueUserMapper.deleteIssueUserByIssueIdAndMultiDepartmentId(removeIssueAssigneeMap);
+        }
+
+        if (newDepartmentIds.size() > 0) {
+            List<Map<String, Long>> addIssueAssigneeMaps = Lists.newArrayList();
+
+            for (Long departmentId : newDepartmentIds) {
+                Map<String, Long> issueAssigneeMap = new HashMap<>();
+                issueAssigneeMap.put("departmentId", departmentId); //�떞�떦遺��꽌
+                issueAssigneeMap.put("issueId", issue.getId());
+                issueAssigneeMap.put("workspaceId", workspace.getId());
+                issueAssigneeMap.put("registerId", this.webAppUtil.getLoginId());
+                addIssueAssigneeMaps.add(issueAssigneeMap);
+            }
+
+            //  �떞�떦遺��꽌 異붽�
+            this.issueUserMapper.insertIssueUser(addIssueAssigneeMaps);
+        }
+    }
+
+    @Override
+    @Transactional
+    public void insertIssueDepartment(List<Map<String, Long>> issueAssigneeMaps) {
+        //  �씠�뒋 �떞�떦遺��꽌 踰뚰겕 �벑濡�
+        this.issueUserMapper.insertIssueUser(issueAssigneeMaps);
+    }
+
+    //  �씠�뒋 �떞�떦遺��꽌�뿉�꽌 �젣�쇅�븳�떎.
+    @Override
+    @Transactional
+    public void removeIssueDepartment(Long projectId, List<Long> excludeDepartmentIds) {
+        for (Long departmentId : excludeDepartmentIds) {
+            Map<String, Object> issueUserMap = new HashMap<>();
+            issueUserMap.put("departmentId", departmentId);
+            issueUserMap.put("projectId", projectId);
+
+            List<Map<String, Object>> results = this.issueUserMapper.findByDepartmentIdAndProjectId(issueUserMap);
+
+            if (results.size() > 0) {
+                List<Long> issueIds = Lists.newArrayList();
+
+                for (Map<String, Object> result : results) {
+                    Long id = MapUtil.getLong(result, "id");
+
+                    if (id != null) {
+                        issueIds.add(id);
+                    }
+                }
+
+                if (issueIds.size() > 0) {
+                    Map<String, Object> removeIssueAssigneeMap = new HashMap<>();
+                    removeIssueAssigneeMap.put("departmentId", departmentId);
+                    removeIssueAssigneeMap.put("issueIds", issueIds);
+                    this.issueUserMapper.deleteIssueUserByDepartmentIdAndMultiIssueId(removeIssueAssigneeMap);
+                }
+            }
+        }
+    }
 
     //  �씠�뒋 �떞�떦�옄 李얘린
     @Override

--
Gitblit v1.8.0