/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW17802SFLogic
*   ソースファイル名：KKW17802SFLogic.java
*   作成者          ：富士通
*   日付            ：2013年01月29日
*＜機能概要＞
*   利用不可期間更新 Viewロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v5.00.00    2013/01/29   FJ		    新規作成
*   V5.00.01	2013/02/10   FJ			IT1-2013-0000229対応
*
**********************************************************************/

package eo.web.webview.KKW17802SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 com.fujitsu.futurity.web.x31.X31SRuntimeException;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW17801SF.KKW17801SFConst;
import eo.web.webview.WCW01606SF.WCW01606SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JWCCommonConst;
import eo.web.webview.common.JWCScreenConst;
import eo.web.webview.mapping.KKSV0737_KKSV0737OPDBMapper;
import eo.web.webview.mapping.KKSV0738_KKSV0738OPDBMapper;
import eo.web.webview.mapping.KKSV0739_KKSV0739OPDBMapper;


/**
 * 利用不可期間更新画面のビューロジック処理を行います。
 * @author user
 *
 */
public class KKW17802SFLogic extends JCCWebBusinessLogic
{
	//処理モード
	private String SYORI_MODE_INSERT = "0";
	private String SYORI_MODE_UPDATE = "1";
	private String SYORI_MODE_DELETE = "2";
	
	private String IDO_DIV_USE_STP_PRD = "00082";
	private String PRG_STAT_USE_STP_PRD_INS = "6501";
	private String PRG_STAT_USE_STP_PRD_UPD = "6502";
	private String PRG_STAT_USE_STP_PRD_DEL = "6503";
	

	/** 顧客契約引継情報項目キー */
	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, 
			JKKCommonConst.HKTGI_IDO_RSN_MEMO, 
			JKKCommonConst.HKTGI_OP_SVC_KEI_NO,
			JKKCommonConst.HKTGI_TRAN_DIV,
			JKKCommonConst.HKTGI_MANS_ID,
			JKKCommonConst.HKTGI_MANS_COURSE_NM,
			JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_NM,
			JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_VALUE
	};
	
// IT2-2013-0000756対応 20131126 星野 ADD START
	/** 初期表示退避項目キー */
	private static final String[][] INIT_TAIHI_KEYS = {
		{KKW17802SFConst.USE_STP_RSN_MEMO, KKW17802SFConst.INIT_USE_STP_RSN_MEMO},
		{KKW17802SFConst.USE_STP_STA_YEAR, KKW17802SFConst.INIT_USE_STP_STA_YEAR},
		{KKW17802SFConst.USE_STP_STA_MONTH, KKW17802SFConst.INIT_USE_STP_STA_MONTH},
		{KKW17802SFConst.USE_STP_STA_DAY, KKW17802SFConst.INIT_USE_STP_STA_DAY},
		{KKW17802SFConst.USE_STP_END_YEAR, KKW17802SFConst.INIT_USE_STP_END_YEAR},
		{KKW17802SFConst.USE_STP_END_MONTH, KKW17802SFConst.INIT_USE_STP_END_MONTH},
		{KKW17802SFConst.USE_STP_END_DAY, KKW17802SFConst.INIT_USE_STP_END_DAY},
	};
