/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUGetMansionPrcCC
*   ソースファイル名：JFUGetMansionPrcCC.java
*   作成者          ：富士通
*   日付            ：2013年06月06日
*＜機能概要＞
*   マンション料金取得コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v5.00       2013/06/06   FJ) 岡井    【提供条件対応】新規作成
*   v8.00       2014/04/01   FJ) 谷本    OM-2014-0001343_割引料金の割引集計コードの変更
*	v27.00		2016/11/04	 FJ)美濃原	【ANK-3042-00-00】平成28年度12〜3月のキャンペーン対応
*   v36.01      2018/02/27   FJ) 張本   【IT1-2018-0000039】イーサの契約事務手数料がCP適用除外されない（4月CP切替対応）
*   v47.0.0     2019/06/28   FJ) 大島   【ANK-3636-00-00】消費増税対応（8%⇒10%）
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EAC0251B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0711B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0711B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0711B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0711B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0721A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0721A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0841A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0841A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0841B003CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0841B003CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0951B502CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0951B502CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1021C012CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1021C012CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1921B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1921B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2371A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2371A010CBSMsg1List;

/**
 * マンション料金取得コモンコンポーネント部品です。
 * 
 * <br>
 * @author 富士通
 */
public class JFUGetMansionPrcCC extends JFUBaseCC
{
	// ■事務手数料判定結果取得
	/** テンプレートID 事務手数料判定結果取得 */
	private static final String TEMP_ID_EKK1021C011 = "EKK1021C011";
	/** テンプレートID(明細) 事務手数料判定結果取得 */
	private static final String TEMP_ID_DTL_EKK1021C011 = EKK1021C011CBSMsg.EKK1021C011CBSMSG1LIST;
	/** IN項目リスト 事務手数料判定結果取得 */
	private static final List<String> IN_COL_LIST_EKK1021C011 =
			Arrays.asList(EKK1021C011CBSMsg.IDO_DIV, EKK1021C011CBSMsg.MSKM_PRC_GRP_CD, EKK1021C011CBSMsg.KOJI_UM, EKK1021C011CBSMsg.MANS_SKBT_CD,
					EKK1021C011CBSMsg.TK_HOSHIKI_CD, EKK1021C011CBSMsg.TK_PRC_SBT_CD, EKK1021C011CBSMsg.KKTK_SBT_CD);
	/** 関連チェックエラー項目 事務手数料判定結果取得 */
	private static final String ERR_COL_EKK1021C011 = EKK1021C011CBSMsg.IDO_DIV_ERR;

	// ■工事費判定結果取得
	/** テンプレートID 工事費判定結果取得 */
	private static final String TEMP_ID_EKK1021C012 = "EKK1021C012";
	/** テンプレートID(明細) 工事費判定結果取得 */
	private static final String TEMP_ID_DTL_EKK1021C012 = EKK1021C012CBSMsg.EKK1021C012CBSMSG1LIST;
	/** IN項目リスト 工事費判定結果取得 */
	private static final List<String> IN_COL_LIST_EKK1021C012 =
			Arrays.asList(EKK1021C012CBSMsg.IDO_DIV, EKK1021C012CBSMsg.MSKM_PRC_GRP_CD, EKK1021C012CBSMsg.BUNDLE_UM, EKK1021C012CBSMsg.TK_KIBO_EQUIP);
	/** 関連チェックエラー項目 工事費判定結果取得 */
	private static final String ERR_COL_EKK1021C012 = EKK1021C012CBSMsg.IDO_DIV_ERR;

	// ■一時支払料金一意照会
	/** テンプレートID 一時支払料金一意照会 */
	private static final String TEMP_ID_EKK0721A010 = "EKK0721A010";
	/** テンプレートID(明細) 一時支払料金一意照会 */
	private static final String TEMP_ID_DTL_EKK0721A010 = EKK0721A010CBSMsg.EKK0721A010CBSMSG1LIST;
	/** IN項目リスト 一時支払料金一意照会 */
	private static final List<String> IN_COL_LIST_EKK0721A010 = Arrays.asList(EKK0721A010CBSMsg.KEY_TMP_PAY_PRC_NO);
	/** 関連チェックエラー項目 一時支払料金一意照会 */
	private static final String ERR_COL_EKK0721A010 = EKK0721A010CBSMsg.KEY_TMP_PAY_PRC_NO_ERR;

	// ■提供方式契約料金一覧照会
	/** テンプレートID 提供方式契約料金一覧照会 */
	private static final String TEMP_ID_EKK1921B001 = "EKK1921B001";
	/** テンプレートID(明細) 提供方式契約料金一覧照会 */
	private static final String TEMP_ID_DTL_EKK1921B001 = EKK1921B001CBSMsg.EKK1921B001CBSMSG1LIST;
	/** IN項目リスト 提供方式契約料金一覧照会 */
	private static final List<String> IN_COL_LIST_EKK1921B001 = 
			Arrays.asList(EKK1921B001CBSMsg.KAISEN_USE_KEI_NO);
	/** 関連チェックエラー項目 提供方式契約料金一覧照会 */
	private static final String ERR_COL_EKK1921B001 = EKK1921B001CBSMsg.KAISEN_USE_KEI_NO_ERR;

	// ■マンション割引サービス契約一覧照会
	/** テンプレートID マンション割引サービス契約一覧照会 */
	private static final String TEMP_ID_EKK0951B502 = "EKK0951B502";
	/** テンプレートID(明細) マンション割引サービス契約一覧照会 */
	private static final String TEMP_ID_DTL_EKK0951B502 = EKK0951B502CBSMsg.EKK0951B502CBSMSG1LIST;
	/** IN項目リスト マンション割引サービス契約一覧照会 */
	private static final List<String> IN_COL_LIST_EKK0951B502 = 
			Arrays.asList(EKK0951B502CBSMsg.KEY_KAISEN_USE_KEI_NO, EKK0951B502CBSMsg.KEY_TK_HOSHIKI_KEI_NO);
	/** 関連チェックエラー項目 マンション割引サービス契約一覧照会 */
	private static final String ERR_COL_EKK0951B502 = EKK0951B502CBSMsg.KEY_KAISEN_USE_KEI_NO_ERR;

	// ■割引サービス一覧照会（基準年月日）
	/** テンプレートID 割引サービス一覧照会（基準年月日） */
	private static final String TEMP_ID_EKK0841B003 = "EKK0841B003";
	/** テンプレートID(明細) 割引サービス一覧照会（基準年月日） */
	private static final String TEMP_ID_DTL_EKK0841B003 = EKK0841B003CBSMsg.EKK0841B003CBSMSG1LIST;
	/** IN項目リスト 割引サービス一覧照会（基準年月日） */
	private static final List<String> IN_COL_LIST_EKK0841B003 = 
			Arrays.asList(EKK0841B003CBSMsg.KEY_KJNYMD, EKK0841B003CBSMsg.KEY_DSP_CAMPAIGN_CD);
	/** 関連チェックエラー項目 割引サービス一覧照会（基準年月日） */
	private static final String ERR_COL_EKK0841B003 = EKK0841B003CBSMsg.KEY_DSP_CAMPAIGN_CD_ERR;

