package kcg.faics.tg.service.impl;

import java.util.HashMap;
import java.util.List;

import kcg.faics.tg.vo.CorpSearchVO;
import kcg.faics.tg.vo.CorpVO;

import org.springframework.stereotype.Repository;

import egovframework.rte.psl.dataaccess.EgovAbstractMapper;

/**
 * 치안대상 관련 Mapper 클래스.
 * 
 * @author kimnomin
 *
 */
@Repository("corpMapper")
public class CorpMapper extends EgovAbstractMapper {
	
	/**
	 * 치안대상 정보를 반환한다.
	 * 
	 * @param corpVO
	 *            치안대상 VO
	 * @return 치안대상 정보
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public CorpVO select(final CorpVO corpVO) throws Exception {
		return selectOne("Corp.select", corpVO);
	}
	
	/**
	 * 치안대상 목록을 반환한다.
	 * 
	 * @param searchVO
	 *            검색조건 VO
	 * @return 치안대상 목록
	 */
	public List<CorpVO> selectList(final CorpSearchVO searchVO) {
		return selectList("Corp.selectList", searchVO);
	}
	
	/**
	 * 치안대상 통계현황을 반환한다.
	 * 
	 * @param map
	 *            조건 Map 객체
	 * @return 치안대상 통계현황
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public List<HashMap<String, Object>> selectStats(final HashMap<String, Object> map)
			throws Exception {
		return selectList("Corp.selectStats", map);
	}
	
	/**
	 * 치안대상 정보를 입력한다.
	 * 
	 * @param corpVO
	 *            입력할 치안대상 VO
	 * @return <code>1</code> 성공, <code>0</code> 실패
	 */
	public int insert(final CorpVO corpVO) {
		return insert("Corp.insert", corpVO);
	}
	
	/**
	 * orgNo의 최대값을 반환한다.
	 * 
	 * @param corpVO
	 *            치안대상 VO
	 * @return orgNo 최대값
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public int selectMaxOrgNo(final CorpVO corpVO) throws Exception {
		return selectOne("Corp.selectMaxOrgNo", corpVO);
	}
	
	/**
	 * 치안대상 정보를 삭제한다.
	 * 
	 * @param corpVO
	 *            치안대상 VO
	 * @return <code>1</code>성공, <code>0</code>실패
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public int delete(final CorpVO corpVO) throws Exception {
		return delete("Corp.delete", corpVO);
	}

	/**
	 * 치안대상 정보를 수정한다.
	 * 
	 * @param corpVO
	 *            치안대상 VO
	 * @return <code>1</code>성공, <code>0</code>실패
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public int update(final CorpVO corpVO) throws Exception {
		return update("Corp.update", corpVO);
	}
}
