From a4efd2c5d8f2c31d3bfb6860c58af5cb62606c9a Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 금, 05 11월 2021 10:51:38 +0900
Subject: [PATCH] 부서관리 테이블 변경 및 언어팩 수정

---
 src/main/resources/migration/V1_10__Alter_Table.sql                           |    2 
 src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java         |    2 
 src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java                     |    6 
 src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java     |   21 +
 /dev/null                                                                     |   67 ------
 src/main/java/kr/wisestone/owl/mapper/UserLevelMapper.java                    |   12 -
 src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java              |   19 -
 src/main/java/kr/wisestone/owl/repository/DepartmentManageRepository.java     |    8 
 src/main/java/kr/wisestone/owl/service/DepartmentManageService.java           |   20 ++
 src/main/java/kr/wisestone/owl/domain/DepartmentManage.java                   |    4 
 src/main/java/kr/wisestone/owl/domain/User.java                               |   13 
 src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java  |  141 ++++++++++++++
 src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java             |    8 
 src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java |  100 ++++++++++
 src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java             |   19 +
 src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java   |   61 ++++++
 src/main/webapp/WEB-INF/i18n/code_ko_KR.properties                            |    4 
 src/main/resources/mybatis/query-template/departmentManage-template.xml       |   35 +++
 18 files changed, 425 insertions(+), 117 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/domain/DepartmentManagement.java b/src/main/java/kr/wisestone/owl/domain/DepartmentManage.java
