Initial commit
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
= 역할 관리
|
||||
|
||||
== 개요
|
||||
|
||||
역할을 등록하고, 해당 역할에 사용자 및 업무그룹을 Mapping 한다.
|
||||
|
||||
== UI Design & Function
|
||||
|
||||
=== 역할 목록(RoleList.vue)
|
||||
|
||||
역할 등록, 수정 및 조회. +
|
||||
조회된 목록의 사용자/업무그룹 컬럼을 클릭하여 역할-사용자, 역할-업무그룹 상세 화면으로 이동한다.
|
||||
|
||||
image::roleList.png[역할 관리]
|
||||
|
||||
* 기능 설명
|
||||
. 역할 목록 조회
|
||||
. 역할 등록 : 역할 정보를 입력하는 Popup이 호출 되며 정보 기입 후 저장 버튼을 클릭하여 등록한다.
|
||||
. 역할 수정 : 선택된(checkbox : true) 역할 정보를 수정하는 Popup이 호출 되며, 정보 기입 후 저장 버튼을 클릭하여 수정한다.
|
||||
. 역할 삭제 : 선택된(checkbox : true) 역할 목록을 삭제한다.
|
||||
. 엑셀 다운로드 : 조회 조건과 동일한 역할 목록을 엑셀 파일로 다운로드 한다.
|
||||
|
||||
=== 역할-사용자 관리(RoleUserInfo.vue)
|
||||
|
||||
선택한 역할에 대한 사용자 추가. +
|
||||
역할에 대한 사용자가 많을 경우를 대비하여 상단에 페이징 처리 되는 Grid를, 하단에는 사용자를 추가하는 Grid로 나누어 화면을 구성된다.
|
||||
|
||||
image::roleUserInfo.png[역할-사용자 관리]
|
||||
|
||||
* 기능 설명
|
||||
. 역할-사용자 목록 조회
|
||||
. 역할-사용자 등록 : 추가 버튼 클릭시 사용자 조회 Popup이 호출 되며 사용자 선택 후 추가된 하단의 사용자 목록에서 저장한다.
|
||||
. 역할-사용자 수정 : 기등록된 상단 사용자 목록에서 역할 적용 기간을 수정한다.
|
||||
. 역할-사용자 삭제 : 기등록된 상단 사용자 목록에서 선택된(checkbox : true) 사용자 목록을 삭제한다.
|
||||
|
||||
=== 역할-업무그룹 관리(RoleWorkgroupInfo.vue)
|
||||
|
||||
선택한 역할에 대한 업무그룹 추가.
|
||||
|
||||
image::roleWorkgroupInfo.png[역할-업무그룹 관리]
|
||||
|
||||
* 기능 설명
|
||||
. 역할-업무그룹 목록 조회
|
||||
. 역할-업무그룹 등록 : 추가 버튼 클릭시 업무그룹 조회 Popup이 호출 되며 업무그룹을 선택 하여 등록 할 수 있다.
|
||||
. 역할-업무그룹 삭제 : 기등록된 상단 업무그룹 목록에서 선택된(checkbox : true) 업무그룹 목록을 삭제한다.
|
||||
|
||||
== API & Service
|
||||
|
||||
=== API
|
||||
|
||||
* API : RoleController.java
|
||||
|
||||
. 역할 목록 조회 : GET /roles-with-paging
|
||||
. 역할 상세정보 조회 : GET /roles/{roleId}
|
||||
. 역할 등록 : POST /roles
|
||||
. 역할 수정 : PUT /roles
|
||||
. 역할 삭제 : DELETE /roles
|
||||
. 역할-사용자 목록 조회 : GET /roles/{roleId}/users-with-paging
|
||||
. 역할-사용자 등록 : POST /roles/{roleId}/users
|
||||
. 역할-사용자 수정 : PUT /roles/{roleId}/users
|
||||
. 역할-사용자 삭제 : DELETE /roles/{roleId}/users
|
||||
. 역할-업무그룹 목록 조회 : GET /roles/{roleId}/workgroups
|
||||
. 역할-업무그룹 등록 : POST /roles/{roleId}/workgroups
|
||||
. 역할-업무그룹 삭제 : DELETE /roles/{roleId}/workgroups
|
||||
|
||||
== Entity Table & SQL
|
||||
|
||||
=== Entity Table
|
||||
|
||||
* TN_CF_ROLE : 역할
|
||||
* TN_CF_USER_ROLE : 역할-사용자 맵핑
|
||||
* TN_CF_WORKGROUP_ROLE : 역할-업무그룹 맵핑
|
||||
|
||||
=== SQL
|
||||
|
||||
. 역할 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectRolePagingList" parameterType="java.util.HashMap" resultMap="roleResult">
|
||||
SELECT *
|
||||
FROM (SELECT
|
||||
ROW_NUMBER() OVER ( <if test="@com.samsung.SdlComparator@isNotEmptyForDynamicSql(orderBy)">ORDER BY ${orderBy}</if> ) ROWNUM,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=2]
|
||||
. 역할 상세정보 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectRole" parameterType="java.util.HashMap" resultMap="roleResult">
|
||||
SELECT <include refid="columnsRole" />
|
||||
FROM <include refid="tableRole" />
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=3]
|
||||
. 역할 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertRole" parameterType="role">
|
||||
INSERT INTO <include refid="tableRole" />
|
||||
(<include refid="columnsRole" />)
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=4]
|
||||
. 역할 수정
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateRole" parameterType="role" flushCache="true" >
|
||||
UPDATE <include refid="tableRole" />
|
||||
SET ROLE_NAME = #{roleName},
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=5]
|
||||
. 역할 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="deleteRole" parameterType="role" flushCache="true" >
|
||||
UPDATE <include refid="tableRole" />
|
||||
SET DELETE_YN = 1,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=6]
|
||||
. 역할-사용자 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectRoleUserPagingList" parameterType="java.util.HashMap" resultMap="roleUserResult">
|
||||
SELECT *
|
||||
FROM (SELECT
|
||||
ROW_NUMBER() OVER ( <if test="@com.samsung.SdlComparator@isNotEmptyForDynamicSql(orderBy)">ORDER BY ${orderBy}</if> ) ROWNUM,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=7]
|
||||
. 역할-사용자 등록
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<insert id="insertUserRole" parameterType="userRole">
|
||||
INSERT INTO <include refid="tableUserRole" />
|
||||
(ROLE_ID, USER_ID, FROM_DATE, THRU_DATE,
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=8]
|
||||
. 역할-사용자 수정
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<update id="updateUserRole" parameterType="userRole">
|
||||
UPDATE <include refid="tableUserRole" />
|
||||
SET THRU_DATE = #{thruDate},
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=9]
|
||||
. 역할-사용자 삭제
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<delete id="deleteUserRole" parameterType="java.util.HashMap">
|
||||
DELETE FROM <include refid="tableUserRole" />
|
||||
WHERE USER_ID = #{userId}
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=10]
|
||||
. 역할-업무그룹 목록 조회
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<select id="selectRoleWorkgroupList" parameterType="java.util.HashMap" resultMap="workgroup.workgroupResult">
|
||||
SELECT W.WORKGROUP_ID, W.WORKGROUP_NAME, W.DESCRIPTION,
|
||||
W.LABEL
|
||||
--생략--
|
||||
----
|
||||
|
||||
[start=11]
|
||||
. 역할-업무그룹 등록
|
||||
|
||||
[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=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