From fd569a1654c1aacc1228d0650cd4b0dd90748328 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 19 11월 2021 16:53:40 +0900
Subject: [PATCH] 이슈 - 담당부서 리스트 프로젝트에서 설정한 부서들만 보여지도록 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java                                     |   16 +++
 src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java                                |   43 +++++++++-
 src/main/resources/mybatis/query-template/department-template.xml                                     |   10 ++
 src/main/webapp/scripts/app/widget/widget.js                                                          |    2 
 src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.html           |   22 +++++
 src/main/java/kr/wisestone/owl/web/controller/DepartmentController.java                               |   13 +++
 src/main/java/kr/wisestone/owl/mapper/DepartmentMapper.java                                           |    2 
 src/main/webapp/custom_components/widget/project-progress-widget/project-progress-widget.directive.js |   21 ++++
 src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js                             |    6 +
 src/main/webapp/scripts/components/utils/autoComplete.controller.js                                   |   13 +++
 src/main/java/kr/wisestone/owl/web/condition/DepartmentCondition.java                                 |    9 ++
 src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.controller.js  |   51 ++++++++++++
 src/main/java/kr/wisestone/owl/service/DepartmentService.java                                         |    5 +
 src/main/webapp/i18n/ko/global.json                                                                   |    1 
 src/main/webapp/scripts/main.js                                                                       |    1 
 15 files changed, 202 insertions(+), 13 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/mapper/DepartmentMapper.java b/src/main/java/kr/wisestone/owl/mapper/DepartmentMapper.java
index 9997607..452bb22 100644
--- a/src/main/java/kr/wisestone/owl/mapper/DepartmentMapper.java
+++ b/src/main/java/kr/wisestone/owl/mapper/DepartmentMapper.java
@@ -24,4 +24,6 @@
     Long countInDepartment(Long Id);
 
     List<Map<String, Object>> findByDepartmentIds(UserCondition condition);
+
+    List<Map<String, Object>> findProjectDepartment(DepartmentCondition departmentCondition);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/DepartmentService.java b/src/main/java/kr/wisestone/owl/service/DepartmentService.java
index 09c1ca9..8b813da 100644
--- a/src/main/java/kr/wisestone/owl/service/DepartmentService.java
+++ b/src/main/java/kr/wisestone/owl/service/DepartmentService.java
@@ -1,6 +1,7 @@
 package kr.wisestone.owl.service;
 
 import kr.wisestone.owl.domain.Department;
+import kr.wisestone.owl.domain.Project;
 import kr.wisestone.owl.vo.DepartmentVo;
 import kr.wisestone.owl.web.condition.DepartmentCondition;
 import kr.wisestone.owl.web.condition.UserCondition;
@@ -33,4 +34,8 @@
     boolean countInDepartment(Long id);
 
     List<Map<String, Object>> findByDepartmentIds( UserCondition condition);
+
+    void findProjectDepartment(Map<String, Object> resJsonData, DepartmentCondition departmentCondition);
+
+    List<Map<String, Object>> findProjectDepartment(Project project);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
index 301b14b..587a349 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentServiceImpl.java
@@ -1,11 +1,9 @@
 package kr.wisestone.owl.service.impl;
 
-import kr.wisestone.owl.domain.Department;
-import kr.wisestone.owl.domain.UserDepartment;
-import kr.wisestone.owl.domain.UserLevel;
+import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.mapper.DepartmentMapper;
-import kr.wisestone.owl.service.UserDepartmentService;
-import kr.wisestone.owl.service.UserService;
+import kr.wisestone.owl.service.*;
+import kr.wisestone.owl.util.CommonUtil;
 import kr.wisestone.owl.web.condition.DepartmentCondition;
 import kr.wisestone.owl.web.condition.UserCondition;
 import kr.wisestone.owl.web.form.DepartmentForm;
@@ -13,6 +11,7 @@
 import org.jsoup.Jsoup;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
