From 05b742969f52aba138cfc10a6e11ae34a1e96146 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 13 12월 2021 15:22:46 +0900
Subject: [PATCH] 이슈 유형 목록에서 검색시 다른 유형도 검색되는 오류수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   57 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 39 insertions(+), 18 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 7f68b4e..ddedab6 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -12,6 +12,7 @@
 import kr.wisestone.owl.domain.enumType.IssueHistoryType;
 import kr.wisestone.owl.domain.enumType.IssueStatusType;
 import kr.wisestone.owl.exception.OwlRuntimeException;
+import kr.wisestone.owl.mapper.DepartmentMapper;
 import kr.wisestone.owl.mapper.IssueMapper;
 import kr.wisestone.owl.mapper.ProjectMapper;
 import kr.wisestone.owl.repository.IssueRelationRepository;
@@ -175,6 +176,9 @@
 
     @Autowired
     private UserDepartmentRepository userDepartmentRepository;
+
+    @Autowired
+    private DepartmentMapper departmentMapper;
 
     @Autowired
     private WorkflowDepartmentRepository workflowDepartmentRepository;
@@ -692,8 +696,22 @@
             for(UserDepartment myDepartment : myDepartments){
                 myDepartmentIds.add(myDepartment.getDepartmentId());
             }
+        } else {
+            myDepartmentIds.add(-1L);
         }
         issueCondition.setMyDepartmentIds(myDepartmentIds);
+    }
+
+    void SetAllDepartmentId(IssueCondition issueCondition){
+        List<Long> departmentIds = Lists.newArrayList();
+        List<Map<String, Object>> departmentList = this.departmentMapper.find(null);
+
+        if(departmentList != null && departmentList.size() > 0){
+            for(Map<String, Object> department : departmentList){
+                departmentIds.add((Long) department.get("id"));
+            }
+        }
+        issueCondition.setMyDepartmentIds(departmentIds);
     }
 
     void SetWorkflowDepartment(List<IssueVo> issueVos){
@@ -754,13 +772,14 @@
 
         if (this.userWorkspaceService.checkWorkspaceManager(user)
                 || MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL)) {
-            results = this.issueMapper.find(issueCondition);
-            totalCount = this.issueMapper.count(issueCondition);
+            this.SetAllDepartmentId(issueCondition);
         } else{
             this.SetMyDepartmentId(issueCondition);
-            results = this.issueMapper.findByDepartment(issueCondition);
-            totalCount = this.issueMapper.countByDepartment(issueCondition);
+            /*results = this.issueMapper.findByDepartment(issueCondition);
+            totalCount = this.issueMapper.countByDepartment(issueCondition);*/
         }
+        results = this.issueMapper.find(issueCondition);
+        totalCount = this.issueMapper.count(issueCondition);
 
 
         //  �뒠�떇 �쟾 - 0.8, 0.9, 0.9, 0.9, 0.9
@@ -1663,40 +1682,42 @@
     private Issue modifyIssueForApi(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) {
         CheckIssueData checkIssueData = this.checkIssue(user, issueForm);
 
-        Issue issue = checkIssueData.getIssue();
-        Project project = checkIssueData.getProject();
-        IssueType issueType = checkIssueData.getIssueType();
-        IssueStatus oldIssueStatus = checkIssueData.getOldIssueStatus();
-        IssueStatus issueStatus = checkIssueData.getNewIssueStatus();
+        // �씠�뒋 �씠�젰 �궓湲곌린
+        this.addIssueHistoryModify(user, issueForm, checkIssueData, multipartFiles);
 
+        // db�뿉 ���옣
+        return this.saveIssue(issueForm, checkIssueData);
+    }
+
+    private void addIssueHistoryModify(User user, IssueForm issueForm, CheckIssueData checkIssueData, List<MultipartFile> multipartFiles) {
         //  蹂�寃� �씠�젰 �젙蹂� 異붿텧
         StringBuilder detectIssueChange = this.issueHistoryService.detectIssueChange(issueForm, checkIssueData, multipartFiles);
 
         //  �봽濡쒖젥�듃媛� 蹂�寃쎈릺硫� �씠�뒋 �꽆踰꾨�� �깉濡� �뵲�빞 �븳�떎.
-        this.checkChangeProject(checkIssueData.getProject(), issue);
+        this.checkChangeProject(checkIssueData.getProject(), checkIssueData.getIssue());
 
         //  �씠�뒋 �쑀�삎�씠 蹂�寃쎈릺�뿀�뒗吏� �솗�씤�븯怨� 蹂�寃쎈릺�뿀�떎硫� �씠�뒋 �긽�깭 �냽�꽦�씠 '��湲�' �씤 �씠�뒋 �긽�깭濡� 援먯껜�븳�떎.
-        if (this.checkChangeIssueType(issueType, issueStatus, issue)) {
-            issueStatus = this.issueStatusService.findByIssueStatusTypeIsReady(issueType.getWorkflow());
+        if (this.checkChangeIssueType(checkIssueData.getIssueType(), checkIssueData.getNewIssueStatus(), checkIssueData.getIssue())) {
+            checkIssueData.setNewIssueStatus(this.issueStatusService.findByIssueStatusTypeIsReady(checkIssueData.getIssueType().getWorkflow()));
             //  �씠�뒋 �긽�깭 蹂�寃� �씠�젰 �궓湲곌린 - �씠�젰�쓣 �궓湲곌린 �쐞�빐 issueForm �뿉 issueStatus Id 媛믪쓣 ���옣.
-            issueForm.setIssueStatusId(issueStatus.getId());
-            this.issueHistoryService.detectIssueStatus(issue, issueForm, detectIssueChange, oldIssueStatus, issueStatus);
+            issueForm.setIssueStatusId(checkIssueData.getNewIssueStatus().getId());
+            this.issueHistoryService.detectIssueStatus(checkIssueData.getIssue(), issueForm, detectIssueChange, checkIssueData.getOldIssueStatus(), checkIssueData.getNewIssueStatus());
         }
 
         // db�뿉 ���옣
-        issue = this.saveIssue(issueForm, checkIssueData);
+//        checkIssueData.setIssue(this.saveIssue(issueForm, checkIssueData));
 
         //  �씠�뒋 �씠�젰 �벑濡�
         if (!StringUtils.isEmpty(detectIssueChange.toString())) {
-            this.issueHistoryService.addIssueHistory(issue, user, IssueHistoryType.MODIFY, detectIssueChange.toString());
+            this.issueHistoryService.addIssueHistory(checkIssueData.getIssue(), user, IssueHistoryType.MODIFY, detectIssueChange.toString());
         }
         //  �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏�
         UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class);
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(userVo, ElasticSearchConstants.ISSUE_MODIFY));
-
-        return issue;
     }
 
+
+
     private Issue saveIssue(IssueForm issueForm, CheckIssueData checkIssueData) {
         Issue issue = checkIssueData.getIssue();
         ConvertUtil.copyProperties(issueForm, issue, "id");

--
Gitblit v1.8.0