/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CKSV0013_CKSV0013OPDBMapper
*	ソースファイル名：CKSV0013_CKSV0013OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2011年08月18日
*＜機能概要＞
*	BP（お客様情報変更_初期表示サービス）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/18	Fujitsu		新規作成
*	v4.00.00	2012/07/03	FJ）庭山	【ANK-0398-00-00】対応
*	v4.01.00	2012/07/04	FJ）庭山	【ANK-0382-00-00】対応
*	v20.00.00	2015/10/06	FJ) 李		【ANK-2553-00-00】料金未収対応
*	v23.00.00	2016/01/15	FJ) 李		【ANK-2737-00-00】消費者保護ルールの見直し対応
*	v37.00.00	2018/05/01	FJ) 永井	【ANK-3375-00-00】【CMP】クレカ有効期限切れに対する対応施策
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.util.JPCUtilCommon;
import eo.web.webview.CKW00401SF.CKW00401SFConst;
import eo.web.webview.common.JCKCommonConst;
import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * <BR>
 * @author 富士通
 */
public class CKSV0013_CKSV0013OPDBMapper
{
	/**
	 * コンストラクタ
	 */
	public CKSV0013_CKSV0013OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV001301CC(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>();
		ArrayList custList = new ArrayList();
		ArrayList idoRsnList = new ArrayList();
		HashMap<String, Object> custMap = new HashMap<String, Object>();
		
		X31SDataBeanAccess subbean = bean[0].getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);
		int count = (Integer)subbean.sendMessage(JKKCommonConst.HKTGI_IDO_RSN_CD, X31CWebConst.DATABEAN_GET_COUNT);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// お客様ID → グループ一意照会マップ.ＫＥＹ＿お客様ID
		parentMap.put("key_sysid", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → お客様一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString(CKW00401SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		// 01：契約者 → 法人連絡先一意照会マップ.ＫＥＹ＿連絡先コード
		parentMap.put("key_rrks_cd", "01");
		// 基準日 → お客様一意照会マップ.基準日
		parentMap.put("base_ymd", bean[0].sendMessageString(CKW00401SFConst.STDARDYMD, X31CWebConst.DATABEAN_GET_VALUE));
		// 権限制御フラグ
		parentMap.put("authority_ctl_flg", bean[0].sendMessageString(CKW00401SFConst.AUTHORITY_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分遷移フラグ
		parentMap.put("ido_div_seni_flg", bean[0].sendMessageBoolean(CKW00401SFConst.IDO_DIV_SENI_FLG, X31CWebConst.DATABEAN_GET_VALUE));

		// サービス契約番号
		custMap.put("svc_kei_no", subbean.sendMessageString(JKKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		custMap.put("ido_div", subbean.sendMessageString(JKKCommonConst.HKTGI_IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動理由コード
		for (int j = 0; j < count; j++)
		{
			HashMap map = new HashMap();
			
			map.put("ido_rsn_cd", subbean.sendMessageString(JKKCommonConst.HKTGI_IDO_RSN_CD, X31CWebConst.DATABEAN_GET_VALUE, j));
			idoRsnList.add(map);
		}
		custMap.put("ido_rsn_list", idoRsnList);

		// 顧客契約引継リスト
		custList.add(custMap);
		parentMap.put("cust_kei_hktgi_list", custList);

		outputMap.put("CKSV001301CC", parentMap);
						
		return outputMap;
		
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV001306CC(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 → お客様変更オプトインメール情報取得CCマップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("CKSV001306CC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV001309CC(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 → お客様情報履歴一覧照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString(CKW00401SFConst.REFERENCE_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV001309CC", parentMap);
		
		return outputMap;
	}
	
// ANK-2737-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV001301SC(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(CKW00401SFConst.REFERENCE_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV001301SC", parentMap);
						
		return outputMap;
	}
// ANK-2737-00-00 ADD END
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCKSV001301CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CKSV001301CC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV001301CC");
		}
		
		// 会員種別パターン
		String ptn = (String)parentMap.get("mmb_sbt_ptn");
		
		// 参照表示＿契約者タイプ
		bean[0].sendMessageString("参照表示＿契約者タイプ",
									X31CWebConst.DATABEAN_SET_VALUE,
									getComboNm(bean[0], CKW00401SFConst.HOJI_KEISHA_TYPE, (String)parentMap.get("keisha_type_cd")));
		
		// 参照表示＿契約者名 ← お客様一意照会マップ.お客様一意照会明細.お客様名
		bean[0].sendMessageString("参照表示＿契約者名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_nm"));
		// 参照表示＿契約者名（カナ） ← お客様一意照会マップ.お客様一意照会明細.お客様カナ名
		bean[0].sendMessageString("参照表示＿契約者名（カナ）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_kana"));
		
		// 会員種別がマスター会員（法人）又は、非eo会員且つ契約者タイプが個人以外又は、オープン会員で法人・自社利用の場合
		if (isHojin(ptn))
		{
			// 参照表示＿代表者名 ← お客様一意照会マップ.お客様一意照会明細.お客様名
			bean[0].sendMessageString("参照表示＿代表者名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("dihysha_nm"));
			// 参照表示＿代表者名（カナ） ← お客様一意照会マップ.お客様一意照会明細.お客様カナ名
			bean[0].sendMessageString("参照表示＿代表者名（カナ）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("dihysha_kana"));
			
			// 参照表示＿法人格種別(前後指定)
			bean[0].sendMessageString("参照表示＿法人格種別（前後指定）",
										X31CWebConst.DATABEAN_SET_VALUE,
										getComboNm(bean[0], CKW00401SFConst.HOJIN_ZENGO_STI, (String)parentMap.get("hojin_zengo_shitei_cd")));
			// 参照表示＿法人格種別
			bean[0].sendMessageString("参照表示＿法人格種別",
										X31CWebConst.DATABEAN_SET_VALUE,
										getComboNm(bean[0], CKW00401SFConst.HOJIN_SBT, (String)parentMap.get("hojin_sbt_cd")));
			// 参照表示＿職業＿業種
			bean[0].sendMessageString("参照表示＿職業＿業種",
										X31CWebConst.DATABEAN_SET_VALUE,
										getComboNm(bean[0], CKW00401SFConst.GSHU, (String)parentMap.get("gshu_cd")));
			
			// 参照表示＿代表者役職 ← お客様＜法人＞一意照会マップ.お客様＜法人＞一意照会明細.代表者役職名
			bean[0].sendMessageString("参照表示＿代表者役職", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("dihysha_post_nm"));
			
			// 参照表示＿担当者所属部署 ← 法人連絡先一意照会マップ.法人連絡先一意照会明細.法人連絡先担当者所属部署名
			bean[0].sendMessageString("参照表示＿担当者所属部署", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("hjrrks_tntsha_shozkbsho_nm"));
			// 参照表示＿担当者名（カナ） ← 法人連絡先一意照会マップ.法人連絡先一意照会明細.法人連絡先担当者カナ名
			bean[0].sendMessageString("参照表示＿担当者名（カナ）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("hjrrks_tntsha_kana"));
			// 参照表示＿担当者名 ← 法人連絡先一意照会マップ.法人連絡先一意照会明細.法人連絡先担当者名
			bean[0].sendMessageString("参照表示＿担当者名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("hjrrks_tntsha_nm"));
			// 参照表示＿勤務先名 ← 法人連絡先一意照会マップ.法人連絡先一意照会明細.法人連絡先名
			bean[0].sendMessageString("参照表示＿勤務先名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("hjrrks_nm"));
			
			// 参照表示＿内線番号
			bean[0].sendMessageString(CKW00401SFConst.REFERENCE_OFFC_NISNNO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nisnno"));
		}
		// 上記以外
		else
		{
			// 参照表示＿職業＿業種
			bean[0].sendMessageString("参照表示＿職業＿業種",
										X31CWebConst.DATABEAN_SET_VALUE,
										getComboNm(bean[0], CKW00401SFConst.SHOKUGYO, (String)parentMap.get("shokugyo_cd")));
			// 参照表示＿勤務先名 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.勤務先名
			bean[0].sendMessageString("参照表示＿勤務先名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("offc_nm"));
			// 参照表示＿勤務先電話番号 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.勤務先電話番号
			bean[0].sendMessageString("参照表示＿勤務先電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("offc_telno"));
			// 参照表示＿内線番号 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.勤務先内線番号
			bean[0].sendMessageString("参照表示＿内線番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("offc_nisnno"));
			// 参照表示＿親権者入力有無
			bean[0].sendMessageString("参照表示＿親権者入力有無", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_input_um"));
			
			// 親権者入力有りの場合
			if ("1".equals((String)parentMap.get("sksha_input_um")))
			{
				// 参照表示＿親権者名 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者名
				bean[0].sendMessageString("参照表示＿親権者名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_nm"));
				// 参照表示＿親権者名（カナ） ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者カナ名
				bean[0].sendMessageString("参照表示＿親権者名（カナ）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_kana"));
				// 参照表示＿親権者生年月日 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者生年月日
				bean[0].sendMessageString("参照表示＿親権者生年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_birthd"));
				// 参照表示＿続柄
				bean[0].sendMessageString("参照表示＿続柄",
											X31CWebConst.DATABEAN_SET_VALUE,
											getComboNm(bean[0], CKW00401SFConst.SKSHA_ZOKUGARA_CD, (String)parentMap.get("sksha_zokugara_cd")));
				// 参照表示＿続柄（その他欄） ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.続柄その他
				bean[0].sendMessageString("参照表示＿続柄（その他欄）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("zokugara_other"));
				// 参照表示＿親権者住所コード ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者住所コード
				bean[0].sendMessageString("参照表示＿親権者住所コード", X31CWebConst.DATABEAN_SET_VALUE, formatAdCd((String)parentMap.get("sksha_ad_cd")));
				// 参照表示＿参照表示＿親権者郵便番号 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者郵便番号
				bean[0].sendMessageString("参照表示＿親権者郵便番号", X31CWebConst.DATABEAN_SET_VALUE, formatPcd((String)parentMap.get("sksha_pcd")));
				// 参照表示＿親権者都道府県 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者都道府県名
				bean[0].sendMessageString("参照表示＿親権者都道府県", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_state_nm"));
				// 参照表示＿参照表示＿親権者市区町村 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者市区町村名
				bean[0].sendMessageString("参照表示＿親権者市区町村", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_city_nm"));
				// 参照表示＿参照表示＿親権者大字通称 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者大字通称名
				bean[0].sendMessageString("参照表示＿親権者大字通称", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_oaztsu_nm"));
				// 参照表示＿親権者字丁目 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者字丁目名
				bean[0].sendMessageString("参照表示＿親権者字丁目", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_azcho_nm"));
				// 参照表示＿親権者番地・号 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者住所番地号
				bean[0].sendMessageString("参照表示＿親権者番地・号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_ad_bnchigo"));
				// 参照表示＿親権者建物名 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者住所補記・建物名
				bean[0].sendMessageString("参照表示＿親権者建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_adrttm"));
				// 参照表示＿親権者部屋番号 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者住所補記・部屋番号
				bean[0].sendMessageString("参照表示＿親権者部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_adrrm"));
				// 参照表示＿親権者電話番号 ← お客様＜個人＞一意照会マップ.お客様＜個人＞一意照会明細.親権者電話番号
				bean[0].sendMessageString("参照表示＿親権者電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("sksha_telno"));
/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
				// 参照表示＿親権者手動入力
				bean[0].sendMessageBoolean("参照表示＿親権者手動入力", X31CWebConst.DATABEAN_SET_VALUE, (Boolean)parentMap.get("sksha_regai_input_btn"));
/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
			}
		}
		
		// 参照表示＿性別 ← お客様一意照会マップ.お客様一意照会明細.お客様性別コード名称
		bean[0].sendMessageString("参照表示＿性別", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_sex_cd_nm"));
		// 参照表示＿生年月日 ← お客様一意照会マップ.お客様一意照会明細.お客様生年月日
		bean[0].sendMessageString("参照表示＿生年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_birthd"));
		// 参照表示＿記事欄 ← お客様一意照会マップ.お客様一意照会明細.契約者住所補記・お客様確認備考
		bean[0].sendMessageString("参照表示＿記事欄", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_cfm_biko"));
		// 参照表示＿住所コード ← お客様一意照会マップ.お客様一意照会明細.契約者住所コード
		bean[0].sendMessageString("参照表示＿住所コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_ad_cd"));
		// 参照表示＿郵便番号 ← お客様一意照会マップ.お客様一意照会明細.契約者郵便番号
		bean[0].sendMessageString("参照表示＿郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_pcd"));
		// 参照表示＿都道府県 ← お客様一意照会マップ.お客様一意照会明細.契約者都道府県名
		bean[0].sendMessageString("参照表示＿都道府県", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_state_nm"));
		// 参照表示＿市区町村 ← お客様一意照会マップ.お客様一意照会明細.契約者市区町村名
		bean[0].sendMessageString("参照表示＿市区町村", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_city_nm"));
		// 参照表示＿大字通称 ← お客様一意照会マップ.お客様一意照会明細.契約者大字通称名
		bean[0].sendMessageString("参照表示＿大字通称", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_oaztsu_nm"));
		// 参照表示＿字丁目 ← お客様一意照会マップ.お客様一意照会明細.契約者字丁目名
		bean[0].sendMessageString("参照表示＿字丁目", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_azcho_nm"));
		// 参照表示＿番地・号 ← お客様一意照会マップ.お客様一意照会明細.契約者番地号
		bean[0].sendMessageString("参照表示＿番地・号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_bnchigo"));
		// 参照表示＿建物名 ← お客様一意照会マップ.お客様一意照会明細.契約者住所補記・建物名
		bean[0].sendMessageString("参照表示＿建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_adrttm"));
		// 参照表示＿部屋番号 ← お客様一意照会マップ.お客様一意照会明細.契約者住所補記・部屋番号
		bean[0].sendMessageString("参照表示＿部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_adrrm"));
		// 参照表示＿電話番号 ← お客様一意照会マップ.お客様一意照会明細.契約者住所補記・契約者電話番号
		bean[0].sendMessageString("参照表示＿電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("keisha_telno"));
		// 参照表示＿携帯電話
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("rrks_ktai_telno"));
		// 参照表示＿勤務先電話番号
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_OFFC_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("offc_telno"));
		// 参照表示＿メールアドレス
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_GEN_MLAD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("gen_mlad"));
/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		// 参照表示＿手動入力
		bean[0].sendMessageBoolean("参照表示＿手動入力", X31CWebConst.DATABEAN_SET_VALUE, (Boolean)parentMap.get("gen_regai_input_btn"));
/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
		// 参照表示＿送付先手動入力
		bean[0].sendMessageBoolean("参照表示＿送付先手動入力", X31CWebConst.DATABEAN_SET_VALUE, (Boolean)parentMap.get("send_regai_input_btn"));
		// 参照表示＿送付先郵便番号
		bean[0].sendMessageString("参照表示＿送付先郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_pcd"));
		// 参照表示＿送付先住所コード
		bean[0].sendMessageString("参照表示＿送付先住所コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_ad_cd"));
		// 参照表示＿送付先都道府県
		bean[0].sendMessageString("参照表示＿送付先都道府県", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_state_nm"));
		// 参照表示＿送付先市区町村
		bean[0].sendMessageString("参照表示＿送付先市区町村", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_city_nm"));
		// 参照表示＿送付先大字通称
		bean[0].sendMessageString("参照表示＿送付先大字通称", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_oaztsu_nm"));
		// 参照表示＿送付先字丁目
		bean[0].sendMessageString("参照表示＿送付先字丁目", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_azcho_nm"));
		// 参照表示＿送付先番地・号
		bean[0].sendMessageString("参照表示＿送付先番地・号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_bnchigo"));
		// 参照表示＿送付先建物名
		bean[0].sendMessageString("参照表示＿送付先建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_adrttm"));
		// 参照表示＿送付先部屋番号
		bean[0].sendMessageString("参照表示＿送付先部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cssti_shs_adrrm"));
/* ++++++++++ v4.01.00 追加終了 ++++++++++ */
		// 参照表示＿連絡条件
		bean[0].sendMessageString("参照表示＿連絡条件",
									X31CWebConst.DATABEAN_SET_VALUE,
									getComboNm(bean[0], CKW00401SFConst.RRK_JOKEN, (String)parentMap.get("rrk_way_cd")));
		// 参照表示＿連絡情報 ← お客様一意照会マップ.お客様一意照会明細.連絡手段補記
		bean[0].sendMessageString("参照表示＿連絡情報", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("rrk_way_hoki"));
		// 参照表示＿コンテンツお客様名 ← お客様一意照会マップ.お客様一意照会明細.コンテンツお客様名
		bean[0].sendMessageString("参照表示＿コンテンツお客様名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_cust_nm"));
		// 参照表示＿コンテンツお客様カナ名 ← お客様一意照会マップ.お客様一意照会明細.コンテンツお客様カナ名
		bean[0].sendMessageString("参照表示＿コンテンツお客様カナ名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_cust_kana"));
		// 参照表示＿コンテンツお客様性別コード ← お客様一意照会マップ.お客様一意照会明細.コンテンツお客様性別コード名称
		bean[0].sendMessageString("参照表示＿コンテンツお客様性別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_cust_sex_cd_nm"));
		// 参照表示＿コンテンツお客様生年月日 ← お客様一意照会マップ.お客様一意照会明細.コンテンツお客様生年月日
		bean[0].sendMessageString("参照表示＿コンテンツお客様生年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_cust_birthd"));
		// 参照表示＿コンテンツ郵便番号 ← お客様一意照会マップ.お客様一意照会明細.コンテンツ郵便番号
		bean[0].sendMessageString("参照表示＿コンテンツ郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_pcd"));
		// 参照表示＿コンテンツ住所１
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_CONT_AD_1, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_ad_1"));
		// 参照表示＿コンテンツ住所２
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_CONT_AD_2, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_ad_2"));
		// 参照表示＿コンテンツ住所３
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_CONT_AD_3, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_ad_3"));
		// 参照表示＿eoID ← お客様一意照会マップ.お客様一意照会明細.eoID
		bean[0].sendMessageString("参照表示＿ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("eoid"));
		// 参照表示＿会員種別
		bean[0].sendMessageString("参照表示＿会員種別",
									X31CWebConst.DATABEAN_SET_VALUE,
									getComboNm(bean[0], CKW00401SFConst.HOJI_MEMBER_SBT, (String)parentMap.get("member_sbt_cd")));
		// 参照表示＿ISP決済利用 ← お客様一意照会マップ.お客様一意照会明細.コンテンツISP利用不可フラグ名称
		bean[0].sendMessageString("参照表示＿ＩＳＰ決済利用", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_isp_use_fail_flg_nm"));
		// 参照表示＿適用開始日 ← お客様一意照会マップ.お客様一意照会明細.予約適用年月日
		bean[0].sendMessageString("参照表示＿適用開始日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("rsv_aply_ymd"));
		// 参照表示＿秘密の質問
		bean[0].sendMessageString("参照表示＿秘密の質問",
									X31CWebConst.DATABEAN_SET_VALUE,
									getComboNm(bean[0], CKW00401SFConst.SECRET_QUESTION, (String)parentMap.get("pwd_reminder_qs_cd")));
		// 参照表示＿秘密の質問（その他） ← お客様一意照会マップ.お客様一意照会明細.パスワードリマインダ用質問内容
		bean[0].sendMessageString("参照表示＿秘密の質問（その他）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("pwd_reminder_qs_naiyo"));
		// 参照表示＿秘密の質問の答え ← お客様一意照会マップ.お客様一意照会明細.パスワードリマインダ用回答
		bean[0].sendMessageString("参照表示＿秘密の質問の答え", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("pwd_reminder_ans"));
		// 参照表示＿ニックネーム ← お客様一意照会マップ.お客様一意照会明細.ニックネーム
		bean[0].sendMessageString("参照表示＿ニックネーム", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("nkname"));
		// 参照表示＿内販・外販情報 ← お客様一意照会マップ.お客様一意照会明細.内販外販コード
		bean[0].sendMessageString("参照表示＿内販・外販情報",
									X31CWebConst.DATABEAN_SET_VALUE,
									getComboNm(bean[0], CKW00401SFConst.NAIHAN_GAIHAN_INF, (String)parentMap.get("naihan_gaihan_cd")));
		// 参照表示＿企業識別コード ← お客様一意照会マップ.お客様一意照会明細.内販企業識別コード
		bean[0].sendMessageString("参照表示＿企業識別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("naihan_comp_skbt_cd"));
		// 参照表示＿ログイン認証 ← お客様一意照会マップ.お客様一意照会明細.ログイン認証可否名称
		bean[0].sendMessageString("参照表示＿ログイン認証", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("login_ninsho_kh_nm"));
// ANK-3375-00-00 ADD START
		if (JCKCommonConst.UM_U.equals((String)parentMap.get("payway_chg_ts_msg_yoksi_um")))
		{
			// 参照表示＿支払方法変更督促メッセージ抑止有無 ← true
			bean[0].sendMessageBoolean("参照表示＿支払方法変更督促メッセージ抑止有無", X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		else
		{
			// 参照表示＿支払方法変更督促メッセージ抑止有無 ← false
			bean[0].sendMessageBoolean("参照表示＿支払方法変更督促メッセージ抑止有無", X31CWebConst.DATABEAN_SET_VALUE, false);
		}
// ANK-3375-00-00 ADD END
		// 参照表示＿認証停止年月日 ← お客様一意照会マップ.お客様一意照会明細.ログイン認証停止年月日
		bean[0].sendMessageString("参照表示＿認証停止年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("login_ninsho_stp_ymd"));
		// 参照表示＿会員種別特定 ← お客様一意照会マップ.お客様一意照会明細.会員種別特定フラグ名称
		bean[0].sendMessageString("参照表示＿会員種別特定", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("mmb_sbt_tokut_flg_nm"));
		// 参照表示＿会員状態 ← お客様一意照会マップ.お客様一意照会明細.お客様ステータス
		bean[0].sendMessageString("参照表示＿ｅｏＩＤ会員状態", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("eoid_mmb_stat"));
		// 参照表示＿変更手続中メールアドレス
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_CHGECHU_MLAD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("chgechu_mlad"));
		
		// マスター会員の場合
		if (isMaster(ptn))
		{
			// 参照表示＿初期ｅｏＩＤパスワード
			bean[0].sendMessageString("参照表示＿初期ｅｏＩＤパスワード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("shk_eoid_pwd"));
			// 参照表示＿ファミリーコードパスワード
			bean[0].sendMessageString(CKW00401SFConst.REFERENCE_FAMILY_CD_PWD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("family_cd_pwd"));
		}
		
		// 非eo会員以外の場合
		if (isEoMmb(ptn))
		{
			// 参照表示＿回線利用停止状態
			bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KAISEN_USE_STP, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kaisen_use_stp"));
			// 参照表示＿仮登録年月日 ← お客様一意照会マップ.お客様一意照会明細.仮登録年月日
			bean[0].sendMessageString("参照表示＿仮登録年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kari_add_ymd"));
			// 参照表示＿入会年月日 ← お客様一意照会マップ.お客様一意照会明細.入会年月日
			bean[0].sendMessageString("参照表示＿入会年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("join_ymd"));
			// 参照表示＿退会年月日 ← お客様一意照会マップ.お客様一意照会明細.お客様退会年月日
			bean[0].sendMessageString("参照表示＿退会年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_taikai_ymd"));
			// 参照表示＿退会理由 ← お客様一意照会マップ.お客様一意照会明細.お客様退会理由コード名称
			bean[0].sendMessageString("参照表示＿退会理由", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_taikai_rsn_cd_nm"));
		}
		
		// 条件２
		bean[0].sendMessageString(CKW00401SFConst.JYOKEN2, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("jyoken2"));
		// 条件３
		bean[0].sendMessageString(CKW00401SFConst.JYOKEN3, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("jyoken3"));
		// 切替フラグ
		bean[0].sendMessageString(CKW00401SFConst.SWITCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("switch_flg"));
		// 制御＿標準コンテンツ未同意
		bean[0].sendMessageBoolean(CKW00401SFConst.CTL_DEF_CNT_MIDOI, X31CWebConst.DATABEAN_SET_VALUE, (Boolean)parentMap.get("ctl_def_cnt_midoi"));
		// 参照表示コンテンツフラグ
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_CONT_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("reference_cont_flg"));
		
		if ((Boolean)parentMap.get("cont_disp_um"))
		{
			// 参照表示＿コンテンツ電話番号
			bean[0].sendMessageString(CKW00401SFConst.REFERENCE_CONT_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_telno"));
			// 参照表示＿コンテンツメールアドレス
			bean[0].sendMessageString(CKW00401SFConst.REFERENCE_CONT_MLAD, X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cont_mlad"));
		}
		
		// オープン会員、非eo会員以外の場合
		if (isFamily(ptn))
		{
			X31SDataBeanAccessArray familyBean = bean[0].getDataBeanArray("参照表示＿家族会員情報");
			ArrayList familyList = (ArrayList)parentMap.get("ECK0011B003CBSMsg1List");
			HashMap familyMap = null;
			
			familyBean.clearArray();
			
			for (int i = 0; i < familyList.size(); i++)
			{
				X31SDataBeanAccess subbean = familyBean.addDataBean();
				familyMap = (HashMap)familyList.get(i);
				
				// 家族会員情報.家族ＳＹＳＩＤ ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.SYSID
				subbean.sendMessageString("家族ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_cust_sysid"));
				// 家族会員情報.家族お客様名 ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.お客様名
				subbean.sendMessageString("家族お客様名", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_mmb_nm"));
				// 家族会員情報.家族お客様カナ名 ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.お客様カナ名
				subbean.sendMessageString("家族お客様カナ名", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_mmb_kana"));
				// 家族会員情報.家族生年月日 ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.お客様生年月日
				subbean.sendMessageString("家族生年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_mmb_birthd"));
				// 家族会員情報.家族契約者住所 ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.契約者住所
				subbean.sendMessageString("家族契約者住所", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_ad"));
				// 家族会員情報.家族電話番号 ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.契約者電話番号
				subbean.sendMessageString("家族電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_mmb_telno"));
				// 家族会員情報.家族ｅｏＩＤ ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.eoID
				subbean.sendMessageString("家族ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_mmb_eoid"));
				// 家族会員情報.家族会員種別 ← 家族会員情報一覧照会マップ.家族会員情報一覧照会明細.会員種別名称
				subbean.sendMessageString("家族会員種別", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_mmb_sbt"));
				// 家族会員情報.家族状態
				subbean.sendMessageString("家族状態", X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("family_mmb_stat"));
				// レコードスタイル
				subbean.sendMessageString(CKW00401SFConst.RECORDSTYLE_03, X31CWebConst.DATABEAN_SET_VALUE, (String)familyMap.get("recordStyle"));
			}
		}
		
		ArrayList kssaiList = (ArrayList)parentMap.get("ECN0131B001CBSMsg1List");
		HashMap kssaiMap = null;
		
		for (int i = 0; i < kssaiList.size(); i++)
		{
			kssaiMap = (HashMap)kssaiList.get(i);
			
			// 参照表示＿決済方法
			bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KSSAI_WAY, X31CWebConst.DATABEAN_ADD_VALUE, (String)kssaiMap.get("cd_div_nm"));
		}
		
		// ANK-2553-00-00 ADD START
		// 参照表示＿購入可否フラグ ← お客様一意照会マップ.お客様一意照会明細.購入可否フラグコード
		bean[0].sendMessageString(CKW00401SFConst.REFERENCE_KONYU_KAHI_FLG, X31CWebConst.DATABEAN_SET_VALUE,
									getComboNm(bean[0], CKW00401SFConst.KONYU_KAHI_FLG, (String)parentMap.get("konyu_kahi_flg_cd")));
		// ANK-2553-00-00 ADD END
		
		return bean;
	}
// ANK-2737-00-00 ADD START
	/**
	 * 下りマッピング
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCKSV001301SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CKSV001301SC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV001301SC");
		}
		
		ArrayList childList = null;
		String knytcsEtcDoi = "0";
		if (parentMap.containsKey("ECK0241A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECK0241A010CBSMsg1List");
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				if (childMap.get("knytcs_dnskh_doi") != null) 
				{
					knytcsEtcDoi = (String)childMap.get("knytcs_dnskh_doi");
				}
			}
		}

		// 電子通知同意
		bean[0].sendMessageBoolean(CKW00401SFConst.REFERENCE_KNYTCS_ETC_DOI, X31CWebConst.DATABEAN_SET_VALUE, JCKCommonConst.UM_U.equals(knytcsEtcDoi));
		
		return bean;
	}
// ANK-2737-00-00 ADD END
	/**
	 * 下りマッピング
	 * @param bean
	 * @param outputMap
	 * @param flg
	 * 
	 * @return String[]
	 */
	@SuppressWarnings("unchecked")
	public String[] getBirthDay(X31SDataBeanAccess[] bean, HashMap outputMap, String flg)
	{
		HashMap parentMap = (HashMap)outputMap.get("CKSV001301CC");
		String nego = "";
		String year = "";
		String age = "";
		
		// 契約者の場合
		if ("1".equals(flg))
		{
			nego = getComboNm(bean[0], CKW00401SFConst.CUST_BIRTHD_NEGO, (String)parentMap.get("cust_birthd_nego"));
			year = (String)parentMap.get("cust_birthd_y");
			age = (String)parentMap.get("cust_old");
		}
		// 親権者の場合
		else if ("2".equals(flg))
		{
			nego = getComboNm(bean[0], CKW00401SFConst.SKSHA_BIRTHD_NEGO, (String)parentMap.get("sksha_birthd_nego"));
			year = (String)parentMap.get("sksha_birthd_y");
			age = (String)parentMap.get("sksha_old");
		}
		// コンテンツの場合
		else if ("3".equals(flg))
		{
			nego = getComboNm(bean[0], CKW00401SFConst.CONT_CUST_BIRTHD_NEGO, (String)parentMap.get("cont_cust_birthd_nego"));
			year = (String)parentMap.get("cont_cust_birthd_y");
			age = (String)parentMap.get("cont_cust_old");
		}
		
		return new String[]{nego, year, age};
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCKSV001306CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CKSV001306CC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV001306CC");
		}
		
		X31SDataBeanAccessArray mailList = bean[0].getDataBeanArray("参照表示＿メール受信設定");
		X31SDataBeanAccessArray optinmList = bean[0].getDataBeanArray("メール受信ヘッダ部");
		LinkedHashMap<String, HashMap> mailMap = new LinkedHashMap<String, HashMap>();
		String[] optinm = new String[optinmList.getCount()];
		
		for (int i = 0; i < optinmList.getCount(); i++)
		{
			optinm[i] = optinmList.getDataBean(i).sendMessageString("オプトインメール番号", X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		mailList.clearArray();
		
		// コンテンツ同意済の場合のみ連絡用表示
		boolean defCntMidoi = bean[0].sendMessageBoolean(CKW00401SFConst.CTL_DEF_CNT_MIDOI, X31CWebConst.DATABEAN_GET_VALUE);
		if (defCntMidoi == false && parentMap.containsKey("ECK0201B001CBSMsg1List"))
		{
			mailMap = setOptinm((ArrayList)parentMap.get("ECK0201B001CBSMsg1List"), mailMap, "rrks");
		}
		
		// 契約メール
		if (parentMap.containsKey("EKK0081B003CBSMsg1List"))
		{
			mailMap = setOptinm((ArrayList)parentMap.get("EKK0081B003CBSMsg1List"), mailMap, "kei");
		}
		
		String[] key_list = mailMap.keySet().toArray(new String[0]);
		for (int i = 0; i < key_list.length; i++)
		{
			HashMap data = mailMap.get(key_list[i]);
			X31SDataBeanAccess subbean = mailList.addDataBean();
			String rrksDisp = "―";
			String keiDisp = "―";
			
			// メール受信設定タイプ.受信メールアドレス
			subbean.sendMessageString("受信メールアドレス", X31CWebConst.DATABEAN_SET_VALUE, key_list[i]);
			
			if (data.containsKey("rrks"))
			{
				rrksDisp = "○";
			}
			// メール受信設定タイプ.受信連絡用メール
			subbean.sendMessageString("受信連絡用メール", X31CWebConst.DATABEAN_SET_VALUE, rrksDisp);
			
			if (data.containsKey("kei"))
			{
				keiDisp = "○";
			}
			// メール受信設定タイプ.受信契約メール
			subbean.sendMessageString("受信契約メール", X31CWebConst.DATABEAN_SET_VALUE, keiDisp);
			
			for (int j = 0; j < optinm.length; j++)
			{
				Boolean flg = false;
				
				if (data.containsKey(optinm[j]))
				{
					// 受信区分ありの場合
					if ("1".equals((String)data.get(optinm[j])))
					{
						flg = true;
					}
				}
				// メール受信設定タイプ.受信メールの設定
				subbean.sendMessageBoolean("受信メールの設定", X31CWebConst.DATABEAN_ADD_VALUE, flg);
			}
			
			// メール受信設定タイプ.レコードスタイル ← 偶数はodd、奇数はeven
			if (i % 2 == 0)
			{
				subbean.sendMessageString(CKW00401SFConst.RECORDSTYLE_04, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			else
			{
				subbean.sendMessageString(CKW00401SFConst.RECORDSTYLE_04, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
		}
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCKSV001309CC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("CKSV001309CC"))
		{
			parentMap = (HashMap)outputMap.get("CKSV001309CC");
		}

		ArrayList childList = null;
		
		X31SDataBeanAccessArray listCKSV001309SC_mmb_rireki_list_ECK0011B001CBSMsg1List = bean[0].getDataBeanArray("参照表示＿お客様情報履歴一覧");
		childList = null;
		if (parentMap.containsKey("ECK0011B001CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECK0011B001CBSMsg1List");
			
			X31SDataBeanAccess subbean = null;
			HashMap childMap = null;
			String startYmd = "";
			
			for (int i = 0; i < childList.size(); i++)
			{
				if (listCKSV001309SC_mmb_rireki_list_ECK0011B001CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listCKSV001309SC_mmb_rireki_list_ECK0011B001CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listCKSV001309SC_mmb_rireki_list_ECK0011B001CBSMsg1List.addDataBean();
				}
				childMap = (HashMap)childList.get(i);
				
				// お客様情報履歴一覧.履歴世代登録年月日時分秒 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.世代登録年月日時分秒
				subbean.sendMessageString("履歴世代登録年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gene_add_dtm"));
				// お客様情報履歴一覧.履歴会員種別 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.会員種別コード名称
				subbean.sendMessageString("履歴会員種別", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("member_sbt_cd_nm"));
				// お客様情報履歴一覧.履歴ＳＹＳＩＤ ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.SYSID
				subbean.sendMessageString("履歴ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
				// お客様情報履歴一覧.履歴お客様名 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.お客様名
				subbean.sendMessageString("履歴お客様名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
				// お客様情報履歴一覧.履歴連絡先住所 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.連絡先住所
				subbean.sendMessageString("履歴連絡先住所", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("rrks_ad"));
				
				String rsvAplyYmd = (String)childMap.get("rsv_aply_ymd");
				// お客様情報履歴一覧.履歴適用開始日 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.予約適用年月日
				subbean.sendMessageString("履歴適用開始日", X31CWebConst.DATABEAN_SET_VALUE, rsvAplyYmd);
				
				// お客様情報履歴一覧.履歴適用終了日
				if (i > 0)
				{
					if (startYmd.equals(rsvAplyYmd))
					{
						subbean.sendMessageString("履歴適用終了日", X31CWebConst.DATABEAN_SET_VALUE, rsvAplyYmd);
					}
					else
					{
						subbean.sendMessageString("履歴適用終了日", X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.addDay(startYmd, -1));
					}
				}
				
				// お客様情報履歴一覧.履歴電話番号 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.電話番号
				subbean.sendMessageString("履歴電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("telno"));
				// お客様情報履歴一覧.履歴名寄せ先ＳＹＳＩＤ ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.名寄せ先SYSID
				subbean.sendMessageString("履歴名寄せ先ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("nayose_saki_sysid"));
				// お客様情報履歴一覧.履歴名寄せ年月日 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.名寄せ年月日
				subbean.sendMessageString("履歴名寄せ年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("nayose_ymd"));
				// お客様情報履歴一覧.履歴退会年月日 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.お客様退会年月日
				subbean.sendMessageString("履歴退会年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_taikai_ymd"));
				// お客様情報履歴一覧.履歴無効年月日 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.お客様無効年月日
				subbean.sendMessageString("履歴無効年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_mk_ymd"));
				// お客様情報履歴一覧.履歴変更年月日 ← お客様情報履歴一覧照会マップ.お客様情報履歴一覧照会明細.登録年月日時分秒
				subbean.sendMessageString("履歴変更年月日", X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toYmdFromDtm((String)childMap.get("add_dtm")));
				
				startYmd = rsvAplyYmd;
				
				if (i % 2 == 0)
				{
					subbean.sendMessageString(CKW00401SFConst.RECORDSTYLE_03, X31CWebConst.DATABEAN_SET_VALUE, "odd");
				}
				else
				{
					subbean.sendMessageString(CKW00401SFConst.RECORDSTYLE_03, X31CWebConst.DATABEAN_SET_VALUE, "even");
				}
			}
		}
		
		return bean;
	}

	/**
	 * 郵便番号フォーマットに変換します。
	 * <br>
	 * @param pcd 郵便番号
	 * <br>
	 * @return String フォーマット変換した郵便番号
	 */
	private String formatPcd(String pcd)
	{
		StringBuilder sb = null;
		
		if (pcd == null || "".equals(pcd))
		{
			return "";
		}
		
		sb = new StringBuilder();
		sb.append("〒");
		sb.append(JPCUtilCommon.hyhunPcd(pcd));
		
		return sb.toString();
	}
	
	/**
	 * 住所コードフォーマットに変換します。
	 * <br>
	 * @param adCd 住所コード
	 * <br>
	 * @return String フォーマット変換した住所コード
	 */
	private String formatAdCd(String adCd)
	{
		if (adCd == null || "".equals(adCd))
		{
			return "";
		}
		
		return JPCUtilCommon.hyhunAdCd(adCd);
	}
	
	/**
	 * オプトインメール受信情報を元に受信設定一覧を作成します。
	 * <br>
	 * @param childList オプトインメール受信情報
	 * @param mailMap 受信設定一覧
	 * @param mailSbt 受信メール種別
	 * 
	 * @return String 選択されているコード値
	 * <br>
	 */
	@SuppressWarnings("unchecked")
	private LinkedHashMap setOptinm(ArrayList childList, LinkedHashMap mailMap, String mailSbt)
	{
		for (int i = 0; i < childList.size(); i++)
		{
			HashMap childMap = (HashMap)childList.get(i);
			HashMap data = null;
			String mlad = (String)childMap.get("mlad");
			String optinmNo = (String)childMap.get("optinm_no");
			
			if (mailMap.containsKey(mlad))
			{
				data = (HashMap)mailMap.get(mlad);
			}
			else
			{
				data = new HashMap<String, String>();
			}
			
			data.put(mailSbt, null);
			data.put(optinmNo, (String)childMap.get("rcv_div"));
			mailMap.put(mlad, data);
		}
		return mailMap;
	}
	
	/**
	 * コード値を元にコンボボックスから名称を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param comboName コンボボックス名称
	 * @param codeValue コード値
	 * <br>
	 * @return String 名称
	 */
	private String getComboNm(X31SDataBeanAccess bean, String comboName, String codeValue)
	{
		X31SDataBeanAccess subBean = bean.getDataBeanArray(comboName).getDataBean(0);
		String temp = null;
		String value = "";
		int count = (Integer)subBean.sendMessage(CKW00401SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		for (int i = 0; i < count; i++)
		{
			temp = subBean.sendMessageString(CKW00401SFConst.CD_DIV_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			if (temp.equals(codeValue))
			{
				value = subBean.sendMessageString(CKW00401SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
				break;
			}
		}
		
		return value;
	}
	
	/**
	 * 法人チェックをします。
	 * <br>
	 * @param ptn
	 * <br>
	 * @return boolean
	 */
	private boolean isHojin(String ptn)
	{
		if ("4".equals(ptn) || "5".equals(ptn) || "6".equals(ptn))
		{
			return true;
		}
		else if ("14".equals(ptn) || "15".equals(ptn) || "16".equals(ptn))
		{
			return true;
		}
		else if ("17".equals(ptn) || "18".equals(ptn))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * マスター会員チェックをします。
	 * <br>
	 * @param ptn
	 * <br>
	 * @return boolean
	 */
	private boolean isMaster(String ptn)
	{
		if ("4".equals(ptn) || "5".equals(ptn) || "6".equals(ptn))
		{
			return true;
		}
		else if ("1".equals(ptn) || "2".equals(ptn))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * 非eo会員チェックをします。
	 * <br>
	 * @param ptn
	 * <br>
	 * @return boolean
	 */
	private boolean isEoMmb(String ptn)
	{
		if ("13".equals(ptn) || "14".equals(ptn) || "15".equals(ptn) || "16".equals(ptn))
		{
			return false;
		}
		return true;
	}
	
	/**
	 * 家族会員チェックをします。
	 * <br>
	 * @param ptn
	 * <br>
	 * @return boolean
	 */
	private boolean isFamily(String ptn)
	{
		if ("1".equals(ptn) || "2".equals(ptn))
		{
			return true;
		}
		else if ("4".equals(ptn) || "5".equals(ptn) || "6".equals(ptn))
		{
			return true;
		}
		else if ("7".equals(ptn) || "8".equals(ptn) || "9".equals(ptn) || "10".equals(ptn))
		{
			return true;
		}
		return false;
	}
}
