/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0657_KKSV0657OPDBMapper
*	ソースファイル名：KKSV0657_KKSV0657OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年09月07日
*＜機能概要＞
*	BP（契約内容変更WEB受付データ更新_更新）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/09/07	FJ		新規作成
*   v4.01.00    2013/02/15   FJ）藤原    【ST3-2013-0000040】対応
*	v4.02.00	2013/03/14   FJ）稲岡    【ST1-2013-0000356】対応
*	v4.03.00	2013/03/21   FJ）馬場    【IT1-2013-0000562】対応
*	v8.00.00	2014/03/05   FJ）石橋    【ANK-1962-00-00】対応
*	v17.00.00	2015/07/30   FJ)遠藤     【ANK-2557-00-00】対応
**********************************************************************/
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.common.util.JPCUtilCommon;
import eo.web.webview.KKW15901SF.KKW15901SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 * @author FJ)赤穂
 */
public class KKSV0657_KKSV0657OPDBMapper
{
	/** 標準コンテンツ同意 */
	private static final String STDARD_CONT_DOI = "1";
	
	/**
	 * コンストラクタ
	 */
	public KKSV0657_KKSV0657OPDBMapper()
	{
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：契約内容変更ＷＥＢ受付データ更新
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV065701CC(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 → 契約内容変更WEB受付データ更新マップ.ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// お客様性別 → 契約内容変更WEB受付データ更新マップ.お客様性別
		parentMap.put("keisha_sex_cd", bean[0].sendMessageString("お客様性別", X31CWebConst.DATABEAN_GET_VALUE));
// ++++++++++ v4.03.00 追加開始 ++++++++++
		// 初期表示＿お客様性別 → 契約内容変更WEB受付データ更新マップ.初期表示＿お客様性別
		parentMap.put("init_keisha_sex_cd", bean[0].sendMessageString("初期表示＿お客様性別", X31CWebConst.DATABEAN_GET_VALUE));
// ++++++++++ v4.03.00 追加終了 ++++++++++
		// 契約者電話番号 → 契約内容変更WEB受付データ更新マップ.契約者電話番号
		parentMap.put("keisha_telno", bean[0].sendMessageString("契約者電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号 → 契約内容変更WEB受付データ更新マップ.郵便番号
		String strPcd = formatAddPcd(bean);
		parentMap.put("keisha_ad_pcd", strPcd);
		bean[0].sendMessageString("郵便番号", X31CWebConst.DATABEAN_SET_VALUE, formatPcd(strPcd));
		// 住所コード → 契約内容変更WEB受付データ更新マップ.住所コード
		String strAdCd = formatAddAdCd(bean);
		parentMap.put("gen_ad_cd", strAdCd);
		bean[0].sendMessageString("住所コード", X31CWebConst.DATABEAN_SET_VALUE, formatAdCd(strAdCd));
		// 契約者都道府県名 → 契約内容変更WEB受付データ更新マップ.契約者都道府県名
		parentMap.put("keisha_state_nm", bean[0].sendMessageString("契約者都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者市区町村名 → 契約内容変更WEB受付データ更新マップ.契約者市区町村名
		parentMap.put("keisha_city_nm", bean[0].sendMessageString("契約者市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者大字通称名 → 契約内容変更WEB受付データ更新マップ.契約者大字通称名
		parentMap.put("keisha_oaztsu_nm", bean[0].sendMessageString("契約者大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者字丁目名 → 契約内容変更WEB受付データ更新マップ.契約者字丁目名
		parentMap.put("keisha_azcho_nm", bean[0].sendMessageString("契約者字丁目名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者番地号 → 契約内容変更WEB受付データ更新マップ.契約者番地号
		parentMap.put("keisha_bnchigo", bean[0].sendMessageString("契約者番地号", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所補記・建物名 → 契約内容変更WEB受付データ更新マップ.契約者住所補記・建物名
		parentMap.put("keisha_adrttm", bean[0].sendMessageString("契約者住所補記・建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所補記・部屋番号 → 契約内容変更WEB受付データ更新マップ.契約者住所補記・部屋番号
		parentMap.put("keisha_adrrm", bean[0].sendMessageString("契約者住所補記・部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 記事欄 → 契約内容変更WEB受付データ更新マップ.記事欄
		parentMap.put("kijiran", bean[0].sendMessageString("記事欄", X31CWebConst.DATABEAN_GET_VALUE));
		// 更新年月日時分秒（更新前） → 契約内容変更WEB受付データ更新マップ.更新年月日時分秒（更新前）
		parentMap.put("upd_dtm_bf", bean[0].sendMessageString("更新年月日時分秒（更新前）", X31CWebConst.DATABEAN_GET_VALUE));
		// ＰＭＰ＿更新年月日時分秒（更新前） → 契約内容変更WEB受付データ更新マップ.PMP＿更新年月日時分秒（更新前）
		parentMap.put("pmp_upd_dtm_bf", bean[0].sendMessageString("ＰＭＰ＿更新年月日時分秒（更新前）", X31CWebConst.DATABEAN_GET_VALUE));
		// ＰＭＰ変更依頼識別番号 → 契約内容変更WEB受付データ更新マップ.PMP変更依頼識別番号
		parentMap.put("pmp_chg_req_skbt_no", bean[0].sendMessageString("ＰＭＰ変更依頼識別番号", X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約番号 → 契約内容変更WEB受付データ更新マップ.サービス契約番号
		parentMap.put("svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者タイプコード → 契約内容変更WEB受付データ更新マップ.契約者タイプコード
		parentMap.put("keisha_type_cd", bean[0].sendMessageString("契約者タイプコード", X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先住所手動入力フラグ
		String shsAdManInputFlg = "0";
		if(bean[0].sendMessageBoolean("手動入力", X31CWebConst.DATABEAN_GET_VALUE))
		{
			shsAdManInputFlg = "1";
		}
		parentMap.put("sksha_regai_input_btn", shsAdManInputFlg);
		
		// 送付先住所手動入力フラグレベル
// ++++++++++ v4.01.00 修正開始 ++++++++++
//		if(bean[0].sendMessageBoolean("手動入力", X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			parentMap.put("sksha_regai_input_btn_lv", "0");
//		}
//		else
//		{
//			parentMap.put("sksha_regai_input_btn_lv", "1");
//		}
		
		if(bean[0].sendMessageBoolean("手動入力", X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("keisha_ad_chk_lv", "0");
		}
		else
		{
			parentMap.put("keisha_ad_chk_lv", "1");
		}
// ++++++++++ v4.01.00 修正終了 ++++++++++
		
// ++++++++++ v4.02.00 追加開始 ++++++++++
		// 契約者情報 → コンテンツお客様情報 コピー判定
		if (isCopyKeishaInfo(bean))
		{
			// 契約者情報コピー処理
			execCopyKeishaInfoToCont(bean, parentMap);
			
			// 連絡先＿連絡先番号 → お客様連絡先登録変更マップ.連絡先番号
			parentMap.put("rrks_no", bean[0].sendMessageString(KKW15901SFConst.RRKS_RRKS_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者電話番号 → お客様連絡先登録変更マップ.コンテンツ電話番号
			parentMap.put("cont_telno", bean[0].sendMessageString(KKW15901SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// コンテンツ情報登録フラグ
			parentMap.put("cont_inf_add_flg", true);
		}
		else
		{
			// コンテンツ情報登録フラグ
			parentMap.put("cont_inf_add_flg", false);
		}
// ++++++++++ v4.02.00 追加終了 ++++++++++
		
		// ======== v4.00.00 ANK-1223-00-00 進捗対応 ========
		StringBuilder sb = new StringBuilder();
		// 変更後電話番号
		String init_telno = bean[0].sendMessageString(KKW15901SFConst.INIT_KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 初期表示から契約者電話番号が変更されていた場合
		if(!init_telno.equals(bean[0].sendMessageString("契約者電話番号", X31CWebConst.DATABEAN_GET_VALUE)))
		{
			sb.append("電話番号：(修正前)");
			sb.append(init_telno);
			sb.append("(修正後)");
			sb.append(bean[0].sendMessageString("契約者電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		
		// 変更後住所
		StringBuilder add = new StringBuilder();
		add.append(bean[0].sendMessageString("契約者都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
		add.append(bean[0].sendMessageString("契約者市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
		add.append(bean[0].sendMessageString("契約者大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		add.append(bean[0].sendMessageString("契約者字丁目名", X31CWebConst.DATABEAN_GET_VALUE));
		add.append(bean[0].sendMessageString("契約者番地号", X31CWebConst.DATABEAN_GET_VALUE));
		add.append(bean[0].sendMessageString("契約者住所補記・建物名", X31CWebConst.DATABEAN_GET_VALUE));
		add.append(bean[0].sendMessageString("契約者住所補記・部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		String init_add = bean[0].sendMessageString(KKW15901SFConst.INIT_KEISHA_ADD, X31CWebConst.DATABEAN_GET_VALUE);
		String chrg_add = add.toString();
		// 初期表示から契約者住所情報が変更されていた場合
		if(!init_add.equals(chrg_add))
		{
			if(sb.length() > 0){
				sb.append("　");
			}
			sb.append("住所情報変更：(修正前)");
			sb.append(init_add);
			sb.append("(修正後)");
			sb.append(chrg_add);
		}
		
		String prg_tkjk = sb.toString();
		
		if(prg_tkjk.length() > 128 && prg_tkjk.length() <= 256)
		{
			parentMap.put("prg_tkjk_1", prg_tkjk.substring(0, 128));
			parentMap.put("prg_tkjk_2", prg_tkjk.substring(128));
		}
		else if(prg_tkjk.length() > 256)
		{
			parentMap.put("prg_tkjk_1", prg_tkjk.substring(0, 128));
			parentMap.put("prg_tkjk_2", prg_tkjk.substring(128, 256));
		}
		else
		{
			parentMap.put("prg_tkjk_1", prg_tkjk);
			parentMap.put("prg_tkjk_2", "");
		}
		
		// ======== v4.00.00 ANK-1223-00-00 進捗対応 ========
		
		/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
		// 関電Ｇ個人情報取扱同意有無
		parentMap.put("kepg_kjnif_trat_doi_um", bean[0].sendMessageString("関電Ｇ個人情報取扱同意有無", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報取扱同意有無名称
		parentMap.put("kepg_kjnif_trat_doi_um_nm", bean[0].sendMessageString("関電Ｇ個人情報取扱同意有無名称", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報取扱同意年月日
		parentMap.put("kepg_kjnif_trat_doi_ymd", bean[0].sendMessageString("関電Ｇ個人情報取扱同意年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供不可フラグ
		parentMap.put("kepg_kjnift_ffg", bean[0].sendMessageString("関電Ｇ個人情報提供不可フラグ", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供不可フラグ名称
		parentMap.put("kepg_kjnift_ffg_nm", bean[0].sendMessageString("関電Ｇ個人情報提供不可フラグ名称", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供不可フラグ変更年月日
		parentMap.put("kepg_kjnift_ffg_chg_ymd", bean[0].sendMessageString("関電Ｇ個人情報提供不可フラグ変更年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供不可フラグ変更受付方法コード
		parentMap.put("kepg_kjnift_ffg_chg_uwy_cd", bean[0].sendMessageString("関電Ｇ個人情報提供不可フラグ変更受付方法コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供不可フラグ変更受付方法コード名称
		parentMap.put("kepg_kjnift_ffg_chg_uwy_cd_nm", bean[0].sendMessageString("関電Ｇ個人情報提供不可フラグ変更受付方法コード名称", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供状況コード
		parentMap.put("kepg_kjnift_jokyo_cd", bean[0].sendMessageString("関電Ｇ個人情報提供状況コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供状況コード名称
		parentMap.put("kepg_kjnift_jokyo_cd_nm", bean[0].sendMessageString("関電Ｇ個人情報提供状況コード名称", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供開始年月日
		parentMap.put("kepg_kjnift_staymd", bean[0].sendMessageString("関電Ｇ個人情報提供開始年月日", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供停止連携状態コード
		parentMap.put("kepg_kjnift_rscd", bean[0].sendMessageString("関電Ｇ個人情報提供停止連携状態コード", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供停止連携状態コード名称
		parentMap.put("kepg_kjnift_rscd_nm", bean[0].sendMessageString("関電Ｇ個人情報提供停止連携状態コード名称", X31CWebConst.DATABEAN_GET_VALUE));
		// 関電Ｇ個人情報提供停止連携状態コード変更年月日
		parentMap.put("kepg_kjnift_rscd_chg_ymd", bean[0].sendMessageString("関電Ｇ個人情報提供停止連携状態コード変更年月日", X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
		
// ANK-2557-00-00 ADD START
		// 住所コード → 請求書送付先情報一覧更新マップ.住所コード
		parentMap.put("sohus_ad_cd", strAdCd);
		// 郵便番号 → 請求書送付先情報一覧更新マップ.郵便番号
		parentMap.put("sohus_pcd", strPcd);
		bean[0].sendMessageString("郵便番号", X31CWebConst.DATABEAN_SET_VALUE, formatPcd(strPcd));
		// 契約者都道府県名 → 請求書送付先情報一覧更新マップ.契約者都道府県名
		parentMap.put("sohus_state_nm", bean[0].sendMessageString("契約者都道府県名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者市区町村名 → 請求書送付先情報一覧更新マップ.契約者市区町村名
		parentMap.put("sohus_city_nm", bean[0].sendMessageString("契約者市区町村名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者大字通称名 → 請求書送付先情報一覧更新マップ.契約者大字通称名
		parentMap.put("sohus_oaztsu_nm", bean[0].sendMessageString("契約者大字通称名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者字丁目名 → 請求書送付先情報一覧更新マップ.契約者字丁目名
		parentMap.put("sohus_azcho_nm", bean[0].sendMessageString("契約者字丁目名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所補記・建物名 → 請求書送付先情報一覧更新マップ.契約者住所補記・建物名
		parentMap.put("sohus_adrttm", bean[0].sendMessageString("契約者住所補記・建物名", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者住所補記・部屋番号 → 請求書送付先情報一覧更新マップ.契約者住所補記・部屋番号
		parentMap.put("sohus_adrrm", bean[0].sendMessageString("契約者住所補記・部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者番地号 → 請求書送付先情報一覧更新マップ.契約者番地号
		parentMap.put("sohus_bnchigo", bean[0].sendMessageString("契約者番地号", X31CWebConst.DATABEAN_GET_VALUE));
		// 請求書送付先情報一覧更新マップ.送付先住所手動入力フラグ
		parentMap.put("sohus_ad_man_input_flg", shsAdManInputFlg);
		// 請求書送付先情報一覧更新マップ.送付先住所チェックレベル
		if(bean[0].sendMessageBoolean("手動入力", X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("sohus_ad_chk_lv", "0");
		}
		else
		{
			parentMap.put("sohus_ad_chk_lv", "1");
		}
		// 契約者電話番号 → 請求書送付先情報一覧更新マップ.契約者電話番号
		parentMap.put("sohus_telno", bean[0].sendMessageString("契約者電話番号", X31CWebConst.DATABEAN_GET_VALUE));
		
		// 受渡し用リスト
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		
		X31SDataBeanAccessArray arraybean  = bean[0].getDataBeanArray("請求書送付先情報リスト");
		
		if(arraybean != null && parentMap != null)
		{
			for(int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if(arraybean.getCount() -1 >= i)
				{
					subbean = arraybean.getDataBean(i);
				}else
				{
					subbean = arraybean.addDataBean();
				}
				
				if(subbean.sendMessageBoolean("変更", X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 請求送付先情報格納用
					HashMap childMap = new HashMap();
					// "0" → 請求契約内容変更リスト.請求書送付先_契約者住所差異フラグ
					if (subbean != null)
					{
						childMap.put("sks_shs_ksh_ad_sai_flg", "0");
					}
					// 請求書送付先情報リスト.請求契約番号 → 請求契約内容変更リスト.請求契約番号
 					if (subbean != null)
 					{
						childMap.put("seiky_kei_no", subbean.sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.請求契約カナ名 → 請求契約内容変更リスト.請求契約カナ名
					if (subbean != null)
					{
						childMap.put("seiky_kei_kana", subbean.sendMessageString("請求契約カナ名", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.情報表示コード → 請求契約内容変更リスト.情報表示コード
					if (subbean != null)
					{
						childMap.put("info_dsp_cd", subbean.sendMessageString("情報表示コード", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.請求書発行要否 → 請求契約内容変更リスト.請求書発行要否
					if (subbean != null)
					{
						childMap.put("seikyus_hakko_yh", subbean.sendMessageString("請求書発行要否", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.請求書送付先名＿お客様名差異フラグ → 請求契約内容変更リスト.請求書送付先名＿お客様名差異フラグ
					if (subbean != null)
					{
						childMap.put("sks_shs_nm_cust_nm_sai_flg", subbean.sendMessageString("請求書送付先名＿お客様名差異フラグ", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先法人格種別コード → 請求契約内容変更リスト.送付先法人格種別コード
					if (subbean != null)
					{
						childMap.put("shs_hojin_sbt_cd", subbean.sendMessageString("送付先法人格種別コード", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先法人格前後指定コード → 請求契約内容変更リスト.送付先法人格前後指定コード
					if (subbean != null)
					{
						childMap.put("shs_hojin_zengo_shitei_cd", subbean.sendMessageString("送付先法人格前後指定コード", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先カナ名 → 請求契約内容変更リスト.送付先カナ名
					if (subbean != null)
					{
						childMap.put("shs_kana", subbean.sendMessageString("送付先カナ名", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先名 → 請求契約内容変更リスト.送付先名
					if (subbean != null)
					{
						childMap.put("sohus_nm", subbean.sendMessageString("送付先名", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先部課名 → 請求契約内容変更リスト.送付先部課名
					if (subbean != null)
					{
						childMap.put("sohus_bkm", subbean.sendMessageString("送付先部課名", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先担当者名 → 請求契約内容変更リスト.送付先担当者名
					if (subbean != null)
					{
						childMap.put("sohus_tntsha_nm", subbean.sendMessageString("送付先担当者名", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先ＦＡＸ番号 → 請求契約内容変更リスト.送付先ＦＡＸ番号
					if (subbean != null)
					{
						childMap.put("sohus_fax_no", subbean.sendMessageString("送付先ＦＡＸ番号", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.送付先メールアドレス → 請求契約内容変更リスト.送付先メールアドレス
					if (subbean != null)
					{
						childMap.put("sohus_mlad", subbean.sendMessageString("送付先メールアドレス", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.請求方法適用調整年月日 → 請求契約内容変更リスト.請求方法適用調整年月日
					if (subbean != null)
					{
						childMap.put("seiky_way_aply_adj_ymd", subbean.sendMessageString("請求方法適用調整年月日", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.予約適用開始希望年月日 → 請求契約内容変更リスト.予約適用開始希望年月日
					if (subbean != null)
					{
						childMap.put("rsv_tsta_kibo_ymd", subbean.sendMessageString("予約適用開始希望年月日", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.初回請求年月 → 請求契約内容変更リスト.初回請求年月
					if (subbean != null)
					{
						childMap.put("first_seiky_ym", subbean.sendMessageString("初回請求年月", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.初回支払申込書送付要否 → 請求契約内容変更リスト.初回支払申込書送付要否
					if (subbean != null)
					{
						childMap.put("first_pay_mskmsho_sohu_yh", subbean.sendMessageString("初回支払申込書送付要否", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.初回支払申込書送付年月日 → 請求契約内容変更リスト.初回支払申込書送付年月日
					if (subbean != null)
					{
						childMap.put("first_pay_mskmsho_sohu_ymd", subbean.sendMessageString("初回支払申込書送付年月日", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.初回支払申込書受領年月日 → 請求契約内容変更リスト.初回支払申込書受領年月日
					if (subbean != null)
					{
						childMap.put("first_pay_mskmsho_rcp_ymd", subbean.sendMessageString("初回支払申込書受領年月日", X31CWebConst.DATABEAN_GET_VALUE));
					}
					// 請求書送付先情報リスト.更新年月日時分秒(更新前) → 請求契約内容変更リスト.更新年月日時分秒（更新前）
					if (subbean != null)
					{
						childMap.put("upd_dtm_bf", subbean.sendMessageString("更新年月日時分秒（更新前）", X31CWebConst.DATABEAN_GET_VALUE));
					}
					list.add(childMap);
				}
			}
			if(0 < list.size())
			{
				parentMap.put("EKK0491C060CBSMsg1List", list);
			}
		}
// ANK-2557-00-00 ADD END
		
		outputMap.put("KKSV065701CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * 郵便番号フォーマットに変換します。
	 * <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);
	}
	
// ++++++++++ v4.02.00 追加開始 ++++++++++
	/**
	 * 契約者情報をコンテンツ関連項目にコピーするか判定します。
	 * <br>
	 * @param bean
	 * 
	 * @return boolean
	 */
	private boolean isCopyKeishaInfo(X31SDataBeanAccess[] bean)
	{
		// 標準コンテンツ同意
		if (STDARD_CONT_DOI.equals(bean[0].sendMessageString(KKW15901SFConst.STDARD_CONT_DOI_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 契約者情報をコンテンツ関連項目にコピーします。
	 * <br>
	 * @param bean
	 * @param parentMap
	 * 
	 * @return HashMap<String, Object>
	 */
	private HashMap<String, Object> execCopyKeishaInfoToCont(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap)
	{
		// お客様性別コード → コンテンツお客様性別コード
		parentMap.put("cont_cust_sex_cd", bean[0].sendMessageString(KKW15901SFConst.KEISHA_SEX_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 郵便番号 → コンテンツ郵便番号
		parentMap.put("cont_pcd", formatAddPcd(bean));
		// 住所コード → コンテンツ住所コード
		parentMap.put("cont_ad_cd", formatAddAdCd(bean));
		// 都道府県名 + 市区町村 + 大字通称名 + 字丁目名 + 番地・号 → コンテンツ番地号
		StringBuilder contBnchigo = new StringBuilder();
		String state   = bean[0].sendMessageString(KKW15901SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE);	// 都道府県名
		String city    = bean[0].sendMessageString(KKW15901SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE);	// 市区町村
		String oaztsu  = bean[0].sendMessageString(KKW15901SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE);	// 大字通称名
		String azcho   = bean[0].sendMessageString(KKW15901SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE);	// 字丁目名
		String bnchigo = bean[0].sendMessageString(KKW15901SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE);	// 番地・号
		
		if (isNotBlank(state))
		{
			contBnchigo.append(state);
		}
		
		if (isNotBlank(city))
		{
			contBnchigo.append(city);
		}
		
		if (isNotBlank(oaztsu))
		{
			contBnchigo.append(oaztsu);
		}
		
		if (isNotBlank(azcho))
		{
			contBnchigo.append(azcho);
		}
		
		if (isNotBlank(bnchigo))
		{
			contBnchigo.append(bnchigo);
		}
		
		parentMap.put("cont_bnchigo", contBnchigo.toString());
		
		// 都道府県名 + 市区町村.length + 1 → お客様＜個人＞内容変更マップ.コンテンツ住所分割開始位置
		if (state.length() + city.length() > 0) 
		{
			parentMap.put("cont_ad_bnkt_sta_pst", String.valueOf(state.length() + city.length() + 1));
		}
		
		// 建物名 + 部屋番号 → コンテンツ住所補記・建物名
		StringBuilder contAdrttm = new StringBuilder();
		String adrttm = bean[0].sendMessageString(KKW15901SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE);	// 建物名
		String adrrm  = bean[0].sendMessageString(KKW15901SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE);	// 部屋番号
		
		if (isNotBlank(adrttm))
		{
			contAdrttm.append(adrttm);
		}
		
		if (isNotBlank(adrrm))
		{
			contAdrttm.append(adrrm);
		}
		
		parentMap.put("cont_adrttm", contAdrttm.toString());
		
		return parentMap;
	}
	
	/**
	 * 郵便番号を登録形式に編集します。
	 * <br>
	 * @param bean
	 * <br>
	 * @return String
	 */
	private String formatAddPcd(X31SDataBeanAccess[] bean)
	{
		StringBuilder sb = new StringBuilder();
		sb.append(bean[0].sendMessageString(KKW15901SFConst.KEISHA_AD_PCD_1, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(bean[0].sendMessageString(KKW15901SFConst.KEISHA_AD_PCD_2, X31CWebConst.DATABEAN_GET_VALUE));
		
		return sb.toString();
	}
	
	/**
	 * 住所コードを登録形式に編集します。
	 * <br>
	 * @param bean
	 * <br>
	 * @return String
	 */
	private String formatAddAdCd(X31SDataBeanAccess[] bean)
	{
		StringBuilder sb = new StringBuilder();
		sb.append(bean[0].sendMessageString(KKW15901SFConst.GEN_AD_CD_1, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(bean[0].sendMessageString(KKW15901SFConst.GEN_AD_CD_2, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(bean[0].sendMessageString(KKW15901SFConst.GEN_AD_CD_3, X31CWebConst.DATABEAN_GET_VALUE));
		sb.append(bean[0].sendMessageString(KKW15901SFConst.GEN_AD_CD_4, X31CWebConst.DATABEAN_GET_VALUE));
		
		return sb.toString();
	}
	
	/**
	 * 引数に値が設定されているか判定します。
	 * <br>
	 * @param	arg0	判定する引数
	 * @return	boolean	引数に値が設定されている場合はtrue
	 */
	private boolean isNotBlank(String arg0)
	{
		if (arg0 == null || arg0.length() == 0)
		{
			return false;
		}
		
		return true;
	}
// ++++++++++ v4.02.00 追加終了 ++++++++++
}