@@ -20,8 +19,6 @@
 import kr.wisestone.owl.constant.MsgConstants;
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.repository.DepartmentRepository;
-import kr.wisestone.owl.service.DepartmentService;
-import kr.wisestone.owl.service.WorkspaceService;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.view.ExcelView;
@@ -52,6 +49,12 @@
 
     @Autowired
     private UserDepartmentService userDepartmentService;
+
+    @Autowired
+    private ProjectRoleDepartmentService projectRoleDepartmentService;
+
+    @Autowired
+    private ProjectRoleService projectRoleService;
 
     @Autowired
     private WorkspaceService workspaceService;
@@ -127,6 +130,32 @@
         this.departmentRepository.flush();
     }
 
+    //  �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 �젙蹂대�� 議고쉶�븳�떎.
+    @Override
+    @Transactional(readOnly = true)
+    public List<Map<String, Object>> findProjectDepartment(Project project) {
+        DepartmentCondition departmentCondition = new DepartmentCondition();
+        departmentCondition.setProjectId(project.getId());
+        return this.departmentMapper.findProjectDepartment(departmentCondition);
+    }
+
+    //  �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 紐⑸줉�쓣 媛��졇�삩�떎.
+    @Override
+    @Transactional(readOnly = true)
+    public void findProjectDepartment(Map<String, Object> resJsonData, DepartmentCondition departmentCondition) {
+        ProjectRole projectRole = this.projectRoleService.findByProjectIdAndRoleType(departmentCondition.getProjectId(), ProjectRole.TYPE_DEFAULT);
+        List<ProjectRoleDepartment> projectRoleDepartments = this.projectRoleDepartmentService.findByProjectRoleId(projectRole.getId());
+        List<DepartmentVo> departmentVos = Lists.newArrayList();
+
+        for (ProjectRoleDepartment projectRoleDepartment : projectRoleDepartments) {
+            DepartmentVo departmentVo = ConvertUtil.copyProperties(projectRoleDepartment.getDepartment(), DepartmentVo.class);
+            departmentVo.setByName(departmentVo.getDepartmentName());
+            departmentVos.add(departmentVo);
+        }
+
+        resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos);
+    }
+
 
     // 遺��꽌 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
     @Override
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 3b7419e..9f20fd4 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -114,6 +114,9 @@
     private UserService userService;
 
     @Autowired
+    private DepartmentService departmentService;
+
+    @Autowired
     private IssueCommentService issueCommentService;
 
     @Autowired
@@ -1806,13 +1809,14 @@
             Map<String, Priority> priorityMaps = new HashMap<>();   //  �슦�꽑 �닚�쐞 紐⑥쓬
             Map<String, Severity> severityMaps = new HashMap<>();   //  以묒슂�룄 紐⑥쓬
             Map<String, Object> userMaps = new HashMap<>(); //  �궗�슜�옄 紐⑥쓬
+            Map<String, Object> departmentMaps = new HashMap<>(); //  遺��꽌 紐⑥쓬
             Map<String, CustomField> customFieldMaps = new HashMap<>();
             Map<String, IssueStatus> issueStatusReadyMaps = new HashMap<>();   //  �긽�깭 �냽�꽦 '��湲�'�씤 �씠�뒋 �긽�깭
             Map<Long, Long> issueNumberMaps = new HashMap<>();  //  �씠�뒋 踰덊샇 紐⑥쓬
             Map<String, Long> issueTypeCustomFieldMaps = new HashMap<>(); //  �씠�뒋 ���엯 + �궗�슜�옄 �젙�쓽 �븘�뱶 �뿰寃� �젙蹂�
             Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());  //  �씠�뒋瑜� �꽔�쑝�젮�뒗 �뾽臾� 怨듦컙
             //  �씠�뒋�쓽 二쇱슂 �냽�꽦�쓣 map �뿉 ���옣�븯�뿬 �뿊�� import �뿉�꽌 吏��젙�븳 ���긽(�씠�뒋 �냽�꽦)�쓣 鍮좊Ⅴ寃� 李얠쓣 �닔 �엳寃� �븳�떎.
