/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：KKSV1058_KKSV1058OPDBMapper
 *	ソースファイル名：KKSV1058_KKSV1058OPDBMapper.java
 *	作成者			：FJ) 寺田
 *	日付			：2025年05月14日
 *＜機能概要＞
 *	BP（STB撤去年月日登録画面_初期表示OP）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v75.00.00	 2025/05/14	  FJ) 寺田	  新規作成_【ANK-4673-00-03】テレビ新コース（スカパー用）導入対応　2025年6月フォロー案件
**********************************************************************/
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.KKW00405SF.KKW00405SFConst;
import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author 富士通
 */
public class KKSV1058_KKSV1058OPDBMapper
{
	/** コンボボックス先頭空白行有*/
	private static final boolean BLANK_ARI = true;
	/** コンボボックス先頭空白行無*/
	private static final boolean BLANK_NASI = false;
	
	/** コードタイプ名称リストにコード区分を設定*/
	private static final int SET_CODE_DIV = 99999999;

	/**
	 * コンストラクタ
	 */
	public KKSV1058_KKSV1058OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param sc_title　SCタイトル
	 * @param key_cd_sbt_cd　ＫＥＹ＿コード種別コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV1058ComboBox(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String sc_title, String key_cd_sbt_cd)
	{
		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", key_cd_sbt_cd);
		// 基準日 → ＫＥＹ＿基準日
		parentMap.put("key_stdardymd", bean[0].sendMessageString(KKW00405SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		outputMap.put(sc_title, parentMap);
		return outputMap;
	}

	
	/**
	 * 下りマッピング
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV105801SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV105801SC"))
		{
			parentMap = (HashMap)outputMap.get("KKSV105801SC");
			// ＳＴＢ撤去費用_有無
			setComboBoxMapping(bean[0], KKW00405SFConst.STB_TEKKYO_HIYO, parentMap, BLANK_NASI, 1);
		}
		return bean;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105802SC(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_ido_div", JKKCommonConst.IDO_DIV_VALUE_00009);
		// ＫＥＹ＿予約適用年月日 → 異動予約一覧照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW00405SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿異動予約詳細コード → 異動予約一覧照会マップ.ＫＥＹ＿異動予約詳細コード
		parentMap.put("key_ido_rsv_dtl_cd", "003");
		// ＫＥＹ＿サービス契約番号 → 異動予約一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString(KKW00405SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV105802SC", parentMap);
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV105802SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV105802SC"))
		{
			parentMap = (HashMap) outputMap.get("KKSV105802SC");
		}

		ArrayList childList = null;

		if (parentMap.containsKey("EKK1681B001CBSMsg1List"))
		{
			childList = (ArrayList) parentMap.get("EKK1681B001CBSMsg1List");

			if (childList.size() > 0)
			{
				for (int i = 0; i < childList.size(); i++)
				{
					HashMap<String, Object> childMap = (HashMap<String, Object>) childList.get(i);
					if ("00".equals(childMap.get("ido_rsv_stat_cd")) || "03".equals(childMap.get("ido_rsv_stat_cd")))
					{
						// コース変更予約 1件のみと想定し設定する。

						// ＳＴＢ変更申込情報リスト
						X31SDataBeanAccessArray idoRsvInfList = bean[0].getDataBeanArray(KKW00405SFConst.IDO_RSV_INF_LIST);
						idoRsvInfList.clearArray();
						X31SDataBeanAccess subbean = idoRsvInfList.addDataBean();

						// 異動予約番号
						subbean.sendMessageString(KKW00405SFConst.IDO_RSV_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_rsv_no"));
						// 異動区分
						subbean.sendMessageString(KKW00405SFConst.IDO_DIV_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_div"));
						// 異動予約詳細コード
						subbean.sendMessageString(KKW00405SFConst.IDO_RSV_DTL_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_rsv_dtl_cd"));
						// 予約適用年月日
						subbean.sendMessageString(KKW00405SFConst.RSV_APLY_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("rsv_aply_ymd"));
						// 異動予約反映年月日
						subbean.sendMessageString(KKW00405SFConst.IDO_RSV_HANEI_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_rsv_hanei_ymd"));
						// 異動予約取消年月日
						subbean.sendMessageString(KKW00405SFConst.IDO_RSV_CL_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_rsv_cl_ymd"));
						// 異動予約状態コード
						subbean.sendMessageString(KKW00405SFConst.IDO_RSV_STAT_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_rsv_stat_cd"));
						// 申込明細番号
						subbean.sendMessageString(KKW00405SFConst.MSKM_DTL_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("mskm_dtl_no"));
						// ＳＹＳＩＤ
						subbean.sendMessageString(KKW00405SFConst.SYSID_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("sysid"));
						// 請求契約番号
						subbean.sendMessageString(KKW00405SFConst.SEIKY_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("seiky_kei_no"));
						// サービス契約番号
						subbean.sendMessageString(KKW00405SFConst.SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_kei_no"));
						// サービス契約内訳番号
						subbean.sendMessageString(KKW00405SFConst.SVC_KEI_UCWK_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_kei_ucwk_no"));
						// オプションサービス契約番号
						subbean.sendMessageString(KKW00405SFConst.OP_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("op_svc_kei_no"));
						// サブオプションサービス契約番号
						subbean.sendMessageString(KKW00405SFConst.SBOP_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("sbop_svc_kei_no"));
						// 機器提供サービス契約番号
						subbean.sendMessageString(KKW00405SFConst.KKTK_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("kktk_svc_kei_no"));
						// 割引サービス契約番号
						subbean.sendMessageString(KKW00405SFConst.WRIB_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("wrib_svc_kei_no"));
						// サービス契約回線内訳番号
						subbean.sendMessageString(KKW00405SFConst.SVC_KEI_KAISEN_UCWK_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_kei_kaisen_ucwk_no"));
						// 併合先ＳＹＳＩＤ
						subbean.sendMessageString(KKW00405SFConst.HEIGO_SK_SYSID_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("heigo_sk_sysid"));
						// 分割先ＳＹＳＩＤ
						subbean.sendMessageString(KKW00405SFConst.BUNKATSU_SK_SYSID_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("bunkatsu_sk_sysid"));
						// 併合先請求契約番号
						subbean.sendMessageString(KKW00405SFConst.HEIGO_SK_SEIKY_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("heigo_sk_seiky_kei_no"));
						// 分割先請求契約番号
						subbean.sendMessageString(KKW00405SFConst.BUNKATSU_SK_SEIKY_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("bunkatsu_sk_seiky_kei_no"));
						// 新料金グループコード
						subbean.sendMessageString(KKW00405SFConst.NEW_PRC_GRP_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("new_prc_grp_cd"));
						// 新料金コースコード
						subbean.sendMessageString(KKW00405SFConst.NEW_PCRS_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("new_pcrs_cd"));
						// 新料金プランコード
						subbean.sendMessageString(KKW00405SFConst.NEW_PPLAN_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("new_pplan_cd"));
						// 新提供方式契約番号
						subbean.sendMessageString(KKW00405SFConst.NEW_TK_HOSHIKI_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("new_tk_hoshiki_kei_no"));
						// 新電波障害案件番号
						subbean.sendMessageString(KKW00405SFConst.NEW_DMPS_ANKEN_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("new_dmps_anken_no"));
						// 旧料金グループコード
						subbean.sendMessageString(KKW00405SFConst.OLD_PRC_GRP_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("old_prc_grp_cd"));
						// 旧料金コースコード
						subbean.sendMessageString(KKW00405SFConst.OLD_PCRS_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("old_pcrs_cd"));
						// 旧料金プランコード
						subbean.sendMessageString(KKW00405SFConst.OLD_PPLAN_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("old_pplan_cd"));
						// 旧提供方式契約番号
						subbean.sendMessageString(KKW00405SFConst.OLD_TK_HOSHIKI_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("old_tk_hoshiki_kei_no"));
						// 旧電波障害案件番号
						subbean.sendMessageString(KKW00405SFConst.OLD_DMPS_ANKEN_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("old_dmps_anken_no"));
						// 工事案件番号
						subbean.sendMessageString(KKW00405SFConst.KOJIAK_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("kojiak_no"));
						// 違約金発生コード
						subbean.sendMessageString(KKW00405SFConst.PNLTY_HASSEI_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("pnlty_hassei_cd"));
						// オプション引継先サービス契約番号
						subbean.sendMessageString(KKW00405SFConst.OP_HKTGI_SK_SVC_KEI_NO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("op_hktgi_sk_svc_kei_no"));
						// サービス休止課金開始年月日
						subbean.sendMessageString(KKW00405SFConst.SVC_PAUSE_CHRG_STA_YMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_pause_chrg_sta_ymd"));
						// サービス課金終了年月日
						subbean.sendMessageString(KKW00405SFConst.SVC_CHRG_ENDYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_chrg_endymd"));
						// プラン課金開始年月日
						subbean.sendMessageString(KKW00405SFConst.PLAN_CHRG_STAYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("plan_chrg_staymd"));
						// プラン課金終了年月日
						subbean.sendMessageString(KKW00405SFConst.PLAN_CHRG_ENDYMD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("plan_chrg_endymd"));
						// 異動予約理由コード
						subbean.sendMessageString(KKW00405SFConst.IDO_RSV_RSN_CD_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_rsv_rsn_cd"));
						// 異動予約理由メモ
						subbean.sendMessageString(KKW00405SFConst.IDO_RSV_RSN_MEMO_04, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("ido_rsv_rsn_memo"));

						return bean;
					}
				}
			}
		}
		return bean;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105803SC(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_svc_kei_no", bean[0].sendMessageString(KKW00405SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		outputMap.put("KKSV105803SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105804CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// STB情報を取得する
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		outputMap.put("KKSV105804CC", parentMap);
		return outputMap;
	}
	
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV105804CC(X31SDataBeanAccess[] bean, HashMap outputMap, boolean kojiakJuhen)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV105804CC"))
		{
			parentMap = (HashMap) outputMap.get("KKSV105804CC");
		}

		// ＳＴＢ変更申込情報リストの件数
		int stbCgifListCount = 0;

		// ＳＴＢ変更申込情報リスト
		X31SDataBeanAccessArray stbCgifList = bean[0].getDataBeanArray(KKW00405SFConst.STB_CGIF_LIST);
		stbCgifList.clearArray();

		if (parentMap.containsKey("KKSV105804CCList"))
		{
			ArrayList childList = (ArrayList) parentMap.get("KKSV105804CCList");
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap) childList.get(i);
				if ("A0".equals(childMap.get("taknkiki_sbt_cd")))
				{
					// A0 STBのみを対象とする

					X31SDataBeanAccess subbean = stbCgifList.addDataBean();

					// 型番号
					subbean.sendMessageString(KKW00405SFConst.KIKI_MODEL_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("taknkiki_model_cd"));

					// 型式名
					subbean.sendMessageString(KKW00405SFConst.KIKI_MODEL_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("taknkiki_model_nm"));

					// 製造番号
					subbean.sendMessageString(KKW00405SFConst.KIKI_SEIZO_NO_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("kiki_seizo_no"));

					// STB-ID
					subbean.sendMessageString(KKW00405SFConst.STBID_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("stb_id"));

					// TVコースコード
					subbean.sendMessageString(KKW00405SFConst.TV_COURSE_CD_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("cur_kk0161_pcrs_cd"));
					// TVコース名称
					subbean.sendMessageString(KKW00405SFConst.TV_COURSE_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("cur_pcrs_cd_nm"));
					// 機器最低利用期間
					subbean.sendMessageString(KKW00405SFConst.KIKI_MIN_USE_PRD_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("cur_kiki_min_use_prd"));

					// 機器提供サービス契約番号
					subbean.sendMessageString(KKW00405SFConst.KKTK_SVC_KEI_NO_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("kktk_svc_kei_no"));
					// サービス契約内訳番号
					subbean.sendMessageString(KKW00405SFConst.SVC_KEI_UCWK_NO_02, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("cur_svc_kei_ucwk_no"));

					// 一覧のスタイル制御
					if (stbCgifListCount % 2 == 0)
					{
						subbean.sendMessageString(KKW00405SFConst.LIST_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "odd");
					}
					else
					{
						subbean.sendMessageString(KKW00405SFConst.LIST_STYLE_02, X31CWebConst.DATABEAN_SET_VALUE, "even");
					}
					stbCgifListCount++;
				}
			}
		}
		return bean;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105805SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}
		// 撤去費用 ○○ 円取得用 KKSV105805SC→KKSV105806SCで業パラ取得値をKeyに取得する
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// ＫＥＹ＿業務パラメータＩＤ
		parentMap.put("key_work_param_id", "KK_YAMATO_TEKKYOHIYO");
		outputMap.put("KKSV105805SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105806SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// 撤去費用 ○○ 円取得用 KKSV105805SC→KKSV105806SCで業パラ取得値をKeyに取得する
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		outputMap.put("KKSV105806SC", parentMap);
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV105806SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV105806SC"))
		{
			parentMap = (HashMap) outputMap.get("KKSV105806SC");
		}
		// 撤去費用 ○○ 円取得用 STB撤去費用[無]チェックのMSG
		if (parentMap.containsKey("EKK0721A010CBSMsg1List"))
		{
			ArrayList childList = (ArrayList) parentMap.get("EKK0721A010CBSMsg1List");
			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap) childList.get(0);
				// 一時支払料金番号
				bean[0].sendMessageString(KKW00405SFConst.TMP_PAY_PRC_NO, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("tmp_pay_prc_no"));
				// 一時支払料金額
				bean[0].sendMessageString(KKW00405SFConst.TMP_PAY_PRC_AMNT, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("tmp_pay_prc_amnt"));
			}
		}
		return bean;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105807SC(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_svc_kei_no", bean[0].sendMessageString(KKW00405SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 予約適用年月日 → サービス契約一意照会マップ.予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW00405SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		outputMap.put("KKSV105807SC", parentMap);
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV105807SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("KKSV105807SC"))
		{
			parentMap = (HashMap) outputMap.get("KKSV105807SC");
		}
		ArrayList childList = null;

		X31SDataBeanAccessArray list = bean[0].getDataBeanArray(KKW00405SFConst.EKK0081A010_LIST);
		if (parentMap.containsKey("EKK0081A010CBSMsg1List"))
		{
			childList = (ArrayList) parentMap.get("EKK0081A010CBSMsg1List");
			X31SDataBeanAccess subbean = list.getDataBean(0);
			if (childList.size() > 0)
			{
				HashMap childMap = (HashMap) childList.get(0);
				// サービス契約.サービス契約ステータス ← サービス契約一意照会マップ.サービス契約一意照会明細.サービス契約ステータス
				subbean.sendMessageString(KKW00405SFConst.SVC_KEI_STAT_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_kei_stat"));
				// サービス契約.ＳＹＳＩＤ ← サービス契約一意照会マップ.サービス契約一意照会明細.SYSID
				subbean.sendMessageString(KKW00405SFConst.SYSID_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("sysid"));
				// サービス契約.サービスコード ← サービス契約一意照会マップ.サービス契約一意照会明細.サービスコード
				subbean.sendMessageString(KKW00405SFConst.SVC_CD_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_cd"));
				// サービス契約.料金グループコード ← サービス契約一意照会マップ.サービス契約一意照会明細.料金グループコード
				subbean.sendMessageString(KKW00405SFConst.PRC_GRP_CD_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("prc_grp_cd"));
				// サービス契約.料金コースコード ← サービス契約一意照会マップ.サービス契約一意照会明細.料金コースコード
				subbean.sendMessageString(KKW00405SFConst.PCRS_CD_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("pcrs_cd"));
				// サービス契約.料金プランコード ← サービス契約一意照会マップ.サービス契約一意照会明細.料金プランコード
				subbean.sendMessageString(KKW00405SFConst.PPLAN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("pplan_cd"));
				// サービス契約.提供方式契約番号 ← サービス契約一意照会マップ.サービス契約一意照会明細.提供方式契約番号
				subbean.sendMessageString(KKW00405SFConst.TK_HOSHIKI_KEI_NO_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("tk_hoshiki_kei_no"));
				// サービス契約.サービス開始年月日 ← サービス契約一意照会マップ.サービス契約一意照会明細.サービス開始年月日
				subbean.sendMessageString(KKW00405SFConst.SVC_STA_YMD_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_sta_ymd"));
				// サービス契約.違約金発生コード ← サービス契約一意照会マップ.サービス契約一意照会明細.違約金発生コード
				subbean.sendMessageString(KKW00405SFConst.PNLTY_HASSEI_CD_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("pnlty_hassei_cd"));
				// 更新年月日時分秒
				subbean.sendMessageString(KKW00405SFConst.UPD_DTM_05, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("last_upd_dtm"));
			}
		}
		return bean;
	}


	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105831SC(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_pcrs_cd", bean[0].sendMessageString(KKW00405SFConst.NEW_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿世代登録年月日時分秒
		parentMap.put("key_gene_add_dtm", "");
		// ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(KKW00405SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		outputMap.put("KKSV105831SC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105807CC(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("svc_kei_no", bean[0].sendMessageString(KKW00405SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		parentMap.put("ido_div", bean[0].sendMessageString(KKW00405SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		outputMap.put("KKSV105807CC", parentMap);
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV105808SC(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_svc_kei_no", bean[0].sendMessageString(KKW00405SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV105808SC", parentMap);
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：STB撤去年月日登録情報
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV105808SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = new HashMap<String, Object>();
		if (outputMap.containsKey("KKSV105808SC"))
		{
			parentMap = (HashMap) outputMap.get("KKSV105808SC");
		}

		// サービス契約回線内訳一覧照会結果取得がnullではない場合
		if (parentMap != null && parentMap.containsKey("EKK0241B001CBSMsg1List"))
		{
			// 取得結果を保持する
			ArrayList childList = new ArrayList();

			// KK0241B001の取得結果
			childList = (ArrayList) parentMap.get("EKK0241B001CBSMsg1List");

			// KK0241B001の取得結果が1件以上ある場合
			if (childList != null && childList.size() > 0)
			{
				// KK0241B001の取得結果の数だけ繰り返す
				for (int i = 0; i < childList.size(); i++)
				{
					HashMap childMap = (HashMap) childList.get(i);
					if (childMap != null)
					{
						// サービス契約回線内訳番号
						bean[0].sendMessageString(KKW00405SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, (String) childMap.get("svc_kei_kaisen_ucwk_no"));
						// マッピングを行った場合返却を行う。
						return bean;
					}
				}
			}
		}

		return bean;
	}

	
	/**
	 * 下りコンボボックスマッピング
	 * @param tempBean
	 * @param componentID
	 * @param parentMap
	 * @param blank true:先頭に空白行を設定する
	 * @param int コードタイプ名称リストの開始番号を設定する。SET_CODE_DIVの場合はコード区分を表示する。
	 */
	@SuppressWarnings("unchecked")
	private void setComboBoxMapping(X31SDataBeanAccess tempBean, String componentID, HashMap parentMap, boolean blankFlg, int strNo)
	{
		X31SDataBeanAccessArray arraybean = tempBean.getDataBeanArray(componentID);
		arraybean.clearArray();
		
		if (parentMap.containsKey("EZM0171B012CBSMsg1List"))
		{
			ArrayList childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");
			
			X31SDataBeanAccess subbean = arraybean.addDataBean();
			
			// 空白選択支の設定
			if(blankFlg)
			{
				subbean.sendMessageString(KKW00405SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
				subbean.sendMessageString(KKW00405SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, "");
				subbean.sendMessageString(KKW00405SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
			}
			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				// コードタイプコード値リスト ← コード区分
				String cd_div = (String)childMap.get("cd_div");
				subbean.sendMessageString(KKW00405SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, cd_div);
				
				// コードタイプ名称リスト ← コード区分名
				if(strNo == SET_CODE_DIV)
				{
					String cd_div_nm = (String)childMap.get("cd_div_nm");
					subbean.sendMessageString(KKW00405SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, cd_div + "." + cd_div_nm);
				}
				else
				{
					String cd_div_nm = (String)childMap.get("cd_div_nm");
					subbean.sendMessageString(KKW00405SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (i + strNo)  + "." + cd_div_nm);
				}
			}
		}
	}

}
