= 업무 그룹 관리 == 개요 메일 그룹 및 맵핑 정보 관리 기능 제공. == 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 getWorkgroupMenuList(String workgroupId) { List workgroupMenuDtoList = new ArrayList<>(); List authorizationIdList; String beforeMenuId = ""; -- 생략 -- ---- == Entity Table & SQL === Entity Table * TN_CF_WORKGROUP : 업무그룹 * TN_CF_WORK_AUTHORIZATION : 업무그룹 메뉴 권한 맵핑 * TN_CF_WORKGROUP_ROLE : 업무그룹 역할 맵핑 === SQL . 업무그룹 목록 조회 [source,xml] ---- SELECT FROM ---- [start=3] . 업무그룹 등록 [source,xml] ---- INSERT INTO () --생략-- ---- [start=4] . 업무그룹 수정 [source,xml] ---- UPDATE SET WORKGROUP_NAME = #{workgroupName}, --생략-- ---- [start=5] . 업무그룹 삭제 [source,xml] ---- UPDATE SET DELETE_YN = 1, --생략-- ---- [start=6] . 업무그룹-메뉴 목록 조회 [source,xml] ---- SELECT W.WORKGROUP_ID, W.WORKGROUP_NAME, W.DESCRIPTION, W.LABEL --생략-- ---- [start=10] . 업무그룹-역할 등록 [source,xml] ---- INSERT INTO (WORKGROUP_ID, USER_ROLE_ID, FROM_DATE, THRU_DATE, ROLE_ID, USER_ID, --생략-- ---- [start=11] . 업무그룹-역할 수정 [source,xml] ---- UPDATE SET THRU_DATE = #{thruDate}, --생략-- ---- [start=12] . 업무그룹-역할 삭제 [source,xml] ---- DELETE FROM WHERE WORKGROUP_ID = #{workgroupId} --생략-- ----