/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CHSV0085_CHSV0085OPDBMapper
*	ソースファイル名：CHSV0085_CHSV0085OPDBMapper.java
*	作成者			：FJ
*	日付			：2019年12月10日
*＜機能概要＞
*	BP（SMAPS即時決済発行SMS送信登録画面情報取得）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v47.00.00	2019/12/10	FJ		新規作成
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Collections;
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.common.constant.JACStrConst;
import eo.common.util.JCCToolTextDateFormat;
import eo.web.webview.CHW00111SF.CHW00111SFConst;
import eo.web.webview.common.JCHWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0085_CHSV0085OPDBMapper {
	
	/** 収納手数料 料金グループコード */
	private static final String SHUNO_COMMISION_PRC_GRP_CD = "  ";
	
	/** 収納手数料 料金コースコード */
	private static final String SHUNO_COMMISION_PCRS_CD = "   ";
	
	/** 収納手数料 料金サービスコード */
	private static final String SHUNO_COMMISION_PRC_SVC_CD = "PE0101      ";
	
	/** 収納手数料 料金項目コード */
	private static final String SHUNO_COMMISION_PRC_KMK_CD = "21005425601";
	
	/** 要否 要 */
	private static final String YOHI_YO = "要";
	
	/** 要否 否 */
	private static final String YOHI_HI = "否";
	
	/** 取扱期限年月日指定可能日数(業務パラメータID) */
	private static final String CH_TRAT_PSB_DAYS = "CH_TRAT_PSB_DAYS";
	
	/**
	 * コンストラクタ
	 */
	public CHSV0085_CHSV0085OPDBMapper(){
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008501SC(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);

		// 取扱期限年月日指定可能日数(業務パラメータID) → 業務パラメータ管理一意照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", CH_TRAT_PSB_DAYS);

		outputMap.put("CHSV008501SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008504SC(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);

		// 業務パラメータID → 定額料金手数料一覧照会マップ.ＫＥＹ＿業務パラメータID
		parentMap.put("key_work_param_id", "AC_WKS_SKS_RE_HK_CMS");

		// システムコード → 定額料金手数料一覧照会マップ.ＫＥＹ＿システムコード
		parentMap.put("key_sys_cd", JACStrConst.SYS_CD_CH);

		// 抽出変換コード → 定額料金手数料一覧照会マップ.ＫＥＹ＿抽出変換コード
		parentMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_CST);

		outputMap.put("CHSV008504SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008506SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 印刷様式コード → 窓口支払一覧照会マップ.ＫＥＹ＿印刷様式
		parentMap.put("key_print_yoshiki", JACStrConst.PRINT_YSK_CD_MADO);

		outputMap.put("CHSV008506SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008510SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV008510SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008511SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV008511SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV008512SC(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_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV008512SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV008501SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV008501SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV008501SC");
		}

		ArrayList childList = null;
		if (bean[0] != null && parentMap != null && parentMap.containsKey("EZM0321A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EZM0321A010CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				// 取扱期限年月日指定可能日数 ← 業務パラメータ管理一意照会マップ.業務パラメータ管理一意照会明細.業務パラメータ設定値
				if (childMap != null)
				{
					bean[0].sendMessageString(CHW00111SFConst.TRAT_PSB_DAYS, X31CWebConst.DATABEAN_SET_VALUE,
							(String)childMap.get("work_param_sette_value"));
				}
				else
				{
					bean[0].sendMessageString(CHW00111SFConst.TRAT_PSB_DAYS, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV008504SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV008504SC")){
			parentMap = (HashMap)outputMap.get("CHSV008504SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List = bean[0].getDataBeanArray("収納手数料情報");

		// 収納手数料情報件数
		int shunoCommisionCnt = 0;
		childList = null;
		if(listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List != null && parentMap != null && parentMap.containsKey("EAC0281B020CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EAC0281B020CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){

				HashMap childMap = (HashMap)childList.get(i);
			
				// 収納手数料情報.手数料名称リスト ← 定額料金手数料一覧照会マップ.定額料金手数料.料金
				if (childMap != null && SHUNO_COMMISION_PRC_GRP_CD.equals(childMap.get("output_prc_grp_cd"))
						&& SHUNO_COMMISION_PCRS_CD.equals(childMap.get("out_pcrs_cd"))
						&& SHUNO_COMMISION_PRC_SVC_CD.equals(childMap.get("out_prc_svc_cd"))
						&& SHUNO_COMMISION_PRC_KMK_CD.equals(childMap.get("out_prc_kmk_cd")))
				{
					X31SDataBeanAccess subbean = null;
					if(listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List.getCount() -1 >= shunoCommisionCnt){
						subbean = listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List.getDataBean(shunoCommisionCnt);
					}else{
						subbean = listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List.addDataBean();
					}
					if (subbean == null) {
						continue;
					}
					shunoCommisionCnt++;
					subbean.sendMessageString("収納手数料コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc"));
					subbean.sendMessageString("収納手数料名称", X31CWebConst.DATABEAN_SET_VALUE, YOHI_YO);
					subbean.sendMessageString("出力料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("output_prc_grp_cd"));
					subbean.sendMessageString("出力料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("out_pcrs_cd"));
					subbean.sendMessageString("出力料金サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("out_prc_svc_cd"));
					subbean.sendMessageString("出力料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("out_prc_kmk_cd"));
				}
			}
		}
		
		X31SDataBeanAccess subbean = null;
		if(listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List.getCount() -1 >= shunoCommisionCnt){
			subbean = listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List.getDataBean(shunoCommisionCnt);
		}else{
			subbean = listCHSV008504SC_shuno_commision_EAC0281B020CBSMsg1List.addDataBean();
		}
		if (subbean != null) {
			// 「否」を追加
			subbean.sendMessageString("収納手数料コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
			subbean.sendMessageString("収納手数料名称", X31CWebConst.DATABEAN_SET_VALUE, YOHI_HI);
			subbean.sendMessageString("出力料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
			subbean.sendMessageString("出力料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
			subbean.sendMessageString("出力料金サービスコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
			subbean.sendMessageString("出力料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
		}
		
		bean[0].sendMessageString("収納手数料選択", X31CWebConst.DATABEAN_SET_VALUE, "0");

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV008506SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV008506SC")){
			parentMap = (HashMap)outputMap.get("CHSV008506SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listCHSV008506SC_hakko_info_ECH0011B010CBSMsg1List = bean[0].getDataBeanArray("発行対象情報");
		X31SDataBeanAccessArray listCHSV008506SC_seiky_ym_info_ECH0011B010CBSMsg1List = bean[0].getDataBeanArray("請求月情報");
		X31SDataBeanAccess seikyYmBean = listCHSV008506SC_seiky_ym_info_ECH0011B010CBSMsg1List.getDataBean(0);
		seikyYmBean.sendMessage("請求月リスト", X31CWebConst.DATABEAN_CLEAR);
		seikyYmBean.sendMessage("請求月表示用リスト", X31CWebConst.DATABEAN_CLEAR);
		
		ArrayList<String> seikyYmList = new ArrayList<String>();
		childList = null;
		if(listCHSV008506SC_hakko_info_ECH0011B010CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0011B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECH0011B010CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){				
				HashMap childMap = (HashMap)childList.get(i);
				// 債権ステータスが「020：請求確定」または「060：一部収納」の場合
				if (childMap != null && 
						(JACStrConst.SAIKEN_STAT_FIX_SEIKY.equals(childMap.get("saiken_stat"))
								|| JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO.equals(childMap.get("saiken_stat")))) {
					X31SDataBeanAccess subbean = null;
					
					if(listCHSV008506SC_hakko_info_ECH0011B010CBSMsg1List.getCount() -1 >= i){
						subbean = listCHSV008506SC_hakko_info_ECH0011B010CBSMsg1List.getDataBean(i);
					}else{
						subbean = listCHSV008506SC_hakko_info_ECH0011B010CBSMsg1List.addDataBean();
					}
					if (subbean == null) {
						continue;
					}
					
					// 発行対象情報.債権番号 ← 窓口支払一覧照会マップ.債権一覧明細.債権番号
					if (childMap != null) {
						subbean.sendMessageString("債権番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_no"));
					} else {
						subbean.sendMessageString("債権番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 発行対象情報.請求年月 ← 窓口支払一覧照会マップ.債権一覧明細.債権確定年月
					if (childMap != null) {
						subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_fix_ym"));
						if (JCHWebCommon.isNotNullOrEmpty((String)childMap.get("saiken_fix_ym"))
								&& !seikyYmList.contains((String)childMap.get("saiken_fix_ym")))
						{
							seikyYmList.add((String)childMap.get("saiken_fix_ym"));
						}
					} else {
						subbean.sendMessageString("請求年月", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 発行対象情報.債権ステータス ← 窓口支払一覧照会マップ.債権一覧明細.債権ステータス
					if (childMap != null) {
						subbean.sendMessageString("債権ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_stat"));
					} else {
						subbean.sendMessageString("債権ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 発行対象情報.収納状態 ← 窓口支払一覧照会マップ.債権一覧明細.債権ステータス名称
					if (childMap != null) {
						subbean.sendMessageString("収納状態", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_stat_nm"));
					} else {
						subbean.sendMessageString("収納状態", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 発行対象情報.請求方法コード ← 窓口支払一覧照会マップ.債権一覧明細.請求方法コード
					if (childMap != null) {
						subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd"));
					} else {
						subbean.sendMessageString("請求方法コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 発行対象情報.請求方法 ← 窓口支払一覧照会マップ.債権一覧明細.請求方法コード名称
					if (childMap != null) {
						subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_way_cd_nm"));
					} else {
						subbean.sendMessageString("請求方法", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 発行対象情報.請求種別 ← 窓口支払一覧照会マップ.債権一覧明細.請求種別コード
					if (childMap != null) {
						subbean.sendMessageString("請求種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_sbt_cd"));
					} else {
						subbean.sendMessageString("請求種別", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 発行対象情報.未納額 ← 窓口支払一覧照会マップ.債権一覧明細.未納額
					if (childMap != null && JCHWebCommon.isNotNullOrEmpty((String)childMap.get("minou_amnt"))) {
						subbean.sendMessageString("未納額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("minou_amnt"));
					} else {
						subbean.sendMessageString("未納額", X31CWebConst.DATABEAN_SET_VALUE, "0");
					}

					// 発行対象情報.充当額 ← 窓口支払一覧照会マップ.債権一覧明細.充当額
					if (childMap != null) {
						subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("jyto_amnt"));

						String juto_amnt = (String)childMap.get("jyto_amnt");
						if(juto_amnt == null || JACStrConst.KARA_MOJI.equals(juto_amnt))
						{
							subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, "0");
						}
					} else {
						subbean.sendMessageString("充当額", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

					// 発行対象情報.請求番号 ← 窓口支払一覧照会マップ.債権一覧明細.請求番号
					if (childMap != null) {
						subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_no"));
					} else {
						subbean.sendMessageString("請求番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}

				}
			}
		}

		Collections.sort(seikyYmList);
		int seikyYmCnt = 0;
		for (int i = seikyYmList.size() - 1; i >= 0; i--)
		{
			seikyYmCnt++;
			// 請求月情報.請求月リスト ← 窓口支払一覧照会マップ.債権一覧明細.債権確定年月
			seikyYmBean.sendMessageString("請求月リスト", X31CWebConst.DATABEAN_ADD_VALUE, seikyYmList.get(i));
			// 請求月情報.請求月表示用リスト ← 連番 + 窓口支払一覧照会マップ.債権一覧明細.債権確定年月
			seikyYmBean.sendMessageString("請求月表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
					String.valueOf(seikyYmCnt) + "."  + new JCCToolTextDateFormat("yyyy/MM", "yyyyMM").formattedPrint(seikyYmList.get(i)) + "月");
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：SMAPS即時決済発行SMS送信登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV008510SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV008510SC")){
			parentMap = (HashMap)outputMap.get("CHSV008510SC");
		}

		ArrayList childList = null;
		if (bean[0] != null && parentMap != null && parentMap.containsKey("EKK0491A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0491A010CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				// 請求先名 ← 請求契約一意照会マップ.請求契約一意照会明細.送付先名
				if (childMap != null)
				{
					bean[0].sendMessageString("請求先名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sohus_nm"));
				}
				else
				{
					bean[0].sendMessageString("請求先名", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]SMAPS即時決済発行SMS送信登録行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV008511SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV008511SC")){
			parentMap = (HashMap)outputMap.get("CHSV008511SC");
		}

		ArrayList childList = null;
		
		X31SDataBeanAccessArray listCHSV008511SC_tel_no_info_ECK0011B130CBSMsg1List = bean[0].getDataBeanArray("電話番号情報");
		
		if(listCHSV008511SC_tel_no_info_ECK0011B130CBSMsg1List != null && listCHSV008511SC_tel_no_info_ECK0011B130CBSMsg1List.getCount() > 0
				&& listCHSV008511SC_tel_no_info_ECK0011B130CBSMsg1List.getDataBean(0) != null
				&& parentMap != null && parentMap.containsKey("ECK0011B130CBSMsg1List")){
			X31SDataBeanAccess subbean = listCHSV008511SC_tel_no_info_ECK0011B130CBSMsg1List.getDataBean(0);
			subbean.sendMessage("電話番号リスト", X31CWebConst.DATABEAN_CLEAR);
			subbean.sendMessage("電話番号表示用リスト", X31CWebConst.DATABEAN_CLEAR);
			childList = (ArrayList)parentMap.get("ECK0011B130CBSMsg1List");
			
			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
				// 電話番号情報.電話番号リスト ← 電話番号一覧照会マップ.電話番号一覧照会明細.電話番号
				if (childMap != null) {
					subbean.sendMessageString("電話番号リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("telno"));
				} else {
					subbean.sendMessageString("電話番号リスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
				// 電話番号情報.電話番号表示用リスト ← 連番 + "." + 電話番号一覧照会マップ.電話番号一覧照会明細.電話番号
				if (childMap != null) {
					subbean.sendMessageString("電話番号表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE,
							String.valueOf(i + 1) + "." + (String)childMap.get("telno"));
				} else {
					subbean.sendMessageString("電話番号表示用リスト", X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]SMAPS即時決済発行SMS送信登録行
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV008512SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CHSV008512SC")){
			parentMap = (HashMap)outputMap.get("CHSV008512SC");
		}

		ArrayList childList = null;
		
		if(parentMap != null && parentMap.containsKey("ECK0011B140CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECK0011B140CBSMsg1List");
			
			if (childList.size() > 0) {
				HashMap childMap = (HashMap)childList.get(0);
				// 契約者タイプコード ← 生年月日取得マップ.生年月日取得明細.契約者タイプコード
				if (childMap != null) {
					bean[0].sendMessageString("契約者タイプコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("keisha_type_cd"));
				} else {
					bean[0].sendMessageString("契約者タイプコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
				// お客様生年月日 ← 生年月日取得マップ.生年月日取得明細.お客様生年月日
				if (childMap != null) {
					bean[0].sendMessageString("お客様生年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_birthd"));
				} else {
					bean[0].sendMessageString("お客様生年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}

		return bean;
	}

}