// IT2-2013-0000756対応 20131126 星野 ADD END

	
	/**
	 * 利用不可期間更新画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
		// 引き継ぎの情報MAPを取得する。
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		getMessageList();

		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17802);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW17802);

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// パラメータセット
		paramBean[0].sendMessageString(KKW17802SFConst.TRN_TG_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_PRD_ADD_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		paramBean[0].sendMessageString(KKW17802SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, IDO_DIV_USE_STP_PRD);

		// IT2-2013-0000337 2013.04.03 Kurata Add Start
		String syori_mode = bean.sendMessageString(KKW17802SFConst.SYORI_MODE, X31CWebConst.DATABEAN_GET_VALUE);
		if(syori_mode.equals(SYORI_MODE_INSERT))
		{
			String ope_date = JCCWebCommon.getOpeDate(this, null);
			if (ope_date != null) {
				paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_STA_YEAR, X31CWebConst.DATABEAN_SET_VALUE, ope_date.substring(0, 4));
				paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_STA_MONTH, X31CWebConst.DATABEAN_SET_VALUE, ope_date.substring(4, 6));
				paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_STA_DAY, X31CWebConst.DATABEAN_SET_VALUE, ope_date.substring(6,8));
			}
			// IT2-2013-0000337 2013.04.03 Kurata Add End
		}
		
// IT2-2013-0000756対応 20131126 星野 ADD START
		// 初期表示値を退避
		for(int i=0; i<INIT_TAIHI_KEYS.length; i++){
			copyColumnString(bean, INIT_TAIHI_KEYS[i][0], INIT_TAIHI_KEYS[i][1]);
		}
// IT2-2013-0000756対応 20131126 星野 ADD END
	
		return true;
	}

// IT2-2013-0000756対応 20131126 星野 ADD START
	private void copyColumnString(X31SDataBeanAccess bean, String fromColumnKey, String toColumnKey) {
		bean.sendMessageString(toColumnKey, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(fromColumnKey, X31CWebConst.DATABEAN_GET_VALUE) );
	}
// IT2-2013-0000756対応 20131126 星野 ADD END
	
	/**
	 * 更新確認ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean update() throws Exception 
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		String MESSAGE_ID = "EKB0370--I";
		String[] stringArray;
		stringArray = new String[1];
		
		// ◇ 業務ロジックの記述

		String syori_mode = paramBean[0].sendMessageString(KKW17802SFConst.SYORI_MODE, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(syori_mode.equals(SYORI_MODE_INSERT))
		{
			// パラメータセット
			paramBean[0].sendMessageString(KKW17802SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_USE_STP_PRD_INS);
			
			// ユースケースID格納用マップを生成。
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0737");
			paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0737OP");
			
			mappingForDB_BP_KKSV0737_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2);
			stringArray[0] = "利用不可期間の登録";
		}
		if(syori_mode.equals(SYORI_MODE_UPDATE))
		{
			// パラメータセット
			paramBean[0].sendMessageString(KKW17802SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_USE_STP_PRD_UPD);
			// ユースケースID格納用マップを生成。
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0738");
			paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0738OP");
			
			mappingForDB_BP_KKSV0738_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2);
			stringArray[0] = "利用不可期間の更新";
			
		}
		if(syori_mode.equals(SYORI_MODE_DELETE))
		{
			// パラメータセット
			paramBean[0].sendMessageString(KKW17802SFConst.PRG_STAT, X31CWebConst.DATABEAN_SET_VALUE, PRG_STAT_USE_STP_PRD_DEL);
			
			// ユースケースID格納用マップを生成。
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0739");
			paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0739OP");
			
			mappingForDB_BP_KKSV0739_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_2);
			stringArray[0] = "利用不可期間の削除";
			
		}
		
		///// サービス呼出処理 /////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// 強調表示
		JCCWebCommon.setMessageAreaBackColor(this, "1");
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		JCCWebCommon.setScreenId( this, JKKScreenConst.SCREEN_ID_KKW17803,  JKKScreenConst.SCREEN_ID_KKW17802);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17803);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW17803);

		return true;
	}
	
	/**
	 * 更新確認画面確定ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean fix() throws Exception
	{HashMap<String, Object> paramMap = null;
	HashMap<String, Object> inputMap = null;
	HashMap<String, Object> outputMap = null;
	
	// サービスフォームBeanのデータBeanアクセスクラスを取得。
	X31SDataBeanAccess bean = super.getServiceFormBean();

	// パラメータ作成
	X31SDataBeanAccess[] paramBean = {bean};

	paramMap = new HashMap<String, Object>();
	inputMap = new HashMap<String, Object>();
	outputMap = new HashMap<String, Object>();

// IT1-2013-0001517 20130801 OKU MOD START
//	String MESSAGE_ID = "EKB0380--I";
	String MESSAGE_ID = "EKB4390--I";
// IT1-2013-0001517 20130801 OKU MOD END
	String[] stringArray;
	stringArray = new String[1];

	// ◇ 業務ロジックの記述

	String syori_mode = bean.sendMessageString(KKW17802SFConst.SYORI_MODE, X31CWebConst.DATABEAN_GET_VALUE);
	
	if(syori_mode.equals(SYORI_MODE_INSERT))
	{
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0737");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0737OP");
		
		mappingForDB_BP_KKSV0737_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
		stringArray[0] = "利用不可期間情報の登録";
	}
	if(syori_mode.equals(SYORI_MODE_UPDATE))
	{
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0738");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0738OP");
		
		mappingForDB_BP_KKSV0738_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
		stringArray[0] = "利用不可期間情報の更新";
		
	}
	if(syori_mode.equals(SYORI_MODE_DELETE))
	{
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0739");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0739OP");
		
		mappingForDB_BP_KKSV0739_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);
		stringArray[0] = "利用不可期間情報の削除";
	}
	
	///// サービス呼出処理 /////
	X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
	
	// エラー処理 
	if(msgResult != null)
	{
		JCCWebCommon.setMessageInfo(this, msgResult);
		return true;
	} 
	
	///// 共有フォームBean設定（遷移先画面） /////
	X31SDataBeanAccess commonBean = super.getCommonInfoBean();
	
	// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
	X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
	// MESSAGE_LISTをクリアする。
	commonBeanArray.clearArray();
	
	// 強調表示
	JCCWebCommon.setMessageAreaBackColor(this, "0");
	JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
	commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17804);
	commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW17804);

	return true;

	}
	
	/**
	 * 更新確認画面修正ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean syusei() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		String MESSAGE_ID = "EKB0370--I";
		String[] stringArray;
		stringArray = new String[1];
		String syori_mode = bean.sendMessageString(KKW17802SFConst.SYORI_MODE, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(syori_mode.equals(SYORI_MODE_INSERT))
		{
			stringArray[0] = "利用不可期間情報の登録";
		}
		if(syori_mode.equals(SYORI_MODE_UPDATE))
		{
			stringArray[0] = "利用不可期間情報の更新";
			
		}
		if(syori_mode.equals(SYORI_MODE_DELETE))
		{
			stringArray[0] = "利用不可期間情報の削除";
		}

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17803);
		
		// IT1-2013-0000229 2012.02.10 START ASARI
//		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17803);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW17802);
		// IT1-2013-0000229 2012.02.10 END ASARI
		
		return true;
	}
	

	/**
	 * クリアボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean clear() throws Exception
	{
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// IT1-2013-0000229 2012.02.10 START ASARI
//		String MESSAGE_ID = "EKB7030--I";
//		String[] stringArray;
//		stringArray = new String[1];
//		stringArray[0] = "内容";
		// IT1-2013-0000229 2012.02.10 END ASARI

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

// IT1-2013-0000287 2013.02.19 START OKITA
//		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_RSN_MEMO, X31CWebConst.DATABEAN_SET_VALUE, "");
//		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_STA_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
//		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_STA_MONTH, X31CWebConst.DATABEAN_SET_VALUE, "");
//		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_STA_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
//		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_END_YEAR, X31CWebConst.DATABEAN_SET_VALUE, "");
//		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_END_MONTH, X31CWebConst.DATABEAN_SET_VALUE, "");
//		paramBean[0].sendMessageString(KKW17802SFConst.USE_STP_END_DAY, X31CWebConst.DATABEAN_SET_VALUE, "");
// IT1-2013-0000287 2013.02.19 END OKITA

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		// IT1-2013-0000229 2012.02.10 START ASARI
//		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		// IT1-2013-0000229 2012.02.10 END ASARI
		
// IT2-2013-0000756対応 20131126 星野 ADD START
		// 初期表示値を退避項目から復元
		for(int i=0; i<INIT_TAIHI_KEYS.length; i++){
			copyColumnString(bean, INIT_TAIHI_KEYS[i][1], INIT_TAIHI_KEYS[i][0]);
		}
// IT2-2013-0000756対応 20131126 星野 ADD END
		
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17802);
		// IT1-2013-0000229 2012.02.10 START ASARI
//		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17803);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW17802);
		// IT1-2013-0000229 2012.02.10 END ASARI
		
		return true;
	}
	/**
	 * 更新確認画面完了ボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean fin() throws Exception
	{
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);

		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		return true;
	}
	
	/**
	 * 戻るボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean back() throws Exception
	{
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		// IT2-2013-0000361 201304012 Kurata Add Start
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW17802);
		// IT2-2013-0000361 201304012 Kurata Add End
		return true;
	}

	/**
	 * 戻るボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean back2() throws Exception
	{
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		HashMap<String, Object> childMap = getHktgiDataMap(bean, KKW17802SFConst.KTGI_CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);

		// IT1-2013-0000764 20130403 奥 ADD START
		String useStpPrdNo = bean.sendMessageString(KKW17802SFConst.USE_STP_PRD_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if(useStpPrdNo != "")
		{
			// 利用停止期間番号を引き継ぎ情報に設定する。
			HashMap<String, Object> inMap = new HashMap<String, Object>();
			List<HashMap<String, Object>> infoList = new ArrayList<HashMap<String, Object>>();
			inMap.put(KKW17802SFConst.USE_STP_PRD_NO, useStpPrdNo);
			infoList.add(inMap);
			childMap.put(KKW17801SFConst.USE_STP_PRD_INFO, infoList);
		}
		// IT1-2013-0000764 20130403 奥 ADD END

		List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>();
		dataList.add(childMap);
		// 引き継ぎの情報を格納するMAPを生成する。 
		HashMap<String, Object> dataMap = new HashMap<String, Object>(); 

		// 引き継ぎを行う情報をdataMapに転記する。 
		dataMap.put( KKW17801SFConst.KTGI_CUST_KEI_HKTGI_LIST , childMap);

		JCCWebCommon.setScreenInfo( this, JKKScreenConst.SCREEN_ID_KKW17801,  childMap);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		return true;
	}
	
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_KKSV0737_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0737_KKSV0737OPDBMapper mapper = new KKSV0737_KKSV0737OPDBMapper();
//		mapper.setKKSV073701SC(paramBean, inputMap, func_code);
//		mapper.setKKSV073702SC(paramBean, inputMap, func_code);
		mapper.setKKSV073701CC(paramBean, inputMap, func_code);

		return;
	}
	
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_KKSV0738_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0738_KKSV0738OPDBMapper mapper = new KKSV0738_KKSV0738OPDBMapper();
//		mapper.setKKSV073801SC(paramBean, inputMap, func_code);
//		mapper.setKKSV073802SC(paramBean, inputMap, func_code);
		mapper.setKKSV073801CC(paramBean, inputMap, func_code);

		return;
	}
	
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_KKSV0739_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0739_KKSV0739OPDBMapper mapper = new KKSV0739_KKSV0739OPDBMapper();
//		mapper.setKKSV073901SC(paramBean, inputMap, func_code);
//		mapper.setKKSV073902SC(paramBean, inputMap, func_code);
		mapper.setKKSV073901CC(paramBean, inputMap, func_code);

		return;
	}

	/**
	 * サービスフォームBean項目と手動リンク一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_KKSV0737_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0737_KKSV0737OPDBMapper mapper = new KKSV0737_KKSV0737OPDBMapper();

		mapper.getKKSV073701SC(paramBean, outputMap);
		return;
	}

	/**
	 * サービスフォームBean項目と手動リンク一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_KKSV0738_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0738_KKSV0738OPDBMapper mapper = new KKSV0738_KKSV0738OPDBMapper();

		return;
	}

	/**
	 * サービスフォームBean項目と手動リンク一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_KKSV0739_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0739_KKSV0739OPDBMapper mapper = new KKSV0739_KKSV0739OPDBMapper();

		return;
	}
	
	/**
	 * <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-catchをfor内で実装してるため、PGRelief時にワーニングが発生する、意図的なロジックのため問題なしとする
				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;
	}
}
