package itn.let.schdlr.service.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import itn.let.schdlr.service.SchdlrVO;

@Repository("SchdlrManageDAO")
public class SchdlrManageDAO extends EgovAbstractDAO{

	// 스케줄달력 목록(월별)
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectSchdlrList(SchdlrVO schdlrVO) throws Exception {
		 return (List<SchdlrVO>) list("schdlrManageDAO.selectSchdlrList", schdlrVO);
	}
	
	// 스케줄 등록
	public void schdlrInsert(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.schdlrInsert", schdlrVO);
	}
	
	// 스케줄 공유 등록
	public void schdlrShareInsert(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.schdlrShareInsert", schdlrVO);
	}
	
	// 스케줄 수정
	public void schdlrUpdate(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.schdlrUpdate", schdlrVO);
	}
	
	// 일정 상세 조회
	public SchdlrVO selectSchdlrDetail(SchdlrVO schdlrVO) throws Exception{
		return (SchdlrVO)select("schdlrManageDAO.selectSchdlrDetail", schdlrVO);
	}
	
	// 일정 상세 공유 조회
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectSchdlrShare(SchdlrVO schdlrVO) throws Exception{
		return (List<SchdlrVO>) list("schdlrManageDAO.selectSchdlrShare", schdlrVO);
	}
	
	public int selectSchdlrShareCount(SchdlrVO schdlrVO) throws Exception{
		return (int)select("schdlrManageDAO.selectSchdlrShareCount", schdlrVO);
	}
	
	public void deleteSchdlrShare(String schdlrId) throws Exception{
		delete("schdlrManageDAO.deleteSchdlrShare",schdlrId);
	}
	
	// 일정 목록 조회
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectSchList(SchdlrVO schdlrVO) throws Exception {
		return (List<SchdlrVO>) list("schdlrManageDAO.selectSchList", schdlrVO);
	}
	
	// 환경설정 등록
	public void insertSchConfig(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.insertSchConfig", schdlrVO);
	}
	
	// 환경설정 수정
	public void updateSchConfig(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.updateSchConfig", schdlrVO);
	}
	
	// 환경설정 상세 조회
	public SchdlrVO selectSchConfigDetail(SchdlrVO schdlrVO) throws Exception{
		return (SchdlrVO)select("schdlrManageDAO.selectSchConfigDetail", schdlrVO);
	}

	// 일정 알림 메일 송신 목록 조회
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectMailSendList(String bgnDateTime) throws Exception{
		return (List<SchdlrVO>)list("schdlrManageDAO.selectMailSendList", bgnDateTime);
	}
	
	// 메인전송완료 업데이트
	public void updateMailSend(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.updateMailSend", schdlrVO);
	}

	// 메인화면 > 전체일정
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectMainSchList(SchdlrVO schdlrVO) throws Exception {
		 return (List<SchdlrVO>) list("schdlrManageDAO.selectMainSchList", schdlrVO);
	}
	
	
//	-------------------------------------------------------------------------------------------------------------------------
//	-------------------------------------------------------------------------------------------------------------------------
//	-------------------------------------------------------------------------------------------------------------------------
//	-------------------------------------------------------------------------------------------------------------------------
//	-------------------------------------------------------------------------------------------------------------------------
//	-------------------------------------------------------------------------------------------------------------------------
//	-------------------------------------------------------------------------------------------------------------------------
//	-------------------------------------------------------------------------------------------------------------------------
	
	// 관리자 민원 목록
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectCvlCmplntList(SchdlrVO schdlrVO) throws Exception {
		 return (List<SchdlrVO>) list("schdlrManageDAO.selectCvlCmplntList", schdlrVO);
	}

	// 사용자 민원 목록
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectCvlCmplntListWeb(SchdlrVO schdlrVO) throws Exception {
		return (List<SchdlrVO>) list("schdlrManageDAO.selectCvlCmplntListWeb", schdlrVO);
	}
	
	// 민원 목록 건수
	public int selectCvlCmplntListCnt(SchdlrVO schdlrVO) throws Exception{
		return (int)select("schdlrManageDAO.selectCvlCmplntListCnt", schdlrVO);
	}

	// 관리자 민원 목록 > 처리상태별 건수
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectCvlCmplntStateCntList(SchdlrVO schdlrVO) throws Exception {
		 return (List<SchdlrVO>) list("schdlrManageDAO.selectCvlCmplntStateCntList", schdlrVO);
	}
	
