package incheon.res.rdm.dc.cstterm.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.dc.cstterm.mapper.RdmDcCsttermMapper;
import incheon.res.rdm.dc.cstterm.service.RdmDcCsttermService;
import incheon.res.rdm.dc.cstterm.vo.RdmDcCsttermVO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.egovframe.rte.fdl.property.EgovPropertyService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class RdmDcCsttermServiceImpl extends EgovAbstractServiceImpl implements RdmDcCsttermService {

	protected Log log = LogFactory.getLog(this.getClass());

	@Resource
	private RdmDcCsttermMapper rdmDcCsttermMapper;
	@Resource
	private RdmComMsgnlogService rdmComMsgnlogService;
    @Resource(name = "propertiesService")
    protected EgovPropertyService propertiesService;


	/**
	 * @MethodDESC : 준공계 접수
	 */
	public int insertCstterm010(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH503";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH503");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.receiveCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 현장감독의견 등록
	 */
	public int insertCstterm020(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH504";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);
		
		//날짜 포멧 변경
	   	if(vo.getGrndsMngYmd().length() != 8){
		   	String[] ymdTemp = vo.getGrndsMngYmd().split("-");
		   	String ymd = "";
		   	for(int i = 0; i < ymdTemp.length; i++){
		   		ymd += ymdTemp[i];
		   	}
			vo.setGrndsMngYmd(ymd);
	   	}

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH554");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.clerkOfWorksCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 검토의견 등록
	 */
	public int insertCstterm030(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH505";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH505");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.clerkOfWorksCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 보완요청
	 */
	public int insertCstterm040(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH602";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH602");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.demandComplementCstterm(vo);
	}
	
	/**
	 *
	 * @MethodDESC : 준공계 현장감독의견 수정
	 */
	public int updateCstterm020(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH504";
		String roadDggMngNo = vo.getRoadDggMngNo();

		vo.setRoadDggPrcsStts(roadDggPrcsStts);
		
		//날짜 포멧 변경
	   	if(vo.getGrndsMngYmd().length() != 8){
		   	String[] ymdTemp = vo.getGrndsMngYmd().split("-");
		   	String ymd = "";
		   	for(int i = 0; i < ymdTemp.length; i++){
		   		ymd += ymdTemp[i];
		   	}
			vo.setGrndsMngYmd(ymd);
	   	}

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH555");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.clerkOfWorksCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 검토의견 수정
	 */
	public int updateCstterm030(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH505";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH556");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.clerkOfWorksCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 보완요청 수정
	 */
	public int updateCstterm040(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH602";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH602");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.demandComplementCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 보완요청 수정
	 */
	public int updateCstterm041(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH602";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH557");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.demandComplementCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 현장감독 내역 삭제
	 */
	public int deleteCstterm020(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH503";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);
		vo.setGrndsMngYmd("");
		vo.setGrndsSupe("");
		vo.setVolmChgYn("");
		vo.setCmcnInspCn("");
		vo.setLaneUnitRstrYn("");

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH558");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.clerkOfWorksCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 접수 취소
	 */
	public int cancelCstterm010(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH502";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH559");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.receiveCancelCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 재작성 요청
	 */
	public int reDemandComplementCstterm(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH605";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH605");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.reDemandComplementCstterm(vo);
	}
	
	/**
	 * @MethodDESC : 준공계 준공처리
	 */
	public int completeCstterm(RdmDcCsttermVO vo) throws Exception{

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

		String roadDggPrcsStts = "RDH509";
		String roadDggMngNo = vo.getRoadDggMngNo();
		vo.setRoadDggPrcsStts(roadDggPrcsStts);

		//로그저장
		RdmComMsgnlogVO rdmComMsgnlogVO = new RdmComMsgnlogVO();
		rdmComMsgnlogVO.setStateCde("RDH509");
		rdmComMsgnlogVO.setSeUserAcntMngNo(sessionUserId);
		rdmComMsgnlogVO.setRoadDggMngNo(roadDggMngNo);
		rdmComMsgnlogVO.setRoadDggPrcsStts(roadDggPrcsStts);
		rdmComMsgnlogService.insertDigMsgNLog2(rdmComMsgnlogVO);

		return rdmDcCsttermMapper.completeCstterm(vo);
	}
	

}
