package incheon.res.rdm.dp.confirm.service.impl;


import incheon.res.rdm.com.perinfo.mapper.RdmComPerinfoMapper;
import incheon.res.rdm.com.perinfo.vo.RdmComPerinfoVO;
import incheon.res.rdm.dp.confirm.mapper.RdmDpConfirmMapper;
import incheon.res.rdm.dp.confirm.service.RdmDpConfirmService;
import incheon.res.rdm.dp.confirm.vo.RdmDpConfirm;
import incheon.res.rdm.dp.confirm.vo.RdmDpConfirmVO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;



@Service
public class RdmDpConfirmServiceImpl extends EgovAbstractServiceImpl implements RdmDpConfirmService {

	protected Log log = LogFactory.getLog(this.getClass());
	
	@Resource
    private RdmDpConfirmMapper rdmDpConfirmMapper;
	
	@Resource
    private RdmComPerinfoMapper rdmComPerinfoMapper;
	
	/**
	 * @MethodDESC : 허가신청서 인쇄
	 */
	@Override
	public RdmDpConfirm selectConPrint(RdmDpConfirmVO vo) throws Exception {
		return rdmDpConfirmMapper.selectConPrint(vo);
	}
	
	/**
	 * @MethodDESC : 굴착 규모
	 */
	@Override
	public List selectDigsizeList(RdmDpConfirmVO vo) throws Exception {
		return rdmDpConfirmMapper.selectDigsizeList(vo);
	}
	
	/**
	 * @MethodDESC : 부과정보 보기
	 */
	@Override
	public RdmDpConfirm selectLevy(RdmDpConfirmVO vo) throws Exception {
		return rdmDpConfirmMapper.selectLevy(vo);
	}

	@Override
	public List selectLevyList(RdmDpConfirmVO vo) throws Exception {
		return rdmDpConfirmMapper.selectLevyList(vo);
	}
	
	
	/**
	 * @MethodDESC : 부과 완납처리
	 */
	@Override
	public int updateLevy(RdmDpConfirmVO vo) throws Exception {
		int cnt = 0;
		try{
			cnt = rdmDpConfirmMapper.updateLevy(vo);
			RdmComPerinfoVO rdmComPerinfoVO = new RdmComPerinfoVO();
			rdmComPerinfoVO.setRoadDggMngNo(vo.getRoadDggMngNo());
			rdmComPerinfoVO.setRoadDggPrcsStts(vo.getRoadDggPrcsStts());
			cnt = rdmComPerinfoMapper.updateRdhcde(rdmComPerinfoVO);
		}catch (IllegalStateException e){
			log.error("부과 완납처리 중 오류가 발생했습니다.");
		}
		return cnt;
	}
	
	/**
	 * @MethodDESC : 완납처리
	 */
	@Override
	public void insertConfirm(RdmDpConfirmVO vo) throws Exception {
		rdmDpConfirmMapper.insertConfirm(vo);
	}

	@Override
	public int goBackPrevStep(RdmDpConfirmVO vo) throws Exception {
		int cnt = 0;
		RdmComPerinfoVO rdmComPerinfoVO = new RdmComPerinfoVO();
		rdmComPerinfoVO.setRoadDggMngNo(vo.getRoadDggMngNo());
		rdmComPerinfoVO.setRoadDggPrcsStts(vo.getRoadDggPrcsStts());
		cnt = rdmComPerinfoMapper.updateRdhcde(rdmComPerinfoVO);
		return cnt;
	}
}