From 4fd246e32166938d7f86c7ab236ed554a2bc9fef Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 월, 08 11월 2021 16:14:03 +0900
Subject: [PATCH] 업체 관리 백엔드 추가

---
 src/main/java/kr/wisestone/owl/mapper/CompanyFieldMapper.java                 |   22 +
 src/main/java/kr/wisestone/owl/domain/CompanyField.java                       |   98 +++++
 src/main/resources/mybatis/query-template/companyField-template.xml           |   40 ++
 src/main/java/kr/wisestone/owl/web/controller/CompanyFieldController.java     |   97 +++++
 src/main/java/kr/wisestone/owl/service/CompanyFieldService.java               |   31 +
 src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java         |    2 
 src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java                         |  101 +++++
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                     |   13 
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                        |   13 
 src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java         |    8 
 src/main/java/kr/wisestone/owl/service/DepartmentManageService.java           |    2 
 src/main/resources/migration/V1_11__Alter_Table.sql                           |   16 
 src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java       |  112 ++++++
 src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java  |  113 +++--
 src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java      |  185 ++++++++++
 src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java                 |  112 ++++++
 src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java |   15 
 src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java             |    2 
 18 files changed, 920 insertions(+), 62 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index 3660334..9a75dee 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -205,11 +205,20 @@
     public static final String PAGE_SIZE_NEGATIVE_OR_NULL = "PAGE_SIZE_NEGATIVE_OR_NULL";   //  �슂泥��븳 �럹�씠吏� �겕湲곌� �옒紐삳릺�뿀�뒿�땲�떎.
 
     public static final String USER_LEVEL_ALREADY_IN_USE = "USER_LEVEL_ALREADY_IN_USE"; // �궗�슜�옄 �벑湲됱쓣 �궗�슜�븯怨� �엳�뒗 �궗�슜�옄媛� �엳�뒿�땲�떎.
-    public static final String USER_LEVEL_ALREADY = "USER_LEVEL_ALREADY"; // �궗�슜�옄 �벑湲됱쓣 �궗�슜�븯怨� �엳�뒗 �궗�슜�옄媛� �엳�뒿�땲�떎.
     public static final String USER_LEVEL_PERMISSION_DENIED = "USER_LEVEL_PERMISSION_DENIED"; // �궗�슜�옄 �벑湲� �젙蹂대�� �닔�젙�븷�닔 �뾾�뒿�땲�떎.
     public static final String USER_LEVEL_NOT_EXIST = "USER_LEVEL_NOT_EXIST";   //  �궗�슜�옄 �벑湲됱씠 議댁옱�븯吏� �븡�뒿�땲�떎.
-
     public static final String USER_LEVEL_NOT_DELETE = "USER_LEVEL_NOT_DELETE";   // 湲곕낯 �궗�슜�옄 �벑湲됱� �궘�젣�븷�닔 �뾾�뒿�땲�떎.
+    public static final String USER_LEVEL_REMOVE_NOT_SELECT = "USER_LEVEL_REMOVE_NOT_SELECT";   // �궘�젣�븷 �궗�슜�옄 �벑湲됱씠 �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
+
+
+    public static final String DEPARTMENT_NOT_EXIST = "DEPARTMENT_NOT_EXIST";   // 遺��꽌媛� 議댁옱�븯吏� �븡�뒿�땲�떎.
+    public static final String DEPARTMENT_ALREADY_IN_USE = "DEPARTMENT_ALREADY_IN_USE";   // �꽑�깮�븳 遺��꽌�뒗 �씠誘� �궗�슜�븯怨� �엳�뒿�땲�떎.
+    public static final String DEPARTMENT_REMOVE_NOT_SELECT = "DEPARTMENT_REMOVE_NOT_SELECT";   // �궘�젣�븷 遺��꽌媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
+
+
+
+    public static final String COMPANY_REMOVE_NOT_SELECT = "COMPANY_REMOVE_NOT_SELECT";   // �궘�젣�븷 �뾽泥닿� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
+    public static final String COMPANYFIELD_NOT_EXIST = "COMPANYFIELD_NOT_EXIST";   // �뾽泥닿� 議댁옱�븯吏� �븡�뒿�땲�떎.
 
 
 }
