/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：CKW01101SFLogic
*   ソースファイル名：CKW01101SFLogic.java
*   作成者          ：FJ）馬場
*   日付            ：2011年11月18日
*＜機能概要＞
*   メール送信履歴照会のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/11/18   FJ）馬場    新規作成
*   v4.00.00    2012/12/18   FJ）野口	【IT1-2012-0002486】対応
*	v5.00.00    2013/01/04   FJ) 田原   【ANK-1418-00-00】eo会員状態遷移整理対応
*	v5.01.00    2013/07/10   FJ) 馬場   【LT-2013-0000377】対応
*	v7.00.00    2014/04/04   FJ) 澁谷   【TAI-2014-0000010】対応
*   v29.00.00   2017/01/06   FJ) 二村   【ANK-3112-00-00】訪販チャネルのタブレット対応
*   v65.00.00	2023/11/14   FJ) 北村   【ANK-4346-00-00】【eo定期】CCMG再構築対応 新規作成
*   v65.00.01	2024/02/26   FJ) 吉田あ 【#84127】CKW01201_メール再送信依頼画面の戻るボタン押下でシステムエラー
*
**********************************************************************/
package eo.web.webview.CKW01101SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CModelCommon;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31SRuntimeException;

import eo.common.constant.JCKStrConst;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CKW01201SF.CKW01201SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW01805SF.KKW01805SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.mapping.CKSV0021_CKSV0021OPDBMapper;

/**
 * CKW01101のビューロジックです。<p>
 * <BR>
 * @author 富士通
 */
public class CKW01101SFLogic extends JCCWebBusinessLogic
{
	
	/** 顧客契約引継情報項目キー */
	private static final String[] CUST_KEI_HKTGI_KEYS = {
		JKKCommonConst.HKTGI_SYSID,
		JKKCommonConst.HKTGI_SVC_KEI_NO,
		JKKCommonConst.HKTGI_IDO_DIV,
		JKKCommonConst.HKTGI_IDO_RSN_CD,
/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		JKKCommonConst.HKTGI_IDO_RSN_MEMO,
/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		JKKCommonConst.HKTGI_OP_SVC_KEI_NO,
		JKKCommonConst.HKTGI_TRAN_DIV,
		JKKCommonConst.HKTGI_MSKM_NO,
		JKKCommonConst.HKTGI_MSKM_DTL_NO,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_NM,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_VALUE,
		JKKCommonConst.HKTGI_POPUP_MODE
	};
	