	// ■割引サービス一意照会
	/** テンプレートID 割引サービス一意照会 */
	private static final String TEMP_ID_EKK0841A010 = "EKK0841A010";
	/** テンプレートID(明細) 割引サービス一意照会 */
	private static final String TEMP_ID_DTL_EKK0841A010 = EKK0841A010CBSMsg.EKK0841A010CBSMSG1LIST;
	/** IN項目リスト 割引サービス一意照会 */
	private static final List<String> IN_COL_LIST_EKK0841A010 = 
			Arrays.asList(EKK0841A010CBSMsg.KEY_WRIB_SVC_CD, EKK0841A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目 割引サービス一意照会 */
	private static final String ERR_COL_EKK0841A010 = EKK0841A010CBSMsg.KEY_WRIB_SVC_CD_ERR;

	// ■割引サービス単価一覧照会（キャンペーン用）
	/** テンプレートID 割引サービス単価一覧照会（キャンペーン用） */
	private static final String TEMP_ID_EKK0711B501 = "EKK0711B501";
	/** テンプレートID(明細) 割引サービス単価一覧照会（キャンペーン用） */
	private static final String TEMP_ID_DTL_EKK0711B501 = EKK0711B501CBSMsg.EKK0711B501CBSMSG1LIST;
	/** IN項目リスト 割引サービス単価一覧照会（キャンペーン用） */
	private static final List<String> IN_COL_LIST_EKK0711B501 = 
			Arrays.asList(EKK0711B501CBSMsg.KEY_WRIB_SVC_CD, EKK0711B501CBSMsg.KEY_SVC_CD, EKK0711B501CBSMsg.KEY_PRC_GRP_CD,
					EKK0711B501CBSMsg.KEY_PCRS_CD, EKK0711B501CBSMsg.KEY_PPLAN_CD);
	/** 関連チェックエラー項目 割引サービス単価一覧照会（キャンペーン用） */
	private static final String ERR_COL_EKK0711B501 = EKK0711B501CBSMsg.KEY_WRIB_SVC_CD_ERR;

	// ■割引サービス単価一覧照会（割引サービスコード）
	/** テンプレートID 割引サービス単価一覧照会（割引サービスコード） */
	private static final String TEMP_ID_EKK0711B001 = "EKK0711B001";
	/** テンプレートID(明細) 割引サービス単価一覧照会（割引サービスコード） */
	private static final String TEMP_ID_DTL_EKK0711B001 = EKK0711B001CBSMsg.EKK0711B001CBSMSG1LIST;
	/** IN項目リスト 割引サービス単価一覧照会（割引サービスコード） */
	private static final List<String> IN_COL_LIST_EKK0711B001 = Arrays.asList(EKK0711B001CBSMsg.KEY_WRIB_SVC_CD);
	/** 関連チェックエラー項目 割引サービス単価一覧照会（割引サービスコード） */
	private static final String ERR_COL_EKK0711B001 = EKK0711B001CBSMsg.KEY_WRIB_SVC_CD_ERR;

	// ■割引サービス詳細一意照会
	/** テンプレートID 割引サービス詳細一意照会 */
	private static final String TEMP_ID_EKK2371A010 = "EKK2371A010";
	/** テンプレートID(明細) 割引サービス詳細一意照会 */
	private static final String TEMP_ID_DTL_EKK2371A010 = EKK2371A010CBSMsg.EKK2371A010CBSMSG1LIST;
	/** IN項目リスト 割引サービス詳細一意照会 */
	private static final List<String> IN_COL_LIST_EKK2371A010 = 
		Arrays.asList(EKK2371A010CBSMsg.KEY_WRIB_SVC_DTL_CD, EKK2371A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目 割引サービス詳細一意照会 */
	private static final String ERR_COL_EKK2371A010 = EKK2371A010CBSMsg.KEY_WRIB_SVC_DTL_CD_ERR;

	// ■割引料金＜料金シミュレーション＞一覧照会
	/** テンプレートID 割引料金＜料金シミュレーション＞一覧照会 */
	private static final String TEMP_ID_EAC0251B010 = "EAC0251B010";
	/** テンプレートID(明細) 割引料金＜料金シミュレーション＞一覧照会 */
	private static final String TEMP_ID_DTL_EAC0251B010 = EAC0251B010CBSMsg.EAC0251B010CBSMSG1LIST;
	/** IN項目リスト 割引料金＜料金シミュレーション＞一覧照会 */
	private static final List<String> IN_COL_LIST_EAC0251B010 = 
			Arrays.asList(EAC0251B010CBSMsg.KEY_SYS_CD, EAC0251B010CBSMsg.KEY_PRC_SVC_CD, EAC0251B010CBSMsg.KEY_WRIB_SHUK_CD);
	/** 関連チェックエラー項目 割引料金＜料金シミュレーション＞一覧照会 */
	private static final String ERR_COL_EAC0251B010 = EAC0251B010CBSMsg.KEY_SYS_CD_ERR;

	// ■IN項目ID
	/** 項目ID：提供方式契約番号 */
	private static final String ITEM_TK_HOSHIKI_KEI_NO = "tk_hoshiki_kei_no";
	/** 項目ID：提供方式パターンコード */
	private static final String ITEM_TK_HOSHIKI_PTN_CD = "teikyo_hoshiki_ptn_cd";
	/** 項目ID：提供方式コード */
	private static final String ITEM_TK_HOSHIKI_CD = "teikyo_hoshiki_cd";
	/** 項目ID：回線使用契約番号 */
	private static final String ITEM_KAISEN_USE_KEI_NO = "kaisen_use_kei_no";
	/** 項目ID：ペアID */
	private static final String ITEM_PAIRID = "pairid";
	/** 項目ID：月額無料キャンペーンコード */
	private static final String ITEM_MONTH_FREE_CAMP_CD = "month_free_camp_cd";
	/** 項目ID：キャンペーン対象割引サービスコードリスト */
	private static final String LIST_CAMP_TG_WRIB_SVC_CD = "list_camp_tg_wrib_svc_cd";

	// ■OUT項目ID
	/** 項目ID：提供方式契約料金リスト */
	private static final String ITEM_TK_HOSHIKI_KEI_PRC_LIST = "tk_hoshiki_kei_prc_list";
	/** 項目ID：月額用金リスト */
	private static final String ITEM_MONTH_PRC_LIST = "month_prc_list";
	/** 項目ID：初期費用リスト */
	private static final String ITEM_SHOKI_PRC_LIST = "shoki_prc_list";
	/** 項目ID：工事費リスト */
	private static final String ITEM_KOJI_PRC_LIST = "koji_prc_list";
	/** 項目ID：VDSL機器料金リスト */
	private static final String ITEM_VDSL_KIKI_PRC_LIST = "vdsl_kiki_prc_list";
	/** 項目ID：コース変更手数料リスト */
	private static final String ITEM_CRS_CHG_PRC_LIST = "crs_chg_prc_list";
	/** 項目ID：キャンペーン料金リスト */
	private static final String ITEM_CAMP_PRC_LIST = "camp_prc_list";
	/** 項目ID：月額無料キャンペーンリスト */
	private static final String ITEM_MONTH_FREE_CAMP_LIST = "month_free_camp_list";

	/** 項目ID：VDSL機器種別コード */
	private static final String ITEM_VDSL_KKTK_SBT_CD = "vdsl_kktk_sbt_cd";
	/** 項目ID：キャンペーン適用時月額金額 */
	private static final String ITEM_CAMP_MONTH_AMNT = "camp_month_amnt";
	/** 項目ID：初期費用合計金額 */
	private static final String ITEM_SHOKI_SUM_AMNT = "shoki_sum_amnt";
	/** 項目ID：キャンペーン適用時初期費用合計金額 */
	private static final String ITEM_SHOKI_CAMP_SUM_AMNT = "shoki_camp_sum_amnt";
	/** 項目ID：合計金額(VDSL・買取) */
	private static final String ITEM_VDSL_01 = "vdsl_01";
	/** 項目ID：合計金額(VDSL・レンタル) */
	private static final String ITEM_VDSL_02 = "vdsl_02";
	/** 項目ID：合計金額(VDSL・持込) */
	private static final String ITEM_VDSL_03 = "vdsl_03";
	/** 項目ID：コース変更手数料合計金額 */
	private static final String ITEM_CRS_CHG_SUM_AMNT = "crs_chg_sum_amnt";
	/** 項目ID：月額無料キャンペーンフラグ */
	private static final String ITEM_MONTH_FREE_CAMP_FLG = "month_free_camp_flg";
	/** 項目ID：マンションキャンペーンコード */
	private static final String ITEM_MANS_CAMP_CD = "mans_camp_cd";

	// ■その他項目ID
	/** 項目ID：料金コースコード */
	private static final String ITEM_PCRS_CD = "pcrs_cd";
	/** 項目ID：料金プランコード */
	private static final String ITEM_PPLAN_CD = "pplan_cd";
	/** 項目ID：適用数 */
	private static final String ITEM_APLY_CNT = "aply_cnt";
	/** 項目ID：割引種別コード */
	private static final String ITEM_WRIB_SBT_CD = "wrib_sbt_cd";
	/** 項目ID：割引サービス種別コード */
	private static final String ITEM_WRIB_SVC_SBT_CD = "wrib_svc_sbt_cd";
	/** 項目ID：割引計算方法コード */
	private static final String ITEM_WRIB_CALC_WAY_CD = "wrib_calc_way_cd";
	/** 項目ID：加入契約相対プランコード */
	private static final String ITEM_KANYU_KEI_AITAI_PPLAN_CD = "kanyu_kei_aitai_pplan_cd";
	/** 項目ID：加入契約請求金額 */
	private static final String ITEM_KANYU_KEI_SEIKY_AMNT = "kanyu_kei_seiky_amnt";
	/** 項目ID：割引金額 */
	private static final String ITEM_WRIB_VALUE = "wrib_value";

	// ■定数値
	/** マンション料金識別コード 基本料金 */
	private static final String MANS_PRC_SKBT_CD_001 = "001";
	/** マンション料金識別コード 事務手数料 */
	private static final String MANS_PRC_SKBT_CD_010 = "010";
	/** マンション料金識別コード 機器代金(レンタル) */
	private static final String MANS_PRC_SKBT_CD_012 = "012";
	/** マンション料金識別コード 事務手数料(買取) */
	private static final String MANS_PRC_SKBT_CD_013 = "013";
	/** マンション料金識別コード 機器代金(買取) */
	private static final String MANS_PRC_SKBT_CD_015 = "015";
	/** システムコード */
	private static final String SYS_CD_AC = "AC";
// ANK-3636-00-00 ADD START
	private static final String WRIB_SHUK_CD_02 = "02";
// ANK-3636-00-00 ADD END
	/** 割引種別コード 初期費用 */
	private static final String WRIB_SBT_CD_1 = "1";
	/** 割引種別コード 月額料金 */
	private static final String WRIB_SBT_CD_2 = "2";
	/** 割引計算方法コード 置換型 */
	private static final String WRIB_CALC_WAY_CD_1 = "1";
	/** 割引計算方法コード 値引型 */
	private static final String WRIB_CALC_WAY_CD_4 = "4";
	/** 料金コース速度コード 01:100M */
	private static final String PCRS_SPEED_CD_01 = "01";
	/** 料金コース速度コード 02:100Mプレミアム */
	private static final String PCRS_SPEED_CD_02 = "02";

	/** 標準工事費開始年月日 */
	private static final String STDARD_KOJIHI_OPEN_YMD = "20180402";

	// ■クラス変数
	/** 提供方式契約番号 **/
	private String tkHoshikiKeiNo = JFUStrConst.EMPTY;
	/** 提供方式パターンコード **/
	private String tkHoshikiPtnCd = JFUStrConst.EMPTY;
	/** ペアID **/
	private String pairId = JFUStrConst.EMPTY;
	/** キャンペーン対象割引サービスコードリスト **/
	@SuppressWarnings("unchecked")
	private List campTgWribSvcCdList = new ArrayList();
	/** 月額無料キャンペーンコードリスト */
	@SuppressWarnings("unchecked")
	private List monthFreeCampCdList = new ArrayList();

	/** 提供方式契約料金リスト **/
	@SuppressWarnings("unchecked")
	private ArrayList tkHoshikiKeiPrcList = new ArrayList();
	/** 月額用金リスト **/
	@SuppressWarnings("unchecked")
	private ArrayList monthPrcList = new ArrayList();
	/** 初期費用リスト **/
	@SuppressWarnings("unchecked")
	private ArrayList shokiPrcList = new ArrayList();
	/** 工事費リスト **/
	@SuppressWarnings("unchecked")
	private ArrayList kojiPrcList = new ArrayList();
	/** VDSL機器料金リスト **/
	@SuppressWarnings("unchecked")
	private ArrayList vdslKikiPrcList = new ArrayList();
	/** コース変更手数料リスト **/
	@SuppressWarnings("unchecked")
	private ArrayList crsChgPrcList = new ArrayList();
	/** キャンペーン料金リスト **/
	@SuppressWarnings("unchecked")
	private ArrayList campPrcList = new ArrayList();
	/** 月額無料キャンペーンリスト **/
	@SuppressWarnings("unchecked")
	private ArrayList monthFreeCampList = new ArrayList();

	/**
	 * マンションの各種料金を取得します。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception
	 */
	public IRequestParameterReadWrite getResultData(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// リクエストパラメータデータ
		HashMap<?, ?> paramMap = (HashMap<?, ?>)param.getData(fixedText);

		// ●IN項目値取得
		getInItemValue(paramMap);

		// ●提供方式契約料金一覧取得
		getTkHoshikiPrc(handle, param, fixedText, paramMap);

		// ●月額料金取得
		getMonthPrc();

		// ●初期費用取得(事務手数料・標準工事費など)
		getShokiPrc(handle, param, fixedText, paramMap);

		// ●工事費取得(光配線(旧光直収)のみ)
		getKojiPrc(handle, param, fixedText, paramMap);

		// ●VDSL機器買取＆レンタル料金取得
		getVdslKikiPrc();

		// ●コース変更手数料取得
		getCrsChgPrc(handle, param, fixedText, paramMap);

		// ●キャンペーン料金取得処理
		getCampPrc(handle, param, fixedText, paramMap);

		// ●料金計算
		calcPrc();

		// ●月額無料キャンペーンチェック処理
		chkMonthFreeCamp();

		// ●結果設定
		setResult(handle, param, fixedText);

		return param;
	}

	/**
	 * チェック処理です。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return チェック処理用マップ
	 * @throws Exception 
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}

	/**
	 * IN項目値取得処理です。
	 * 
	 * <br>
	 * @param paramMap INマップ
	 */
	@SuppressWarnings("unchecked")
	private void getInItemValue(HashMap paramMap)
	{
		// ★提供方式契約番号
		if(!JFUBPCommon.isNull((String)paramMap.get(ITEM_TK_HOSHIKI_KEI_NO)))
		{
			this.tkHoshikiKeiNo = (String)paramMap.get(ITEM_TK_HOSHIKI_KEI_NO);
		}
		// ★提供方式パターンコード
		if(!JFUBPCommon.isNull((String)paramMap.get(ITEM_TK_HOSHIKI_PTN_CD)))
		{
			this.tkHoshikiPtnCd = (String)paramMap.get(ITEM_TK_HOSHIKI_PTN_CD);
		}
		// ★ペアID
		if(!JFUBPCommon.isNull((String)paramMap.get(ITEM_PAIRID)))
		{
			this.pairId = (String)paramMap.get(ITEM_PAIRID);
		}
		// ★月額無料キャンペーンコード
		if(!JFUBPCommon.isNull((String)paramMap.get(ITEM_MONTH_FREE_CAMP_CD)))
		{
			if(((String)paramMap.get(ITEM_MONTH_FREE_CAMP_CD)).contains(JFUStrConst.COMMA))
			{
				String[] wribSvcCdList = ((String)paramMap.get(ITEM_MONTH_FREE_CAMP_CD)).split(JFUStrConst.COMMA);
				for (int i = 0; i < wribSvcCdList.length; i++)
				{
					this.monthFreeCampCdList.add(wribSvcCdList[i]);
				}
			}
			else
			{
				this.monthFreeCampCdList.add((String)paramMap.get(ITEM_MONTH_FREE_CAMP_CD));
			}
		}

		// ★キャンペーン対象割引サービスコードリスト
		if(!JFUBPCommon.isNull((String)paramMap.get(LIST_CAMP_TG_WRIB_SVC_CD)))
		{
			if(((String)paramMap.get(LIST_CAMP_TG_WRIB_SVC_CD)).contains(JFUStrConst.COMMA))
			{
				String[] wribSvcCdList = ((String)paramMap.get(LIST_CAMP_TG_WRIB_SVC_CD)).split(JFUStrConst.COMMA);
				for (int i = 0; i < wribSvcCdList.length; i++)
				{
					this.campTgWribSvcCdList.add(wribSvcCdList[i]);
				}
			}
			else
			{
				this.campTgWribSvcCdList.add((String)paramMap.get(LIST_CAMP_TG_WRIB_SVC_CD));
			}
		}

		outDebugLog("提供方式契約番号【" + this.tkHoshikiKeiNo + "】");
		outDebugLog("提供方式パターンコード【" + this.tkHoshikiPtnCd + "】");
		outDebugLog("ペアID【" + this.pairId + "】");
		outDebugLog("月額無料キャンペーンコードリスト 【" + this.monthFreeCampCdList + "】");
		outDebugLog("キャンペーン対象割引サービスコードリスト 【" + this.campTgWribSvcCdList + "】");
	}

	/**
	 * 提供方式契約料金の一覧を取得します。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param paramMap マップ
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void getTkHoshikiPrc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap paramMap) throws Exception
	{
		// ●上りマッピング
		// 親マップ
		HashMap setMap = new HashMap();
		// 提供方式契約番号
		setMap.put(EKK1921B001CBSMsg.KAISEN_USE_KEI_NO, paramMap.get(ITEM_KAISEN_USE_KEI_NO));
		// 機能コード
		setMap.put(EKK1921B001CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		// リクエストパラメータに設定
		param.setData(fixedText, setMap);
		// 検索なしエラー回避
		ignoreSearchError(param, fixedText);

		// ●提供方式契約料金一覧照会サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK1921B001, TEMP_ID_DTL_EKK1921B001, IN_COL_LIST_EKK1921B001, ERR_COL_EKK1921B001);

		// ●サービスIF結果取得
		ArrayList sifResList = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK1921B001);

		// ●下りマッピング
		if(sifResList != null && sifResList.size() > 0)
		{
			for (int i = 0; i < sifResList.size(); i++)
			{
				HashMap childMap = (HashMap)sifResList.get(i);

				if(childMap == null || childMap.size() == 0)
				{
					continue;
				}

				// 提供方式契約番号
				String tkHoshikiKeiNo = (String)childMap.get(EKK1921B001CBSMsg1List.TK_HOSHIKI_KEI_NO);
				if(!this.tkHoshikiKeiNo.equals(tkHoshikiKeiNo))
				{
					// 提供方式契約番号が一致しない場合、次のループへ
					continue;
				}

				// ペアIDチェック
				String pcrsSpeedCd = (String)childMap.get(EKK1921B001CBSMsg1List.PCRS_SPEED_CD);
				if(!JFUBPCommon.isNull(this.pairId) && PCRS_SPEED_CD_01.equals(pcrsSpeedCd))
				{
					// ペアIDが存在する場合、100Mの料金ではなく、100Mプレミアムの料金を対象とする
					continue;
				}
				else if(JFUBPCommon.isNull(this.pairId) && PCRS_SPEED_CD_02.equals(pcrsSpeedCd))
				{
					// ペアIDが存在しない場合、100Mプレミアムの料金ではなく、100Mの料金を対象とする
					continue;
				}

				this.tkHoshikiKeiPrcList.add(childMap);
			}
		}
	}

	/**
	 * 月額料金取得処理です。
	 * 
	 * <br>
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void getMonthPrc() throws Exception
	{
		if(this.tkHoshikiKeiPrcList == null || this.tkHoshikiKeiPrcList.size() == 0)
		{
			return;
		}

		for (int i = 0; i < this.tkHoshikiKeiPrcList.size(); i++)
		{
			// 子マップ
			HashMap childMap = new HashMap();
			childMap.putAll((HashMap)this.tkHoshikiKeiPrcList.get(i));

			// マンション料金識別コード
			String mansSkbtCd = (String)childMap.get(EKK1921B001CBSMsg1List.MANS_PRC_SKBT_CD);

			// マンション料金識別コードが基本料金(001)の場合、月額料金リストに設定する
			if(MANS_PRC_SKBT_CD_001.equals(mansSkbtCd))
			{
				this.monthPrcList.add(childMap);
			}
		}
	}

	/**
	 * 初期費用取得処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param paramMap マップ
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void getShokiPrc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap paramMap) throws Exception
	{
		// 一時支払料金情報取得
		ArrayList tempPayPrcNoList = getTmpPayPrcNo(handle, param, fixedText, paramMap);
		outDebugLog("一時支払料金情報リスト 【" + tempPayPrcNoList + "】");

		if(tempPayPrcNoList == null || tempPayPrcNoList.size() == 0)
		{
			return;
		}

		for (int i = 0; i < tempPayPrcNoList.size(); i++)
		{
			HashMap childTempPayMap = (HashMap)tempPayPrcNoList.get(i);
			// マンション料金識別コード
			String tempMansPrcSkbtCd = (String)childTempPayMap.get(EKK0721A010CBSMsg1List.MANS_PRC_SKBT_CD);
			// VDSL機器種別コード
			String vdslKktkSbtCd = (String)childTempPayMap.get(ITEM_VDSL_KKTK_SBT_CD);

			if(JFUBPCommon.isNull(tempMansPrcSkbtCd))
			{
				continue;
			}

			for (int j = 0; j < this.tkHoshikiKeiPrcList.size(); j++)
			{
				HashMap childMap = new HashMap();
				childMap.putAll((HashMap)this.tkHoshikiKeiPrcList.get(j));

				// マンション料金識別コード
				String tkMansPrcSkbtCd = (String)childMap.get(EKK1921B001CBSMsg1List.MANS_PRC_SKBT_CD);

				// 一時支払料金情報のマンション料金識別コードと提供方式契約料金のマンション料金識別コードが
				// 一致した場合、その料金情報を初期費用リストに設定する
				if(tempMansPrcSkbtCd.equals(tkMansPrcSkbtCd))
				{
					// VDSL機器種別コード
					childMap.put(ITEM_VDSL_KKTK_SBT_CD, vdslKktkSbtCd);

					this.shokiPrcList.add(childMap);
				}
			}
		}
	}

	/**
	 * 工事費取得処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param paramMap マップ
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void getKojiPrc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap paramMap) throws Exception
	{
		// 光配線チェック
		if(!JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(this.tkHoshikiPtnCd))
		{
			// 光配線(旧光直収)以外の場合、このメソッドを実行しない
			return;
		}

		// ●上りマッピング(EKK1021C012：工事費判定結果取得)
		HashMap setMap = new HashMap();
		// 異動区分
		setMap.put(EKK1021C012CBSMsg.IDO_DIV, JFUStrConst.CD00576_00001);
		// 申込料金グループコード
		setMap.put(EKK1021C012CBSMsg.MSKM_PRC_GRP_CD, JFUStrConst.CD00133_04);
		// 機能コード
		setMap.put(EKK1021C012CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		// リクエストパラメータに設定
		param.setData(fixedText, setMap);
		// 検索なしエラー回避
		ignoreSearchError(param, fixedText);

		// ●工事費判定結果取得サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK1021C012, TEMP_ID_DTL_EKK1021C012, IN_COL_LIST_EKK1021C012, ERR_COL_EKK1021C012);

		// ●サービスIF結果取得
		ArrayList kojiResultList = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK1021C012);

		if (kojiResultList == null || kojiResultList.size() == 0)
		{
			return;
		}

		// ●工事費取得
		for (int i = 0; i < kojiResultList.size(); i++)
		{
			HashMap kojiChildMap = (HashMap)kojiResultList.get(i);

			if(kojiChildMap == null || kojiChildMap.size() == 0)
			{
				continue;
			}

			// 一時支払料金番号
			String tmpPayPrcNo = (String)kojiChildMap.get(EKK1021C012CBSMsg1List.TMP_PAY_PRC_NO);

			// ●上りマッピング(EKK0721A010：一時支払料金一意照会)
			// 上りマップ
			setMap = new HashMap();
			// ＫＥＹ＿一時支払料金番号
			setMap.put(EKK0721A010CBSMsg.KEY_TMP_PAY_PRC_NO, tmpPayPrcNo);
			// 機能コード
			setMap.put(EKK0721A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●一時支払料金一意照会サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0721A010, TEMP_ID_DTL_EKK0721A010, IN_COL_LIST_EKK0721A010, ERR_COL_EKK0721A010);

			// ●サービスIF結果取得
			ArrayList eKK0721A010List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0721A010);

			// ●下りマッピング
			if(eKK0721A010List != null && eKK0721A010List.size() > 0)
			{
				for (int j = 0; j < eKK0721A010List.size(); j++)
				{
					// 取得結果マップ
					HashMap tmpPayPrcMap = (HashMap)eKK0721A010List.get(j);
					if(tmpPayPrcMap == null || tmpPayPrcMap.size() == 0)
					{
						continue;
					}

					// 工事費リストに結果マップを追加
					this.kojiPrcList.add(tmpPayPrcMap);
				}
			}
		}

		// ●初期費用リストに追加
		for (int i = 0; i < this.kojiPrcList.size(); i++)
		{
			HashMap kojiPrcMap = (HashMap)this.kojiPrcList.get(i);
			// マンション料金識別コード
			String kojiMansPrcSkbtCd = (String)kojiPrcMap.get(EKK0721A010CBSMsg1List.MANS_PRC_SKBT_CD);

			for (int j = 0; j < this.tkHoshikiKeiPrcList.size(); j++)
			{
				HashMap tkHoshikiKeiPrcMap = (HashMap)this.tkHoshikiKeiPrcList.get(j);
				// マンション料金識別コード
				String tkMansPrcSkbtCd = (String)tkHoshikiKeiPrcMap.get(EKK1921B001CBSMsg1List.MANS_PRC_SKBT_CD);

				if(kojiMansPrcSkbtCd.equals(tkMansPrcSkbtCd))
				{
					this.shokiPrcList.add(tkHoshikiKeiPrcMap);
					break;
				}
			}
		}
	}

	/**
	 * コース変更手数料取得処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param paramMap マップ
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void getCrsChgPrc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap paramMap) throws Exception
	{
		// ●上りマッピング(EKK1021C011：事務手数料判定結果取得)
		HashMap setMap = new HashMap();
		// 異動区分
		setMap.put(EKK1021C011CBSMsg.IDO_DIV, JFUStrConst.CD00576_00009);
		// 申込料金グループコード
		setMap.put(EKK1021C011CBSMsg.MSKM_PRC_GRP_CD, JFUStrConst.CD00133_04);
		// 工事有無
		setMap.put(EKK1021C011CBSMsg.KOJI_UM, JFUStrConst.CD00002_1);
		// 機能コード
		setMap.put(EKK1021C011CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		// リクエストパラメータに設定
		param.setData(fixedText, setMap);
		// 検索なしエラー回避
		ignoreSearchError(param, fixedText);

		// ●事務手数料判定結果取得サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK1021C011, TEMP_ID_DTL_EKK1021C011, IN_COL_LIST_EKK1021C011, ERR_COL_EKK1021C011);

		// ●サービスIF結果取得
		ArrayList jimtResultList = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK1021C011);

		if (jimtResultList == null || jimtResultList.size() == 0)
		{
			return;
		}

		// ●下りマッピング
		for (int j = 0; j < jimtResultList.size(); j++)
		{
			HashMap jimtChildMap = (HashMap)jimtResultList.get(j);

			if(jimtChildMap == null || jimtChildMap.size() == 0)
			{
				continue;
			}

			// 一時支払料金番号
			String tmpPayPrcNo = (String)jimtChildMap.get(EKK1021C011CBSMsg1List.TMP_PAY_PRC_NO);

			// ●上りマッピング(EKK0721A010：一時支払料金一意照会)
			// 上りマップ
			setMap = new HashMap();
			// ＫＥＹ＿一時支払料金番号
			setMap.put(EKK0721A010CBSMsg.KEY_TMP_PAY_PRC_NO, tmpPayPrcNo);
			// 機能コード
			setMap.put(EKK0721A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●一時支払料金一意照会サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0721A010, TEMP_ID_DTL_EKK0721A010, IN_COL_LIST_EKK0721A010, ERR_COL_EKK0721A010);

			// ●サービスIF結果取得
			ArrayList eKK0721A010List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0721A010);

			// ●下りマッピング
			if(eKK0721A010List != null && eKK0721A010List.size() > 0)
			{
				for (int k = 0; k < eKK0721A010List.size(); k++)
				{
					// 取得結果マップ
					HashMap tmpPayPrcMap = (HashMap)eKK0721A010List.get(k);
					if(tmpPayPrcMap == null || tmpPayPrcMap.size() == 0)
					{
						continue;
					}

					// コース変更手数料リストに結果マップを追加
					this.crsChgPrcList.add(tmpPayPrcMap);
				}
			}
		}
	}

	/**
	 * VDSL機器代金取得処理です。
	 * 
	 * <br>
	 */
	@SuppressWarnings("unchecked")
	private void getVdslKikiPrc()
	{
		// VDSL判定
		if(!chkVdsl(this.tkHoshikiPtnCd))
		{
			// VDSLでない場合、このメソッドは実行しない
			return;
		}

		for (int i = 0; i < this.tkHoshikiKeiPrcList.size(); i++)
		{
			HashMap childMap = new HashMap();
			childMap.putAll((HashMap)this.tkHoshikiKeiPrcList.get(i));

			// マンション料金識別コード
			String mansPrcSkbtCd = (String)childMap.get(EKK1921B001CBSMsg1List.MANS_PRC_SKBT_CD);

			if(MANS_PRC_SKBT_CD_012.equals(mansPrcSkbtCd) || MANS_PRC_SKBT_CD_015.equals(mansPrcSkbtCd))
			{
				this.vdslKikiPrcList.add(childMap);
			}
		}
	}

	/**
	 * キャンペーン料金取得処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param paramMap マップ
	 * @throws Throwable 例外
	 */
	@SuppressWarnings("unchecked")
	private void getCampPrc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap paramMap) throws Exception
	{
		// 割引サービス情報リスト
		ArrayList wribSvcInfoList = new ArrayList();
		// 割引サービス単価情報リスト
		ArrayList wribSvcTnkInfoList = new ArrayList();

		// ●上りマッピング(EKK0951B502：マンション割引サービス契約一覧照会)
		HashMap setMap = new HashMap();
		// ＫＥＹ＿回線使用契約番号
		setMap.put(EKK0951B502CBSMsg.KEY_KAISEN_USE_KEI_NO, paramMap.get(ITEM_KAISEN_USE_KEI_NO));
		// ＫＥＹ＿提供方式契約番号
		setMap.put(EKK0951B502CBSMsg.KEY_TK_HOSHIKI_KEI_NO, this.tkHoshikiKeiNo);
		// 機能コード
		setMap.put(EKK0951B502CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		// リクエストパラメータに設定
		param.setData(fixedText, setMap);
		// 検索なしエラー回避
		ignoreSearchError(param, fixedText);

		// ●マンション割引サービス契約一覧照会サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0951B502, TEMP_ID_DTL_EKK0951B502, IN_COL_LIST_EKK0951B502, ERR_COL_EKK0951B502);

		// ●サービスIF結果取得
		ArrayList eKK0951B502List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0951B502);
		outDebugLog("マンション割引サービス契約一覧照会結果【" + eKK0951B502List + "】");

		if(eKK0951B502List == null || eKK0951B502List.size() == 0)
		{
			// キャンペーンが存在しない場合、処理を終了
			return;
		}

		// ★割引サービスコード取得
		for (int i = 0; i < eKK0951B502List.size(); i++)
		{
			HashMap eKK0951B502Map = (HashMap)eKK0951B502List.get(i);
			// マンション表示用キャンペーンコード
			String mansDspCampCd = (String)eKK0951B502Map.get(EKK0951B502CBSMsg1List.MANS_CAMPAIGN_CD);

			if(JFUBPCommon.isNull(mansDspCampCd))
			{
				continue;
			}

			// ●上りマッピング(EKK0841B003：割引サービス一覧照会（基準年月日）)
			setMap = new HashMap();
			// ＫＥＹ＿基準年月日
			setMap.put(EKK0841B003CBSMsg.KEY_KJNYMD, JFUBPCommon.getOpeDate(null));
			// ＫＥＹ＿表示用キャンペーンコード
			setMap.put(EKK0841B003CBSMsg.KEY_DSP_CAMPAIGN_CD, mansDspCampCd);
			// 機能コード
			setMap.put(EKK0841B003CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●割引サービス一覧照会（基準年月日）サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0841B003, TEMP_ID_DTL_EKK0841B003, IN_COL_LIST_EKK0841B003, ERR_COL_EKK0841B003);

			// ●サービスIF結果取得
			ArrayList eKK0841B003List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0841B003);

			if(eKK0841B003List == null || eKK0841B003List.size() == 0)
			{
				continue;
			}

			for (int j = 0; j < eKK0841B003List.size(); j++)
			{
				HashMap eKK0841B003Map = (HashMap)eKK0841B003List.get(j);
				if(eKK0841B003Map != null && eKK0841B003Map.size() > 0)
				{
					// 対象割引サービスか判定
					if(this.campTgWribSvcCdList.size() > 0 
							&& (this.campTgWribSvcCdList.contains((String)eKK0841B003Map.get(EKK0841B003CBSMsg1List.WRIB_SVC_CD))
									|| this.monthFreeCampCdList.contains(mansDspCampCd)))
					{
						// マンションキャンペーンコード
						eKK0841B003Map.put(ITEM_MANS_CAMP_CD, mansDspCampCd);
						// 割引サービス情報を設定
						wribSvcInfoList.add(eKK0841B003Map);
					}
				}
			}
		}

		if(wribSvcInfoList == null || wribSvcInfoList.size() == 0)
		{
			return;
		}

		// ●割引サービス情報取得
		for (int i = 0; i < wribSvcInfoList.size(); i++)
		{
			// 割引サービス情報
			HashMap wribSvcInfoMap = (HashMap)wribSvcInfoList.get(i);
			// 割引サービスコード
			String wribSvcCd = (String)wribSvcInfoMap.get(EKK0841B003CBSMsg1List.WRIB_SVC_CD);

			if(JFUBPCommon.isNull(wribSvcCd))
			{
				continue;
			}

			// ●上りマッピング(EKK0841A010：割引サービス一意照会)
			setMap = new HashMap();
			// ＫＥＹ＿割引サービスコード
			setMap.put(EKK0841A010CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);
			// ＫＥＹ＿予約適用年月日
			setMap.put(EKK0841A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
			// 機能コード
			setMap.put(EKK0841A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●割引サービス一意照会サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0841A010, TEMP_ID_DTL_EKK0841A010, IN_COL_LIST_EKK0841A010, ERR_COL_EKK0841A010);

			// ●サービスIF結果取得
			ArrayList eKK0841A010List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0841A010);

			if(eKK0841A010List != null && eKK0841A010List.size() > 0)
			{
				// 一意照会なので0番目を取得
				HashMap eKK0841A010Map = (HashMap)eKK0841A010List.get(0);
				if(eKK0841A010Map != null && eKK0841A010Map.size() > 0)
				{
					// 割引サービス種別コード
					wribSvcInfoMap.put(ITEM_WRIB_SVC_SBT_CD, (String)eKK0841A010Map.get(EKK0841A010CBSMsg1List.WRIB_SVC_SBT_CD));
				}
			}
		}

		// ★マンションの料金コースコード＆料金プランコード取得
		ArrayList mansPrcCdList = getMansPrcCd(paramMap);

		if(mansPrcCdList == null || mansPrcCdList.size() == 0)
		{
			return;
		}

		// ★割引サービス単価情報取得
		for (int i = 0; i < wribSvcInfoList.size(); i++)
		{
			// 割引サービス情報取得
			HashMap wribSvcInfoMap = (HashMap)wribSvcInfoList.get(i);

			if(wribSvcInfoMap == null || wribSvcInfoMap.size() == 0)
			{
				continue;
			}

			// 割引サービスコード
			String wribSvcCd = (String)wribSvcInfoMap.get(EKK0841B003CBSMsg1List.WRIB_SVC_CD);
			// 割引サービス種別コード
			String wribSvcSbtCd = (String)wribSvcInfoMap.get(ITEM_WRIB_SVC_SBT_CD);
			// マンションキャンペーンコード
			String masCampCd = (String)wribSvcInfoMap.get(ITEM_MANS_CAMP_CD);

			for (int j = 0; j < mansPrcCdList.size(); j++)
			{
				// マンションの各料金コード取得
				HashMap mansPrcCdMap = (HashMap)mansPrcCdList.get(j);

				// ●割引サービス詳細情報取得
				HashMap wribSvcDtlMap = getWribKikan(handle, param, fixedText, paramMap, wribSvcCd, 
						(String)mansPrcCdMap.get(ITEM_PCRS_CD), (String)mansPrcCdMap.get(ITEM_PPLAN_CD));

				// 適用数
				String aplyCnt = JFUStrConst.EMPTY;
				// 割引種別コード
				String wribSbtCd = JFUStrConst.EMPTY;

				if(wribSvcDtlMap != null && wribSvcDtlMap.size() > 0)
				{
					aplyCnt = (String)wribSvcDtlMap.get(EKK2371A010CBSMsg1List.APLY_CNT);
					wribSbtCd = (String)wribSvcDtlMap.get(EKK2371A010CBSMsg1List.WRIB_SBT_CD);
				}

				// ●上りマッピング(EKK0711B501：割引サービス単価一覧照会（キャンペーン用）)
				setMap = new HashMap();
				// ＫＥＹ＿割引サービスコード
				setMap.put(EKK0711B501CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);
				// ＫＥＹ＿サービスコード
				setMap.put(EKK0711B501CBSMsg.KEY_SVC_CD, JFUStrConst.CD00130_01);
				// ＫＥＹ＿料金グループコード
				setMap.put(EKK0711B501CBSMsg.KEY_PRC_GRP_CD, JFUStrConst.CD00133_04);
				// ＫＥＹ＿料金コースコード
				setMap.put(EKK0711B501CBSMsg.KEY_PCRS_CD, mansPrcCdMap.get(ITEM_PCRS_CD));
				// ＫＥＹ＿料金プランコード
				setMap.put(EKK0711B501CBSMsg.KEY_PPLAN_CD, mansPrcCdMap.get(ITEM_PPLAN_CD));
				// 機能コード
				setMap.put(EKK0711B501CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
				// リクエストパラメータに設定
				param.setData(fixedText, setMap);
				// 検索なしエラー回避
				ignoreSearchError(param, fixedText);

				// ●割引サービス単価一覧照会（キャンペーン用）サービスIF実行
				executeSC(handle, param, fixedText, TEMP_ID_EKK0711B501, TEMP_ID_DTL_EKK0711B501, IN_COL_LIST_EKK0711B501, ERR_COL_EKK0711B501);

				// ●サービスIF結果取得
				ArrayList eKK0711B501List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0711B501);

				if(eKK0711B501List == null || eKK0711B501List.size() == 0)
				{
					continue;
				}

				for (int k = 0; k < eKK0711B501List.size(); k++)
				{
					HashMap eKK0711B501Map = (HashMap)eKK0711B501List.get(k);
					if(eKK0711B501Map == null || eKK0711B501Map.size() == 0)
					{
						continue;
					}

					// ●下りマッピング
					// 料金コースコード
					eKK0711B501Map.put(EKK0711B501CBSMsg.KEY_PCRS_CD, setMap.get(EKK0711B501CBSMsg.KEY_PCRS_CD));
					// 料金プランコード
					eKK0711B501Map.put(EKK0711B501CBSMsg.KEY_PPLAN_CD, setMap.get(EKK0711B501CBSMsg.KEY_PPLAN_CD));
					// 適用数(キャンペーン期間)
					eKK0711B501Map.put(ITEM_APLY_CNT, aplyCnt);
					// 割引種別コード
					eKK0711B501Map.put(ITEM_WRIB_SBT_CD, wribSbtCd);
					// 割引サービス種別コード
					eKK0711B501Map.put(ITEM_WRIB_SVC_SBT_CD, wribSvcSbtCd);
					// マンションキャンペーンコード
					eKK0711B501Map.put(ITEM_MANS_CAMP_CD, masCampCd);

					// 割引サービス単価情報に設定
					wribSvcTnkInfoList.add(eKK0711B501Map);
				}
			}
		}

		// ★割引金額取得
		String bfWribSvcCd = JFUStrConst.EMPTY;
		String bfPplanCd = JFUStrConst.EMPTY;
		for (int i = 0; i < wribSvcTnkInfoList.size(); i++)
		{
			// 割引サービス単価情報取得
			HashMap wribSvcTnkInfoMap = (HashMap)wribSvcTnkInfoList.get(i);

			if(wribSvcTnkInfoMap == null || wribSvcTnkInfoMap.size() == 0)
			{
				continue;
			}

			// 割引サービス単価番号
			String wribSvcTnkNo = (String)wribSvcTnkInfoMap.get(EKK0711B501CBSMsg1List.WRIB_SVC_TANKA_NO);
			// 割引サービスコード
			String wribSvcCd = (String)wribSvcTnkInfoMap.get(EKK0711B501CBSMsg1List.WRIB_SVC_CD);
			// 料金コースコード
			String pcrsCd = (String)wribSvcTnkInfoMap.get(EKK0711B501CBSMsg.KEY_PCRS_CD);
			// 料金プランコード
			String pplanCd = (String)wribSvcTnkInfoMap.get(EKK0711B501CBSMsg.KEY_PPLAN_CD);
			// 適用数(キャンペーン期間)
			String aplyCnt = (String)wribSvcTnkInfoMap.get(ITEM_APLY_CNT);
			// 割引種別コード
			String wribSbtCd = (String)wribSvcTnkInfoMap.get(ITEM_WRIB_SBT_CD);
			// 割引サービス種別コード
			String wribSvcSbtCd = (String)wribSvcTnkInfoMap.get(ITEM_WRIB_SVC_SBT_CD);
			// マンションキャンペーンコード
			String masCampCd = (String)wribSvcTnkInfoMap.get(ITEM_MANS_CAMP_CD);

			if(JFUBPCommon.isNull(wribSvcTnkNo))
			{
				continue;
			}

			// 割引サービス同チェック
			if(bfWribSvcCd.equals(wribSvcCd) && bfPplanCd.equals(pplanCd))
			{
				// 同番号の場合、次の処理へ
				continue;
			}
			else
			{
				// 異なる場合、比較対象変数に格納する
				bfWribSvcCd = wribSvcCd;
				bfPplanCd = pplanCd;
			}

			// ●上りマッピング(EAC0251B010：割引料金＜料金シミュレーション＞一覧照会)
			setMap = new HashMap();
			// ＫＥＹ＿システムコード
			setMap.put(EAC0251B010CBSMsg.KEY_SYS_CD, SYS_CD_AC);
			// ＫＥＹ＿料金サービスコード
			setMap.put(EAC0251B010CBSMsg.KEY_PRC_SVC_CD, wribSvcTnkNo);
			// ＫＥＹ＿割引集計コード
// ANK-3636-00-00 MOD START
			setMap.put(EAC0251B010CBSMsg.KEY_WRIB_SHUK_CD, WRIB_SHUK_CD_02);
// ANK-3636-00-00 MOD END
			// 機能コード
			setMap.put(EAC0251B010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●割引料金＜料金シミュレーション＞一覧照会サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EAC0251B010, TEMP_ID_DTL_EAC0251B010, IN_COL_LIST_EAC0251B010, ERR_COL_EAC0251B010);

			// ●サービスIF結果取得
			ArrayList eAC0251B010List = getSifResultList(param, fixedText, TEMP_ID_DTL_EAC0251B010);

			if(eAC0251B010List == null || eAC0251B010List.size() == 0)
			{
				continue;
			}

			for (int j = 0; j < eAC0251B010List.size(); j++)
			{
				HashMap eAC0251B010Map = (HashMap)eAC0251B010List.get(j);
				if(eAC0251B010Map == null || eAC0251B010Map.size() == 0)
				{
					continue;
				}

				// 割引サービス単価番号
				eAC0251B010Map.put(EKK0711B501CBSMsg1List.WRIB_SVC_TANKA_NO, wribSvcTnkNo);
				// 割引サービスコード
				eAC0251B010Map.put(EKK0711B501CBSMsg1List.WRIB_SVC_CD, wribSvcCd);
				// 料金コースコード
				eAC0251B010Map.put(ITEM_PCRS_CD, pcrsCd);
				// 料金プランコード
				eAC0251B010Map.put(ITEM_PPLAN_CD, pplanCd);
				// 適用数(キャンペーン期間)
				eAC0251B010Map.put(ITEM_APLY_CNT, aplyCnt);
				// 割引種別コード
				eAC0251B010Map.put(ITEM_WRIB_SBT_CD, wribSbtCd);
				// 割引サービス種別コード
				eAC0251B010Map.put(ITEM_WRIB_SVC_SBT_CD, wribSvcSbtCd);
				// マンションキャンペーンコード
				eAC0251B010Map.put(ITEM_MANS_CAMP_CD, masCampCd);

				this.campPrcList.add(eAC0251B010Map);
			}
		}

		outDebugLog("対象の割引サービス【" + wribSvcInfoList + "】");
		outDebugLog("割引単価【" + wribSvcTnkInfoList + "】");
		outDebugLog("キャンペーン【" + campPrcList + "】");

	}