diff --git a/src/main/java/kr/wisestone/owl/domain/CompanyField.java b/src/main/java/kr/wisestone/owl/domain/CompanyField.java
new file mode 100644
index 0000000..df714bc
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/domain/CompanyField.java
@@ -0,0 +1,98 @@
+package kr.wisestone.owl.domain;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+@Entity
+public class CompanyField extends BaseEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+    private String name;
+    private String companyType;
+    private String profitYN;
+    private String industy;
+    private String domain;
+    private String email;
+    private String tel;
+    private String desc;
+
+    public CompanyField() {}
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCompanyType() {
+        return companyType;
+    }
+
+    public void setCompanyType(String companyType) {
+        this.companyType = companyType;
+    }
+
+    public String getProfitYN() {
+        return profitYN;
+    }
+
+    public void setProfitYN(String profitYN) {
+        this.profitYN = profitYN;
+    }
+
+    public String getIndusty() {
+        return industy;
+    }
+
+    public void setIndusty(String industy) {
+        this.industy = industy;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+}
diff --git a/src/main/java/kr/wisestone/owl/mapper/CompanyFieldMapper.java b/src/main/java/kr/wisestone/owl/mapper/CompanyFieldMapper.java
new file mode 100644
index 0000000..34447cb
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/mapper/CompanyFieldMapper.java
@@ -0,0 +1,22 @@
+package kr.wisestone.owl.mapper;
+
+import kr.wisestone.owl.web.condition.CompanyFieldCondition;
+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 CompanyFieldMapper {
+    List<Map<String, Object>> find(CompanyFieldCondition companyFieldCondition);
+
+    Long count(CompanyFieldCondition companyFieldCondition);
+
+    List<Map<String, Object>> findEvent();
+
+    Long findByCompany(Long id);
+}
diff --git a/src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java b/src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java
index 987f487..f191761 100644
--- a/src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java
+++ b/src/main/java/kr/wisestone/owl/mapper/DepartmentManageMapper.java
@@ -16,4 +16,6 @@
     Long count(DepartmentManageCondition departmentManageCondition);
 
     List<Map<String, Object>> findEvent();
+
+    Long findBydepartmentId(Long Id);
 }
diff --git a/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java b/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java
new file mode 100644
index 0000000..afc7954
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java
@@ -0,0 +1,8 @@
+package kr.wisestone.owl.repository;
+
+import kr.wisestone.owl.domain.CompanyField;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface CompanyFieldRepository extends JpaRepository<CompanyField, Long> {
+
+}
diff --git a/src/main/java/kr/wisestone/owl/service/CompanyFieldService.java b/src/main/java/kr/wisestone/owl/service/CompanyFieldService.java
new file mode 100644
index 0000000..c9e836b
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/service/CompanyFieldService.java
@@ -0,0 +1,31 @@
+package kr.wisestone.owl.service;
+
+import kr.wisestone.owl.domain.CompanyField;
+import kr.wisestone.owl.vo.CompanyFieldVo;
+import kr.wisestone.owl.web.condition.CompanyFieldCondition;
+import kr.wisestone.owl.web.form.CompanyFieldForm;
+import org.springframework.data.domain.Pageable;
+import org.springframework.ui.Model;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+public interface CompanyFieldService {
+    CompanyField addCompany(CompanyFieldForm companyFieldForm);
+
+    List<CompanyFieldVo> findCompany(Map<String, Object> resJsonData, CompanyFieldCondition make, Pageable pageable);
+
+    CompanyField getCompany(Long id);
+
+    void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition make);
+
+    void modifyCompany(CompanyFieldForm make);
+
+    void removeCompany(CompanyFieldForm make);
+
+    ModelAndView downloadExcel(HttpServletRequest request, Model model);
+
+    boolean company(Long id);
+}
diff --git a/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java b/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
index b37ad88..d3ca526 100644
--- a/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
+++ b/src/main/java/kr/wisestone/owl/service/DepartmentManageService.java
@@ -27,4 +27,6 @@
     void detailDepartment(Map<String, Object> resJsonData, DepartmentManageCondition make);
 
     ModelAndView downloadExcel(HttpServletRequest request, Model model);
