From 3369b56c9fc7b0079e653fdd88b792f24757d5ce Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 금, 05 11월 2021 15:45:38 +0900
Subject: [PATCH] 부서관리 백엔드 수정

---
 src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js    |   12 +-
 src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java        |   10 --
 src/main/java/kr/wisestone/owl/service/DepartmentManageService.java           |    7 +
 src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java                    |    2 
 src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java  |   49 ++++++++----
 src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java             |   19 ++++
 src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java |   50 ++++++-----
 src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java                     |   14 ++
 src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java   |   11 ++
 src/main/java/kr/wisestone/owl/service/UserLevelService.java                  |    5 -
 src/main/resources/mybatis/query-template/departmentManage-template.xml       |    6 +
 src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js |    3 
 12 files changed, 119 insertions(+), 69 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java b/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
index 4a53c54..fede74a 100644
--- a/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
+++ b/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
@@ -6,7 +6,10 @@
 import kr.wisestone.owl.web.form.DepartmentManageForm;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.ui.Model;
+import org.springframework.web.servlet.ModelAndView;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Map;
 
@@ -17,4 +20,8 @@
 
     List<DepartmentManageVo> findDepartment(Map<String, Object> resJsonData,
                                             DepartmentManageCondition make, Pageable pageable);
+
+    ModelAndView downloadExcel(HttpServletRequest request, Model model);
+
+    void removeUserLevel(DepartmentManageForm departmentManageForm);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/UserLevelService.java b/src/main/java/kr/wisestone/owl/service/UserLevelService.java
index dd2c965..c40b3b6 100644
--- a/src/main/java/kr/wisestone/owl/service/UserLevelService.java
+++ b/src/main/java/kr/wisestone/owl/service/UserLevelService.java
@@ -1,17 +1,12 @@
 package kr.wisestone.owl.service;
 
-import kr.wisestone.owl.domain.Qna;
 import kr.wisestone.owl.domain.UserLevel;
 import kr.wisestone.owl.vo.UserLevelVo;
-import kr.wisestone.owl.web.condition.UserCondition;
 import kr.wisestone.owl.web.condition.UserLevelCondition;
-import kr.wisestone.owl.web.form.ManageUserForm;
-import kr.wisestone.owl.web.form.UserForm;
 import kr.wisestone.owl.web.form.UserLevelForm;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.ui.Model;
-import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
index 77eb812..5a51f55 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
@@ -1,5 +1,7 @@
 package kr.wisestone.owl.service.impl;
 
+import kr.wisestone.owl.web.form.UserLevelForm;
+import org.springframework.ui.Model;
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
 import kr.wisestone.owl.constant.Constants;
@@ -19,7 +21,6 @@
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Service;
-import org.springframework.ui.Model;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
@@ -50,6 +51,7 @@
         return this.departmentManageRepository;
     }
 
+    // 遺��꽌 異붽�
     @Override
     public DepartmentManage addDepartmentManage(DepartmentManageForm departmentManageForm) {
         DepartmentManage departmentManage = ConvertUtil.copyProperties(departmentManageForm, DepartmentManage.class);
@@ -57,6 +59,23 @@
         return departmentManage;
     }
 
+    // 遺��꽌 紐⑸줉�쓣 媛��졇�삩�떎.
+    @Override
+    public List<DepartmentManageVo> findDepartment(Map<String, Object> resJsonData,
+                                                   DepartmentManageCondition condition, Pageable pageable) {
+
+        condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
+        condition.setPageSize(pageable.getPageSize());
+
+        List<Map<String, Object>> results = this.departmentManageMapper.find(condition);
+        Long totalDepartmentCount = this.departmentManageMapper.count(condition);
+
+        return this.convertDepartmentManageVoToMap(results, totalDepartmentCount, pageable, resJsonData);
+    }
+
+
+
+    // �궗�슜�옄 遺��꽌 ID濡� 議고쉶�븳�떎.
     @Override
     public DepartmentManage getDepartment(Long id) {
         if (id == null) {
@@ -74,40 +93,38 @@
         return departmentManage;
     }
 
+    // 遺��꽌瑜� �궘�젣�븳�떎.
     @Override
-    public List<DepartmentManageVo> findDepartment(Map<String, Object> resJsonData,
-                                                   DepartmentManageCondition condition, Pageable pageable) {
-
-        condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
-        condition.setPageSize(pageable.getPageSize());
-
-        List<Map<String, Object>> results = this.departmentManageMapper.find(condition);
-        Long totalDepartmentCount = this.departmentManageMapper.count(condition);
-
-        return this.convertDepartmentManageVoToMap(results, totalDepartmentCount, pageable, resJsonData);
+    public void removeUserLevel(DepartmentManageForm departmentManageForm) {
+        if (departmentManageForm.getRemoveIds().size() < 1) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.PROJECT_REMOVE_NOT_SELECT));
+        }
+        this.departmentManageRepository.flush();
     }
 
