/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW10401SFLogic
*   ソースファイル名：KKW10401SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年06月13日
*＜機能概要＞
*  オプションチャンネル受付履歴一覧照会画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/18   FJ）木下    新規作成
*   v3.00.00    2012/02/24   FJ）馬場    SUB2対応
*   v4.00.00    2012/12/19   FJ）野口   【IT1-2012-0002486】対応
*   v6.00.00    2014/01/10   FJ）中井   【OM-2013-0000451】対応
*   v7.00.00    2014/01/27   FJ）中井   【OM-20132-0000451】（２月案件）対応
*
**********************************************************************/

package eo.web.webview.KKW10401SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

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.JPCOnlineMessageConstant;
import eo.common.util.JPCDateUtil;
import eo.common.util.JPCEditString;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0510_KKSV0510OPDBMapper;
import eo.web.webview.mapping.KKSV0511_KKSV0511OPDBMapper;
import eo.web.webview.mapping.KKSV0515_KKSV0515OPDBMapper;
import eo.web.webview.mapping.KKSV0791_KKSV0791OPDBMapper;

/**
 * KKW10401のビューロジックです。<p>
 * <BR>
 * @author 富士通
 */
public class KKW10401SFLogic 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 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 運用日付の取得
		String opeDt = JCCWebCommon.getOpeDate(this, null);
		String opeZenDt = JPCDateUtil.addDay(opeDt, -1);
		
		// 申込受付年月日の設定
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_FROM, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(opeZenDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_FROM, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(opeZenDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_FROM, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(opeZenDt));
		
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_TO, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(opeDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_TO, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(opeDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_TO, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(opeDt));
		
		// サービスに使用する基準日の設定
		serviceBean.sendMessageString(KKW10401SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, opeDt);
		
		// 検索条件を作成する
		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 = { serviceBean };
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0510");
		KKSV0510_KKSV0510OPDBMapper mapper = new KKSV0510_KKSV0510OPDBMapper();
		mapper.setKKSV051001SC(paramBean, inputMap, "1");
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// ■ サービス結果の転記
		mapper.getKKSV051001SC(paramBean, outputMap);
		mapper.getKKSV051002SC(paramBean, outputMap);
		
		// 画面情報を取得し、サービスフォームBeanに設定する
		HashMap<String, Object> screenInfoMap = JCCWebCommon.getScreenInfo(this);
		
		// 画面情報が取得できた場合（メニュー画面以外から遷移）
		if(screenInfoMap != null)
		{	
			// 各コンボボックスの選択状態を復帰
			selectComboBox(serviceBean);
			
			// 前回検索したページリンク情報をセッションから削除
			JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW10401);
			
			// 入力された検索条件の退避
			setBackInput(serviceBean);
			
			// 検索、ページリンク共通処理
			searchCommon(serviceBean);
		}
		
		// 遷移先の画面ID、画面名を共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10401);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10401);
		
		return true;
	}
	
	/**
	 * 検索ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean search() throws Exception 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 前回検索したページリンク情報をセッションから削除
		JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW10401);
		
		// 入力された検索条件の退避
		setBackInput(serviceBean);
		
		// 検索、ページリンク共通処理
		searchCommon(serviceBean);
		
		// 遷移先の画面ID、画面名を共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10401);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10401);
		
		return true;
	}
	
	/**
	 * 検索出力ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean searchOutput() throws Exception 
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// サービス呼出用
		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 = {svcFormBean};
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0791");
		KKSV0791_KKSV0791OPDBMapper mapper0791 = new KKSV0791_KKSV0791OPDBMapper();
		mapper0791.setKKSV079101CC(paramBean, inputMap, "1");
		
		// サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 処理完了のメッセージを設定する
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"ファイル作成処理依頼"});
		
		// 遷移先の画面ID、画面名を共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10401);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10401);
		
		return true;
	}
	
	/**
	 * クリアボタン押下処理
     * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean clear() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 明細をクリア
		serviceBean.getDataBeanArray(KKW10401SFConst.LIST).clearArray();
		
		// 明細選択行をクリア
		serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 運用日付の取得
		String opeDt = JCCWebCommon.getOpeDate(this, null);
		String opeZenDt = JPCDateUtil.addDay(opeDt, -1);
		
		// 申込受付年月日の設定
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_FROM, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(opeZenDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_FROM, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(opeZenDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_FROM, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(opeZenDt));
		
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_TO, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(opeDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_TO, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(opeDt));
		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_TO, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(opeDt));
		
		// 申込チャネルコンボボックスの「01:ＷＥＢ」を選択状態にする
		X31SDataBeanAccess mskmChannelBean = serviceBean.getDataBeanArray(KKW10401SFConst.KN_MSKM_CHANNEL).getDataBean(0);
		int mskmChannelCount = (Integer)mskmChannelBean.sendMessage(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CModelCommon.GET_COUNT);
		String listCd = null;
		
		mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		for (int i = 0; i < mskmChannelCount; i++)
		{
			listCd = mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			// 「01:ＷＥＢ」のコードと一致した場合、要素番号をコンボボックスのインデックスに設定する
			if("01".equals(listCd))
			{
				mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				break;
			}
		}
		
		// 受付区分の初期化
		serviceBean.sendMessageString(KKW10401SFConst.KN_UK_DIV, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		// 処理方法の初期化
		serviceBean.sendMessageString(KKW10401SFConst.KN_TRAN_WAY, X31CWebConst.DATABEAN_SET_VALUE, "2");
		
		// 反映区分１、２、３の初期化
		/* ++++++++++ v6.00.00 修正開始 ++++++++++ */
		serviceBean.sendMessageString(KKW10401SFConst.KN_HANEI_DIV, X31CWebConst.DATABEAN_SET_VALUE, "1");
