/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：ACSV0024_ACSV0024OPDBMapper
 *	ソースファイル名：ACSV0024_ACSV0024OPDBMapper.java
 *	作成者			：富士通
 *	日付			：2012年02月07日
 *＜機能概要＞
 *	BP（料金内訳情報取得）へのＤ−Ｂマッピングクラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v1.00.00	2012/02/07	富士通		新規作成
 *	v5.00.00	2013/07/24	FJ)文元    【LT-2013-0000229】料金内訳ComboBoxでの重複行2行目以降を表示しないよう対応
 *  v5.00.01    2013/07/27  FJ)米谷    【IT1-2013-0001465】一時金一覧画面でお客様ID選択時は初期表示時に選択状態となるように対応
 *  v8.00.00	2013/12/25  FJ)江森    【ANK-1584-00-00】一時金スキーマに項目「サービス詳細契約番号」追加対応
 *	v9.00.00	2014/04/16	FJ)小野    【ANK-2054-00-00】eoスマートリンク改修(端末補償)。
 *  v16.00.00	2015/06/26	FJ)西面    【ANK-2054-00-00】新電力対応
 *  v41.00.00	2019/03/19  FJ) 大崎   【IT1-2019-0000043】卸２社目の考慮漏れ対応
 **********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
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.constant.JZM0171Constant;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.ACW00102SF.ACW00102SFConst;
import eo.web.webview.common.JCHDspEditUtil;
import eo.web.webview.common.JCHPulldownUtil;
import eo.web.webview.common.JCHWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class ACSV0024_ACSV0024OPDBMapper
{

	/**
	 * コンストラクタ
	 */
	public ACSV0024_ACSV0024OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setACSV002401SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String init_kbn)
	{

		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);

		// サービス契約番号
		String svcKeiNo = "";
		if("1".equals(init_kbn)) {
			// 初期表示時は一時金一覧画面で選択された値を取得
			svcKeiNo = bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		} else {
			// 初期表示以外は当画面のお客様IDプルダウンの選択値を設定を取得
			svcKeiNo = JCHPulldownUtil.getSelectedValue(bean, ACW00102SFConst.SVC_KEI_NO_INFO, ACW00102SFConst.SVC_KEI_NO_LIST_01, ACW00102SFConst.SVC_KEI_NO_SEL_01);
		}
		
		// サービス契約番号 → 料金コース一覧照会（サービス契約番号）マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", svcKeiNo);

		outputMap.put("ACSV002401SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setACSV002402SC(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_svc_cd", bean[0].sendMessageString(ACW00102SFConst.SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 料金グループコード → キャンペーン情報一覧照会マップ.ＫＥＹ＿料金グループコード
		parentMap.put("key_prc_grp_cd", bean[0].sendMessageString(ACW00102SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 料金コースコード（複数） → キャンペーン情報一覧照会マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", bean[0].sendMessageString(ACW00102SFConst.PCRS_CD_PLU, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 料金プランコード（複数） → キャンペーン情報一覧照会マップ.ＫＥＹ＿料金プランコード
		parentMap.put("key_pplan_cd", bean[0].sendMessageString(ACW00102SFConst.PPLAN_CD_PLU, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("ACSV002402SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setACSV002403SC(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_sys_cd", JACStrConst.SYS_CD_AC);

		// 業務機能識別コード → 料金項目一覧取得マップ.ＫＥＹ＿業務機能識別コード
		parentMap.put("key_work_kino_skbt_cd", JACStrConst.WORK_KINO_SKBT_ICJKN_SCR);

		// 抽出変換コード → 料金項目一覧取得マップ.ＫＥＹ＿抽出変換コード
		parentMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_CST);

		// 料金グループコード → 料金項目一覧取得マップ.ＫＥＹ＿料金グループコード
		parentMap.put("key_prc_grp_cd", bean[0].sendMessageString(ACW00102SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 料金コースコード → 料金項目一覧取得マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", bean[0].sendMessageString(ACW00102SFConst.PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("ACSV002403SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param initKbn
	 */
	@SuppressWarnings("unchecked")
	public HashMap setACSV002404SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String init_kbn) {
		
		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("init_kbn", init_kbn);
		
		outputMap.put("ACSV002404SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 * @param initKbn
	 */
	@SuppressWarnings("unchecked")
	public HashMap setACSV002405SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String init_kbn) {
		
		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_cd_sbt_cd", JZM0171Constant.CD00972);
		
		
		// 初期表示区分のマッピング
		parentMap.put("init_kbn", init_kbn);

		outputMap.put("ACSV002405SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setGETPRCUCWKINFOCC(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_sys_cd", JACStrConst.SYS_CD_AC);

		// 抽出変換コード → 料金項目一覧取得マップ.ＫＥＹ＿抽出変換コード
		parentMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_CST);

		// 業務機能識別コード → 料金項目一覧取得マップ.ＫＥＹ＿業務機能識別コード
		parentMap.put("key_work_kino_skbt_cd", JACStrConst.WORK_KINO_SKBT_ICJKN_SCR);

		// サービスコード → 料金項目一覧取得マップ.ＫＥＹ＿サービスコード
		parentMap.put("key_svc_cd", bean[0].sendMessageString(ACW00102SFConst.SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 料金グループコード → 料金項目一覧取得マップ.ＫＥＹ＿料金グループコード
		parentMap.put("key_prc_grp_cd", bean[0].sendMessageString(ACW00102SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 料金コースコード → 料金項目一覧取得マップ.ＫＥＹ＿料金コースコード
		parentMap.put("key_pcrs_cd", bean[0].sendMessageString(ACW00102SFConst.PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 料金コースコード（複数） → 料金項目一覧取得マップ.ＫＥＹ＿料金コースコード（複数）
		parentMap.put("key_pcrs_cd_plu", bean[0].sendMessageString(ACW00102SFConst.PCRS_CD_PLU, X31CWebConst.DATABEAN_GET_VALUE));

		// 料金プランコード（複数） → 料金項目一覧取得マップ.ＫＥＹ＿料金プランコード（複数）
		parentMap.put("key_pplan_cd_plu", bean[0].sendMessageString(ACW00102SFConst.PPLAN_CD_PLU, X31CWebConst.DATABEAN_GET_VALUE));

		// キャンペーンプルダウンの選択値 → 料金項目一覧取得マップ.ＫＥＹ＿割引サービスコード
		parentMap.put("key_wrib_svc_cd", bean[0].sendMessageString(ACW00102SFConst.PRC_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("GETPRCUCWKINFOCC", 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);

		ArrayList<HashMap<String, Object>> prcKmkList = new ArrayList<HashMap<String, Object>>();

		// -------------------------------------------------- //
		// 1件目 料金項目コード（必須詳細料金項目）
		// -------------------------------------------------- //
		HashMap<String, Object> childMap = null;
		childMap = new HashMap();
		childMap.put("key_work_param_id", JACStrConst.WKPARA_AC_RE_DT_PRC);
		childMap.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		childMap.put("key_work_kino_skbt_cd", JACStrConst.RE_DT_PRC);
		childMap.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkList.add(childMap);

		// -------------------------------------------------- //
		// 2件目 料金項目コード（必須詳細料金項目（タブレット））
		// -------------------------------------------------- //
		HashMap<String, Object> childMap1 = new HashMap();
		childMap1.put("key_work_param_id", JACStrConst.WKPARA_AC_RE_DT_TAB_PRC);
		childMap1.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		childMap1.put("key_work_kino_skbt_cd", JACStrConst.REDTTTPRC);
		childMap1.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkList.add(childMap1);
		
//v16.00.00 2015/06/20 Add Start
		// -------------------------------------------------- //
		// 3件目 料金項目コード（必須詳細料金項目（eo電気））
		// -------------------------------------------------- //
		HashMap<String, Object> childMap2 = new HashMap();
		childMap1.put("key_work_param_id", JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC);
		childMap1.put("key_sys_cd", JACStrConst.SYS_CD_AC);
		childMap1.put("key_work_kino_skbt_cd", JACStrConst.ELEC_PRCK);
		childMap1.put("key_chsht_chg_cd", JACStrConst.CHSHT_CHG_CD_1);
		prcKmkList.add(childMap1);
//v16.00.00 2015/06/20 Add End

		parentMap.put("PRC_KMK_CS_CHGE_LIST", prcKmkList);

		outputMap.put("GETPRCKMKCSCHGELISTCC", parentMap);

		return outputMap;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getACSV002401SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("ACSV002401SC"))
		{
			parentMap = (HashMap)outputMap.get("ACSV002401SC");
		}

		ArrayList childList = null;

		if (parentMap != null && parentMap.containsKey("EKK0081B511CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0081B511CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					// サービスコード ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.サービスコード
					bean[0].sendMessageString(ACW00102SFConst.SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_cd"));
					// 料金グループコード ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金グループコード
					bean[0].sendMessageString(ACW00102SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd"));
					// 料金コースコード ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金コースコード
					bean[0].sendMessageString(ACW00102SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
					// 料金コースコード（複数） ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金コースコード（複数）
					bean[0].sendMessageString(ACW00102SFConst.PCRS_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd_plu"));
					// 料金プランコード（複数） ← 料金コース一覧照会（サービス契約番号）マップ.料金コース一覧照会明細.料金プランコード（複数）
					bean[0].sendMessageString(ACW00102SFConst.PPLAN_CD_PLU, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd_plu"));

					// 料金コース情報.料金コースコード名称表示用リスト ← 料金コースコード + ":" + 料金コースコード名称
					String pcrsCdNm = JCHDspEditUtil.pcrsNmEdit((String)childMap.get("pcrs_cd"), (String)childMap.get("pcrs_nm"));
					bean[0].sendMessageString(ACW00102SFConst.DSP_PCRS_NM, X31CWebConst.DATABEAN_SET_VALUE, pcrsCdNm);
				}
				else
				{
					bean[0].sendMessageString(ACW00102SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, new String());
					bean[0].sendMessageString(ACW00102SFConst.DSP_PCRS_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}
		else
		{
			bean[0].sendMessageString(ACW00102SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, new String());
			bean[0].sendMessageString(ACW00102SFConst.DSP_PCRS_NM, X31CWebConst.DATABEAN_SET_VALUE, new String());
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getACSV002402SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("ACSV002402SC"))
		{
			parentMap = (HashMap)outputMap.get("ACSV002402SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listCHSV002702SC_campaign_info_EKK0851B502CBSMsg1List = bean[0].getDataBeanArray("料金サービス情報");
		X31SDataBeanAccess subbean = listCHSV002702SC_campaign_info_EKK0851B502CBSMsg1List.getDataBean(0);

		// 料金サービスBeanの初期化
		subbean.sendMessage(ACW00102SFConst.PRC_SVC_CD_LIST_02, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(ACW00102SFConst.PRC_SVC_NM_LIST_02, X31CWebConst.DATABEAN_CLEAR);

		subbean.sendMessageString(ACW00102SFConst.PRC_SVC_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);
		subbean.sendMessageString(ACW00102SFConst.PRC_SVC_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);

		if (listCHSV002702SC_campaign_info_EKK0851B502CBSMsg1List != null && parentMap != null && parentMap.containsKey("EKK0851B502CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("EKK0851B502CBSMsg1List");

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				if (childMap != null)
				{
					// 割引サービスコード
					String wribSvcCd = (String)childMap.get("wrib_svc_cd");
					// 表示用キャンペーンコード
					String dspCampaignCd = (String)childMap.get("dsp_campaign_cd");

					if (!JCRUtilCommon.isNull(wribSvcCd) && !JCRUtilCommon.isNull(dspCampaignCd))
					{
						// キャンペーン情報.料金サービスコードリスト ← キャンペーン情報一覧照会マップ.割引サービス対象契約一覧照会明細.表示用キャンペーンコード
						subbean.sendMessageString(ACW00102SFConst.PRC_SVC_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, wribSvcCd);

						// キャンペーン情報.キャンペーンコード名称表示用リスト ← 表示用キャンペーンコード + ":" + 割引サービス名
						String prcSvcCdNm = JCHDspEditUtil.codeNameEdit(dspCampaignCd, (String)childMap.get("wrib_svc_cd_nm"));
						subbean.sendMessageString(ACW00102SFConst.PRC_SVC_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, prcSvcCdNm);
					}
				}
				else
				{
					subbean.sendMessageString(ACW00102SFConst.PRC_SVC_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, new String());
					subbean.sendMessageString(ACW00102SFConst.PRC_SVC_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, new String());
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getACSV002403SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if (outputMap.containsKey("ACSV002403SC"))
		{
			parentMap = (HashMap)outputMap.get("ACSV002403SC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listACSV000105SC_prc_kmk_info_ECH0401B010CBSMsg1List = bean[0].getDataBeanArray(ACW00102SFConst.PRC_KMK_INFO);
		X31SDataBeanAccess subbean = listACSV000105SC_prc_kmk_info_ECH0401B010CBSMsg1List.getDataBean(0);

		subbean.sendMessage(ACW00102SFConst.PRC_KMK_CD_LIST_03, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(ACW00102SFConst.PRC_GRP_CD_LIST_03, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(ACW00102SFConst.PRC_KMK_NM_LIST_03, X31CWebConst.DATABEAN_CLEAR);

		HashMap<String, String> chkMap = new HashMap<String, String>(); // 重複行チェック用リスト
		
		childList = null;
		if (parentMap.containsKey("ECH0401B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0401B010CBSMsg1List");

			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], ACW00102SFConst.DTL_REQUIRE_PRC_KMK_CD_INFO, ACW00102SFConst.DTL_REQUIRE_PRC_KMK_CD_05);

			// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
			HashMap<String, String> tabDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], ACW00102SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, ACW00102SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_06);
//v16.00.00 2015/06/20 Add Start
			// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
			HashMap<String, String> electDtlReqMap =
			JCHWebCommon.getPrcKmkCdMap(bean[0], ACW00102SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_INFO, ACW00102SFConst.ELECT_DTL_REQUIRE_PRC_KMK_CD_07);
//v16.00.00 2015/06/20 Add End
		
			
// IT1-2019-0000043 ADD START
			String orsjgsCd ="";
			HashMap orsMap2 = null;
			if(outputMap.containsKey("SEIKYSAKIINFOSTKUCC"))
			{
				orsMap2 = (HashMap)outputMap.get("SEIKYSAKIINFOSTKUCC");
			}

			if(orsMap2 != null)
			{
				String seikyKeiStatNm = (String)orsMap2.get("seiky_kei_stat_nm");
				if (seikyKeiStatNm != null && !JACStrConst.KARA_MOJI.equals(seikyKeiStatNm))
				{
					orsjgsCd = (String)orsMap2.get("orsjgs_cd");	// 請求先情報取得マップ.お客様一意照会明細.卸先事業者コード
				}
			}

// IT1-2019-0000043 ADD END

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				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"); // 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金項目コード名称

// IT1-2019-0000043 ADD START
				String pcrsCd = (String)childMap.get("pcrs_cd"); 	// 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金コースコード
				// 卸に関連する項目の場合
				if(JKKStrConst.CD00134_A88.equals(pcrsCd))
				{
					// 卸事業者コードが取得できていない場合は従来の動き
					if(!"".equals(orsjgsCd))
					{
						// 料金コースコード＋卸先事業者コード
						String trgtStr = pcrsCd + orsjgsCd;

						// 切取り開始位置（文字列の後ろから５バイト）
						int strat = prcSvcCd.trim().length() - 5;
						String compStr = prcSvcCd.trim().substring(strat);

						// 卸１ギガコースに紐付く料金サービスコードで卸先事業者コードが異なる場合
						if(JKKStrConst.CD00134_A88.equals(compStr.substring(0, 3)) && !trgtStr.equals(compStr))
						{
							// 卸事業者コードに対する料金サービスコードが不一致のため読み飛ばし
							continue;
						}
					}
				}
// IT1-2019-0000043 ADD END
				// 重複チェック
				String chkValue = prcKmkCd + prcKmkNm;
				if (chkMap.containsKey(chkValue))
				{
					// チェックマップに「料金項目コード＋料金項目コード名称」が既に存在する場合、読み飛ばし
					continue;
				}
				// 保持
				chkMap.put(chkValue, chkValue);
				
				// 料金項目情報.料金項目コードリスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金項目コード
				subbean.sendMessageString(ACW00102SFConst.PRC_KMK_CD_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCd);

				// 料金項目情報.料金項目名称リスト ← 料金項目コード + 料金サービスコード + ":" + 料金項目コード名称
				String prcKmkCdNm = JCHDspEditUtil.prcKmkNmEdit(prcKmkCd, prcKmkNm, prcSvcCd, false);
				subbean.sendMessageString(ACW00102SFConst.PRC_KMK_NM_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCdNm);

				// 料金項目情報.料金グループコード変換リスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金グループコード
				subbean.sendMessageString(ACW00102SFConst.PRC_GRP_CD_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc_grp_cd"));

				// 料金項目情報.料金項目コード変換リスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金サービスコード
				subbean.sendMessageString(ACW00102SFConst.PRC_SVC_CD_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, prcSvcCd);

				// 料金項目情報.詳細必須料金項目フラグリストを設定
				String dtlReqFlg = "0";
				if (dtlReqMap.containsKey(prcKmkCd))
				{
					dtlReqFlg = "1";
				}
				subbean.sendMessageString(ACW00102SFConst.DTL_REQUIRE_FLG_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, dtlReqFlg);

				// 料金項目情報.詳細必須料金項目フラグリスト（タブレット）を設定
				String tabDtlReqFlg = "0";
				if (tabDtlReqMap.containsKey(prcKmkCd))
				{
					tabDtlReqFlg = "1";
				}
				subbean.sendMessageString(ACW00102SFConst.TAB_DTL_REQUIRE_FLG_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, tabDtlReqFlg);

//v16.00.00 2015/06/20 Add Start
				// 料金項目情報.詳細必須料金項目フラグリスト（タブレット）を設定
				String electDtlReqFlg = "0";
				if (electDtlReqMap.containsKey(prcKmkCd))
				{
					electDtlReqFlg = "1";
				}
				subbean.sendMessageString(ACW00102SFConst.ELECT_DTL_REQUIRE_FLG_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, electDtlReqFlg);
//v16.00.00 2015/06/20 Add End
				
				// 料金項目コードリストの1件目の場合、初期値を設定する
				if (i == 0)
				{
					bean[0].sendMessageString(ACW00102SFConst.PRC_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd);
					bean[0].sendMessageString(ACW00102SFConst.DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, dtlReqFlg);
					bean[0].sendMessageString(ACW00102SFConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, tabDtlReqFlg);
//v16.00.00 2015/06/20 Add Start
					bean[0].sendMessageString(ACW00102SFConst.ELECT_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, electDtlReqFlg);
//v16.00.00 2015/06/20 Add End
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getACSV002404SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("ACSV002404SC")){
			parentMap = (HashMap)outputMap.get("ACSV002404SC");
		}

		ArrayList childList = null;
		

		X31SDataBeanAccessArray listACSV002404SC_svc_kei_no_info_EKK0321B011CBSMsg1List = bean[0].getDataBeanArray(ACW00102SFConst.SVC_KEI_NO_INFO);
		X31SDataBeanAccess subbean = listACSV002404SC_svc_kei_no_info_EKK0321B011CBSMsg1List.getDataBean(0);

		subbean.sendMessage(ACW00102SFConst.SVC_KEI_NO_LIST_01, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessageString(ACW00102SFConst.SVC_KEI_NO_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, JACStrConst.KARA_MOJI);

		childList = null;
		if(parentMap.containsKey("EKK0321B011CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0321B011CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);

				// サービス契約番号情報.サービス契約番号リスト ← サービス契約番号一覧照会マップ.サービス契約番号一覧照会明細.サービス契約番号
				subbean.sendMessageString(ACW00102SFConst.SVC_KEI_NO_LIST_01, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("svc_kei_no"));
			}
		}
		
		// 一時金一覧照会画面で選択したサービス契約番号
		String svcKeiNo = bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		String sbtSelIndex = JCHPulldownUtil.countSelIndex(subbean, ACW00102SFConst.SVC_KEI_NO_LIST_01, svcKeiNo);
		subbean.sendMessageString(ACW00102SFConst.SVC_KEI_NO_SEL_01, X31CWebConst.DATABEAN_SET_VALUE, sbtSelIndex);
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getACSV002405SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("ACSV002405SC")){
			parentMap = (HashMap)outputMap.get("ACSV002405SC");
		}

		ArrayList childList = null;
		
		X31SDataBeanAccessArray listACSV002405SC_tonyu_div_info_EZM0171B012CBSMsg1List = bean[0].getDataBeanArray(ACW00102SFConst.TONYU_DIV_INFO);
		X31SDataBeanAccess subbean = listACSV002405SC_tonyu_div_info_EZM0171B012CBSMsg1List.getDataBean(0);

		subbean.sendMessage(ACW00102SFConst.TONYU_DIV_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(ACW00102SFConst.TONYU_DIV_NM_LIST_04, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(ACW00102SFConst.TONYU_DIV_SHK_DSP_CD_LIST_04, X31CWebConst.DATABEAN_CLEAR);

		childList = null;
		if(parentMap.containsKey("EZM0171B012CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EZM0171B012CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);

				// 投入区分情報.投入区分コードリスト ← 投入区分一覧取得マップ.コード名称管理コード区分一覧照会明細.コード区分
				subbean.sendMessageString(ACW00102SFConst.TONYU_DIV_CD_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("cd_div"));

				// 投入区分情報.投入区分名称リスト ← 投入区分一覧取得マップ.コード名称管理コード区分一覧照会明細.コード区分名
				String tonyuDivNm = JCHDspEditUtil.codeNameEdit((String)childMap.get("cd_div"), (String)childMap.get("cd_div_nm"));
				subbean.sendMessageString(ACW00102SFConst.TONYU_DIV_NM_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, tonyuDivNm);

				// 投入区分情報.投入区分初期表示コードリスト ← 投入区分一覧取得マップ.コード名称管理コード区分一覧照会明細.初期表示コード
				subbean.sendMessageString(ACW00102SFConst.TONYU_DIV_SHK_DSP_CD_LIST_04, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("shk_dsp_cd"));
			}
		}
		return bean;
	}
	
	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getGETPRCUCWKINFOCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{

		HashMap parentMap = null;
		if (outputMap.containsKey("GETPRCUCWKINFOCC"))
		{
			parentMap = (HashMap)outputMap.get("GETPRCUCWKINFOCC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray listGETPRCUCWKINFOCC_prc_uwk_info_ECH0401B010CBSMsg1List = bean[0].getDataBeanArray(ACW00102SFConst.PRC_KMK_INFO);
		X31SDataBeanAccess subbean = listGETPRCUCWKINFOCC_prc_uwk_info_ECH0401B010CBSMsg1List.getDataBean(0);

		subbean.sendMessage(ACW00102SFConst.PRC_KMK_CD_LIST_03, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(ACW00102SFConst.PRC_GRP_CD_LIST_03, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(ACW00102SFConst.PRC_KMK_NM_LIST_03, X31CWebConst.DATABEAN_CLEAR);

		HashMap<String, String> chkMap = new HashMap<String, String>(); // 重複行チェック用リスト
		
		childList = null;
		if (parentMap.containsKey("ECH0401B010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECH0401B010CBSMsg1List");

			// 詳細必須料金項目情報の料金項目コード群を取得
			HashMap<String, String> dtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], ACW00102SFConst.DTL_REQUIRE_PRC_KMK_CD_INFO, ACW00102SFConst.DTL_REQUIRE_PRC_KMK_CD_05);

			// 詳細必須料金項目情報（タブレット）の料金項目コード群を取得
			HashMap<String, String> tabDtlReqMap =
				JCHWebCommon.getPrcKmkCdMap(bean[0], ACW00102SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_INFO, ACW00102SFConst.TAB_DTL_REQUIRE_PRC_KMK_CD_06);

			for (int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);

				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(ACW00102SFConst.PRC_KMK_CD_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCd);

				// 料金項目情報.料金項目名称リスト ← 料金項目コード + 料金サービスコード + ":" + 料金項目コード名称
				String prcKmkCdNm = JCHDspEditUtil.prcKmkNmEdit(prcKmkCd, prcKmkNm, prcSvcCd, true);
				subbean.sendMessageString(ACW00102SFConst.PRC_KMK_NM_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, prcKmkCdNm);

				// 料金項目情報.料金グループコード変換リスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金グループコード
				subbean.sendMessageString(ACW00102SFConst.PRC_GRP_CD_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("prc_grp_cd"));

				// 料金項目情報.料金項目コード変換リスト ← 料金項目一覧取得マップ.料金項目抽出変換一覧照会明細.料金サービスコード
				subbean.sendMessageString(ACW00102SFConst.PRC_SVC_CD_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, prcSvcCd);

				// 料金項目情報.詳細必須料金項目フラグリストを設定
				String dtlReqFlg = "0";
				if (dtlReqMap.containsKey(prcKmkCd))
				{
					dtlReqFlg = "1";
				}
				subbean.sendMessageString(ACW00102SFConst.DTL_REQUIRE_FLG_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, dtlReqFlg);

				// 料金項目情報.詳細必須料金項目フラグリスト（タブレット）を設定
				String tabDtlReqFlg = "0";
				if (tabDtlReqMap.containsKey(prcKmkCd))
				{
					tabDtlReqFlg = "1";
				}
				subbean.sendMessageString(ACW00102SFConst.TAB_DTL_REQUIRE_FLG_LIST_03, X31CWebConst.DATABEAN_ADD_VALUE, tabDtlReqFlg);

				// 料金項目コードリストの1件目の場合、初期値を設定する
				if (i == 0)
				{
					bean[0].sendMessageString(ACW00102SFConst.PRC_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, prcKmkCd);
					bean[0].sendMessageString(ACW00102SFConst.DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, dtlReqFlg);
					bean[0].sendMessageString(ACW00102SFConst.TAB_DTL_REQUIRE_FLG, X31CWebConst.DATABEAN_SET_VALUE, tabDtlReqFlg);
				}
			}
		}

		return bean;
	}

	/**
	 * 下りマッピング
	 * 
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getGETPRCKMKCSCHGELISTCC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		HashMap parentMap = null;
		if(outputMap.containsKey(JACStrConst.PRC_KMK_CS_CHGE_LIST_CC)){
			parentMap = (HashMap)outputMap.get(JACStrConst.PRC_KMK_CS_CHGE_LIST_CC);
		}

		if(parentMap != null && parentMap.containsKey(JACStrConst.PRC_KMK_CS_CHGE_LIST)){

			ArrayList<HashMap<String, Object>> mainList = (ArrayList)parentMap.get(JACStrConst.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.WKPARA_AC_RE_DT_PRC))
			{
				HashMap<String, Object> map1 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map1.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_TAB_PRC))
			{
				HashMap<String, Object> map2 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_TAB_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map2.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray tab_dtl_req__prc_kmk_cd_list = bean[0].getDataBeanArray("詳細必須料金項目情報（タブレット）");
				tab_dtl_req__prc_kmk_cd_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (tab_dtl_req__prc_kmk_cd_list.getCount() - 1 >= i)
					{
						subbean = tab_dtl_req__prc_kmk_cd_list.getDataBean(i);
					}
					else
					{
						subbean = tab_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"));
				}

			}
//v16.00.00 2015/06/20 Add Start
			// 料金項目コード（必須詳細料金項目（eo電気））
			if (prcMap.containsKey(JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC))
			{
				HashMap<String, Object> map2 = (HashMap<String, Object>)prcMap.get(JACStrConst.WKPARA_AC_RE_DT_ELEC_PRC);

				List<HashMap<String, Object>> childList = (List<HashMap<String, Object>>) map2.get("ECH0401B010CBSMsg1List");

				X31SDataBeanAccessArray elect_dtl_req__prc_kmk_cd_list = bean[0].getDataBeanArray("詳細必須料金項目情報（ｅｏ電気）");
				elect_dtl_req__prc_kmk_cd_list.clearArray();

				for (int i = 0; i < childList.size(); i++)
				{
					X31SDataBeanAccess subbean = null;
					if (elect_dtl_req__prc_kmk_cd_list.getCount() - 1 >= i)
					{
						subbean = elect_dtl_req__prc_kmk_cd_list.getDataBean(i);
					}
					else
					{
						subbean = elect_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"));
				}

			}
//v16.00.00 2015/06/20 Add End

		}
		return bean;
	}
//v16.00.00 2015/06/18 Add Start
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setACSV002406SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code,String init_kbn) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		//サービス契約マップ
		HashMap<String,Object>  svcKeiListMap= new HashMap<String,Object>();
		
		//サービス契約マップ
		HashMap<String, Object> svcKeiMap = new HashMap<String, Object>();
		
		//サービス契約リスト
		ArrayList svcKeiList = new ArrayList();
		

		// 共通情報のマッピング
		svcKeiListMap.put("func_code", func_code);

		// 請求契約番号 → eo電気契約一意照会マップ.ＫＥＹ＿機能コード
		svcKeiMap.put("key_func_code", func_code);
		
		// サービス契約番号
		String svcKeiNo = "";
		if("1".equals(init_kbn)) {
			// 初期表示時は一時金一覧画面で選択された値を取得
			svcKeiNo = bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		} else {
			// 初期表示以外は当画面のお客様IDプルダウンの選択値を設定を取得
			svcKeiNo = JCHPulldownUtil.getSelectedValue(bean, ACW00102SFConst.SVC_KEI_NO_INFO, ACW00102SFConst.SVC_KEI_NO_LIST_01, ACW00102SFConst.SVC_KEI_NO_SEL_01);
		}
		
		// サービス契約番号 → eo電気契約一意照会マップ.ＫＥＹ＿サービス契約番号
		svcKeiMap.put("key_svc_kei_no", svcKeiNo);
		
		//サービス契約リストに追加、配列に対応しているためリストにつめる
		svcKeiList.add(svcKeiMap);
		
		//リストをマップにつめる
		svcKeiListMap.put("EKKA0040001CBSMsg1List", svcKeiList);
		

		outputMap.put("ACSV002406SC", svcKeiListMap);
						
		return outputMap;
	}
	
	/**
	 * 下りマッピング
	 * @param bean　[0]：一時金登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getACSV002406SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("ACSV002406SC")){
			parentMap = (HashMap)outputMap.get("ACSV002406SC");
		}

		ArrayList childList = null;
		
		childList = null;
		if(parentMap != null && parentMap.containsKey("EKKA0040001CBSMsg2List")){
			childList = (ArrayList)parentMap.get("EKKA0040001CBSMsg2List");
			
			for(int i = 0; i < childList.size(); i++){
				HashMap childMap = (HashMap)childList.get(i);
			
				// サービス詳細識別番号 ← eo電気契約一意照会マップ.eo電気契約一意照会明細.供給地点特定番号
				if (childMap != null) {
					bean[0].sendMessageString(ACW00102SFConst.SVC_DTL_SKBT_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kykychtn_tkt_no"));
				} else {
					bean[0].sendMessageString(ACW00102SFConst.SVC_DTL_SKBT_NO, X31CWebConst.DATABEAN_SET_VALUE, new String());
				}
			}
		}


		return bean;
	}
//v16.00.00 2015/06/18 Add End
}