= 부서관리(Knox)

NOTE: 해당 기능 사용 필요시 Knox API를 통해 연계 해야 한다.

== Table
* 부서(Knox) : TN_CF_DEPT_LDAP

== API
.KnoxDepartmentController.java

* 부서의 데이터가 많으므로 목록에 1레벨만 불러오고 1레벨의 부서를 클릭시 "부서 관리(Knox)(하위 레벨 부서)" API를 실행하여 하위 부서를 조회한다. +
부서 관리(사용자정의) 화면에서 부서매핑을 추가할 때도 사용한다.

. 부서 관리(Knox)(1레벨 부서) +
GET /admin/knox-department +
Query ID : selectKnoxDepartmentList

. 부서 관리(Knox)(하위 레벨 부서) +
GET /admin/knox-department/{upperDeptCode}
Query ID : selectKnoxDepartmentListByUpperCode

== 부서 Tree 구조

부서관리를 tree 구조로 보여지게 하기 위해, DB의 데이터가 parent 관계를 구성해야 한다.
LDAP 부서관리는 TN_CF_DEPT_LDAP 테이블의 dept_code(Child) 와 upper_dept_code(Parent) 관계로 tree 구조를 만들게 되는데 시스템의 최상위 dept code에는 ROOT를 입력해야 한다.
내부적으로 LDAP 부서 코드의 Root 밑의 1 level을 찾는 query가 *ROOT* 라는 코드를 찾도록 되어 있다.

|===
|DEPT_CODE |DEPT_NAME |DEPT_LEVEL |UPPER_DEPT_CODE

|C00001
|정보전략
|1
|ROOT

|C000011
|정보전략 부서1
|2
|C00001

|C00002
|마케팅
|1
|ROOT

|C000021
|마케팅 부서1
|2
|C00002
|===

사용자정의 부서관리는 TN_CF_DEPT_SELF 테이블의 SELF_DEPT_CODE(Child) 와 UPPER_SELF_DEPT_CODE(Parent)
관계로 tree 구조를 이루며, 시스템의 최상위 SELF_DEPT_CODE는 DEPT를 입력해야 한다.

|===
|DEPT_CODE |DEPT_NAME |DEPT_LEVEL |UPPER_DEPT_CODE

|C00001
|정보전략
|1
|DEPT

|C000011
|정보전략 부서1
|2
|C00001

|C00002
|마케팅
|1
|DEPT

|C000021
|마케팅 부서1
|2
|C00002
|===

== 부서 목록

TN_CF_DEPT_LDAP 테이블에 저장되어 있는 부서정보를 트리형태로 보여준다.

image::deptMgmt(Knox).png[deptMgmt(Knox),300,400]