/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0400_KKSV0400OPDBMapper
*	ソースファイル名：KKSV0400_KKSV0400OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年04月14日
*＜機能概要＞
*	BP（機器提供サービス契約解約初期表示サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/14	Fujitsu		新規作成
*	v2.00.00	2012/06/25	Fujitsu		ANK-0323-00-00 対応
*										KKSV040004SC、KKSV0400CC削除
*	v5.00.00	2013/02/08	FJ)磯俣		ANK-1439-00-00 契約日の表示をサービス起算日から取得する
*	v7.00.00	2014/01/17	FJ)鳩本		IT1-2014-0000012 対応(品質強化)
*										KKSV040003SC 不要のため削除
*	v18.00.00	2015/08/14	FJ)阪口		【ANK-2631-00-00】ワンストップ案件（ＳＴＥＰ１）※koptWebBからkoptWebAへコピー
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.web.webview.KKA15401SF.KKW03301SFConst;


/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0400_KKSV0400OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0400_KKSV0400OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約解約
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV040001SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, X31SDataBeanAccess select_list) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 画面選択情報の取得
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 機器提供サービス契約番号 → 機器情報取得マップ.ＫＥＹ＿機器提供サービス契約番号
//		parentMap.put("key_kktk_svc_kei_no", bean[0].sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_kktk_svc_kei_no", select_list.sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 機器情報取得マップ.ＫＥＹ＿世代登録年月日時分秒
		parentMap.put("key_gene_add_dtm", String.valueOf(""));
		// 予約適用年月日 → 機器情報取得マップ.ＫＥＹ＿予約適用年月日
//		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW03301SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV040001SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：機器提供サービス契約解約
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV040002SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 部品呼び出し → 処置区分リスト紹介マップ.ＫＥＹ＿コード種別コード
		parentMap.put("key_cd_sbt_cd", String.valueOf("CD01246"));
		// 予約適用年月日 → 解約区分リスト照会マップ.ＫＥＹ＿基準年月日
//		parentMap.put("key_stdardymd", bean[0].sendMessageString(KKW03301SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("key_stdardymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));

		
		
		outputMap.put("KKSV040002SC", parentMap);
						
		return outputMap;
	}

	/* ++++++++++ v7.00.00 削除開始 ++++++++++ */
//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：機器提供サービス契約解約
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setKKSV040003SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
//		
//		if(bean == null){
//			return null;
//		}
//		
//		if(bean.length != 1){
//			return null;
//		}
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 共通情報のマッピング
//		parentMap.put("func_code", func_code);
//
//		// 機器型式 → 宅内機器型式一意照会情報マップ.ＫＥＹ＿宅内機器型式コード
//		parentMap.put("key_taknkiki_model_cd", bean[0].sendMessageString(KKW03301SFConst.KIKI_MODEL_DISP, X31CWebConst.DATABEAN_GET_VALUE));
//
//		outputMap.put("KKSV040003SC", parentMap);
//						
//		return outputMap;
//	}
	/* ++++++++++ v7.00.00 削除完了 ++++++++++ */
	
//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：機器提供サービス契約解約
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setKKSV0400CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
//		
//		if(bean == null){
//			return null;
//		}
//		
//		if(bean.length != 1){
//			return null;
//		}
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		parentMap.put("func_code", func_code);
//		
//		// 引継情報を取得
//		X31SDataBeanAccessArray custKeiHktgiList =  bean[0].getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
//		X31SDataBeanAccess custKeiHktgiInfo = custKeiHktgiList.getDataBean(0);
//
//		// サービス契約番号 → 機器情報取得マップ.ＫＥＹ＿サービス契約番号
//		parentMap.put("key_svc_kei_no", custKeiHktgiInfo.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
//
//		// 016（オプション解約） → 異動予約一覧照会マップ.ＫＥＹ＿異動予約詳細コード
//		parentMap.put("key_ido_rsv_dtl_cd", String.valueOf("016"));
//		// 03"予約手続中"、または、00"未反映" →異動予約一覧照会.ＫＥＹ＿異動予約状態コード
//		parentMap.put("key_ido_rsv_stat_cd", String.valueOf("03"));
//		// 予約適用年月日 → 異動予約一覧照会.ＫＥＹ＿予約適用年月日
////		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW03301SFConst.RSV_APLY_YMD, X31CWebConst.DATABEAN_GET_VALUE));
//		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
//		
//		outputMap.put("KKSV0400CC", parentMap);
//						
//		return outputMap;
//	}

