/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKPrcSimulationCCMapper
*   ソースファイル名：JKKPrcSimulationCCMapper.java
*   作成者          ：富士通
*   日付            ：2012年04月05日
*＜機能概要＞
*   料金シミュレーションCC
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v3.00.00    2012/04/05   FJ）中谷    新規作成
*   v4.00.00    2013/04/11   FJ          割引除去対応
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.KKSV0313_KKSV0313OP_KKSV031368SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_KKSV055301SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_KKSV055302SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_KKSV055303SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_KKSV055304SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_KKSV055305SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_KKSV055306SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_KKSV055307SC;
import com.fujitsu.futurity.bp.custom.constant.KKSV0553_KKSV0553OP_WORK;
import com.fujitsu.futurity.bp.custom.mapping.KKSV0553_KKSV0553OP_EKK0711B001BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.KKSV0553_KKSV0553OP_EKK0841A010BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.KKSV0553_KKSV0553OP_EKK0841B003BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.KKSV0553_KKSV0553OP_EKK0851B001BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.KKSV0553_KKSV0553OP_EKK2311B002BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.KKSV0553_KKSV0553OP_EKK2381B001BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.KKSV0553_KKSV0553OP_EZM0321A010BSMapper;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;

/**
 * 料金シミュレーションＣＣ_CC-SCマッピングクラス
 * 
 * @author 富士通
 *
 */
public class JKKPrcSimulationCCMapper
{
	/* ----------------------------------------
	 * フィールド変数
	 * ---------------------------------------- */
	/** セッションハンドル */
	private SessionHandle cmnHandle = null;
	/** 業務データ取得用I/F */
	private IRequestParameterReadWrite cmnParam = null;
	
	/** オンライン運用日付 */
	private String opeDate = null;
	
	/** CCマップ名 */
	private String ccMapNm = null;
	
	/* ----------------------------------------
	 * 料金シミュレーションＣＣ独自定数
	 * ---------------------------------------- */
	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	
	/** 最大検索数（デフォルト値） */
	private static final String MAX_SEARCH_NUM_DEFAULT = "500";
	
	/**
	 * コンストラクタです。<BR>
	 * <BR>
	 * フィールド変数の値を設定します。
	 * 
	 * @param iCmnHandle セッションハンドル
	 * @param iCmnParam 業務データ取得用I/F
	 * @param iOpeDate オンライン運用日付
	 * @param fixedText CCマップ名
	 */
	public JKKPrcSimulationCCMapper(SessionHandle iCmnHandle, IRequestParameterReadWrite iCmnParam,
			String iOpeDate, String fixedText)
	{
		this.cmnHandle = iCmnHandle;
		this.cmnParam = iCmnParam;
		this.opeDate = iOpeDate;
		this.ccMapNm = fixedText;
	}
	
	/**
	 * 呼び出したサービスIFの処理結果を判定します。
	 * 
	 * @param result
	 * @throws Throwable
	 */
	private void checkExecutionResult(Map<?, ?> result) throws Throwable
	{
		// 取得したリターンコード、ステータスの内容を見て異常かどうかの判断をする。
		String rtnCode = result.get(JCMConstants.RET_CD_INT_KEY).toString();
		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		Integer status = templates[0].getInt(JCMConstants.STATUS_INT_KEY);
		
		// 異常の場合、SCCallExceptionを生成してスローする
		if (!("0".equals(rtnCode) && 0 == status.intValue()))
		{
			SCCallException scCallEx = new SCCallException("戻り値不正", rtnCode, status);
			throw scCallEx;
		}
	}
	
