/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：FUSV0032_FUSV0032OPDBMapper
*	ソースファイル名：FUSV0032_FUSV0032OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年12月09日
*＜機能概要＞
*	BP（eo光電話オプションサービス申込解約(申込)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/12/09	FJ		新規作成
*	v3.00   	2012/04/10	FJ)濱口		【ANK-0041-00-00】 申込完了メール対応
*	v3.00   	2012/04/10	FJ)濱口		【ANK-0047-00-00】 通話料上限通知機能対応
*	v4.00		2012/06/20	FJ)美濃原	【ANK-1163-00-00】変更系申込が可能となるタイミングについて
*	v4.00		2012/10/09	FJ)西村		【ANK-1223-00-00】 進捗補足事項編集対応
**********************************************************************/
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.FUW05401SF.FUW05401SFConst;

import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;

/**
 * DataBean-BPマッピングをします。
 *
 * <br>
 * @author 富士通
 */
public class FUSV0032_FUSV0032OPDBMapper
{

	/** BEANの必須レコード数 [0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約 */
	private static final int BEAN_LENGTH = 2;

	/** 機能コード */
	private static final String FUNC_CODE = "func_code";

	/** eo光電話オプションサービス申込解約(申込)作業項目マップ01 */
	private static final String FUSV0032_W_O_R_K01 = "FUSV0032WORK01";
	/** ０５０オプション電話処理フラグ */
	private static final String N_050_OP_TELNO_TRAN_FLG = "n_050_op_telno_tran_flg";
	/** オプション処理フラグ */
	private static final String OP_TRAN_FLG = "op_tran_flg";
	/** サブオプション処理フラグ */
	private static final String SBOP_TRAN_FLG = "sbop_tran_flg";
	/** サービスオーダ処理フラグ */
	private static final String SOD_TRAN_FLG = "sod_tran_flg";

	/** エイジング対象登録マップ */
	private static final String FUSV003202_S_C = "FUSV003202SC";

	/** 申込内容承認登録マップ */
	private static final String FUSV003203_S_C = "FUSV003203SC";
	/** 申込形態コード */
	private static final String MSKM_FORM_CD = "mskm_form_cd";
	/** 申込内容承認登録明細 */
	private static final String EKK0011_D020_C_B_S_MSG1_LIST = "EKK0011D020CBSMsg1List";

	/** オプションサービス契約<電話>登録マップ */
	private static final String FUSV003204_S_C = "FUSV003204SC";
	/** オプションサービスコード */
	private static final String OP_SVC_CD = "op_svc_cd";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** 最終更新年月日時分秒（サービス契約） */
	private static final String KK0371_UPD_DTM = "kk0371_upd_dtm";
	/** 通話料指定額到達通知指定金額の初期単位 */
	private static final String MONEY_DEFAULT_000 = "000";
	/** 通話料指定額到達通知指定金額 */
	private static final String TWRYO_STIAM_TTU_TCHI_STIAM = "twryo_stiam_ttu_tchi_stiam";

	/** オプションサービス契約<電話>照査締結マップ */
	private static final String FUSV003205_S_C = "FUSV003205SC";
	/** オプションサービス契約<電話>開始マップ */
	private static final String FUSV003206_S_C = "FUSV003206SC";

	/** サブオプションサービス契約<電話>登録マップ */
	private static final String FUSV003207_S_C = "FUSV003207SC";
	/** サブオプションサービスコード */
	private static final String SBOP_SVC_CD = "sbop_svc_cd";
	/** 料金コースコード */
	private static final String PCRS_CD = "pcrs_cd";
	/** 料金プランコード */
	private static final String PPLAN_CD = "pplan_cd";
	/** 請求契約番号 */
	private static final String SEIKY_KEI_NO = "seiky_kei_no";
	/** 最終更新年月日時分秒（サービス契約） */
	private static final String KK0431_UPD_DTM = "kk0431_upd_dtm";

	/** サブオプションサービス契約<電話>照査締結マップ */
	private static final String FUSV003208_S_C = "FUSV003208SC";
	/** サブオプションサービス契約<電話>使用開始マップ */
	private static final String FUSV003209_S_C = "FUSV003209SC";

	/** 進捗登録マップ */
	private static final String FUSV003210_S_C = "FUSV003210SC";
	/** サービス契約番号 */
	private static final String SVC_KEI_NO = "svc_kei_no";
	/** サービス契約内訳番号 */
	private static final String SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** サービス契約回線内訳番号 */
	private static final String SVC_KEI_KAISEN_UCWK_NO = "svc_kei_kaisen_ucwk_no";
	/** 異動理由明細 */
	private static final String EKK1091_D010_C_B_S_MSG1_LIST = "EKK1091D010CBSMsg1List";
	/** 異動理由コード */
	private static final String IDO_RSN_CD = "ido_rsn_cd";

