Initial commit
This commit is contained in:
@@ -0,0 +1,228 @@
|
||||
= 업무 그룹 관리
|
||||
|
||||
== 개요
|
||||
|
||||
메일 그룹 및 맵핑 정보 관리 기능 제공.
|
||||
|
||||
== UI Design & Function
|
||||
|
||||
=== 업무 그룹 목록(WorkgroupList.vue)
|
||||
|
||||
업무별로 업무그룹을 만들고 해당 업무그룹에서 사용가능한 메뉴를 선택, 해당 메뉴 사용 가능한 Role 또는 User를 추가한다.
|
||||
|
||||
image::workgroupList.png[업무 그룹 목록]
|
||||
|
||||
* 기능 설명
|
||||
. 업무그룹 목록 조회
|
||||
. 업무그룹 상세정보 조회
|
||||
. 업무그룹 등록 : 업무그룹 정보를 입력하는 Popup이 호출 되며, 정보 기입 후 저장 버튼을 클릭하여 등록한다.
|
||||
. 업무그룹 수정 : 선택된(checkbox : true) 업무그룹 정보를 수정하는 Popup이 호출 되며 역할 정보 기입 후 저장 버튼을 클릭하여 수정한다.
|
||||
. 업무그룹 삭제 : 선택된(checkbox : true) 역할 목록을 삭제한다.
|
||||
|
||||
=== 업무그룹-메뉴(WorkgroupMenuInfo.vue)
|
||||
|
||||
업무그룹에서 사용 가능한 메뉴를 관리 하는 화면. +
|
||||
메뉴 등록 및 삭제가 가능하며 메뉴별 권한 설정이 가능하다.
|
||||
|
||||
image::workgroupMenuInfo.png[업무그룹-메뉴]
|
||||
|
||||
* 기능 설명
|
||||
. 업무그룹-메뉴 목록 조회
|
||||
. 업무그룹-메뉴 등록 : 메뉴를 선택하는 Popup이 호출 되며 선택 후 저장 버튼을 클릭하여 등록한다.
|
||||
. 업무그룹-메뉴 수정 : 권한을 선택(checkbox : true)하여 해당 메뉴에 대한 권한을 수정한다.
|
||||
. 업무그룹-메뉴 삭제 : 선택된(checkbox : true) 메뉴 목록을 삭제한다.
|
||||
|
||||
=== 업무그룹-역할(WorkgroupMenuInfo.vue)
|
||||
|
||||
선택한 업무그룹에 역할 또는 사용자를 관리하는 화면. +
|
||||
역할과 사용자를 추가 또는 삭제할 수 있다.
|
||||
|
||||
image::workgroupRoleInfo.png[업무그룹-역할]
|
||||
|
||||
* 기능 설명
|
||||
. 업무그룹-역할 목록 조회
|
||||
. 업무그룹-역할 등록
|
||||
.. 사용자 등록 : 사용자 추가 버튼 클릭 시 사용자를 선택할 수 있는 Popup이 호출 되며 선택 후 저장 버튼을 클릭하여 등록 한다.
|
||||
.. 역할 등록 : 역할 추가 버튼 클릭 시 역할을 선택할 수 있는 Popup이 호출 되며 선택 후 저장 버튼을 클릭하여 등록 한다.
|
||||
. 업무그룹-역할 수정 : 등록된 사용자의 업무그룹 만료일을 수정 한다.
|
||||
. 업무그룹-역할 삭제 : 선택된(checkbox : true) 역할(사용자) 목록을 삭제한다.
|
||||
|
||||
== API & Service
|
||||
|
||||
=== API
|
||||
|
||||
* API : WorkgroupController.java
|
||||
|
||||
. 업무그룹 목록 조회 : GET /auth/workgroups-with-paging
|
||||
. 업무그룹 상세정보 조회 : GET /auth/workgroups/{workgroupId}
|
||||
. 업무그룹 등록 : POST /auth/workgroups
|
||||
. 업무그룹 수정 : PUT /auth/workgroups/{workgroupId}
|
||||
. 업무그룹 삭제 : DELETE /auth/workgroups
|
||||
. 업무그룹-메뉴 목록 조회 : GET /auth/workgroups/{workgroupId}/menus
|
||||
. 업무그룹-메뉴 등록 : POST /auth/workgroups/{workgroupId}/menus
|
||||
. 업무그룹-메뉴 수정 : PUT /auth/workgroups/{workgroupId}/menus
|
||||
. 업무그룹-메뉴 삭제 : DELETE /auth/workgroups/{workgroupId}/menus
|
||||
. 업무그룹-역할 목록 조회 : GET /auth/workgroups/{workgroupId}/roles
|
||||
. 업무그룹-역할 등록 : POST /auth/workgroups/{workgroupId}/roles
|
||||
. 업무그룹-역할 수정 : PUT /auth/workgroups/{workgroupId}/roles
|
||||
. 업무그룹-역할 삭제 : DELETE /auth/workgroups/{workgroupId}/roles
|
||||
|
||||
* Service : WorkgroupServiceImpl.java
|
||||
|
||||
. 업무그룹-메뉴 목록 조회. +
|
||||
메뉴의 전체 경로 셋팅 및 권한별 row 데이터를 메뉴 row 데이터로 가공한다.
|
||||
|
||||
[source,java]
|
||||
----
|
||||
@Override
|
||||
public List<WorkgroupMenuDto> getWorkgroupMenuList(String workgroupId) {
|
||||
|
||||
List<WorkgroupMenuDto> workgroupMenuDtoList = new ArrayList<>();
|
||||
List<String> authorizationIdList;
|
||||
String beforeMenuId = "";
|
||||
-- 생략 --
|
||||
----
|
||||
|
||||
== Entity Table & SQL
|
||||
|
||||
=== Entity Table
|
||||
|
||||
* TN_CF_WORKGROUP : 업무그룹
|
||||
* TN_CF_WORK_AUTHORIZATION : 업무그룹 메뉴 권한 맵핑
|
||||
* TN_CF_WORKGROUP_ROLE : 업무그룹 역할 맵핑
|
||||
|
||||
=== SQL
|
||||
|
||||
. 업무그룹 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectWorkgroupPagingList" parameterType="java.util.HashMap" resultMap="workgroupResult">
|
||||
SELECT *
|
||||
FROM (SELECT ROW_NUMBER() OVER ( <if test="@com.samsung.SdlComparator@isNotEmptyForDynamicSql(orderBy)">ORDER BY ${orderBy}</if> ) ROWNUM,
|
||||
<include refid="columnsWorkgroup" />
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=2]
|
||||
. 업무그룹 상세정보 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectWorkgroup" parameterType="java.util.HashMap" resultMap="workgroupResult">
|
||||
SELECT <include refid="columnsWorkgroup" />
|
||||
FROM <include refid="tableWorkgroup" />
|
||||
<include refid="conditionWorkgroup" />
|
||||
</select>
|
||||
----
|
||||
|
||||
[start=3]
|
||||
. 업무그룹 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertWorkgroup" parameterType="workgroup">
|
||||
INSERT INTO <include refid="tableWorkgroup" />
|
||||
(<include refid="columnsWorkgroup"/>)
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=4]
|
||||
. 업무그룹 수정
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateWorkgroup" parameterType="workGroup">
|
||||
UPDATE <include refid="tableWorkgroup" />
|
||||
SET WORKGROUP_NAME = #{workgroupName},
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=5]
|
||||
. 업무그룹 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<delete id="deleteWorkgroup" parameterType="java.util.HashMap">
|
||||
UPDATE <include refid="tableWorkgroup" />
|
||||
SET DELETE_YN = 1,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=6]
|
||||
. 업무그룹-메뉴 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectWorkgroupMenuList" parameterType="java.util.HashMap" resultMap="workgroupMenuResult">
|
||||
WITH TREE_TABLE AS (SELECT SR.UPPER_SYS_RESOURCE_ID, M.MENU_ID,
|
||||
CONVERT(NVARCHAR(100), M.LABEL) LABEL,
|
||||
CONVERT(NVARCHAR(100), M.LABEL_JSON) LABEL_JSON,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=7]
|
||||
. 업무그룹-메뉴 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertWorkgroupMenu" parameterType="workgroupMenu">
|
||||
INSERT INTO <include refid="tableWorkAuthorization" />
|
||||
(WORKGROUP_ID, SYS_RESOURCE_ID, AUTHORIZATION_ID,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=8]
|
||||
. 업무그룹-메뉴 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<delete id="deleteWorkgroupMenu" parameterType="workgroupMenu">
|
||||
DELETE FROM <include refid="tableWorkAuthorization" />
|
||||
WHERE SYS_RESOURCE_ID = #{sysResourceId}
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=9]
|
||||
. 업무그룹-역할 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectRoleWorkgroupList" parameterType="java.util.HashMap" resultMap="workgroup.workgroupResult">
|
||||
SELECT W.WORKGROUP_ID, W.WORKGROUP_NAME, W.DESCRIPTION,
|
||||
W.LABEL
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=10]
|
||||
. 업무그룹-역할 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertWorkgroupRole" parameterType="workgroupRole">
|
||||
INSERT INTO <include refid="tableWorkgroupRole" />
|
||||
(WORKGROUP_ID, USER_ROLE_ID, FROM_DATE, THRU_DATE, ROLE_ID, USER_ID,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=11]
|
||||
. 업무그룹-역할 수정
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateWorkgroupRole" parameterType="workgroupRole">
|
||||
UPDATE <include refid="tableWorkgroupRole" />
|
||||
SET THRU_DATE = #{thruDate},
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=12]
|
||||
. 업무그룹-역할 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<delete id="deleteWorkgroupRole" parameterType="java.util.HashMap">
|
||||
DELETE FROM <include refid="tableWorkgroupRole" />
|
||||
WHERE WORKGROUP_ID = #{workgroupId}
|
||||
--생략--
|
||||
----
|
||||
Reference in New Issue
Block a user