//		serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_1, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
//		serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_2, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
//		serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_3, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		/* ++++++++++ v6.00.00 修正終了 ++++++++++ */
		
		// オプションチャンネルコンボボックスの先頭（空白）を選択状態にする
//		X31SDataBeanAccess opChBean = serviceBean.getDataBeanArray(KKW10401SFConst.KN_OP_CH).getDataBean(0);
//		opChBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// オプションチャンネルコンボボックスの「B034:スターチャンネルセット」を選択状態にする
		X31SDataBeanAccess opChBean = serviceBean.getDataBeanArray(KKW10401SFConst.KN_OP_CH).getDataBean(0);
		int opChCount = (Integer)opChBean.sendMessage(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CModelCommon.GET_COUNT);
		String opChlistCd = null;
		
		opChBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		for (int i = 0; i < opChCount; i++)
		{
			opChlistCd = opChBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			// 「B034:スターチャンネルセット」のコードと一致した場合、要素番号をコンボボックスのインデックスに設定する
			if("B034".equals(opChlistCd))
			{
				opChBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				break;
			}
		}
		
		// その他検索条件を初期化
//		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_FROM, X31CWebConst.DATABEAN_SET_VALUE, "");
//		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_FROM, X31CWebConst.DATABEAN_SET_VALUE, "");
//		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_FROM, X31CWebConst.DATABEAN_SET_VALUE, "");
//		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
//		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
//		serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_TO, X31CWebConst.DATABEAN_SET_VALUE, "");
		serviceBean.sendMessageString(KKW10401SFConst.KN_SYSID, X31CWebConst.DATABEAN_SET_VALUE, "");
		serviceBean.sendMessageString(KKW10401SFConst.KN_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		serviceBean.sendMessageString(KKW10401SFConst.KN_CUST_TEL, X31CWebConst.DATABEAN_SET_VALUE, "");
		serviceBean.sendMessageString(KKW10401SFConst.KN_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		serviceBean.sendMessageString(KKW10401SFConst.KN_CUST_KANA, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 検索結果有無フラグを初期値に戻す
		serviceBean.sendMessageBoolean(KKW10401SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		
		// 遷移先の画面ID、画面名を共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10401);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10401);
 		
		return true;
	}
	
	/**
	 * ページリンク処理
     * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean changePage() throws Exception
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 検索、ページリンク共通処理
		searchCommon(serviceBean);
		
		// 遷移先の画面ID、画面名を共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10401);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10401);
		
		return true;
	}
	
	/**
	 * 利用開始登録ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean forwardUpdScr() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラス取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 明細の選択行を取得する。
		String selectRow = serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択行のサービスフォームBeanの取得
		X31SDataBeanAccess selectedBean = serviceBean.getDataBeanArray(KKW10401SFConst.LIST).getDataBean(Integer.parseInt(selectRow));
		
		// 次画面遷移チェック
		if(!"申込".equals(selectedBean.sendMessageString(KKW10401SFConst.UK_DIV_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 選択された明細行の受付区分が“申込”でない場合、エラーを表示する
			String[] msg = {"受付区分が“申込”以外","利用開始登録の処理"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		else if(!"手動".equals(selectedBean.sendMessageString(KKW10401SFConst.TRAN_WAY_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 選択された明細行の処理方法が“手動”でない場合、エラーを表示する
			String[] msg = {"処理方法が“手動”以外","利用開始登録の処理"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
		else if(!"未反映".equals(selectedBean.sendMessageString(KKW10401SFConst.HANEI_DIV_01, X31CWebConst.DATABEAN_GET_VALUE))
				&& !("反映済".equals(selectedBean.sendMessageString(KKW10401SFConst.HANEI_DIV_01, X31CWebConst.DATABEAN_GET_VALUE))
						&& serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_1, X31CWebConst.DATABEAN_GET_VALUE)))
		/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
		{
			// 選択された明細行の反映区分が“未反映”でない場合、エラーを表示する
			String[] msg = {"反映区分が“未反映”以外","利用開始登録の処理"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		
		// 次画面引継ぎ用情報を格納するMAPの生成メソッドの呼出し
		HashMap<String,Object> nextDataMap = setForwardParam(serviceBean, selectedBean, "01");
		
		// 次画面IDをキーに引継情報設定を行う
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW02525, nextDataMap);
		
		// 自画面戻り用情報を格納するMAPの生成メソッドの呼出し
		HashMap<String,Object> returnDataMap = setReturnParam(serviceBean);
		
		// 自画面へ復帰してきた場合のデータをセットする。
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW10401, returnDataMap);
		
		// eo光ﾃﾚﾋﾞｵﾌﾟｼｮﾝﾁｬﾝﾈﾙ更新画面とeo光ﾃﾚﾋﾞｵﾌﾟｼｮﾝﾁｬﾝﾈﾙ更新完了画面から戻る際の遷移先を設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW02525, JKKScreenConst.SCREEN_ID_KKW10401);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW02527, JKKScreenConst.SCREEN_ID_KKW10401);
		
		// 遷移先画面IDを共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, 
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW02525);
		
		return true;
	}
	
	/**
	 * 解約登録ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean forwardDskScr() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラス取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 明細の選択行を取得する。
		String selectRow = serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択行のサービスフォームBeanの取得
		X31SDataBeanAccess selectedBean = serviceBean.getDataBeanArray(KKW10401SFConst.LIST).getDataBean(Integer.parseInt(selectRow));
		
		// 次画面遷移チェック
		if(!"解約".equals(selectedBean.sendMessageString(KKW10401SFConst.UK_DIV_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 選択された明細行の受付区分が“解約”でない場合、エラーを表示する
			String[] msg = {"受付区分が“解約”以外","解約登録の処理"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		else if(!"手動".equals(selectedBean.sendMessageString(KKW10401SFConst.TRAN_WAY_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 選択された明細行の処理方法が“手動”でない場合、エラーを表示する
			String[] msg = {"処理方法が“手動”以外","解約登録の処理"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
		else if(!"未反映".equals(selectedBean.sendMessageString(KKW10401SFConst.HANEI_DIV_01, X31CWebConst.DATABEAN_GET_VALUE))
				&& !("反映済".equals(selectedBean.sendMessageString(KKW10401SFConst.HANEI_DIV_01, X31CWebConst.DATABEAN_GET_VALUE))
						&& serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_1, X31CWebConst.DATABEAN_GET_VALUE)))
		/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
		{
			// 選択された明細行の反映区分が“未反映”でない場合、エラーを表示する
			String[] msg = {"反映区分が“未反映”以外","解約登録の処理"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		
		// 次画面引継ぎ用情報を格納するMAPの生成メソッドの呼出し
		HashMap<String,Object> nextDataMap = setForwardParam(serviceBean, selectedBean, "02");
		
		// 次画面IDをキーに引継情報設定を行う
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW02525, nextDataMap);
		
		// 自画面戻り用情報を格納するMAPの生成メソッドの呼出し
		HashMap<String,Object> returnDataMap = setReturnParam(serviceBean);
		
		// 自画面へ復帰してきた場合のデータをセットする。
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW10401, returnDataMap);
		
		// eo光ﾃﾚﾋﾞｵﾌﾟｼｮﾝﾁｬﾝﾈﾙ更新画面とeo光ﾃﾚﾋﾞｵﾌﾟｼｮﾝﾁｬﾝﾈﾙ更新完了画面から戻る際の遷移先を設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW02525, JKKScreenConst.SCREEN_ID_KKW10401);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW02527, JKKScreenConst.SCREEN_ID_KKW10401);
		
		// 遷移先画面IDを共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, 
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW02525);
		
		return true;
	}
	
	/**
	 * 予約取消ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean forwardRsvClScr() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラス取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 明細の選択行を取得する。
		String selectRow = serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		// 選択行のサービスフォームBeanの取得
		X31SDataBeanAccess selectedBean = serviceBean.getDataBeanArray(KKW10401SFConst.LIST).getDataBean(Integer.parseInt(selectRow));
		
		// 次画面遷移チェック
		if(!"手動".equals(selectedBean.sendMessageString(KKW10401SFConst.TRAN_WAY_01, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 選択された明細行の処理方法が“手動”でない場合、エラーを表示する
			String[] msg = {"処理方法が“手動”以外","取消"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		/* ++++++++++ v7.00.00 修正開始 ++++++++++ */
		else if(!"未反映".equals(selectedBean.sendMessageString(KKW10401SFConst.HANEI_DIV_01, X31CWebConst.DATABEAN_GET_VALUE))
				&& !("反映済".equals(selectedBean.sendMessageString(KKW10401SFConst.HANEI_DIV_01, X31CWebConst.DATABEAN_GET_VALUE))
						&& serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_1, X31CWebConst.DATABEAN_GET_VALUE)))
		{
		/* ++++++++++ v7.00.00 修正終了 ++++++++++ */
			// 選択された明細行の反映区分が“未反映”でない場合、エラーを表示する
			String[] msg = {"反映区分が“未反映”以外","取消"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0770_NW, msg);
			
			return true;
		}
		
		// 次画面引継ぎ用情報を格納するMAPの生成メソッドの呼出し
		HashMap<String,Object> nextDataMap = setForwardParam(serviceBean, selectedBean, "03");
		
		// 次画面IDをキーに引継情報設定を行う
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW02526, nextDataMap);
		
		// 自画面戻り用情報を格納するMAPの生成メソッドの呼出し
		HashMap<String,Object> returnDataMap = setReturnParam(serviceBean);
		
		// 自画面へ復帰してきた場合のデータをセットする。
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW10401, returnDataMap);
		
		// eo光ﾃﾚﾋﾞｵﾌﾟｼｮﾝﾁｬﾝﾈﾙ更新画面とeo光ﾃﾚﾋﾞｵﾌﾟｼｮﾝﾁｬﾝﾈﾙ更新完了画面から戻る際の遷移先を設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW02526, JKKScreenConst.SCREEN_ID_KKW10401);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW02527, JKKScreenConst.SCREEN_ID_KKW10401);
		
		// 遷移先画面IDを共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, 
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW02526);
		
		return true;
	}
	
	/**
	 * ファイル作成ボタン押下処理です。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean fileCreate() throws Exception
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 検索条件を作成する
		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 = { serviceBean };
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0515");
		KKSV0515_KKSV0515OPDBMapper mapper = new KKSV0515_KKSV0515OPDBMapper();
		mapper.setKKSV051501CC(paramBean, inputMap, "1");
		
		// ページング情報の設定 (１ページ目をCCで固定で設定するよう変更)
//		JCCWebCommon.upmapperPageLinkInfo(this, "0", "KKSV051501CC", inputMap);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV051501CC", outputMap);
		
		if("1".equals(searchErrFlg))
		{
			// 検索結果が0件のエラーメッセージを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			
			return true;
		}
		
		// エラー無しで終了した場合、処理完了のメッセージを設定する
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"ファイル作成処理"});
		
		// 遷移先の画面ID、画面名を共有フォームBeanの項目に設定する。
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW10401);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW10401);
		
		return true;
	}
	
	/**
	 * 各コンボボックスの選択状態を設定
	 * <br>
	 * @param serviceBean サービスフォームBean
	 * @throws Exception エラーが発生した場合
	 */
	private void selectComboBox(X31SDataBeanAccess serviceBean) throws Exception
	{
		// 各コンボボックスを取得
		X31SDataBeanAccess mskmChannelBean = serviceBean.getDataBeanArray(KKW10401SFConst.KN_MSKM_CHANNEL).getDataBean(0);
		X31SDataBeanAccess opChBean = serviceBean.getDataBeanArray(KKW10401SFConst.KN_OP_CH).getDataBean(0);
		
		// 各コンボボックスの要素数
		int mskmChannelCount = (Integer)mskmChannelBean.sendMessage(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CModelCommon.GET_COUNT);
		int opChCount = (Integer)opChBean.sendMessage(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CModelCommon.GET_COUNT);
		
		// 退避用のコードを取得
		String saveMskmChannelCd = serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_CHANNEL_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String saveOpChCd = serviceBean.sendMessageString(KKW10401SFConst.SAVE_OP_CH_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		String listCd = null;
		
		// 申込チャネルコンボボックスの選択値を退避用のコードから復帰する
		mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		for (int i = 0; i < mskmChannelCount; i++)
		{
			listCd = mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			// 退避用のコードとコンボボックスのコードが一致した場合、要素番号をコンボボックスのインデックスに設定する
			if(listCd.equals(saveMskmChannelCd))
			{
				mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				break;
			}
		}
		
		// オプションチャネルコンボボックスの選択値を退避用のコードから復帰する
		opChBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, "0");
		for (int i = 0; i < opChCount; i++)
		{
			listCd = opChBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			// 退避用のコードとコンボボックスのコードが一致した場合、要素番号をコンボボックスのインデックスに設定する
			if(listCd.equals(saveOpChCd))
			{
				opChBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				break;
			}
		}
	}
	
	/**
	 * 入力された検索条件の退避を行う。
	 * <br>
	 * @param serviceBean サービスフォームBean
	 * @throws Exception エラーが発生した場合
	 */
	private void setBackInput(X31SDataBeanAccess serviceBean) throws Exception
	{
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_YEAR_FROM, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_MON_FROM,  X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_FROM,  X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_DAY_FROM,  X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_FROM,  X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_YEAR_TO,   X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_YEAR_TO,   X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_MON_TO,    X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_MON_TO,    X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_DAY_TO,    X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_MSKM_DAY_TO,    X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込チャネル
		X31SDataBeanAccess mskmChannelBean = serviceBean.getDataBeanArray(KKW10401SFConst.KN_MSKM_CHANNEL).getDataBean(0);
		int mskmChannelIndex = Integer.parseInt(mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE));
		String selectedMskmChannel = mskmChannelBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, mskmChannelIndex);
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_CHANNEL_CD, X31CWebConst.DATABEAN_SET_VALUE, selectedMskmChannel);
		
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_UK_DIV,       X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_UK_DIV,       X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_TRAN_WAY,     X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_TRAN_WAY,     X31CWebConst.DATABEAN_GET_VALUE));
		
		/* ++++++++++ v6.00.00 修正開始 ++++++++++ */