	/** 申込明細照査・後続業務依頼マップ */
	private static final String FUSV003211_S_C = "FUSV003211SC";
	/** オプションサービス契約<電話>照査マップ */
	private static final String FUSV003212_S_C = "FUSV003212SC";

	/** サブオプションサービス契約<電話>照査マップ */
	private static final String FUSV003213_S_C = "FUSV003213SC";
	/** オプションサービス契約番号 */
	private static final String OP_SVC_KEI_NO = "op_svc_kei_no";

	/** 電話番号一覧照会2マップ */
	private static final String FUSV003201_S_C = "FUSV003201SC";
	/** 電話番号一覧照会2明細 */
	private static final String EZM0121B040_LIST = "EZM0121B040CBSMsg1List";
	/** 電話番号 */
	private static final String TELNO = "telno";

	/** 進捗特記事項1 */
	private static final String PRG_TKJK_1 = "prg_tkjk_1";
	/** 特記事項１要素を取得する際のid */
	private static final String PRGADD_ID = "0";
	/** 特記事項１要素を取得する際のid */
	private static final String PRGADD_ID_2 = "2";
	/** 進捗特記事項(置き換え文字列1) */
	private static final String TKJK_1 = "%0%";
	/** フォーマット変換（3桁、先頭0埋め） */
	private static final String FORMAT_1 = "%1$03d";

	/** 通信事業者一覧照会.通信事業者一覧照会明細 */
	private static final String ETU0051B010_LIST = "ETU0051B010CBSMsg1List";
	