-            this.IssueAttributeMapToList(projectMaps, issueTypeMaps, priorityMaps, severityMaps, userMaps, customFieldMaps, issueNumberMaps, issueTypeCustomFieldMaps, issueStatusReadyMaps);
+            this.IssueAttributeMapToList(projectMaps, issueTypeMaps, priorityMaps, severityMaps, userMaps, departmentMaps, customFieldMaps, issueNumberMaps, issueTypeCustomFieldMaps, issueStatusReadyMaps);
             //  0.237 - 0.230
 
             List<IssueForm> issueForms = Lists.newArrayList();
@@ -2005,7 +2009,7 @@
 
     //  �씠�뒋�쓽 二쇱슂 �냽�꽦�쓣 map �뿉 ���옣�븯�뿬 �뿊�� import �뿉�꽌 吏��젙�븳 ���긽(�씠�뒋 �냽�꽦)�쓣 鍮좊Ⅴ寃� 李얠쓣 �닔 �엳寃� �븳�떎.
     private void IssueAttributeMapToList(Map<String, Project> projectMaps, Map<String, IssueType> issueTypeMaps, Map<String, Priority> priorityMaps, Map<String, Severity> severityMaps,
-                                         Map<String, Object> userMaps, Map<String, CustomField> customFieldMaps, Map<Long, Long> issueNumberMaps, Map<String, Long> issueTypeCustomFieldMaps, Map<String, IssueStatus> issueStatusReadyMaps) {
+                                         Map<String, Object> userMaps, Map<String, Object> departmentMaps, Map<String, CustomField> customFieldMaps, Map<Long, Long> issueNumberMaps, Map<String, Long> issueTypeCustomFieldMaps, Map<String, IssueStatus> issueStatusReadyMaps) {
         //  �봽濡쒖젥�듃 �궎濡� 諛붾줈 李얠쓣 �닔 �엳寃� 以�鍮�
         List<Project> projects = this.projectService.findByWorkspaceId();
         List<Long> projectIds = Lists.newArrayList();
@@ -2031,6 +2035,14 @@
             }
 
             userMaps.put(project.getProjectKey(), userMap);
+
+            //  �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 �젙蹂�
+            List<Map<String, Object>> departments = this.departmentService.findProjectDepartment(project);
+            List<Long> departmentList = Lists.newArrayList();
+            //  遺��꽌 �젙蹂대�� ���옣
+            for (Map<String, Object> department : departments) {
+                departmentList.add(MapUtil.getLong(department, "departmentId"));
+            }
         }
 
         //  �씠�뒋 �쑀�삎�쓣 諛붾줈 李얠쓣 �닔 �엳寃� 以�鍮�
diff --git a/src/main/java/kr/wisestone/owl/web/condition/DepartmentCondition.java b/src/main/java/kr/wisestone/owl/web/condition/DepartmentCondition.java
index 010f1e8..815b458 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/DepartmentCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/DepartmentCondition.java
@@ -15,6 +15,7 @@
     private String departmentName;
     private String departmentDescription;
     private Long departmentCount;
+    private Long projectId;
 
     private List<Long> excludeIds = Lists.newArrayList();
 
@@ -65,6 +66,14 @@
         this.departmentCount = departmentCount;
     }
 
+    public Long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Long projectId) {
+        this.projectId = projectId;
+    }
+
     public Integer getPage() {
         return Page;
     }
diff --git a/src/main/java/kr/wisestone/owl/web/controller/DepartmentController.java b/src/main/java/kr/wisestone/owl/web/controller/DepartmentController.java
index 1c3f1c0..bdea59d 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/DepartmentController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/DepartmentController.java
@@ -3,6 +3,7 @@
 import kr.wisestone.owl.constant.Constants;
 import kr.wisestone.owl.service.DepartmentService;
 import kr.wisestone.owl.web.condition.DepartmentCondition;
