/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：顧客契約
*	モジュール名	：KKW00154SFLogic
*	ソースファイル名：KKW00154SFLogic.java
*	作成者			：Fj
*	日付			：2011年05月21日
*＜機能概要＞
*	登録内容修正選択機能のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/05/21	FJ）富士通 	新規作成
 *	v4.00.00	2013/02/28  FJ) 江藤	【IT1-2012-0002413】 サービス契約共通ヘッダに予約状況追加
*	v41.00.00	2019/02/27	FJ)中野		【ANK-3387-00-00】マンションタイプ光コンセントサービス導入
**********************************************************************/
package eo.web.webview.KKW00154SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.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.JPCModelConstant;
import eo.common.util.JPCUtilCommon;
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.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0077_KKSV0077OPDBMapper;


/**
 * <dd>クラス名：登録内容修正選択ビューロジック
 * <dd>クラス説明：画面上のボタン押下時の各処理を記述します。
 * <dd>備考：
 * @version  1.0 2011/05/13
 * @author   富士通
 */
@SuppressWarnings("serial")
public class KKW00154SFLogic 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,
		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_IDO_RSN_MEMO			//2012-04-30追加　UI残65「異動理由の要否について」
	};
	
	/**
	 * 料金グループコード
	 */
	private String prc_grp_cd = null;
	
	/**
	 * 運用年月日
	 */
	private String unyo_ymd = null;
	/**
	 * 登録内容修正選択画面初期表示処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception
	{

		//ユースケースID格納用のHashMap
		HashMap<String, Object> paramMap = null;
		//マッピングクラスの結果を格納するHashMap
		HashMap<String, Object> inputMap = null;
		//サービス呼出結果を格納するHashMap
		HashMap<String, Object> outputMap = null;
		
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		// 画面跨り共有情報設定処理
		init_Data_KKW00154SFBean(svcFormBean);
		
		// 運用年月日
		unyo_ymd  = JCCWebCommon.getOpeDate(this, null);
		
		svcFormBean.sendMessageString(KKW00154SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
		
		paramMap = new HashMap<String, Object>();		//パラメタマップ生成
		inputMap = new HashMap<String, Object>();		//インプットマップ生成
		outputMap = new HashMap<String, Object>();		//アウトプットマップ生成
		
		// サービスパラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0077);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0077OP);
		
		// マッピング用paramBeanセット
		X31SDataBeanAccess[] paramBean = {svcFormBean};
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0077_KKSV0077OPDBMapper mapper = new KKSV0077_KKSV0077OPDBMapper();
		
		// 上りマッピング
		// サービス契約一意照会SC
		mapper.setKKSV007701SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		
		// サービス契約共通情報一覧照会
		mapper.setKKSV007702SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// 
		mapper.setKKSV007703SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// 
		mapper.setKKSV007704SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		//割引サービス契約一覧照会（割引サービス指定）
		mapper.setKKSV007705SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		// 2012/07/11 IT2-2012-0001239 ADD START
		mapper.setKKSV007706SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		// 2012/07/11 IT2-2012-0001239 ADD END
		
		// ANK-3387-00-00 ADD START
		// 提供方式契約一意照会SC
		mapper.setKKSV007707SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		// ANK-3387-00-00 ADD END

		// 登録内容修正選択初期表示サービス実施
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// 下りマッピング
		// サービス契約一意照会SC
		mapper.getKKSV007701SC(paramBean, outputMap);
		
		// 2012/07/11 IT2-2012-0001239 ADD START
		mapper.getKKSV007706SC(paramBean, outputMap);
		// 2012/07/11 IT2-2012-0001239 ADD END
		
		// ANK-3387-00-00 ADD START
		mapper.getKKSV007707SC(paramBean, outputMap);
		// ANK-3387-00-00 ADD END
		
//		//サービス契約照会共通画面読み込み
//		HashMap<String, Object> dataMap = new HashMap<String, Object>();
//		JKKWebCommon.setSvckeiInfo(this, dataMap);

		// サービス契約共通項目の設定
		JKKWebCommon.setSvckeiInfo(this, getSvckeiCommonMap(outputMap,paramBean));
		
		
		commoninfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00154);
		commoninfoBean.sendMessageString( CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00154);

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
	
		return true;
	}
	
	/**
	 * 登録内容修正選択画面「申込情報」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionMskminfo() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		//セッション情報引渡処理
		HashMap<String, Object> dataMap = set_Session_KKW00154SFBean(svcFormBean);
		
		//画面情報を設定（申込情報更新画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00127, dataMap);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00127, JKKScreenConst.SCREEN_ID_KKW00154);

		//戻り遷移で呼ばれた際に必要な引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00154, dataMap);

		//共有フォームBean設定(申込情報更新画面)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00127);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00127);
		
		return true;
	}
	
	/**
	 * 登録内容修正選択画面「サービス情報」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionSvcinfo() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		//サービス契約情報
		X31SDataBeanAccessArray svc_kei_Info = svcFormBean.getDataBeanArray(KKW00154SFConst.EKK0081A010CBSMSG1LIST);
		X31SDataBeanAccess svc_kei_subbean = svc_kei_Info.getDataBean(0);
		
		//セッション情報引渡処理
		HashMap<String, Object> dataMap = set_Session_KKW00154SFBean(svcFormBean);
		
		//料金グループコード取得
		prc_grp_cd = svc_kei_subbean.sendMessageString(KKW00154SFConst.PRC_GRP_02, X31CWebConst.DATABEAN_GET_VALUE);

		//戻り遷移で呼ばれた際に必要な引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00154, dataMap);
		
		if(prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_02) || (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_03))
				|| (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_04)))
		{
			//画面情報を設定（サービス契約更新画面（eo光ネット））
			JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00128, dataMap);
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00128, JKKScreenConst.SCREEN_ID_KKW00154);
			
			//画面遷移先を設定（サービス契約更新画面（eo光ネット））
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00128);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00128);
		}
		else if(prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_11) || (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_12))
				|| (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_13)))
		{
			//画面情報を設定（サービス契約更新画面（eo光テレビ））
			JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00129, dataMap);
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00129, JKKScreenConst.SCREEN_ID_KKW00154);
			
			//画面遷移先を設定（サービス契約更新画面（eo光テレビ））
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00129);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00129);
		}
		else if(prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_10))
		{
			//画面情報を設定（サービス契約更新画面（eo光電話））
			JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00130, dataMap);
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00130, JKKScreenConst.SCREEN_ID_KKW00154);
			
			//画面遷移先を設定（サービス契約更新画面（eo光電話））
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00130);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00130);
		}
		else if(prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_07) || (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_08))
				|| (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_09)))
		{
			//画面情報を設定（サービス契約更新画面（eoモバイル））
			JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00131, dataMap);
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00131, JKKScreenConst.SCREEN_ID_KKW00154);
			
			//画面遷移先を設定（サービス契約更新画面（eoモバイル））
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00131);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00131);
		}
		else if(prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_05) || (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_06)))
		{
			//画面情報を設定（サービス契約更新画面（eoADSL））
			JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00132, dataMap);
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00132, JKKScreenConst.SCREEN_ID_KKW00154);
			
			//画面遷移先を設定（サービス契約更新画面（eoADSL））
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00132);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00132);
		}
		// ▼▼▼▼▼ 2012/10/31 IT1-2012-0001767 ADD START ▼▼▼▼▼
		// 料金グループ「ｅｏモバイル（メールアドレスのみ）」追加
		else if (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_16))
		{
			// 画面情報を設定（サービス契約更新画面（eoモバイル））
			JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00131, dataMap);
			JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00131, JKKScreenConst.SCREEN_ID_KKW00154);

			// 画面遷移先を設定（サービス契約更新画面（eoモバイル））
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00131);
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00131);
		}
		// ▲▲▲▲▲ 2012/10/31 IT1-2012-0001767 ADD E N D ▲▲▲▲▲
		
		return true;
	}

	/**
	 * 登録内容修正選択画面「機器情報」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionKikiinfo() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		//セッション情報引渡処理
		HashMap<String, Object> dataMap = set_Session_KKW00154SFBean(svcFormBean);
		
		//画面情報を設定（機器提供サービス契約一覧画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW03301, dataMap);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW03301, JKKScreenConst.SCREEN_ID_KKW00154);
		
		//戻り遷移で呼ばれた際に必要な引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00154, dataMap);

		//共有フォームBean設定(機器提供サービス契約一覧画面)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW03301);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW03301);
		
		return true;
	}
	
	/**
	 * 登録内容修正選択画面「工事情報」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionKojiinfo() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		//セッション情報引渡処理
		HashMap<String, Object> dataMap = set_Session_KKW00154SFBean(svcFormBean);
		
		//画面情報を設定（工事情報登録画面面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00401, dataMap);
		
		//戻り遷移で呼ばれた際に必要な引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00154, dataMap);
		
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW00401, JKKScreenConst.SCREEN_ID_KKW00154);
		
		//共有フォームBean設定(工事情報登録画面)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00401);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW00401);
		
		return true;
	}
	
	/**
	 * 登録内容修正選択画面「請求契約情報」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionSeikykei() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		//セッション情報引渡処理
		HashMap<String, Object> dataMap = set_Session_KKW00154SFBean(svcFormBean);
		
		//画面情報を設定（請求契約更新画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01601, dataMap);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW01601, JKKScreenConst.SCREEN_ID_KKW00154);
		
		//戻り遷移で呼ばれた際に必要な引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00154, dataMap);
		
		//共有フォームBean設定(請求契約更新画面)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW01601);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW01601);
		
		return true;
	}

	// ANK-1756-00-00 データ抽出項目設定に紹介CPを登録する際、紹介コードを登録（OM-912） 2014/01/29 START
	/**
	 * 登録内容修正選択画面「紹介情報」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 * @remarks
	 */
	public boolean actionIntrinfo() throws Exception
	{
		//共有Bean アクセスクラスの取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		//サービスフォームBean アクセスクラスの取得	
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		
		//セッション情報引渡処理
		HashMap<String, Object> dataMap = set_Session_KKW00154SFBean(svcFormBean);
		
		//画面情報を設定（紹介コード更新画面）
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW01034, dataMap);
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW01034, JKKScreenConst.SCREEN_ID_KKW00154);
		
		//戻り遷移で呼ばれた際に必要な引継情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00154, dataMap);
		
		//共有フォームBean設定(紹介コード更新画面)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW01034);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW01034);
		
		return true;
	}
	// ANK-1756-00-00 データ抽出項目設定に紹介CPを登録する際、紹介コードを登録（OM-912） 2014/01/29 END
	
	/**
	 * 登録内容修正選択画面「戻る」ボタン押下時処理
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public boolean actionRn() throws Exception
	{
		//共有フォームBean設定
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * 引き継ぎ情報を取得し、登録内容修正選択サービスフォームBeanに設定する
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @return 正常終了:true 異常終了:false
	 * @throws Exception 
	 */
	public void init_Data_KKW00154SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{
		
		//引継ぎデータ
		JCCWebCommon.getScreenInfo(this);

		//引継ぎ項目の情報からデータ移し変え
		getSessionKKW00154SFBean(svcFormBean);
		
	}
	/**
	 * 引き継ぎ情報をセッションに設定する
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @return HashMap<String, Object>
	 * @throws Exception 
	 */
	public HashMap<String, Object> set_Session_KKW00154SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{
		
		HashMap<String, Object> dataMap;
		
		dataMap = getHktgiDataMap(
				svcFormBean, JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, 
				CUST_KEI_HKTGI_KEYS);
		
		return dataMap;
	}
	
	/**	
	 * 引き継ぎ情報を取得し、登録内容修正選択画面サービスフォームBeanに設定する	
	 * @param  svcFormBean  DataBeanアクセスクラス	
	 * @throws Exception 	
	 */	
	public void getSessionKKW00154SFBean(X31SDataBeanAccess svcFormBean) throws Exception	
	{
		
		///サービスフォームBeanから顧客契約引継リストを取得
		X31SDataBeanAccessArray obj = svcFormBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		
		//上記のリストから１要素を設定
		X31SDataBeanAccess bean = obj.getDataBean(0);
				
		String str = null;
		
		//SYSIDの移し変え
		str = bean.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00154SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, str);
		
		//サービス契約番号の移し変え
		str = bean.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00154SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, str);

		// 異動区分移し変え
		str = bean.sendMessageString(JKKCommonConst.HKTGI_IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		svcFormBean.sendMessageString(KKW00154SFConst.IDO_DIV, X31CWebConst.DATABEAN_SET_VALUE, str);

	}
	
	/**	
	 * <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;	
	}
	
	/**
	 * <dd>メソッド名：サービス契約共通マップ取得
	 * <dd>メソッド説明：サービス契約共通マップの生成を行う。
	 * <dd>備考：なし。
	 * @param outputMap サービスI/Fからの取得データマップ
	 * @return HashMap サービス契約共通マップ
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> getSvckeiCommonMap(HashMap<String, Object> outputMap, X31SDataBeanAccess[] paramBean)
	{
		HashMap<String, Object> svckeiCommonMap = new HashMap<String, Object>();
		
		// サービス契約情報
		HashMap<String, ArrayList<HashMap<String, String>>> svcKeiMap = (HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get("KKSV007702SC");
		if(svcKeiMap != null) 
		{
			ArrayList<HashMap<String, String>> svcKeiChildList = (ArrayList<HashMap<String, String>>)svcKeiMap.get("EKK0081B010CBSMsg1List");
			if (svcKeiChildList != null && 0 < svcKeiChildList.size())
			{
				HashMap<String, String> svcKeiChildMap = (HashMap<String, String>)svcKeiChildList.get(0);
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SVC_KEI_STAT, (String)svcKeiChildMap.get("svc_kei_stat_nm"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_MANSION_ID , (String)svcKeiChildMap.get("mansion_id"));
				// 20121009 KAD-2012-0000331 マンション名称に回線使用契約物件名を設定するよう変更 MOD START
//				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_MANSION_NM , (String)svcKeiChildMap.get("mansion_nm"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_MANSION_NM , (String)svcKeiChildMap.get("kisnusekei_bkn_nm"));
				// 20121009 KAD-2012-0000331 マンション名称に回線使用契約物件名を設定するよう変更 MOD END
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_KEISHA_NM , (String)svcKeiChildMap.get("cust_nm"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_TELNO , (String)svcKeiChildMap.get("keisha_telno"));
				String keishaAd = JPCUtilCommon.trim((String)svcKeiChildMap.get("keisha_state_nm")) +
								JPCUtilCommon.trim((String)svcKeiChildMap.get("keisha_city_nm")) +
								JPCUtilCommon.trim((String)svcKeiChildMap.get("keisha_oaztsu_nm")) +
								JPCUtilCommon.trim((String)svcKeiChildMap.get("keisha_azcho_nm")) +
								JPCUtilCommon.trim((String)svcKeiChildMap.get("keisha_bnchigo")) +
								JPCUtilCommon.trim((String)svcKeiChildMap.get("keisha_adrttm")) +
								JPCUtilCommon.trim((String)svcKeiChildMap.get("keisha_adrrm"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_KEISHA_AD , keishaAd);
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SVC_KEI_NO , (String)svcKeiChildMap.get("svc_kei_no"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SEIKY_KEI_NO , (String)svcKeiChildMap.get("seiky_kei_no"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SYSID , (String)svcKeiChildMap.get("sysid"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_EOID , (String)svcKeiChildMap.get("eoid"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_PRC_GRP , (String)svcKeiChildMap.get("prc_grp_nm"));
				//↓↓↓2012-07-17変更、ST2-2012-00001357対応↓↓↓
				//svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_PCRS , (String)svcKeiChildMap.get("pcrs_nm"));
				//ロット１より、料金プラン名
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_PCRS , (String)svcKeiChildMap.get("pplan_nm"));
				//↑↑↑2012-07-17変更、ST2-2012-00001357対応↑↑↑
				// 20121009 KAD-2012-0000331 P-IDを追加 ADD START
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_P_ID , (String)svcKeiChildMap.get("pid"));
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_CAT_ID , (String)svcKeiChildMap.get("catid"));
				// 20121009 KAD-2012-0000331 P-IDを追加 ADD END
				// 20130228 IT1-2012-0002413 ADD START
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_RSV_JOKYO , (String)svcKeiChildMap.get("rsv_jokyo"));
				// 20130228 IT1-2012-0002413 ADD END
				
			}

		}
		
		// ▼▼▼▼▼ 2012/11/13 IT1-2012-0001795 UPD START ▼▼▼▼▼
		// 割引サービス契約情報
//		HashMap<String, ArrayList<HashMap<String, String>>> wribSvcKeiMap = 
//			(HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get("KKSV007705SC");
//		if(wribSvcKeiMap != null) 
//		{
//			ArrayList<HashMap<String, String>> wribSvcKeiChildList = (ArrayList<HashMap<String, String>>)wribSvcKeiMap.get("EKK0451B010CBSMsg1List");
//			if (wribSvcKeiChildList != null && 0 < wribSvcKeiChildList.size())
//			{
//				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_FAMILY_PACK_UM , "有");
//			}
//			else
//			{
//				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_FAMILY_PACK_UM , "無");
//			}
//
//		}
		HashMap<?, ?> kksv007790cc = (HashMap<?, ?>) outputMap.get("KKSV007790CC");
		String family_pack_um = (String) kksv007790cc.get("family_pack_um");
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_FAMILY_PACK_UM, family_pack_um);
		// ▲▲▲▲▲ 2012/11/13 IT1-2012-0001795 UPD E N D ▲▲▲▲▲
		
		//サービス契約情報
		X31SDataBeanAccessArray svc_kei_Info = paramBean[0].getDataBeanArray(KKW00154SFConst.EKK0081A010CBSMSG1LIST);
		String prc_grp_cd = svc_kei_Info.getDataBean(0).sendMessageString(KKW00154SFConst.PRC_GRP_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_05)||prc_grp_cd.equals(JKKCommonConst.PRC_GRP_CD_06))
		{
			svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_ADSL_DSP_FLG ,"1");
		}
			else
		{	
			svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_ADSL_DSP_FLG ,"0");
		}
		
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_NEXT_TAB, "Tab2");

		HashMap<String, ArrayList<HashMap<String, String>>> cdNmKanriMap1 = (HashMap<String, ArrayList<HashMap<String, String>>>) outputMap
				.get("KKSV007703SC");
		if (cdNmKanriMap1 != null)
		{
			ArrayList<HashMap<String, String>> cdNmKanriMap1ChildList = (ArrayList<HashMap<String, String>>) cdNmKanriMap1
					.get("EZM0171A010CBSMsg1List");

			if (cdNmKanriMap1ChildList != null && cdNmKanriMap1ChildList.size() > 0)
			{
				HashMap<String, String> childMap = (HashMap<String, String>) cdNmKanriMap1ChildList.get(0);
				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_IDO_DIV, childMap.get("cd_div_nm"));
			}

		}

//		HashMap<String, ArrayList<HashMap<String, String>>> cdNmKanriMap2 = (HashMap<String, ArrayList<HashMap<String, String>>>) outputMap
//				.get("KKSV007704SC");
//		if (cdNmKanriMap2 != null) {
//			ArrayList<HashMap<String, String>> cdNmKanriMap2ChildList = (ArrayList<HashMap<String, String>>) cdNmKanriMap2
//					.get("EZM0171A010CBSMsg1List");
//
//			if (cdNmKanriMap2ChildList != null && cdNmKanriMap2ChildList.size() > 0)
//			{
//				HashMap<String, String> childMap = (HashMap<String, String>) cdNmKanriMap2ChildList.get(0);
//				svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_SVC_KEI_STAT, childMap.get("cd_div_nm"));
//			}
//		}

		//↓↓↓2012-03-08 ST2-2012-0000326対応↓↓↓
		//督促状態
		String tokusoku_stat_nm = (String) kksv007790cc.get("tokusoku_stat_nm");
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_TOKUSOKU_STAT, tokusoku_stat_nm);
		//↑↑↑2012-03-08 ST2-2012-0000326対応↑↑↑

		//↓↓↓2012-05-01巻@ルータ有無表示対応↓↓↓
		String router_sbt_nm = (String) kksv007790cc.get("router_sbt_nm");
		svckeiCommonMap.put(JKKCommonConst.SVCKEICOMMON_ID_ROUTER_SBT, router_sbt_nm);
		//↑↑↑2012-05-01巻@ルータ有無表示対応↑↑↑

		return svckeiCommonMap;
	}
}