similarity index 89%
rename from src/main/java/kr/wisestone/owl/domain/DepartmentManagement.java
rename to src/main/java/kr/wisestone/owl/domain/DepartmentManage.java
index 5586e9e..2cf87de 100644
--- a/src/main/java/kr/wisestone/owl/domain/DepartmentManagement.java
+++ b/src/main/java/kr/wisestone/owl/domain/DepartmentManage.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 @Entity
-public class DepartmentManagement extends BaseEntity implements Serializable {
+public class DepartmentManage extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -17,7 +17,7 @@
     private String departmentName;
     private String departmentDescription;
 
-    public DepartmentManagement() {
+    public DepartmentManage() {
     }
 
     public Long getId() {
diff --git a/src/main/java/kr/wisestone/owl/domain/User.java b/src/main/java/kr/wisestone/owl/domain/User.java
index 5674d6c..326836d 100644
--- a/src/main/java/kr/wisestone/owl/domain/User.java
+++ b/src/main/java/kr/wisestone/owl/domain/User.java
@@ -1,7 +1,6 @@
 package kr.wisestone.owl.domain;
 
 import kr.wisestone.owl.domain.enumType.SocialType;
-import kr.wisestone.owl.util.CommonUtil;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 import javax.persistence.*;
@@ -65,9 +64,9 @@
     @JoinColumn(name="level_id")
     private UserLevel userLevel;
 
-    @ManyToOne(targetEntity = DepartmentManagement.class, fetch = FetchType.LAZY)
+    @ManyToOne(targetEntity = DepartmentManage.class, fetch = FetchType.LAZY)
     @JoinColumn(name="department_id")
-    private DepartmentManagement departmentManagement;
+    private DepartmentManage departmentManage;
 
 
     public User() {
@@ -79,12 +78,12 @@
         this.account = account;
     }
 
-    public DepartmentManagement getDepartmentId() {
-        return departmentManagement;
+    public DepartmentManage getDepartmentManage() {
+        return departmentManage;
     }
 
-    public void setDepartmentId(DepartmentManagement department) {
-        this.departmentManagement = department;
+    public void setDepartmentManage(DepartmentManage departmentManage) {
+        this.departmentManage = departmentManage;
     }
 
     public UserLevel getUserLevel() {
diff --git a/src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java b/src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java
new file mode 100644
index 0000000..987f487
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java
@@ -0,0 +1,19 @@
+package kr.wisestone.owl.mapper;
+
+import kr.wisestone.owl.web.condition.DepartmentManageCondition;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by wisestone on 2018-02-26.
+ */
+@Repository
+public interface DepartmentManageMapper {
+    List<Map<String, Object>> find(DepartmentManageCondition departmentManageCondition);
+
+    Long count(DepartmentManageCondition departmentManageCondition);
+
+    List<Map<String, Object>> findEvent();
+}
diff --git a/src/main/java/kr/wisestone/owl/mapper/DepartmentManagementMapper.java b/src/main/java/kr/wisestone/owl/mapper/DepartmentManagementMapper.java
deleted file mode 100644
index 031886a..0000000
--- a/src/main/java/kr/wisestone/owl/mapper/DepartmentManagementMapper.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package kr.wisestone.owl.mapper;
-
-import kr.wisestone.owl.web.condition.DepartmentManagementCondition;
-import kr.wisestone.owl.web.condition.DepartmentManagementCondition;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by wisestone on 2018-02-26.
- */
-@Repository
-public interface DepartmentManagementMapper {
-    List<Map<String, Object>> find(DepartmentManagementCondition departmentManagementCondition);
-
-    List<Map<String, Object>> findAdmin();
-
-    List<Map<String, Object>> findProjectMember(DepartmentManagementCondition DepartmentManagementCondition);
-
-    Long count(DepartmentManagementCondition DepartmentManagementCondition);
-
-    void deleteCascadeUser(DepartmentManagementCondition DepartmentManagementCondition);
-
-    List<Map<String, Object>> findByReservationNotifyTime(Map<String, Object> conditions);
-
-    List<Map<String, Object>> findByAllWorkspace(DepartmentManagementCondition DepartmentManagementCondition);
-
-    Long countByAllWorkspace(DepartmentManagementCondition DepartmentManagementCondition);
-
-    List<Map<String, Object>> findEvent();
-
-}
diff --git a/src/main/java/kr/wisestone/owl/mapper/UserLevelMapper.java b/src/main/java/kr/wisestone/owl/mapper/UserLevelMapper.java
index 81c3ccd..c94dfd3 100644
--- a/src/main/java/kr/wisestone/owl/mapper/UserLevelMapper.java
+++ b/src/main/java/kr/wisestone/owl/mapper/UserLevelMapper.java
@@ -14,19 +14,7 @@
 public interface UserLevelMapper {
     List<Map<String, Object>> find(UserLevelCondition userLevelCondition);
 
-    List<Map<String, Object>> findAdmin();
-
-    List<Map<String, Object>> findProjectMember(UserLevelCondition userLevelCondition);
-
     Long count(UserLevelCondition userLevelCondition);
-
-    void deleteCascadeUser(UserLevelCondition userLevelCondition);
-
-    List<Map<String, Object>> findByReservationNotifyTime(Map<String, Object> conditions);
-
-    List<Map<String, Object>> findByAllWorkspace(UserLevelCondition userLevelCondition);
-
-    Long countByAllWorkspace(UserLevelCondition userLevelCondition);
 
     List<Map<String, Object>> findEvent();
 
diff --git a/src/main/java/kr/wisestone/owl/repository/DepartmentManageRepository.java b/src/main/java/kr/wisestone/owl/repository/DepartmentManageRepository.java
new file mode 100644
index 0000000..e7a2210
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/repository/DepartmentManageRepository.java
@@ -0,0 +1,8 @@
+package kr.wisestone.owl.repository;
+
+import kr.wisestone.owl.domain.DepartmentManage;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface DepartmentManageRepository extends JpaRepository<DepartmentManage, Long> {
+
+}
diff --git a/src/main/java/kr/wisestone/owl/repository/DepartmentManagementRepository.java b/src/main/java/kr/wisestone/owl/repository/DepartmentManagementRepository.java
deleted file mode 100644
index eef1247..0000000
--- a/src/main/java/kr/wisestone/owl/repository/DepartmentManagementRepository.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package kr.wisestone.owl.repository;
-
-import kr.wisestone.owl.domain.DepartmentManagement;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface DepartmentManagementRepository extends JpaRepository<DepartmentManagement, Long> {
-
-}
diff --git a/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java b/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
new file mode 100644
index 0000000..4a53c54
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
@@ -0,0 +1,20 @@
+package kr.wisestone.owl.service;
+
+import kr.wisestone.owl.domain.DepartmentManage;
+import kr.wisestone.owl.vo.DepartmentManageVo;
+import kr.wisestone.owl.web.condition.DepartmentManageCondition;
+import kr.wisestone.owl.web.form.DepartmentManageForm;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DepartmentManageService extends AbstractService<DepartmentManage, Long, JpaRepository<DepartmentManage, Long>> {
+    DepartmentManage addDepartmentManage(DepartmentManageForm departmentManageForm);
+
+    DepartmentManage getDepartment(Long id);
+
+    List<DepartmentManageVo> findDepartment(Map<String, Object> resJsonData,
+                                            DepartmentManageCondition make, Pageable pageable);
+}
diff --git a/src/main/java/kr/wisestone/owl/service/DepartmentManagementService.java b/src/main/java/kr/wisestone/owl/service/DepartmentManagementService.java
deleted file mode 100644
index ac9a13b..0000000
--- a/src/main/java/kr/wisestone/owl/service/DepartmentManagementService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package kr.wisestone.owl.service;
-
-import kr.wisestone.owl.domain.DepartmentManagement;
-import kr.wisestone.owl.web.form.DepartmentManagementForm;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface DepartmentManagementService extends AbstractService<DepartmentManagement, Long, JpaRepository<DepartmentManagement, Long>> {
-    DepartmentManagement addDepartment(DepartmentManagementForm departmentManagementForm);
-
-}
diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
new file mode 100644
index 0000000..77eb812
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
@@ -0,0 +1,141 @@
+package kr.wisestone.owl.service.impl;
+
+import com.google.common.collect.Lists;
+import kr.wisestone.owl.common.ExcelConditionCheck;
+import kr.wisestone.owl.constant.Constants;
+import kr.wisestone.owl.constant.MsgConstants;
+import kr.wisestone.owl.domain.DepartmentManage;
+import kr.wisestone.owl.exception.OwlRuntimeException;
+import kr.wisestone.owl.mapper.DepartmentManageMapper;
+import kr.wisestone.owl.repository.DepartmentManageRepository;
+import kr.wisestone.owl.service.DepartmentManageService;
+import kr.wisestone.owl.service.WorkspaceService;
+import kr.wisestone.owl.util.ConvertUtil;
+import kr.wisestone.owl.vo.*;
+import kr.wisestone.owl.web.condition.DepartmentManageCondition;
+import kr.wisestone.owl.web.form.DepartmentManageForm;
+import kr.wisestone.owl.web.view.ExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class DepartmentManageServiceImpl extends AbstractServiceImpl<DepartmentManage, Long, JpaRepository<DepartmentManage, Long>> implements DepartmentManageService {
+
+    @Autowired
+    private DepartmentManageRepository departmentManageRepository;
+
+    @Autowired
+    private DepartmentManageMapper departmentManageMapper;
+
+    @Autowired
+    private WorkspaceService workspaceService;
+
+    @Autowired
+    private ExcelView excelView;
+
+    @Autowired
+    private ExcelConditionCheck excelConditionCheck;
+
+    @Override
+    protected JpaRepository<DepartmentManage, Long> getRepository() {
+        return this.departmentManageRepository;
+    }
+
+    @Override
+    public DepartmentManage addDepartmentManage(DepartmentManageForm departmentManageForm) {
+        DepartmentManage departmentManage = ConvertUtil.copyProperties(departmentManageForm, DepartmentManage.class);
+        departmentManageRepository.saveAndFlush(departmentManage);
+        return departmentManage;
+    }
+
+    @Override
+    public DepartmentManage getDepartment(Long id) {
+        if (id == null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_NOT_EXIST));
+        }
+
+        DepartmentManage departmentManage = this.findOne(id);
+
+        if (departmentManage == null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_NOT_EXIST));
+        }
+
+        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);
+    }
+
+    //  寃��깋 寃곌낵瑜� DepartmentManageVo 濡� 蹂��솚�븳�떎.
+    private List<DepartmentManageVo> convertDepartmentManageVoToMap(List<Map<String, Object>> results, Long totalDepartmentCount, 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;
+
+        resJsonData.put(Constants.RES_KEY_CONTENTS, departmentManageVos);
+        resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
+                totalPage, totalDepartmentCount));
+
+        return departmentManageVos;
+    }
+
+    //  遺��꽌 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
+    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
+        ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model);
+        if (modelAndView != null) {
+            return modelAndView;
+        }
+
+        Map<String, Object> conditions = new HashMap<>();
+        //  �뿊�� �떎�슫濡쒕뱶�뿉 �븘�슂�븳 寃��깋 議곌굔 �젙蹂대�� 異붿텧�븯怨� 寃��깋 議곌굔 異붿텧�뿉 �삤瑜섍� 諛쒖깮�븯硫� 寃쎄퀬瑜� �몴�떆�빐以��떎.
+        modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model);
+        if (modelAndView != null) {
+            return modelAndView;
+        }
+
+        DepartmentManageCondition departmentManageCondition = DepartmentManageCondition.make(conditions);
+
+
+        List<Map<String, Object>> results = this.departmentManageMapper.find(departmentManageCondition);
+        List<DepartmentManageVo> departmentManageVos = ConvertUtil.convertListToListClass(results, DepartmentManageVo.class);
+
+        // code_ko_KR �뿉 code紐� �꽕�젙
+        ExportExcelVo excelInfo = new ExportExcelVo();
+        excelInfo.setFileName(this.messageAccessor.message("遺��꽌 紐⑸줉"));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("departmentName", this.messageAccessor.message("departmentManage.departmentName"), 6, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("departmentDescription", this.messageAccessor.message("departmentManage.departmentDescription"), 20, ExportExcelAttrVo.ALIGN_CENTER));
+
+        excelInfo.setDatas(departmentManageVos);
+
+        model.addAttribute(Constants.EXCEL, excelInfo);
+        return new ModelAndView(this.excelView);
+    }
+
+}
diff --git a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManagementServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManagementServiceImpl.java
deleted file mode 100644
index f049487..0000000
--- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManagementServiceImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package kr.wisestone.owl.service.impl;
-
-import kr.wisestone.owl.domain.DepartmentManagement;
-import kr.wisestone.owl.repository.DepartmentManagementRepository;
-import kr.wisestone.owl.service.DepartmentManagementService;
-import kr.wisestone.owl.util.ConvertUtil;
-import kr.wisestone.owl.web.form.DepartmentManagementForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Service;
-
-@Service
-public class DepartmentManagementServiceImpl extends AbstractServiceImpl<DepartmentManagement, Long, JpaRepository<DepartmentManagement, Long>> implements DepartmentManagementService {
-
-    @Autowired
-    private DepartmentManagementRepository departmentManagementRepository;
-
-    @Override
-    protected JpaRepository<DepartmentManagement, Long> getRepository() {
-        return this.departmentManagementRepository;
-    }
-
-    @Override
-    public DepartmentManagement addDepartment(DepartmentManagementForm departmentManagementForm) {
-        DepartmentManagement departmentManagement = ConvertUtil.copyProperties(departmentManagementForm, DepartmentManagement.class);
-        departmentManagementRepository.saveAndFlush(departmentManagement);
-        return departmentManagement;
-    }
-}
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
index a35c05c..17e03da 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
@@ -243,7 +243,7 @@
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permWorkSpaceSetting", this.messageAccessor.message("manageUser.manageWorkspacePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permProjectSetting", this.messageAccessor.message("manageUser.manageProjectPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permIssueSetting", this.messageAccessor.message("manageUser.manageIssueSystemPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
-        excelInfo.addAttrInfos(new ExportExcelAttrVo("permApi", this.messageAccessor.message("manageUser.manageUserPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("permApi", this.messageAccessor.message("manageUser.manageUserApi"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permNotice", this.messageAccessor.message("manageUser.manageNoticePerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permFAQ", this.messageAccessor.message("manageUser.manageFAQPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("permQnA", this.messageAccessor.message("manageUser.manageQnAPerm"), 3, ExportExcelAttrVo.ALIGN_CENTER));
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
index 8a7253e..47e33bb 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserServiceImpl.java
@@ -17,9 +17,8 @@
 import kr.wisestone.owl.util.*;
 import kr.wisestone.owl.vo.*;
 import kr.wisestone.owl.web.condition.UserCondition;
-import kr.wisestone.owl.web.form.DepartmentManagementForm;
+import kr.wisestone.owl.web.form.DepartmentManageForm;
 import kr.wisestone.owl.web.form.UserForm;
-import kr.wisestone.owl.web.form.UserLevelForm;
 import kr.wisestone.owl.web.view.ExcelView;
 import org.apache.commons.validator.routines.EmailValidator;
 import org.slf4j.Logger;
@@ -34,7 +33,6 @@
 import org.springframework.security.core.session.SessionRegistry;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.Model;
@@ -42,7 +40,6 @@
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.ModelAndView;
 
-import javax.rmi.CORBA.Util;
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.net.HttpURLConnection;
@@ -62,7 +59,7 @@
     private UserLevelService userLevelService;
 
     @Autowired
-    private DepartmentManagementService departmentManagementService;
+    private DepartmentManageService departmentManageService;
 
     @Autowired
     private SystemRoleService systemRoleService;
@@ -244,13 +241,13 @@
 
             this.userLevelService.addNormalUserLevel();
 
-            // DepartmentManagement�뿉 �엫�떆濡� Name, Description 媛� 異붽�
-            DepartmentManagementForm departmentManagementForm = new DepartmentManagementForm();
+            // DepartmentManage�뿉 �엫�떆濡� Name, Description 媛� 異붽�
+            DepartmentManageForm departmentManageForm = new DepartmentManageForm();
 
-            departmentManagementForm.setDepartmentName("媛쒕컻��");
-            departmentManagementForm.setDepartmentDescription("�쎒�궗�씠�듃 諛� �빋 �꽌鍮꾩뒪 媛쒕컻");
-            DepartmentManagement departmentManagement = this.departmentManagementService.addDepartment(departmentManagementForm);
-            user.setDepartmentId(departmentManagement);
+            departmentManageForm.setDepartmentName("媛쒕컻��");
+            departmentManageForm.setDepartmentDescription("�쎒�궗�씠�듃 諛� �빋 �꽌鍮꾩뒪 媛쒕컻");
+            DepartmentManage departmentManage = this.departmentManageService.addDepartmentManage(departmentManageForm);
+            user.setDepartmentManage(departmentManage);
 
             if(primaryWorkspace == null || primaryWorkspace.getName() != userForm.getWorkspaceName()) {
                 //  �뾽臾� 怨듦컙瑜� �깮�꽦�븳�떎. 媛��엯�븳 �궗�슜�옄�뒗 �뾽臾� 怨듦컙�쓽 二쇱씤�씠�떎.
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
index 6271319..a5d6f06 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
@@ -2,17 +2,11 @@
 
 import kr.wisestone.owl.constant.Constants;
 import kr.wisestone.owl.constant.MsgConstants;
-import kr.wisestone.owl.domain.User;
-import kr.wisestone.owl.domain.UserLevel;
-import kr.wisestone.owl.domain.UserWorkspace;
-import kr.wisestone.owl.domain.Workspace;
+import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.UserWorkspaceMapper;
 import kr.wisestone.owl.repository.UserWorkspaceRepository;
-import kr.wisestone.owl.service.UserLevelService;
-import kr.wisestone.owl.service.UserService;
-import kr.wisestone.owl.service.UserWorkspaceService;
-import kr.wisestone.owl.service.WorkspaceService;
+import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.util.CommonUtil;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.vo.ResPage;
@@ -44,6 +38,9 @@
 
     @Autowired
     private UserLevelService userLevelService;
+
+    @Autowired
+    private DepartmentManageService departmentManageService;
 
     @Autowired
     private UserWorkspaceMapper userWorkspaceMapper;
@@ -119,6 +116,14 @@
         }
 
         //todo 遺��꽌 蹂�寃쎌떆
+        DepartmentManage currentDepartment = userWorkspace.getUser().getDepartmentManage();
+        if (currentDepartment.getId() != userWorkspaceForm.getDepartmentId()) {
+            // 遺��꽌紐� 蹂�寃쎌떆
+            User user = userWorkspace.getUser();
+            DepartmentManage departmentManage = this.departmentManageService.getDepartment(userWorkspaceForm.getLevelId());
+            user.setDepartmentManage(departmentManage);
+            userWorkspace.setUser(user);
+        }
 
         //  李몄뿬濡� �긽�깭瑜� 蹂�寃쏀븯�젮怨� �븷�븣
         if (userWorkspace.getUseYn() != userWorkspaceForm.getUseYn()) {
diff --git a/src/main/java/kr/wisestone/owl/vo/DepartmentManagementVo.java b/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java
similarity index 81%
rename from src/main/java/kr/wisestone/owl/vo/DepartmentManagementVo.java
rename to src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java
index 3099ac0..bdc4ed4 100644
--- a/src/main/java/kr/wisestone/owl/vo/DepartmentManagementVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java
@@ -3,16 +3,16 @@
 /**
  * Created by jeong on 2017-08-02.
  */
-public class DepartmentManagementVo extends BaseVo{
+public class DepartmentManageVo extends BaseVo{
 
     private Long id;
     private String departmentName;
     private String departmentDescription;
 
-    public DepartmentManagementVo() {
+    public DepartmentManageVo() {
     }
 
-    public DepartmentManagementVo(Long id, String departmentName, String departmentDescription) {
+    public DepartmentManageVo(Long id, String departmentName, String departmentDescription) {
         this.id = id;
         this.departmentName = departmentName;
         this.departmentDescription = departmentDescription;
diff --git a/src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java b/src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java
new file mode 100644
index 0000000..3bdb9e8
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java
@@ -0,0 +1,61 @@
+package kr.wisestone.owl.web.condition;
+
+import kr.wisestone.owl.util.ConvertUtil;
+
+import java.util.Map;
+
+/**
+ * Created by jeong on 2018-01-01.
+ */
+public class DepartmentManageCondition {
+    private Long id;
+    private String departmentName;
+    private String departmentDescription;
+
+    private Integer Page;
+    private Integer PageSize;
+
+    public static DepartmentManageCondition make(Map<String, Object> departmentManageConditions) {
+        return ConvertUtil.convertMapToClass(departmentManageConditions, DepartmentManageCondition.class);
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getDepartmentName() {
+        return departmentName;
+    }
+
+    public void setDepartmentName(String departmentName) {
+        this.departmentName = departmentName;
+    }
+
+    public String getDepartmentDescription() {
+        return departmentDescription;
+    }
+
+    public void setDepartmentDescription(String departmentDescription) {
+        this.departmentDescription = departmentDescription;
+    }
+
+    public Integer getPage() {
+        return Page;
+    }
+
+    public void setPage(Integer page) {
+        Page = page;
+    }
+
+    public Integer getPageSize() {
+        return PageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        PageSize = pageSize;
+    }
+}
diff --git a/src/main/java/kr/wisestone/owl/web/condition/DepartmentManagementCondition.java b/src/main/java/kr/wisestone/owl/web/condition/DepartmentManagementCondition.java
deleted file mode 100644
index 17e3da5..0000000
--- a/src/main/java/kr/wisestone/owl/web/condition/DepartmentManagementCondition.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package kr.wisestone.owl.web.condition;
-
-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;
-
-/**
- * Created by jeong on 2018-01-01.
- */
-public class DepartmentManagementCondition {
-    private Long id;
-    private String departmentName;
-    private String  departmentDescription;
-    private List<String> statuses = Lists.newArrayList();
-    private List<Long> excludeIds = Lists.newArrayList();
-
-    public static DepartmentManagementCondition make(Map<String, Object> departmentManagemantconditions) {
-        DepartmentManagementCondition departmentManagementCondition = ConvertUtil.convertMapToClass(departmentManagemantconditions, DepartmentManagementCondition.class);
-        departmentManagementCondition.setStatuses(MapUtil.getStrings(departmentManagemantconditions, "statuses"));
-        departmentManagementCondition.setExcludeIds(MapUtil.getLongs(departmentManagemantconditions, "excludeIds"));
-
-        return departmentManagementCondition;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getDepartmentName() {
-        return departmentName;
-    }
-
-    public void setDepartmentName(String departmentName) {
-        this.departmentName = departmentName;
-    }
-
-    public String getDepartmentDescription() {
-        return departmentDescription;
-    }
-
-    public void setDepartmentDescription(String departmentDescription) {
-        this.departmentDescription = departmentDescription;
-    }
-
-    public List<String> getStatuses() {
-        return statuses;
-    }
-
-    public void setStatuses(List<String> statuses) {
-        this.statuses = statuses;
-    }
-
-    public List<Long> getExcludeIds() {
-        return excludeIds;
-    }
-
-    public void setExcludeIds(List<Long> excludeIds) {
-        this.excludeIds = excludeIds;
-    }
-}
diff --git a/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java b/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java
new file mode 100644
index 0000000..374f569
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java
@@ -0,0 +1,100 @@
+package kr.wisestone.owl.web.controller;
+
+import kr.wisestone.owl.constant.Constants;
+import kr.wisestone.owl.service.DepartmentManageService;
+import kr.wisestone.owl.web.condition.DepartmentManageCondition;
+import kr.wisestone.owl.web.form.DepartmentManageForm;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Pageable;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by jeong on 2017-08-02.
+ */
+@Controller
+public class DepartmentManageController extends BaseController {
+
+    @Autowired
+    private DepartmentManageService departmentManageService;
+
+    //  遺��꽌 �깮�꽦
+    @RequestMapping(value = "/departmentManage/add", method = RequestMethod.POST)
+    public
+    @ResponseBody
+    Map<String, Object> addDepartmentManage(@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.addDepartmentManage(DepartmentManageForm.make(content));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    //  �궗�슜�옄�벑湲� 議고쉶
+    @RequestMapping(value = "/departmentManage/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+        Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params));
+
+        this.departmentManageService.findDepartment(resJsonData, DepartmentManageCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable);
+
+        return this.setSuccessMessage(resJsonData);
+    }
+//
+//    //  �궗�슜�옄�벑湲� �긽�꽭 議고쉶
+//    @RequestMapping(value = "/userLevel/detail", produces = MediaType.APPLICATION_JSON_VALUE)
+//    public
+//    @ResponseBody
+//    Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) {
+//        Map<String, Object> resJsonData = new HashMap<>();
+//        this.userLevelService.detailUserLevel(resJsonData, UserLevelCondition.make(params.get(Constants.REQ_KEY_CONTENT)));
+//
+//        return this.setSuccessMessage(resJsonData);
+//    }
+//
+//    //  �궗�슜�옄�벑湲� �닔�젙
+//    @RequestMapping(value = "/userLevel/modify", produces = MediaType.APPLICATION_JSON_VALUE)
+//    public
+//    @ResponseBody
+//    Map<String, Object> modify(@RequestBody Map<String, Map<String, Object>> params) {
+//        Map<String, Object> resJsonData = new HashMap<>();
+//
+//        this.userLevelService.modifyLevelPermission(UserLevelForm.make(params.get(Constants.REQ_KEY_CONTENT)));
+//
+//        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);
+}
+
+
+
+
+
+
diff --git a/src/main/java/kr/wisestone/owl/web/form/DepartmentManagementForm.java b/src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java
similarity index 82%
rename from src/main/java/kr/wisestone/owl/web/form/DepartmentManagementForm.java
rename to src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java
index 6f9a6f4..e75a8ff 100644
--- a/src/main/java/kr/wisestone/owl/web/form/DepartmentManagementForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java
@@ -7,16 +7,16 @@
 /**
  * Created by jeong on 2017-12-30.
  */
-public class DepartmentManagementForm {
+public class DepartmentManageForm {
     private Long id;
     private String departmentName;
     private String departmentDescription;
 
-    public DepartmentManagementForm() {
+    public DepartmentManageForm() {
     }
 
-    public static DepartmentManagementForm make(Map<String, Object> params) {
-        return ConvertUtil.convertMapToClass(params, DepartmentManagementForm.class);
+    public static DepartmentManageForm make(Map<String, Object> params) {
+        return ConvertUtil.convertMapToClass(params, DepartmentManageForm.class);
     }
 
     public Long getId() {
diff --git a/src/main/resources/migration/V1_10__Alter_Table.sql b/src/main/resources/migration/V1_10__Alter_Table.sql
index 146e53a..734f6c7 100644
--- a/src/main/resources/migration/V1_10__Alter_Table.sql
+++ b/src/main/resources/migration/V1_10__Alter_Table.sql
@@ -2,7 +2,7 @@
 ALTER TABLE `user` ADD COLUMN  `level_id` BIGINT(11) NULL;
 ALTER TABLE `user` ADD COLUMN  `department_id` BIGINT(11) NULL;
 
-CREATE TABLE `department_management`(
+CREATE TABLE `department_manage`(
     `id` BIGINT(11) AUTO_INCREMENT,
     `department_name` VARCHAR(50) NOT NULL,
     `department_description` VARCHAR(255) NOT NULL,
diff --git a/src/main/resources/mybatis/query-template/departmentManage-template.xml b/src/main/resources/mybatis/query-template/departmentManage-template.xml
new file mode 100644
index 0000000..9f2981a
--- /dev/null
+++ b/src/main/resources/mybatis/query-template/departmentManage-template.xml
@@ -0,0 +1,35 @@
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="kr.wisestone.owl.mapper.DepartmentManageMapper">
+
+    <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.DepartmentManageCondition">
+        SELECT
+        dm.id as id,
+        dm.department_name as departmentName,
+        dm.department_description as departmentDescription
+        FROM
+        department_manage dm
+        WHERE id != 1 AND 1=1
+        <if test="departmentName != '' and departmentName != null">
+            AND ul.department_name like CONCAT('%',#{departmentName},'%')
+        </if>
+        <if test="id != '' and id != null">
+            AND ul.id like CONCAT('%',#{id},'%')
+        </if>
+        <if test="pageSize != '' and pageSize != null">
+            limit #{pageSize} offset #{page};
+        </if>
+    </select>
+
+    <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.DepartmentManageCondition">
+        SELECT
+        count(dm.id)
+        FROM
+        department_manage dm
+        WHERE 1=1
+        <if test="departmentName != '' and departmentName != null">
+            AND ul.department_name like CONCAT('%',#{departmentName},'%')
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
index 51e1c4c..4217bfb 100644
--- a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties
@@ -108,4 +108,6 @@
 manageUser.manageNoticePerm=\uACF5\uC9C0\uC0AC\uD56D \uAD00\uB9AC
 manageUser.manageFAQPerm=FAQ \uAD00\uB9AC
 manageUser.manageQnAPerm=QnA \uAD00\uB9AC
-manageUser.manageGuidePerm=\uAC00\uC774\uB4DC \uAD00\uB9AC
\ No newline at end of file
+manageUser.manageGuidePerm=\uAC00\uC774\uB4DC \uAD00\uB9AC
+departmentManage.departmentName=\uBD80\uC11C\uBA85
+departmentManage.departmentDescription=\uBD80\uC11C\uC124\uBA85

--
Gitblit v1.8.0