/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：取扱コードマスタ一覧照会
*   ソースファイル名：KKW10701SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年08月21日
*＜機能概要＞
*   指定した条件に該当する取扱コード情報の検索及び結果一覧を表示する。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/08/21     FJ        新規作成
*   v8.00.00    2014/02/20     FJ)北谷   代理店マスタメンテ検索条件追加
**********************************************************************/
package eo.web.webview.KKW10701SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKAgntScreenUtil;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0667_KKSV0667OPDBMapper;
import eo.web.webview.mapping.KKSV0668_KKSV0668OPDBMapper;

/**
 * 指定した条件に該当する取扱コード情報の検索及び結果一覧を表示します。
 * <BR>
 * 
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW10701SFLogic extends JCCWebBusinessLogic
{
	/** ページングのコマンドID:取扱コードマスタ一覧 */
	private static final String SEARCH_CMD = "paging";

	/** 適用中情報を表すマーク */
	private static final String RSV_INF_MARK_APLY = "*";

	/** 予約情報を表すマーク */
	private static final String RSV_INF_MARK = "**";

	/** 一覧部の奇数行のスタイル */
	private static final String ROW_STYLE_ODD = "odd";

	/** 一覧部の偶数行のスタイル */
	private static final String ROW_STYLE_EVEN = "even";
	
	/** 代理店一意検索サービス */
	private static final String KKSV0096 = "KKSV0096";

	/** 適用中フラグ　適用中ではない */
	private static final String TEKIYO_CHU_FLG_NO = "0";

	/**
	 * 初期表示時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionInit() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };

		// 初期表示サービス呼出処理
		init(paramBean);

		// 画面情報を取得
		HashMap<String, Object> screenInfoMap = JCCWebCommon.getScreenInfo(this);

		// 初期表示の場合
		if (null == screenInfoMap)
		{
			// 一覧選択行インデックスを初期化
			setString(bean, KKW10701SFConst.LIST_SELECT_INDEX, "0");
		}
		// 遷移先画面から一覧照会に戻った場合
		else
		{
			if (!isEmptySearchJoken(paramBean[0]))
			{
				// 再検索に設定（確認メッセージ表示件数を超えた場合でも確認メッセージを表示しない）
				setBoolean(paramBean[0], KKW10701SFConst.RE_SEARCH_FLG, true);
	
				// 一覧検索サービス呼出処理を実行
				searchList(paramBean);
			}
		}

		// 自画面の画面ID、画面名を設定 ※メインメニューからの遷移の場合、画面IDを設定しないと自画面遷移でエラーになる
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10701);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10701);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}


	/**
	 * 検索ボタン押下時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionSearch() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };

		// プルダウンの選択値を取得
		setString(bean, KKW10701SFConst.INCNTV_PAY_HASSEI_CD, getPulldownSelVal(bean, KKW10701SFConst.INCNTV_PAY_HASSEI_CD_LIST));
		setString(bean, KKW10701SFConst.FRNT_LOGIN_CTRL_CD, getPulldownSelVal(bean, KKW10701SFConst.FRNT_LOGIN_CTRL_CD_LIST));
		setString(bean, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD, getPulldownSelVal(bean, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD_LIST));
		setString(bean, KKW10701SFConst.TRAT_CD_BRI_CD, getPulldownSelVal(bean, KKW10701SFConst.TRAT_CD_BRI_CD_LIST));
		setString(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD, getPulldownSelVal(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST));

		// 検索条件の設定（検索ボタン押下時のみ、画面入力内容を検索条件に保持する）
		// 検索条件＿代理店コード
		setString(bean, KKW10701SFConst.SEARCH_AGNT_CD, getString(bean, KKW10701SFConst.AGNT_CD));
		// 検索条件＿代理店名
		setString(bean, KKW10701SFConst.SEARCH_AGNT_NM, getString(bean, KKW10701SFConst.AGNT_NM));
		// 検索条件＿部分一致（代理店名）
		setString(bean, KKW10701SFConst.SEARCH_AGNT_NM_PART_MATCH, convPartMatch(getBoolean(bean, KKW10701SFConst.AGNT_NM_PART_MATCH)));
		// 検索条件＿インセンティブ支払発生コード
		setString(bean, KKW10701SFConst.SEARCH_INCNTV_PAY_HASSEI_CD, getString(bean, KKW10701SFConst.INCNTV_PAY_HASSEI_CD));
		// 検索条件＿フロントログイン制御コード
		setString(bean, KKW10701SFConst.SEARCH_FRNT_LOGIN_CTRL_CD, getString(bean, KKW10701SFConst.FRNT_LOGIN_CTRL_CD));
		// 検索条件＿取扱コード用申込チャネルコード
		setString(bean, KKW10701SFConst.SEARCH_TRAT_CD_YO_MKM_CHANNEL_CD, getString(bean, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD));
		// 検索条件＿取扱コード分類コード
		setString(bean, KKW10701SFConst.SEARCH_TRAT_CD_BRI_CD, getString(bean, KKW10701SFConst.TRAT_CD_BRI_CD));
		// 検索条件＿取扱コード分類詳細コード
		setString(bean, KKW10701SFConst.SEARCH_TRAT_CD_BRI_DTL_CD, getString(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD));
		// 検索条件＿代理店大分類名
		setString(bean, KKW10701SFConst.SEARCH_AGNT_DBRI_NM, getString(bean, KKW10701SFConst.AGNT_DBRI_NM));
		// 検索条件＿部分一致（代理店大分類名）
		setString(bean, KKW10701SFConst.SEARCH_AGNT_DBRI_NM_PART_MATCH, convPartMatch(getBoolean(bean, KKW10701SFConst.AGNT_DBRI_NM_PART_MATCH)));
		// 検索条件＿代理店中分類名
		setString(bean, KKW10701SFConst.SEARCH_AGNT_CBRI_NM, getString(bean, KKW10701SFConst.AGNT_CBRI_NM));
		// 検索条件＿部分一致（代理店中分類名）
		setString(bean, KKW10701SFConst.SEARCH_AGNT_CBRI_NM_PART_MATCH, convPartMatch(getBoolean(bean, KKW10701SFConst.AGNT_CBRI_NM_PART_MATCH)));
		// ANK-1927-00-00 2014/02/20 ADD START
		// 検索条件＿契約所管部署コード
		setString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD, getString(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD));
		// ANK-1927-00-00 2014/02/20 ADD END
		// 検索条件＿契約申込所管組織コード名称
		setString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM, getString(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD_NM));
		// 検索条件＿部分一致（契約申込所管組織コード名称）
		setString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM_PART_MATCH, convPartMatch(getBoolean(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD_NM_PART_MATCH)));
		// 検索条件＿上位代理店コード
		setString(bean, KKW10701SFConst.SEARCH_JOI_AGNT_CD, getString(bean, KKW10701SFConst.JOI_AGNT_CD));

		// ページ情報のクリア
		JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW10701);

		// 一覧検索サービス呼出処理を実行
		searchList(paramBean);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * ページリンク時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionPaging() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = { bean };

		// 再検索に設定（確認メッセージ表示件数を超えた場合でも確認メッセージを表示しない）
		setBoolean(paramBean[0], KKW10701SFConst.RE_SEARCH_FLG, true);

		// 一覧選択行インデックスを初期化
		setString(bean, KKW10701SFConst.LIST_SELECT_INDEX, "0");

		// 一覧検索サービス呼出処理を実行
		searchList(paramBean);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * クリアボタン押下時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionClear() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// テキスト項目のクリア
		setString(bean, KKW10701SFConst.AGNT_CD, "");
		setString(bean, KKW10701SFConst.AGNT_NM, "");
		setString(bean, KKW10701SFConst.AGNT_DBRI_NM, "");
		setString(bean, KKW10701SFConst.AGNT_CBRI_NM, "");
		// ANK-1927-00-00 2014/02/20 ADD START
		setString(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD, "");
		// ANK-1927-00-00 2014/02/20 ADD END
		setString(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD_NM, "");
		setString(bean, KKW10701SFConst.JOI_AGNT_CD, "");
		setString(bean, KKW10701SFConst.JOI_AGNT_CD_NM, "");

		// チェックボックスのクリア
		setBoolean(bean, KKW10701SFConst.AGNT_NM_PART_MATCH, false);
		setBoolean(bean, KKW10701SFConst.AGNT_DBRI_NM_PART_MATCH, false);
		setBoolean(bean, KKW10701SFConst.AGNT_CBRI_NM_PART_MATCH, false);
		setBoolean(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD_NM_PART_MATCH, false);

		// プルダウンを未選択にする
		setPulldownIndex(bean, KKW10701SFConst.INCNTV_PAY_HASSEI_CD_LIST, "");
		setPulldownIndex(bean, KKW10701SFConst.FRNT_LOGIN_CTRL_CD_LIST, "");
		setPulldownIndex(bean, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD_LIST, "");
		// OT-2013-0000078 2013/02/08 ADD START
		// 申込区分１、申込区分２は初期化も行う
		JKKAgntScreenUtil.setChildPullDownList(bean, KKW10701SFConst.TRAT_CD_BRI_CD_ALL_LIST, KKW10701SFConst.TRAT_CD_BRI_CD_LIST, "");
		JKKAgntScreenUtil.setChildPullDownList(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_ALL_LIST, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST, "");
		// OT-2013-0000078 2013/02/08 ADD END
		setPulldownIndex(bean, KKW10701SFConst.TRAT_CD_BRI_CD_LIST, "");
		setPulldownIndex(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST, "");

		// 取扱コードマスタ一覧のクリア
		X31SDataBeanAccessArray agnt_list = bean.getDataBeanArray(KKW10701SFConst.AGNT_LIST);
		if (agnt_list != null)
		{
			agnt_list.clearArray();
		}

		// 一覧表示フラグ
		setBoolean(bean, KKW10701SFConst.LIST_DISP_FLG, false);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 新規登録ボタン押下時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionAdd() throws Exception
	{
		// 戻る際に必要な情報を設定
		setBackScreenInfo();

		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10702, JKKScreenConst.SCREEN_ID_KKW10701);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10704, JKKScreenConst.SCREEN_ID_KKW10701);

		// 共有情報Beanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 取扱コードマスタ登録画面(新規登録)へ遷移
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10702);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10702);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}


	/**
	 * コピー登録ボタン押下時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionCopyAdd() throws Exception
	{
		// 戻る際に必要な情報を設定
		setBackScreenInfo();

		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10702, JKKScreenConst.SCREEN_ID_KKW10701);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10704, JKKScreenConst.SCREEN_ID_KKW10701);

		// 遷移先画面への引継情報を設定
		setNextScreenInfo(JKKScreenConst.SCREEN_ID_KKW10702);

		// 共有情報Beanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 取扱コードマスタ登録画面(コピー登録)へ遷移
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10702);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10702);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 更新ボタン押下時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionUpd() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 更新不可チェック
		if (!checkUpd(bean))
		{
			return true;
		}

		// 戻る際に必要な情報を設定
		setBackScreenInfo();

		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10705, JKKScreenConst.SCREEN_ID_KKW10701);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10707, JKKScreenConst.SCREEN_ID_KKW10701);

		// 遷移先画面への引継情報を設定
		setNextScreenInfo(JKKScreenConst.SCREEN_ID_KKW10705);

		// 共有情報Beanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 取扱コードマスタ更新画面へ遷移
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10705);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10705);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 削除ボタン押下時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionDel() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 削除不可チェック
		if (!checkDel(bean))
		{
			return true;
		}

		// 戻る際に必要な情報を設定
		setBackScreenInfo();

		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10708, JKKScreenConst.SCREEN_ID_KKW10701);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10709, JKKScreenConst.SCREEN_ID_KKW10701);

		// 遷移先画面への引継情報を設定
		setNextScreenInfo(JKKScreenConst.SCREEN_ID_KKW10708);

		// 共有情報Beanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 取扱コードマスタ削除確認画面へ遷移
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10708);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10708);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 詳細ボタン押下時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionDtl() throws Exception
	{
		// 戻る際に必要な情報を設定
		setBackScreenInfo();

		// 戻り先画面IDを設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW10710, JKKScreenConst.SCREEN_ID_KKW10701);

		// 遷移先画面への引継情報を設定
		setNextScreenInfo(JKKScreenConst.SCREEN_ID_KKW10710);

		// 共有情報Beanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 取扱コードマスタ詳細画面へ遷移
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10710);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10710);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 申込チャネル選択変更時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionChgList1() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 選択された取扱コード用申込チャネルコードから始まる取扱コード分類コードのみを取得する
		String trat_cd_yo_mkm_channel_cd = getPulldownSelVal(bean, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD_LIST);
		JKKAgntScreenUtil.setChildPullDownList(bean, KKW10701SFConst.TRAT_CD_BRI_CD_ALL_LIST, KKW10701SFConst.TRAT_CD_BRI_CD_LIST, trat_cd_yo_mkm_channel_cd);
		JKKAgntScreenUtil.setChildPullDownList(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_ALL_LIST, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST, "");
		
		// OT-2013-0000078 2013/02/08 ADD START
		// 申込区分１を未選択にする。
		setPulldownIndex(bean, KKW10701SFConst.TRAT_CD_BRI_CD_LIST, "");
		// OT-2013-0000078 2013/02/08 ADD END

		// 共有情報Beanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 自画面へ遷移
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10701);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10701);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 申込区分１選択変更時の処理を行います。<br>
	 * 
	 * @return 正常に処理が終了した場合はtrue
	 * @throws Exception 例外が発生した場合
	 */
	public boolean actionChgList2() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 選択された取扱コード分類コードから始まる取扱コード分類詳細コードのみを取得する
		String trat_cd_bri_cd = getPulldownSelVal(bean, KKW10701SFConst.TRAT_CD_BRI_CD_LIST);
		JKKAgntScreenUtil.setChildPullDownList(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_ALL_LIST, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST, trat_cd_bri_cd);

		// 共有情報Beanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 自画面へ遷移
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW10701);
		setString(commonInfoBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW10701);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);

		return true;
	}

	/**
	 * 初期表示サービス呼出処理を行います。 <br>
	 * 
	 * @param paramBean データBean項目の配列
	 * @throws Exception 例外が発生した場合
	 */
	private void init(X31SDataBeanAccess[] paramBean) throws Exception
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0667);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0667OP);

		// 上りマッピング
		KKSV0667_KKSV0667OPDBMapper mapper = new KKSV0667_KKSV0667OPDBMapper();
		mapper.setKKSV066701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV066702SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV066703SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV066704SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV066705SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		mapper.setKKSV066706SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// 取扱コードマスタ一覧照会初期表示サービス
		invokeService(paramMap, inputMap, outputMap);

		// 下りマッピング
		mapper.getKKSV066706SC(paramBean, outputMap);

		// ※プルダウンリストの取得は、自動生成のマッピング処理は使わない
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10701SFConst.INCNTV_PAY_HASSEI_CD_LIST, "KKSV066701SC", true);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10701SFConst.FRNT_LOGIN_CTRL_CD_LIST, "KKSV066702SC", true);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD_LIST, "KKSV066703SC", true);

		// 動的にリスト項目を変更するプルダウンのデータは、全データを別に保持しておく
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10701SFConst.TRAT_CD_BRI_CD_ALL_LIST, "KKSV066704SC", true);
		JKKWebCommon.setPulldownListNoIndex(paramBean[0], outputMap, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_ALL_LIST, "KKSV066705SC", true);

		// 動的にリスト項目を変更するプルダウンのデータは空行のみを設定する
		JKKAgntScreenUtil.setChildPullDownList(paramBean[0], KKW10701SFConst.TRAT_CD_BRI_CD_ALL_LIST, KKW10701SFConst.TRAT_CD_BRI_CD_LIST, "");
		JKKAgntScreenUtil.setChildPullDownList(paramBean[0], KKW10701SFConst.TRAT_CD_BRI_DTL_CD_ALL_LIST, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST, "");
	}

	/**
	 * 一覧検索サービス呼出処理を行います。 <br>
	 * 
	 * @param paramBean データBean項目の配列
	 * @throws Exception 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void searchList(X31SDataBeanAccess[] paramBean) throws Exception
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		// 取扱コードマスタ一覧のクリア
		X31SDataBeanAccessArray agnt_list = paramBean[0].getDataBeanArray(KKW10701SFConst.AGNT_LIST);
		if (agnt_list != null)
		{
			agnt_list.clearArray();
		}

		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0668);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0668OP);

		boolean re_search_flg = getBoolean(paramBean[0], KKW10701SFConst.RE_SEARCH_FLG);

		// 最大検索件数
		String max_search_num = "";

		// 再検索の場合
		if (re_search_flg)
		{
			max_search_num = JCCWebCommon.getSearchConst("KKW10701_MAX_SHOW_CNT");
		}
		else
		{
			// 確認メッセージ表示件数
			max_search_num = getString(paramBean[0], KKW10701SFConst.CFM_MSG_DSP_NUM);
		}

		setString(paramBean[0], KKW10701SFConst.MAX_SEARCH_NUM, max_search_num);

		// 上りマッピング
		KKSV0668_KKSV0668OPDBMapper mapper = new KKSV0668_KKSV0668OPDBMapper();
		mapper.setKKSV066801SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", "KKSV066801SC", inputMap);

		// 取扱コードマスタ一覧照会検索サービス
		invokeService(paramMap, inputMap, outputMap);

		// 取得情報の下りマッピング
		mapper.getKKSV066801SC(paramBean, outputMap);

		// 総検索件数を取得
		int total_search_num = Integer.parseInt((String)((HashMap)outputMap.get("KKSV066801SC")).get("total_search_num"));

		// 再検索ではなく(1回目の検索)、総検索件数が最大検索件数を超えている場合
		if (!re_search_flg && total_search_num > Integer.parseInt(max_search_num))
		{
			// 確認メッセージをJavaScriptで表示
			setBoolean(paramBean[0], KKW10701SFConst.RE_SEARCH_FLG, true);
			// 一覧表示フラグを設定
			setBoolean(paramBean[0], KKW10701SFConst.LIST_DISP_FLG, false);
			return;
		}

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV066801SC", outputMap);

		// 一覧表示フラグ
		boolean list_disp_flg = true;

		// 検索結果が0件の場合の処理
		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			list_disp_flg = false;
		}
		// 検索結果が最大検索件数超えの場合の処理
		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			String[] msg = { JCCWebCommon.getSearchConst("KKW10701_MAX_SHOW_CNT") };
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msg);
			list_disp_flg = false;
		}
		// 表示ページに該当するデータがない場合の処理
		else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			// 再検索にて1ページ目を表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
		}

		if (list_disp_flg)
		{
			// 検索条件入力部の設定
			setSearchJoken(paramBean[0]);

			// 取扱コードマスタ一覧の編集
			editAgntList(paramBean[0]);

			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this, "0", "KKSV066801SC", outputMap);

			// ページングのコマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, SEARCH_CMD);
		}

		// 一覧表示フラグを設定
		setBoolean(paramBean[0], KKW10701SFConst.LIST_DISP_FLG, list_disp_flg);
		// 再検索フラグを設定
		setBoolean(paramBean[0], KKW10701SFConst.RE_SEARCH_FLG, false);
	}

	/**
	 * 検索条件入力項目に検索条件を設定します。 <br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @throws Exception 例外が発生した場合
	 */
	private void setSearchJoken(X31SDataBeanAccess bean) throws Exception
	{
		// テキスト項目
		setString(bean, KKW10701SFConst.AGNT_CD, getString(bean, KKW10701SFConst.SEARCH_AGNT_CD));
		setString(bean, KKW10701SFConst.AGNT_NM, getString(bean, KKW10701SFConst.SEARCH_AGNT_NM));
		setString(bean, KKW10701SFConst.AGNT_DBRI_NM, getString(bean, KKW10701SFConst.SEARCH_AGNT_DBRI_NM));
		setString(bean, KKW10701SFConst.AGNT_CBRI_NM, getString(bean, KKW10701SFConst.SEARCH_AGNT_CBRI_NM));
		// ANK-1927-00-00 2014/02/20 ADD START
		setString(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD, getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD));
		// ANK-1927-00-00 2014/02/20 ADD END
		setString(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD_NM, getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM));
		setString(bean, KKW10701SFConst.JOI_AGNT_CD, getString(bean, KKW10701SFConst.SEARCH_JOI_AGNT_CD));
		setString(bean, KKW10701SFConst.JOI_AGNT_CD_NM, "");	// 上位取扱コード名称は、一覧編集時に設定する

		// チェックボックス項目
		setBoolean(bean, KKW10701SFConst.AGNT_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_AGNT_NM_PART_MATCH)));
		setBoolean(bean, KKW10701SFConst.AGNT_DBRI_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_AGNT_DBRI_NM_PART_MATCH)));
		setBoolean(bean, KKW10701SFConst.AGNT_CBRI_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_AGNT_CBRI_NM_PART_MATCH)));
		setBoolean(bean, KKW10701SFConst.KEI_MKM_SHKN_ORG_CD_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM_PART_MATCH)));

		// プルダウン項目
		String search_incntv_pay_hassei_cd = getString(bean, KKW10701SFConst.SEARCH_INCNTV_PAY_HASSEI_CD);
		setString(bean, KKW10701SFConst.INCNTV_PAY_HASSEI_CD, search_incntv_pay_hassei_cd);
		setPulldownIndex(bean, KKW10701SFConst.INCNTV_PAY_HASSEI_CD_LIST, search_incntv_pay_hassei_cd);

		String search_frnt_login_ctrl_cd = getString(bean, KKW10701SFConst.SEARCH_FRNT_LOGIN_CTRL_CD);
		setString(bean, KKW10701SFConst.FRNT_LOGIN_CTRL_CD, search_frnt_login_ctrl_cd);
		setPulldownIndex(bean, KKW10701SFConst.FRNT_LOGIN_CTRL_CD_LIST, search_frnt_login_ctrl_cd);

		String search_trat_cd_yo_mkm_channel_cd = getString(bean, KKW10701SFConst.SEARCH_TRAT_CD_YO_MKM_CHANNEL_CD);
		setString(bean, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD, search_trat_cd_yo_mkm_channel_cd);
		setPulldownIndex(bean, KKW10701SFConst.TRAT_CD_YO_MKM_CHANNEL_CD_LIST, search_trat_cd_yo_mkm_channel_cd);

		String search_trat_cd_bri_cd = getString(bean, KKW10701SFConst.SEARCH_TRAT_CD_BRI_CD);
		setString(bean, KKW10701SFConst.TRAT_CD_BRI_CD, search_trat_cd_bri_cd);
		JKKAgntScreenUtil.setChildPullDownList(bean, KKW10701SFConst.TRAT_CD_BRI_CD_ALL_LIST,
				KKW10701SFConst.TRAT_CD_BRI_CD_LIST, search_trat_cd_yo_mkm_channel_cd);
		setPulldownIndex(bean, KKW10701SFConst.TRAT_CD_BRI_CD_LIST, search_trat_cd_bri_cd);

		String search_trat_cd_bri_dtl_cd = getString(bean, KKW10701SFConst.SEARCH_TRAT_CD_BRI_DTL_CD);
		setString(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD, search_trat_cd_bri_dtl_cd);
		JKKAgntScreenUtil.setChildPullDownList(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_ALL_LIST,
				KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST, search_trat_cd_bri_cd);
		setPulldownIndex(bean, KKW10701SFConst.TRAT_CD_BRI_DTL_CD_LIST, search_trat_cd_bri_dtl_cd);
	}

	/**
	 * 取扱コードマスタ一覧の編集を行います。 <br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 */
	private void editAgntList(X31SDataBeanAccess bean)
	{
		// 取扱コードマスタ一覧の取得
		X31SDataBeanAccessArray agnt_list = bean.getDataBeanArray(KKW10701SFConst.AGNT_LIST);

		if (null == agnt_list || 0 == agnt_list.getCount())
		{
			return;
		}

		// 検索条件に上位代理店コードが設定されている場合
		if (!JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_JOI_AGNT_CD)))
		{
			// 一覧の1行目から取得した上位代理店コード名称を検索条件部に設定
			setString(bean, KKW10701SFConst.JOI_AGNT_CD_NM, getString(agnt_list.getDataBean(0), KKW10701SFConst.JOI_AGNT_CD_NM_02));
		}

		// 取扱コードマスタ一覧の件数分繰り返す
		for (int i = 0; i < agnt_list.getCount(); i++)
		{
			// 取扱コードマスタ情報の取得
			X31SDataBeanAccess agnt_subbean = agnt_list.getDataBean(i);

			// 行スタイルの設定
			if ((i + 1) % 2 == 1)
			{
				// 奇数行
				setString(agnt_subbean, KKW10701SFConst.ROW_STYLE_02, ROW_STYLE_ODD);
			}
			else
			{
				// 偶数行
				setString(agnt_subbean, KKW10701SFConst.ROW_STYLE_02, ROW_STYLE_EVEN);
			}

			// 予約情報の編集
			String rsv_aply_ymd = convDate(getString(agnt_subbean, KKW10701SFConst.RSV_APLY_YMD_02));
			String agnt_tstaymd = convDate(getString(agnt_subbean, KKW10701SFConst.AGNT_TSTAYMD_02));
			String agnt_tendymd = convDate(getString(agnt_subbean, KKW10701SFConst.AGNT_TENDYMD_02));

			// 予約のデータである場合
			String opeDate = JCCWebCommon.getOpeDate(this, null);
			if (JKKAgntScreenUtil.isRsvAgnt(rsv_aply_ymd, agnt_tstaymd, agnt_tendymd, opeDate))
			{
				// 予約状態情報を表すマークを設定
				setString(agnt_subbean, KKW10701SFConst.RSV_INF_MARK_02, RSV_INF_MARK);
			}
			else
			if (!TEKIYO_CHU_FLG_NO.equals(getString(agnt_subbean, KKW10701SFConst.TEKIYO_CHU_FLG_02)))
			{
				// 適用中状態情報を表すマークを設定
				setString(agnt_subbean, KKW10701SFConst.RSV_INF_MARK_02, RSV_INF_MARK_APLY);
			}

			// 日付項目を表示用に編集
			setString(agnt_subbean, KKW10701SFConst.RSV_APLY_YMD_02, JKKAgntScreenUtil.getDispDate(rsv_aply_ymd));
			setString(agnt_subbean, KKW10701SFConst.AGNT_TSTAYMD_02, JKKAgntScreenUtil.getDispDate(agnt_tstaymd));
			setString(agnt_subbean, KKW10701SFConst.AGNT_TENDYMD_02, JKKAgntScreenUtil.getDispDate(agnt_tendymd));
		}
	}

	/**
	 * 取扱コードマスタ更新画面遷移前のチェックを行います。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @return チェックOKの場合はtrue、NGの場合はfalse
	 */
	@SuppressWarnings("unchecked")
	private boolean checkUpd(X31SDataBeanAccess bean)
	{
		boolean check = true;

		// 一覧の選択行を取得
		String list_select_index = getString(bean, KKW10701SFConst.LIST_SELECT_INDEX);

		if (null != list_select_index && !"".equals(list_select_index))
		{
			// 選択行の代理店情報を取得
			X31SDataBeanAccessArray agnt_list = bean.getDataBeanArray(KKW10701SFConst.AGNT_LIST);
			X31SDataBeanAccess subbean = agnt_list.getDataBean(Integer.parseInt(list_select_index));

			// 適用中の場合
			if (RSV_INF_MARK_APLY.equals(getString(subbean, KKW10701SFConst.RSV_INF_MARK_02)))
			{
				HashMap ekk0061a010 = getEKK0061A010(null, getString(subbean, KKW10701SFConst.AGNT_CD_02), JKKStrConst.END_YMD_DEFAULT);
				if (ekk0061a010 != null)
				{
					String rsv_aply_ymd = (String)ekk0061a010.get("rsv_aply_ymd");
					String agnt_tstaymd = (String)ekk0061a010.get("agnt_tstaymd");
					String agnt_tendymd = (String)ekk0061a010.get("agnt_tendymd");

					// 予約データありの場合
					if (JKKAgntScreenUtil.isRsvAgnt(rsv_aply_ymd, agnt_tstaymd, agnt_tendymd, JCCWebCommon.getOpeDate(this, null)))
					{
						// エラーメッセージ表示
						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1040_JW,
							new String[]{"選択明細", "予約がある適用中データ", "更新"});

						check = false;
					}
				}
			}
			// （適用中、または）履歴の場合（予約ではない場合）
			else
			if (!RSV_INF_MARK.equals(getString(subbean, KKW10701SFConst.RSV_INF_MARK_02)))
			{
				// エラーメッセージ表示
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1040_JW,
					new String[]{"選択明細", "履歴データ", "更新"});

				check = false;
			}
		}

		return check;
	}

	/**
	 * 取扱コードマスタ削除確認画面遷移前のチェックを行います。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @return チェックOKの場合はtrue、NGの場合はfalse
	 */
	private boolean checkDel(X31SDataBeanAccess bean)
	{
		boolean check = true;

		// 一覧の選択行を取得
		String list_select_index = getString(bean, KKW10701SFConst.LIST_SELECT_INDEX);

		if (null != list_select_index && !"".equals(list_select_index))
		{
			// 選択行の代理店情報を取得
			X31SDataBeanAccessArray agnt_list = bean.getDataBeanArray(KKW10701SFConst.AGNT_LIST);
			X31SDataBeanAccess subbean = agnt_list.getDataBean(Integer.parseInt(list_select_index));

			// 適用中の場合
			if (RSV_INF_MARK_APLY.equals(getString(subbean, KKW10701SFConst.RSV_INF_MARK_02)))
			{
				// エラーメッセージ表示
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1040_JW,
					new String[]{"選択明細", "適用中データ", "削除"});

				check = false;
			}
			// （適用中、または）履歴の場合（予約ではない場合）
			else
			if (!RSV_INF_MARK.equals(getString(subbean, KKW10701SFConst.RSV_INF_MARK_02)))
			{
				// エラーメッセージ表示
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1040_JW,
					new String[]{"選択明細", "履歴データ", "削除"});

				check = false;
			}
		}

		return check;
	}

	/**
	 * 遷移先画面から自画面へ戻る際に必要な情報を設定します。<br>
	 * 
	 */
	private void setBackScreenInfo()
	{
		// 画面情報マップ
		HashMap<String, Object> map = new HashMap<String, Object>();

		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 検索条件の保持
		map.put(KKW10701SFConst.SEARCH_AGNT_CD, getString(bean, KKW10701SFConst.SEARCH_AGNT_CD));
		map.put(KKW10701SFConst.SEARCH_AGNT_NM, getString(bean, KKW10701SFConst.SEARCH_AGNT_NM));
		map.put(KKW10701SFConst.SEARCH_INCNTV_PAY_HASSEI_CD, getString(bean, KKW10701SFConst.SEARCH_INCNTV_PAY_HASSEI_CD));
		map.put(KKW10701SFConst.SEARCH_FRNT_LOGIN_CTRL_CD, getString(bean, KKW10701SFConst.SEARCH_FRNT_LOGIN_CTRL_CD));
		map.put(KKW10701SFConst.SEARCH_TRAT_CD_YO_MKM_CHANNEL_CD, getString(bean, KKW10701SFConst.SEARCH_TRAT_CD_YO_MKM_CHANNEL_CD));
		map.put(KKW10701SFConst.SEARCH_TRAT_CD_BRI_CD, getString(bean, KKW10701SFConst.SEARCH_TRAT_CD_BRI_CD));
		map.put(KKW10701SFConst.SEARCH_TRAT_CD_BRI_DTL_CD, getString(bean, KKW10701SFConst.SEARCH_TRAT_CD_BRI_DTL_CD));
		map.put(KKW10701SFConst.SEARCH_AGNT_DBRI_NM, getString(bean, KKW10701SFConst.SEARCH_AGNT_DBRI_NM));
		map.put(KKW10701SFConst.SEARCH_AGNT_CBRI_NM, getString(bean, KKW10701SFConst.SEARCH_AGNT_CBRI_NM));
		// ANK-1927-00-00 2014/02/20 ADD START
		map.put(KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD, getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD));
		// ANK-1927-00-00 2014/02/20 ADD END
		map.put(KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM, getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM));
		map.put(KKW10701SFConst.SEARCH_JOI_AGNT_CD, getString(bean, KKW10701SFConst.SEARCH_JOI_AGNT_CD));

		map.put(KKW10701SFConst.SEARCH_AGNT_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_AGNT_NM_PART_MATCH)));
		map.put(KKW10701SFConst.SEARCH_AGNT_DBRI_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_AGNT_DBRI_NM_PART_MATCH)));
		map.put(KKW10701SFConst.SEARCH_AGNT_CBRI_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_AGNT_CBRI_NM_PART_MATCH)));
		map.put(KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM_PART_MATCH, convPartMatch(getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM_PART_MATCH)));

		map.put(KKW10701SFConst.LIST_SELECT_INDEX, getString(bean, KKW10701SFConst.LIST_SELECT_INDEX));

		// 自画面の情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW10701, map);
	}

	/**
	 * 遷移先画面への引継情報を設定します。<br>
	 * 
	 * @param nextScreenId 遷移先画面の画面ID
	 */
	private void setNextScreenInfo(String nextScreenId)
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 引継情報
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> subParamMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> paramList = new ArrayList<HashMap<String, Object>>();

		// 一覧の選択行を取得
		String list_select_index = getString(bean, KKW10701SFConst.LIST_SELECT_INDEX);

		if (null != list_select_index && !"".equals(list_select_index))
		{
			// 選択行の代理店情報を取得
			X31SDataBeanAccessArray agnt_list = bean.getDataBeanArray(KKW10701SFConst.AGNT_LIST);
			X31SDataBeanAccess agnt_subbean = agnt_list.getDataBean(Integer.parseInt(list_select_index));

			// 引継項目：代理店コード
			subParamMap.put(KKW10701SFConst.AGNT_CD_03, getString(agnt_subbean, KKW10701SFConst.AGNT_CD_02));
			// 引継項目：世代登録年月日時分秒
			subParamMap.put(KKW10701SFConst.GENE_ADD_DTM_03, getString(agnt_subbean, KKW10701SFConst.GENE_ADD_DTM_02));
		}

		paramList.add(subParamMap);

		paramMap.put(KKW10701SFConst.SELECT_AGNT_HKTGI_LIST, paramList);

		// 遷移先画面に引継情報を設定
		JCCWebCommon.setScreenInfo(this, nextScreenId, paramMap);
	}

	/**
	 * 部分一致項目の真偽値をサービス呼び出し用の部分一致の値に変換します。<br>
	 * 
	 * @param partMatch 部分一致項目の真偽値
	 * @return サービス呼び出し用の部分一致の値
	 */
	private String convPartMatch(boolean partMatch) {
		return partMatch ? "1" : "0";
	}

	/**
	 * サービス呼び出し用の部分一致の値を部分一致項目の真偽値に変換します。<br>
	 * 
	 * @param partMatch サービス呼び出し用の部分一致の値
	 * @return 部分一致項目の真偽値
	 */
	private boolean convPartMatch(String partMatch) {
		return "1".equals(partMatch) ? true : false;
	}

	/**
	 * プルダウンの添え字を、選択コード値のインデックスに設定します。 <br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID プルダウンリストのコンポーネントID
	 * @param selectedCode 選択コード値
	 */
	private void setPulldownIndex(X31SDataBeanAccess bean, String componentID, String selectedCode)
	{
		String selectedIndex = JKKWebCommon.getPullDownIndex(bean, selectedCode, componentID, KKW10701SFConst.CD_DIV_LIST_01);
		if (null == selectedIndex || "".equals(selectedIndex))
		{
			selectedIndex = "0";
		}
		// プルダウンデータBeanの取得
		X31SDataBeanAccess subbean = bean.getDataBeanArray(componentID).getDataBean(0);
		setString(subbean, KKW10701SFConst.INDEX_01, selectedIndex);
	}

	/**
	 * プルダウンで選択されたコード値を取得します。 <br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID プルダウンリストのコンポーネントID
	 * @return 選択されたコード値
	 */
	private String getPulldownSelVal(X31SDataBeanAccess bean, String componentID)
	{
		return JKKWebCommon.getPullDownCode(bean, componentID, KKW10701SFConst.INDEX_01, KKW10701SFConst.CD_DIV_LIST_01);
	}

	/**
	 * 日付表示用書式yyyy/mm/ddからyyyymmddに変換します。<br>
	 * 
	 * @param dispDate 日付書式yyyy/mm/ddの文字列
	 * @return yyyymmddに変換した値
	 */
	private String convDate(String dispDate)
	{
		String yyyymmdd = dispDate;

		if (null != dispDate)
		{
			yyyymmdd = dispDate.replaceAll("/", "");
		}

		return yyyymmdd;
	}

	/**
	 * 検索条件が設定されているかどうかを判定します。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @return 検索条件が1つも設定されていない場合はtrue、そうでない場合はfalse
	 */
	private boolean isEmptySearchJoken(X31SDataBeanAccess bean)
	{
		boolean isEmpty = false;

		// 検索条件が1つも設定されていない場合
		if (JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_AGNT_CD))
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_AGNT_NM))
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_INCNTV_PAY_HASSEI_CD))
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_FRNT_LOGIN_CTRL_CD))
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_TRAT_CD_YO_MKM_CHANNEL_CD))
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_AGNT_DBRI_NM))
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_AGNT_CBRI_NM))
			// ANK-1927-00-00 2014/02/20 ADD START
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD))
			// ANK-1927-00-00 2014/02/20 ADD END
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_KEI_MKM_SHKN_ORG_CD_NM))
			&& JKKAgntScreenUtil.isNull(getString(bean, KKW10701SFConst.SEARCH_JOI_AGNT_CD)))
		{
			isEmpty = true;
		}

		return isEmpty;
	}

	/**
	 * データBeanのString項目から値を取得します。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID アクセスするデータBeanの項目名
	 * @return 取得した値
	 */
	private String getString(X31SDataBeanAccess bean, String componentID)
	{
		return bean.sendMessageString(componentID, X31CWebConst.DATABEAN_GET_VALUE);
	}

	/**
	 * データBeanのString項目に値を設定します。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID アクセスするデータBeanの項目名
	 * @param val 設定する値
	 */
	private void setString(X31SDataBeanAccess bean, String componentID, String val)
	{
		bean.sendMessageString(componentID, X31CWebConst.DATABEAN_SET_VALUE, val);
	}

	/**
	 * データBeanのBoolean項目から値を取得します。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID アクセスするデータBeanの項目名
	 * @return 取得した値
	 */
	private boolean getBoolean(X31SDataBeanAccess bean, String componentID)
	{
		return bean.sendMessageBoolean(componentID, X31CWebConst.DATABEAN_GET_VALUE);
	}

	/**
	 * データBeanのBoolean項目に値を設定します。<br>
	 * 
	 * @param bean データBeanのアクセスクラス
	 * @param componentID アクセスするデータBeanの項目名
	 * @param b 設定する値
	 */
	private void setBoolean(X31SDataBeanAccess bean, String componentID, boolean b) {
		bean.sendMessageBoolean(componentID, X31CWebConst.DATABEAN_SET_VALUE, b);
	}
	
	/**
	 * 取扱コード、運用日より代理店のカレントレコードを取得します。
	 * <br>
	 * @param  paramBean  DataBean項目の配列
	 * @param agntCd 取扱コード
	 * @param opeDate 運用日
	 * @return 世代登録年月日時分秒
	 */
	@SuppressWarnings("unchecked")
	private HashMap getEKK0061A010(X31SDataBeanAccess[] paramBean, String agntCd, String opeDate)
	{
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, KKSV0096);
		
		// マッピングデータクラスのインスタンスを生成
		HashMap dataMap = new HashMap();
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put("func_code", JPCModelConstant.FUNC_CD_2);
		// 代理店コード → 代理店一意照会.ＫＥＹ＿代理店コード
		parentMap.put("key_agnt_cd", agntCd);
		// 運用日付 → 代理店一意照会.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", opeDate);

		dataMap.put("KKSV009601SC", parentMap);
		
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		try
		{
			// 検索処理呼出
			X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
			if (msgResult != null)
			{
				return null;
			}
		}
		catch (Exception e)
		{
			// エラー時はnullを返却するため、エラー処理を行わずに
			// 正常終了する。
			;
		}
		
		parentMap = null;
		if(outputMap.containsKey("KKSV009601SC")){
			parentMap = (HashMap)outputMap.get("KKSV009601SC");
		}

		ArrayList childList = null;
		
		if(parentMap != null && parentMap.containsKey("EKK0061A010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0061A010CBSMsg1List");
			if (childList.size() > 0) {
				return (HashMap)childList.get(0);
			}
		}
		return null;
	}
}