	/**
	 * 初期表示処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean init() throws Exception
	{
		// 戻り遷移時の引継情報の取得
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		boolean saikensakuFlg = srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 引継情報の有無フラグがfalseの場合、前画面の引継情報を取得する
		if(!saikensakuFlg)
		{
			// 引継情報の取得
			X31SDataBeanAccessArray custKeiHktgiList =  srvBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
			X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
			
			// 前画面からの引継情報を取得する
			String key_sysid = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
			srvBean.sendMessageString(CKW01101SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, key_sysid);
			srvBean.sendMessageString(CKW01101SFConst.SORTITEMNO_BK, X31CWebConst.DATABEAN_SET_VALUE, "");
			srvBean.sendMessageString(CKW01101SFConst.SORTKBN_BK, X31CWebConst.DATABEAN_SET_VALUE, "");
			
			// 前回検索したページリンク情報をセッションから削除
			JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW01101);
			
		}
		
		// 検索条件をバックアップに退避
		setBackupParam(srvBean);
		
// ANK-4346-00-00 MOD START
		if(saikensakuFlg)
		{
			// 検索、ページリンク、ソートリンク共通処理
			HashMap<String,Object> outputMap = searchCommon(srvBean);
		}
// ANK-4346-00-00 MOD END
		
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
//		X31SDataBeanAccessArray beanArray = srvBean.getDataBeanArray(CKW01101SFConst.CUST_LIST);
//		String custStat = beanArray.getDataBean(0).sendMessageString(CKW01101SFConst.CUST_STAT_07, X31CWebConst.DATABEAN_GET_VALUE);
//
//		// お客様ステータスが[010](登録済)、[100](受付済)の場合
//		if(JCKCommonConst.CUST_STAT_01.equals(custStat) || JCKCommonConst.CUST_STAT_02.equals(custStat))
//		{
//			String custNtaikaiCd = beanArray.getDataBean(0).sendMessageString(CKW01101SFConst.CUST_NTAIKAI_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
//			// お客様入退会コードが退会(1)の場合、メール再送信依頼画面にエラーを表示する
//			if("1".equals(custNtaikaiCd)){
//
//				String[] msg = {"お客様", "eoIDを退会済", "再送信依頼が"};
//				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0290_JW, msg);
//			}
//		} 
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
		// ANK-3112-00-00 DEL START
//		// 標準コンテンツ未同意のお客様の場合
//		if(srvBean.sendMessageBoolean(CKW01101SFConst.STDARD_CONT_MIDOI_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			String[] msg = {"お客様", "標準コンテンツ未同意", "再送信依頼が"};
//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0290_JW, msg);
//		}
		// ANK-3112-00-00 DEL END
		
// ANK-4346-00-00 MOD START
		// 各コンボボックスの選択状態を設定
		//setSelectIndexToComboBox(srvBean, outputMap);
		String search_trgt_mail = srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_GET_VALUE);
		if (search_trgt_mail.isEmpty()) {
			search_trgt_mail = JCKStrConst.SEARCH_TRGT_MAIL_KAISEN;
		}
		// 検索対象メールに初期値を設定する。
		srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_SET_VALUE, search_trgt_mail);
// ANK-4346-00-00 MOD END

		// 引継情報の選択_メール送信番号と選択_送信回数をクリアする(画面戻り時のラジオボタンチェック処理は一度しか行わないため)
		srvBean.sendMessageString(CKW01101SFConst.SELECT_ML_SENDNO, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SELECT_SEND_CNT, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// コンボボックス検索フラグをfalseにする(初期処理時にしかコンボボックスの検索は行わないため)
		srvBean.sendMessageBoolean(CKW01101SFConst.COMBO_SEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		return true;
	}
	
	/**
	 * 検索ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean search() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 前回検索したページリンク情報をセッションから削除
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW01101);
		
		// ソート順を初期化
		srvBean.sendMessageString(CKW01101SFConst.SORTITEMNO_BK, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SORTKBN_BK, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索条件をバックアップに退避
		setBackupParam(srvBean);
		
		// 検索、ページリンク、ソートリンク共通処理
		HashMap<String,Object> outputMap = searchCommon(srvBean);

// ANK-4346-00-00 DEL START
		// 各コンボボックスの選択状態を設定
		//setSelectIndexToComboBox(srvBean, outputMap);
// ANK-4346-00-00 DEL END
		return true;
	}
	
	/**
	 * ページリンク押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean changePage() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 検索条件をバックアップ領域から復帰
		getBackupParam(srvBean);
		
		// 検索、ページリンク、ソートリンク共通処理
		HashMap<String,Object> outputMap = searchCommon(srvBean);
		
// ANK-4346-00-00 DEL START
		// 各コンボボックスの選択状態を設定
		//setSelectIndexToComboBox(srvBean, outputMap);
// ANK-4346-00-00 DEL END		
		return true;
	}
	
	/**
	 * クリアボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean clear() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 前回検索したページリンク情報をセッションから削除
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW01101);
		
		// ソート順を初期化
		srvBean.sendMessageString(CKW01101SFConst.SORTITEMNO_BK, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SORTKBN_BK, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索条件.SYSIDを復帰
		String sysid = srvBean.sendMessageString(CKW01101SFConst.SYSID_BK, X31CWebConst.DATABEAN_GET_VALUE);
		srvBean.sendMessageString(CKW01101SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysid);
		
		// コンボボックスの先頭（空白）を選択状態にする
		X31SDataBeanAccess contSvcFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_CONT_SVC_FSTNM).getDataBean(0);
		X31SDataBeanAccess eoidBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_EOID_ID).getDataBean(0);
		X31SDataBeanAccess mladBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_MLAD).getDataBean(0);
		X31SDataBeanAccess optinMlFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_OPTIN_ML_FSTNM).getDataBean(0);
		
// ANK-4346-00-00 DEL START
		//contSvcFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
		//eoidBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		//mladBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_03, X31CWebConst.DATABEAN_SET_VALUE, "0");
		//optinMlFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
// ANK-4346-00-00 DEL END
		
		// その他の検索条件をクリアする
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI, X31CWebConst.DATABEAN_SET_VALUE, "");
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索条件をバックアップに退避
		setBackupParam(srvBean);
		
// ANK-4346-00-00 MOD START
		// 検索、ページリンク、ソートリンク共通処理
		//HashMap<String,Object> outputMap = searchCommon(srvBean);

		// 各コンボボックスの選択状態を設定
		//setSelectIndexToComboBox(srvBean, outputMap);
		
		// --------------------
		// 遷移先画面の設定
		// --------------------
		// 明細一覧のクリア
		srvBean.getDataBeanArray(CKW01101SFConst.ML_SENDNO_LIST).clearArray();
		// 検索結果有無フラグのリセット
		srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		// 検索対象メールに初期値を設定する。
		srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_SET_VALUE, JCKStrConst.SEARCH_TRGT_MAIL_KAISEN);
// ANK-4346-00-00 MOD END

		return true;
	}
	
	/**
	 * 送信一覧ソートリンク押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean sortSendInfo() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 前回検索したページリンク情報をセッションから削除
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW01101);
		
		// 検索条件をバックアップ領域から復帰
		getBackupParam(srvBean);
		
		// 検索、ページリンク、ソートリンク共通処理
		HashMap<String,Object> outputMap = searchCommon(srvBean);
		
// ANK-4346-00-00 DEL START
		// 各コンボボックスの選択状態を設定
		//setSelectIndexToComboBox(srvBean, outputMap);
// ANK-4346-00-00 DEL END	
		
		return true;
	}
	
	/**
	 * 再送信依頼ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean forwardResendReq() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 選択された明細行番号を取得
		int row = Integer.parseInt(srvBean.sendMessageString(CKW01101SFConst.CHOICE, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 選択された明細行のメール送信番号、送信回数、状態を取得
		X31SDataBeanAccessArray beanArray = srvBean.getDataBeanArray(CKW01101SFConst.ML_SENDNO_LIST);
		String selectMlSendno = beanArray.getDataBean(row).sendMessageString(CKW01101SFConst.ML_SENDNO_05, X31CWebConst.DATABEAN_GET_VALUE);
		String selectSendCnt = beanArray.getDataBean(row).sendMessageString(CKW01101SFConst.SEND_CNT_05, X31CWebConst.DATABEAN_GET_VALUE);
		String selectStat = beanArray.getDataBean(row).sendMessageString(CKW01101SFConst.STAT_05, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4346-00-00 ADD START
		String selectSendDate = beanArray.getDataBean(row).sendMessageString(CKW01101SFConst.SEND_DATE_05, X31CWebConst.DATABEAN_GET_VALUE);; 
		String selectMlad = beanArray.getDataBean(row).sendMessageString(CKW01101SFConst.MLAD_05, X31CWebConst.DATABEAN_GET_VALUE);; 
		String selectKenFstnm = beanArray.getDataBean(row).sendMessageString(CKW01101SFConst.KEN_FSTNM_05, X31CWebConst.DATABEAN_GET_VALUE);; 
		String selectText = beanArray.getDataBean(row).sendMessageString(CKW01101SFConst.MAIL_TEXTR_BK, X31CWebConst.DATABEAN_GET_VALUE);; 
// ANK-4346-00-00 ADD END
		
		// 次画面に必要な情報を設定する
		// 顧客契約内引継ぎデータセット
		HashMap<String, Object> paramMap = getHktgiDataMap(srvBean, JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);
		
		// 次画面引継項目（選択された明細行のメールID、送信回数、状態）
		paramMap.put(CKW01201SFConst.ML_ID, selectMlSendno);
		paramMap.put(CKW01201SFConst.SEND_CNT, selectSendCnt);
		paramMap.put(CKW01201SFConst.STAT, selectStat);
// ANK-4346-00-00 ADD START
		paramMap.put(CKW01201SFConst.SEARCH_TRGT_MAIL, srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_GET_VALUE));
		paramMap.put(CKW01201SFConst.SEND_DATE, selectSendDate);
		paramMap.put(CKW01201SFConst.MLAD, selectMlad);
		paramMap.put(CKW01201SFConst.KEN_FSTNM, selectKenFstnm);
		paramMap.put(CKW01201SFConst.TEXT, selectText);
		paramMap.put(CKW01201SFConst.SYSID, srvBean.sendMessageString(CKW01101SFConst.SYSID_BK, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4346-00-00 ADD END
		
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW01201, paramMap);
		
		// 戻る際に必要な情報を設定する。
		HashMap<String, Object> returnMap = new HashMap<String, Object>();
		
		// 画面の検索条件バックアップ
		returnMap.put(CKW01101SFConst.SYSID, srvBean.sendMessageString(CKW01101SFConst.SYSID_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.CONT_SVC_CD_BK, srvBean.sendMessageString(CKW01101SFConst.CONT_SVC_CD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.EOID_ID_BK, srvBean.sendMessageString(CKW01101SFConst.EOID_ID_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.MLAD_BK, srvBean.sendMessageString(CKW01101SFConst.MLAD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.MAIL_CD_BK, srvBean.sendMessageString(CKW01101SFConst.MAIL_CD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_STAYMD_YEAR, srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_YEAR_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_STAYMD_MON, srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_MON_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_STAYMD_DAY, srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_DAY_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_STAYMD_JI, srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_STAYMD_FUN, srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_ENDYMD_YEAR, srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_YEAR_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_ENDYMD_MON, srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_MON_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_ENDYMD_DAY, srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_DAY_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_ENDYMD_JI, srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SEND_ENDYMD_FUN, srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SORTITEMNO_BK, srvBean.sendMessageString(CKW01101SFConst.SORTITEMNO_BK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(CKW01101SFConst.SORTKBN_BK, srvBean.sendMessageString(CKW01101SFConst.SORTKBN_BK, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4346-00-00 ADD START
		returnMap.put(CKW01101SFConst.SEARCH_TRGT_MAIL, srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4346-00-00 ADD END

		// 選択された明細行のメール送信番号、送信回数（次画面から戻った際にラジオの選択状態を復帰するため）
		returnMap.put(CKW01101SFConst.SELECT_ML_SENDNO, selectMlSendno);
		returnMap.put(CKW01101SFConst.SELECT_SEND_CNT, selectSendCnt);
		
		// 有無フラグ
		returnMap.put(CKW01101SFConst.UM_FLG, srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW01101, returnMap);
		
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW01201, JCKScreenConst.SCREEN_ID_CKW01101);
/* ++++++++++ v5.00.00 削除開始 ++++++++++ */
//		beanArray = srvBean.getDataBeanArray(CKW01101SFConst.CUST_LIST);
//		String custStat = beanArray.getDataBean(0).sendMessageString(CKW01101SFConst.CUST_STAT_07, X31CWebConst.DATABEAN_GET_VALUE);
//		if(!(JCKCommonConst.CUST_STAT_01.equals(custStat) || JCKCommonConst.CUST_STAT_02.equals(custStat)))
//		{
//			// お客様ステータスが[010](登録済)、[100](受付済)以外の場合、メール再送信依頼画面にエラーを表示する
//			String[] msg = {"お客様", "eoIDを退会済", "再送信依頼が"};
//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0290_JW, msg);
//		}
/* ++++++++++ v5.00.00 削除終了 ++++++++++ */
		
