/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW17801SFLogic
*   ソースファイル名：KKW17801SFLogic.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.KKW17801SF;

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.common.constant.JWCStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW12901SF.KKW12901SFConst;
import eo.web.webview.KKW17802SF.KKW17802SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JWCScreenConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.KKSV0736_KKSV0736OPDBMapper;


/**
 * 利用不可期間一覧画面のビューロジック処理を行います。
 * @author user
 *
 */
public class KKW17801SFLogic extends JCCWebBusinessLogic
{

	// 選択項目初期表示
	private String SELECT_DEF = "0";
	private String SYORI_MODE_INSERT = "0";
	private String SYORI_MODE_UPDATE = "1";
	private String SYORI_MODE_DELETE = "2";
	
	/** 顧客契約引継情報項目キー */
	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
	};
	
	/**
	 * 利用不可期間一覧画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 引き継ぎの情報MAPを取得する。
		JCCWebCommon.getScreenInfo(this);

		// 引継ぎ情報を移動
		X31SDataBeanAccessArray custKeiHktgList = bean.getDataBeanArray(KKW17801SFConst.KTGI_CUST_KEI_HKTGI_LIST);
		String svcKeiNo = custKeiHktgList.getDataBean(0).sendMessageString(KKW17801SFConst.SVC_KEI_NO_02,
				X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW17801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
		String mid = custKeiHktgList.getDataBean(0).sendMessageString(KKW17801SFConst.MID_02,
				X31CWebConst.DATABEAN_GET_VALUE);	
		bean.sendMessageString(KKW17801SFConst.MID, X31CWebConst.DATABEAN_SET_VALUE, mid);
		String man_course_nm = custKeiHktgList.getDataBean(0).sendMessageString(KKW17801SFConst.MANS_COURSE_NM_02,
				X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(KKW17801SFConst.TEIKYO_NM, X31CWebConst.DATABEAN_SET_VALUE, man_course_nm);
		
		String idoDiv = custKeiHktgList.getDataBean(0).sendMessageString(KKW17801SFConst.IDO_DIV_02, X31CWebConst.DATABEAN_GET_VALUE);

		// IT1-2013-0000764 20130403 奥 ADD START
		String selectNo = SELECT_DEF;
		String useStpPrdNo = "";
		if(bean.getDataBeanArray(KKW17801SFConst.USE_STP_PRD_INFO).getDataBean(0) != null)
		{
			useStpPrdNo = bean.getDataBeanArray(KKW17801SFConst.USE_STP_PRD_INFO).getDataBean(0)
					.sendMessageString(KKW17802SFConst.USE_STP_PRD_NO, X31CWebConst.DATABEAN_GET_VALUE);
		}
		// IT1-2013-0000764 20130403 奥 ADD END

// IT1-2013-0000287 2013.02.19 START OKITA
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		// 遷移元画面が異動区分選択画面、マンション契約一覧照会画面、自画面の更新画面以外の場合、
		// 照会のみのため、「更新」系ボタン表示フラグを"0"にする。
		String prevScreen = JCCWebCommon.getScreenId(this);
		if(prevScreen == null || "".equals(prevScreen)
				|| prevScreen.equals(JKKScreenConst.SCREEN_ID_KKW00145)
				|| prevScreen.equals(JKKScreenConst.SCREEN_ID_KKW12503)
				|| prevScreen.equals(JKKScreenConst.SCREEN_ID_KKW17802))
		{
			paramBean[0].sendMessageString(KKW17801SFConst.UPD_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		else
		{
			paramBean[0].sendMessageString(KKW17801SFConst.UPD_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
// IT1-2013-0000287 2013.02.19 END OKITA
		
		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW17801);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW17801);


//		// パラメータ作成
//		X31SDataBeanAccess[] paramBean = {bean};

		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>();

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0736");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "KKSV0736OP");

		//  利用不可期間一覧照会上りマッピング定義
		mappingForDB_BP_SET(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		// 利用不可期間一覧照会サービス呼出処理
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 

		//  利用不可期間一覧照会下りマッピング定義
		mappingForDB_BP_GET(paramBean, outputMap);


		String MESSAGE_ID = "";
		String[] stringArray = new String[1];
		// 利用不可期間検索エラー
		X31SDataBeanAccessArray kykBeanArray = bean.getDataBeanArray(KKW17801SFConst.USE_STP_PRD_INFO);
		if (kykBeanArray.getCount() == 0 ||kykBeanArray.getDataBean(0) == null)
		{	
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0330__I;
			stringArray = new String[1];
			stringArray[0] = "利用不可期間";
			
			// IT1-2013-0000229 2012.02.10 START ASARI
			// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
			X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
			// MESSAGE_LISTをクリアする。
			commonBeanArray.clearArray();
			JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
			// IT1-2013-0000229 2012.02.10 END ASARI
			
		}
		// IT1-2013-0000229 2012.02.10 START ASARI
//		else
//		{
//			MESSAGE_ID = JPCOnlineMessageConstant.EKB6950__I;
//			stringArray = new String[1];
//			stringArray[0] = "";
//		}
//		
//
//		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
//		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
//		// MESSAGE_LISTをクリアする。
//		commonBeanArray.clearArray();
//		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		// IT1-2013-0000229 2012.02.10 END ASARI
		
		X31SDataBeanAccessArray beanArray = bean.getDataBeanArray(KKW17801SFConst.USE_STP_PRD_INFO);
		for(int i = 0; i < beanArray.getCount(); i++)
		{
			if(i % 2 == 1)
			{
				beanArray.getDataBean(i).sendMessageString(KKW17801SFConst.RT_CLASS_01, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.ROW_STYLE_EVEN);
			}
			else
			{
				beanArray.getDataBean(i).sendMessageString(KKW17801SFConst.RT_CLASS_01, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.ROW_STYLE_ODD);
			}

			// IT1-2013-0000764 20130403 奥 ADD START
			if(useStpPrdNo.equals(beanArray.getDataBean(i).sendMessageString(KKW17802SFConst.USE_STP_PRD_NO, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				selectNo = String.valueOf(i);
			}
			// IT1-2013-0000764 20130403 奥 ADD END
		}

		// IT1-2013-0000764 20130403 奥 MOD START
//		bean.sendMessageString(KKW17801SFConst.SEL_FLG, X31CWebConst.DATABEAN_SET_VALUE, SELECT_DEF);
		bean.sendMessageString(KKW17801SFConst.SEL_FLG, X31CWebConst.DATABEAN_SET_VALUE, selectNo);
		// IT1-2013-0000764 20130403 奥 MOD END
		
		return true;
	}
	

	/**
	 * 登録ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean create() throws Exception 
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		///// 共有フォーム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からMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();

		String str_svc_kei_no = paramBean[0].sendMessageString(KKW17801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String str_svc_kei_nm = paramBean[0].sendMessageString(KKW17801SFConst.SVC_KEI_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String str_mid = paramBean[0].sendMessageString(KKW17801SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE);
		String str_teiyo_nm = paramBean[0].sendMessageString(KKW17801SFConst.TEIKYO_NM, X31CWebConst.DATABEAN_GET_VALUE);
		HashMap<String, Object> childMap = getHktgiDataMap(bean, KKW17801SFConst.KTGI_CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);

		// 引き継ぎを行う情報をdataMapに転記する。 
		childMap.put( KKW17802SFConst.SVC_KEI_NO , str_svc_kei_no);
		childMap.put( KKW17802SFConst.SVC_KEI_NM , str_svc_kei_nm);
		childMap.put( KKW17802SFConst.MID , str_mid);
		childMap.put( KKW17802SFConst.TEIKYO_NM , str_teiyo_nm);
		childMap.put( KKW17802SFConst.SYORI_MODE , SYORI_MODE_INSERT);

		// IT1-2013-0000764 20130403 奥 ADD START
		// 選択値より、番号を取得
		String sel = paramBean[0].sendMessageString(KKW17801SFConst.SEL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray use_stp_prd_list = paramBean[0].getDataBeanArray(KKW17801SFConst.USE_STP_PRD_INFO);
		X31SDataBeanAccess use_stp_prd_list_subbean = use_stp_prd_list.getDataBean(Integer.parseInt(sel));
		if(use_stp_prd_list_subbean != null)
		{
			String str_use_stp_prd_no = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_PRD_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
			childMap.put( KKW17802SFConst.USE_STP_PRD_NO , str_use_stp_prd_no);
		}
		// IT1-2013-0000764 20130403 奥 ADD END

		JCCWebCommon.setScreenInfo( this, JKKScreenConst.SCREEN_ID_KKW17802,  childMap);
		JCCWebCommon.setScreenId( this, JKKScreenConst.SCREEN_ID_KKW17802,  JKKScreenConst.SCREEN_ID_KKW17801);
		JCCWebCommon.setScreenId( this, JKKScreenConst.SCREEN_ID_KKW17804,  JCCWebCommon.getScreenId(this));
		
		// IT1-2013-0000229 2012.02.10 START ASARI
//		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		// IT1-2013-0000229 2012.02.10 END ASARI;
		
		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);
		
		return true;
	}

	/**
	 * 更新ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean update() throws Exception 
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 選択値と同値を持つ一覧の格納位置から情報を取得し、詳細画面へ受け渡す制御項目の設定を行う。
		String sel = paramBean[0].sendMessageString(KKW17801SFConst.SEL_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択値より、番号を取得
		X31SDataBeanAccessArray use_stp_prd_list = paramBean[0].getDataBeanArray(KKW17801SFConst.USE_STP_PRD_INFO);
		X31SDataBeanAccess use_stp_prd_list_subbean = use_stp_prd_list.getDataBean(Integer.parseInt(sel));

		// パラメータ作成
		String str_svc_kei_no = paramBean[0].sendMessageString(KKW17801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String str_svc_kei_nm = paramBean[0].sendMessageString(KKW17801SFConst.SVC_KEI_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String str_mid = paramBean[0].sendMessageString(KKW17801SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE);
		String str_teiyo_nm = paramBean[0].sendMessageString(KKW17801SFConst.TEIKYO_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_prd_no = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_PRD_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_sta_dtm = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_STA_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_end_dtm = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_END_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_rsn_memo = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_RSN_MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_toriatsu_cd = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_TORIATSU_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_upd_dtm = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引き継ぎの情報を格納するMAPを生成する。 
		HashMap<String, Object> childMap = getHktgiDataMap(bean, KKW17801SFConst.KTGI_CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);

		// 引き継ぎを行う情報をdataMapに転記する。 
		childMap.put( KKW17802SFConst.SVC_KEI_NO , str_svc_kei_no);
		childMap.put( KKW17802SFConst.SVC_KEI_NM , str_svc_kei_nm);
		childMap.put( KKW17802SFConst.MID , str_mid);
		childMap.put( KKW17802SFConst.TEIKYO_NM , str_teiyo_nm);
		childMap.put( KKW17802SFConst.SYORI_MODE , SYORI_MODE_UPDATE);
		childMap.put( KKW17802SFConst.USE_STP_PRD_NO , str_use_stp_prd_no);
		if(str_use_stp_sta_dtm != null && !"".equals(str_use_stp_sta_dtm))
		{
			childMap.put( KKW17802SFConst.USE_STP_STA_YEAR , str_use_stp_sta_dtm.substring(0,4));
			childMap.put( KKW17802SFConst.USE_STP_STA_MONTH , str_use_stp_sta_dtm.substring(5,7));
			childMap.put( KKW17802SFConst.USE_STP_STA_DAY , str_use_stp_sta_dtm.substring(8,10));
		}
		if(str_use_stp_end_dtm != null && !"".equals(str_use_stp_end_dtm))
		{
			childMap.put( KKW17802SFConst.USE_STP_END_YEAR , str_use_stp_end_dtm.substring(0,4));
			childMap.put( KKW17802SFConst.USE_STP_END_MONTH , str_use_stp_end_dtm.substring(5,7));
			childMap.put( KKW17802SFConst.USE_STP_END_DAY , str_use_stp_end_dtm.substring(8,10));
		}
		childMap.put( KKW17802SFConst.USE_STP_RSN_MEMO , str_use_stp_rsn_memo);
		childMap.put( KKW17802SFConst.USE_STP_TORIATSU_CD , str_use_stp_toriatsu_cd);
		childMap.put( KKW17802SFConst.UPD_DTM_BF , str_upd_dtm);

		///// 共有フォーム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からMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();

		JCCWebCommon.setScreenInfo( this, JKKScreenConst.SCREEN_ID_KKW17802,  childMap);
		JCCWebCommon.setScreenId( this, JKKScreenConst.SCREEN_ID_KKW17802,  JKKScreenConst.SCREEN_ID_KKW17801);
		JCCWebCommon.setScreenId( this, JKKScreenConst.SCREEN_ID_KKW17804,  JCCWebCommon.getScreenId(this));
		
		// IT1-2013-0000229 2012.02.10 START ASARI;
//		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		// IT1-2013-0000229 2012.02.10 END ASARI;
		
		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);
		
		return true;
	}

	/**
	 * 削除ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean delete() throws Exception 
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 選択値と同値を持つ一覧の格納位置から情報を取得し、詳細画面へ受け渡す制御項目の設定を行う。
		String sel = paramBean[0].sendMessageString(KKW17801SFConst.SEL_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択値より、番号を取得
		X31SDataBeanAccessArray use_stp_prd_list = paramBean[0].getDataBeanArray(KKW17801SFConst.USE_STP_PRD_INFO);
		X31SDataBeanAccess use_stp_prd_list_subbean = use_stp_prd_list.getDataBean(Integer.parseInt(sel));

		// パラメータ作成
		String str_svc_kei_no = paramBean[0].sendMessageString(KKW17801SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String str_svc_kei_nm = paramBean[0].sendMessageString(KKW17801SFConst.SVC_KEI_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String str_mid = paramBean[0].sendMessageString(KKW17801SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE);
		String str_teiyo_nm = paramBean[0].sendMessageString(KKW17801SFConst.TEIKYO_NM, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_prd_no = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_PRD_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_sta_dtm = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_STA_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_end_dtm = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_END_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_rsn_memo = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_RSN_MEMO_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_use_stp_toriatsu_cd = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.USE_STP_TORIATSU_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_upd_dtm = use_stp_prd_list_subbean.sendMessageString(KKW17801SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引き継ぎの情報を格納するMAPを生成する。 
		HashMap<String, Object> childMap = getHktgiDataMap(bean, KKW17801SFConst.KTGI_CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);

		// 引き継ぎを行う情報をdataMapに転記する。 
		childMap.put( KKW17802SFConst.SVC_KEI_NO , str_svc_kei_no);
		childMap.put( KKW17802SFConst.SVC_KEI_NM , str_svc_kei_nm);
		childMap.put( KKW17802SFConst.MID , str_mid);
		childMap.put( KKW17802SFConst.TEIKYO_NM , str_teiyo_nm);
		childMap.put( KKW17802SFConst.SYORI_MODE , SYORI_MODE_DELETE);
		childMap.put( KKW17802SFConst.USE_STP_PRD_NO , str_use_stp_prd_no);
		if(str_use_stp_sta_dtm != null && !"".equals(str_use_stp_sta_dtm))
		{
			childMap.put( KKW17802SFConst.USE_STP_STA_YEAR , str_use_stp_sta_dtm.substring(0,4));
			childMap.put( KKW17802SFConst.USE_STP_STA_MONTH , str_use_stp_sta_dtm.substring(5,7));
			childMap.put( KKW17802SFConst.USE_STP_STA_DAY , str_use_stp_sta_dtm.substring(8,10));
		}
		if(str_use_stp_end_dtm != null && !"".equals(str_use_stp_end_dtm))
		{
			childMap.put( KKW17802SFConst.USE_STP_END_YEAR , str_use_stp_end_dtm.substring(0,4));
			childMap.put( KKW17802SFConst.USE_STP_END_MONTH , str_use_stp_end_dtm.substring(5,7));
			childMap.put( KKW17802SFConst.USE_STP_END_DAY , str_use_stp_end_dtm.substring(8,10));
		}
		childMap.put( KKW17802SFConst.USE_STP_RSN_MEMO , str_use_stp_rsn_memo);
		childMap.put( KKW17802SFConst.USE_STP_TORIATSU_CD , str_use_stp_toriatsu_cd);
		childMap.put( KKW17802SFConst.UPD_DTM_BF , str_upd_dtm);

		///// 共有フォーム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からMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();

		JCCWebCommon.setScreenInfo( this, JKKScreenConst.SCREEN_ID_KKW17802,  childMap);
		JCCWebCommon.setScreenId( this, JKKScreenConst.SCREEN_ID_KKW17802,  JKKScreenConst.SCREEN_ID_KKW17801);
		JCCWebCommon.setScreenId( this, JKKScreenConst.SCREEN_ID_KKW17804,  JCCWebCommon.getScreenId(this));
		
		// IT1-2013-0000229 2012.02.10 START ASARI;
//		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		// IT1-2013-0000229 2012.02.10 END ASARI;
		
		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);
		
		return true;
	}

	/**
	 * 戻るボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean back() 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;
	}
	
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0736_KKSV0736OPDBMapper mapper = new KKSV0736_KKSV0736OPDBMapper();
		mapper.setKKSV073601SC(paramBean, inputMap, func_code);
		mapper.setKKSV073602SC(paramBean, inputMap, func_code);

		return;
	}

	/**
	 * サービスフォームBean項目と手動リンク一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		KKSV0736_KKSV0736OPDBMapper mapper = new KKSV0736_KKSV0736OPDBMapper();

		mapper.getKKSV073601SC(paramBean, outputMap);
		mapper.getKKSV073602SC(paramBean, outputMap);
		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;
	}
}