	/**
	 * 割引サービス一覧照会（基準年月日）サービスIFを呼び出し、
	 * 基準年月日において、割引サービス対象申込種別レコードの条件を満たす、自動適用候補となる割引サービスレコードを取得します。
	 * 
	 * @param ccMap 作業領域
	 * @param funcCd 機能コード
	 * 
	 * @return ArrayList<HashMap<String, Object>> 作業領域.割引サービスリスト
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public ArrayList<HashMap<String, Object>> callWribSvcIcrnShokai(HashMap<String, Object> ccMap, String funcCd)
			throws Throwable
	{
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055301SC;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// オンライン運用日付 → 割引サービス一覧照会（基準年月日）マップ.ＫＥＹ＿基準年月日
		inMap.put("key_kjnymd", this.opeDate);
		
		// 割引適用契機コード（自動適用） → 割引サービス一覧照会（基準年月日）マップ.ＫＥＹ＿割引適用契機コード
		inMap.put("key_wrib_aply_optnty_cd", "2");
		
		// 作業領域.申込種別コード → 割引サービス一覧照会（基準年月日）マップ.ＫＥＹ＿申込種別コード
		inMap.put("key_mskm_sbt_cd", (String)ccMap.get(KKSV0553_KKSV0553OP_WORK.MSKM_SBT_CD));
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EKK0841B003BSMapper mapper = new KKSV0553_KKSV0553OP_EKK0841B003BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 割引サービス一覧照会（基準年月日）マップ.割引サービス一覧照会（基準年月日）明細
		ArrayList<HashMap<String, Object>> list
				= (ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055301SC.EKK0841B003CBSMSG1LIST);
		
		return list;
	}
	
	/**
	 * 割引サービス一覧照会（基準年月日）サービスIFを呼び出し、
	 * 基準年月日に該当する割引サービスレコードを取得します。
	 * 
	 * @param ccMap 作業領域
	 * @param funcCd 機能コード
	 * 
	 * @return ArrayList<HashMap<String, Object>> 作業領域.割引サービスリスト
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public ArrayList<HashMap<String, Object>> callWribSvcIcrnShokai2(HashMap<String, Object> ccMap, String funcCd)
			throws Throwable
	{
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055301SC;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// オンライン運用日付 → 割引サービス一覧照会（基準年月日）マップ.ＫＥＹ＿基準年月日
		inMap.put("key_kjnymd", this.opeDate);
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EKK0841B003BSMapper mapper = new KKSV0553_KKSV0553OP_EKK0841B003BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 割引サービス一覧照会（基準年月日）マップ.割引サービス一覧照会（基準年月日）明細
		ArrayList<HashMap<String, Object>> list
				= (ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055301SC.EKK0841B003CBSMSG1LIST);
		
		return list;
	}
	
	/**
	 * 割引サービス一意照会マップサービスIFを呼び出し、
	 * 指定した割引サービスレコードを取得します。
	 * 
	 * @param ccMap 作業領域
	 * @param wribSvcCd 割引サービスコード
	 * @param funcCd 機能コード
	 * 
	 * @return ArrayList<HashMap<String, Object>> 作業領域.割引サービスリスト
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> callWribSvcUniqShokai(HashMap<String, Object> ccMap, String wribSvcCd, String funcCd)
			throws Throwable
	{
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055302SC;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// 割引サービスコード → 割引サービス一意照会マップ.ＫＥＹ＿割引サービスコード
		inMap.put("key_wrib_svc_cd", wribSvcCd);
		
		// オンライン運用日付 → 割引サービス一意照会マップ.ＫＥＹ＿予約適用年月日
		inMap.put("key_rsv_aply_ymd", this.opeDate);
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EKK0841A010BSMapper mapper = new KKSV0553_KKSV0553OP_EKK0841A010BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 割引サービス一意照会マップ.割引サービス一意照会明細
		ArrayList<HashMap<String, Object>> list
				= (ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055302SC.EKK0841A010CBSMSG1LIST);
		
		if (list.isEmpty())
		{
			return null;
		}
		else
		{
			return list.get(0);
		}
	}
	

	/**
	 * 割引サービス適用条件一覧照会サービスIFを呼び出し、
	 * 一覧情報を返却する。
	 * 
	 * @param ccMap 作業領域
	 * @param wrib_svc_cd 割引サービスコード
	 * @param funcCd 機能コード
	 * @param serial SCマップ連番
	 * @return
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public ArrayList<HashMap<String, Object>> callWribAplyInfo(
			HashMap<String, Object> ccMap, 
			String wrib_svc_cd, 
			String funcCd, 
			String serial) throws Throwable
	{
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055303SC + serial;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// オンライン運用日付 → 割引サービス適用条件一覧照会マップ.ＫＥＹ＿基準年月日
		inMap.put(KKSV0553_KKSV0553OP_KKSV055303SC.KEY_KJNYMD, this.opeDate);
		
		// 割引サービスコード → 割引サービス適用条件一覧照会マップ.ＫＥＹ＿割引サービスコード
		inMap.put(KKSV0553_KKSV0553OP_KKSV055303SC.KEY_WRIB_SVC_CD, wrib_svc_cd);
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EKK2311B002BSMapper mapper = new KKSV0553_KKSV0553OP_EKK2311B002BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 割引サービス対象サービス一覧照会マップ.割引サービス対象サービス一覧照会明細
		ArrayList<HashMap<String, Object>> list
				= (ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055303SC.EKK2311B002CBSMSG1LIST);
		
		return list;
	}
	
	/**
	 * 割引サービス対象サービス一覧照会サービスIFを呼び出し、
	 * 対象の割引サービス<code>ccMapWribSvc</code>に紐づく、割引サービス対象サービスレコードを取得します。
	 * 
	 * @param wribSvcCd 割引サービスコード
	 * @param funcCd 機能コード
	 * @param serial SCマップ連番
	 * 
	 * @return ArrayList<HashMap<String, Object>> 作業領域.割引サービス.割引サービス対象サービスリスト
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public ArrayList<HashMap<String, Object>> callWrisvcTgSvcIcrnShokai(
			String wribSvcCd, String funcCd, String serial) throws Throwable
	{
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055304SC + serial;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// 最大検索数（デフォルト値） → 割引サービス対象サービス一覧照会マップ.最大検索件数
		inMap.put(KKSV0553_KKSV0553OP_KKSV055304SC.MAX_SEARCH_NUM, MAX_SEARCH_NUM_DEFAULT);
		
		// 割引サービスコード → 割引サービス対象サービス一覧照会マップ.ＫＥＹ＿割引サービスコード
		inMap.put(KKSV0553_KKSV0553OP_KKSV055304SC.KEY_WRIB_SVC_CD, wribSvcCd);
		
		// オンライン運用日付 → 割引サービス対象サービス一覧照会マップ.ＫＥＹ＿基準年月日
		inMap.put(KKSV0553_KKSV0553OP_KKSV055304SC.KEY_KJNYMD, this.opeDate);
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EKK0851B001BSMapper mapper = new KKSV0553_KKSV0553OP_EKK0851B001BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 割引サービス対象サービス一覧照会マップ.割引サービス対象サービス一覧照会明細
		ArrayList<HashMap<String, Object>> list
				= (ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055304SC.EKK0851B001CBSMSG1LIST);
		
		return list;
	}
	

	/**
	 * 割引相関チェック条件一覧照会サービスIFを呼び出し、
	 * 割引相関チェック条件レコードを取得します。
	 * 
	 * @param funcCd 機能コード
	 * @param sbtCd 割引相関チェック条件種別コード
	 * 
	 * @return ArrayList<HashMap<String, Object>> 割引相関チェック条件リスト
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public ArrayList<HashMap<String, Object>> callWrisvcSoukanIcrnShokai(String funcCd, String sbtCd) throws Throwable
	{
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055305SC;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// オンライン運用日付 → 割引サービス対象サービス一覧照会マップ.ＫＥＹ＿基準年月日
		inMap.put(KKSV0553_KKSV0553OP_KKSV055305SC.KEY_KJNYMD, this.opeDate);
		
		// 割引相関チェック条件種別コード → 割引相関チェック条件一覧照会マップ.ＫＥＹ＿割引相関チェック条件種別コード
		inMap.put(KKSV0553_KKSV0553OP_KKSV055305SC.KEY_WRIB_SOKAN_CKJK_SBT_CD, sbtCd);
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EKK2381B001BSMapper mapper = new KKSV0553_KKSV0553OP_EKK2381B001BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 割引相関チェック条件一覧照会マップ.割引相関チェック条件一覧照会明細
		ArrayList<HashMap<String, Object>> list
				= (ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055305SC.EKK2381B001CBSMSG1LIST);
		
		return list;
	}
	
	/**
	 * 割引サービス単価一覧照会サービスIFを呼び出し、
	 * 割引サービス単価レコードを取得します。
	 * 
	 * @param wribSvcCd 割引サービスコード
	 * @param funcCd 機能コード
	 * @param serial SCマップ連番
	 * 
	 * @return ArrayList<HashMap<String, Object>> 割引サービス単価一覧照会明細
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public ArrayList<HashMap<String, Object>> callWrisvcTankaShokai(String wribSvcCd, String funcCd, String serial) throws Throwable
	{
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055306SC + serial;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// 割引サービスコード → 割引サービス単価一覧照会（割引サービスコード）.ＫＥＹ＿割引サービスコード
		inMap.put(KKSV0553_KKSV0553OP_KKSV055306SC.KEY_WRIB_SVC_CD, wribSvcCd);
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EKK0711B001BSMapper mapper = new KKSV0553_KKSV0553OP_EKK0711B001BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 割引サービス単価一覧照会（割引サービスコード）.割引サービス単価一覧照会明細
		ArrayList<HashMap<String, Object>> list
				= (ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055306SC.EKK0711B001CBSMSG1LIST);
		
		return list;
	}
	
/* v4.00.00 add start           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * 
	 * <dl>
	 * <dt>処理概要：
	 * <dd>業務パラメータIDを元に,業務パラメータ情報の取得を行う.
	 * <dd>
	 * <dt>処理補足：
	 * <dd>
	 * </dl>
	 * 
	 * @param  ccMap
	 * @param  funcCd
	 * @param  dchskmCd
	 * @return 
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> callEZM0321A010ToAll(String funcCd, String paramId) throws Throwable {
		
		String mapName = this.ccMapNm + KKSV0553_KKSV0553OP.KKSV055307SC;
		
		/* --------------------------------------------------
		 * CC項目 -> SC項目 上りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		this.cmnParam.setData(mapName, inMap);
		
		// 共通情報のマッピング
		inMap.put(FUNC_CODE, funcCd);
		
		// データ抽出項目一意照会マップ.KEY_データ抽出項目コード
		inMap.put(KKSV0313_KKSV0313OP_KKSV031368SC.KEY_WORK_PARAM_ID, paramId);
		
		/* --------------------------------------------------
		 * サービスIF実行
		 * -------------------------------------------------- */
		KKSV0553_KKSV0553OP_EZM0321A010BSMapper mapper = new KKSV0553_KKSV0553OP_EZM0321A010BSMapper(mapName);
		
		HashMap<String, Object> paramMap = mapper.editInMsg(this.cmnParam);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, this.cmnHandle);
		
		this.cmnParam = mapper.editResultRP(result, this.cmnParam);
		
		checkExecutionResult(result);
		
		/* --------------------------------------------------
		 * CC項目 <- SC項目 下りマッピング
		 * -------------------------------------------------- */
		HashMap<String, Object> outMap = (HashMap<String, Object>)this.cmnParam.getData(mapName);
		
		// 業務パラメータ管理一意照会の業務パラメータ管理一意照会明細
		ArrayList<HashMap<String, Object>> list =
			(ArrayList<HashMap<String, Object>>)outMap.get(KKSV0553_KKSV0553OP_KKSV055307SC.EZM0321A010CBSMSG1LIST);

		return list.get(0);
	}
/* v4.00.00 add end             ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
}