	// 민원 상세 조회(등록/임시/수정)
	public SchdlrVO selectCvlCmplntDetail(SchdlrVO schdlrVO) throws Exception{
		return (SchdlrVO)select("schdlrManageDAO.selectCvlCmplntDetail", schdlrVO);
	}

	// 관리자 상세 > 담당자 조회
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectCvlCmplntPrsnList(SchdlrVO schdlrVO) throws Exception {
		 return (List<SchdlrVO>) list("schdlrManageDAO.selectCvlCmplntPrsnList", schdlrVO);
	}
	
	// 민원 상세 > 민원히스토리 탭 조회
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectCvlCmplntHstryList(SchdlrVO schdlrVO) throws Exception {
		 return (List<SchdlrVO>) list("schdlrManageDAO.selectCvlCmplntHstryList", schdlrVO);
	}
	
	// 민원 상세 > 민원신청현황 탭 조회
	@SuppressWarnings("unchecked")
	public List<SchdlrVO> selectCvlCmplntUserList(SchdlrVO schdlrVO) throws Exception {
		return (List<SchdlrVO>) list("schdlrManageDAO.selectCvlCmplntUserList", schdlrVO);
	}
	
	// 민원 수정(임시/수정)
	public void updateCvlCmplnt(SchdlrVO schdlrVO) throws Exception{
		update("schdlrManageDAO.updateCvlCmplnt",schdlrVO);
	}
	
	// 담당자 등록 여부
	public int selectCvlCmplntPrsnCntById(SchdlrVO schdlrVO) throws Exception{
		return (int)select("schdlrManageDAO.selectCvlCmplntPrsnCntById", schdlrVO);
	}

	// 재 민원 등록 여부
	public int selectReCvlCmplntYn(SchdlrVO schdlrVO) throws Exception{
		return (int)select("schdlrManageDAO.selectReCvlCmplntYn", schdlrVO);
	}
	
	// 관리자 담당자 등록
	public void insertCvlCmplntPrsn(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.insertCvlCmplntPrsn", schdlrVO);
	}
	
	// 관리자 일괄 담당자 등록(상태 확인)
	public void insertCvlCmplntPrsnByState(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.insertCvlCmplntPrsnByState", schdlrVO);
	}
	
	// 사용자 민원 등록(등록/임시)
	public void insertCvlCmplnt(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.insertCvlCmplnt", schdlrVO);
	}
	
	// 사용자 추가민원(재민원) 등록(수정)
	public void insertReCvlCmplnt(SchdlrVO schdlrVO) throws Exception{
		insert("schdlrManageDAO.insertReCvlCmplnt", schdlrVO);
	}
	
	// 상태 변경(처리상태)
	public void updateCvlCmplntState(SchdlrVO schdlrVO) throws Exception{
		update("schdlrManageDAO.updateCvlCmplntState",schdlrVO);
	}

	// 민원 취소
	public void deleteCvlCmplnt(SchdlrVO schdlrVO) throws Exception{
		delete("schdlrManageDAO.deleteCvlCmplnt",schdlrVO);
	}
	
	// 관리자 담당자 삭제
	public void deleteCvlCmplntPrsn(SchdlrVO schdlrVO) throws Exception{
		update("schdlrManageDAO.deleteCvlCmplntPrsn",schdlrVO);
	}
	
	// 관리자 일괄 담당자 삭제(상태확인)
	public void deleteCvlCmplntPrsnByState(SchdlrVO schdlrVO) throws Exception{
		update("schdlrManageDAO.deleteCvlCmplntPrsnByState",schdlrVO);
	}
	
	// 재 민원 등록 여부
	public int selectCvlCmplntByUserId(SchdlrVO schdlrVO) throws Exception{
		return (int)select("schdlrManageDAO.selectCvlCmplntByUserId", schdlrVO);
	}

	// 민원테이블 값 체크 by pk
	public SchdlrVO selectCvlCmplntByPk(SchdlrVO schdlrVO) throws Exception{
		return (SchdlrVO)select("schdlrManageDAO.selectCvlCmplntByPk", schdlrVO);
	}
	
	
	// 사업(계약)관리 임시저장 삭제
//	public void deleteBizCntrtImsiN(SchdlrVO schdlrVO) throws Exception{
//		delete("schdlrManageDAO.deleteBizCntrtImsiN", schdlrVO);
//	}
}
