/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CRSV0100_CRSV0100OPDBMapper
*	ソースファイル名：CRSV0100_CRSV0100OPDBMapper.java
*	作成者			：ＦＪ
*	日付			：2011年10月26日
*＜機能概要＞
*	BP（問合せ客情報詳細照会（初期表示））へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/26	ＦＪ		新規作成
*	v4.00.00	2013/03/04	FJ)伊藤		OT-2013-0000322対応
*	v5.00.00	2013/07/04	FJ)伊藤		LT-2013-0000255対応
*	v6.00.00	2013/10/30	FJ)江森		OM-2013-0003843  認証ID取得方法変更
*	v29.00.00	2017/02/10	FJ) 笠川	ANK-2928-00-00 お客さま申告アドレスの複数登録
 *
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JCRStrConst;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.common.JCRWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CRSV0100_CRSV0100OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CRSV0100_CRSV0100OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ客情報詳細照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCRSV010001SC(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("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号 → 問合せ対応お客様サービス情報一覧照会マップ.ＫＥＹ＿サービス契約回線内訳番号
		parentMap.put("key_svc_kei_kaisen_ucwk_no", bean[0].sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → 問合せ対応お客様サービス情報一覧照会マップ.ＫＥＹ＿基準日
		parentMap.put("key_stdardymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CRSV010001SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ客情報詳細照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCRSV010002SC(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);

		// ＳＹＳＩＤ → お客様一意照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → お客様一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CRSV010002SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ客情報詳細照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETSEIKYKEI1RCC(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("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("GETSEIKYKEI1RCC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：問合せ客情報詳細照会
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETCUST1ICC(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_proscst_no", bean[0].sendMessageString("問合せ客番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("GETCUST1ICC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：問合せ客情報詳細照会
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCRSV010001SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("CRSV010001SC"))
		{
			parentMap = (HashMap)outputMap.get("CRSV010001SC");
		}

		if(parentMap != null && parentMap.containsKey("EKK0081B509CBSMsg1List")){
			ArrayList childList = (ArrayList)parentMap.get("EKK0081B509CBSMsg1List");
			if ((childList == null) || (childList.size() == 0))
			{
				return bean;
			}

			// 1レコード目の料金グループコードの取得
			String prcGrpCd = (String)((HashMap)childList.get(0)).get("prc_grp_cd");

			int viewTargetIdx = 0;			// 取得するレコードインデックス
			
			// 内訳が2件以上ある場合
			if (childList.size() > 1)
			{
				List<Integer> ittiIdxList = new ArrayList<Integer>();
				for (int i = 0; i < childList.size(); i++)
				{
					
					//サービス契約ステータスと内訳ステータスが一致するものを探す
					HashMap childMap1 = (HashMap)childList.get(i);
					String svcKeiStat = (String)childMap1.get("svc_kei_stat");
					String svcKeiUcwkStat = (String)childMap1.get("svc_kei_ucwk_stat");
					if (svcKeiStat.equals(svcKeiUcwkStat))
					{
						
						// サービス契約ステータスと内訳ステータスが一致するものを保持する
						ittiIdxList.add(i);
					}
				}
				
				// サービス契約ステータスと同じ内訳が複数ある場合、サービス契約内訳番号が最大のものを採用する
				if (ittiIdxList.size() > 1)
				{
					
					// サービス契約内訳番号の昇順のためステータスが一致するデータで最後のデータを取得
					viewTargetIdx =  ittiIdxList.get(ittiIdxList.size() - 1);
				}
				else if (ittiIdxList.size() == 1)
				{
					
					// ステータスが一致するものが1件なら、それを採用する
					viewTargetIdx = ittiIdxList.get(0);
				}
			}

			HashMap childMap = (HashMap)childList.get(viewTargetIdx);

			// サービス契約番号 ← 部品呼び出し
			bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
			// 携帯電話番号 ← 部品呼び出し
			bean[0].sendMessageString("携帯電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("handy_telno"));
			// メールアドレス ← 部品呼び出し
			bean[0].sendMessageString("メールアドレス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_mlad"));
			// 申告アドレス ← 部品呼び出し
			bean[0].sendMessageString("申告アドレス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("skk_mlad"));
			//ANK_2928_00_00 ADD START
			// 申告アドレス２ ← 部品呼び出し
			bean[0].sendMessageString("申告アドレス２", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("skk_mlad2"));
			// 申告アドレス３ ← 部品呼び出し
			bean[0].sendMessageString("申告アドレス３", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("skk_mlad3"));
			//ANK_2928_00_00 ADD END
			// 認証ＩＤ ← 部品呼び出し
			if (JCRStrConst.PRC_GRP_CD_EO_HNET_HOME.equals(prcGrpCd)
					|| JCRStrConst.PRC_GRP_CD_EO_HNET_MAISON.equals(prcGrpCd)
					|| JCRStrConst.PRC_GRP_CD_EO_HNET_MANSION.equals(prcGrpCd))
			{
				bean[0].sendMessageString("認証ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("isp_ninsho_id"));
			}
			else if (JCRStrConst.PRC_GRP_CD_EO_ADSL_EACCESS.equals(prcGrpCd)
					|| JCRStrConst.PRC_GRP_CD_EO_ADSL_FLETS.equals(prcGrpCd))
			{
				bean[0].sendMessageString("認証ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("adsl_ninsho_id"));
			}
			else if (JCRStrConst.PRC_GRP_CD_EO_MOB_UQ_WIMAX.equals(prcGrpCd))
			{
				bean[0].sendMessageString("認証ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("uq_ninsho_id"));
			}
			// 申込書番号 ← 部品呼び出し
			bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mskmsho_no"));
			// 契約サービス ← 部品呼び出し
			bean[0].sendMessageString("契約サービス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_nm"));
			// 料金プラン ← 部品呼び出し
			bean[0].sendMessageString("料金プラン", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_nm"));
			// プラン開始日 ← 部品呼び出し
			String svcstaymd = JCRUtilCommon.formatDate((String)childMap.get("svc_sta_ymd"), JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD);
			bean[0].sendMessageString("プラン開始日", X31CWebConst.DATABEAN_SET_VALUE, svcstaymd);
			// マンションID ← 部品呼び出し
			bean[0].sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id"));
			// マンション名 ← 部品呼び出し
			bean[0].sendMessageString("マンション名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_nm"));
	
			StringBuilder kaisenAdrs = new StringBuilder();
			kaisenAdrs.append(JCRWebCommon.getZipCodeCharactor((String)childMap.get("kaisen_place_pcd")))
						.append(" ")
						.append((String)childMap.get("kaisen_place_state_nm"))
						.append((String)childMap.get("kaisen_place_city_nm"))
						.append((String)childMap.get("kaisen_place_oaztsu_nm"))
						.append((String)childMap.get("kaisen_place_azcho_nm"))
						.append((String)childMap.get("kaisen_place_bnchigo"))
						.append((String)childMap.get("kaisen_place_adrttm"))
						.append((String)childMap.get("kaisen_place_adrrm"));
	
			// 回線場所住所 ← 部品呼び出し
			bean[0].sendMessageString("回線場所住所", X31CWebConst.DATABEAN_SET_VALUE, kaisenAdrs.toString());
			// 回線場所電話番号 ← 部品呼び出し
			bean[0].sendMessageString("回線場所電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_telno"));
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：問合せ客情報詳細照会
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCRSV010002SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("CRSV010002SC"))
		{
			parentMap = (HashMap)outputMap.get("CRSV010002SC");
		}

		if(parentMap != null && parentMap.containsKey("ECK0011A010CBSMsg1List")){
			ArrayList childList = (ArrayList)parentMap.get("ECK0011A010CBSMsg1List");
			if ((childList == null) || (childList.size() == 0))
			{
				return bean;
			}
			// 顧客タイプ ← 部品呼び出し
			bean[0].sendMessageString("顧客タイプ", X31CWebConst.DATABEAN_SET_VALUE , "既加入");
			// 契約者タイプコード名称 ← 部品呼び出し
			bean[0].sendMessageString("契約者タイプコード名称", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_type_cd_nm"));
			// 電話番号 ← 部品呼び出し
			bean[0].sendMessageString("電話番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_telno"));

			//ランクコード名称 ← 部品呼び出し
			bean[0].sendMessageString("ランクコード名称", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_rank_cd_nm"));
			//連絡手段コード名称 ← 部品呼び出し
			bean[0].sendMessageString("連絡手段コード名称", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "rrk_way_cd_nm"));
			// 連絡情報 ← 部品呼び出し
			bean[0].sendMessageString("連絡情報", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "rrk_way_hoki"));
			// 備考 ← 部品呼び出し
			bean[0].sendMessageString("備考", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_cfm_biko"));
			// eoID ← 部品呼び出し
			bean[0].sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "eoid"));
			// 削除対象外フラグ ← 部品呼び出し
			bean[0].sendMessageBoolean("削除対象外フラグ", X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
			if (("1").equals(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "del_trgt_gai_flg")))
			{
				bean[0].sendMessageBoolean("削除対象外フラグ", X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			}
			// 出力モード ← 部品呼び出し
			bean[0].sendMessageString("出力モード", X31CWebConst.DATABEAN_SET_VALUE , "0");

			// 会員種別コードの取得
			String memberSbtCd = JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "member_sbt_cd");
			// eonetID未移行フラグの取得
			String eonetidMiIkoFlg = JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "eonetid_mi_iko_flg");
			// 会員種別特定フラグの取得
			String mmbSbtTokutFlg = JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "mmb_sbt_tokut_flg");

			// 会員種別コードが"11"、"21"、"30"の場合 又は
			// (会員種別コードが"11"、"21"、"30"以外で、会員種別特定フラグが"0" 且つ eonetID未移行フラグが"1"の場合)
			if ((JCRStrConst.CD_DIV_MEM_SBT_F_KJN.equals(memberSbtCd)
				|| JCRStrConst.CD_DIV_MEM_SBT_F_HJN.equals(memberSbtCd)
				|| JCRStrConst.CD_DIV_MEM_SBT_OPN.equals(memberSbtCd))
				||((!JCRStrConst.CD_DIV_MEM_SBT_F_KJN.equals(memberSbtCd)
					&& !JCRStrConst.CD_DIV_MEM_SBT_F_HJN.equals(memberSbtCd)
					&& !JCRStrConst.CD_DIV_MEM_SBT_OPN.equals(memberSbtCd))
					&& (JCRStrConst.EONETID_MI_IKO_FLG_MIIKO.equals(eonetidMiIkoFlg)
							&& JCRStrConst.MMB_SBT_TOKUT_FLG_MITOKUTEI.equals(mmbSbtTokutFlg))))
			{
				// 問合せ客名 ← 部品呼び出し
				bean[0].sendMessageString("問合せ客名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_cust_nm"));
				// 問合せ客カナ名 ← 部品呼び出し
				bean[0].sendMessageString("問合せ客カナ名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_cust_kana"));
				// 性別 ← 部品呼び出し
				bean[0].sendMessageString("性別コード名称", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_cust_sex_cd_nm"));
				// 生年月日 ← 部品呼び出し
				if (!JCRUtilCommon.isNull(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_cust_birthd")))
				{
					String warekibirthd = JCRWebCommon.getJapaneseCalendar(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_cust_birthd"));
					String seirekibirthd = JCRUtilCommon.formatDate(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_cust_birthd"), 
											JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD_SEIREKI_JAPANESE_CHARACTER);
					bean[0].sendMessageString("生年月日", X31CWebConst.DATABEAN_SET_VALUE, warekibirthd + "（" + seirekibirthd + "）");
				}
				// 郵便番号 ← 部品呼び出し
				String proscstZipCode = JCRWebCommon.getZipCodeCharactor(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_pcd"));
				bean[0].sendMessageString("郵便番号", X31CWebConst.DATABEAN_SET_VALUE, proscstZipCode);
				//都道府県名 ← 部品呼び出し
				bean[0].sendMessageString("都道府県名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_state_nm"));
				//市区町村名 ← 部品呼び出し
				bean[0].sendMessageString("市区町村名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_city_nm"));
				//大字通称名 ← 部品呼び出し
				bean[0].sendMessageString("大字通称名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_oaztsu_nm"));
				//字丁目名 ← 部品呼び出し
				bean[0].sendMessageString("字丁目名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_azcho_nm"));
				//番地・号 ← 部品呼び出し
				bean[0].sendMessageString("番地・号", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_bnchigo"));
				//建物名 ← 部品呼び出し
				bean[0].sendMessageString("建物名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_adrttm"));
				//部屋番号 ← 部品呼び出し
				bean[0].sendMessageString("部屋番号", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cont_adrrm"));
			}
			else
			{
				// 問合せ客名 ← 部品呼び出し
				bean[0].sendMessageString("問合せ客名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_nm"));
				// 問合せ客カナ名 ← 部品呼び出し
				bean[0].sendMessageString("問合せ客カナ名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_kana"));
				// 性別 ← 部品呼び出し
				bean[0].sendMessageString("性別コード名称", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_sex_cd_nm"));
				// 生年月日 ← 部品呼び出し
				if (!JCRUtilCommon.isNull(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_birthd")))
				{
					String warekibirthd = JCRWebCommon.getJapaneseCalendar(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_birthd"));
					String seirekibirthd = JCRUtilCommon.formatDate(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "cust_birthd"), 
											JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD_SEIREKI_JAPANESE_CHARACTER);
					bean[0].sendMessageString("生年月日", X31CWebConst.DATABEAN_SET_VALUE, warekibirthd + "（" + seirekibirthd + "）");
				}
				// 郵便番号 ← 部品呼び出し
				String proscstZipCode = JCRWebCommon.getZipCodeCharactor(JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_pcd"));
				bean[0].sendMessageString("郵便番号", X31CWebConst.DATABEAN_SET_VALUE, proscstZipCode);
				//都道府県名 ← 部品呼び出し
				bean[0].sendMessageString("都道府県名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_state_nm"));
				//市区町村名 ← 部品呼び出し
				bean[0].sendMessageString("市区町村名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_city_nm"));
				//大字通称名 ← 部品呼び出し
				bean[0].sendMessageString("大字通称名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_oaztsu_nm"));
				//字丁目名 ← 部品呼び出し
				bean[0].sendMessageString("字丁目名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_azcho_nm"));
				//番地・号 ← 部品呼び出し
				bean[0].sendMessageString("番地・号", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_bnchigo"));
				//建物名 ← 部品呼び出し
				bean[0].sendMessageString("建物名", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_adrttm"));
				//部屋番号 ← 部品呼び出し
				bean[0].sendMessageString("部屋番号", X31CWebConst.DATABEAN_SET_VALUE
						, JCRWebCommon.getColumnValue(parentMap, "ECK0011A010CBSMsg1List", "keisha_adrrm"));
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：問合せ情報詳細
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getGETCUST1ICC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("GETCUST1ICC"))
		{
			parentMap = (HashMap)outputMap.get("GETCUST1ICC");
		}

		if(parentMap != null && parentMap.containsKey("ECK0051A010CBSMsg1List")){
			ArrayList childList = (ArrayList)parentMap.get("ECK0051A010CBSMsg1List");
			if ((childList == null) || (childList.size() == 0))
			{
				return bean;
			}

			// 顧客タイプ ← 部品呼び出し
			bean[0].sendMessageString("顧客タイプ", X31CWebConst.DATABEAN_SET_VALUE , "未加入");
			// 問合せ客番号 ← 部品呼び出し
			bean[0].sendMessageString("問合せ客番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_no"));
			// 問合せ客名 ← 部品呼び出し
			bean[0].sendMessageString("問合せ客名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_nm"));
			// 問合せ客カナ名 ← 部品呼び出し
			bean[0].sendMessageString("問合せ客カナ名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_kana"));
			// 電話番号 ← 部品呼び出し
			bean[0].sendMessageString("電話番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_telno"));
			// 携帯番号 ← 部品呼び出し
			bean[0].sendMessageString("携帯電話番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_ktai_telno"));
			// メールアドレス ← 部品呼び出し
			bean[0].sendMessageString("メールアドレス", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_mlad"));
			// 性別 ← 部品呼び出し
			bean[0].sendMessageString("性別コード名称", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_sex_cd_nm"));
			// 生年月日 ← 部品呼び出し
			if (!JCRUtilCommon.isNull(JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_birthd")))
			{
				String warekibirthd = JCRWebCommon.getJapaneseCalendar(JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_birthd"));
				String seirekibirthd = JCRUtilCommon.formatDate(JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_birthd"), 
										JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD_SEIREKI_JAPANESE_CHARACTER);
				bean[0].sendMessageString("生年月日", X31CWebConst.DATABEAN_SET_VALUE, warekibirthd + "（" + seirekibirthd + "）");
			}
			// 郵便番号 ← 部品呼び出し
			String proscstZipCode = JCRWebCommon.getZipCodeCharactor(JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_pcd"));
			bean[0].sendMessageString("郵便番号", X31CWebConst.DATABEAN_SET_VALUE, proscstZipCode);
			//都道府県名 ← 部品呼び出し
			bean[0].sendMessageString("都道府県名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_state_nm"));
			//都道府県名 ← 部品呼び出し
			bean[0].sendMessageString("市区町村名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_city_nm"));
			//大字通称名 ← 部品呼び出し
			bean[0].sendMessageString("大字通称名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_oaztsu_nm"));
			//字丁目名 ← 部品呼び出し
			bean[0].sendMessageString("字丁目名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_azcho_nm"));
			//番地・号 ← 部品呼び出し
			bean[0].sendMessageString("番地・号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_bnchigo"));
			//建物名 ← 部品呼び出し
			bean[0].sendMessageString("建物名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_adrttm"));
			//部屋番号 ← 部品呼び出し
			bean[0].sendMessageString("部屋番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_adrrm"));
			//ランクコード名称 ← 部品呼び出し
			bean[0].sendMessageString("ランクコード名称", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "cust_rank_cd_nm"));
			//連絡手段コード名称 ← 部品呼び出し
			bean[0].sendMessageString("連絡手段コード名称", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "rrk_way_cd_nm"));
			// 連絡情報 ← 部品呼び出し
			bean[0].sendMessageString("連絡情報", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "rrk_way_hoki"));
			// 申込書番号 ← 部品呼び出し
			bean[0].sendMessageString("申込書番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "cust_tokut_mskmsho_no"));
			// 申告アドレス ← 部品呼び出し
			bean[0].sendMessageString("申告アドレス", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "skk_ad"));
			//ANK_2928_00_00 ADD START
			// 申告アドレス２ ← 部品呼び出し
			bean[0].sendMessageString("申告アドレス２", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "skk_ad_2"));
			// 申告アドレス３ ← 部品呼び出し
			bean[0].sendMessageString("申告アドレス３", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "skk_ad_3"));
			//ANK_2928_00_00 ADD END
			// 備考 ← 部品呼び出し
			bean[0].sendMessageString("備考", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "proscst_hsk_biko"));
			// 削除対象外フラグ ← 部品呼び出し
			bean[0].sendMessageBoolean("削除対象外フラグ", X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
			if (("1").equals(JCRWebCommon.getColumnValue(parentMap, "ECK0051A010CBSMsg1List", "del_trgt_gai_flg")))
			{
				bean[0].sendMessageBoolean("削除対象外フラグ", X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			}
			// 出力モード ← 部品呼び出し
			bean[0].sendMessageString("出力モード", X31CWebConst.DATABEAN_SET_VALUE , "1");
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：問合せ客情報詳細照会
	 * @param outputMap
	 * @return bean
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getGETSEIKYKEI1RCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey("GETSEIKYKEI1RCC"))
		{
			parentMap = (HashMap)outputMap.get("GETSEIKYKEI1RCC");
		}

		if(parentMap != null && parentMap.containsKey("EKK0491B503CBSMsg1List")){
			ArrayList childList = (ArrayList)parentMap.get("EKK0491B503CBSMsg1List");
			if ((childList == null) || (childList.size() == 0))
			{
				return bean;
			}

			// 請求書番号 ← 部品呼び出し
			bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap,  "EKK0491B503CBSMsg1List", "seiky_kei_no"));
			// Ｔ＃相関適用開始日 ← 部品呼び出し
			String kakinststaymd = JCRUtilCommon.formatDate(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "kakins_tstaymd"), 
					JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD);
			bean[0].sendMessageString("Ｔ＃相関適用開始日", X31CWebConst.DATABEAN_SET_VALUE, kakinststaymd);
			// Ｔ＃情報適用開始日 ← 部品呼び出し
			String rsvaplyymd = JCRUtilCommon.formatDate(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "rsv_aply_ymd"), 
					JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD);
			bean[0].sendMessageString("Ｔ＃情報適用開始日", X31CWebConst.DATABEAN_SET_VALUE, rsvaplyymd);
			// 送付先名 ← 部品呼び出し
			bean[0].sendMessageString("送付先名", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_nm"));
			// 送付先電話番号 ← 部品呼び出し
			bean[0].sendMessageString("送付先電話番号", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_telno"));
			// 送付先名（カナ） ← 部品呼び出し
			bean[0].sendMessageString("送付先名（カナ）", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "shs_kana"));

			StringBuilder sohusAdrs = new StringBuilder();
			sohusAdrs.append(JCRWebCommon.getZipCodeCharactor(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_pcd")))
						.append(" ")
						.append(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_state_nm"))
						.append(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_city_nm"))
						.append(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_oaztsu_nm"))
						.append(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_azcho_nm"))
						.append(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_bnchigo"))
						.append(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_adrttm"))
						.append(JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "sohus_adrrm"));

			// 送付先住所 ← 部品呼び出し
			bean[0].sendMessageString("送付先住所", X31CWebConst.DATABEAN_SET_VALUE, sohusAdrs.toString());
			// 請求先名（カナ） ← 部品呼び出し
			bean[0].sendMessageString("請求先名（カナ）", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "seiky_kei_kana"));
			// 支払方法 ← 部品呼び出し
			bean[0].sendMessageString("支払方法", X31CWebConst.DATABEAN_SET_VALUE
					, JCRWebCommon.getColumnValue(parentMap, "EKK0491B503CBSMsg1List", "seiky_way_cd_nm"));
		}

		return bean;
	}

}