+
+    boolean department(Long id);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
new file mode 100644
index 0000000..ed110b9
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -0,0 +1,185 @@
+package kr.wisestone.owl.service.impl;
+
+import kr.wisestone.owl.domain.CompanyField;
+import kr.wisestone.owl.service.UserService;
+import kr.wisestone.owl.web.condition.CompanyFieldCondition;
+import kr.wisestone.owl.web.form.CompanyFieldForm;
+import org.springframework.ui.Model;
+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.exception.OwlRuntimeException;
+import kr.wisestone.owl.mapper.CompanyFieldMapper;
+import kr.wisestone.owl.repository.CompanyFieldRepository;
+import kr.wisestone.owl.service.CompanyFieldService;
+import kr.wisestone.owl.service.WorkspaceService;
+import kr.wisestone.owl.util.ConvertUtil;
+import kr.wisestone.owl.vo.*;
+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.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class CompanyFieldServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService {
+
+    @Autowired
+    private CompanyFieldRepository companyFieldRepository;
+
+    @Autowired
+    private CompanyFieldMapper companyFieldMapper;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private WorkspaceService workspaceService;
+
+    @Autowired
+    private ExcelView excelView;
+
+    @Autowired
+    private ExcelConditionCheck excelConditionCheck;
+
+    @Override
+    protected JpaRepository<CompanyField, Long> getRepository() {
+        return this.companyFieldRepository;
+    }
+
+    // �뾽泥� 異붽�
+    @Override
+    public CompanyField addCompany(CompanyFieldForm companyFieldForm) {
+        CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
+        companyFieldRepository.saveAndFlush(companyField);
+        return companyField;
+    }
+
+    // �뾽泥� 紐⑸줉�쓣 媛��졇�삩�떎.
+    @Override
+    public List<CompanyFieldVo> findCompany(Map<String, Object> resJsonData,
+                                            CompanyFieldCondition condition, Pageable pageable) {
+        condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
+        condition.setPageSize(pageable.getPageSize());
+
+        List<Map<String, Object>> results = this.companyFieldMapper.find(condition);
+        Long totalCompanyCount = this.companyFieldMapper.count(condition);
+
+        return this.convertCompanyVoToMap(results, totalCompanyCount, pageable, resJsonData);
+    }
+
+
+    // �뾽泥� �긽�꽭 議고쉶�븳�떎.
+    @Override
+    public void detailCompany(Map<String, Object> resJsonData, CompanyFieldCondition companyFieldCondition) {
+        CompanyFieldVo companyFieldVo = new CompanyFieldVo();
+
+        Long companyId = companyFieldCondition.getId();
+        if (companyId != null) {
+            CompanyField companyField = this.getCompany(companyId);
+            companyFieldVo = ConvertUtil.copyProperties(companyField, CompanyFieldVo.class);
+        }
+        resJsonData.put(Constants.REQ_KEY_CONTENT, companyFieldVo);
+    }
+
+    // �뾽泥� �젙濡쒕�� �닔�젙�븳�떎.
+    @Override
+    public void modifyCompany(CompanyFieldForm companyFieldForm) {
+        CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
+        companyFieldRepository.saveAndFlush(companyField);
+    }
+
+
+    // �뾽泥대�� �궘�젣�븳�떎.
+    @Override
+    public void removeCompany(CompanyFieldForm companyFieldForm) {
+        if (companyFieldForm.getRemoveIds().size() < 1) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANY_REMOVE_NOT_SELECT));
+        }
+        this.companyFieldRepository.flush();
+    }
+
+    // �뾽泥� 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
+    @Override
+    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;
+        }
+
+        CompanyFieldCondition companyFieldCondition = CompanyFieldCondition.make(conditions);
+
+
+        List<Map<String, Object>> results = this.companyFieldMapper.find(companyFieldCondition);
+        List<CompanyFieldVo> companyFieldVos = ConvertUtil.convertListToListClass(results, CompanyFieldVo.class);
+        // code_ko_KR �뿉 code紐� �꽕�젙
+        ExportExcelVo excelInfo = new ExportExcelVo();
+        excelInfo.setFileName(this.messageAccessor.message("�뾽泥� 紐⑸줉"));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyName", this.messageAccessor.message("departmentManage.departmentName"), 6, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("", this.messageAccessor.message("departmentManage.departmentDescription"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyPhone", this.messageAccessor.message("departmentManage.departmentCount"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyEmail", this.messageAccessor.message("departmentManage.departmentCount"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("companyDesc", this.messageAccessor.message("departmentManage.departmentCount"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+
+        excelInfo.setDatas(companyFieldVos);
+
+        model.addAttribute(Constants.EXCEL, excelInfo);
+        return new ModelAndView(this.excelView);
+    }
+
+    // �궘�젣 �븷 �뾽泥닿� �엳�뒗吏� �솗�씤
+    @Override
+    public boolean company(Long Id) {
+        return this.companyFieldMapper.findByCompany(Id) > 0;
+    }
+
+    //  寃��깋 寃곌낵瑜� CompanyFieldVo 濡� 蹂��솚�븳�떎.
+    private List<CompanyFieldVo> convertCompanyVoToMap(List<Map<String, Object>> results, Long totalCompanyCount, Pageable pageable, Map<String, Object> resJsonData) {
+        List<CompanyFieldVo> companyFieldVos = Lists.newArrayList();
+
+        for (Map<String, Object> result : results) {
+            CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(result, CompanyFieldVo.class);
+            companyFieldVos.add(companyFieldVo);
+        }
+
+        int totalPage = (int) Math.ceil((totalCompanyCount - 1) / pageable.getPageSize()) + 1;
+
+        resJsonData.put(Constants.RES_KEY_CONTENTS, companyFieldVos);
+        resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
+                totalPage, totalCompanyCount));
+
+        return companyFieldVos;
+    }
+
+    // �뾽泥� ID 濡� 議고쉶�븳�떎
+    @Override
+    public CompanyField getCompany(Long id) {
+        if (id == null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST));
+        }
+
+        CompanyField companyField = this.findOne(id);
+
+        if (companyField == null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_EXIST));
+        }
+        return companyField;
+    }
+}
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 c1459c4..ae93ef1 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/DepartmentManageServiceImpl.java
@@ -1,7 +1,6 @@
 package kr.wisestone.owl.service.impl;
 
