package incheon.res.rdm.dd.pjtplan.service.impl;

import incheon.com.cmm.context.RequestContext;
import incheon.com.security.vo.LoginVO;
import incheon.res.rdm.com.msgnlog.service.RdmComMsgnlogService;
import incheon.res.rdm.com.msgnlog.vo.RdmComMsgnlogVO;
import incheon.res.rdm.com.pjtplan.mapper.RdmComPjtplanMapper;
import incheon.res.rdm.com.pjtplan.vo.RdmComPjtplanVO;
import incheon.res.rdm.dd.pjtplan.service.RdmDdPjtplanService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class RdmDdPjtplanServiceImpl extends EgovAbstractServiceImpl implements RdmDdPjtplanService {
	protected Log log = LogFactory.getLog(this.getClass());
	
	@Resource
	private RdmComPjtplanMapper rdmComPjtplanMapper;
	@Resource
	private RdmComMsgnlogService rdmComMsgnlogService;

	/**
	 * @MethodDESC : 보완요청 취소 처리
	 */
	@Override
	public int updatePjtplanState(RdmComPjtplanVO vo) throws Exception{
		int result = 1;
		try{

			LoginVO loginVO = RequestContext.getCurrentUser();
			String sessionUserId = loginVO.getUserUnqId();

			vo.setBizPlanPrcsStts("BPA004");
			vo.setSplmntDmndCn("");
			
			rdmComPjtplanMapper.updateRevDes(vo);
			rdmComPjtplanMapper.updatePjtplanState(vo);

			RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
			rdmComMsgnlogVO.setStateCde("BPA069");
			rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
			rdmComMsgnlogVO.setBizPlanAplyMngNo(vo.getBizPlanAplyMngNo());
			rdmComMsgnlogVO.setBizPlanPrcsStts(vo.getBizPlanPrcsStts());

			rdmComMsgnlogService.insertPlanMsgNLog2(rdmComMsgnlogVO);

		}catch (NullPointerException npe) {
			result = 0;
			log.error("필수 데이터 누락으로 처리 실패");
		} catch (DataAccessException dae) {
			result = 0;
			log.error("데이터베이스 처리 중 오류 발생");
		} catch (RuntimeException re) {
			result = 0;
			log.error("시스템 실행 중 예외 발생");
		}
		return result;
	}
}
