package com.takensoft.cms.dept.dao; import com.takensoft.cms.dept.vo.DeptAuthrtVO; import com.takensoft.cms.dept.vo.DeptMbrVO; import com.takensoft.cms.dept.vo.DeptVO; import com.takensoft.common.HierachyVO; import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import java.util.List; import java.util.Map; /** * @author : takensoft * @since :2024.04.24 * @modification * since | author | description * 2024.04.24 | takensoft | 최초 등록 * 2024.05.10 | 박정하 | deptUpdateByHierachy 추가 * 2025.03.13 | 방선주 | 코드 리펙토링 * * 부서 정보 관련 DAO */ @Mapper("deptDAO") public interface DeptDAO { /** * @param deptVO - 부서 정보 객체 * @return int - 등록 성공 여부 * * 부서 등록 */ int save(DeptVO deptVO); /** * @param deptAuthrtVO - 부서 권한 정보 객체 * @return int - 등록 성공 여부 * * 부서 권한 등록 */ int authrtSave(DeptAuthrtVO deptAuthrtVO); /** * @param deptMbrVO - 부서 사용자 정보 객체 * @return int - 등록 성공 여부 * * 부서 사용자 등록 */ int deptMbrSave(DeptMbrVO deptMbrVO); /** * @param upDeptId - 상위 부서 ID * @return int - 부서 깊이(레벨) * * 부서 깊이(레벨) 조회 */ int findByDeptGrd(String upDeptId); /** * @param upDeptId - 상위 부서 ID * @return int - 부서 순서 * * 부서 순서 조회 */ int findByDeptSn(String upDeptId); /************************************** Hierachy 전용 **************************************/ /** * @param * @return List - 부서 정보 목록 * * 최상위 부서 조회 */ List findByTopNode(); /** * @param id - 상위 부서 ID * @return List - 하위 부서 목록 * * 하위 부서 조회 */ List findChildNode(String id); /************************************** Hierachy 전용 **************************************/ /** * @param deptId - 부서 ID * @return DeptVO - 부서 정보 객체 * * 부서 정보 조회 */ DeptVO findByDept(String deptId); /** * @param deptVO - 부서 정보 객체 * @return int - 수정 성공 여부 * * 부서 정보 수정 */ int update(DeptVO deptVO); /** * @param deptId - 부서 ID * @return int - 삭제 성공 여부 * * 부서 권한 삭제 */ int deleteAuth(String deptId); /** * @param params - 부서 ID, 사용자 ID * @return int - List - 부서 사용자 정보 목록 * * 부서 사용자 등록을 위한 사용자 정보 목록 조회 (부서에 등록되지 않은 사용자 목록) */ List findByMber(Map params); /** * @param deptId - 부서 ID * @return int - List- 부서 사용자 정보 목록 * * 부서에 등록된 사용자 목록 조회 */ List findByDeptMber(String deptId); /** * @param deptId - 부서 ID * @return int - 삭제 성공 여부 * * 상위,하위 부서 삭제 */ int deleteDept(String deptId); /** * @param deptId - 부서 ID * @return int - 삭제 성공 여부 * * 상위, 하위 부서 삭제에 따른 부서의 사용자 삭제 */ int deleteDeptInDeptMbr(String deptId); /** * @param params - 부서 ID, 사용자 ID * @return int - 삭제 성공 여부 * * 부서에 등록된 사용자 제거 */ int deleteDeptMbr(Map params); /** * @param deptVO - 부서 정보 객체 * @return int - 수정 성공 여부 * * 부서 정보 수정 (hierachyVO 사용) */ int deptUpdateByHierachy(DeptVO deptVO); }