		// ANK-3112-00-00 DEL START
//		// 標準コンテンツ未同意のお客様の場合、メール再送信依頼画面にエラーを表示する
//		if(srvBean.sendMessageBoolean(CKW01101SFConst.STDARD_CONT_MIDOI_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			String[] msg = {"お客様", "標準コンテンツ未同意", "再送信依頼が"};
//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0290_JW, msg);
//		}
		// ANK-3112-00-00 DEL END
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW01201);
		
		return true;
	}
	
	/**
	 * 戻るボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW00401);
		
		return true;
	}
	
	/**
	 * 検索条件をバックアップ領域に退避
	 * <br>
	 * @param srvBean サービスフォームBean
	 * @return 
	 * @throws Exception エラーが発生した場合
	 */
	private void setBackupParam(X31SDataBeanAccess srvBean) throws Exception
	{
		// 送信日時（from）分秒、送信日時（To）分秒の値が入力されていない場合、DataBeanを初期化する(初期化しないと文字列のnullが返ってくる)
		if(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI, X31CWebConst.DATABEAN_GET_VALUE) == null)
		{
			srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		if(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN, X31CWebConst.DATABEAN_GET_VALUE) == null)
		{
			srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		if(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI, X31CWebConst.DATABEAN_GET_VALUE) == null)
		{
			srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		if(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN, X31CWebConst.DATABEAN_GET_VALUE) == null)
		{
			srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		
		// コンボボックスの選択されている項目のコード取得
/*		X31SDataBeanAccessArray contSvcFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_CONT_SVC_FSTNM);
		X31SDataBeanAccessArray eoidBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_EOID_ID);
		X31SDataBeanAccessArray mladBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_MLAD);
		X31SDataBeanAccessArray optinMlFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_OPTIN_ML_FSTNM);
		*/
		String contSvcCd = null;
		String eoid = null;
		String mlad = null;
		String mailCd = null;
		
/*		if(!"".equals(contSvcFstnmBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE)) && 
				contSvcFstnmBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			int contSvcFstnmIdx = Integer.parseInt(contSvcFstnmBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
			contSvcCd = contSvcFstnmBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.CONT_SVC_CD_01, X31CWebConst.DATABEAN_GET_VALUE, contSvcFstnmIdx);
		}
		
		if(!"".equals(eoidBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE)) && 
				eoidBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			int eoidIdx = Integer.parseInt(eoidBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.SELECT_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE));
			eoid = eoidBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.EOID_ID_02, X31CWebConst.DATABEAN_GET_VALUE, eoidIdx);
		}
		
		if(!"".equals(mladBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_03, X31CWebConst.DATABEAN_GET_VALUE)) && 
				mladBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_03, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			int mladIdx = Integer.parseInt(mladBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.SELECT_INDEX_03, X31CWebConst.DATABEAN_GET_VALUE));
			mlad = mladBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.MLAD_03, X31CWebConst.DATABEAN_GET_VALUE, mladIdx);
		}
		
		if(!"".equals(optinMlFstnmBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE)) && 
				optinMlFstnmBean.getDataBean(0).sendMessageString(CKW01101SFConst.SELECT_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE) != null)
		{
			int optinMlFstnmIdx = Integer.parseInt(optinMlFstnmBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.SELECT_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE));
			mailCd = optinMlFstnmBean.getDataBean(0).sendMessageString(
					CKW01101SFConst.MAIL_CD_04, X31CWebConst.DATABEAN_GET_VALUE, optinMlFstnmIdx);
		}*/
		
		String sysid = srvBean.sendMessageString(CKW01101SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdYear = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdMon = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdDay = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdJi = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdFun = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdYear = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdMon = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdDay = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdJi = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdFun = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4346-00-00 ADD START
		String search_trgt_mail  = srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4346-00-00 ADD END

		srvBean.sendMessageString(CKW01101SFConst.SYSID_BK, X31CWebConst.DATABEAN_SET_VALUE, sysid);
		srvBean.sendMessageString(CKW01101SFConst.CONT_SVC_CD_BK, X31CWebConst.DATABEAN_SET_VALUE, contSvcCd);
		srvBean.sendMessageString(CKW01101SFConst.EOID_ID_BK, X31CWebConst.DATABEAN_SET_VALUE, eoid);
		srvBean.sendMessageString(CKW01101SFConst.MLAD_BK, X31CWebConst.DATABEAN_SET_VALUE, mlad);
		srvBean.sendMessageString(CKW01101SFConst.MAIL_CD_BK, X31CWebConst.DATABEAN_SET_VALUE, mailCd);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_YEAR_BK, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdYear);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_MON_BK, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdMon);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_DAY_BK, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdDay);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI_BK, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdJi);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN_BK, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdFun);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_YEAR_BK, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdYear);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_MON_BK, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdMon);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_DAY_BK, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdDay);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI_BK, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdJi);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN_BK, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdFun);