+
     //  寃��깋 寃곌낵瑜� DepartmentManageVo 濡� 蹂��솚�븳�떎.
-    private List<DepartmentManageVo> convertDepartmentManageVoToMap(List<Map<String, Object>> results, Long totalDepartmentCount, Pageable pageable, Map<String, Object> resJsonData) {
+    private List<DepartmentManageVo> convertDepartmentManageVoToMap(List<Map<String, Object>> results, Long totalDepartmentsCount, Pageable pageable, Map<String, Object> resJsonData) {
         List<DepartmentManageVo> departmentManageVos = Lists.newArrayList();
 
         for (Map<String, Object> result : results) {
             DepartmentManageVo departmentManageVo = ConvertUtil.convertMapToClass(result, DepartmentManageVo.class);
-            // 遺��꽌紐낅쭔 蹂��솚 �븯硫� �릺�뒗嫄닿� ?
             departmentManageVos.add(departmentManageVo);
         }
 
-        int totalPage = (int) Math.ceil((totalDepartmentCount - 1) / pageable.getPageSize()) + 1;
+        int totalPage = (int) Math.ceil((totalDepartmentsCount - 1) / pageable.getPageSize()) + 1;
 
         resJsonData.put(Constants.RES_KEY_CONTENTS, departmentManageVos);
         resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
-                totalPage, totalDepartmentCount));
+                totalPage, totalDepartmentsCount));
 
         return departmentManageVos;
     }
 
-    //  遺��꽌 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
+    @Override
     public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