//		serviceBean.sendMessageBoolean(KKW10401SFConst.SAVE_HANEI_DIV_1, X31CWebConst.DATABEAN_SET_VALUE, 
//				serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_1, X31CWebConst.DATABEAN_GET_VALUE));
//		serviceBean.sendMessageBoolean(KKW10401SFConst.SAVE_HANEI_DIV_2, X31CWebConst.DATABEAN_SET_VALUE, 
//				serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_2, X31CWebConst.DATABEAN_GET_VALUE));
//		serviceBean.sendMessageBoolean(KKW10401SFConst.SAVE_HANEI_DIV_3, X31CWebConst.DATABEAN_SET_VALUE, 
//				serviceBean.sendMessageBoolean(KKW10401SFConst.KN_HANEI_DIV_3, X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_HANEI_DIV,     X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_HANEI_DIV,     X31CWebConst.DATABEAN_GET_VALUE));
		// オプションチャンネル
		X31SDataBeanAccess opChBean = serviceBean.getDataBeanArray(KKW10401SFConst.KN_OP_CH).getDataBean(0);
		int opChIndex = Integer.parseInt(opChBean.sendMessageString(KKW10401SFConst.CD_DIV_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE));
		String selectedOpCh = opChBean.sendMessageString(KKW10401SFConst.CD_DIV_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, opChIndex);
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_OP_CH_CD, X31CWebConst.DATABEAN_SET_VALUE, selectedOpCh);
		
		serviceBean.sendMessageString(KKW10401SFConst.SAVE_SYSID,      X31CWebConst.DATABEAN_SET_VALUE, 
				serviceBean.sendMessageString(KKW10401SFConst.KN_SYSID,      X31CWebConst.DATABEAN_GET_VALUE));
