 package kcg.faics.inter.service.impl;

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

import kcg.faics.arrest.vo.ArrestCountVO;
import kcg.faics.cmmn.vo.CodeVO;
import kcg.faics.inter.vo.InternationalSearchVO;
import kcg.faics.inter.vo.InternationalVO;

import org.springframework.stereotype.Repository;

import egovframework.rte.psl.dataaccess.EgovAbstractMapper;


/**
  * @FileName : InternationalMapper.java
  * @Project : 국제해양프로젝트
  * @Date : 2018. 5. 8. 
  * @작성자 : Moon
  * @변경이력 : 
  * @프로그램 설명 :
 */
@Repository("internationalMapper")
public class InternationalMapper extends EgovAbstractMapper {
	
	
	
	
	
    /**
	 * 국제어선 나포정보를 등록한다.
	 * 
	 * @param dataVO 게시판 내용 구성 객체
	 * @return 글 총 갯수
	 * @throws Exception 기본 예외 처리
	 */
	public HashMap<String, Object> insertArrest(final InternationalVO dataVO) throws Exception {
		
		HashMap<String, Object> resultMap = new HashMap<String, Object>();
		
		int result = 0;
		try {
			result = insert("International.insertArrest", dataVO);
			resultMap.put("result", result);
			resultMap.put("id", "");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return resultMap;
	};
	
	/**
	 * 국제어선 나포정보를 수정한다.
	 * 
	 * @param dataVO 나포정보 객체
	 * @return 글 총 갯수
	 * @throws Exception 기본 예외 처리
	 */
	public HashMap<String, Object> updateArrest(final InternationalVO dataVO) throws Exception {
		
		HashMap<String, Object> resultMap = new HashMap<String, Object>();
		
		int result = 0;
		try {
			result = insert("International.updateArrest", dataVO);
			resultMap.put("result", result);
			resultMap.put("id", dataVO.getArrestId());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return resultMap;
	}
	
	/**
	 * 국제어선 나포정보를 삭제한다.
	 * 
	 * @param boardVO 게시판 내용 구성 객체
	 * @return 글 총 갯수
	 * @throws Exception 기본 예외 처리
	 */
	public HashMap<String, Object> deleteArrest(final InternationalVO dataVO) throws Exception {
		
		HashMap<String, Object> resultMap = new HashMap<String, Object>();
		
		int result = 0;
		try {
			result = insert("International.deleteArrest", dataVO);
			resultMap.put("result", result);
			resultMap.put("arrestId", dataVO.getArrestId());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return resultMap;
	};

	/**
	 * 주소지 시군구 명을 반환한다.
	 * 
	 * @param onlyCentral
	 *            중앙부처만 반환 - true, 모든 목록반환 - false
	 * @return 소속 1 목록
	 * @throws Exception 기본 예외 처리
	 */
	public List<CodeVO> getAddressAreaList(String area) throws Exception {
		List<CodeVO> tempList = selectList("International.getAddressAreaList", area);
		return tempList;
	}
	
	/**
	 * 국제어선 나포정보를 반환한다.
	 * 
	 * @param dataVO  
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	public InternationalVO getArrest(final InternationalVO dataVO) {
		InternationalVO result = selectOne("International.getArrest", dataVO);
		return result;
	}
	
	/**
	 * 국제어선 나포정보 목록(no paging)을 반환한다.
	 * 
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public List<InternationalVO> getArrestListAll(final InternationalSearchVO searchVO) throws Exception {
		return selectList("International.getArrestListAll", searchVO);
	}
	
	/**
	 * 국제어선 나포정보  목록조회
	 * 
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public List<InternationalVO> getArrestList(final InternationalSearchVO searchVO) throws Exception {
		return selectList("International.getArrestList", searchVO);
	}
	/**
	 * 국제어선 나포정보  집계정보조회
	 * 
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public InternationalVO getArrestListCount(final InternationalSearchVO searchVO) throws Exception {
		return selectOne("International.getArrestListCount", searchVO);
	}
	
	/**
	 * 국제어선 나포정보  집계정보조회
	 * 
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public InternationalVO getArrestListCountExcel(final InternationalSearchVO searchVO) throws Exception {
		return selectOne("International.getArrestListCountExcel", searchVO);
	}
	
	/**
	 * 국제어선 나포정보  집계정보조회
	 * 
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public ArrestCountVO getArrestListAllCount(final InternationalSearchVO searchVO) throws Exception {
		return selectOne("International.getArrestListAllCount", searchVO);
	}
	
	/**
	 * 국제어선 나포정보  집계정보조회
	 * 
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public List<InternationalVO> getArrestListExcel(final InternationalSearchVO searchVO) throws Exception {
		return selectList("International.getArrestListExcel", searchVO);
	}
	
	/**
	 * 국제어선 나포정보  집계정보조회
	 * 
	 * @param searchVO
	 *            검색정보 객체
	 * @return 게시물 리스트
	 * @throws Exception
	 *             기본 예외 처리
	 */
	public List<HashMap<String, Object>> getArrestListExcelHashMap(final InternationalSearchVO searchVO) {
		return selectList("International.getArrestListExcelHashMap", searchVO);
	}
}