	/**
	 * 料金計算処理です。
	 * 
	 * <br>
	 */
	@SuppressWarnings("unchecked")
	private void calcPrc()
	{
		// ●月額料金計算
		for (int i = 0; i < this.monthPrcList.size(); i++)
		{
			// 月額料金情報取得
			HashMap monthPrcMap = (HashMap)this.monthPrcList.get(i);
			// 料金プランコード
			String monthPplanCd = (String)monthPrcMap.get(ITEM_KANYU_KEI_AITAI_PPLAN_CD);
			// 加入契約請求金額
			String montPrc = (String)monthPrcMap.get(ITEM_KANYU_KEI_SEIKY_AMNT);

			if(JFUBPCommon.isNull(monthPplanCd))
			{
				// 料金プランコードが設定されていない場合、次の処理へ
				continue;
			}
			if(JFUBPCommon.isNull(montPrc))
			{
				// 請求金額が設定されていない場合、0円とする
				montPrc = JFUStrConst.S_ZERO;
			}

			for (int j = 0; j < this.campPrcList.size(); j++)
			{
				// キャンペーン情報取得
				HashMap campPrcMap = (HashMap)this.campPrcList.get(j);
				// 料金プランコード
				String campPplanCd = (String)campPrcMap.get(ITEM_PPLAN_CD);
				// 割引種別コード
				String wribSbtCd = (String)campPrcMap.get(ITEM_WRIB_SBT_CD);
				// 割引計算方法コード
				String wribCalcWayCd = (String)campPrcMap.get(ITEM_WRIB_CALC_WAY_CD);
				// 割引金額
				String wribValue = (String)campPrcMap.get(ITEM_WRIB_VALUE);
				// 適用数
				String aplyCnt = (String)campPrcMap.get(ITEM_APLY_CNT);

				if(JFUBPCommon.isNull(wribValue))
				{
					// 割引金額が設定されていない場合、0円とする
					wribValue = JFUStrConst.S_ZERO;
				}

				if(monthPplanCd.equals(campPplanCd) && WRIB_SBT_CD_2.equals(wribSbtCd))
				{
					// 料金プランコードが一致＆割引種別コードが"2(月額割引)"の場合、キャンペーン適用後の月額料金を算出
					int calAmnt = 0;

					if(WRIB_CALC_WAY_CD_1.equals(wribCalcWayCd))
					{
						// 置換型：割引金額が適用後金額となる
						calAmnt = Integer.parseInt(wribValue);
					}
					else if(WRIB_CALC_WAY_CD_4.equals(wribCalcWayCd) && Integer.parseInt(wribValue) < 0)
					{
						// 値引型：月額料金 + 割引金額(マイナス)
						calAmnt = Integer.parseInt(montPrc) + Integer.parseInt(wribValue);
					}
					else if(WRIB_CALC_WAY_CD_4.equals(wribCalcWayCd) && Integer.parseInt(wribValue) >= 0)
					{
						// 値引型：月額料金 - 割引金額(プラス)
						calAmnt = Integer.parseInt(montPrc) - Integer.parseInt(wribValue);
					}
					else
					{
						// 上記以外：月額料金が適用後の金額となる(ここの処理に来ることはないと思うが念のため入れる)
						calAmnt = Integer.parseInt(montPrc);
					}

					if(calAmnt <= 0)
					{
						// 金額が0以下になる場合、0にする
						calAmnt = 0;
					}

					// キャンペーン適用時の月額金額を設定
					monthPrcMap.put(ITEM_CAMP_MONTH_AMNT, String.valueOf(calAmnt));
					// 適用数
					monthPrcMap.put(ITEM_APLY_CNT, aplyCnt);
				}
			}
		}

		// ●初期費用計算
		int shokiSum = 0;
		int shokiCampSum = 0;
		boolean shokiCampFlg = false;
		HashMap shokiPrcSumMap = new HashMap();

		if(chkVdsl(this.tkHoshikiPtnCd))
		{
			// VDSL事務手数料
			int vdslJimPrc = 0;

			// VDSLの場合(買取・レンタル・持込)
			for (int j = 0; j < 3; j++)
			{
				if(this.shokiPrcList.size() == 0 || this.vdslKikiPrcList.size() == 0)
				{
					continue;
				}

				shokiSum = 0;
				for (int i = 0; i < this.shokiPrcList.size(); i++)
				{
					HashMap shokiPrcMap = (HashMap)this.shokiPrcList.get(i);
					String kanyuKeiSeikyAmnt = (String)shokiPrcMap.get(EKK1921B001CBSMsg1List.KANYU_KEI_SEIKY_AMNT);
					String vdslKktkSbtCd = (String)shokiPrcMap.get(ITEM_VDSL_KKTK_SBT_CD);
					String mansPrcSkbtCd = (String)shokiPrcMap.get(EKK1921B001CBSMsg1List.MANS_PRC_SKBT_CD);

					if(JFUBPCommon.isNull(kanyuKeiSeikyAmnt))
					{
						kanyuKeiSeikyAmnt = JFUStrConst.S_ZERO;
					}

					// 4月以降は標準工事費無料キャンペーンのみ適用する。
					if(MANS_PRC_SKBT_CD_010.equals(mansPrcSkbtCd)
							&& JFUBPCommon.getOpeDate(null).compareTo(STDARD_KOJIHI_OPEN_YMD) >= 0)
					{
						// 事務手数料とコードを退避させる
						vdslJimPrc = Integer.parseInt(kanyuKeiSeikyAmnt);
						continue;
					}

					if(j == 0 && JFUStrConst.CD00212_01.equals(vdslKktkSbtCd))
					{
						// 買取
						shokiSum = shokiSum + Integer.parseInt(kanyuKeiSeikyAmnt);
					}
					else if(j == 1 && JFUStrConst.CD00212_02.equals(vdslKktkSbtCd))
					{
						// レンタル
						shokiSum = shokiSum + Integer.parseInt(kanyuKeiSeikyAmnt);
					}
					else if(j == 2 && JFUStrConst.CD00212_02.equals(vdslKktkSbtCd))
					{
						// 買取
						shokiSum = shokiSum + Integer.parseInt(kanyuKeiSeikyAmnt);
					}
				}

				// VDSL機器代金取得
				if(j == 0)
				{
					for (int i = 0; i < this.vdslKikiPrcList.size(); i++)
					{
						HashMap vdslKikiPrcMap = (HashMap)this.vdslKikiPrcList.get(i);
						String mansPrcSkbtCd = (String)vdslKikiPrcMap.get(EKK1921B001CBSMsg1List.MANS_PRC_SKBT_CD);
						String kanyuKeiSeikyAmnt = (String)vdslKikiPrcMap.get(EKK1921B001CBSMsg1List.KANYU_KEI_SEIKY_AMNT);

						if(JFUBPCommon.isNull(kanyuKeiSeikyAmnt))
						{
							kanyuKeiSeikyAmnt = JFUStrConst.S_ZERO;
						}

						if(MANS_PRC_SKBT_CD_015.equals(mansPrcSkbtCd))
						{
							// VDSL機器代金を初期費用合計金額に加える
							shokiSum = shokiSum + Integer.parseInt(kanyuKeiSeikyAmnt);
						}
					}
				}

				if(shokiSum <= 0)
				{
					// 金額が0以下になる場合、0とする
					shokiSum = 0;
				}

				// 事務手数料を最終結果に足す
				shokiSum = shokiSum + vdslJimPrc;

				// 計算結果を格納
				if(j == 0)
				{
					// 買取
					shokiPrcSumMap.put(ITEM_VDSL_01, String.valueOf(shokiSum));
				}
				else if(j == 1)
				{
					// レンタル
					shokiPrcSumMap.put(ITEM_VDSL_02, String.valueOf(shokiSum));
				}
				else if(j == 2)
				{
					// 持込
					shokiPrcSumMap.put(ITEM_VDSL_03, String.valueOf(shokiSum));
				}

				if(j != 1)
				{
					continue;
				}

				for (int k = 0; k < this.campPrcList.size(); k++)
				{
					// キャンペーン情報取得
					HashMap campPrcMap = (HashMap)this.campPrcList.get(k);
					// 割引種別コード
					String wribSbtCd = (String)campPrcMap.get(ITEM_WRIB_SBT_CD);
					// 割引計算方法コード
					String wribCalcWayCd = (String)campPrcMap.get(ITEM_WRIB_CALC_WAY_CD);
					// 割引金額
					String wribValue = (String)campPrcMap.get(ITEM_WRIB_VALUE);

					if(JFUBPCommon.isNull(wribValue))
					{
						// 割引金額が設定されていない場合、0円とする
						wribValue = JFUStrConst.S_ZERO;
					}

					if(WRIB_SBT_CD_1.equals(wribSbtCd))
					{
						if(WRIB_CALC_WAY_CD_1.equals(wribCalcWayCd))
						{
							// 置換型：割引金額が適用後金額となる
							shokiCampSum = Integer.parseInt(wribValue);
							shokiCampFlg = true;
						}
						else if(WRIB_CALC_WAY_CD_4.equals(wribCalcWayCd) && Integer.parseInt(wribValue) < 0)
						{
							// 値引型：月額料金 + 割引金額(マイナス)
							shokiCampSum = shokiSum + Integer.parseInt(wribValue);
							shokiCampFlg = true;
						}
						else if(WRIB_CALC_WAY_CD_4.equals(wribCalcWayCd) && Integer.parseInt(wribValue) >= 0)
						{
							// 値引型：月額料金 - 割引金額(プラス)
							shokiCampSum = shokiSum - Integer.parseInt(wribValue);
							shokiCampFlg = true;
						}
						else
						{
							// 上記以外：月額料金が適用後の金額となる(ここの処理に来ることはないと思うが念のため入れる)
							shokiCampSum = shokiSum;
						}

						break;
					}
				}

				// 事務手数料を最終結果に足す
				shokiCampSum = shokiCampSum + vdslJimPrc;

				if(this.campPrcList.size() > 0 && shokiCampFlg)
				{
					// キャンペーン適用時初期費用合計金額
					shokiPrcSumMap.put(ITEM_SHOKI_CAMP_SUM_AMNT, String.valueOf(shokiCampSum));
				}
			}

			// 初期費用合計金額を設定
			this.shokiPrcList.add(shokiPrcSumMap);
		}
		else
		{
			// 光配線事務手数料
			int hikariJimPrc = 0;

			// VDSL以外の場合
			for (int i = 0; i < this.shokiPrcList.size(); i++)
			{
				HashMap shokiPrcMap = (HashMap)this.shokiPrcList.get(i);
				String kanyuKeiSeikyAmnt = (String)shokiPrcMap.get(EKK1921B001CBSMsg1List.KANYU_KEI_SEIKY_AMNT);
				String mansPrcSkbtCd = (String)shokiPrcMap.get(EKK1921B001CBSMsg1List.MANS_PRC_SKBT_CD);

				if(JFUBPCommon.isNull(kanyuKeiSeikyAmnt))
				{
					kanyuKeiSeikyAmnt = JFUStrConst.S_ZERO;
				}

				if(JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(this.tkHoshikiPtnCd) && MANS_PRC_SKBT_CD_010.equals(mansPrcSkbtCd))
				{
					// 光配線の場合、事務手数料とコードを退避させる
					hikariJimPrc = Integer.parseInt(kanyuKeiSeikyAmnt);
					continue;
				}
				// 2018年4月以降はマンションの契約事務手数料無料キャンペーンは終了する。
				if((JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(this.tkHoshikiPtnCd) 
						|| JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(this.tkHoshikiPtnCd)) 
						&& MANS_PRC_SKBT_CD_013.equals(mansPrcSkbtCd)
						&& JFUBPCommon.getOpeDate(null).compareTo(STDARD_KOJIHI_OPEN_YMD) >= 0)
				{
					// イーサ、ギガイーサの場合、事務手数料とコードを退避させる
					hikariJimPrc = Integer.parseInt(kanyuKeiSeikyAmnt);
					continue;
				}

				// キャンペーン適用前金額計算
				shokiSum = shokiSum + Integer.parseInt(kanyuKeiSeikyAmnt);
			}

			for (int j = 0; j < this.campPrcList.size(); j++)
			{
				// キャンペーン情報取得
				HashMap campPrcMap = (HashMap)this.campPrcList.get(j);
				// 割引種別コード
				String wribSbtCd = (String)campPrcMap.get(ITEM_WRIB_SBT_CD);
				// 割引計算方法コード
				String wribCalcWayCd = (String)campPrcMap.get(ITEM_WRIB_CALC_WAY_CD);
				// 割引金額
				String wribValue = (String)campPrcMap.get(ITEM_WRIB_VALUE);

				if(JFUBPCommon.isNull(wribValue))
				{
					// 割引金額が設定されていない場合、0円とする
					wribValue = JFUStrConst.S_ZERO;
				}

				if(WRIB_SBT_CD_1.equals(wribSbtCd))
				{
					if(WRIB_CALC_WAY_CD_1.equals(wribCalcWayCd))
					{
						// 置換型：割引金額が適用後金額となる
						shokiCampSum = Integer.parseInt(wribValue);
						shokiCampFlg = true;
					}
					else if(WRIB_CALC_WAY_CD_4.equals(wribCalcWayCd) && Integer.parseInt(wribValue) < 0)
					{
						// 値引型：月額料金 + 割引金額(マイナス)
						shokiCampSum = shokiSum + Integer.parseInt(wribValue);
						shokiCampFlg = true;
					}
					else if(WRIB_CALC_WAY_CD_4.equals(wribCalcWayCd) && Integer.parseInt(wribValue) >= 0)
					{
						// 値引型：月額料金 - 割引金額(プラス)
						shokiCampSum = shokiSum - Integer.parseInt(wribValue);
						shokiCampFlg = true;
					}
					else
					{
						// 上記以外：月額料金が適用後の金額となる(ここの処理に来ることはないと思うが念のため入れる)
						shokiCampSum = shokiSum;
					}

					break;
				}
			}

			// 金額が0以下となる場合、0とする
			if(shokiSum <= 0)
			{
				shokiSum = 0;
			}
			if(shokiCampSum <= 0)
			{
				shokiCampSum = 0;
			}

			// 光配線、イーサ、ギガイーサの場合、事務手数料を最終結果に足す
			if(JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(this.tkHoshikiPtnCd) ||
				JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(this.tkHoshikiPtnCd) ||
				JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(this.tkHoshikiPtnCd))
			{
				shokiSum = shokiSum + hikariJimPrc;
				shokiCampSum = shokiCampSum + hikariJimPrc;
			}

			// 初期費用合計金額を設定
			if( this.shokiPrcList.size() > 0)
			{
				shokiPrcSumMap.put(ITEM_SHOKI_SUM_AMNT, String.valueOf(shokiSum));
			}
			if( this.campPrcList.size() > 0 && shokiCampFlg)
			{
				shokiPrcSumMap.put(ITEM_SHOKI_CAMP_SUM_AMNT, String.valueOf(shokiCampSum));
			}
			this.shokiPrcList.add(shokiPrcSumMap);
		}

		// ●コース変更手数料計算
		int crsChgPrcSum = 0;
		HashMap crsChgPrcSumMap = new HashMap();

		for (int i = 0; i < this.crsChgPrcList.size(); i++)
		{
			HashMap crsChgPrcMap = (HashMap)this.crsChgPrcList.get(i);
			if(crsChgPrcMap == null || crsChgPrcMap.size() == 0)
			{
				continue;
			}

			// 一時支払料金額
			String tmpPayPrcAmnt = (String)crsChgPrcMap.get(EKK0721A010CBSMsg1List.TMP_PAY_PRC_AMNT);
			if(JFUBPCommon.isNull(tmpPayPrcAmnt))
			{
				tmpPayPrcAmnt = JFUStrConst.S_ZERO;
			}

			// 計算
			crsChgPrcSum = crsChgPrcSum + Integer.parseInt(tmpPayPrcAmnt);
		}

		// コース変更手数料の合計金額を設定
		crsChgPrcSumMap.put(ITEM_CRS_CHG_SUM_AMNT, String.valueOf(crsChgPrcSum));
		this.crsChgPrcList.add(crsChgPrcSumMap);
	}