+import kr.wisestone.owl.web.condition.UserCondition;
 import kr.wisestone.owl.web.form.DepartmentForm;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
@@ -89,6 +90,18 @@
         return this.setSuccessMessage(resJsonData);
     }
 
+    //  �봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 紐⑸줉 議고쉶
+    @RequestMapping(value = "/department/findProjectDepartment", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> findProjectDepartment(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+
+        this.departmentService.findProjectDepartment(resJsonData, DepartmentCondition.make(params.get(Constants.REQ_KEY_CONTENT)));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
 
     // 遺��꽌 �뿊�� �떎�슫濡쒕뱶
     @RequestMapping(value = "/department/downloadExcel", method = RequestMethod.POST)
diff --git a/src/main/resources/mybatis/query-template/department-template.xml b/src/main/resources/mybatis/query-template/department-template.xml
index 95989ae..eb3bea2 100644
--- a/src/main/resources/mybatis/query-template/department-template.xml
+++ b/src/main/resources/mybatis/query-template/department-template.xml
@@ -67,5 +67,15 @@
         </choose>
     </select>
 
+    <select id="findProjectDepartment
+" resultType="java.util.HashMap"
+            parameterType="kr.wisestone.owl.web.condition.UserCondition">
+        select DISTINCT (d.id) as departmentId, d.department_name as departmentName from department d
+         inner join project_role_department prd on prd.department_id = d.id
+         inner join project_role pr on pr.id = prd.project_role_id
+         inner join project p on p.id = pr.project_id
+        where p.id = #{projectId};
+    </select>
+
 
 </mapper>
\ No newline at end of file
diff --git a/src/main/webapp/custom_components/widget/project-progress-widget/project-progress-widget.directive.js b/src/main/webapp/custom_components/widget/project-progress-widget/project-progress-widget.directive.js
index 1ef0a17..aaabdae 100644
--- a/src/main/webapp/custom_components/widget/project-progress-widget/project-progress-widget.directive.js
+++ b/src/main/webapp/custom_components/widget/project-progress-widget/project-progress-widget.directive.js
@@ -23,7 +23,8 @@
 
                         //  �븿�닔 紐⑥쓬
                         $scope.fn = {
-                            projectMember : projectMember   //  �봽濡쒖젥�듃 ���썝 �솗�씤 �뙘�뾽 �샇異�
+                            //projectMember : projectMember   //  �봽濡쒖젥�듃 ���썝 �솗�씤 �뙘�뾽 �샇異�
+                            projectDepartment : projectDepartment // �봽濡쒖젥�듃 遺��꽌 �솗�씤 �뙘�뾽 �샇異�
                         };
 
                         //  吏꾪뻾 以묒씤 �봽濡쒖젥�듃 �쁽�솴 �젙蹂닿� 蹂�寃쎈맆�븣 媛먯��븳�떎.
@@ -35,7 +36,7 @@
                         });
 
                         //  �봽濡쒖젥�듃 ���썝 �솗�씤 �뙘�뾽 �샇異�
-                        function projectMember(id) {
+                        /*function projectMember(id) {
                             $uibModal.open({
                                 templateUrl : '../custom_components/widget/project-progress-widget/projectMemberList.html',
                                 size : "md",
@@ -49,6 +50,22 @@
                                     }
                                 }
                             });
+                        }*/
+
+                        function projectDepartment(id) {
+                            $uibModal.open({
+                                templateUrl : '../custom_components/widget/project-progress-widget/projectDepartmentList.html',
+                                size : "md",
+                                controller : 'projectDepartmentListController',
+                                backdrop : 'static',
+                                resolve : {
+                                    parameter : function () {
+                                        return {
+                                            id : id
+                                        };
+                                    }
+                                }
+                            });
                         }
                     },
                     link : function (scope, element, attrs) {
diff --git a/src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.controller.js b/src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.controller.js
new file mode 100644
index 0000000..465dcf8
--- /dev/null
+++ b/src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.controller.js
@@ -0,0 +1,51 @@
+/**
+ * Created by wisestone on 2018-11-06.
+ */
+/**
+ * Created by wisestone on 2017-12-15.
+ */
+'use strict';
+
+define([
+        'app'
+    ],
+    function (app) {
+        app.controller('projectDepartmentListController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$stateParams', '$q', 'parameter', 'Department', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $stateParams, $q, parameter, Department, $filter) {
+
+                $scope.vm = {
+                    departmentVos : []    //  �봽濡쒖젥�듃 �씪諛� 李몄뿬�옄
+                };
+
+                $scope.fn = {
+                    cancel : cancel, //  �뙘�뾽 李� �떕湲�
+                    getProjectDepartments : getProjectDepartments   //  �봽濡쒖젥�듃 李몄뿬 遺��꽌 紐⑸줉 議고쉶
+                };
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                }
+
+                //  �봽濡쒖젥�듃 李몄뿬 遺��꽌 紐⑸줉 議고쉶
+                function getProjectDepartments() {
+                    Department.findProjectDepartment($resourceProvider.getContent({
+                            projectId : parameter.id
+                        },
+                        $resourceProvider.getPageContent(0, 0))).then(function (result) {
+
+                        if (result.data.message.status === "success") {
+                            $scope.vm.departmentVos = result.data.data;
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("project.failedToProjectDepartment"), result.data.message.message, "error"); // "�봽濡쒖젥�듃 硫ㅻ쾭 議고쉶 �떎�뙣"
+                        }
+                    });
+                }
+
+                //  �봽濡쒖젥�듃 �씪諛� 李몄뿬�옄 紐⑸줉 議고쉶
+                $scope.fn.getProjectDepartments();
+
+            }]);
+    });
diff --git a/src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.html b/src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.html
new file mode 100644
index 0000000..c99754b
--- /dev/null
+++ b/src/main/webapp/custom_components/widget/project-progress-widget/projectDepartmentList.html
@@ -0,0 +1,22 @@
+<div class="formModal">
+    <div class="modal-header faded smaller">
+        <div class="modal-title">
+            <strong><span translate="project.projectDepartment">�봽濡쒖젥�듃 遺��꽌</span></strong>
+        </div>
+        <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()">
+            <span aria-hidden="true"> &times;</span>
+        </button>
+    </div>
+
+    <div class="modal-body">
+        <div class="select3-selection__choicediv mt-10">
+            <span class="select3-selection__choice" ng-repeat="departmentVo in vm.departmentVos">
+                <span>{{departmentVo.name}}</span>
+            </span>
+        </div>
+    </div>
+
+    <div class="modal-footer buttons-on-right">
+        <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.close">�떕湲�</span></button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 369b739..ed49941 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -330,6 +330,7 @@
         "failedToModifyProject": "�봽濡쒖젥�듃 �닔�젙 �떎�뙣",
         "failedToProjectDetails": "�봽濡쒖젥�듃 �긽�꽭 �젙蹂� 議고쉶 �떎�뙣",
         "failedToProjectMember": "�봽濡쒖젥�듃 硫ㅻ쾭 議고쉶 �떎�뙣",
+        "failedToProjectDepartment": "�봽濡쒖젥�듃 遺��꽌 議고쉶 �떎�뙣",
         "failedToProjectKeyPattern": "�봽濡쒖젥�듃 �궎 �엯�젰 媛믪씠 �옒紐삳릺�뿀�뒿�땲�떎.",
         "limitNameToSpecialCharacters": "�봽濡쒖젥�듃 紐낆� �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.",
         "viewSub": "�븯�쐞 �봽濡쒖젥�듃 蹂닿린",
