package itn.let.mjo.msgholiday.web;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.LoginVO;
import itn.com.cmm.util.MJUtil;
import itn.com.cmm.util.RedirectUrlMaker;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.mjocommon.MjonHolidayApi;
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
import itn.let.mjo.msgholiday.service.MsgHolidayService;
import itn.let.mjo.msgholiday.service.MsgHolidayVO;

@Controller
public class MsgHolidayController {

	@Resource(name = "MsgHolidayService")
	private MsgHolidayService msgHolidayService;

    @Autowired
    MjonHolidayApi mjonHolidayApi;

    /**
     * 공휴일 관리 리스트 화면 
     * @param searchVO
     * @param model
     * @return	"/let/mjo/holiday/selectHolidayList.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/selectHolidayList.do")
	public String selectHolidayList(@ModelAttribute("searchVO") MsgHolidayVO searchVO,
			ModelMap model) throws Exception{
	
		/** pageing */
		PaginationInfo paginationInfo = new PaginationInfo();
		paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
		paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
		paginationInfo.setPageSize(searchVO.getPageSize());
		
		searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
		searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
		searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
		
		if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
			searchVO.setSearchSortCnd("holidayDate");
			searchVO.setSearchSortOrd("desc");
		}
		
		/*
		 * 2024.01.26 우영두 변경
		 * 기존 한달전 시작일자 지정에서 하루전으로 변경
		 * 데이터 양이 너무 많이 검색되어 하루전으로 변경해 달라는 기획팀 요청
		 * */ 
    	String toDay = MJUtil.getTodayDate();	//오늘    
    	String endDay = "";
    	
    	
    	if (null == searchVO.getNtceBgnde() || searchVO.getNtceBgnde().equals("")) {
    		searchVO.setNtceBgnde(toDay);

    		//현재년도의 12월 31일로 종료일을 셋팅
    		Calendar cal = Calendar.getInstance();
    		String year = Integer.toString(cal.get(Calendar.YEAR));
    		
    		endDay = year +"-"+"12-31";
    		searchVO.setNtceEndde(endDay); 
    	}		
    	
    	List<MsgHolidayVO> resultList = msgHolidayService.selectMsgHolidayList(searchVO);
		
		model.addAttribute("resultList", resultList);
		
        paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MsgHolidayVO)resultList.get(0)).getTotCnt() : 0);
		model.addAttribute("paginationInfo", paginationInfo);
		
		return "/holiday/MsgHolidayList";
		
	}
	
    /**
     * 공휴일 관리 리스트 삭제 처리 
     * @param String
     * @param model
     * @return	"/let/mjo/holiday/deleteHolidayList.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/deleteHolidayList.do")
	public String deleteHolidayList(@RequestParam("checkedIdForDel") String checkedIdForUpt,
			ModelMap model) throws Exception{
		
		try {
			
			String[] idArr = checkedIdForUpt.split(",");
			
			MsgHolidayVO msgHolidayVO = new MsgHolidayVO();
			List<String> idList = Arrays.asList(idArr);
			
			msgHolidayVO.setHolidayIdList(idList);
			
			int resultCnt = msgHolidayService.deleteHolidayData(msgHolidayVO);
			
		} catch (Exception e) {
			System.out.println("+++++++++++++++++++++++++++++ deleteHolidayList Error !!! ");
		}
		
		return "redirect:/let/mjo/holiday/selectHolidayList.do";
	}
	
    /**
     * 공휴일 관리 공공데이터 포털에서 공휴일 정보 받아오기 API 
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/getHolidayApiDataAjax.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/getHolidayApiDataAjax.do")
	public String getHolidayApiDataAjax(MsgHolidayVO msgHolidayVO, RedirectAttributes redirectAttributes) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다.");
				RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do");
				return redirectUrlMaker.getRedirectUrl();
	    		
	    	}
	    	
	    	String searchHoliYear = msgHolidayVO.getSearchHoliYear();
	    	
	    	if(searchHoliYear == null) {//년도 파라미터가 없으면 현재 년도를 넘겨준다.
	    		
	    		Calendar cal = Calendar.getInstance();
	    		String year = Integer.toString(cal.get(Calendar.YEAR));

	    		msgHolidayVO.setSearchHoliYear(year);
	    		
	    	}
	    	
	    	//공휴일 등록요청한 아이디를 셋팅
	    	msgHolidayVO.setFrstRegisterId(userId);
			
	    	//공공데이터 포털에서 공휴일 API를 통하여 정보를 받아온다.
			List<MsgHolidayVO> msgHolidayList = mjonHolidayApi.getYearHolidayApiData(msgHolidayVO);
			
			int resultCnt = msgHolidayService.insertHolidayData(msgHolidayList);
			
		} catch (Exception e) {
			System.out.println("+++++++++++++++++++++++++++++++++ getHolidayApiDataAjax Controller Error!!!! " + e);
			redirectAttributes.addFlashAttribute("message", "오류가 발생하였습니다.");
			RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do");
			return redirectUrlMaker.getRedirectUrl();
		}
		
		redirectAttributes.addFlashAttribute("message", "공휴일 등록이 완료 되었습니다.");
		RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do");
		return redirectUrlMaker.getRedirectUrl();
	}
	
    /**
     * 공휴일 관리 공휴일 정보 등록 팝업 화면
     * @param MsgHolidayVO
     * @param model
     * @return	"/uss/umt/holiday/selectHolidayModifyPopupAjax.do"
     * @throws Exception
     */
	@RequestMapping("/uss/umt/holiday/selectHolidayModifyPopupAjax.do")
	public String selectHolidayModifyPopupAjax(MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
		
		String toDay = MJUtil.getTodayDate();	//오늘 
		msgHolidayVO.setHolidayDate(toDay);
		
		model.addAttribute("result", msgHolidayVO);
		
		return "/holiday/popup/MsgHolidayModifyPopup";
	}
	
    /**
     * 공휴일 관리 공휴일 정보 신규 등록 처리
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/insertHolidayRegistAjax.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/insertHolidayRegistAjax.do")
	public ResponseEntity<StatusResponse> insertHolidayRegistAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		return ResponseEntity.ok(
					new StatusResponse(HttpStatus.UNAUTHORIZED
							, "로그인을 하셔야 이용 가능합니다."
							, LocalDateTime.now()
							)
					);
	    		
	    	}
	    	
	    	//공공데이터 포털이 아닌 일반 등록 타입으로 등록해 준다.
	    	msgHolidayVO.setApiType("N");
	    	msgHolidayVO.setFrstRegisterId(userId);
	    	
	    	//캘린더에서 넘어오는 날짜에서 하이픈을 삭제해준다.
	    	String holidayDate = msgHolidayVO.getHolidayDate().replace("-", "");
	    	msgHolidayVO.setHolidayDate(holidayDate);
	    	
	    	List<MsgHolidayVO> msgHolidayList = new ArrayList<MsgHolidayVO>();
	    	
	    	msgHolidayList.add(msgHolidayVO);
	    	
	    	int resultCnt = msgHolidayService.insertHolidayData(msgHolidayList);
	    	
		} catch (Exception e) {
			System.out.println("++++++++++++++++++++++++ insertHolidayRegistAjax Controller Error!!!! ");
			return ResponseEntity.ok(
					new StatusResponse(HttpStatus.BAD_REQUEST
							, "공휴일 등록 중 오류가 발생하였습니다.."
							, LocalDateTime.now()
							)
					);
		}
		
		return ResponseEntity.ok(
			new StatusResponse(HttpStatus.OK
					, "공휴일 등록을 완료하였습니다."
					, LocalDateTime.now()
					)
			);
	}
	
    /**
     * 공휴일 관리 공휴일 정보 신규 등록 처리
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/insertHolidayRegistAjax.do"
     * @throws Exception
     */
	@RequestMapping("/uss/umt/holiday/selectHolidayDetailPopupAjax.do")
	public String selectHolidayDetailPopupAjax(MsgHolidayVO msgHolidayVO, RedirectAttributes redirectAttributes, ModelMap model) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다.");
				RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do");
				return redirectUrlMaker.getRedirectUrl();
	    		
	    	}
	    	
			MsgHolidayVO resultVO = msgHolidayService.selectHolidayDetail(msgHolidayVO);
			
			model.addAttribute("result", resultVO);
			
		} catch (Exception e) {
			System.out.println("+++++++++++++++++++++++++++++ selectHolidayDetailPopupAjax Error !!!! ");
			redirectAttributes.addFlashAttribute("message", "오류가 발생하였습니다.");
			RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/let/mjo/holiday/selectHolidayList.do");
			return redirectUrlMaker.getRedirectUrl();
		}
		
		return "/holiday/popup/MsgHolidayModifyPopup";
	}
	
	
    /**
     * 공휴일 관리 공휴일 정보 수정 처리
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/updateHolidayDataAjax.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/updateHolidayDataAjax.do")
	public ResponseEntity<StatusResponse> updateHolidayDataAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		return ResponseEntity.ok(
					new StatusResponse(HttpStatus.UNAUTHORIZED
							, "로그인을 하셔야 이용 가능합니다."
							, LocalDateTime.now()
							)
					);
	    		
	    	}
	    	
	    	//공공데이터 포털이 아닌 일반 등록 타입으로 등록해 준다.
	    	msgHolidayVO.setApiType("N");
	    	msgHolidayVO.setLastUpdusrId(userId);
	    	
	    	//캘린더에서 넘어오는 날짜에서 하이픈을 삭제해준다.
	    	String holidayDate = msgHolidayVO.getHolidayDate().replace("-", "");
	    	msgHolidayVO.setHolidayDate(holidayDate);
	    	
	    	int resultCnt = msgHolidayService.updateHolidayData(msgHolidayVO);
	    	
		} catch (Exception e) {
			System.out.println("++++++++++++++++++++++++ updateHolidayDataAjax Controller Error!!!! ");
			return ResponseEntity.ok(
					new StatusResponse(HttpStatus.BAD_REQUEST
							, "공휴일 수정 중 오류가 발생하였습니다.."
							, LocalDateTime.now()
							)
					);
		}
		
		return ResponseEntity.ok(
			new StatusResponse(HttpStatus.OK
					, "공휴일 수정을 완료하였습니다."
					, LocalDateTime.now()
					)
			);
	}
	
    /**
     * 공휴일 관리 공휴일 정보 삭제 처리(상세 팝업화면에서 삭제 요청시 처리)
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/deleteHolidayDataAjax.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/deleteHolidayDataAjax.do")
	public ResponseEntity<StatusResponse> deleteHolidayDataAjax(@RequestBody MsgHolidayVO msgHolidayVO, ModelMap model) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		return ResponseEntity.ok(
					new StatusResponse(HttpStatus.UNAUTHORIZED
							, "로그인을 하셔야 이용 가능합니다."
							, LocalDateTime.now()
							)
					);
	    		
	    	}
	    	
	    	List<String> idList = new ArrayList<String>();
	    	
	    	String holiId = Integer.toString(msgHolidayVO.getHolidayId());
	    	
	    	idList.add(holiId);
	    	
	    	msgHolidayVO.setHolidayIdList(idList);
	    	int resultCnt = msgHolidayService.deleteHolidayData(msgHolidayVO);
	    	
		} catch (Exception e) {
			System.out.println("++++++++++++++++++++++++ deleteHolidayDataAjax Controller Error!!!! ");
			return ResponseEntity.ok(
					new StatusResponse(HttpStatus.BAD_REQUEST
							, "공휴일 삭제 중 오류가 발생하였습니다.."
							, LocalDateTime.now()
							)
					);
		}
		
		return ResponseEntity.ok(
			new StatusResponse(HttpStatus.OK
					, "공휴일이 삭제 되었습니다."
					, LocalDateTime.now()
					)
			);
	}
	
    /**
     * 관리자 알림 설정 - 야간스미싱알림 설정 팝업 화면
     * @param MsgHolidayVO
     * @param model
     * @return	"/uss/umt/holiday/alarmSet/selectAlarmSettingPopupAjax.do"
     * @throws Exception
     */
	@RequestMapping("/uss/umt/holiday/alarmSet/selectAlarmSettingPopupAjax.do")
	public String selectAlarmSettingPopupAjax(MsgAlarmSetVO msgAlarmSetVO, RedirectAttributes redirectAttributes, ModelMap model) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		redirectAttributes.addFlashAttribute("message", "로그인 후 사용하실 수 있습니다.");
				RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uat/uia/EgovLoginUsr.do");
				return redirectUrlMaker.getRedirectUrl();
	    		
	    	}
	    	
	    	/** pageing */
			PaginationInfo paginationInfo = new PaginationInfo();
			paginationInfo.setCurrentPageNo(msgAlarmSetVO.getPageIndex());
			paginationInfo.setRecordCountPerPage(msgAlarmSetVO.getPageUnit());
			paginationInfo.setPageSize(msgAlarmSetVO.getPageSize());
			
			msgAlarmSetVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
			msgAlarmSetVO.setLastIndex(paginationInfo.getLastRecordIndex());
			msgAlarmSetVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
			
			if("".equals(msgAlarmSetVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
				msgAlarmSetVO.setSearchSortCnd("ALARM_START");
				msgAlarmSetVO.setSearchSortOrd("desc");
			}
	    	
	    	List<MsgAlarmSetVO> resultList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO);
	    	model.addAttribute("resultList", resultList);
	    	model.addAttribute("msgAlarmSetVO", msgAlarmSetVO);
			
	        paginationInfo.setTotalRecordCount(resultList.size() > 0 ? ((MsgAlarmSetVO)resultList.get(0)).getTotCnt() : 0);
			model.addAttribute("paginationInfo", paginationInfo);
			
		} catch (Exception e) {
			System.out.println("+++++++++++++++++++++++++++++ selectAlarmSettingPopupAjax Error !!!! ");
		}
		
		return "/holiday/alarmset/MsgHolidayAlarmSettingListPop";
	}
	
    /**
     * 관리자 알림 설정 - 야간스미싱알림 일정 추가 처리
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/alarmSet/insertAlarmSettinDataAjax.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/alarmSet/insertAlarmSettingDataAjax.do")
	public ResponseEntity<StatusResponse> insertAlarmSettingDataAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO, ModelMap model) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		return ResponseEntity.ok(
					new StatusResponse(HttpStatus.UNAUTHORIZED
							, "로그인을 하셔야 이용 가능합니다."
							, LocalDateTime.now()
							)
					);
	    		
	    	}
	    	
	    	//등록자 아이디 셋팅
	    	msgAlarmSetVO.setFrstRegisterId(userId);
	    	
	    	int resultCnt = msgHolidayService.insertAlarmSettingData(msgAlarmSetVO);
	    	
		} catch (Exception e) {
			System.out.println("++++++++++++++++++++++++ insertAlimSettingDataAjax Controller Error!!!! ");
			return ResponseEntity.ok(
					new StatusResponse(HttpStatus.BAD_REQUEST
							, "알림 일정 등록 중 오류가 발생하였습니다.."
							, LocalDateTime.now()
							)
					);
		}
		
		return ResponseEntity.ok(
			new StatusResponse(HttpStatus.OK
					, "알림 일정이 등록 되었습니다."
					, LocalDateTime.now()
					)
			);
	}
	
    /**
     * 관리자 알림 설정 - 야간스미싱알림 일정 사용상태 변경
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do")
	public ResponseEntity<StatusResponse> updateAlarmSettingDataUseYnAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO, ModelMap model) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		return ResponseEntity.ok(
					new StatusResponse(HttpStatus.UNAUTHORIZED
							, "로그인을 하셔야 이용 가능합니다."
							, LocalDateTime.now()
							)
					);
	    		
	    	}
	    	
	    	
	    	System.out.println(msgAlarmSetVO.getAlarmId());
	    	System.out.println(msgAlarmSetVO.getUseYn());
	    	msgAlarmSetVO.setLastUpdusrId(userId);
	    	
	    	int resultCnt = msgHolidayService.updateAlarmSettingDataUseYn(msgAlarmSetVO);
	    	
		} catch (Exception e) {
			System.out.println("++++++++++++++++++++++++ updateAlarmSettingDataUseYnAjax Controller Error!!!! ");
			return ResponseEntity.ok(
					new StatusResponse(HttpStatus.BAD_REQUEST
							, "사용여부 변경 중 오류가 발생하였습니다.."
							, LocalDateTime.now()
							)
					);
		}
		
		return ResponseEntity.ok(
			new StatusResponse(HttpStatus.OK
					, "변경이 완료 되었습니다."
					, LocalDateTime.now()
					)
			);
	}
	
    /**
     * 관리자 알림 설정 - 야간스미싱알림 일정 삭제 처리
     * @param MsgHolidayVO
     * @param model
     * @return	"/let/mjo/holiday/alarmSet/updateAlarmSettingDataUseYnAjax.do"
     * @throws Exception
     */
	@RequestMapping("/let/mjo/holiday/alarmSet/deleteAlarmSettingDataAjax.do")
	public ResponseEntity<StatusResponse> deleteAlarmSettingDataAjax(@RequestBody MsgAlarmSetVO msgAlarmSetVO) throws Exception{
		
		try {
			
			LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
	    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
	    	
	    	if(userId.equals("")) {
	    		
	    		return ResponseEntity.ok(
					new StatusResponse(HttpStatus.UNAUTHORIZED
							, "로그인을 하셔야 이용 가능합니다."
							, LocalDateTime.now()
							)
					);
	    		
	    	}
	    	
	    	String[] splitId = msgAlarmSetVO.getAlarmIds().split(",");
	    	
	    	List<String> idList = Arrays.asList(splitId);
	    	
	    	msgAlarmSetVO.setAlarmIdList(idList);
	    		    	
	    	int resultCnt = msgHolidayService.deleteAlarmSettingData(msgAlarmSetVO);
	    	
		} catch (Exception e) {
			System.out.println("++++++++++++++++++++++++ deleteAlarmSettingDataAjax Controller Error!!!! " + e);
			return ResponseEntity.ok(
					new StatusResponse(HttpStatus.BAD_REQUEST
							, "사용여부 변경 중 오류가 발생하였습니다.."
							, LocalDateTime.now()
							)
					);
		}
		
		return ResponseEntity.ok(
			new StatusResponse(HttpStatus.OK
					, "변경이 완료 되었습니다."
 					, LocalDateTime.now()
					)
			);
	}
	
	@RequestMapping("/let/mjo/holiday/alarmSet/selectAlarmSettingDataCheckAjax.do")
	public ResponseEntity<StatusResponse> selectAlarmSettingDataCheckAjax() throws Exception{
		
		MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
		
		msgAlarmSetVO.setUseYn("Y");
		msgAlarmSetVO.setFirstIndex(0);
		
		List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO);
		
		Calendar calendar = Calendar.getInstance(); 
		int year = calendar.get(Calendar.YEAR);
		
		MsgHolidayVO msgHolidayVO = new MsgHolidayVO();
		msgHolidayVO.setFirstIndex(0);
		msgHolidayVO.setRecordCountPerPage(100);
		msgHolidayVO.setSearchHoliYear(Integer.toString(year));
		
		List<MsgHolidayVO> resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
		
		MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
		
		boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
		 
		System.out.println("+++++++++ 스미싱을 패스 시킬건지 ::: "+smishingAlarmPassSts);
		 
		return ResponseEntity.ok(
				new StatusResponse(HttpStatus.OK
						, "변경이 완료 되었습니다."
	 					, LocalDateTime.now()
						)
				);
	}
	
}
