/** 
 * CommonService.java
 * @author 임새미 
 * @since 2016. 10. 13.
 *
 *  	 수정일                     수정자                                       수정내용
 *  -------------	--------	---------------------------
 *  2016. 10. 13. 	    임새미				       최초생성
 * 
 */
package kcg.faics.inter.service.impl;

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

import javax.annotation.Resource;

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

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


/**
  * @FileName : InternationalServiceImpl.java
  * @Project : 국제해양프로젝트
  * @Date : 2018. 5. 8. 
  * @작성자 : Moon
  * @변경이력 : 
  * @프로그램 설명 :
 */
@Service("internationalService")
public class InternationalServiceImpl implements InternationalService {

	/**
	 * ArrestMapper.
	 */
	@Resource(name = "internationalMapper")
	private InternationalMapper internationalMapper;

	
	/**
	 * 주소목록을 조회한다.
	 * 
	 * @param String area
	 * @param String area
	 * @return List<CodeVO> 특별광역시도 목록
	 * @exception Exception 기본 예외 처리
	 */
	@Override
	public List<CodeVO> getAddressAreaList(String area) throws Exception {
		List<CodeVO> codeVOList = internationalMapper.getAddressAreaList(area);
		return codeVOList;
	}

	/**
	 * 국제어선 나포정보를 추가한다.
	 * 
	 * @param dataVO 사용자 정보 객체
	 * @param fileMap 업로드 파일정보
	 * @return HashMap/ seq : 게시물 , result : 성공 - 1, 실패 - 0
	 * @exception Exception 기본 예외 처리
	 */
	@Override
	@Transactional
	public HashMap<String, Object> insert(final InternationalVO dataVO) throws Exception {
			
		HashMap<String, Object> result = new HashMap<String, Object>();
		
		//
		if(!dataVO.getShipProcType().equals("01")){
			dataVO.setCommissionCost("");
		}
		
		if(dataVO.getMarginPaymentYn().equals("N")){
			dataVO.setMarginPaymentDate("");
		}
		
		result =  internationalMapper.insertArrest(dataVO);
		
		return result;
	}
	
	/**
	 * 국제어선 나포정보를 수정한다.
	 * 
	 * @param dataVO 사용자 정보 객체
	 * @param fileMap 업로드 파일정보
	 * @return HashMap/ seq : 게시물 , result : 성공 - 1, 실패 - 0
	 * @exception Exception 기본 예외 처리
	 */
	@Override
	@Transactional
	public HashMap<String, Object> update(final InternationalVO dataVO) throws Exception {
			
		HashMap<String, Object> result = new HashMap<String, Object>();
		
		if(!dataVO.getShipProcType().equals("01")){
			dataVO.setCommissionCost("");
		}
		
		if(dataVO.getMarginPaymentYn().equals("N")){
			dataVO.setMarginPaymentDate("");
		}
		
		
		result =  internationalMapper.updateArrest(dataVO);
		
		
		
		return result;
	}
	
	/**
	 * 국제어선 나포정보를 삭제한다.
	 * 
	 * @param dataVO 사용자 정보 객체
	 * @param fileMap 업로드 파일정보
	 * @return HashMap/ seq : 게시물 , result : 성공 - 1, 실패 - 0
	 * @exception Exception 기본 예외 처리
	 */
	@Override
	@Transactional
	public HashMap<String, Object> delete(final InternationalVO dataVO) throws Exception {
			
		HashMap<String, Object> result = new HashMap<String, Object>();
		result =  internationalMapper.deleteArrest(dataVO);
		
		
		
		return result;
	}
	
	/**
	 * 국제어선 나포정보 단건 조회
	 * 
	 * @param dataVO userid 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public InternationalVO select(final InternationalVO dataVO) throws Exception {
		
		InternationalVO result = internationalMapper.getArrest(dataVO);		
		
		return result;
	}
	
	/**
	 * 국제어선 나포정보 목록 전체 조회
	 * 
	 * @param dataVO userid 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public List<InternationalVO> getArrestListAll(final InternationalSearchVO searchVO) throws Exception {
		
		return internationalMapper.getArrestListAll(searchVO);		
	}
	
	/**
	 * 국제어선 나포정보 목록 전체 조회
	 * 
	 * @param dataVO userid 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public ArrestCountVO getArrestListAllCount(final InternationalSearchVO searchVO) throws Exception {
		
		return internationalMapper.getArrestListAllCount(searchVO);		
	}

	/**
	 * 국제어선 나포정보 목록 조회
	 * 
	 * @param dataVO searchVO 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public List<InternationalVO> getArrestList(final InternationalSearchVO searchVO) throws Exception {
		
		return internationalMapper.getArrestList(searchVO);		
	}
	
	/**
	 * 국제어선 나포정보 목록 조회 (엑셀)
	 * 
	 * @param dataVO searchVO 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public List<InternationalVO> getArrestListExcel(final InternationalSearchVO searchVO) throws Exception {
		
		return internationalMapper.getArrestListExcel(searchVO);		
	}
	
	/**
	 * 국제어선 나포정보 집계정보 조회
	 * 
	 * @param dataVO userid 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public InternationalVO getArrestListCount(final InternationalSearchVO searchVO) throws Exception {
		
		return internationalMapper.getArrestListCount(searchVO);		
	}
	
	/**
	 * 국제어선 나포정보 집계정보 조회
	 * 
	 * @param dataVO searchVO 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public InternationalVO getArrestListCountExcel(final InternationalSearchVO searchVO)
			throws Exception {
		
		return internationalMapper.getArrestListCountExcel(searchVO);		
	}
	
	/**
	 * 국제어선 나포정보 목록 조회 (엑셀)
	 * 
	 * @param dataVO searchVO 
	 * @return 선택한 사용자 정보 반환
	 * @throws Exception 기본 예외 처리
	 */
	@Override
	public List<HashMap<String, Object>> getArrestListExcelHashMap(final InternationalSearchVO searchVO) throws Exception {
		
		return internationalMapper.getArrestListExcelHashMap(searchVO);		
	}
	
	
}