	/**
	 * コンストラクタです。
	 */
	public FUSV0032_FUSV0032OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV0032WORK01(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// ０５０オプション電話処理フラグ → eo光電話オプションサービス申込解約（申込）作業項目マップ01.050オプション電話処理フラグ
		parentMap.put(N_050_OP_TELNO_TRAN_FLG, bean[1].sendMessageString(FUW05401SFConst.N_050_OP_TELNO_TRAN_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// オプション処理フラグ → eo光電話オプションサービス申込解約（申込）作業項目マップ01.オプション処理フラグ
		parentMap.put(OP_TRAN_FLG, bean[1].sendMessageString(FUW05401SFConst.OP_TRAN_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// サブオプション処理フラグ → eo光電話オプションサービス申込解約（申込）作業項目マップ01.サブオプション処理フラグ
		parentMap.put(SBOP_TRAN_FLG, bean[1].sendMessageString(FUW05401SFConst.SBOP_TRAN_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// サービスオーダ処理フラグ → eo光電話オプションサービス申込解約（申込）作業項目マップ01.サービスオーダ処理フラグ
		parentMap.put(SOD_TRAN_FLG, bean[1].sendMessageString(FUW05401SFConst.SOD_TRAN_FLG, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV0032_W_O_R_K01, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003201SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		//--------------------------------------------------------------------------------------------------------------------------------
		// 手動マッピング
		//--------------------------------------------------------------------------------------------------------------------------------
		// new ArrayList → 電話番号一覧照会マップ.電話番号一覧照会明細
		HashMap<String, Object> dummyMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> dummyList = new ArrayList();
		dummyList.add(dummyMap);
		parentMap.put(EZM0121B040_LIST, dummyList);
		//--------------------------------------------------------------------------------------------------------------------------------

		outputMap.put(FUSV003201_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003202SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		//------ 手修正 start ------------------------------------------------------------------------------------------------------------
		// メソッド出力用のダミーMappingを削除I(遷移元画面ＩＤ)
		//------ 手修正 end   ------------------------------------------------------------------------------------------------------------

		outputMap.put(FUSV003202_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003203SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// ＳＹＳＩＤ → 申込内容承認登録マップ.SYSID
		parentMap.put(SYSID, bean[1].sendMessageString(FUW05401SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		beanTemp = bean[1];
		// 申込登録明細 → 申込内容承認登録マップ.申込内容承認登録明細
		arraybean = beanTemp.getDataBeanArray(FUW05401SFConst.MSKM_DTL_LIST);
		if (parentMap.containsKey(EKK0011_D020_C_B_S_MSG1_LIST))
		{
			list = (ArrayList)parentMap.get(EKK0011_D020_C_B_S_MSG1_LIST);
		}
		else
		{
			list = new ArrayList();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				// 申込登録明細.申込形態コード → 申込内容承認登録マップ.申込登録明細.申込形態コード
				if (subbean != null)
				{
					childMap.put(MSKM_FORM_CD, subbean.sendMessageString(FUW05401SFConst.MSKM_FORM_CD_06, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(EKK0011_D020_C_B_S_MSG1_LIST, list);

		outputMap.put(FUSV003203_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003204SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// オプションサービスコード → オプションサービス契約＜電話＞登録マップ.オプションサービスコード
		parentMap.put(OP_SVC_CD, bean[1].sendMessageString(FUW05401SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード（オプションサービス契約） → オプションサービス契約＜電話＞登録マップ.料金コースコード
		parentMap.put(PCRS_CD, bean[1].sendMessageString(FUW05401SFConst.KK0351_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金プランコード（オプションサービス契約） → オプションサービス契約＜電話＞登録マップ.料金プランコード
		parentMap.put(PPLAN_CD, bean[1].sendMessageString(FUW05401SFConst.KK0351_PPLAN_CD, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v4.00 修正開始 ++++++++++ */
		// サービス契約番号 → オプションサービス契約＜電話＞登録マップ.サービス契約番号
		//parentMap.put(SVC_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		/* ++++++++++ v4.00 修正終了 ++++++++++ */
		// サービス契約内訳番号 → オプションサービス契約＜電話＞登録マップ.サービス契約内訳番号
		parentMap.put(SVC_KEI_UCWK_NO, bean[1].sendMessageString(FUW05401SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// ＳＹＳＩＤ → オプションサービス契約＜電話＞登録マップ.SYSID
		parentMap.put(SYSID, bean[1].sendMessageString(FUW05401SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → オプションサービス契約＜電話＞登録マップ.請求契約番号
		parentMap.put(SEIKY_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 最終更新年月日時分秒（サービス契約） → オプションサービス契約＜電話＞登録マップ.更新年月日時分秒（オプションサービス契約＜電話＞）
		parentMap.put(KK0371_UPD_DTM, bean[1].sendMessageString(FUW05401SFConst.KK0081_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));

		// 通話料指定額到達通知指定申込/変更のみ実行
		// 通話料指定額到達通知指定金額 → オプションサービス契約＜電話＞登録マップ.通話料指定額到達通知指定金額）
		if (JFUStrConst.CD00136_B072.equals(bean[1].sendMessageString(FUW05401SFConst.OP_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			parentMap.put(TWRYO_STIAM_TTU_TCHI_STIAM, bean[1].sendMessageString(FUW05401SFConst.TWRYO_STIAM_TTU_TCHI_STIAM,
					X31CWebConst.DATABEAN_GET_VALUE)
					+ MONEY_DEFAULT_000);
		}
		outputMap.put(FUSV003204_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003205SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		//------ 手修正 start ------------------------------------------------------------------------------------------------------------
		// メソッド出力用のダミーMappingを削除I(遷移元画面ＩＤ)
		//------ 手修正 end   ------------------------------------------------------------------------------------------------------------

		outputMap.put(FUSV003205_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003206SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		//------ 手修正 start ------------------------------------------------------------------------------------------------------------
		// メソッド出力用のダミーMappingを削除I(遷移元画面ＩＤ)
		//------ 手修正 end   ------------------------------------------------------------------------------------------------------------

		outputMap.put(FUSV003206_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003207SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// オプションサービス契約番号 → サブオプションサービス契約＜電話＞登録マップ.オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サブオプションサービスコード → サブオプションサービス契約＜電話＞登録マップ.サブオプションサービスコード
		parentMap.put(SBOP_SVC_CD, bean[1].sendMessageString(FUW05401SFConst.SBOP_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金コースコード（サブオプションサービス契約） → サブオプションサービス契約＜電話＞登録マップ.料金コースコード
		parentMap.put(PCRS_CD, bean[1].sendMessageString(FUW05401SFConst.KK0401_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 料金プランコード（サブオプションサービス契約） → サブオプションサービス契約＜電話＞登録マップ.料金プランコード
		parentMap.put(PPLAN_CD, bean[1].sendMessageString(FUW05401SFConst.KK0401_PPLAN_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求契約番号 → サブオプションサービス契約＜電話＞登録マップ.請求契約番号
		parentMap.put(SEIKY_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 最終更新年月日時分秒（サービス契約） → サブオプションサービス契約＜電話＞登録マップ.更新年月日時分秒（サブオプションサービス契約＜電話＞）
		parentMap.put(KK0431_UPD_DTM, bean[1].sendMessageString(FUW05401SFConst.KK0081_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV003207_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003208SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// オプションサービス契約番号 → サブオプションサービス契約＜電話＞照査締結マップ.オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV003208_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003209SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// オプションサービス契約番号 → サブオプションサービス契約＜電話＞使用開始マップ.オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV003209_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003210SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		// サービス契約番号 → 進捗登録マップ.サービス契約番号
		parentMap.put(SVC_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約内訳番号 → 進捗登録マップ.サービス契約内訳番号
		parentMap.put(SVC_KEI_UCWK_NO, bean[1].sendMessageString(FUW05401SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// サービス契約回線内訳番号 → 進捗登録マップ.サービス契約回線内訳番号
		parentMap.put(SVC_KEI_KAISEN_UCWK_NO, bean[1].sendMessageString(FUW05401SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 進捗特記事項1
		try
		{
			// ○WEB変更情報
			X31SDataBeanAccess webChgInfoBean = bean[0].getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO).getDataBean(0);

			// ○現顧客情報
			X31SDataBeanAccess genCustKeiInfoBean = webChgInfoBean.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO).getDataBean(0);
			// ○サービス契約情報
			X31SDataBeanAccess svcKeiInfoBean = genCustKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_INFO).getDataBean(0);
			// ○サービス契約内訳情報
			X31SDataBeanAccess svcKeiUcwkInfoBean = svcKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_UCWK_INFO).getDataBean(0);
			
			String op_svc_cd = JFUWebCommon.getDataBeanItemByPath(bean[1], FUW05401SFConst.OP_SVC_CD);//オプションサービスコード
			String sbop_svc_cd = JFUWebCommon.getDataBeanItemByPath(bean[1], FUW05401SFConst.SBOP_SVC_CD);//サブオプションサービスコード
			
			String telNoJun = svcKeiUcwkInfoBean.sendMessageString(CommonInfoCFConst.TELNO_JUN_24, X31CWebConst.DATABEAN_GET_VALUE);//電話番号順
			telNoJun = String.format(FORMAT_1, Integer.parseInt(telNoJun));

			String prgTkjk1 = JFUStrConst.EMPTY;
			if(JFUStrConst.CD00136_B023.equals(op_svc_cd))//割込電話
			{
				String multiPhoneCallFlg = bean[1].sendMessageString(FUW05401SFConst.MULTI_PHONE_CALL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
				if (JFUStrConst.CD00002_1.equals(multiPhoneCallFlg))
				{
					prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW05402, PRGADD_ID_2);
				} else {
					prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW05402, PRGADD_ID);
				}
			}
			else if(JFUStrConst.CD00136_B024.equals(op_svc_cd))//転送電話
			{
				if(JFUStrConst.CD00137_D07.equals(sbop_svc_cd))
				{
					prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW05602, PRGADD_ID);// 転送電話選択(転送電話のサブ)
				}
				else
				{
					prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW05502, PRGADD_ID);//転送電話
				}
			}
			else if(JFUStrConst.CD00136_B025.equals(op_svc_cd))//発信者番号表示
			{
				if(JFUStrConst.CD00137_D08.equals(sbop_svc_cd))
				{
					prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW05802, PRGADD_ID);// 非通知着信拒否(発信者番号表示のサブ)
				}
				else
				{
					prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW05702, PRGADD_ID);//発信者番号表示
				}
			}
			else if(JFUStrConst.CD00136_B026.equals(op_svc_cd))//迷惑電話拒否
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW05902, PRGADD_ID);
			}
			else if(JFUStrConst.CD00136_B027.equals(op_svc_cd))//指定番号着信選択
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW06002, PRGADD_ID);
			}
			else if(JFUStrConst.CD00136_B028.equals(op_svc_cd))//通話明細送付
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW06102, PRGADD_ID);
			}
			else if(JFUStrConst.CD00136_B029.equals(op_svc_cd))//050ナンバープラス
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW06202, PRGADD_ID);
			}
			else if(JFUStrConst.CD00136_B072.equals(op_svc_cd))//通話料上限通知
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW10202, PRGADD_ID);
			}
			else if(JFUStrConst.CD00136_B071.equals(op_svc_cd))//国際電話利用停止
			{
				prgTkjk1 = JFUWebCommon.getPrgAddTkjkFst(JFUScreenConst.SCREEN_ID_FUW10302, PRGADD_ID);
			}
			
				prgTkjk1 = prgTkjk1.replace(TKJK_1, telNoJun);
			
			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から正常に取得できませんでした。処理は続行します。");
		}

		beanTemp = bean[1];
		// 異動理由明細
		arraybean = beanTemp.getDataBeanArray(FUW05401SFConst.IDO_DTL_LIST);
		if (parentMap.containsKey(EKK1091_D010_C_B_S_MSG1_LIST))
		{
			list = (ArrayList)parentMap.get(EKK1091_D010_C_B_S_MSG1_LIST);
		}
		else
		{
			list = new ArrayList();
		}
		if (arraybean != null && arraybean.getCount() > 0)
		{
			for (int i = 0; i < arraybean.getCount(); i++)
			{
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				HashMap childMap = null;
				if (list.size() - 1 >= i)
				{
					childMap = (HashMap)list.get(i);
				}
				else
				{
					childMap = new HashMap();
				}

				// 異動理由明細.異動理由コード → 進捗登録マップ.異動理由明細.異動理由コード
				if (subbean != null)
				{
					childMap.put(IDO_RSN_CD, subbean.sendMessageString(FUW05401SFConst.IDO_RSN_CD_07, X31CWebConst.DATABEAN_GET_VALUE));
				}

				list.add(childMap);
			}
		}
		parentMap.put(EKK1091_D010_C_B_S_MSG1_LIST, list);

		outputMap.put(FUSV003210_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003211SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		//------ 手修正 start ------------------------------------------------------------------------------------------------------------
		// メソッド出力用のダミーMappingを削除I(遷移元画面ＩＤ)
		//------ 手修正 end   ------------------------------------------------------------------------------------------------------------

		outputMap.put(FUSV003211_S_C, parentMap);

		return outputMap;
	}

	/* ++++++++++ v4.00 修正開始 ++++++++++ */

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003212SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);

		outputMap.put(FUSV003212_S_C, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003213SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != BEAN_LENGTH)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put(FUNC_CODE, func_code);
		// オプションサービス契約番号 → サブオプションサービス契約＜電話＞使用開始マップ.オプションサービス契約番号
		parentMap.put(OP_SVC_KEI_NO, bean[1].sendMessageString(FUW05401SFConst.OP_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put(FUSV003213_S_C, parentMap);

		return outputMap;
	}

	/* ++++++++++ v4.00 修正終了 ++++++++++ */

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV003214SC(X31SDataBeanAccess[] bean, HashMap 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);

		//------ 手修正 start ------------------------------------------------------------------------------------------------------------
		// メソッド出力用のダミーMappingを削除I(遷移元画面ＩＤ)
		//------ 手修正 end   ------------------------------------------------------------------------------------------------------------
		HashMap<String, Object> dummyMap = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> dummyList = new ArrayList();
		dummyList.add(dummyMap);
		parentMap.put("ETU0051B010CBSMsg1List", dummyList);
		//--------------------------------------------------------------------------------------------------------------------------------

		outputMap.put("FUSV003214SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 下りマッピングを行います。
	 * @param bean　[0]：共有フォームビーン　[1]：ｅｏ光電話オプションサービス申込解約
	 * @param outputMap
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getFUSV003201SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey(FUSV003201_S_C))
		{
			parentMap = (HashMap)outputMap.get(FUSV003201_S_C);
		}

		ArrayList childList = null;

		// 電話番号一覧照会明細リスト
		X31SDataBeanAccessArray listFUSV003201SC_telno_icrn_shokai_dtl_list_EZM0121B040CBSMsg1List =
				bean[1].getDataBeanArray(FUW05401SFConst.TELNO_ICRN_SHOKAI_DTL_LIST);
		childList = null;
		if (listFUSV003201SC_telno_icrn_shokai_dtl_list_EZM0121B040CBSMsg1List != null && parentMap != null
				&& parentMap.containsKey(EZM0121B040_LIST))
		{
			childList = (ArrayList)parentMap.get(EZM0121B040_LIST);

			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;
				if (listFUSV003201SC_telno_icrn_shokai_dtl_list_EZM0121B040CBSMsg1List.getCount() - 1 >= i)
				{
					subbean = listFUSV003201SC_telno_icrn_shokai_dtl_list_EZM0121B040CBSMsg1List.getDataBean(i);
				}
				else
				{
					subbean = listFUSV003201SC_telno_icrn_shokai_dtl_list_EZM0121B040CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null)
				{
					continue;
				}

				// 電話番号一覧照会明細リスト.電話番号 ← 電話番号一覧照会2マップ.電話番号一覧照会2明細.電話番号
				if (childMap != null)
				{
					subbean.sendMessageString(FUW05401SFConst.TELNO_05, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get(TELNO));
				}
				else
				{
					subbean.sendMessageString(FUW05401SFConst.TELNO_05, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		return bean;
	}

}