// ANK-4346-00-00 ADD START
		srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL_BK, X31CWebConst.DATABEAN_SET_VALUE, search_trgt_mail);
// ANK-4346-00-00 ADD END

	}
	
	/**
	 * 検索条件をバックアップ領域から復帰
	 * <br>
	 * @param srvBean サービスフォームBean
	 * @return 
	 * @throws Exception エラーが発生した場合
	 */
	private void getBackupParam(X31SDataBeanAccess srvBean) throws Exception
	{
		String sysid = srvBean.sendMessageString(CKW01101SFConst.SYSID_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdYear = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_YEAR_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdMon = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_MON_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdDay = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_DAY_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdJi = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendStaymdFun = srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdYear = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_YEAR_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdMon = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_MON_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdDay = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_DAY_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdJi = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String sendEndymdFun = srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN_BK, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4346-00-00 ADD START
		String search_trgt_mail  = srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL_BK, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4346-00-00 ADD END

		srvBean.sendMessageString(CKW01101SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysid);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdYear);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdMon);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdDay);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdJi);
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN, X31CWebConst.DATABEAN_SET_VALUE, sendStaymdFun);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdYear);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdMon);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdDay);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdJi);
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN, X31CWebConst.DATABEAN_SET_VALUE, sendEndymdFun);
// ANK-4346-00-00 ADD START
		srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_SET_VALUE, search_trgt_mail);