+
         ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model);
         if (modelAndView != null) {
             return modelAndView;
diff --git a/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java b/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java
index bdc4ed4..6798acc 100644
--- a/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java
@@ -1,7 +1,7 @@
 package kr.wisestone.owl.vo;
 
 /**
- * Created by jeong on 2017-08-02.
+ * Created by wyu on 2021-11-05.
  */
 public class DepartmentManageVo extends BaseVo{
 
@@ -9,8 +9,8 @@
     private String departmentName;
     private String departmentDescription;
 
-    public DepartmentManageVo() {
-    }
+    private Long departmentCount;
+    public DepartmentManageVo() {}
 
     public DepartmentManageVo(Long id, String departmentName, String departmentDescription) {
         this.id = id;
@@ -41,4 +41,12 @@
     public void setDepartmentDescription(String departmentDescription) {
         this.departmentDescription = departmentDescription;
     }
+
+    public Long getDepartmentCount() {
+        return departmentCount;
+    }
+
+    public void setDepartmentCount(Long departmentCount) {
+        this.departmentCount = departmentCount;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java b/src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java
index 3bdb9e8..811d9f4 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java
@@ -5,12 +5,13 @@
 import java.util.Map;
 
 /**
- * Created by jeong on 2018-01-01.
+ * Created by wyu on 2021-11-05.
  */
 public class DepartmentManageCondition {
     private Long id;
     private String departmentName;
     private String departmentDescription;
+    private Long departmentCount;
 
     private Integer Page;
     private Integer PageSize;
@@ -43,6 +44,14 @@
         this.departmentDescription = departmentDescription;
     }
 
+    public Long getDepartmentCount() {
+        return departmentCount;
+    }
+
+    public void setDepartmentCount(Long departmentCount) {
+        this.departmentCount = departmentCount;
+    }
+
     public Integer getPage() {
         return Page;
     }
diff --git a/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java b/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java
index 374f569..e71abed 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java
@@ -12,7 +12,10 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.ui.Model;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -37,7 +40,7 @@
         return this.setSuccessMessage(resJsonData);
     }
 
-    //  �궗�슜�옄�벑湲� 議고쉶
+    //  遺��꽌 議고쉶
     @RequestMapping(value = "/departmentManage/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
     public
     @ResponseBody
@@ -49,8 +52,9 @@
 
         return this.setSuccessMessage(resJsonData);
     }
-//
-//    //  �궗�슜�옄�벑湲� �긽�꽭 議고쉶
+
+    //
+//    //  遺��꽌 �긽�꽭 議고쉶
 //    @RequestMapping(value = "/userLevel/detail", produces = MediaType.APPLICATION_JSON_VALUE)
 //    public
 //    @ResponseBody
@@ -61,7 +65,7 @@
 //        return this.setSuccessMessage(resJsonData);
 //    }
 //
-//    //  �궗�슜�옄�벑湲� �닔�젙
+//    //  遺��꽌 �닔�젙
 //    @RequestMapping(value = "/userLevel/modify", produces = MediaType.APPLICATION_JSON_VALUE)
 //    public
 //    @ResponseBody
@@ -73,26 +77,26 @@
 //        return this.setSuccessMessage(resJsonData);
 //    }
 //
-//    //  �궗�슜�옄�벑湲� �궘�젣
-//    @RequestMapping(value = "/userLevel/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
-//    public
-//    @ResponseBody
-//    Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) {
-//        Map<String, Object> resJsonData = new HashMap<>();
-//        Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT);
-//
-//        this.userLevelService.removeUserLevel(UserLevelForm.make(content));
-//
-//        return this.setSuccessMessage(resJsonData);
-//    }
-//
-//
-//    //  �궗�슜�옄 �벑湲� �뿊�� �떎�슫濡쒕뱶
-//    @RequestMapping(value = "/userLevel/downloadExcel", method = RequestMethod.POST)
-//    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
-//        return this.userLevelService.downloadExcel(request, model);
-}
+//    //  遺��꽌 �궘�젣
+    @RequestMapping(value = "/departmentManage/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+        Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT);
 
+        this.departmentManageService.removeUserLevel(DepartmentManageForm.make(content));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+
+    //  遺��꽌 �뿊�� �떎�슫濡쒕뱶
+    @RequestMapping(value = "/departmentManage/downloadExcel", method = RequestMethod.POST)
+    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
+        return this.departmentManageService.downloadExcel(request, model);
+    }
+}
 
 
 
diff --git a/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java b/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java
index 93bedf9..547e2f0 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/UserLevelController.java
@@ -1,15 +1,8 @@
 package kr.wisestone.owl.web.controller;
 
 import kr.wisestone.owl.constant.Constants;
-import kr.wisestone.owl.domain.enumType.SocialType;
 import kr.wisestone.owl.service.UserLevelService;
-import kr.wisestone.owl.service.UserService;
-import kr.wisestone.owl.util.ConvertUtil;
-import kr.wisestone.owl.web.condition.NoticeCondition;
-import kr.wisestone.owl.web.condition.UserCondition;
 import kr.wisestone.owl.web.condition.UserLevelCondition;
-import kr.wisestone.owl.web.form.ManageUserForm;
-import kr.wisestone.owl.web.form.UserForm;
 import kr.wisestone.owl.web.form.UserLevelForm;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
@@ -17,7 +10,6 @@
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
@@ -25,7 +17,7 @@
 import java.util.Map;
 
 /**
- * Created by jeong on 2017-08-02.
+ * Created by jeong on 2021-11-05.
  */
 @Controller
 public class UserLevelController extends BaseController {
diff --git a/src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java b/src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java
index e75a8ff..d06a373 100644
--- a/src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java
@@ -1,7 +1,10 @@
 package kr.wisestone.owl.web.form;
 
+import com.google.common.collect.Lists;
 import kr.wisestone.owl.util.ConvertUtil;
+import kr.wisestone.owl.util.MapUtil;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -11,12 +14,18 @@
     private Long id;
     private String departmentName;
     private String departmentDescription;
+    private List<Long> removeIds = Lists.newArrayList();
 
     public DepartmentManageForm() {
     }
 
     public static DepartmentManageForm make(Map<String, Object> params) {
-        return ConvertUtil.convertMapToClass(params, DepartmentManageForm.class);
+        DepartmentManageForm form = ConvertUtil.convertMapToClass(params, DepartmentManageForm.class);
+
+        if (MapUtil.getLongs(params,"removeIds") != null) {
+            form.setRemoveIds(MapUtil.getLongs(params, "removeIds"));
+        }
+        return form;
     }
 
     public Long getId() {
@@ -42,4 +51,12 @@
     public void setDepartmentDescription(String departmentDescription) {
         this.departmentDescription = departmentDescription;
     }
+
+    public List<Long> getRemoveIds() {
+        return removeIds;
+    }
+
+    public void setRemoveIds(List<Long> removeIds) {
+        this.removeIds = removeIds;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
index b8e4dce..62f3bb1 100644
--- a/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/UserLevelForm.java
@@ -2,8 +2,6 @@
 
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.constant.MngPermission;
-import kr.wisestone.owl.domain.User;
-import kr.wisestone.owl.domain.UserLevel;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.util.MapUtil;
 
diff --git a/src/main/resources/mybatis/query-template/departmentManage-template.xml b/src/main/resources/mybatis/query-template/departmentManage-template.xml
index 9f2981a..23e2cc4 100644
--- a/src/main/resources/mybatis/query-template/departmentManage-template.xml
+++ b/src/main/resources/mybatis/query-template/departmentManage-template.xml
@@ -7,10 +7,12 @@
         SELECT
         dm.id as id,
         dm.department_name as departmentName,
-        dm.department_description as departmentDescription
+        dm.department_description as departmentDescription,
+        count(u.department_id) as departmentCount
         FROM
         department_manage dm
-        WHERE id != 1 AND 1=1
+        OUTER JOIN user u on dm.id = u.department_id
+        WHERE 1=1
         <if test="departmentName != '' and departmentName != null">
             AND ul.department_name like CONCAT('%',#{departmentName},'%')
         </if>
diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js
index af3e40d..874e4b9 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentAdd.controller.js
@@ -7,8 +7,8 @@
         'app'
     ],
     function (app) {
-        app.controller('workspaceDepartmentAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'Workspace', '$filter', 'parameter', '$timeout',
-            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, Workspace, $filter, parameter) {
+        app.controller('workspaceDepartmentAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'Workspace', 'UserWorkspace', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, Workspace, UserWorkspace, $filter) {
 
                 $scope.fn = {
                     cancel : cancel,    //  �뙘�뾽 李� �떕湲�
@@ -18,8 +18,8 @@
 
                 $scope.vm = {
                     form : {
-                        title : "",
-                        description : ""
+                        departmentName : "",  //  �젣紐�
+                        departmentDescription : ""  //  �궡�슜
                     },
                     options : {
                         callbacks : {
@@ -87,8 +87,8 @@
                     $rootScope.spinner = true;
 
                     var content = {
-                        title : $rootScope.preventXss($scope.vm.form.title),
-                        description : $rootScope.preventXss($scope.vm.form.description)
+                        departmentName : $rootScope.preventXss($scope.vm.form.title),
+                        departmentDescription : $rootScope.preventXss($scope.vm.form.description)
                     };
 
                     UserWorkspace.departmentAdd($resourceProvider.getContent(
diff --git a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
index b56f44d..f3e4d98 100644
--- a/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
+++ b/src/main/webapp/scripts/app/workspace/workspaceDepartmentConfig.controller.js
@@ -65,7 +65,7 @@
                         .setDType("renderer")
                         .setDRenderer("DEPARTMENT_MODIFY"));
                     $scope.vm.tableConfigs2.push($tableProvider.config()
-                        .setHName("manageDepartment.departmentDescription")
+                        .setHName("manageDepartment.departmentEx")
                         .setHWidth("width-120-p")
                         .setDAlign("text-center")
                         .setDName("departmentDescription"));
@@ -103,6 +103,7 @@
                         if (result.data.message.status === "success") {
                             $scope.vm.page.selectedPage = currentPage + 1;
                             $scope.vm.responseData = result.data;
+
                         }
                         else {
                             SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullUserList"), result.data.message.message); // "�뾽臾� 怨듦컙 �쟾泥� �궗�슜�옄 紐⑸줉 議고쉶 �떎�뙣"

--
Gitblit v1.8.0