/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CHSV0019_CHSV0019OPDBMapper
 *	ソースファイル名：CHSV0019_CHSV0019OPDBMapper.java
 *	作成者			：富士通
 *	日付			：2011年11月09日
 *＜機能概要＞
 *	BP（料金変更）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2011/11/09	富士通		新規作成
 *	v3.00.00	2012/06/01	金澤		案件対応
 *	v5.00.00    2013/07/06  FJ) 林	【LT-2013-0000235】No欄出力条件変更
 *	v5.00.01	2013/07/08  FJ) 林	【LT-2013-0000253】請求内訳プルダウンに料金サービスコードも設定する対応
 *	v5.00.02	2013/07/15  FJ) 林	【LT-2013-0000293】【LT-2013-0000355】工事遅延明細に対する対応
 *	v5.00.03	2013/07/24	FJ)文元 【LT-2013-0000229】料金内訳ComboBoxでの重複行2行目以降を表示しないよう対応
 *	v5.00.04	2013/07/25	FJ)文元 【LT-2013-0000596】前受金充当額をプラス値で表示する対応
 *	v5.00.05	2013/07/31	FJ)文元 【LT-2013-0000672】請求先がマンションオーナーでない時のID番号リスト編集不備対応
 *	v5.00.06	2013/08/02	FJ) 辛  【IT1-2013-0001512】対応
 *	v5.00.07	2013/08/06  FJ) 林  【IT1-2013-0001502】通信料（従量制）の場合のみFTTH通信量訂正画面を起動する対応
 *	v5.00.08	2013/08/12  FJ) 早崎【IT1-2013-0001583】前受金充当額マイナス値扱い処理削除
 *  v5.00.09    2013/08/26  FJ) 早崎【IT1-2013-0001612】債権額/うち消費税額/請求額/前受金充当額を債権一覧照会から取得するよう修正
 *	v8.00.00	2013/12/25  FJ)小野 【ANK-1584-00-00】MVNO（本体）対応
 *	v8.00.01	2014/02/28  FJ)小野 【IT1-2014-0000054】利用開始、終了日の日付表示制御を修正。
 *	v8.00.02	2014/04/09	FJ) 林  【OM-2014-0001415】FTTH従量制サービス消費税対応
 *	v9.00.00	2014/05/08	FJ) 林  【ANK-2054-00-00】スマートリンク端末補償対応
 *	v9.00.01	2014/08/05  FJ) 桑島【OM-2014-0002355】ID番号コンボのソート順を修正。登録データの料金グループコードの修正。
 *	v10.00.00	2014/10/02  FJ) 古田【OM-2014-0002369】マンションオーナー判別方法修正（支払方式コードを保持）
 *	v13.00.00	2015/03/11  FJ) 中山【OM-2015-0000136】請求年月に応じた整理番号を使用する対応
 *  v16.00.00	2015/07/09	FJ)吉村	   【ANK-2480-00-00】新電力対応
 *  v36.00.00	2017/12/25	FJ）清原   【ANK-3296-00-00】標準工事費分割請求
 *  v36.00.01	2018/02/14	FJ）清原   【IT1-2018-0000026】通信料訂正画面でエラー
 *	v64.00.00	2023/02/13	FJ) 澤田	【ANK-4323-00-00】mineo請求明細の利用期間表示変更
 *	v71.00.00   2024/04/04  FJ）久山    【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
 **********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;

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.JACStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.util.JCRUtilCommon;
import eo.common.util.JKKStringUtil;
import eo.web.webview.CHW00201SF.CHW00201SFConst;
import eo.web.webview.CHW00301SF.CHW00301SFConst;
import eo.web.webview.common.JCHChangeGroupKei;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CHSV0019_CHSV0019OPDBMapper
{
	/** 料金項目抽出変換一覧情報マップ */
	private static final String GETPRCKMKCSCHGELISTCC = "GETPRCKMKCSCHGELISTCC";

	/** 料金項目抽出変換一覧照会明細 */
	private static final String ECH0401B010CBSMSG1LIST = "ECH0401B010CBSMsg1List";

	/** 請求内訳一覧明細 */
	private static final String ECH0101B010CBSMSG1LIST = "ECH0101B010CBSMsg1List";

	/** 料金グループコード */
	private static final String PRC_GRP_CD = "prc_grp_cd";

	/** 料金コースコード */
	private static final String PCRS_CD = "pcrs_cd";

	/** 料金サービスコード */
	private static final String PRC_SVC_CD = "prc_svc_cd";

	/** 料金項目コード */
	private static final String PRC_KMK_CD = "prc_kmk_cd";

	/**
	 * コンストラクタ
	 */
	public CHSV0019_CHSV0019OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001901SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 請求一覧照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001901SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001902SC(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);

		// 請求番号 → 請求一意照会SC.ＫＥＹ＿請求番号
		parentMap.put("key_seiky_no", bean[0].sendMessageString("請求番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001902SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001903SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 債権一覧照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 請求番号 → 債権一覧照会マップ.ＫＥＹ＿請求番号
		parentMap.put("key_seiky_no", bean[0].sendMessageString("請求番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 請求年月 → 債権一覧照会マップ.ＫＥＹ＿請求年月
		parentMap.put("key_seiky_ym", bean[0].sendMessageString("請求年月", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001903SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001904SC(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);

		outputMap.put("CHSV001904SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001906SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 金庫ステータス毎合計一覧照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001906SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001907SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 課金先一覧照会（整理番号）マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

//OM-2015-0000136 ADD START
		// 請求年月 → 課金先一覧照会（整理番号）マップ.ＫＥＹ＿請求年月
		parentMap.put("key_seiky_ym", bean[0].sendMessageString("請求年月", X31CWebConst.DATABEAN_GET_VALUE));
//OM-2015-0000136 ADD END

		outputMap.put("CHSV001907SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001908SC(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);

		// 料金項目種別コード(1:料金項目名称) → 料金項目出力名称一覧照会マップ.ＫＥＹ＿料金項目名称種別コード
		parentMap.put("key_prc_kmk_nm_sbt_cd", JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM);

		// システムコード("CH") → 料金項目出力名称一覧照会マップ.ＫＥＹ＿システムコード
		parentMap.put("key_sys_cd", JACStrConst.SYS_CD_CH);

		// 業務機能識別コード → 料金項目出力名称一覧照会マップ.ＫＥＹ＿業務機能識別コード
		parentMap.put("key_work_kino_skbt_cd", JACStrConst.WORK_KINO_SKBT_PRC_U_SCR);

		// 抽出変換コード(1:抽出) → 料金項目出力名称一覧照会マップ.ＫＥＹ＿抽出変換コード
		parentMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);

		// 料金グループコード → 料金項目一覧取得マップ.ＫＥＹ＿料金グループコード
		parentMap.put("key_prc_grp_cd", JACStrConst.PRC_GRP_CD_SP);

		// 料金コースコード → 料金項目一覧取得マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", JACStrConst.PCRS_CD_SP);

		outputMap.put("CHSV001908SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETPRCKMKCSCHGELISTCC(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);

		outputMap.put(GETPRCKMKCSCHGELISTCC, parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001909SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 → 請求内訳一覧照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 請求番号 → 請求内訳一覧照会マップ.ＫＥＹ＿請求番号
		parentMap.put("key_seiky_no", bean[0].sendMessageString("請求番号", X31CWebConst.DATABEAN_GET_VALUE));

		// 請求年月 → 請求内訳一覧照会マップ.ＫＥＹ＿請求年月
		parentMap.put("key_seiky_ym", bean[0].sendMessageString("請求年月", X31CWebConst.DATABEAN_GET_VALUE));

		// 料金項目名称種別コード(1:料金項目名称) → 請求内訳一覧照会マップ.ＫＥＹ＿料金項目名称種別コード
		parentMap.put("key_prc_kmk_nm_sbt_cd", JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM);

		// システムコード(CH) → 請求内訳一覧照会マップ.ＫＥＹ＿システムコード
		parentMap.put("key_sys_cd", JACStrConst.SYS_CD_CH);

		// 業務機能識別コード(料金項目表示用) → 請求内訳一覧照会マップ.ＫＥＹ＿業務機能識別コード
		parentMap.put("key_work_kino_skbt_cd", JACStrConst.WORK_KINO_SKBT_ADJ_U_DSP);

		// 業務機能識別コード(請求内訳金額変更可否判定用) → 請求内訳一覧照会マップ.ＫＥＹ＿業務機能識別コード＿料金訂正可否
		parentMap.put("key_work_kino_skbt_cd_prc_teise", JACStrConst.WORK_KINO_SKBT_TEISE_PSB);

		// 業務機能識別コード(訂正ボタン) → 請求内訳一覧照会マップ.ＫＥＹ＿業務機能識別コード＿訂正ボタン
		parentMap.put("key_work_kino_skbt_teise_btn", JACStrConst.WORK_KINO_SKBT_TUSHIN_PRC);

		outputMap.put("CHSV001909SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCHSV001910SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号 →課金先一覧照会（オーナー情報）照会マップ.ＫＥＹ＿請求契約番号
		parentMap.put("key_seiky_kei_no", bean[0].sendMessageString("請求契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CHSV001910SC", parentMap);

		return outputMap;
	}
	
	//ANK-4468-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETCHANGEGROUPKEIINFCC(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);
		
		outputMap.put("GETCHANGEGROUPKEIINFCC", parentMap);
						
		return outputMap;
	}
	
	//ANK-4468-00-00 ADD END
	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001901SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001901SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001901SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV001901SC_seiky_ym_info_ECH0051B010CBSMsg1List = bean[0].getDataBeanArray(CHW00301SFConst.SEIKY_YM_INFO);
		X31SDataBeanAccess subbean = listCHSV001901SC_seiky_ym_info_ECH0051B010CBSMsg1List.getDataBean(0);

		subbean.sendMessage(CHW00301SFConst.SEIKY_NO_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.SEIKY_YM_LIST_04, X31CWebConst.DATABEAN_CLEAR);

		childList = null;
		if (parentMap.containsKey("ECH0051B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0051B010CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				String yyyy = childMap.get("seiky_ym").toString().substring(0, 4);
				String mm = childMap.get("seiky_ym").toString().substring(4, 6);
				String seiky_sbt_nm = childMap.get("seiky_sbt_cd_nm").toString();

				StringBuffer nmEditor = new StringBuffer();
				nmEditor.append(yyyy).append(JACStrConst.SLASH).append(mm).append(JACStrConst.COLON).append(seiky_sbt_nm);

				// 請求年月情報.請求番号リスト ← 請求年月取得マップ.請求番号
				subbean.sendMessageString(CHW00301SFConst.SEIKY_NO_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiky_no"));

				// 請求年月情報.請求年月リスト ← 請求年月取得マップ.請求年月
				subbean.sendMessageString(CHW00301SFConst.SEIKY_YM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, nmEditor.toString());

				if (childList.size() == 1)
				{
					subbean.sendMessageString(CHW00301SFConst.SEIKY_YM_SEL_04, X31CWebConst.DATABEAN_SET_VALUE, "0");
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001902SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001902SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001902SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("ECH0051A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0051A010CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					// 請求ステータス ← 請求一意照会SC.請求一意明細.請求ステータス
					bean[0].sendMessageString(CHW00301SFConst.SEIKY_STAT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_stat"));

					// 請求種別コード ← 請求一意照会SC.請求一意明細.請求種別コード
					bean[0].sendMessageString(CHW00301SFConst.SEIKY_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_sbt_cd"));

					// 請求更新年月日時分秒 ← 請求一意照会SC.請求一意明細.更新年月日時分秒
					bean[0].sendMessageString(CHW00301SFConst.SEIKY_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001903SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001903SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001903SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("ECH0011B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0011B010CBSMsg1List");

			X31SDataBeanAccessArray listCHSV001903SC_seiky_info_ECH0011B010CBSMsg1List = bean[0].getDataBeanArray("請求金額情報");
			X31SDataBeanAccess subbean = null;
			if (listCHSV001903SC_seiky_info_ECH0011B010CBSMsg1List.getCount() > 0)
			{
				subbean = listCHSV001903SC_seiky_info_ECH0011B010CBSMsg1List.getDataBean(0);
			}
			else
			{
				subbean = listCHSV001903SC_seiky_info_ECH0011B010CBSMsg1List.addDataBean();
			}

			// 債権額
			String saikenAmnt = "0";
			// うち消費税額
			String saikenStax = "0";
			// 請求額
			String seikyAmnt = "0";
			// 前受金充当額
			String maeukJutoAmnt = "0";

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					// 債権番号 ← 債権一覧照会マップ.債権一覧明細.債権番号
					bean[0].sendMessageString(CHW00301SFConst.SAIKEN_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_no"));

					// 債権更新年月日時分秒 ← 債権一覧照会マップ.債権一覧明細.更新前債権更新年月日時分秒
					bean[0].sendMessageString(CHW00301SFConst.SAIKEN_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_upd_dtm_af"));

					// 債権額
					if (!JCRUtilCommon.isNull(childMap.get("saiken_amnt")))
					{
						saikenAmnt = (String)childMap.get("saiken_amnt");
					}

					// うち消費税額
					if (!JCRUtilCommon.isNull(childMap.get("saiken_stax")))
					{
						saikenStax = (String)childMap.get("saiken_stax");
					}

					// 請求額
					if (!JCRUtilCommon.isNull(childMap.get("seiky_amnt")))
					{
						seikyAmnt = (String)childMap.get("seiky_amnt");
					}
					// 前受金充当額
					if (!JCRUtilCommon.isNull(childMap.get("maeu_jyto_amnt")))
					{
						maeukJutoAmnt = (String)childMap.get("maeu_jyto_amnt");
					}

					// 請求金額情報.債権額（後）
					subbean.sendMessageString("債権額（後）", X31CWebConst.DATABEAN_SET_VALUE, saikenAmnt);

					// 請求金額情報.うち消費税額（後）
					subbean.sendMessageString("うち消費税額（後）", X31CWebConst.DATABEAN_SET_VALUE, saikenStax);

					// 請求金額情報.請求額（後）
					subbean.sendMessageString("請求額（後）", X31CWebConst.DATABEAN_SET_VALUE, seikyAmnt);

					// 請求金額情報.前受金充当額（後）
					subbean.sendMessageString("前受金充当額（後）", X31CWebConst.DATABEAN_SET_VALUE, maeukJutoAmnt);

					// 請求金額情報.債権額（前）
					subbean.sendMessageString("債権額（前）", X31CWebConst.DATABEAN_SET_VALUE, saikenAmnt);

					// 請求金額情報.うち消費税額（前）
					subbean.sendMessageString("うち消費税額（前）", X31CWebConst.DATABEAN_SET_VALUE, saikenStax);

					// 請求金額情報.請求額（前）
					subbean.sendMessageString("請求額（前）", X31CWebConst.DATABEAN_SET_VALUE, seikyAmnt);

					// 請求金額情報.前受金充当額（前）
					subbean.sendMessageString("前受金充当額（前）", X31CWebConst.DATABEAN_SET_VALUE, maeukJutoAmnt);
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001904SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001904SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001904SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("ECH0011A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0011A010CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					// 補償費のON/OFFを行う
					boolean isValue = JCHDspEditUtil.getUmFlgBoolean((String)childMap.get("hshiak_prc_teise_um"));
					bean[0].sendMessageBoolean(CHW00301SFConst.HOSHOHI_DSP, X31CWebConst.DATABEAN_SET_VALUE, isValue);
					
					//■IT1-2013-0001512対応 開始
					String bf_hoshohi = JCHDspEditUtil.getUmFlgCodeValue(bean[0].sendMessageBoolean(CHW00301SFConst.HOSHOHI_DSP, X31CWebConst.DATABEAN_GET_VALUE));
					bean[0].sendMessageString(CHW00301SFConst.BF_HOSHOHI_DSP, X31CWebConst.DATABEAN_SET_VALUE, bf_hoshohi);
					//■IT1-2013-0001512対応 終了
					
					// 請求ステータス名称 ← 債権一覧照会マップ.債権一覧明細.債権ステータス名称
					bean[0].sendMessageString(CHW00301SFConst.SEIKY_STAT_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("saiken_stat_nm"));
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001906SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001906SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001906SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV001906SC_seiky_info_ECH0191B020CBSMsg1List = bean[0].getDataBeanArray("請求金額情報");
		childList = null;

		// 預り金、前受金
		String azukin = "0";
		String maeukkin = "0";

		if (listCHSV001906SC_seiky_info_ECH0191B020CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0191B020CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0191B020CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				// 金庫ステータス毎合計一覧照会マップ.金庫ステータス毎合計一覧明細.金庫料金項目コード
				String prcKmkCd = (String)childMap.get("knk_prc_kmk_cd");

				// 金庫ステータス毎合計一覧照会マップ.金庫ステータス毎合計一覧明細.金庫金額
				String knkAmnt = (String)childMap.get("knk_amnt");

				// 預り金[00900010301]の集計
				if (JACStrConst.PRC_KMK_CD_AZUKIN.equals(prcKmkCd))
				{
					azukin = JCHWebCommon.calcAdd(azukin, knkAmnt, true);
				}
				// 前受金[00900020301]の集計
				else if (JACStrConst.PRC_KMK_CD_MAEUKKIN.equals(prcKmkCd))
				{
					maeukkin = JCHWebCommon.calcAdd(maeukkin, knkAmnt, true);
				}
			}
		}

		X31SDataBeanAccess subbean = null;
		if (listCHSV001906SC_seiky_info_ECH0191B020CBSMsg1List.getCount() > 0)
		{
			subbean = listCHSV001906SC_seiky_info_ECH0191B020CBSMsg1List.getDataBean(0);
		}
		else
		{
			subbean = listCHSV001906SC_seiky_info_ECH0191B020CBSMsg1List.addDataBean();
		}

		// 請求情報.預り金額（後）
		subbean.sendMessageString("預り金額（後）", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(azukin));

		// 請求情報.前受金額（後）
		subbean.sendMessageString("前受金額（後）", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(maeukkin));

		// 請求情報.預り金額（前）
		subbean.sendMessageString("預り金額（前）", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(azukin));

		// 請求情報.前受金額（前）
		subbean.sendMessageString("前受金額（前）", X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(maeukkin));

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001907SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001907SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001907SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV001907SC_id_no_info_uw_add_EKK0321B002CBSMsg1List = bean[0].getDataBeanArray(CHW00301SFConst.SVC_KEI_NO_INFO);
		X31SDataBeanAccess subbean = listCHSV001907SC_id_no_info_uw_add_EKK0321B002CBSMsg1List.getDataBean(0);

		subbean.sendMessage(CHW00301SFConst.SEIRI_NO_LIST_06, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.MANSION_ID_LIST_06, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.KAISEN_PLACE_ADRRM_LIST_06, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.SVC_KEI_NO_LIST_06, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.SVC_KEI_NO_LIST_DSP_06, X31CWebConst.DATABEAN_CLEAR);
		/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
		subbean.sendMessage(CHW00301SFConst.PAY_HOSHIKI_CD_LIST_06, X31CWebConst.DATABEAN_CLEAR);
		/* ++++++++++ v10.00.00 変更完了 ++++++++++ */

		subbean.sendMessageString(CHW00301SFConst.SEIRI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00301SFConst.MANSION_ID_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00301SFConst.KAISEN_PLACE_ADRRM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_DSP_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
		subbean.sendMessageString(CHW00301SFConst.PAY_HOSHIKI_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		/* ++++++++++ v10.00.00 変更完了 ++++++++++ */

//OM-2015-0000136 MOD START
//		if (listCHSV001907SC_id_no_info_uw_add_EKK0321B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0321B505CBSMsg1List"))
		if (listCHSV001907SC_id_no_info_uw_add_EKK0321B002CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0321B509CBSMsg1List"))
//OM-2015-0000136 MOD END
		{
//OM-2015-0000136 MOD START
//			childList = (ArrayList)parentMap.get("EKK0321B505CBSMsg1List");
			childList = (ArrayList)parentMap.get("EKK0321B509CBSMsg1List");
//OM-2015-0000136 MOD END
			//OM-2014-0002355 ADD START
			//支払方式コード
			String payHoshikiCd_info = JACStrConst.KARA_MOJI;
			//マンションID
			String mansionId_info = JACStrConst.KARA_MOJI;
			//OM-2014-0002355 ADD END
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					String svcKeiNoDsp = (String)childMap.get("svc_kei_no"); 	// 課金先一覧照会（マンションID）.課金先一覧明細.サービス契約番号
					String svcKeiNo = (String)childMap.get("svc_kei_no"); 		// 課金先一覧照会（マンションID）.課金先一覧明細.サービス契約番号
					String mansionId = (String)childMap.get("mansion_id"); 		// 課金先一覧照会（マンションID）.課金先一覧明細.マンションID
					String roomNo = (String)childMap.get("kaisen_place_adrrm"); // 課金先一覧照会（マンションID）.課金先一覧明細.回線場所住所補記・部屋番号

					//OM-2014-0002355 ADD START
					String payHoshikiCd = (String)childMap.get("pay_hoshiki_cd"); // 課金先一覧照会（マンションID）.課金先一覧明細.支払方式コード

					if(JACStrConst.KARA_MOJI.equals(mansionId_info))
					{
						if(mansionId != null && !JACStrConst.KARA_MOJI.equals(mansionId))
						{
							mansionId_info = mansionId;
						}
						
						if(payHoshikiCd != null && !JACStrConst.KARA_MOJI.equals(payHoshikiCd))
						{
							payHoshikiCd_info = payHoshikiCd;
						}
					}
					else
					{
						if(!mansionId_info.equals(mansionId))
						{
							if("001".equals(payHoshikiCd_info) || "003".equals(payHoshikiCd_info))
							{
								svcKeiNoDsp = JCHDspEditUtil.codeNameEdit(mansionId_info, "00000");
								subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_DSP_06, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
								
								// サービス契約番号情報.サービス契約番号リスト ← サービス契約番号
								subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "9999999999");
								

								// サービス契約番号情報.整理番号リスト ← 課金先一覧照会（マンションID）.課金先一覧明細.整理番号
								subbean.sendMessageString(CHW00301SFConst.SEIRI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);

								// サービス契約番号情報.マンションＩＤリスト ← マンションＩＤ
								subbean.sendMessageString(CHW00301SFConst.MANSION_ID_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, mansionId_info);

								// サービス契約番号情報.回線場所住所補記＿部屋番号リスト ← 部屋番号
								subbean.sendMessageString(CHW00301SFConst.KAISEN_PLACE_ADRRM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "00000");
								
								/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
								subbean.sendMessageString(CHW00301SFConst.PAY_HOSHIKI_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
							}
							
							if(mansionId != null && !JACStrConst.KARA_MOJI.equals(mansionId))
							{
								mansionId_info = mansionId;
							}
							else
							{
								mansionId_info = JACStrConst.KARA_MOJI;
							}
							
							if(payHoshikiCd != null && !JACStrConst.KARA_MOJI.equals(payHoshikiCd))
							{
								payHoshikiCd_info = payHoshikiCd;
							}
							else
							{
								payHoshikiCd_info = JACStrConst.KARA_MOJI;
							}
						
						}
					}

					//OM-2014-0002355 ADD END

					// マンションID + 部屋番号の場合
					if (JCHWebCommon.isNotNullOrEmpty(roomNo))
					{
						svcKeiNoDsp = JCHDspEditUtil.codeNameEdit(mansionId, roomNo);
					}
					// マンションIDの場合
					else if (JCHWebCommon.isNotNullOrEmpty(mansionId))
					{
						svcKeiNoDsp = mansionId;
					}
					// 上記以外の場合はサービス契約番号

					// サービス契約番号情報.整理番号リスト ← 課金先一覧照会（マンションID）.課金先一覧明細.整理番号
//OM-2015-0000136 MOD START
//					subbean.sendMessageString(CHW00301SFConst.SEIRI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiri_no"));
					String seiriNo = getSeiriNoFromSeikyUcwk(outputMap, svcKeiNo);
					if (null == seiriNo)
					{
						seiriNo = (String)childMap.get("seiri_no");
					}
					subbean.sendMessageString(CHW00301SFConst.SEIRI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, seiriNo);
//OM-2015-0000136 MOD END

					// サービス契約番号情報.マンションＩＤリスト ← マンションＩＤ
					subbean.sendMessageString(CHW00301SFConst.MANSION_ID_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, mansionId);

					// サービス契約番号情報.回線場所住所補記＿部屋番号リスト ← 部屋番号
					subbean.sendMessageString(CHW00301SFConst.KAISEN_PLACE_ADRRM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, roomNo);

					// サービス契約番号情報.サービス契約番号リスト ← サービス契約番号
					subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNo);

					// サービス契約番号情報.サービス契約番号リスト表示用 ←サービス契約番号表示用
					subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_DSP_06, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
					/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
					subbean.sendMessageString(CHW00301SFConst.PAY_HOSHIKI_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, payHoshikiCd);
					/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
					
					
					//OM-2014-0002355 ADD START
					//最終レコードの場合
					if(i+1 == childList.size())
					{
						if(mansionId_info.equals(mansionId))
						{
							//支払方式：居住者一括　以外の場合
							if("001".equals(payHoshikiCd_info) || "003".equals(payHoshikiCd_info))
							{
								svcKeiNoDsp = JCHDspEditUtil.codeNameEdit(mansionId, "00000");
								subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_DSP_06, X31CWebConst.DATABEAN_ADD_VALUE, svcKeiNoDsp);
								
								// サービス契約番号情報.サービス契約番号リスト ← サービス契約番号
								subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "9999999999");
								
								// サービス契約番号情報.整理番号リスト ← 課金先一覧照会（マンションID）.課金先一覧明細.整理番号
								subbean.sendMessageString(CHW00301SFConst.SEIRI_NO_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);

								// サービス契約番号情報.マンションＩＤリスト ← マンションＩＤ
								subbean.sendMessageString(CHW00301SFConst.MANSION_ID_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, mansionId_info);

								// サービス契約番号情報.回線場所住所補記＿部屋番号リスト ← 部屋番号
								subbean.sendMessageString(CHW00301SFConst.KAISEN_PLACE_ADRRM_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, "00000");
								/* ++++++++++ v10.00.00 変更開始 ++++++++++ */
								subbean.sendMessageString(CHW00301SFConst.PAY_HOSHIKI_CD_LIST_06, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
								/* ++++++++++ v10.00.00 変更完了 ++++++++++ */
							}
						}
					}
					
					//OM-2014-0002355 ADD END
					
				}
			}
		}

		return bean;
	}

//OM-2015-0000136 ADD START
	
	/**
	 * サービス契約番号に対する整理番号を請求内訳から取得します。
	 * <br/>
	 * @param outputMap 出力マップ
	 * @param keySvcKeiNo 検索キーとなるサービス契約番号
	 * @return 整理番号
	 */
	@SuppressWarnings("unchecked")
	private String getSeiriNoFromSeikyUcwk(HashMap outputMap, String keySvcKeiNo)
	{
		if (null == keySvcKeiNo || "".equals(keySvcKeiNo))
		{
			return null;
		}
		
		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001909SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001909SC");
		}

		if (parentMap != null && parentMap.containsKey(ECH0101B010CBSMSG1LIST))
		{
			ArrayList<HashMap> childList = (ArrayList<HashMap>)parentMap.get("ECH0101B010CBSMsg1List");
			for (HashMap childMap : childList)
			{
				// サービス契約番号
				String svcKeiNo = (String)childMap.get("svc_kei_no");
				// 料金グループコード
				String prcGrpCd = (String)childMap.get("prc_grp_cd");
				// 整理番号
				String seiriNo = (String)childMap.get("seiri_no");
				
				// マンションオーナーデータは対象外
				if (!keySvcKeiNo.equals(svcKeiNo) || "99".equals(prcGrpCd))
				{
					continue;
				}
				
				if (null != seiriNo && !"".equals(seiriNo))
				{
					return seiriNo;
				}
			}
		}
		return null;
	}
	
//OM-2015-0000136 ADD END
	
	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001908SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001908SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001908SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV001908SC_prc_uw_info_ECH0401B040CBSMsg1List = bean[0].getDataBeanArray(CHW00301SFConst.PRC_KMK_INFO);
		X31SDataBeanAccess subbean = listCHSV001908SC_prc_uw_info_ECH0401B040CBSMsg1List.getDataBean(0);

		subbean.sendMessage(CHW00301SFConst.PRC_KMK_CD_LIST_09, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.PRC_KMK_NM_LIST_09, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.PRC_SVC_CD_LIST_09, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CHW00301SFConst.TEGAK_PRC_LIST_09, X31CWebConst.DATABEAN_CLEAR);

		HashMap<String, String> chkMap = new HashMap<String, String>(); // 重複行チェック用リスト
		
		// 選択されているキャンペーンの料金サービスコードを取得
		String selPrcSvcCd = bean[0].sendMessageString(CHW00301SFConst.PRC_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE);
		Boolean isSelectedCamp = false;
		// キャンペーンの選択有無を判断
		if (JCHWebCommon.isNotNullOrEmpty(selPrcSvcCd))
		{
			isSelectedCamp = true;
		}

		childList = null;
		if (listCHSV001908SC_prc_uw_info_ECH0401B040CBSMsg1List != null && parentMap != null && parentMap.containsKey("ECH0401B040CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0401B040CBSMsg1List");

			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.DTL_REQ_PRC_KMK_CD_INFO, CHW00301SFConst.DTL_REQ_PRC_KMK_CD_16);

			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqDplMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_INFO, CHW00301SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_17);

			// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
			HashMap<String, String> tabDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00301SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_18);
			

			//v16.00.00 2015/07/07 Add Start			
			// 詳細必須料金項目情報（ｅｏ電気）の料金項目コード群を取得
			HashMap<String, String> electDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00301SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_19);
			//v16.00.00 2015/07/07 Add End
			//v36.00.00 ANK-3296-00-00 Add Start
			
			// 詳細必須料金項目情報（工事費割賦）の料金項目コード群を取得
			HashMap<String, String> kojikapDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.KOJIKAP_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00301SFConst.KOJIKAP_DTL_REQUIRE_PRC_KMK_CD_20);

			//v36.00.00 ANK-3296-00-00 Add End

			
			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					String prcSvcCd = (String)childMap.get("prc_svc_cd"); 		// 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金サービスコード
					String prcKmkCd = (String)childMap.get("prc_kmk_cd"); 		// 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金項目コード
					String prcKmkNm = (String)childMap.get("prc_kmk_cd_nm"); 	// 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金項目コード名称

					// 重複チェック
					String chkValue = prcKmkCd + prcKmkNm;
					if (chkMap.containsKey(chkValue))
					{
						// チェックマップに「料金項目コード＋料金項目コード名称」が既に存在する場合、読み飛ばし
						continue;
					}
					// 保持
					chkMap.put(chkValue, chkValue);
					
					// 料金項目情報.料金項目コードリスト ← 料金項目コード
					subbean.sendMessageString("料金項目コードリスト", X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCd);

					// 料金内訳情報.請求内訳名称リスト ← 料金項目コード名称
					subbean.sendMessageString("請求内訳名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, prcKmkNm);

					// 料金項目情報.料金項目名称リスト ← 料金項目コード + 料金サービスコード + ":" + 料金項目コード名称
					String prcKmkCdNm = JCHDspEditUtil.prcKmkNmEdit(prcKmkCd, prcKmkNm, prcSvcCd, isSelectedCamp);
					subbean.sendMessageString("料金項目名称リスト", X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCdNm);

					// 料金項目情報.料金グループコードリスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金グループコード
					subbean.sendMessageString("料金グループコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc_grp_cd"));

					// 料金項目情報.料金サービスコードリスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金サービスコードリスト
					subbean.sendMessageString("料金サービスコードリスト", X31CWebConst.DATABEAN_ADD_VALUE, prcSvcCd);

					// 料金内訳情報.定額料金リスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.定額料金
					subbean.sendMessageString("定額料金リスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("tegak_prc"));

					// 料金項目情報.請求書ＮＯ欄表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.請求書NO欄表示制御フラグ
					subbean.sendMessageString("請求書ＮＯ欄表示制御フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("sks_no_ran_dsp_ctrl_flg"));

					// 料金内訳情報.サービス契約番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.サービス契約番号表示制御フラグリスト
					subbean.sendMessageString("サービス契約番号表示制御フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("svkei_no_dsp_ctrl_flg"));

					// 料金内訳情報.請求契約番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.請求契約番号表示制御フラグリスト
					subbean.sendMessageString("請求契約番号表示制御フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiky_kei_no_dsp_ctrl_flg"));

					// 料金内訳情報.整理番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.整理番号表示制御フラグリスト
					subbean.sendMessageString("整理番号表示制御フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("seiri_no_dsp_ctrl_flg"));

					// 料金内訳情報.マンションＩＤ表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.マンションＩＤ表示制御フラグリスト
					subbean.sendMessageString("マンションＩＤ表示制御フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("mans_id_dsp_ctrl_flg"));

					// 料金内訳情報.部屋番号表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.部屋番号表示制御フラグリスト
					subbean.sendMessageString("部屋番号表示制御フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("adrrm_dsp_ctrl_flg"));

					// 料金内訳情報.利用期間表示制御フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.利用期間表示制御フラグ
					subbean.sendMessageString("利用期間表示制御フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("use_prd_dsp_ctrl_flg_list"));

					// 料金内訳情報.税区分表示フラグリスト ← 料金項目出力名称一覧照会マップ.料金項目出力名称一覧照会明細.税区分表示フラグ
					subbean.sendMessageString("税区分表示フラグリスト", X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("tax_div_dsp_flg_list"));

					// 料金項目情報.詳細必須料金項目フラグリストを設定
					String dtlReqFlg = "0";
					if (dtlReqMap.containsKey(prcKmkCd))
					{
						dtlReqFlg = "1";
					}

					if (dtlReqDplMap.containsKey(prcKmkCd))
					{
						dtlReqFlg = "2";
					}
					subbean.sendMessageString(CHW00301SFConst.DTL_REQUIRE_FLG_LIST_09, X31CWebConst.DATABEAN_ADD_VALUE, dtlReqFlg);

					// 料金項目情報.詳細必須料金項目フラグリスト（タブレット）を設定
					String tabDtlReqFlg = "0";
					if (tabDtlReqMap.containsKey(prcKmkCd))
					{
						tabDtlReqFlg = "1";
					}
					subbean.sendMessageString(CHW00301SFConst.TAB_DTL_REQUIRE_FLG_LIST_09, X31CWebConst.DATABEAN_ADD_VALUE, tabDtlReqFlg);
					//v16.00.00 2015/07/07 Add Start
					// 料金項目情報.詳細必須料金項目フラグリスト（ｅｏ電気）を設定
					String electDtlReqFlg = "0";
					if (electDtlReqMap.containsKey(prcKmkCd))
					{
						electDtlReqFlg = "1";
					}
					subbean.sendMessageString(CHW00301SFConst.ELECT_DTL_REQUIRE_FLG_LIST_09, X31CWebConst.DATABEAN_ADD_VALUE, electDtlReqFlg);
					//v16.00.00 2015/07/07 Add End
					//v36.00.00 ANK-3296-00-00 Add Start
					// 料金項目情報.詳細必須料金項目フラグリスト（工事費割賦）を設定
					String kojikapDtlReqFlg = "0";
					if (kojikapDtlReqMap.containsKey(prcKmkCd))
					{
						kojikapDtlReqFlg = "1";
					}
					subbean.sendMessageString(CHW00301SFConst.KOJIKAP_DTL_REQUIRE_FLG_LIST_09, X31CWebConst.DATABEAN_ADD_VALUE, kojikapDtlReqFlg);
					//v36.00.00 ANK-3296-00-00 Add End
					// 料金項目コードに初期値を設定する
					if (i == 0)
					{
						bean[0].sendMessageString(CHW00301SFConst.PRC_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd);
						bean[0].sendMessageString(CHW00301SFConst.DTL_REQ_KBN, X31CWebConst.DATABEAN_SET_VALUE, dtlReqFlg);
						bean[0].sendMessageString(CHW00301SFConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, tabDtlReqFlg);
						//v16.00.00 2015/07/07 Add Start
						bean[0].sendMessageString(CHW00301SFConst.ELECT_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, electDtlReqFlg);
						//v16.00.00 2015/07/07 Add End
						//v36.00.00 ANK-3296-00-00 Add Start
						bean[0].sendMessageString(CHW00301SFConst.KOJIKAP_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, kojikapDtlReqFlg);
						//v36.00.00 ANK-3296-00-00 Add End
					}

				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：ＦＴＴＨ通信量訂正
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getGETPRCKMKCSCHGELISTCC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey(GETPRCKMKCSCHGELISTCC)){
			parentMap = (HashMap)outputMap.get(GETPRCKMKCSCHGELISTCC);
		}

		if(parentMap != null && parentMap.containsKey("PRC_KMK_CS_CHGE_LIST")){

			ArrayList<HashMap<String, Object>> mainList = (ArrayList)parentMap.get("PRC_KMK_CS_CHGE_LIST");

			// in料金項目抽出変換一覧照会明細リストの内容をmapに格納
			HashMap<String, Object> prcMap = new HashMap<String, Object>();
			for (HashMap<String, Object> mainObj : mainList)
			{
				prcMap.put((String)mainObj.get("key_work_param_id"), mainObj);
			}

			// mapからＫＥＹ＿業務パラメータIDをキーに、各料金項目コードを取得する

			// 料金項目コード（通信料＿金額）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_TSUSIN_G))
			{
				HashMap<String, Object> map0 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_TSUSIN_G);
				bean[0].sendMessageString("料金項目コード＿通信料＿金額", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map0, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（通信料＿数量）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_TSUSIN_A))
			{
				HashMap<String, Object> map1 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_TSUSIN_A);
				bean[0].sendMessageString("料金項目コード＿通信料＿数量", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map1, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（利用通信量＿数量）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_RY_TSUSIN_A))
			{
				HashMap<String, Object> map2 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_RY_TSUSIN_A);
				bean[0].sendMessageString("料金項目コード＿利用通信量＿数量", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map2, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（無料通信量＿数量）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_MR_TSUSIN_A))
			{
				HashMap<String, Object> map3 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_MR_TSUSIN_A);
				bean[0].sendMessageString("料金項目コード＿無料通信量＿数量", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map3, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（補正通信量＿数量）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_HS_TSUSIN_A))
			{
				HashMap<String, Object> map4 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_HS_TSUSIN_A);
				bean[0].sendMessageString("料金項目コード＿補正通信量＿数量", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map4, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（通信料＿金額）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_TS_TSUSIN_G))
			{
				HashMap<String, Object> map5 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_TS_TSUSIN_G);
				bean[0].sendMessageString("料金項目コード＿訂正通信量＿金額", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map5, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（通信料＿数量）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_TS_TSUSIN_A))
			{
				HashMap<String, Object> map6 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_TS_TSUSIN_A);
				bean[0].sendMessageString("料金項目コード＿訂正通信量＿数量", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map6, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// FTTH通信量訂正表示用
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_FTTH_CHG_DSP))
			{
				HashMap<String, Object> map7 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_FTTH_CHG_DSP);
				setFtthInfo(bean, map7, ECH0401B010CBSMSG1LIST);
			}

			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_PRC))
			{
				HashMap<String, Object> map8 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map8.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray dtl_req__prc_kmk_cd_list = bean[0].getDataBeanArray("詳細必須料金項目情報");
				dtl_req__prc_kmk_cd_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (dtl_req__prc_kmk_cd_list.getCount() - 1 >= i)
					{
						subbean = dtl_req__prc_kmk_cd_list.getDataBean(i);
					}
					else
					{
						subbean = dtl_req__prc_kmk_cd_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}

			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_DPL))
			{
				HashMap<String, Object> map9 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_DPL);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map9.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目（重複可）情報");
				dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（重複可）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}

			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_TAB_PRC))
			{
				HashMap<String, Object> map10 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_TAB_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map10.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray tab_dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目情報（タブレット）");
				tab_dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (tab_dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = tab_dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = tab_dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード（タブレット） ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（タブレット）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}
			//v16.00.00 2015/07/07 Add Start			
			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC))
			{
				HashMap<String, Object> map11 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map11.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray elect_dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目情報（ｅｏ電気）");
				elect_dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (elect_dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = elect_dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = elect_dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード（ｅｏ電気） ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（ｅｏ電気）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}
			//v16.00.00 2015/07/07 Add End			
			//v36.00.00 ANK-3296-00-00 Add Start
			if (prcMap.containsKey(JACStrConst.WKPARA_AC_DT_KJ_HI_KAP_PRC))
			{
				HashMap<String, Object> map12 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_DT_KJ_HI_KAP_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map12.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray kojikap_dtl_req__prc_kmk_cd_dplct_list = bean[0].getDataBeanArray("詳細必須料金項目情報（工事費割賦）");
				kojikap_dtl_req__prc_kmk_cd_dplct_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (kojikap_dtl_req__prc_kmk_cd_dplct_list.getCount() - 1 >= i)
					{
						subbean = kojikap_dtl_req__prc_kmk_cd_dplct_list.getDataBean(i);
					}
					else
					{
						subbean = kojikap_dtl_req__prc_kmk_cd_dplct_list.addDataBean();
					}
					HashMap childMap = (HashMap)childList.get(i);

					// 詳細必須料金項目情報.詳細必須料金項目コード（工事費割賦） ← 料金項目抽出変換一覧照会CCマップ.料金項目抽出変換一覧照会明細.料金項目コード
					subbean.sendMessageString("詳細必須料金項目コード（工事費割賦）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));
				}

			}
			// 料金項目コード（料金項目コード＿工事費分割代金＿金額＿ネット）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_KJ_HI_NET))
			{
				HashMap<String, Object> map13 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_KJ_HI_NET);
				bean[0].sendMessageString("料金項目コード＿工事費分割代金＿金額＿ネット", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map13, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（料金項目コード＿工事費分割代金＿金額＿電話）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_KJ_HI_TEL))
			{
				HashMap<String, Object> map14 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_KJ_HI_TEL);
				bean[0].sendMessageString("料金項目コード＿工事費分割代金＿金額＿電話", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map14, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			// 料金項目コード（料金項目コード＿工事費分割代金＿回数）
			if (prcMap.containsKey(JACStrConst.WKPRA_CH_WKS_KJ_HI_KAI))
			{
				HashMap<String, Object> map15 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPRA_CH_WKS_KJ_HI_KAI);
				bean[0].sendMessageString("料金項目コード＿工事費分割代金＿回数", X31CWebConst.DATABEAN_SET_VALUE, getPrcKmkCd(map15, ECH0401B010CBSMSG1LIST, PRC_KMK_CD));
			}

			//v36.00.00 ANK-3296-00-00 Add End
		}

		return bean;

	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param keyMap 請求内訳明細キーマップ
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001909SC(X31SDataBeanAccess[] bean, HashMap outputMap, HashMap<HashMap<String, String>, Integer> keyMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001909SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001909SC");
		}

		if (parentMap != null && parentMap.containsKey(ECH0101B010CBSMSG1LIST)){

			ArrayList childList = (ArrayList)parentMap.get("ECH0101B010CBSMsg1List");
			//ANK-4468-00-00 ADD START
			// シンプルプラン料金出力名称文言変更
			childList = JCHChangeGroupKei.changeGroupKei(childList,outputMap);
			//ANK-4468-00-00 ADD END
			X31SDataBeanAccessArray listCHSV001909SC_seiky_uw_info_ECH0101B010CBSMsg1List = bean[0].getDataBeanArray("請求内訳情報");
			X31SDataBeanAccessArray listCHSV001909SC_seiky_uw_db_ctl_ECH0101B010CBSMsg5List = bean[0].getDataBeanArray("請求内訳情報（非表示）");

			// サービス詳細識別番号情報（初期化）
			X31SDataBeanAccessArray svcDtlSkbtNoInfo = bean[0].getDataBeanArray(CHW00301SFConst.SVC_DTL_SKBT_NO_INFO);
			X31SDataBeanAccess svcDtlSkbtNoSubbean = svcDtlSkbtNoInfo.getDataBean(0);
			svcDtlSkbtNoSubbean.sendMessageString(CHW00301SFConst.SVC_DTL_SKBT_NO_LIST_15, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
			svcDtlSkbtNoSubbean.sendMessageString(CHW00301SFConst.SVC_DTL_SKBT_NO_KBN_LIST_15, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);

			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.DTL_REQ_PRC_KMK_CD_INFO, CHW00301SFConst.DTL_REQ_PRC_KMK_CD_16);

			// 詳細必須料金項目コード（重複可）の料金項目コード群を取得
			HashMap<String, String> dtlReqDplMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_INFO, CHW00301SFConst.DTL_REQ_PRC_KMK_CD_DPLCT_17);

			// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
			HashMap<String, String> tabDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00301SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_18);

//v16.00.00 2015/07/07 Add Start
			
			// 詳細必須料金項目情報（ｅｏ電気）の料金項目コード群を取得
			HashMap<String, String> electDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00301SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_19);

//v16.00.00 2015/07/07 Add End
//v36.00.00 ANK-3296-00-00 Add Start
			// 詳細必須料金項目情報（工事費割賦）の料金項目コード群を取得
			HashMap<String, String> kojikapDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], CHW00301SFConst.KOJIKAP_DTL_REQUIRE_PRC_KMK_CD_INFO, CHW00301SFConst.KOJIKAP_DTL_REQUIRE_PRC_KMK_CD_20);