// ANK-4346-00-00 ADD END
		
	}
	
	/**
	 * 検索、ページリンク、ソートリンク共通処理
	 * <br>
	 * @param srvBean サービスフォームBean
	 * @return サービス結果
	 * @throws Exception エラーが発生した場合
	 */
	private HashMap<String, Object> searchCommon(X31SDataBeanAccess srvBean) throws Exception
	{
		// 送信日時（from）編集
		StringBuilder sb = new StringBuilder();
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4346-00-00 ADD START
		String date_from = sb.toString();
// ANK-4346-00-00 ADD TO
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_JI, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD_FUN, X31CWebConst.DATABEAN_GET_VALUE));
		if (sb.length() == 8)
		{
			sb.append("000000000");
		}
		else if (sb.length() == 12)
		{
			sb.append("00000");
		}
		srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD, X31CWebConst.DATABEAN_SET_VALUE, sb.toString());

		// 送信日時（To）編集
		sb = new StringBuilder();
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4346-00-00 ADD START
		String date_to = sb.toString();
// ANK-4346-00-00 ADD END
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_JI, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD_FUN, X31CWebConst.DATABEAN_GET_VALUE));

		if (sb.length() == 8)
		{
			sb.append("235959999");
		}
		else if (sb.length() == 12)
		{
			sb.append("59999");
		}
		srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD, X31CWebConst.DATABEAN_SET_VALUE, sb.toString());

		// 予約適用年月日にオンライン運用日付を設定
		srvBean.sendMessageString(CKW01101SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

// ANK-4346-00-00 ADD START
		// 検索対象メールの条件を追加する。
		String search_trgt_mail = srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_GET_VALUE);
		srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_SET_VALUE,search_trgt_mail );

		// コンテンツメールの場合、日付の入力チェックを行う。
		if (JCKStrConst.SEARCH_TRGT_MAIL_CONT.equals(search_trgt_mail)) 
		{
			//FROM に入力があり、Toに入力がない場合
			if(!date_from.isEmpty() && (date_to.isEmpty() || date_to.length() < 8))
			{
				// 初期検索結果が0件の場合、エラーを表示する
				String[] msg = {"送信日時(FROM)", "送信日時(TO)"};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0280_NW, msg);
				
				// メール送信履歴一覧照会リストを非表示にする
				srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				// 共有フォームBeanのアクセスクラスを取得
				X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
				
				// 遷移先の画面IDを共有フォームBeanの項目に設定する
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
						X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW01101);
				// 遷移先の画面名を共有フォームBeanの項目に設定する
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
						X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_NAME_CKW01101);
				return null;
				
			} 
			else if(!date_to.isEmpty() && (date_from.isEmpty() || date_from.length() < 8))
			{
					// 初期検索結果が0件の場合、エラーを表示する
				String[] msg = {"送信日時(TO)", "送信日時(FROM)"};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0280_NW, msg);
					
				// メール送信履歴一覧照会リストを非表示にする
				srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				// 共有フォームBeanのアクセスクラスを取得
				X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
				
				// 遷移先の画面IDを共有フォームBeanの項目に設定する
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
						X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW01101);
				// 遷移先の画面名を共有フォームBeanの項目に設定する
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
						X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_NAME_CKW01101);
				return null;
			}
		}
		