-import kr.wisestone.owl.domain.UserLevel;
-import kr.wisestone.owl.web.form.UserLevelForm;
+import kr.wisestone.owl.service.UserService;
 import org.springframework.ui.Model;
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
@@ -39,6 +38,9 @@
     private DepartmentManageMapper departmentManageMapper;
 
     @Autowired
+    private UserService userService;
+
+    @Autowired
     private WorkspaceService workspaceService;
 
     @Autowired
@@ -73,39 +75,6 @@
         return this.convertDepartmentManageVoToMap(results, totalDepartmentCount, pageable, resJsonData);
     }
 
-    // �궗�슜�옄 遺��꽌 ID濡� 議고쉶�븳�떎.
-    @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 void removeDepartment(DepartmentManageForm departmentManageForm) {
-        if (departmentManageForm.getRemoveIds().size() < 1) {
-            throw new OwlRuntimeException(
-                    this.messageAccessor.getMessage(MsgConstants.PROJECT_REMOVE_NOT_SELECT));
-        }
-
-        for (Long departmentId : departmentManageForm.getRemoveIds()) {
-            this.departmentManageRepository.deleteById(departmentId);
-        }
-
-        this.departmentManageRepository.flush();
-    }
-
     // 遺��꽌 �긽�꽭 議고쉶�븳�떎.
     @Override
     public void detailDepartment(Map<String, Object> resJsonData, DepartmentManageCondition departmentManageCondition) {
@@ -126,23 +95,24 @@
         departmentManageRepository.saveAndFlush(departmentManage);
     }
 