diff --git a/src/main/webapp/scripts/app/widget/widget.js b/src/main/webapp/scripts/app/widget/widget.js
index 2cf1cbb..6057042 100644
--- a/src/main/webapp/scripts/app/widget/widget.js
+++ b/src/main/webapp/scripts/app/widget/widget.js
@@ -31,7 +31,7 @@
                             var deferred = $q.defer();
                             require(["widgetDashBoardController", "widgetService", "tableUserImage", "d3", "nvd3", "issueCompleteWidget", "issueStatusWidget", "myAssigneeIssueWidget", "issueTypeWidget",
                             "delayIssueWidget", "registerIssueWidget", "riskIssueWidget", "myIssueWidget", "memberProgressWidget", "projectProgressWidget", "issueStatisticsWidget", "severityIssueWidget",
-                            "workflowWidget", "projectMemberListController", "jsWorkflowDisabled", 'd3', 'formSubmit'], function () {
+                            "workflowWidget", "projectMemberListController", "projectDepartmentListController", "jsWorkflowDisabled", 'd3', 'formSubmit'], function () {
                                 deferred.resolve();
                             });
 
diff --git a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
index 511b597..11f727f 100644
--- a/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
+++ b/src/main/webapp/scripts/components/userWorkspace/userWorkspace.service.js
@@ -69,6 +69,12 @@
                     return response;
                 });
             },
+            findProjectDepartment : function (conditions) {
+                return $http.post("department/findProjectDepartment", conditions).then(function (response) {
+                    $log.debug("�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 遺��꽌 紐⑸줉 議고쉶 : ", response);
+                    return response;
+                });
+            },
             
             //�궗�슜�옄 愿�由�
             find : function (conditions) {
diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
index 3a9e11d..b2177a0 100644
--- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js
+++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -257,6 +257,17 @@
                     var conditions = {
                         departmentName : query,
                         userId : $rootScope.user.id,
+                        projectId : (function () {
+                            var projectId = "";
+
+                            if ($rootScope.isDefined($scope.vm.form)) {
+                                angular.forEach($scope.vm.form.projects, function (project) {
+                                    projectId = project.id;
+                                });
+                            }
+
+                            return projectId;
+                        })(),
                         excludeIds : (function () {
                             var excludeIds = [];
 
@@ -272,7 +283,7 @@
 
 
 
-                    UserWorkspace.departmentFind($resourceProvider.getContent(         //  �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎.
+                    UserWorkspace.findProjectDepartment($resourceProvider.getContent(         //  �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎.
                         conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) {
                         if (result.data.message.status === "success") {
                             if ($rootScope.isDefined(callBack)) {
diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js
index a5116c5..8b1694c 100644
--- a/src/main/webapp/scripts/main.js
+++ b/src/main/webapp/scripts/main.js
@@ -101,6 +101,7 @@
         'memberProgressWidget' : '../custom_components/widget/member-progress-widget/member-progress-widget.directive', //  硫ㅻ쾭蹂� 吏꾪뻾瑜� 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎.
         'projectProgressWidget' : '../custom_components/widget/project-progress-widget/project-progress-widget.directive',  //  吏꾪뻾 以묒씤 �봽濡쒖젥�듃 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎.
         'projectMemberListController' : '../custom_components/widget/project-progress-widget/projectMemberList.controller', //  吏꾪뻾 以묒씤 �봽濡쒖젥�듃 �쁽�솴 李⑦듃�뿉�꽌 ���썝 �솗�씤�뿉 �궗�슜�븳�떎.
+        'projectDepartmentListController' : '../custom_components/widget/project-progress-widget/projectDepartmentList.controller',
         'issueStatisticsWidget' : '../custom_components/widget/issue-statistics-widget/issue-statistics-widget.directive',  //  �쟾泥� �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎.
         'workflowWidget' : '../custom_components/widget/workflow-widget/workflow-widget.directive', //  �썙�겕�뵆濡쒖슦 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎.
         'issueTypeWidget' : '../custom_components/widget/issue-type-widget/issue-type-widget.directive',    //  �씠�뒋 ���엯 蹂� �씠�뒋 �쁽�솴 李⑦듃瑜� �꽔�뒗�뜲 �궗�슜�븳�떎.

--
Gitblit v1.8.0