/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0120_FUSV0120OPDBMapper
*	ソースファイル名：FUSV0120_FUSV0120OPDBMapper.java
*	作成者			：富士通
*	日付			：2011年07月23日
*＜機能概要＞
*	BP（オプションサービス申込確認（次へ））へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/23	FJ）西川	新規作成
*   v4.00       2012/07/20  FJ) 中谷    【ANK-1163-00-00】 変更系申込が可能となるタイミングについて
*	v4.00		2012/10/02	FJ) 岡井	【ANK-1223-00-00】 進捗補足事項編集対応
*	v5.00       2013/07/13  FJ）瀧澤    【IT1-2013-0001371】メール宛先修正
*	v26.00      2016/07/29  FJ）美濃原  【ANK-2765-00-00】認証IDの統一化
**********************************************************************/
package eo.web.webview.mapping;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

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.constant.JFUStrConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW03001SF.FUW03001SFConst;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 *
 * <br>
 * @author 富士通
 */
public class FUSV0120_FUSV0120OPDBMapper
{
	/** 固定ＩＰアドレス払出(JFUFixipadCC) */
	private static final String CC_TITLE_FUSV012001 = "FUSV012001CC";

	/** 業務パラメータ管理一意照会マップ */
	private static final String FUSV012010SC = "FUSV012010SC";
	/** 電子ファイル管理登録マップ */
	private static final String FUSV012011SC = "FUSV012011SC";
	/** メール送信情報登録マップ */
	private static final String FUSV012012SC = "FUSV012012SC";
	/** 電子ファイル管理登録お客様向け１マップ */
	private static final String FUSV012013SC = "FUSV012013SC";
	/** 電子ファイル管理登録お客様向け２マップ */
	private static final String FUSV012014SC = "FUSV012014SC";
	/** メール送信情報登録お客様向けマップ */
	private static final String FUSV012015SC = "FUSV012015SC";

	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** ネットの料金コース */
	private static final String NET_PCRS_CD = "net_pcrs_cd";
	/** 請求契約番号 */
	private static final String SEIKY_KEI_NO = "seiky_kei_no";
	/** 起点変電所コード */
	private static final String KITEN_HDSHO_CD = "kiten_hdsho_cd";
	/** 集約局・中心局コード */
	private static final String SHYAKK_CD = "shyakk_cd";
	/** 固定IPアドレスリスト */
	private static final String FIXEDIPAD_LIST = "fixedipad_list";
	/** 回線コード */
	private static final String KAISEN_CD = "kaisen_cd";
	/** マンション物件番号 */
	private static final String MANSION_BUKKEN_NO = "mansion_bukken_no";
	/** メールコード */
	private static final String MAIL_CD = "mail_cd";
	/** 送信元メールアドレス */
	private static final String SENDM_MLAD = "sendm_mlad";
	/** 送信先メールアドレス */
	private static final String MLAD = "mlad";
	/** メールアドレス設定フィールドコード */
	private static final String MLAD_SET_FIELD_CD = "mlad_set_field_cd";
	/** 本文非定型置換文字 */
	private static final String TEXT_HTK_CKAM_MOJI = "text_htk_ckam_moji";
	/** ファイル名 */
	private static final String FILE_NM = "file_nm";
	/** メール明細コード */
	private static final String MAIL_DTL_CD = "mail_dtl_cd";
	/** メールヘッダーキー */
	private static final String MAIL_HEADER_KEY = "mail_header_key";
	/** メールヘッダー値 */
	private static final String MAIL_HEADER_VALUE = "mail_header_value";
	/** 固定ＩＰアドレス */
	private static final String KOTEI_IP_AD = "kotei_ip_ad";
	/** ネットマスク */
	private static final String NETMASK = "netmask";
	/** 更新年月日時分秒(更新前) */
	private static final String UPD_DTM_BF = "upd_dtm_bf";
	/** 進捗特記事項1 */
	private static final String PRG_TKJK_1 = "prg_tkjk_1";

	/** 送信先一覧明細 */
	private static final String ECC0021D010CBSMSG1LIST = "ECC0021D010CBSMsg1List";
	/** 非定型文字列一覧明細 */
	private static final String ECC0021D010CBSMSG2LIST = "ECC0021D010CBSMsg2List";
	/** 電子ファイル一覧明細 */
	private static final String ECC0021D010CBSMSG3LIST = "ECC0021D010CBSMsg3List";
	/** メール明細一覧明細 */
	private static final String ECC0021D010CBSMSG4LIST = "ECC0021D010CBSMsg4List";
	/** メールヘッダー一覧明細 */
	private static final String ECC0021D010CBSMSG5LIST = "ECC0021D010CBSMsg5List";
	/** 業務パラメータ管理一意照会明細 */
	private static final String EZM0321A010CBSMSG1LIST = "EZM0321A010CBSMsg1List";
	/** 空文字 */
	private static final String EMPTY = JFUStrConst.EMPTY;