-
-    //  寃��깋 寃곌낵瑜� DepartmentManageVo 濡� 蹂��솚�븳�떎.
-    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);
+    // 遺��꽌瑜� �궘�젣�븳�떎.
+    @Override
+    public void removeDepartment(DepartmentManageForm departmentManageForm) {
+        if (departmentManageForm.getRemoveIds().size() < 1) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_REMOVE_NOT_SELECT));
         }
 
-        int totalPage = (int) Math.ceil((totalDepartmentsCount - 1) / pageable.getPageSize()) + 1;
+        for (Long id : departmentManageForm.getRemoveIds()) {
+            if (!this.userService.useUserLevel(id)) {
+                this.departmentManageRepository.deleteById(id);
+            } else {
+                throw new OwlRuntimeException(
+                        this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE));
+            }
 
-        resJsonData.put(Constants.RES_KEY_CONTENTS, departmentManageVos);
-        resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
-                totalPage, totalDepartmentsCount));
-
-        return departmentManageVos;
+        }
+        this.departmentManageRepository.flush();
     }
 
     // 遺��꽌 紐⑸줉�쓣 �뿊��濡� �떎�슫濡쒕뱶 �븳�떎.
@@ -166,7 +136,6 @@
 
         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("遺��꽌 紐⑸줉"));
@@ -178,6 +147,50 @@
 
         model.addAttribute(Constants.EXCEL, excelInfo);
         return new ModelAndView(this.excelView);
+
     }
 
+    // �궗�슜�옄 遺��꽌 ID濡� 議고쉶�븳�떎.
+    @Override
+    public DepartmentManage getDepartment(Long id) {
+        if (id == null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_NOT_EXIST));
+        }
+
+        DepartmentManage departmentManage = this.findOne(id);
+
+        if (departmentManage == null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_NOT_EXIST));
+        }
+
+        return departmentManage;
+    }
+
+
+    //  �궘�젣 �븷 遺��꽌 �쑀��媛� �궗�슜�븯怨� �엳�뒗吏� �솗�씤
+    @Override
+    public boolean department(Long Id) {
+        return this.departmentManageMapper.findBydepartmentId(Id) > 0;
+    }
+
+
+    //  寃��깋 寃곌낵瑜� DepartmentManageVo 濡� 蹂��솚�븳�떎.
+    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((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, totalDepartmentsCount));
+
+        return departmentManageVos;
+    }
 }
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 17e03da..b3baa2c 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserLevelServiceImpl.java
@@ -173,7 +173,7 @@
     public void removeUserLevel(UserLevelForm userLevelForm) {
         if (userLevelForm.getRemoveIds().size() < 1) {
             throw new OwlRuntimeException(
-                    this.messageAccessor.getMessage(MsgConstants.PROJECT_REMOVE_NOT_SELECT));
+                    this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_REMOVE_NOT_SELECT));
         }
 
         // 湲곕낯 �궗�슜�옄 �벑湲� �궘�젣 泥댄겕