//v36.00.00 ANK-3296-00-00 Add End

			// サービス詳細識別番号格納用マップ
			HashMap<String, String> svcDtlSkbtNoMap = new HashMap<String, String>();

			// サービス詳細識別番号（電話番号）退避用リスト
			List<String> workTelNoList = new ArrayList<String>();

			int iNo = 0;
			for (int i = 0; i < childList.size(); i++)
			{
				X31SDataBeanAccess subbean = null;

				boolean add1List = false;
				HashMap childMap = (HashMap)childList.get(i);
				if (childMap != null)
				{
					// 料金項目コード
					String prcKmkCd = (String)childMap.get("prc_kmk_cd");

					//v36.00.01 IT1-2018-0000026 Mod Start
					//if (JCHWebCommon.isSuryou(bean[0], prcKmkCd))
					if (JCHWebCommon.isSuryou2(bean[0], prcKmkCd))
					//v36.00.01 IT1-2018-0000026 Mod End
					{
						subbean = listCHSV001909SC_seiky_uw_db_ctl_ECH0101B010CBSMsg5List.addDataBean();
					}
					else
					{
						subbean = listCHSV001909SC_seiky_uw_info_ECH0101B010CBSMsg1List.addDataBean();
						add1List = true;
					}

					if (subbean == null)
					{
						continue;
					}

					// 制御フラグに応じて設定
					String seikyKeiNoDspCtrlFlg = (String)childMap.get("seiky_kei_no_dsp_ctrl_flg");
					String svkeiNoDspCtrlFlg = (String)childMap.get("svkei_no_dsp_ctrl_flg");
					String mansIdDspCtrlFlg = (String)childMap.get("mans_id_dsp_ctrl_flg");
					String seiriNoDspCtrlFlg = (String)childMap.get("seiri_no_dsp_ctrl_flg");

					String keyPrcKmkCd = (String)childMap.get("prc_kmk_cd");

					String strNo = "";
					if (JACStrConst.SEIRI_NO_DSP_CTRL_FLG_ON.equals(seiriNoDspCtrlFlg) || JACStrConst.MANS_ID_DSP_CTRL_FLG_ON.equals(mansIdDspCtrlFlg))
					{
						if (add1List)
						{
							iNo++;
							strNo = String.valueOf(iNo);
						}
						// 請求内訳情報.Ｎｏ ← No
						subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, strNo);
					}

					if ("1".equals(seikyKeiNoDspCtrlFlg))
					{
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.請求契約番号
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no"));
					}
					else if (JACStrConst.SVKEI_NO_DSP_CTRL_FLG_ON.equals(svkeiNoDspCtrlFlg))
					{
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.サービス契約番号
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
					}
					else if (JACStrConst.MANS_ID_DSP_CTRL_FLG_ON.equals(mansIdDspCtrlFlg))
					{
						String mansionId = JACStrConst.KARA_MOJI;
						if(JCHWebCommon.isNotNullOrEmpty((String)childMap.get("mansion_id")))
						{
							mansionId = (String)childMap.get("mansion_id");
						}
						else if(JCHWebCommon.isNotNullOrEmpty((String)childMap.get("cat_id")))
						{
							mansionId = (String)childMap.get("cat_id");
						}
						else if(JCHWebCommon.isNotNullOrEmpty((String)childMap.get("msbsn_anken_knri_no")))
						{
							mansionId = (String)childMap.get("msbsn_anken_knri_no");
						}
						else if(JCHWebCommon.isNotNullOrEmpty((String)childMap.get("p_id")))
						{
							mansionId = (String)childMap.get("p_id");
						}
						// 請求内訳情報.ＩＤ番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.マンションID
						subbean.sendMessageString("ＩＤ番号", X31CWebConst.DATABEAN_SET_VALUE, mansionId);
					}

					// 請求内訳情報.整理番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.整理番号
					subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiri_no"));

					// 請求内訳情報.サービス契約番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.サービス契約番号
					subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));

					// 請求内訳情報.マンションＩＤ ← 請求内訳一覧照会マップ.請求内訳一覧明細.マンションＩＤ
					subbean.sendMessageString("マンションＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("mansion_id"));

					// 請求内訳情報.回線場所住所補記＿部屋番号 ← 請求内訳一覧照会マップ.請求内訳一覧明細.回線場所住所補記＿部屋番号
					subbean.sendMessageString("回線場所住所補記＿部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrrm"));

					// 請求内訳情報.料金グループコード ← 請求内訳一覧照会マップ.請求内訳一覧明細.料金グループコード
					subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd"));

					// 請求内訳情報.料金コースコード ← 請求内訳一覧照会マップ.請求内訳一覧明細.料金コースコード
					subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));

					// 請求内訳情報.料金サービスコード ← 請求内訳一覧照会マップ.請求内訳一覧明細.料金サービスコード
					subbean.sendMessageString("料金サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_svc_cd"));

					// 請求内訳情報.料金項目コード ← 請求内訳一覧照会マップ.請求内訳一覧明細.料金項目コード
					subbean.sendMessageString("料金項目コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_cd"));

					// 請求内訳情報.利用開始日 ← 請求内訳一覧照会マップ.請求内訳一覧明細.利用開始年月日
					subbean.sendMessageString("利用開始日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_staymd"));
					subbean.sendMessageString("変更前利用開始日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_staymd"));

					// 請求内訳情報.利用終了日 ← 請求内訳一覧照会マップ.請求内訳一覧明細.利用終了年月日
					subbean.sendMessageString("利用終了日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_endymd"));
					subbean.sendMessageString("変更前利用終了日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_endymd"));

					// 請求内訳情報.調整フラグ ← 請求内訳一覧照会マップ.請求内訳一覧明細.調整フラグ
					subbean.sendMessageString("調整フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ajst_flg"));

					// 請求内訳情報.料金内訳 ← 請求内訳一覧照会マップ.請求内訳一覧明細.料金項目名称
					subbean.sendMessageString("料金内訳", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_kmk_nm"));

					// 請求内訳情報.税区分 ← 請求内訳一覧照会マップ.請求内訳一覧明細.税区分表示フラグ
					String taxDivNm = JCHDspEditUtil.getTaxDivDspNm((String)childMap.get("tax_div_dsp_flg"));
					subbean.sendMessageString("税区分", X31CWebConst.DATABEAN_SET_VALUE, taxDivNm);

					// 請求内訳情報.料金訂正可否 ← 請求内訳一覧照会マップ.請求内訳一覧明細.料金訂正可否
					subbean.sendMessageString("料金訂正可否", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_teise_kh"));

					// 請求内訳情報.行区分 ← 請求内訳一覧照会マップ.請求内訳一覧明細.行区分
					subbean.sendMessageString("行区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gyo_div"));

					// 請求内訳情報.利用期間表示制御フラグ ← 請求内訳一覧照会マップ.請求内訳一覧明細.利用期間表示制御フラグ
					subbean.sendMessageString("利用期間表示制御フラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_prd_dsp_ctrl_flg"));

					// 請求内訳情報.金額表示カラム数 ← 請求内訳一覧照会マップ.請求内訳一覧明細.金額表示カラム数
					String amntDspColumCnt = (String)childMap.get("amnt_dsp_colum_cnt");
					subbean.sendMessageString("金額表示カラム数", X31CWebConst.DATABEAN_SET_VALUE, amntDspColumCnt);

					// 金額表示カラム数が"0"以外の場合、調整前金額に金額を設定
					if (!JACStrConst.AMNT_DSP_COLUM_CNT_ZERO.equals(amntDspColumCnt) || JCHWebCommon.isSuryouOnry(bean[0], keyPrcKmkCd))
					{
						// 請求内訳情報.調整前金額 ← 請求内訳一覧照会マップ.請求内訳一覧明細.金額
						subbean.sendMessageString("調整前金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("amnt"));
					}

					// 請求内訳情報.訂正ボタン表示区分 ← 請求内訳一覧照会マップ.請求内訳一覧明細.訂正ボタン表示制御フラグ
					subbean.sendMessageString("訂正ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("teisei_btn_dsp_ctrl_flg"));

					// 削除取消ボタン表示区分
					String dspDelClKbn = JACStrConst.DEL_CL_DSP_KBN_HIDSP;
					if (JACStrConst.PRC_TEISEI_KH_PSB.equals((String)childMap.get("prc_teise_kh")))
					{
						dspDelClKbn = JACStrConst.DEL_CL_DSP_KBN_DEL;
					}
					subbean.sendMessageString("削除取消ボタン表示区分", X31CWebConst.DATABEAN_SET_VALUE, dspDelClKbn);

					String delBtnNonDspCtrl = "0";
					String amntPrtCtrl = "0";
					String amntNonDspCtrl = "0";

					String key = (String)childMap.get("prc_grp_cd") + (String)childMap.get("pcrs_cd") + (String)childMap.get("prc_svc_cd");
					if (JCHWebCommon.isFtth(bean, key))
					{
						if (JCHWebCommon.isSuryouOnry(bean[0], keyPrcKmkCd))
						{
							delBtnNonDspCtrl = "1";
							amntNonDspCtrl = "1";
						}

						if (JCHWebCommon.hasSuryou(bean[0], keyPrcKmkCd))
						{
							amntPrtCtrl = "1";
						}
					}
					subbean.sendMessageString("削除ボタン非表示制御",  X31CWebConst.DATABEAN_SET_VALUE, delBtnNonDspCtrl);	// 0:表示   1:非表示
					subbean.sendMessageString("金額非活性制御",  X31CWebConst.DATABEAN_SET_VALUE, amntPrtCtrl);				// 0:活性   1:非活性
					subbean.sendMessageString("金額非表示制御",  X31CWebConst.DATABEAN_SET_VALUE, amntNonDspCtrl);			// 0:表示   1:非表示

					// 請求内訳情報.合算請求年月 ← 請求内訳一覧照会マップ.請求内訳一覧明細.合算請求年月
					subbean.sendMessageString("合算請求年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("gsan_seiky_ym"));

					// 請求内訳情報.サービス詳細識別番号 ← サービス詳細識別番号
					String svcDtlSkbtNo = (String)childMap.get("svc_dtl_skbt_no");
					subbean.sendMessageString("サービス詳細識別番号", X31CWebConst.DATABEAN_SET_VALUE, svcDtlSkbtNo);

					// サービス詳細識別番号がnullまたは空でない場合
					if (!JCRUtilCommon.isNull(svcDtlSkbtNo))
					{
						// 電話番号である場合
						if (dtlReqMap.containsKey(prcKmkCd) || dtlReqDplMap.containsKey(prcKmkCd))
						{
							// "2"をセット
							subbean.sendMessageString("サービス詳細識別番号区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.SVC_DTL_SKBT_KBN_TEL);

							// 重複しない場合
							if (!svcDtlSkbtNoMap.containsKey(svcDtlSkbtNo))
							{
								// サービス詳細識別番号（電話番号）退避用リストに退避
								workTelNoList.add(svcDtlSkbtNo);

								// サービス詳細識別番号格納用マップにセット（重複を省く）
								svcDtlSkbtNoMap.put(svcDtlSkbtNo, null);
							}
						}

						// タブレットである場合
						if (tabDtlReqMap.containsKey(prcKmkCd))
						{
							// "1"をセット
							subbean.sendMessageString("サービス詳細識別番号区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.SVC_DTL_SKBT_KBN_TABLET);
						}
						//v16.00.00 2015/07/07 Add Start			
						// ｅｏ電気である場合
						if (electDtlReqMap.containsKey(prcKmkCd))
						{
							// "3"をセット
							subbean.sendMessageString("サービス詳細識別番号区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.SVC_DTL_SKBT_KBN_ELECT);
						}
						//v16.00.00 2015/07/07 Add End
						//v36.00.00 ANK-3296-00-00 Add Start
						// 工事費割賦である場合
						if (kojikapDtlReqMap.containsKey(prcKmkCd))
						{
							// "4"をセット
							subbean.sendMessageString("サービス詳細識別番号区分", X31CWebConst.DATABEAN_SET_VALUE, JACStrConst.SVC_DTL_SKBT_KBN_KOJIKAP);
						}
						//v36.00.00 ANK-3296-00-00 Add End
						
					}

					// 請求内訳情報.請求内訳番号 ← 請求内訳番号
					subbean.sendMessageString("請求内訳番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_ucwk_no"));
					
					
			    	// ANK-4323-00-00 ADD START
					// 料金グループコード
					String prcRrpCd = JKKStringUtil.nullToBlank((String)childMap.get("prc_grp_cd"));
					// 利用終了年月日
					String useEndYmd = JKKStringUtil.nullToBlank((String)childMap.get("use_endymd"));
					// 請求年月
					String seikyYm = JKKStringUtil.nullToBlank((String)childMap.get("seiky_ym"));
					
					String useEndYm = "";
					
					if (useEndYmd != null && useEndYmd.length() == 8 && seikyYm != null && seikyYm.length() == 6)
					{
						// 利用終了年月日を利用終了年月に変更
						useEndYm = useEndYmd.substring(0,6);

//						請求内訳．料金グループコード　＝　"51"(ｍｉｎｅｏ)  かつ　請求内訳．利用終了年月日の年月　＜　請求内訳．請求年月
						if ((JKKStrConst.CD00133_51.equals(prcRrpCd) && useEndYm.compareTo(seikyYm) < 0))
						{
							subbean.sendMessageString("利用日非表示制御", X31CWebConst.DATABEAN_SET_VALUE, "1");
						}
					}
			    	// ANK-4323-00-00 ADD END
				}

				// 請求内訳明細キーマップ
				if (JCHWebCommon.isNotNullOrEmpty((String)childMap.get("svc_kei_no")) && add1List)
				{
					HashMap<String, String> key = new HashMap<String, String>();
					key.put(CHW00301SFConst.KEY_PRC_GRP_CD_03, (String)childMap.get("prc_grp_cd"));
					key.put(CHW00301SFConst.KEY_PCRS_CD_03, (String)childMap.get("pcrs_cd"));
					key.put(CHW00301SFConst.KEY_PRC_SVC_CD_03, (String)childMap.get("prc_svc_cd"));
					key.put(CHW00301SFConst.KEY_PRC_KMK_CD_03, (String)childMap.get("prc_kmk_cd"));

					keyMap.put(key, i);
				}
			}

			// サービス詳細識別番号（電話番号）退避用リストがある場合、サービス詳細識別番号情報に追加する。
			if (!workTelNoList.isEmpty())
			{
				// サービス詳細識別番号（電話番号）退避用リストを昇順ソート
				Collections.sort(workTelNoList);

				// 退避した電話番号を追加
				for (int i = 0; i < workTelNoList.size(); i++)
				{
					// サービス詳細識別番号情報.サービス詳細識別番号リスト ← サービス詳細識別番号入力
					svcDtlSkbtNoSubbean.sendMessageString(CHW00301SFConst.SVC_DTL_SKBT_NO_LIST_15, X31CWebConst.DATABEAN_ADD_VALUE, workTelNoList.get(i));

					// サービス詳細識別番号情報.サービス詳細識別番号区分リスト ← "2"
					svcDtlSkbtNoSubbean.sendMessageString(CHW00301SFConst.SVC_DTL_SKBT_NO_KBN_LIST_15, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.SVC_DTL_SKBT_KBN_TEL);
				}
			}

		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 * @param listName
	 * @param itemId
	 */
	@SuppressWarnings("unchecked")
	private String getPrcKmkCd(HashMap<String, Object> map, String listName, String itemId){

		ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)map.get(listName);
		String ret = "";

		if (childList != null)
		{
			// 料金項目抽出変換一覧照会明細の1件目のみ取得する
			for (int i = 0; i < childList.size(); i++) 
			{
				HashMap<String, Object> childMap = (HashMap<String, Object>)childList.get(i);

				String prcKmkCd = (String)childMap.get(itemId);
				ret = prcKmkCd.substring(1, 11);

				break;
			}
		}

		return ret;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：料金変更
	 * @param map
	 * @param listName
	 */
	@SuppressWarnings("unchecked")
	private void setFtthInfo(X31SDataBeanAccess[] bean, HashMap<String, Object> map, String listName)
	{
		ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)map.get(listName);

		X31SDataBeanAccessArray ftthInfo = bean[0].getDataBeanArray(CHW00301SFConst.FTTH_INFO);
		ftthInfo.clearArray();

		String trgPrcKmkCd = bean[0].sendMessageString(CHW00301SFConst.PRC_KMK_CD_TSUSIN_GAKU,  X31CWebConst.DATABEAN_GET_VALUE);

		if (childList != null)
		{
			for (int i = 0; i < childList.size(); i++) 
			{
				HashMap<String, Object> childMap = (HashMap<String, Object>)childList.get(i);
				String prcKmkCd = (String)childMap.get("prc_kmk_cd");

				if (prcKmkCd.substring(1, 11).equals(trgPrcKmkCd))
				{
					X31SDataBeanAccess subbean = null;

					String prcGrpCd = (String)childMap.get(PRC_GRP_CD) ;
					String pcrsCd = (String)childMap.get(PCRS_CD);
					String prcSvcCd = (String)childMap.get(PRC_SVC_CD);

					String gamenKidoKey = prcGrpCd + pcrsCd + prcSvcCd + prcKmkCd.substring(1, 11);
					String inputCtrlKey = prcGrpCd + pcrsCd + prcSvcCd ;

					subbean = ftthInfo.addDataBean();
					subbean.sendMessageString(CHW00301SFConst.GAMEN_KIDO_KEY_14, X31CWebConst.DATABEAN_SET_VALUE, gamenKidoKey);
					subbean.sendMessageString(CHW00301SFConst.INPUT_CTRL_KEY_14, X31CWebConst.DATABEAN_SET_VALUE, inputCtrlKey);
				}
			}
		}
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：料金変更
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCHSV001910SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("CHSV001910SC"))
		{
			parentMap = (HashMap)outputMap.get("CHSV001910SC");
		}

		X31SDataBeanAccessArray listCHSV001910SC_kakin_owner_info_EKK0321B506CBSMsg1List = bean[0].getDataBeanArray(CHW00301SFConst.KAKIN_OWNER_INFO);
		// クリア
		listCHSV001910SC_kakin_owner_info_EKK0321B506CBSMsg1List.clearArray();
		
		ArrayList childList = (ArrayList)parentMap.get("EKK0321B506CBSMsg1List");

		for (int i = 0; i < childList.size(); i++)
		{
			X31SDataBeanAccess subbean = null;

			if (listCHSV001910SC_kakin_owner_info_EKK0321B506CBSMsg1List.getCount() - 1 >= i)
			{
				subbean = listCHSV001910SC_kakin_owner_info_EKK0321B506CBSMsg1List.getDataBean(i);
			}
			else
			{
				subbean = listCHSV001910SC_kakin_owner_info_EKK0321B506CBSMsg1List.addDataBean();
			}
			
			HashMap childMap = (HashMap)childList.get(i);
			
			if (childMap == null)
			{
				continue;
			}
			
			// 課金先一覧照会（オーナー情報）照会マップ.サービス契約番号
			subbean.sendMessageString(CHW00301SFConst.SVC_KEI_NO_13, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
		}

		return bean;
	}

}