	/** 特記事項１要素を取得する際のid */
	private static final String PRGADD_ID = "0";

	/**
	 * コンストラクタ
	 */
	public FUSV0120_FUSV0120OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをします。(手動生成)
	 * 業務パラメータ管理一意照会マップ
	 * <br>
	 * @param bean　[0]：ＳＯＨＯパック１０申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV012010SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// 空リスト
		ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> detailMap = new HashMap<String, Object>();
		arrayList.add(detailMap);
		parentMap.put(EZM0321A010CBSMSG1LIST, arrayList);

		outputMap.put(FUSV012010SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(手動生成)
	 * 電子ファイル管理登録マップ
	 * <br>
	 * @param bean　[0]：ＳＯＨＯパック１０申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param fileDelYmd ファイル削除年月日
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV012011SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code, String fileDelYmd)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		parentMap.put("file_del_ymd", fileDelYmd);

		outputMap.put(FUSV012011SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * メール送信情報登録マップ
	 * <br>
	 * @param bean　[0]：ＳＯＨＯパック１０申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV012012SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// サポート部門向けメールコード → メール送信情報登録マップ.メールコード
		parentMap.put(MAIL_CD, bean[0].sendMessageString(FUW03001SFConst.SUPPORT_MAIL_CD, X31CWebConst.DATABEAN_GET_VALUE));

		X31SDataBeanAccess beanTemp = bean[0];
		X31SDataBeanAccessArray arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.SUPPORT_MLAD_LIST);
		ArrayList<HashMap<String, Object>> list = null;
		if (parentMap.containsKey(ECC0021D010CBSMSG1LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG1LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// サポート部門向けメール送信先リスト.送信先メールアドレス →
				// メール送信情報登録マップ.送信先一覧明細.送信先メールアドレス
				if (subbean != null)
				{
					childMap.put(MLAD, subbean.sendMessageString(FUW03001SFConst.MLAD_02, X31CWebConst.DATABEAN_GET_VALUE));
				}
				// サポート部門向けメール送信先リスト.メールアドレス設定フィールドコード →
				// メール送信情報登録マップ.送信先一覧明細.メールアドレス設定フィールドコード
				if (subbean != null)
				{
					childMap.put(MLAD_SET_FIELD_CD, subbean.sendMessageString(FUW03001SFConst.MLAD_SET_FIELD_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG1LIST, list);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.SUPPORT_HTK_MOJI_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG2LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG2LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// サポート部門向けメール本文非定型文字列リスト.本文非定型置換文字 →
				// メール送信情報登録マップ.非定型文字列一覧明細.本文非定型置換文字
				if (subbean != null)
				{
					childMap.put(TEXT_HTK_CKAM_MOJI, subbean
							.sendMessageString(FUW03001SFConst.TEXT_HTK_CKAM_MOJI_03, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG2LIST, list);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.SUPPORT_MAIL_EFILE_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG3LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG3LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// サポート部門向けメール添付ファイルリスト.ファイル名 → メール送信情報登録マップ.電子ファイル一覧明細.ファイル名
				if (subbean != null)
				{
					childMap.put(FILE_NM, subbean.sendMessageString(FUW03001SFConst.FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG3LIST, list);

		// 空のリスト作成
		ArrayList<HashMap> arrayList = new ArrayList<HashMap>();
		parentMap.put(ECC0021D010CBSMSG4LIST, arrayList);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.SUPPORT_MAIL_HEADER_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG5LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG5LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// サポート部門向けメールヘッダーリスト.メールヘッダーキー →
				// メール送信情報登録マップ.メールヘッダー一覧明細.メールヘッダーキー
				if (subbean != null)
				{
					childMap.put(MAIL_HEADER_KEY, subbean.sendMessageString(FUW03001SFConst.MAIL_HEADER_KEY_04, X31CWebConst.DATABEAN_GET_VALUE));
				}
				// サポート部門向けメールヘッダーリスト.メールヘッダー値 →
				// メール送信情報登録マップ.メールヘッダー一覧明細.メールヘッダー値
				if (subbean != null)
				{
					childMap.put(MAIL_HEADER_VALUE, subbean.sendMessageString(FUW03001SFConst.MAIL_HEADER_VALUE_04, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG5LIST, list);

		outputMap.put(FUSV012012SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(手動生成)
	 * 電子ファイル管理登録お客様向け１マップ
	 * <br>
	 * @param bean　[0]：ＳＯＨＯパック１０申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param fileDelYmd ファイル削除年月日
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV012013SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code, String fileDelYmd)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		parentMap.put("file_del_ymd", fileDelYmd);

		outputMap.put(FUSV012013SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。(手動生成)
	 * 電子ファイル管理登録お客様向け２マップ
	 * <br>
	 * @param bean　[0]：ＳＯＨＯパック１０申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param fileDelYmd ファイル削除年月日
	 * @return HashMap
	 */
	public HashMap<String, Object> setFUSV012014SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code, String fileDelYmd)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		parentMap.put("file_del_ymd", fileDelYmd);

		outputMap.put(FUSV012014SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをします。
	 * メール送信情報登録お客様向けマップ
	 * <br>
	 * @param bean　[0]：ＳＯＨＯパック１０申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> setFUSV012015SC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList<HashMap<String, Object>> list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// お客様向けメールコード → メール送信情報登録２マップ.メールコード
		parentMap.put(MAIL_CD, bean[0].sendMessageString(FUW03001SFConst.CUST_MAIL_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// お客様向け送信元メールアドレス → メール送信情報登録２マップ.送信元メールアドレス
		parentMap.put(SENDM_MLAD, bean[0].sendMessageString(FUW03001SFConst.CUST_SENDM_MLAD, X31CWebConst.DATABEAN_GET_VALUE));

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.CUST_MLAD_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG1LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG1LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// お客様向けメール送信先リスト.送信先メールアドレス → メール送信情報登録２マップ.送信先一覧明細.送信先メールアドレス
				if (subbean != null)
				{
					childMap.put(MLAD, subbean.sendMessageString(FUW03001SFConst.MLAD_02, X31CWebConst.DATABEAN_GET_VALUE));
				}
				// お客様向けメール送信先リスト.メールアドレス設定フィールドコード →
				// メール送信情報登録２マップ.送信先一覧明細.メールアドレス設定フィールドコード
				if (subbean != null)
				{
					childMap.put(MLAD_SET_FIELD_CD, subbean.sendMessageString(FUW03001SFConst.MLAD_SET_FIELD_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG1LIST, list);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.CUST_HTK_MOJI_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG2LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG2LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// お客様向けメール本文非定型文字列リスト.本文非定型置換文字 →
				// メール送信情報登録２マップ.非定型文字列一覧明細.本文非定型置換文字
				if (subbean != null)
				{
					childMap.put(TEXT_HTK_CKAM_MOJI, subbean
							.sendMessageString(FUW03001SFConst.TEXT_HTK_CKAM_MOJI_03, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG2LIST, list);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.CUST_MAIL_EFILE_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG3LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG3LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// お客様向けメール添付ファイルリスト.ファイル名 → メール送信情報登録お客様向けマップ.電子ファイル一覧明細.ファイル名
				if (subbean != null)
				{
					childMap.put(FILE_NM, subbean.sendMessageString(FUW03001SFConst.FILE_NM_06, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG3LIST, list);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.CUST_MAIL_DTL_CD_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG4LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG4LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// お客様向けメール明細一覧リスト.メール明細コード →
				// メール送信情報登録２マップ.メール明細一覧明細.メール明細コード
				if (subbean != null)
				{
					childMap.put(MAIL_DTL_CD, subbean.sendMessageString(FUW03001SFConst.MAIL_DTL_CD_07, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG4LIST, list);

		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray(FUW03001SFConst.CUST_MAIL_HEADER_LIST);
		if (parentMap.containsKey(ECC0021D010CBSMSG5LIST))
		{
			list = (ArrayList<HashMap<String, Object>>)parentMap.get(ECC0021D010CBSMSG5LIST);
		}
		else
		{
			list = new ArrayList<HashMap<String, Object>>();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap<String, Object> childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = list.get(i);
				}
				else
				{
					childMap = new HashMap<String, Object>();
				}

				// お客様向けメールヘッダーリスト.メールヘッダーキー →
				// メール送信情報登録２マップ.メールヘッダー一覧明細.メールヘッダーキー
				if (subbean != null)
				{
					childMap.put(MAIL_HEADER_KEY, subbean.sendMessageString(FUW03001SFConst.MAIL_HEADER_KEY_04, X31CWebConst.DATABEAN_GET_VALUE));
				}
				// お客様向けメールヘッダーリスト.メールヘッダー値 → メール送信情報登録２マップ.メールヘッダー一覧明細.メールヘッダー値
				if (subbean != null)
				{
					childMap.put(MAIL_HEADER_VALUE, subbean.sendMessageString(FUW03001SFConst.MAIL_HEADER_VALUE_04, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(ECC0021D010CBSMSG5LIST, list);

		outputMap.put(FUSV012015SC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピング：固定ＩＰアドレス払出(JFUFixipadCC)
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code 機能コード
	 * @return 送信情報
	 */
	public HashMap<String, Object> setFUSV012001CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// 01:ＷＥＢ変更情報
		X31SDataBeanAccess webChgInfoBean = getWebChgInfoBean(bean[1]);
		// 02:現顧客契約情報
		X31SDataBeanAccess genCustKeiInfoBean = getGenCustKeiInfoBean(webChgInfoBean);
		// 03:サービス契約情報
		X31SDataBeanAccess svcKeiInfoBean = getSvcKeiInfoBean(genCustKeiInfoBean);
		// 04:サービス契約回線内訳情報
		X31SDataBeanAccess svcKeiKaisenUcwkInfoBean = getSvcKeiKaisenUcwkInfoBean(svcKeiInfoBean);
		// 05:請求契約情報
		X31SDataBeanAccess seikyKeiInfoDataBean = getSeikyKeiInfoBean(svcKeiInfoBean);

		// SYSID
		parentMap.put(SYSID, genCustKeiInfoBean.sendMessageString(CommonInfoCFConst.SYSID_22, X31CWebConst.DATABEAN_GET_VALUE));

		// サービス契約番号
		parentMap.put(SVC_KEI_NO, svcKeiInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		// ネットの料金コース
		parentMap.put(NET_PCRS_CD, svcKeiInfoBean.sendMessageString(CommonInfoCFConst.PCRS_CD_23, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求契約番号
		parentMap.put(SEIKY_KEI_NO, seikyKeiInfoDataBean.sendMessageString(CommonInfoCFConst.SEIKY_KEI_NO_32, X31CWebConst.DATABEAN_GET_VALUE));

		// 更新年月日時分秒
		parentMap.put(UPD_DTM_BF, svcKeiInfoBean.sendMessageString(CommonInfoCFConst.LAST_UPD_DTM_23, X31CWebConst.DATABEAN_GET_VALUE));

		// 起点変電所コード
		parentMap.put(KITEN_HDSHO_CD, svcKeiKaisenUcwkInfoBean
				.sendMessageString(CommonInfoCFConst.KITEN_HDSHO_CD_26, X31CWebConst.DATABEAN_GET_VALUE));
		// 集約局コード
		parentMap.put(SHYAKK_CD, svcKeiKaisenUcwkInfoBean.sendMessageString(CommonInfoCFConst.SHYAKK_CD_26, X31CWebConst.DATABEAN_GET_VALUE));
		// マンション物件番号
		parentMap.put(MANSION_BUKKEN_NO, svcKeiKaisenUcwkInfoBean.sendMessageString(CommonInfoCFConst.MANSION_BUKKEN_NO_26,
				X31CWebConst.DATABEAN_GET_VALUE));
		// 回線コード
		parentMap.put(KAISEN_CD, svcKeiKaisenUcwkInfoBean.sendMessageString(CommonInfoCFConst.KAISEN_CD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 進捗特記事項1
		try
		{
			String prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW03052, PRGADD_ID);

			if(prgTkjk1 != null && prgTkjk1.length() > 0)
			{
				parentMap.put(PRG_TKJK_1, prgTkjk1);
			}
			else
			{
				DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
			}
		}
		catch (Exception e)
		{
			DEBUG_LOG.debug("※進捗特記事項1がXMLから正常に取得できませんでした。処理は続行します。");
		}

		// 空リスト
		ArrayList<HashMap<String, Object>> arrayList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> detailMap = new HashMap<String, Object>();
		arrayList.add(detailMap);
		arrayList.add(detailMap); // 2個目の固定IPアドレス用
		parentMap.put(FIXEDIPAD_LIST, arrayList);

		// 共通情報のマッピング
		outputMap.put(CC_TITLE_FUSV012001, parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング：固定ＩＰアドレス払出(JFUFixipadCC)
	 *
	 * <br>
	 * @param bean　[0]：ＳＯＨＯパック１０申込　[1]：共有フォームビーン
	 * @param outputMap
	 * @return X31SDataBeanAccess[]
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV012001CC(X31SDataBeanAccess[] bean, HashMap<String, Object> outputMap)
	{

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey(CC_TITLE_FUSV012001))
		{
			parentMap = (HashMap<String, Object>)outputMap.get(CC_TITLE_FUSV012001);
		}

		ArrayList<HashMap<String, Object>> childList = null;

		X31SDataBeanAccessArray stkuFixipadList = bean[0].getDataBeanArray(FUW03001SFConst.STKU_FIXIPAD_LIST);
		if (stkuFixipadList != null && parentMap != null && parentMap.containsKey(FIXEDIPAD_LIST))
		{
			childList = (ArrayList<HashMap<String, Object>>)parentMap.get(FIXEDIPAD_LIST);

			int j = 0;
			for (int i = childList.size() - 1; i >= 0; i--)
			{
				X31SDataBeanAccess subbean = null;
				if (stkuFixipadList.getCount() - 1 >= j)
				{
					subbean = stkuFixipadList.getDataBean(j);
				}
				else
				{
					subbean = stkuFixipadList.addDataBean();
				}
				j++;

				HashMap<String, Object> childMap = childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 取得ＩＰアドレスリスト.ＩＰアドレス ←
				// 固定ＩＰアドレス払出マップ.固定ＩＰアドレスリスト.固定ＩＰアドレス
				if (childMap != null)
				{
					subbean.sendMessageString(FUW03001SFConst.FIXIPAD_05, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(KOTEI_IP_AD));
				}
				else
				{
					subbean.sendMessageString(FUW03001SFConst.FIXIPAD_05, X31CWebConst.DATABEAN_SET_VALUE, EMPTY);
				}

				// 取得ＩＰアドレスリスト.ネットマスク ←
				// 固定ＩＰアドレス払出マップ.固定ＩＰアドレスリスト.ネットマスク
				if (childMap != null)
				{
					subbean.sendMessageString(FUW03001SFConst.NETMASK_05, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(NETMASK));
				}
				else
				{
					subbean.sendMessageString(FUW03001SFConst.NETMASK_05, X31CWebConst.DATABEAN_SET_VALUE, EMPTY);
				}

			}
		}

		return bean;
	}

	/**
	 * 共有フォームBeanのdataTypeを1階層下を指定して取得します。
	 *
	 * <br>
	 * @param parentBean
	 * @param dataType
	 * @return X31SDataBeanAccess
	 */
	private static X31SDataBeanAccess getInnerBean(X31SDataBeanAccess parentBean, String dataType)
	{
		X31SDataBeanAccessArray infoArray = parentBean.getDataBeanArray(dataType);
		return infoArray.getDataBean(0);
	}

	/**
	 * 共有フォームBeanのrootよりＷＥＢ変更情報を取得します。(1階層目)
	 *
	 * <br>
	 * @param bean
	 * @return X31SDataBeanAccess
	 */
	private static X31SDataBeanAccess getWebChgInfoBean(X31SDataBeanAccess bean)
	{
		return getInnerBean(bean, CommonInfoCFConst.WEB_CHG_INFO);
	}

	/**
	 * 共有フォームBeanのＷＥＢ変更情報より現顧客契約情報を取得します。(2階層目)
	 *
	 * <br>
	 * @param bean
	 * @return X31SDataBeanAccess
	 */
	private static X31SDataBeanAccess getGenCustKeiInfoBean(X31SDataBeanAccess bean)
	{
		return getInnerBean(bean, CommonInfoCFConst.GEN_CUST_KEI_INFO);
	}

	/**
	 * 共有フォームBeanの現顧客契約情報よりサービス契約情報を取得します。(3階層目)
	 *
	 * <br>
	 * @param bean
	 * @return X31SDataBeanAccess
	 */
	private static X31SDataBeanAccess getSvcKeiInfoBean(X31SDataBeanAccess bean)
	{
		return getInnerBean(bean, CommonInfoCFConst.SVC_KEI_INFO);
	}

	/**
	 * 共有フォームBeanのサービス契約情報よりサービス契約回線内訳情報を取得します。(4階層目)
	 *
	 * <br>
	 * @param bean
	 * @return X31SDataBeanAccess
	 */
	private static X31SDataBeanAccess getSvcKeiKaisenUcwkInfoBean(X31SDataBeanAccess bean)
	{
		return getInnerBean(bean, CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_INFO);
	}

	/**
	 * 共有フォームBeanのサービス契約情報より請求契約情報を取得します。(4階層目)
	 *
	 * <br>
	 * @param bean
	 * @return X31SDataBeanAccess
	 */
	private static X31SDataBeanAccess getSeikyKeiInfoBean(X31SDataBeanAccess bean)
	{
		return getInnerBean(bean, CommonInfoCFConst.SEIKY_KEI_INFO);
	}

}