diff --git a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java
new file mode 100644
index 0000000..9fd52a1
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java
@@ -0,0 +1,101 @@
+package kr.wisestone.owl.vo;
+
+public class CompanyFieldVo extends BaseVo{
+
+    private Long id;
+    private String name;
+    private String companyType;
+    private String profitYN;
+    private String industy;
+    private String domain;
+    private String email;
+    private String tel;
+    private String desc;
+
+    public CompanyFieldVo() {}
+
+    public CompanyFieldVo(Long id, String name, String companyType, String profitYN, String industy, String domain, String email, String tel, String desc) {
+
+        this.id = id;
+        this.name = name;
+        this.companyType = companyType;
+        this.profitYN = profitYN;
+        this.industy = industy;
+        this.domain = domain;
+        this.email = email;
+        this.tel = tel;
+        this.desc = desc;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCompanyType() {
+        return companyType;
+    }
+
+    public void setCompanyType(String companyType) {
+        this.companyType = companyType;
+    }
+
+    public String getProfitYN() {
+        return profitYN;
+    }
+
+    public void setProfitYN(String profitYN) {
+        this.profitYN = profitYN;
+    }
+
+    public String getIndusty() {
+        return industy;
+    }
+
+    public void setIndusty(String industy) {
+        this.industy = industy;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+}
diff --git a/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java b/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
new file mode 100644
index 0000000..9385756
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCondition.java
@@ -0,0 +1,112 @@
+package kr.wisestone.owl.web.condition;
+
+import kr.wisestone.owl.util.ConvertUtil;
+
+import java.util.Map;
+
+public class CompanyFieldCondition {
+    private Long id;
+    private String name;
+    private String companyType;
+    private String profitYN;
+    private String industy;
+    private String domain;
+    private String email;
+    private String tel;
+    private String desc;
+
+    private Integer Page;
+    private Integer PageSize;
+
+    public static CompanyFieldCondition make(Map<String, Object> companyFieldCondition) {
+        return ConvertUtil.convertMapToClass(companyFieldCondition, CompanyFieldCondition.class);
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCompanyType() {
+        return companyType;
+    }
+
+    public void setCompanyType(String companyType) {
+        this.companyType = companyType;
+    }
+
+    public String getProfitYN() {
+        return profitYN;
+    }
+
+    public void setProfitYN(String profitYN) {
+        this.profitYN = profitYN;
+    }
+
+    public String getIndusty() {
+        return industy;
+    }
+
+    public void setIndusty(String industy) {
+        this.industy = industy;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    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/controller/CompanyFieldController.java b/src/main/java/kr/wisestone/owl/web/controller/CompanyFieldController.java
new file mode 100644
index 0000000..8b4f065
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/web/controller/CompanyFieldController.java
@@ -0,0 +1,97 @@
+package kr.wisestone.owl.web.controller;
+
+import kr.wisestone.owl.constant.Constants;
+
+import kr.wisestone.owl.service.CompanyFieldService;
+import kr.wisestone.owl.web.condition.CompanyFieldCondition;
+import kr.wisestone.owl.web.form.CompanyFieldForm;
+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.ui.Model;
+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 org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+
+@Controller
+public class CompanyFieldController extends BaseController{
+
+    @Autowired
+    private CompanyFieldService companyFieldService;
+
+    // �뾽泥� �깮�꽦
+    @RequestMapping(value = "/companyField/add", method = RequestMethod.POST)
+    public
+    @ResponseBody
+    Map<String, Object> add(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+        Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT);
+        this.companyFieldService.addCompany(CompanyFieldForm.make(content));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    // �뾽泥� 議고쉶
+    @RequestMapping(value = "/companyField/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.companyFieldService.findCompany(resJsonData, CompanyFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable);
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    // �뾽泥� �긽�꽭 議고쉶
+    @RequestMapping(value = "/companyField/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.companyFieldService.detailCompany(resJsonData, CompanyFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT)));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    // �뾽泥� �닔�젙
+    @RequestMapping(value = "/companyField/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.companyFieldService.modifyCompany(CompanyFieldForm.make(params.get(Constants.REQ_KEY_CONTENT)));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    // �뾽泥� �궘�젣
+    @RequestMapping(value = "/companyField/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.companyFieldService.removeCompany(CompanyFieldForm.make(content));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+
+    // �뾽泥� �뿊�� �떎�슫濡쒕뱶
+    @RequestMapping(value = "/companyField/downloadExcel", method = RequestMethod.POST)
+    public ModelAndView downloadExcel(HttpServletRequest request, Model model) {
+        return this.companyFieldService.downloadExcel(request, model);
+    }
+}
+
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 8218a27..289df46 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java
@@ -28,11 +28,11 @@
     @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> add(@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));
@@ -40,7 +40,7 @@
         return this.setSuccessMessage(resJsonData);
     }
 
-    //  遺��꽌 議고쉶
+    // 遺��꽌 議고쉶
     @RequestMapping(value = "/departmentManage/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
     public
     @ResponseBody
@@ -53,8 +53,7 @@
         return this.setSuccessMessage(resJsonData);
     }
 
-    //
-   //  遺��꽌 �긽�꽭 議고쉶
+   // 遺��꽌 �긽�꽭 議고쉶
    @RequestMapping(value = "/departmentManage/detail", produces = MediaType.APPLICATION_JSON_VALUE)
    public
    @ResponseBody
@@ -65,7 +64,7 @@
        return this.setSuccessMessage(resJsonData);
    }
 
-   //  遺��꽌 �닔�젙
+   // 遺��꽌 �닔�젙
    @RequestMapping(value = "/departmentManage/modify", produces = MediaType.APPLICATION_JSON_VALUE)
    public
    @ResponseBody
@@ -77,7 +76,7 @@
        return this.setSuccessMessage(resJsonData);
    }
 
-   //  遺��꽌 �궘�젣
+   // 遺��꽌 �궘�젣
     @RequestMapping(value = "/departmentManage/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
     public
     @ResponseBody
@@ -91,7 +90,7 @@
     }
 
 
-    //  遺��꽌 �뿊�� �떎�슫濡쒕뱶
+    // 遺��꽌 �뿊�� �떎�슫濡쒕뱶
     @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/form/CompanyFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
new file mode 100644
index 0000000..786003e
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
@@ -0,0 +1,112 @@
+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;
+
+public class CompanyFieldForm {
+    private Long id;
+    private String name;
+    private String companyType;
+    private String profitYN;
+    private String industy;
+    private String domain;
+    private String email;
+    private String tel;
+    private String desc;
+    private List<Long> removeIds = Lists.newArrayList();
+
+    public CompanyFieldForm() {
+    }
+    public static CompanyFieldForm make(Map<String, Object> params) {
+        CompanyFieldForm form = ConvertUtil.convertMapToClass(params, CompanyFieldForm.class);
+
+        if (MapUtil.getLongs(params,"removeIds") != null) {
+            form.setRemoveIds(MapUtil.getLongs(params, "removeIds"));
+        }
+        return form;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCompanyType() {
+        return companyType;
+    }
+
+    public void setCompanyType(String companyType) {
+        this.companyType = companyType;
+    }
+
+    public String getProfitYN() {
+        return profitYN;
+    }
+
+    public void setProfitYN(String profitYN) {
+        this.profitYN = profitYN;
+    }
+
+    public String getIndusty() {
+        return industy;
+    }
+
+    public void setIndusty(String industy) {
+        this.industy = industy;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public List<Long> getRemoveIds() {
+        return removeIds;
+    }
+
+    public void setRemoveIds(List<Long> removeIds) {
+        this.removeIds = removeIds;
+    }
+}
diff --git a/src/main/resources/migration/V1_11__Alter_Table.sql b/src/main/resources/migration/V1_11__Alter_Table.sql
new file mode 100644
index 0000000..024844b
--- /dev/null
+++ b/src/main/resources/migration/V1_11__Alter_Table.sql
@@ -0,0 +1,16 @@
+CREATE TABLE `company`(
+    `id` BIGINT(11) AUTO_INCREMENT,
+    `name` VARCHAR(50) NOT NULL,
+    `company_type` VARCHAR(50) NOT NULL,
+    `profit_yn` VARCHAR(50) NOT NULL,
+    `industry` VARCHAR(50) NOT NULL,
+    `domain` VARCHAR(255) NOT NULL,
+    `email` VARCHAR (255) NOT NULL,
+    `tel` VARCHAR (50) NOT NULL,
+    `desc` VARCHAR(255) NOT NULL,
+    `register_date` TIMESTAMP NULL,
+    `modify_id` BIGINT(20) NOT NULL,
+    `modify_date` TIMESTAMP NULL,
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/* �씠硫붿씪�� ID 媛믪쑝濡� 諛쏄퀬 �뿰�씫泥섎룄 user�뿉 phone�뿉�꽌 諛쏆쑝硫� �릺怨�*/
\ No newline at end of file
diff --git a/src/main/resources/mybatis/query-template/companyField-template.xml b/src/main/resources/mybatis/query-template/companyField-template.xml
new file mode 100644
index 0000000..0aac445
--- /dev/null
+++ b/src/main/resources/mybatis/query-template/companyField-template.xml
@@ -0,0 +1,40 @@
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="kr.wisestone.owl.mapper.CompanyFieldMapper">
+
+    <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition">
+        SELECT
+        c.id as id,
+        c.name as name,
+        c.email as email,
+        c.tel as tel,
+        c.desc as desc
+        FROM
+        company c
+        WHERE 1=1
+        <if test="name != '' and name != null">
+            AND c.name like CONCAT('%',#{name},'%')
+        </if>
+        <if test="id != '' and id != null">
+            AND c.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.CompanyFieldCondition">
+        SELECT
+        count(c.id)
+        FROM
+        company c
+        WHERE 1=1
+        <if test="name != '' and name != null">
+            AND c.name like CONCAT('%',#{name},'%')
+        </if>
+        <if test="id != '' and id != null">
+            AND c.id like CONCAT('%',#{id},'%')
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
index 3973425..abc0723 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -150,6 +150,10 @@
 USER_RETURN_PASSWORD_NOT_PROVIDER_SOCIAL_JOIN_USER = \uBE44\uBC00\uBC88\uD638 \uCC3E\uAE30 \uAE30\uB2A5\uC744 \uC18C\uC15C \uACC4\uC815 \uAC00\uC785 \uC0AC\uC6A9\uC790\uB294 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
 USER_NOT_USE_ACTIVE_STATUS = \uC0AC\uC6A9\uC790\uB294 \uD65C\uC131 \uC0C1\uD0DC\uAC00 \uC544\uB2C8\uBA74 \uB85C\uADF8\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
 USER_LEVEL_ALREADY_IN_USE = \uC120\uD0DD\uD55C \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC744 \uC774\uBBF8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uC0AC\uC6A9\uC790\uAC00 \uC788\uC2B5\uB2C8\uB2E4.
+USER_LEVEL_PERMISSION_DENIED = \uC0AC\uC6A9\uC790 \uB4F1\uAE09 \uC815\uBCF4\uB97C \uC218\uC815\uD560\uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+USER_LEVEL_NOT_EXIST = \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+USER_LEVEL_NOT_DELETE = \uAE30\uBCF8 \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC740 \uC0AD\uC81C\uD560\uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+USER_LEVEL_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC774 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 
 EXCEL_NOT_EXTENSION = \uC5D1\uC140 \uD30C\uC77C \uD655\uC7A5\uC790 (xlsx)\uB9CC \uC5C5\uB85C\uB4DC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
 EXCEL_DOWNLOAD_MAX_ROWS_OVER = \uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC\uB294 1.000 \uAC74 \uAE4C\uC9C0\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. \uAC80\uC0C9 \uC870\uAC74\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC870\uD68C\uB418\uB294 \uBAA9\uB85D\uC744 1,000 \uAC74 \uC774\uD558\uB85C \uBCC0\uACBD\uD558\uC5EC \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC9C4\uD589\uD574\uC8FC\uC138\uC694.
@@ -191,4 +195,11 @@
 EVENT_EMPTY_CONTENT=\uC774\uBCA4\uD2B8\uAC00 \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4.
 
 QNA_NOT_EXIST=QnA\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
-QNA_EMPTY_CONTENT=QnA\uAC00 \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4.
\ No newline at end of file
+QNA_EMPTY_CONTENT=QnA\uAC00 \uC81C\uBAA9 \uBC0F \uB0B4\uC6A9 \uC911 \uC785\uB825 \uAC12\uC774 \uC5C6\uB294 \uD544\uB4DC\uAC00 \uC788\uC2B5\uB2C8\uB2E4.
+
+DEPARTMENT_NOT_EXIST = \uBD80\uC11C\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+DEPARTMENT_ALREADY_IN_USE = \uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uBBF8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
+DEPARTMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uBD80\uC11C\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+
+COMPANY_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC5C5\uCCB4\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+COMPANYFIELD_NOT_EXIST = \uC5C5\uCCB4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
\ No newline at end of file

--
Gitblit v1.8.0