//	/**
//	 * 上りマッピングをする
//	 * @param bean　[0]：機器提供サービス契約解約
//	 * @param outputMap
//	 * @param func_code　機能コード
//	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setKKSV040004SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
//		
//		if(bean == null){
//			return null;
//		}
//		
//		if(bean.length != 1){
//			return null;
//		}
//
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 共通情報のマッピング
//		parentMap.put("func_code", func_code);
//
//		// 配送番号 → 配送一意情報マップ.ＫＥＹ＿配送番号
////		parentMap.put("key_haiso_no", bean[0].sendMessageString("配送番号", X31CWebConst.DATABEAN_GET_VALUE));
//		parentMap.put("key_haiso_no", bean[0].sendMessageString(KKW03301SFConst.HAISO_NO, X31CWebConst.DATABEAN_GET_VALUE));
//
//		// 予約適用年月日 → 配送一意情報マップ.ＫＥＹ＿運用日
////		parentMap.put("key_aply_ymd", bean[0].sendMessageString("予約適用年月日", X31CWebConst.DATABEAN_GET_VALUE));
//		parentMap.put("key_aply_ymd", bean[0].sendMessageString(KKW03301SFConst.UNYO_YMD, X31CWebConst.DATABEAN_GET_VALUE));
//		// 配送ステータス
////		parentMap.put("haiso_stat", bean[0].sendMessageString("配送ステータス", X31CWebConst.DATABEAN_GET_VALUE));
//		parentMap.put("haiso_stat", bean[0].sendMessageString(KKW03301SFConst.HAISO_STAT, X31CWebConst.DATABEAN_GET_VALUE));
//		
//		outputMap.put("KKSV040004SC", parentMap);
//						
//		return outputMap;
//	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約解約
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV040001SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV040001SC")){
			parentMap = (HashMap)outputMap.get("KKSV040001SC");
		}

		ArrayList childList = null;
		
		childList = null;
		if(parentMap.containsKey("EKK0341A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0341A010CBSMsg1List");
			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap)childList.get(0);

				// 機器提供サービスコード ← 機器情報取得マップ.機器提供サービス契約一意照会明細.機器提供サービスコード
				bean[0].sendMessageString(KKW03301SFConst.KKTK_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_cd"));
				
				// 機器型式 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.宅内機器型式コード
//				bean[0].sendMessageString(KKW03301SFConst.KIKI_MODEL, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_model_cd"));
				bean[0].sendMessageString(KKW03301SFConst.KIKI_MODEL_DISP, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_model_cd"));

				// 提供種別 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.機器提供種別コード名称
//				bean[0].sendMessageString(KKW03301SFConst.TK_SBT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd_nm"));
				bean[0].sendMessageString(KKW03301SFConst.TK_SBT_DISP, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd_nm"));

				// 販売種別 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.販売種別コード名称
//				bean[0].sendMessageString(KKW03301SFConst.HAMBAI_SBT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hambai_sbt_cd_nm"));
				bean[0].sendMessageString(KKW03301SFConst.HAMBAI_SBT_DISP, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hambai_sbt_cd_nm"));

				// 機器製造番号 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.機器製造番号
				bean[0].sendMessageString(KKW03301SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_seizo_no"));

				// 機器提供開始年月日 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.保証開始年月日
//				bean[0].sendMessageString(KKW03301SFConst.KIKI_TK_STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hosho_staymd"));
				// v5.00.00 ANK-1439-00-00 Start
//				bean[0].sendMessageString(KKW03301SFConst.KIKI_KEIYAKU_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_chrg_staymd"));
				// 契約年月日 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.サービス開始起算年月日
				bean[0].sendMessageString(KKW03301SFConst.KIKI_KEIYAKU_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_sta_kisan_ymd"));
				// v5.00.00 ANK-1439-00-00 End
				
				// サービス開始年月日 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.サービス開始年月日
				bean[0].sendMessageString(KKW03301SFConst.SVC_STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_sta_ymd"));
				
//				// 申込明細番号 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.申込明細番号
//				bean[0].sendMessageString(KKW03301SFConst.MSKM_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskm_dtl_no"));
//				
//				// 申込明細番号 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.申込明細番号
//				bean[0].sendMessageString("機器変更番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kiki_chg_no"));
				
				// 削除
//				// サービス契約内訳番号 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.サービス契約内訳番号
//				bean[0].sendMessageString(KKW03301SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_ucwk_no"));
				// 削除
				// 更新年月日時分秒 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.更新年月日時分秒
//				bean[0].sendMessageString(KKW03301SFConst.UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));

				// 不明★ 前画面で取得済みのため不要？
				// 機器提供サービス契約ステータス ← 機器情報取得マップ.機器提供サービス契約一意照会明細.機器提供サービス契約ステータス
//				bean[0].sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_svc_kei_stat"));

				// 不明★ 前画面で取得済みのため不要？
				// 機器提供種別コード ← 機器情報取得マップ.機器提供サービス契約一意照会明細.機器提供種別コード
//				bean[0].sendMessageString(KKW03301SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktk_sbt_cd"));

				// 不明★
				// 機器提供サービス契約世代登録年月日時分秒 ← 機器情報取得マップ.機器提供サービス契約一意照会明細.機器提供サービス契約世代登録年月日時分秒
//				bean[0].sendMessageString(KKW03301SFConst.KKTSVKEI_GADTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kktsvkei_gadtm"));

			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：機器提供サービス契約解約
	 * @param outputMap
	 * @param kktk_svc_kei_stat：機器提供サービス契約ステータス
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV040002SC(X31SDataBeanAccess[] bean, HashMap outputMap, String kktk_svc_kei_stat){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV040002SC")){
			parentMap = (HashMap)outputMap.get("KKSV040002SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listKKSV040002SC_dsl_div_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray("解約区分");

		listKKSV040002SC_dsl_div_EZM0171B012CBSMsg1List.clearArray();

		childList = null;
		if(parentMap.containsKey("EZM0171B012CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");

			// DataBeanの構造と合わないため、追記
			X31SDataBeanAccess subbean = listKKSV040002SC_dsl_div_EZM0171B012CBSMsg1List.addDataBean();
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				String divValue = (String)childMap.get("cd_div");
				
				//機器提供サービス契約ステータス(kktk_svc_kei_stat)が受付済("010")、照査済("020")、キャンセル済("920")の場合
				if("010".equals(kktk_svc_kei_stat) || "020".equals(kktk_svc_kei_stat) || "920".equals(kktk_svc_kei_stat))
				{
					//解約区分（dsl_div）はキャンセル（"90"）のみ表示
					if("90".equals(divValue))
					{
						// 解約区分.コードタイプコード値リスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分
						subbean.sendMessageString("コードタイプコード値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
						// 解約区分.コードタイプ名称リスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
						subbean.sendMessageString("コードタイプ名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
						// 解約区分.初期設定コードリスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
						subbean.sendMessageString("初期設定コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
					}
				}
				//機器提供サービス契約ステータス(kktk_svc_kei_stat)が締結済("030")、サービス提供中("100")、
				//停止中("220")、休止・中断中("210")、解約済("910")の場合
				else if("030".equals(kktk_svc_kei_stat) || "100".equals(kktk_svc_kei_stat)
						|| "210".equals(kktk_svc_kei_stat) || "220".equals(kktk_svc_kei_stat) || "910".equals(kktk_svc_kei_stat))
				{
					//解約区分（dsl_div）は解約（"10"）のみ表示
					if("10".equals(divValue))
					{
						// 解約区分.コードタイプコード値リスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分
						subbean.sendMessageString("コードタイプコード値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
						// 解約区分.コードタイプ名称リスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
						subbean.sendMessageString("コードタイプ名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
						// 解約区分.初期設定コードリスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
						subbean.sendMessageString("初期設定コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
					}
				}
//				else
//				{
//					// 解約区分.コードタイプコード値リスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分
//					subbean.sendMessageString("コードタイプコード値リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));
//					// 解約区分.コードタイプ名称リスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
//					subbean.sendMessageString("コードタイプ名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div_nm"));
//					// 解約区分.初期設定コードリスト ← 解約区分リスト照会マップ.コード名称管理コード区分一覧照会明細.コード区分名
//					subbean.sendMessageString("初期設定コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
//				}
			}
		}
		return bean;
	}
	
	/* ++++++++++ v7.00.00 削除開始 ++++++++++ */
//	/**
//	 * 下りマッピング
//	 * @param bean　[0]：機器提供サービス契約解約
//	 * @param outputMap
//	 */
//	@SuppressWarnings("unchecked")
//	public X31SDataBeanAccess[] getKKSV040003SC(X31SDataBeanAccess[] bean, HashMap outputMap){
//
//		HashMap parentMap = null;
//		if(outputMap.containsKey("KKSV040003SC")){
//			parentMap = (HashMap)outputMap.get("KKSV040003SC");
//		}
//
//		ArrayList childList = null;
//		if(parentMap.containsKey("EZM0411A010CBSMsg1List")){
//			childList = (ArrayList)parentMap.get("EZM0411A010CBSMsg1List");
//
//			if (childList.size() > 0){
//				HashMap childMap = (HashMap)childList.get(0);
//				
//				// 宅内機器種別コード ← 宅内機器型式一意照会情報マップ.宅内機器型式一意照会明細.宅内機器種別コード
//				bean[0].sendMessageString(KKW03301SFConst.TAKNKIKI_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taknkiki_sbt_cd"));
//				
////				// USIM有無 ← 宅内機器型式一意照会情報マップ.宅内機器型式一意照会明細.USIM有無
////				bean[0].sendMessageString(KKW03301SFConst.USIM_UM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("usim_um"));
//			}
//		}
//		return bean;
//	}
	/* ++++++++++ v7.00.00 削除完了 ++++++++++ */

//	/**
//	 * 下りマッピング
//	 * @param bean　[0]：機器提供サービス契約解約
//	 * @param outputMap
//	 */
//	@SuppressWarnings("unchecked")
//	public X31SDataBeanAccess[] getKKSV0400CC(X31SDataBeanAccess[] bean, HashMap outputMap){
//
//		HashMap parentMap = null;
//		if(outputMap.containsKey("KKSV0400CC")){
//			parentMap = (HashMap)outputMap.get("KKSV0400CC");
//		}
//		// 引継情報を取得
//		
//		//前画面から引き継いだ機器提供サービス契約番号
//		String kktk_svc_kei_no_bf = bean[0].sendMessageString(KKW03301SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
//		
//		//各種情報処理取得済み機器契約サービス番号配列
//		//(IPV6対応である機器台数の取得で一覧作成後、IPv6オプション、異動予約に登録されている機器台数取得時に
//		// 取得対象の機器契約サービス番号一覧として再利用)
//		ArrayList<String> kktk_svc_kei_no_actAll = new ArrayList<String>();
//
//		// IPV6対応である機器台数の取得
//		int upv6taioCnt = 0;
//		if(parentMap.containsKey("EZM0411A010CBSMsg1List") && parentMap.containsKey("EKK0341A010CBSMsg1List")){
//			ArrayList childListEZM0411A010 = null;
//			ArrayList childListEKK0341A010 = null;
//
//			childListEZM0411A010 = (ArrayList)parentMap.get("EZM0411A010CBSMsg1List");
//			childListEKK0341A010 = (ArrayList)parentMap.get("EKK0341A010CBSMsg1List");
//			// DataBeanの構造と合わないため、追記
//
//			for(int i = 0; i < childListEZM0411A010.size(); i++){
//				HashMap childMapEZM0411A010 = (HashMap)childListEZM0411A010.get(i);
//				HashMap childMapEKK0341A010 = (HashMap)childListEKK0341A010.get(i);
//				
//				//解約処理中の機器提供サービス契約番号ではない
//				if(!kktk_svc_kei_no_bf.equals((String)childMapEKK0341A010.get("kktk_svc_kei_no"))){
//
//					//処理中の機器は解約済(910)orキャンセル済(920)以外
//					if(!("910".equals((String)childMapEKK0341A010.get("kktk_svc_kei_stat")) 
//							|| "920".equals((String)childMapEKK0341A010.get("kktk_svc_kei_stat")))){
//
//						//処理中の機器提供サービスコードが未処理かチェック
//						if(kktk_svc_kei_no_actAll.indexOf((String)childMapEKK0341A010.get("kktk_svc_kei_no")) == -1){
//
//							//IPv6対応か
//							if ("1".equals((String)childMapEZM0411A010.get("ipv6_taio_flg"))){
//								upv6taioCnt = upv6taioCnt + 1;
//							}
//							
//							//処理済みとして以後実行しないよう配列に追加
//							kktk_svc_kei_no_actAll.add((String)childMapEKK0341A010.get("kktk_svc_kei_no"));
//						}
//					}
//				}
//			}
//		}
//
//		// IPV6対応である機器台数 ← オプションサービス契約一意照会マップ.オプションサービスコードが「IPv6アドレス」
//		bean[0].sendMessageString(KKW03301SFConst.IPV6_TAIO_DAISU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(upv6taioCnt));
//
//		// オプションサービス契約にてオプションサービスコードがIPv6オプションである機器台数の取得
//		int ipv6opCnt = 0;
//		if(parentMap.containsKey("EKK0351B010CBSMsg1List") && parentMap.containsKey("EKK0341B008CBSMsg1List")){
//			ArrayList childListEKK0351B010 = null;
////			ArrayList childListEKK0341B008 = null;
//
//			childListEKK0351B010 = (ArrayList)parentMap.get("EKK0351B010CBSMsg1List");
////			childListEKK0341B008 = (ArrayList)parentMap.get("EKK0341B008CBSMsg1List");
//			ipv6opCnt = childListEKK0351B010.size();
//			// DataBeanの構造と合わないため、追記
//			
////			ArrayList<String> kktk_svc_kei_no_actIpv6op = new ArrayList<String>();
////
//			X31SDataBeanAccessArray ipv6List = bean[0].getDataBeanArray(KKW03301SFConst.IPV6_OP_SVC_KEI_LIST);
//			ipv6List.clearArray();
//			for(int i = 0; i < childListEKK0351B010.size(); i++){
//				HashMap childMapEKK0351B010 = (HashMap)childListEKK0351B010.get(i);
////				opSvcKeiNoLst.add((String)childMapEKK0351B010.get("op_svc_kei_no"));
//				X31SDataBeanAccess subbean = ipv6List.addDataBean();
////				subbean.sendMessageString(KKW03301SFConst.IPV6_OP_SVC_KEI_NO_03, X31CWebConst.DATABEAN_SET_VALUE,
////						(String)childMapEKK0351B010.get("op_svc_kei_no"));
//				subbean.sendMessageString(KKW03301SFConst.IPV6_OP_SVC_KEI_NO_16, X31CWebConst.DATABEAN_SET_VALUE,
//						(String)childMapEKK0351B010.get("op_svc_kei_no"));
//
//				bean[0].sendMessageObject(KKW03301SFConst.IPV6_OP_SVC_KEI_LIST, X31CWebConst.DATABEAN_ADD_VALUE, subbean);
//			}
////
////				HashMap childMapEKK0341B008 = (HashMap)childListEKK0341B008.get(i);
////				
////				//処理中の機器提供サービスコードが未処理かチェック
////				if(kktk_svc_kei_no_actIpv6op.indexOf((String)childMapEKK0341B008.get("kktk_svc_kei_no")) == -1){
////
////					//取得対象の機器契約サービス番号か
////					if(kktk_svc_kei_no_actAll.indexOf((String)childMapEKK0341B008.get("kktk_svc_kei_no")) >= 0){
////						
////						HashMap childMapEKK0351B010 = (HashMap)childListEKK0351B010.get(i);
////
////						// TODO: オプションサービスコードが「BZZZ」か要確認
////						if ("B048".equals((String)childMapEKK0351B010.get("op_svc_cd"))){
////							if ("BZZZ".equals((String)childMapEKK0351B010.get("op_svc_cd"))){
////
////								ipv6opCnt = ipv6opCnt + 1;
////								
////							}
////						}
////
////						//処理済みとして以後実行しないよう配列に追加
////						kktk_svc_kei_no_actIpv6op.add((String)childMapEKK0341B008.get("kktk_svc_kei_no"));
////					}
////				}
////			}
//		}
//		// 解約後IPV6台数 ← オプションサービス契約一意照会マップ.オプションサービスコードが「IPv6アドレス」
//		bean[0].sendMessageString(KKW03301SFConst.IPV6_OP_DAISU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(ipv6opCnt));
//
//		// IPv6機器が異動予約に登録されている機器台数の台数の取得
//		int ipv6idorsvCnt = 0;
//		if(parentMap.containsKey("EKK1681A010CBSMsg1List")){
//			ArrayList childListEKK1681A010 = null;
//			
//			childListEKK1681A010 = (ArrayList)parentMap.get("EKK1681A010CBSMsg1List");
//			// DataBeanの構造と合わないため、追記
//
//			ArrayList<String> kktk_svc_kei_no_actIpv6idorsv = new ArrayList<String>();
//			ArrayList<String> ido_rsv_no_actIpv6idorsv = new ArrayList<String>();
//
//			for(int i = 0; i < childListEKK1681A010.size(); i++){
//				
//				HashMap childMapEKK1681A010 = (HashMap)childListEKK1681A010.get(i);
//
//				//処理中の機器提供サービスコードが未処理かチェック
//				if(kktk_svc_kei_no_actIpv6idorsv.indexOf((String)childMapEKK1681A010.get("kktk_svc_kei_no")) == -1){
//
//					//処理中の異動予約番号が未処理かチェック
//					if(ido_rsv_no_actIpv6idorsv.indexOf((String)childMapEKK1681A010.get("ido_rsv_no")) == -1){
//
//						//取得対象の機器契約サービス番号か
//						if(kktk_svc_kei_no_actAll.indexOf((String)childMapEKK1681A010.get("kktk_svc_kei_no")) >= 0){
//							ipv6idorsvCnt = ipv6idorsvCnt + 1;
//
//							//処理済みとして以後実行しないよう配列に追加
//							kktk_svc_kei_no_actIpv6idorsv.add((String)childMapEKK1681A010.get("kktk_svc_kei_no"));
//							ido_rsv_no_actIpv6idorsv.add((String)childMapEKK1681A010.get("ido_rsv_no"));
//						}
//					}
//				}
//			}
//		}
//		// 異動予約機器台数 ← 異動予約一意照会リストマップ.機器提供契約サービス契約番号が有効なものの総数
//		bean[0].sendMessageString(KKW03301SFConst.IPV6_IDO_RSV_DAISU, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(ipv6idorsvCnt));
//		
//		if(parentMap.containsKey("EKK0341A010CBSMsg1List") ){
//			ArrayList childListEKK0341A010 = null;
//			
//			childListEKK0341A010 = (ArrayList)parentMap.get("EKK0341A010CBSMsg1List");
//			HashMap childMaptEKK0341A0100 = (HashMap)childListEKK0341A010.get(0);
//		
//			// 機器変更番号 ← 機器変更番号
//			bean[0].sendMessageString(KKW03301SFConst.KIKI_CHG_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMaptEKK0341A0100.get("kiki_chg_no"));
//		}
//
//		return bean;
//	}
	
//	/**
//	 * 下りマッピング
//	 * @param bean　[0]：機器提供サービス契約解約
//	 * @param outputMap
//	 */
//	@SuppressWarnings("unchecked")
//	public X31SDataBeanAccess[] getKKSV040004SC(X31SDataBeanAccess[] bean, HashMap outputMap){
//
//		HashMap parentMap = null;
//		if(outputMap.containsKey("KKSV040004SC")){
//			parentMap = (HashMap)outputMap.get("KKSV040004SC");
//		}
//
//		ArrayList childList = null;
//		if(parentMap.containsKey("EDK0011A010CBSMsg1List")){
//			childList = (ArrayList)parentMap.get("EDK0011A010CBSMsg1List");
//
//			if (childList.size() > 0){
//				HashMap childMap = (HashMap)childList.get(0);
//				
//				// 更新年月日時分秒＿配送 ← 配送一意照会情報マップ.配送一意照会明細.更新年月日時分秒
////				bean[0].sendMessageString(KKW03301SFConst.UPD_DTM_HAISO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
//				
//			}
//		}
//		return bean;
//	}

	
	/**
	 * KKW03301機器提供サービス契約一覧画面で選択した一覧情報を返します。
	 * @param bean
	 * @return
	 */
	private X31SDataBeanAccess getSelectList(X31SDataBeanAccess[] bean)
	{
		// KKW03301機器提供サービス契約一覧画面で選択した機器情報を取得する。
		String selectRow = bean[0].sendMessageString(KKW03301SFConst.SELECTROW, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 機器提供サービス契約一覧明細リストを取得する。
		X31SDataBeanAccessArray service_list = bean[0].getDataBeanArray(KKW03301SFConst.SERVICE_LIST);
		
		// 画面選択した一覧を返す
		return service_list.getDataBean(Integer.parseInt(selectRow));
	}
}