// ANK-4346-00-00 ADD END

		// DataBeanの各コンボボックスをクリア
//		srvBean.getDataBeanArray(CKW01101SFConst.SELECT_CONT_SVC_FSTNM).clearArray();
//		srvBean.getDataBeanArray(CKW01101SFConst.SELECT_EOID_ID).clearArray();
//		srvBean.getDataBeanArray(CKW01101SFConst.SELECT_MLAD).clearArray();
//		srvBean.getDataBeanArray(CKW01101SFConst.SELECT_OPTIN_ML_FSTNM).clearArray();
		
		// DataBeanのメール送信履歴一覧照会リストをクリア
		srvBean.getDataBeanArray(CKW01101SFConst.ML_SENDNO_LIST).clearArray();
		
		// 検索条件を作成する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		X31SDataBeanAccess[] paramBean = { srvBean };
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0021");
		CKSV0021_CKSV0021OPDBMapper mapper = new CKSV0021_CKSV0021OPDBMapper();
		mapper.setCKSV002101SC(paramBean, inputMap, "2");
		// ANK-4346-00-00 MOD START
		//mapper.setCKSV002101CC(paramBean, inputMap, "1");
		// #84127 MOD START
		//mapper.setCKSV002101CC(paramBean, inputMap, "2");
		// ANK-4346-00-00 MOD END
		mapper.setCKSV002101CC(paramBean, inputMap, "1");
		// #84127 MOD END

		
		// 検索条件の有無によって、初期検索か条件設定検索かを判断する
		boolean syokiKensakuFlg = false;
		sb = new StringBuilder();
		sb.append(srvBean.sendMessageString(CKW01101SFConst.CONT_SVC_CD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.EOID_ID_BK, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.MLAD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.MAIL_CD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_STAYMD, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEND_ENDYMD, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4346-00-00 ADD START
		sb.append(srvBean.sendMessageString(CKW01101SFConst.SEARCH_TRGT_MAIL, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4346-00-00 ADD END

		if("".equals(sb.toString()) || sb.toString() == null)
		{
			syokiKensakuFlg = true;
		}
		
		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", "CKSV002101CC", inputMap);
		
		// サービスの呼び出し
		X31CMessageResult result = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理
		if(result != null)
		{
			JCCWebCommon.setMessageInfo(this, result);
			return outputMap;
		}
		
		// サービス結果の転記
		mapper.getCKSV002101SC(paramBean, outputMap);
		
		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("CKSV002101CC", outputMap);
/* ++++++++++ v5.00.00 削除開始 ++++++++++ */
//		X31SDataBeanAccessArray beanArray = srvBean.getDataBeanArray(CKW01101SFConst.CUST_LIST);
//		String custStat = beanArray.getDataBean(0).sendMessageString(CKW01101SFConst.CUST_STAT_07, X31CWebConst.DATABEAN_GET_VALUE);
//
//		// お客様ステータスが[010](登録済)、[100](受付済)以外の場合
//		if(!(JCKCommonConst.CUST_STAT_01.equals(custStat) || JCKCommonConst.CUST_STAT_02.equals(custStat)))
//		{
//			String[] msg = {"お客様", "eoIDを退会済", "再送信依頼が"};
//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0290_JW, msg);
//			
//			// メール送信履歴一覧照会リストを非表示にする
//			//srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
//		} 
/* ++++++++++ v5.00.00 削除終了 ++++++++++ */
		
		if("1".equals(searchErrFlg) && syokiKensakuFlg)
		{
			// 初期検索結果が0件の場合、エラーを表示する
			String[] msg = {"メール情報", "メールの送信履歴"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, msg);
			
			// メール送信履歴一覧照会リストを非表示にする
			srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		else if("1".equals(searchErrFlg) && !syokiKensakuFlg)
		{
			// 検索結果が0件のエラーメッセージを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			
			// メール送信履歴一覧照会リストを非表示にする
			srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		else if("2".equals(searchErrFlg))
		{
			// 検索結果が最大検索件数超えのエラーメッセージを表示する
			String[] msg = {JCCWebCommon.getSearchConst("CKW01101_MAX_SHOW_CNT")};

			// ANK-4346-00-00 MOD START
			// JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msg);
			// コンテンツメール検索時のエラー件数を設定
			String[] msg_cont = {"200"};
			HashMap<String, Object> inMap_cont = (HashMap<String, Object>)inputMap.get("CKSV002101CC");

			String key_search_trgt_mail = (String)inMap_cont.get("key_search_trgt_mail");

			// コンテンツメールの検索の場合、コンテンツメール取得処理を行う。
			if (JCKStrConst.SEARCH_TRGT_MAIL_CONT.equals(key_search_trgt_mail)) 
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msg_cont);
			}
			else
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msg);
			}
// ANK-4346-00-00 MOD END
			
			// メール送信履歴一覧照会リストを非表示にする
			srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			
			// 各コンボボックスのマッピングのためサービス結果の転記
			mapper.getCKSV002101CC(paramBean, outputMap);
		}
		else if("3".equals(searchErrFlg))
		{
			// 表示ページに該当するデータがない場合、エラーを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
			
			// メール送信履歴一覧照会リストを表示する
			srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
// ANK-4346-00-00 ADD START
		else if("4".equals(searchErrFlg))
		{
			HashMap templateMap = (HashMap)outputMap.get("CKSV002101CC");
			String returnCode = (String)templateMap.get("return_code");

			if(returnCode == null||"".equals(returnCode))
			{
				 // CCMG連携に失敗した場合
				JCCWebCommon.setMessageInfo(this, "EKBF970-KW",
						new String[] {"CCMG連携"});
				srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
			else
			{
				JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
						new String[] { "CCMG連携（コンテンツメール情報取得）", "CCMGエラーコード:" + returnCode });
				// メール送信履歴一覧照会リストを表示する
				srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);

			}
		}
// ANK-4346-00-00 ADD END
		else
		{
			// メール送信履歴一覧照会リストを表示する
			srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		
		// メール送信履歴一覧照会リストが表示状態の場合、サービスから値を設定する
		if(srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// サービス結果の転記
			mapper.getCKSV002101CC(paramBean, outputMap);
			
			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "0", "CKSV002101CC", outputMap);
			
			// 検索のコマンドIDを設定する
			JCCWebCommon.setSearchCommand(this, "B_CHANGE_PAGE");
		}
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW01101);
		// 遷移先の画面名を共有フォームBeanの項目に設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_NAME_CKW01101);
		
		return outputMap;
	}
	
	/**
	 * 各コンボボックスの選択状態を設定
	 * <br>
	 * @param srvBean サービスフォームBean
	 * @param outputMap サービス結果
	 * @return 
	 * @throws Exception エラーが発生した場合
	 */
	private void setSelectIndexToComboBox(X31SDataBeanAccess srvBean, HashMap<String, Object> outputMap) throws Exception
	{
		// 検索エラーフラグを取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("CKSV002101CC", outputMap);
		
		// メール送信履歴一覧照会リストが表示状態、もしくは最大検索件数超えエラーの場合
		if(srvBean.sendMessageBoolean(CKW01101SFConst.UM_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				|| "2".equals(searchErrFlg))
		{
			X31SDataBeanAccess contSvcFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_CONT_SVC_FSTNM).getDataBean(0);
			X31SDataBeanAccess eoidBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_EOID_ID).getDataBean(0);
			X31SDataBeanAccess mladBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_MLAD).getDataBean(0);
			X31SDataBeanAccess optinMlFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_OPTIN_ML_FSTNM).getDataBean(0);
			
			int contSvcFstnmCount = (Integer)contSvcFstnmBean.sendMessage(CKW01101SFConst.CONT_SVC_CD_01, X31CModelCommon.GET_COUNT);
			int eoidCount = (Integer)eoidBean.sendMessage(CKW01101SFConst.EOID_ID_02, X31CModelCommon.GET_COUNT);
			int mladCount = (Integer)mladBean.sendMessage(CKW01101SFConst.MLAD_03, X31CModelCommon.GET_COUNT);
			int optinMlFstnmCount = (Integer)optinMlFstnmBean.sendMessage(CKW01101SFConst.MAIL_CD_04, X31CModelCommon.GET_COUNT);
			
			String listCd = null;
			String bkContSvcCd = srvBean.sendMessageString(CKW01101SFConst.CONT_SVC_CD_BK, X31CWebConst.DATABEAN_GET_VALUE);
			String bkEoid = srvBean.sendMessageString(CKW01101SFConst.EOID_ID_BK, X31CWebConst.DATABEAN_GET_VALUE);
			String bkMlad = srvBean.sendMessageString(CKW01101SFConst.MLAD_BK, X31CWebConst.DATABEAN_GET_VALUE);
			String bkMailCd = srvBean.sendMessageString(CKW01101SFConst.MAIL_CD_BK, X31CWebConst.DATABEAN_GET_VALUE);
			
			for (int i = 0; i < contSvcFstnmCount; i++)
			{
				listCd = contSvcFstnmBean.sendMessageString(CKW01101SFConst.CONT_SVC_CD_01, X31CWebConst.DATABEAN_GET_VALUE, i);
				
				if(listCd.equals(bkContSvcCd))
				{
					contSvcFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
					break;
				}
				
				// バックアップと一致するコードがリストになかった場合、先頭を選択状態にする
				if(i + 1 >= contSvcFstnmCount)
				{
					contSvcFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
				}
			}
			
			for (int i = 0; i < eoidCount; i++)
			{
				listCd = eoidBean.sendMessageString(CKW01101SFConst.EOID_ID_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				
				if(listCd.equals(bkEoid))
				{
					eoidBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
					break;
				}
				
				// バックアップと一致するコードがリストになかった場合、先頭を選択状態にする
				if(i + 1 >= eoidCount)
				{
					eoidBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
				}
			}
			
			for (int i = 0; i < mladCount; i++)
			{
				listCd = mladBean.sendMessageString(CKW01101SFConst.MLAD_03, X31CWebConst.DATABEAN_GET_VALUE, i);
				
				if(listCd.equals(bkMlad))
				{
					mladBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_03, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
					break;
				}
				
				// バックアップと一致するコードがリストになかった場合、先頭を選択状態にする
				if(i + 1 >= mladCount)
				{
					mladBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_03, X31CWebConst.DATABEAN_SET_VALUE, "0");
				}
			}
			
			for (int i = 0; i < optinMlFstnmCount; i++)
			{
				listCd = optinMlFstnmBean.sendMessageString(CKW01101SFConst.MAIL_CD_04, X31CWebConst.DATABEAN_GET_VALUE, i);
				
				if(listCd.equals(bkMailCd))
				{
					optinMlFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
					break;
				}
				
				// バックアップと一致するコードがリストになかった場合、先頭を選択状態にする
				if(i + 1 >= optinMlFstnmCount)
				{
					optinMlFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
				}
			}
		}
		else
		{
			// コンボボックス検索フラグがtrueの場合(初期検索処理の場合)
			if(srvBean.sendMessageBoolean(CKW01101SFConst.COMBO_SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// DataBeanの各コンボボックスをクリア
				srvBean.getDataBeanArray(CKW01101SFConst.SELECT_CONT_SVC_FSTNM).clearArray();
				srvBean.getDataBeanArray(CKW01101SFConst.SELECT_EOID_ID).clearArray();
				srvBean.getDataBeanArray(CKW01101SFConst.SELECT_MLAD).clearArray();
				srvBean.getDataBeanArray(CKW01101SFConst.SELECT_OPTIN_ML_FSTNM).clearArray();
				
				// 各プルダウンに空白選択肢を追加
				X31SDataBeanAccess contSvcFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_CONT_SVC_FSTNM).addDataBean();
				X31SDataBeanAccess eoidBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_EOID_ID).addDataBean();
				X31SDataBeanAccess mladBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_MLAD).addDataBean();
				X31SDataBeanAccess optinMlFstnmBean = srvBean.getDataBeanArray(CKW01101SFConst.SELECT_OPTIN_ML_FSTNM).addDataBean();
				
				contSvcFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
				contSvcFstnmBean.sendMessageString(CKW01101SFConst.CONT_SVC_CD_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
				contSvcFstnmBean.sendMessageString(CKW01101SFConst.CONT_SVC_FSTNM_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
				
				eoidBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
				eoidBean.sendMessageString(CKW01101SFConst.EOID_ID_02, X31CWebConst.DATABEAN_ADD_VALUE, "");
				
				mladBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_03, X31CWebConst.DATABEAN_SET_VALUE, "0");
				mladBean.sendMessageString(CKW01101SFConst.MLAD_03, X31CWebConst.DATABEAN_ADD_VALUE, "");
				
				optinMlFstnmBean.sendMessageString(CKW01101SFConst.SELECT_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
				optinMlFstnmBean.sendMessageString(CKW01101SFConst.MAIL_CD_04, X31CWebConst.DATABEAN_ADD_VALUE, "");
				optinMlFstnmBean.sendMessageString(CKW01101SFConst.OPTIN_ML_FSTNM_04, X31CWebConst.DATABEAN_ADD_VALUE, "");
			}
		}
		
	}
	
	/**
	 * <dd>メソッド名：引継情報データマップ取得
	 * <dd>メソッド説明：引数のサービスフォームBeanより引継情報データマップの生成を行う。
	 * <dd>備考：引継情報データタイプの可変項目はString[]のみ対応。
	 * @param bean サービスフォームBean
	 * @param hktgiKey 引継情報データタイプのキー
	 * @param hktgiPrmKeys 引継情報データタイプの項目キーリスト
	 * @return HashMap<String, Object> 引継情報データマップ
	 */
	private HashMap<String, Object> getHktgiDataMap(X31SDataBeanAccess bean, String hktgiKey , String[] hktgiPrmKeys)
	{
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		List<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
		
		X31SDataBeanAccessArray infList =  bean.getDataBeanArray(hktgiKey);
		for (int i = 0 ; i < infList.getCount() ; i++)
		{
			HashMap<String, Object> inMap = new HashMap<String, Object>();
			
			X31SDataBeanAccess inf = infList.getDataBean(i);
			for (int j = 0 ; j < hktgiPrmKeys.length ; j++)
			{
				try
				{
					inMap.put(hktgiPrmKeys[j], inf.sendMessageObject(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE));
				}
				catch (X31SRuntimeException ex)
				{
					// 可変項目の場合(String[]のみ対応)
					int length = (Integer)inf.sendMessage(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_COUNT);
					String[] obj = new String[length];
					for (int k = 0 ; k < length ; k++)
					{
						obj[k] = inf.sendMessageString(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE, k);
					}
					inMap.put(hktgiPrmKeys[j], obj);
				}
			}
			dataList.add(inMap);
		}
		dataMap.put(hktgiKey, dataList);
		
		return dataMap;	
	}
	
}