	/**
	 * 月額無料キャンペーンチェック処理です。
	 * 
	 * <br>
	 */
	@SuppressWarnings("unchecked")
	private void chkMonthFreeCamp()
	{
		for(int j = 0; j < this.campPrcList.size(); j++)
		{
			HashMap childMap = (HashMap)this.campPrcList.get(j);
			// マンションキャンペーンコード
			String mansCampCd = (String)childMap.get(ITEM_MANS_CAMP_CD);
			// マンションキャンペーンコード
			String aplyCnt = (String)childMap.get(ITEM_APLY_CNT);

			// 月額無料キャンペーンコードチェック
			if(this.monthFreeCampCdList.contains(mansCampCd))
			{
				// 情報を設定
				HashMap outMap = new HashMap();
				// 月額無料キャンペーンフラグ
				outMap.put(ITEM_MONTH_FREE_CAMP_FLG, true);
				// マンションキャンペーンコード
				outMap.put(ITEM_MANS_CAMP_CD, mansCampCd);
				// 適用数
				outMap.put(ITEM_APLY_CNT, aplyCnt);

				this.monthFreeCampList.add(outMap);
				break;
			}
		}
	}

	/**
	 * リクエストパラメータに返却値を設定します。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void setResult(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// 結果格納マップ
		HashMap resultMap = new HashMap();

		// リクエストパラメータを初期化
		param.removeData(fixedText);

		// ●結果格納
		// 提供方式契約料金リスト
		resultMap.put(ITEM_TK_HOSHIKI_KEI_PRC_LIST, this.tkHoshikiKeiPrcList);
		// 月額用金リスト
		resultMap.put(ITEM_MONTH_PRC_LIST, this.monthPrcList);
		// 初期費用リスト
		resultMap.put(ITEM_SHOKI_PRC_LIST, this.shokiPrcList);
		// 工事費リスト
		resultMap.put(ITEM_KOJI_PRC_LIST, this.kojiPrcList);
		// VDSL機器料金リスト
		resultMap.put(ITEM_VDSL_KIKI_PRC_LIST, this.vdslKikiPrcList);
		// コース変更手数料リスト
		resultMap.put(ITEM_CRS_CHG_PRC_LIST, this.crsChgPrcList);
		// キャンペーン料金リスト
		resultMap.put(ITEM_CAMP_PRC_LIST, this.campPrcList);
		// 月額用金リスト
		resultMap.put(ITEM_MONTH_FREE_CAMP_LIST, this.monthFreeCampList);

		// リクエストパラメータに設定
		param.setData(fixedText, resultMap);
	}

	/**
	 * 一時支払料金情報取得処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param paramMap マップ
	 * @return 取得結果
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getTmpPayPrcNo(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap paramMap) throws Exception
	{
		// 結果リスト
		ArrayList resultList = new ArrayList();
		// 上りマップ
		HashMap setMap = null;

		// ループカウント
		int loopCnt = 1;
		if(chkVdsl(this.tkHoshikiPtnCd))
		{
			// VDSLの場合買取とレンタルがある為、カウントを2とする
			loopCnt = 2;
		}

		// EKK1021C011結果リスト
		ArrayList eKK1021C011List = new ArrayList();

		for (int i = 0; i < loopCnt; i++)
		{
			// ●上りマッピング(EKK1021C011：事務手数料判定結果取得)
			setMap = new HashMap();
			// 異動区分
			setMap.put(EKK1021C011CBSMsg.IDO_DIV, JFUStrConst.CD00576_00001);
			// 申込料金グループコード
			setMap.put(EKK1021C011CBSMsg.MSKM_PRC_GRP_CD, JFUStrConst.CD00133_04);
			// マンション識別コード
			setMap.put(EKK1021C011CBSMsg.MANS_SKBT_CD, JFUStrConst.CD00002_1);
			// 提供方式コード(IN項目値)
			setMap.put(EKK1021C011CBSMsg.TK_HOSHIKI_CD, (String)paramMap.get(ITEM_TK_HOSHIKI_CD));

			// 機器提供種別コード(VDSLの場合のみ)
			if(chkVdsl(this.tkHoshikiPtnCd))
			{
				if(i == 0)
				{
					// 買取
					setMap.put(EKK1021C011CBSMsg.KKTK_SBT_CD, JFUStrConst.CD00212_01);
				}
				else if(i == 1)
				{
					// レンタル
					setMap.put(EKK1021C011CBSMsg.KKTK_SBT_CD, JFUStrConst.CD00212_02);
				}
			}

			// 機能コード
			setMap.put(EKK1021C011CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●事務手数料判定結果取得サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK1021C011, TEMP_ID_DTL_EKK1021C011, IN_COL_LIST_EKK1021C011, ERR_COL_EKK1021C011);

			// ●サービスIF結果取得
			ArrayList jimtResultList = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK1021C011);

			if (jimtResultList == null || jimtResultList.size() == 0)
			{
				continue;
			}

			// ●下りマッピング
			for (int j = 0; j < jimtResultList.size(); j++)
			{
				HashMap jimtMap = (HashMap)jimtResultList.get(j);

				if(jimtMap == null || jimtMap.size() == 0)
				{
					continue;
				}

				// 機器提供種別コード(VDSLの場合のみ)
				if(chkVdsl(this.tkHoshikiPtnCd))
				{
					// VDSL買取レンタルを判別する為、機器種別コードを設定
					jimtMap.put(ITEM_VDSL_KKTK_SBT_CD, setMap.get(EKK1021C011CBSMsg.KKTK_SBT_CD));
				}

				eKK1021C011List.add(jimtMap);
			}
		}

		// 結果が存在しない場合、殻のリストを返却
		if(eKK1021C011List == null || eKK1021C011List.size() == 0)
		{
			return resultList;
		}

		// ●一時支払料金情報取得処理
		for (int i = 0; i < eKK1021C011List.size(); i++)
		{
			// 取得結果マップ
			HashMap jimtMap = (HashMap)eKK1021C011List.get(i);
			if(jimtMap == null || jimtMap.size() == 0)
			{
				continue;
			}

			// 一時支払料金番号
			String tmpPayPrcNo = (String)jimtMap.get(EKK1021C011CBSMsg1List.TMP_PAY_PRC_NO);
			if(JFUBPCommon.isNull(tmpPayPrcNo))
			{
				continue;
			}

			// VDSL機器種別コード
			String vdslKktkSbtCd = (String)jimtMap.get(ITEM_VDSL_KKTK_SBT_CD);

			// ●上りマッピング(EKK0721A010：一時支払料金一意照会)
			// 上りマップ
			setMap = new HashMap();
			// ＫＥＹ＿一時支払料金番号
			setMap.put(EKK0721A010CBSMsg.KEY_TMP_PAY_PRC_NO, tmpPayPrcNo);
			// 機能コード
			setMap.put(EKK0721A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●一時支払料金一意照会サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0721A010, TEMP_ID_DTL_EKK0721A010, IN_COL_LIST_EKK0721A010, ERR_COL_EKK0721A010);

			// ●サービスIF結果取得
			ArrayList eKK0721A010List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0721A010);

			// ●下りマッピング
			if(eKK0721A010List != null && eKK0721A010List.size() > 0)
			{
				for (int j = 0; j < eKK0721A010List.size(); j++)
				{
					// 取得結果マップ
					HashMap tmpPayPrcMap = (HashMap)eKK0721A010List.get(j);
					if(tmpPayPrcMap == null || tmpPayPrcMap.size() == 0)
					{
						continue;
					}

					// VDSL機器種別コード
					tmpPayPrcMap.put(ITEM_VDSL_KKTK_SBT_CD, vdslKktkSbtCd);

					// 一時支払料金情報リストに結果マップを追加
					resultList.add(tmpPayPrcMap);
				}
			}
		}

		return resultList;
	}

	/**
	 * マンションの各料金コード取得処理です。
	 * 
	 * <br>
	 * @param paramMap マップ
	 * @return 取得結果
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getMansPrcCd(HashMap paramMap)
	{
		// 結果リスト
		ArrayList mansPrcCdList = new ArrayList();
		// セットマップ
		HashMap setMap = new HashMap();

		if(JFUStrConst.CD00590_001.equals(paramMap.get(ITEM_TK_HOSHIKI_CD)))
		{
			// ●イーサの場合
			setMap = new HashMap();

			if(JFUBPCommon.isNull(this.pairId))
			{
				// ★100M
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A54);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5401);
			}
			else
			{
				// ★100Mプレミアム
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A70);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA7001);
			}

			// リストに設定
			mansPrcCdList.add(setMap);
		}
		else if(JFUStrConst.CD00590_004.equals(paramMap.get(ITEM_TK_HOSHIKI_CD)))
		{
			// ●VDSL2の場合
			setMap = new HashMap();

			if(JFUBPCommon.isNull(this.pairId))
			{
				// ★100M
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A50);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5001);
			}
			else
			{
				// ★100Mプレミアム
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A69);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA6901);
			}

			// リストに設定
			mansPrcCdList.add(setMap);
		}
		else if(JFUStrConst.CD00590_005.equals(paramMap.get(ITEM_TK_HOSHIKI_CD)))
		{
			// ●VDSL3の場合
			setMap = new HashMap();

			if(JFUBPCommon.isNull(this.pairId))
			{
				// ★100M
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A51);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5101);
			}
			else
			{
				// ★100Mプレミアム
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A69);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA6901);
			}

			// リストに設定
			mansPrcCdList.add(setMap);
		}
		else if(JFUStrConst.CD00590_006.equals(paramMap.get(ITEM_TK_HOSHIKI_CD)))
		{
			// ●VDSL4の場合
			setMap = new HashMap();

			if(JFUBPCommon.isNull(this.pairId))
			{
				// ★100M
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A52);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5201);
			}
			else
			{
				// ★100Mプレミアム
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A69);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA6901);
			}

			// リストに設定
			mansPrcCdList.add(setMap);
		}
		else if(JFUStrConst.CD00590_007.equals(paramMap.get(ITEM_TK_HOSHIKI_CD)))
		{
			// ●VDSL5の場合
			setMap = new HashMap();

			if(JFUBPCommon.isNull(this.pairId))
			{
				// ★100M
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A53);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5301);
			}
			else
			{
				// ★100Mプレミアム
				// 料金コースコード
				setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A69);
				// 料金プランコード
				setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA6901);
			}

			// リストに設定
			mansPrcCdList.add(setMap);
		}
		else if(JFUStrConst.CD00590_008.equals(paramMap.get(ITEM_TK_HOSHIKI_CD)))
		{
			// ●光配線の場合
			for (int i = 0; i < 3; i++)
			{
				setMap = new HashMap();

				if(i == 0 && JFUBPCommon.isNull(this.pairId))
				{
					// ★100M
					// 料金コースコード
					setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A56);
					// 料金プランコード
					setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5601);
				}
				else if(i == 0 && !JFUBPCommon.isNull(this.pairId))
				{
					// ★100Mプレミアム
					// 料金コースコード
					setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A71);
					// 料金プランコード
					setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA7101);
				}
				else if(i == 1)
				{
					// ★1G
					// 料金コースコード
					setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A57);
					// 料金プランコード
					setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5701);
				}
				else if(i == 2)
				{
					// ★100Mライト
					// 料金コースコード
					setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A56);
					// 料金プランコード
					setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5611);
				}

				// リストに設定
				mansPrcCdList.add(setMap);
			}
		}
		else if(JFUStrConst.CD00590_010.equals(paramMap.get(ITEM_TK_HOSHIKI_CD)))
		{
			// ●ギガイーサの場合
			for (int i = 0; i < 2; i++)
			{
				setMap = new HashMap();

				if(i == 0 && JFUBPCommon.isNull(this.pairId))
				{
					// ★100M
					// 料金コースコード
					setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A54);
					// 料金プランコード
					setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5401);
				}
				else if(i == 0 && !JFUBPCommon.isNull(this.pairId))
				{
					// ★100Mプレミアム
					// 料金コースコード
					setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A70);
					// 料金プランコード
					setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA7001);
				}
				else if(i == 1)
				{
					// ★1G
					// 料金コースコード
					setMap.put(ITEM_PCRS_CD, JFUStrConst.CD00134_A55);
					// 料金プランコード
					setMap.put(ITEM_PPLAN_CD, JFUStrConst.CD00565_PA5501);
				}

				// リストに設定
				mansPrcCdList.add(setMap);
			}
		}
		return mansPrcCdList;
	}

	/**
	 * 割引適用期間取得処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param paramMap マップ
	 * @param wribSvcCd 割引サービスコード
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @return 結果
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private HashMap getWribKikan(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap paramMap,
			String wribSvcCd, String pcrsCd, String pplanCd) throws Exception
	{
		// 結果
		HashMap result = null;

		// ●上りマッピング(EKK0711B001：割引サービス単価一覧照会（割引サービスコード）)
		HashMap setMap = new HashMap();
		// ＫＥＹ＿割引サービスコード
		setMap.put(EKK0711B001CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);
		// 機能コード
		setMap.put(EKK0711B001CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1);
		// リクエストパラメータに設定
		param.setData(fixedText, setMap);
		// 検索なしエラー回避
		ignoreSearchError(param, fixedText);

		// ●割引サービス単価一覧照会（割引サービスコード）サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0711B001, TEMP_ID_DTL_EKK0711B001, IN_COL_LIST_EKK0711B001, ERR_COL_EKK0711B001);

		// ●サービスIF結果取得
		ArrayList eKK0711B001List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK0711B001);

		if(eKK0711B001List == null || eKK0711B001List.size() == 0)
		{
			return result;
		}

		for (int i = 0; i < eKK0711B001List.size(); i++)
		{
			HashMap eKK0711B001Map = (HashMap)eKK0711B001List.get(i);
			if(eKK0711B001Map == null || eKK0711B001Map.size() == 0)
			{
				continue;
			}

			// 割引サービス詳細コード
			String wribSvcDtlCd = (String)eKK0711B001Map.get(EKK0711B001CBSMsg1List.WRIB_SVC_DTL_CD);
			// 料金コースコード
			String eKK0711B001PcrsCd = (String)eKK0711B001Map.get(EKK0711B001CBSMsg1List.PCRS_CD);
			// 料金プランコード
			String eKK0711B001PplanCd = (String)eKK0711B001Map.get(EKK0711B001CBSMsg1List.PPLAN_CD);

			if(!(eKK0711B001PcrsCd.equals(pcrsCd) && eKK0711B001PplanCd.equals(pplanCd)))
			{
				continue;
			}

			// ●上りマッピング(EKK2371A010：割引サービス詳細一意照会)
			setMap = new HashMap();
			// ＫＥＹ＿割引サービス詳細コード
			setMap.put(EKK2371A010CBSMsg.KEY_WRIB_SVC_DTL_CD, wribSvcDtlCd);
			// ＫＥＹ＿予約適用年月日
			setMap.put(EKK2371A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
			// 機能コード
			setMap.put(EKK2371A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2);
			// リクエストパラメータに設定
			param.setData(fixedText, setMap);
			// 検索なしエラー回避
			ignoreSearchError(param, fixedText);

			// ●割引サービス詳細一意照会サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK2371A010, TEMP_ID_DTL_EKK2371A010, IN_COL_LIST_EKK2371A010, ERR_COL_EKK2371A010);

			// ●サービスIF結果取得
			ArrayList eKK2371A010List = getSifResultList(param, fixedText, TEMP_ID_DTL_EKK2371A010);

			if(eKK2371A010List == null || eKK2371A010List.size() == 0)
			{
				continue;
			}

			for (int j = 0; j < eKK2371A010List.size(); j++)
			{
				HashMap eKK2371A010Map = (HashMap)eKK2371A010List.get(j);
				if(eKK2371A010Map != null && eKK2371A010Map.size() > 0)
				{
					// 適用数(キャンペーン期間)
					result = eKK2371A010Map;
					break;
				}
			}

			// 値が設定されていれば終了
			if(result != null && result.size() > 0)
			{
				break;
			}
		}

		return result;
	}

	/**
	 * VDSL判定処理です。
	 * <br>
	 * @param tkHoshikiPtnCd 提供方式パターンコード
	 * @return 判定結果
	 */
	private boolean chkVdsl(String tkHoshikiPtnCd)
	{
		return JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(tkHoshikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(tkHoshikiPtnCd);
	}

	/**
	 * サービスIF結果リスト取得処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param listNm リスト名
	 * @return 結果
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getSifResultList(IRequestParameterReadWrite param, String fixedText, String listNm) throws Exception
	{
		ArrayList resultList = null;

		if((boolean)((HashMap)param.getData(fixedText)).containsKey(listNm))
		{
			resultList = (ArrayList)((HashMap)param.getData(fixedText)).get(listNm);
		}

		return resultList;
	}

	/**
	 * デバッグログを出力します。
	 * 
	 * @param dumpObj 出力するオブジェクト
	 */
	private void outDebugLog(Object dumpObj)
	{
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), dumpObj, null, null, null);
	}
}