/** 
 * MemberAuthService.java
 * @author 임새미 
 * @since 2016. 11. 7.
 *
 *  	 수정일                     수정자                                       수정내용
 *  -------------	--------	---------------------------
 *  2016. 11. 7. 	    임새미				       최초생성
 * 
 */
package kcg.faics.member.service;

import java.util.HashMap;

import kcg.faics.member.vo.MemberSearchVO;
import kcg.faics.member.vo.MemberVO;

/** 
 * MemberAuthService.java
 * @author 임새미 
 * @since 2016. 11. 7.
 *
 *  	 수정일                     수정자                                       수정내용
 *  -------------	--------	---------------------------
 *  2016. 11. 7. 	    임새미				       최초생성
 * 
 */
public interface MemberAuthService {
	
	/**
	 * 과장정보를 반환한다.
	 * 
	 * @param place1 소속기관 코드
	 * @return 과장정보
	 * @throws Exception 기본 예외 처리
	 */
	MemberVO getHead(String place1) throws Exception;	

	/**
	 * 계장정보를 반환한다.
	 * 
	 * @param place1 소속기관 코드
	 * @return 계장정보
	 * @throws Exception 기본 예외 처리
	 */
	MemberVO getSection(String place1) throws Exception;
	
	/**
	 * 견문 결재권한을 반환한다.
	 * 
	 * @param userid 사용자 ID
	 * @param place1 소속코드
	 * @return (1-나머지, 2-계장, 3-과장)
	 * @throws Exception
	 *             기본 예외 처리
	 */
	int getDutiesForRptApprove(String userid, String place1) throws Exception;
	
	/**
	 * 견문 결재권한을 반환한다.
	 * 
	 * @param memberVO
	 *            사용자 VO
	 * @return (1-나머지, 2-계장, 3-과장)
	 * @throws Exception
	 *             기본 예외 처리
	 */
	int getDutiesForRptApprove(MemberVO memberVO) throws Exception;
	
	/**
	 * 외사경찰 리스트를 반환한다.
	 * 
	 * @param searchVO searchVO 객체
	 * @return hashmap : head - 과장정보, section - 계장정보, resultList - 외사경찰리스트
	 * @throws Exception 기본 예외 처리
	 */
	HashMap<String, Object> getMemberListByPlace1(MemberSearchVO searchVO) throws Exception;
	
	/**
	 * 외사경찰 수를 반환한다.
	 * 
	 * @param searchVO searchVO 객체
	 * @return 전체 외사경찰 수
	 * @throws Exception 기본 예외 처리
	 */
	int getMemberListByPlace1Cnt(MemberSearchVO searchVO) throws Exception;
	
	/**
	 * 외사경찰의 권한을 설정한다.
	 * 
	 * @param memberVO userid, usegrade 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	int updateMemberAuth(MemberVO memberVO) throws Exception;
	
	/**
	 * 외사경찰의 견문권한을 설정한다.
	 * 
	 * @param memberVO userid, usegrade 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	int updateMemberRpt(MemberVO memberVO) throws Exception;
	
	/**
	 * 외사경찰 부서 계장 권한을 설정한다.
	 * 
	 * @param memberVO userid 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	int updateHead(MemberVO memberVO) throws Exception;
	
	/**
	 * 외사경찰 부서 과장 권한을 설정한다.
	 * 
	 * @param memberVO userid 정보
	 * @return 결과 : 성공 - 1, 실패 - 0
	 * @throws Exception 기본 예외 처리
	 */
	int updateSection(MemberVO memberVO) throws Exception;
}