//		serviceBean.sendMessageString(KKW10401SFConst.SAVE_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, 
//				serviceBean.sendMessageString(KKW10401SFConst.KN_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
//		serviceBean.sendMessageString(KKW10401SFConst.SAVE_CUST_TEL,   X31CWebConst.DATABEAN_SET_VALUE, 
//				serviceBean.sendMessageString(KKW10401SFConst.KN_CUST_TEL,   X31CWebConst.DATABEAN_GET_VALUE));
//		serviceBean.sendMessageString(KKW10401SFConst.SAVE_KN_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, 
//				serviceBean.sendMessageString(KKW10401SFConst.KN_CUST_NM,    X31CWebConst.DATABEAN_GET_VALUE));
//		serviceBean.sendMessageString(KKW10401SFConst.SAVE_CUST_KANA,  X31CWebConst.DATABEAN_SET_VALUE, 
//				serviceBean.sendMessageString(KKW10401SFConst.KN_CUST_KANA,  X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v6.00.00 修正終了 ++++++++++ */
	}
	
	/**
	 * 検索、ページリンク共通処理
	 * <br>
	 * @param serviceBean サービスフォームBean
	 * @throws Exception エラーが発生した場合
	 */
	private void searchCommon(X31SDataBeanAccess serviceBean) throws Exception
	{
		// 明細をクリア
		serviceBean.getDataBeanArray(KKW10401SFConst.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 = { serviceBean };
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0511");
		KKSV0511_KKSV0511OPDBMapper mapper = new KKSV0511_KKSV0511OPDBMapper();
		mapper.setKKSV051101CC(paramBean, inputMap, "1");
		
		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", "KKSV051101CC", inputMap);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return;
		}
		
		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("KKSV051101CC", outputMap);
		
		if("1".equals(searchErrFlg))
		{
			// 検索結果が0件のエラーメッセージを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			
			// 明細選択行をクリア
			serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
			
			// 明細を非表示にする
			serviceBean.sendMessageBoolean(KKW10401SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
			return;
		}
		else if("2".equals(searchErrFlg))
		{
			// 検索結果が最大検索件数超えのエラーメッセージを表示する
			String[] msg = {JCCWebCommon.getSearchConst("KKW10401_MAX_SHOW_CNT")};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msg);
			
			// 明細選択行をクリア
			serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "");
			
			// 明細を非表示にする
			serviceBean.sendMessageBoolean(KKW10401SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
			return;
		}
		else if("3".equals(searchErrFlg))
		{
			// 表示ページ該当データなしエラーメッセージを表示する
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
			
			// 先頭の明細行を選択
			serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "0");
			
			// 明細を表示にする
			serviceBean.sendMessageBoolean(KKW10401SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
		}
		else
		{
			// 先頭の明細行を選択
			serviceBean.sendMessageString(KKW10401SFConst.LIST_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, "0");
			
			// 明細を表示にする
			serviceBean.sendMessageBoolean(KKW10401SFConst.RESULT_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
		}
		
		// ■ サービス結果の転記
		mapper.getKKSV051101CC(paramBean, outputMap);
		
		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "0", "KKSV051101CC", outputMap);
		
		// 検索のコマンドIDを設定する
		JCCWebCommon.setSearchCommand(this, "B_CHANGE_PAGE");
	}
	
	/**
	 * 次画面引継ぎ用情報設定処理
	 * <br>
	 * @param serviceBean サービスフォームBean
	 * @param selectedBean 選択行のサービスフォームBean
	 * @param tranDiv 処理区分
	 * @return HashMap 次画面引継ぎ用情報
	 * @throws Exception エラーが発生した場合
	 */
	private HashMap<String,Object> setForwardParam(X31SDataBeanAccess serviceBean, X31SDataBeanAccess selectedBean, String tranDiv) throws Exception
	{
		// 顧客契約引継情報を生成
		X31SDataBeanAccess custKeiHktgi = serviceBean.getDataBeanArray(KKW10401SFConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);
		// SYSID
		custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_SYSID_03, X31CWebConst.DATABEAN_SET_VALUE, 
				selectedBean.sendMessageString(KKW10401SFConst.SYSID_01, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号
		custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE, 
				selectedBean.sendMessageString(KKW10401SFConst.SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		// 処理区分に応じて異動区分と異動理由コードを設定する
		// 利用開始登録の場合
		if("01".equals(tranDiv))
		{
			// 異動区分
			custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_IDO_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.IDO_DIV_VALUE_00031);
			// 異動理由コード
			custKeiHktgi.sendMessage(KKW10401SFConst.HKTGI_IDO_RSN_CD_03, X31CWebConst.DATABEAN_CLEAR);
			custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_IDO_RSN_CD_03, X31CWebConst.DATABEAN_ADD_VALUE, JKKCommonConst.IDO_RSN_CD_VALUE_56);
		}
		// 解約登録の場合
		else if("02".equals(tranDiv))
		{
			// 異動区分
			custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_IDO_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.IDO_DIV_VALUE_00031);
			// 異動理由コード
			custKeiHktgi.sendMessage(KKW10401SFConst.HKTGI_IDO_RSN_CD_03, X31CWebConst.DATABEAN_CLEAR);
			custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_IDO_RSN_CD_03, X31CWebConst.DATABEAN_ADD_VALUE, JKKCommonConst.IDO_RSN_CD_VALUE_C6);
		}
		// 取消の場合
		else if("03".equals(tranDiv))
		{
			// 異動区分
			custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_IDO_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, JKKCommonConst.IDO_DIV_VALUE_00055);
			// 異動理由コード
			custKeiHktgi.sendMessage(KKW10401SFConst.HKTGI_IDO_RSN_CD_03, X31CWebConst.DATABEAN_CLEAR);
			custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_IDO_RSN_CD_03, X31CWebConst.DATABEAN_ADD_VALUE, JKKCommonConst.IDO_RSN_CD_VALUE_D7);
		}
		/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		// オプションサービス契約番号
		custKeiHktgi.sendMessage(KKW10401SFConst.HKTGI_OP_SVC_KEI_NO_03, X31CWebConst.DATABEAN_CLEAR);
		custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_OP_SVC_KEI_NO_03, X31CWebConst.DATABEAN_ADD_VALUE, 
				selectedBean.sendMessageString(KKW10401SFConst.OP_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// 処理区分
		custKeiHktgi.sendMessageString(KKW10401SFConst.HKTGI_TRAN_DIV_03, X31CWebConst.DATABEAN_SET_VALUE, tranDiv);
		
		// 次画面への引継情報を作成する。
		HashMap<String,Object> paramMap = new HashMap<String,Object>();
		
		// 顧客契約引継情報を次画面への引継情報に設定
		paramMap = getHktgiDataMap(serviceBean, KKW10401SFConst.HKTGI_CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);
		
		// 顧客契約引継情報以外の引継項目
		// 機器製造番号
		paramMap.put(KKW10401SFConst.KIKI_SEIZO_NO_01, selectedBean.sendMessageString(KKW10401SFConst.KIKI_SEIZO_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
		// BCAS-ID
		paramMap.put(KKW10401SFConst.BCAS_ID_01, selectedBean.sendMessageString(KKW10401SFConst.BCAS_ID_01, X31CWebConst.DATABEAN_GET_VALUE));
		// CCAS-ID
		paramMap.put(KKW10401SFConst.CCAS_ID_01, selectedBean.sendMessageString(KKW10401SFConst.CCAS_ID_01, X31CWebConst.DATABEAN_GET_VALUE));
		
		return paramMap;
	}
	
	/**
	 * 自画面再表示用情報設定処理
     * <br>
     * @param serviceBean サービスフォームBean
     * @return HashMap 自画面再表示用情報
	 * @throws Exception エラーが発生した場合
	 */
	private HashMap<String,Object> setReturnParam(X31SDataBeanAccess serviceBean) throws Exception
	{
		// 自画面への再表示用情報を作成する。
		HashMap<String,Object> paramMap = new HashMap<String,Object>();
		
		// 申込受付年月日(from)(年)
		paramMap.put(KKW10401SFConst.KN_MSKM_YEAR_FROM, serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込受付年月日(from)(月)
		paramMap.put(KKW10401SFConst.KN_MSKM_MON_FROM, serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込受付年月日(from)(日)
		paramMap.put(KKW10401SFConst.KN_MSKM_DAY_FROM, serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_DAY_FROM, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込受付年月日(to)(年)
		paramMap.put(KKW10401SFConst.KN_MSKM_YEAR_TO, serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込受付年月日(to)(月)
		paramMap.put(KKW10401SFConst.KN_MSKM_MON_TO, serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_MON_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込受付年月日(to)(日)
		paramMap.put(KKW10401SFConst.KN_MSKM_DAY_TO, serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用申込チャネルコード
		paramMap.put(KKW10401SFConst.SAVE_MSKM_CHANNEL_CD, serviceBean.sendMessageString(KKW10401SFConst.SAVE_MSKM_CHANNEL_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 受付区分
		paramMap.put(KKW10401SFConst.KN_UK_DIV, serviceBean.sendMessageString(KKW10401SFConst.SAVE_UK_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		// 処理方法
		paramMap.put(KKW10401SFConst.KN_TRAN_WAY, serviceBean.sendMessageString(KKW10401SFConst.SAVE_TRAN_WAY, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v6.00.00 修正開始 ++++++++++ */
		// 反映区分
		paramMap.put(KKW10401SFConst.KN_HANEI_DIV, serviceBean.sendMessageString(KKW10401SFConst.SAVE_HANEI_DIV, X31CWebConst.DATABEAN_GET_VALUE));
//		// 反映区分１
//		paramMap.put(KKW10401SFConst.KN_HANEI_DIV_1, serviceBean.sendMessageBoolean(KKW10401SFConst.SAVE_HANEI_DIV_1, X31CWebConst.DATABEAN_GET_VALUE));
//		// 反映区分２
//		paramMap.put(KKW10401SFConst.KN_HANEI_DIV_2, serviceBean.sendMessageBoolean(KKW10401SFConst.SAVE_HANEI_DIV_2, X31CWebConst.DATABEAN_GET_VALUE));
//		// 反映区分３
//		paramMap.put(KKW10401SFConst.KN_HANEI_DIV_3, serviceBean.sendMessageBoolean(KKW10401SFConst.SAVE_HANEI_DIV_3, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用オプションチャンネルコード
		paramMap.put(KKW10401SFConst.SAVE_OP_CH_CD, serviceBean.sendMessageString(KKW10401SFConst.SAVE_OP_CH_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// SYSID
		paramMap.put(KKW10401SFConst.KN_SYSID, serviceBean.sendMessageString(KKW10401SFConst.SAVE_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
//		// サービス契約番号
//		paramMap.put(KKW10401SFConst.KN_SVC_KEI_NO, serviceBean.sendMessageString(KKW10401SFConst.SAVE_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
//		// 電話番号
//		paramMap.put(KKW10401SFConst.KN_CUST_TEL, serviceBean.sendMessageString(KKW10401SFConst.SAVE_CUST_TEL, X31CWebConst.DATABEAN_GET_VALUE));
//		// お客様名
//		paramMap.put(KKW10401SFConst.KN_CUST_NM, serviceBean.sendMessageString(KKW10401SFConst.SAVE_KN_CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
//		// お客様名カナ
//		paramMap.put(KKW10401SFConst.KN_CUST_KANA, serviceBean.sendMessageString(KKW10401SFConst.SAVE_CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v6.00.00 修正終了 ++++++++++ */
		
		return paramMap;
	}
	
	/**
	 * <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;	
	}

}
