/*******************************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 * システム名        ：eo顧客基幹システム
 * モジュール名      ：JFUPrcSimulationCC
 * ソースファイル名  ：JFUPrcSimulationCC.java
 * 作成者            ：富士通
 * 日付              ：2012年04月10日
 *＜機能概要＞
 * 料金シミュレーション共通コンポーネント部品
 *＜修正履歴＞
 * バージョン    修正日      修正者      修正内容
 * ｖ1.00.00
 * ｖ4.00.00     2013/02/06  FJ) 齋藤    【IT1-2013-0000188】モバイルの事務手数料見直し
 * ｖ4.00.00     2013/02/09  FJ) 齋藤    【IT1-2013-0000255】割引サービス障害対応（マンション申込時）
 * ｖ4.00.00     2013/02/19  FJ) 齋藤    セット割・手動適用CP対応
 * ｖ5.00.00     2013/02/21  FJ）齋藤    【ANK-1222-00-00】スマートリンク料金シミュレーション対応
 * ｖ5.01.00     2013/03/01  FJ）岡井    【IT1-2013-0000342】スマートリンク文言表示制御対応
 * ｖ5.02.00     2013/03/02  FJ）岡井    【ST2-2013-0001259】マンション100Mライト料金対応
 * ｖ5.03.00     2013/03/08  FJ）岡井    【IT1-2013-0000407】セット割の不正表示対応
 * ｖ5.04.00     2013/03/16  FJ）岡井    【ST2-2013-0001186】セット割金額不正表示対応
 * ｖ5.05.00     2013/03/18  FJ）岡井    【ST2-2013-0001533】即割選択時の金額不正対応
 * ｖ5.06.00     2013/03/21  FJ）岡井    【IT1-2013-0000571】一時金支払番号変更対応
 * ｖ5.07.00     2013/03/26  FJ）岡井    【OT-2013-0000289】モバイル通信機器割引対応
 * ｖ5.08.00     2013/03/27  FJ）岡井    マンション番ポ表示不正対応
 * ｖ5.09.00     2013/04/04  FJ）岡井    料金シミュ不具合修正
 * ｖ5.10.00     2013/04/13  FJ）岡井    【内部障害】Wi-Fiスポット事務手数料無料CP対応
 * ｖ5.11.00     2013/04/18  FJ）岡井    料金シミュ不具合対応
 * ｖ5.12.00     2013/04/23  FJ）岡井    料金シミュ不具合対応
 * ｖ5.13.00     2013/04/30  FJ）岡井    【IKK-2013-0001027 関連対応】マンション事務手数料(イーサネット)対応
 * ｖ5.14.00     2013/05/13  FJ）岡井    【内部障害】ネットモバイルセット割障害対応
 * ｖ5.15.00     2013/05/20  FJ）岡井    【内部障害】既契約情報とのセット割障害対応
 * ｖ5.16.00     2013/05/27  FJ）岡井    【内部障害】テレビコース：コンパクトHDコース対応(契約新規)
 * ｖ5.17.00     2013/06/04  FJ）岡井    【内部障害】100Mライト選択時の挙動不正修正
 * ｖ5.18.00     2013/06/12  FJ）岡井    【LT-2013-0000033】全戸一括・居住者一括の定額料金取得コード修正
 * ｖ5.19.00     2013/07/04  FJ）岡井    【内部障害】マンション電話工事無料キャンペーン対応(TV選択または既契約時)
 * ｖ5.20.00     2013/07/11  FJ）岡井    【内部障害】ネットモバイルセット割(別場所回線考慮)対応
 * ｖ6.00.00     2013/10/10  FJ）岡井    【ANK-1580-00-00】eoスマートリンク改修対応
 * ｖ7.00.00     2014/02/03  FJ）岡井    【ANK-1961-00-00】eo光スティックレンタル代金2ヶ月無料対応
 * ｖ8.00.00     2013/12/24  FJ）岡井    【ANK-1584-00-00】L2-MVNO(本体)対応
 * ｖ8.01.00     2014/01/10  FJ）大島    【ANK-1796-00-00】STB提供メニュー拡充(機器追加・価格改定)A
 * ｖ8.02.00     2014/01/28  FJ）岡井    【ANK-1589-00-00】消費増税に伴う料金施策
 * ｖ8.03.00     2014/01/28  FJ）岡井    【ANK-1687-00-00】フロントＳ料金シミュレーションの割引やキャンペーン表示順設定
 * ｖ9.00.00     2014/05/01  FJ）岡井    【ANK-2054-00-00】スマートリンク端末補償
 * ｖ9.00.00     2014/05/15  FJ）川瀬    【ANK-2054-00-00】スマートリンク端末補償
 * ｖ10.00.00    2014/07/09  FJ) 文元    【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
 * ｖ10.00.00    2014/08/11  FJ) 岡井    【ANK-2223-00-00】スマリンタブレット無料キャンペーンのＷＥＢ画面への拡充
 *  v12.00.00    2014/11/18  FJ) 文元    【ANK-2370-00-00】＜2014年12月開始＞スマートリンク・タブレット「Z」CP
 *  v20.00.00    2016/01/06  FJ) 岡井    【ANK-2612-00-00】１０Ｇコース導入対応
 *  v25.00.00    2016/04/01  FJ) 張本    【ANK-2530-00-00】ＴＶ新コースおよびＶＯＤ導入
 *  v26.00.00    2016/08/02  FJ) 岡井    【ANK-2809-00-00】料金シミュレーションの表示改善
 *  v32.00.00    2017/04/25  FJ) 岡井    【ANK-3149-00-00】新セキュリティパック導入
 *  v32.00.00    2017/05/29  FJ) 中田    【ANK-3162-00-00】7月1日CP切替対応
 *  v32.00.00    2017/06/07  FJ) 西川    【ANK-3100-00-00】スマートコンパクト受付対応
 *  v32.00.00    2017/06/07  FJ) 美濃原  【ANK-3162-00-00】7月1日CP切替対応
 *  v33.00.00    2017/07/12  FJ) 杉本    【ANK-3133-00-00】料金シミュレーション画面の税抜き・ＣＰ表示
 *  v33.00.01    2017/08/14  FJ) 謝      【ANK-3217-00-00】GHサービス開始対応
 *  v33.00.02    2017/08/23  FJ) 杉本    【IT1-2017-0000103】料金シミュレーション画面の税抜き・ＣＰ表示
 *  v33.00.03    2017/08/24  FJ) 杉本    【IT1-2017-0000105】料金シミュレーション画面の税抜き・ＣＰ表示
 *  v36.00.00    2017/11/29  FJ) 杉本    【ANK-3296-00-00】標準工事費分割請求
 *  v36.01       2018/02/27  FJ) 張本    【ANK-3368-00-00】4月CP切替対応
 *  v38.00.00    2018/08/23  FJ) 木村    【ANK-3437-00-00】一般Webでの即割案内文言表示
 *  v38.00.01    2018/09/12  FJ) 河邊    【OM-2018-0000878】マンションTV申込による料金シュミレーションの表示不備
 *  v39.00.00    2018/09/12  FJ) 岡井    【ANK-3488-00-00】4KSTB（ACASチップ）導入対応
 *  v40.00       2018/09/07  FJ）張本    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
 *  v44.00       2019/06/28  FJ）西川    【ANK-3712-00-00】【10G】WEB画面の固定文言変更
 *  v47.0.0      2019/06/28  FJ) 大島    【ANK-3636-00-00】消費増税対応（8%⇒10%）
 *  v47.0.0      2019/08/23  FJ) 大島    【ANK-3680-00-00】201910CP切替案件他
 *  v47.0.0      2019/12/17  FJ) 大島    【ANK-3769-00-00】202002CP切替案件他
 *  v49.0.0      2020/06/18  FJ) 岡井    【ANK-3840-00-00】テレビリースサービス新規申込対応
 *  v50.00       2020/09/09  FJ) 西川    【ANK-3805-00-00】無線ルーター機能無料マンション対応
 *  v51.00       2020/11/12  FJ）張本    【ANK-3949-00-00】Netflix導入対応（STEP1）
 *  v52.00       2021/01/22  FJ) 張本    【ANK-3987-00-00】Netflix導入対応（STEP2）
 *  v52.01       2021/03/02  FJ）美濃原  【ANK-3991-00-00】STB新機種追加(2021年4月〜)
 *  v53.01       2020/04/14  GDC) ミコ   【ANK-3951-00-00】「競争ルールの検証に関するWG」に関するシステム対応
 *  v54.00       2021/07/19  FJ) 岡井    【ANK-4109-00-00】政策対応（競争ルール）テレビ＋電話申込時の標準工事費一括値引きCP料金シミュレーション対応
 *  v54.01       2021/08/20  FJ) 西川    【ANK-4109-02-00】政策対応（競争ルール）テレビ＋電話申込時の標準工事費一括値引きCP料金シミュレーション対応(シミュレーション表示変更)
 *  v54.02       2021/08/20  FJ）張本    【ANK-4130-00-00】202110月CP対応
 *  v56.00       2021/12/06  FJ）美濃原  【ANK-4103-00-00】マンション光コンセントタイプのWeb受付対応
 *  v56.01       2022/01/04  FJ）西川    【ANK-4018-00-00】【eo定期】5G・10Gコースの料金改訂対応
 *  v59.00       2022/04/19  FJ) 張本    【ANK-4248-00-00】消費者保護ガイドライン改正対応
 *  v60.00       2022/08/29  FJ) 張本    【ANK-4330-00-00】消費者保護ガイドライン改正対応（Step2）
 *  v61.00       2023/04/04  FJ) 張本    【ANK-4315-00-00】【eo定期】eoホームゲートウェイ導入対応
 *  v70.00       2024/02/05  FJ) 美濃原  【ANK-4551-00-00】202404CP対応
 *  v71.00       2024/08/22  FJ) 飯田    【ANK-4607-00-00】電話バンドルキャンペーン対応(202410月CP)
 *  v73.00       2024/10/31  FJ) 余野木  【ANK-4427-00-00】NTT卸対応
*   v73.01       2024/11/15  FJ) 張本    【ANK-4493-00-00】【eo定期】光配線マンションのコースアップ対応
 *  v73.02       2025/01/23  FJ) 余野木  【ANK-4427-00-00】NTT卸対応
 *  v74.00       2025/01/16  FJ) 余野木  【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
********************************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.fujitsu.futurity.bp.custom.constant.JACPrcSimulationMsg;
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.AbstractCommonComponent;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JACStrConst;
import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JACCommonUtil;
import eo.common.util.JPCFomatString;
import eo.common.util.JPCUtilCommon;
import eo.ejb.cbs.cbsmsg.EAC0231B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EAC0231B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EAC0251B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EAC0251B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EAC0281B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EAC0281B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECH0401B020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0401B020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EFU0161B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EFU0161B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EFU0181B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EFU0181B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EFU0351B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EFU0351B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B028CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B028CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B519CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B519CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B524CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B524CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0351B513CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351B513CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491B005CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491B005CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0591B005CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591B005CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0591B502CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591B502CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0711B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0711B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0721B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0721B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1921B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1921B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2521B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2521B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2831B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2831B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0311A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0311A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg1List;

/**
 * 料金シミュレーション共通コンポーネントクラス
 *
 * @author 富士通)
 */
public class JFUPrcSimulationCC extends AbstractCommonComponent
{
	/** テレビ 料金プランコード（主契約） */
// ANK-4592-00-00 MOD START
	private static final List<String> TV_TOP_PLAN_CD =
			Arrays.asList(JFUStrConst.CD00565_PA8501, JFUStrConst.CD00565_PA8503, JFUStrConst.CD00565_PA8505,
					JFUStrConst.CD00565_PA8601, JFUStrConst.CD00565_PA8603, JFUStrConst.CD00565_PA8605,
					JFUStrConst.CD00565_PA8701, JFUStrConst.CD00565_PA8703, JFUStrConst.CD00565_PA8705,
					JFUStrConst.CD00565_PA3701, JFUStrConst.CD00565_PF0501, JFUStrConst.CD00565_PAC001, JFUStrConst.CD00565_PAC101);
// ANK-4592-00-00 MOD END
	/** テレビ 地デジBS、地デジBS スターチャンネル */
	private static final List<String> TV_BS_PCRS_CD =
			Arrays.asList(JFUStrConst.CD00134_A37, JFUStrConst.CD00134_F05);
	/** 同日を含む */
	private static final String DOJITU_1 = "1";
	/** 2017年7月1日よりパターンIDを切替（7月1日キャンペーン） */
	private static final String CP_START_20170701 = "20170701";
// ANK-3636-00-00 MOD START
	/** 一時金支払料金番号：電話番号割当手数料（番ポ手数料） */
	private static final String TMP_PAY_PRC_NO_BMP = "210450026010";
	/** 一時金支払料金番号：eo光テレビ追加ＳＴＢ設置工事費(ホームタイプ、メゾンタイプ) */
	private static final String TMP_PAY_PRC_NO_ADD_STB_KZH = "210080756010";
	/** 一時金支払料金番号：eo光ネット契約事務手数料(マンションタイプ・イーサネット以外) */
	private static final String TMP_PAY_PRC_NO_MT_NET_KEI = "210050016011";
	/** 一時金支払料金番号：eo光ネット契約事務手数料(マンションタイプ・イーサネット) */
	private static final String TMP_PAY_PRC_NO_MN_KEI_ETHERNET = "210050016013";
	/** 一時金支払料金番号：eo光ネットVDSL(モデム買取)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MN_VDSL_KT_KZH = "210090356010";
	/** 一時金支払料金番号：eo光ネットVDSL(モデムレンタル)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MN_VDSL_RT_KZH = "210090376010";
	/** 一時金支払料金番号：eo光ネットVDSL-S(モデム買取)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MN_VDSLS_KT_KZH = "210090306010";
	/** 一時金支払料金番号：eo光ネットVDSL-S(モデムレンタル)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MN_VDSLS_RT_KZH = "210090326010";
	/** 一時金支払料金番号：eo光ネットイーサー標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MN_ETHER_KZH = "210090176010";
	/** 一時金支払料金番号：eo光ネット光配線標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MN_HIKARI_KZH = "210090576010";

	// 2012/12/04 IT2-2012-0001950 eo光電話契約事務手数料(マンションタイプ)の一時金支払料金番号を変更
	/** 一時金支払料金番号：eo光電話契約事務手数料(マンションタイプ・イーサネット以外) */
	private static final String TMP_PAY_PRC_NO_MT_TEL_KEI = "210450066011";
	/** 一時金支払料金番号：eo光電話契約事務手数料(マンションタイプ・イーサネット) */
	private static final String TMP_PAY_PRC_NO_MTEL_KEI_ENET = "210450066012";

	/** 一時金支払料金番号：eo光電話VDSL(モデム買取)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MTEL_VDSLKT_KZH = "210490356010";
	/** 一時金支払料金番号：eo光電話VDSL(モデムレンタル)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MTEL_VDSLRT_KZH = "210490376010";
	/** 一時金支払料金番号：eo光電話VDSL-S(モデム買取)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MTEL_VDSLSKTKZH = "210490306010";
	/** 一時金支払料金番号：eo光電話VDSL-S(モデムレンタル)標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MTEL_VDSLSRTKZH = "210490326010";
	/** 一時金支払料金番号：eo光電話イーサー標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MTEL_ETHER_KZH = "210490176010";
	/** 一時金支払料金番号：eo光電話光配線標準工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MTEL_HIKARI_KZH = "210490576010";
	/** 一時金支払料金番号：eo光テレビ初期工事費(マンションタイプ) */
	private static final String TMP_PAY_PRC_NO_MT_TV_HYOJNKZH = "210080016017";
	/** 一時支払料金番号 ＳＴＢチューナー追加設置工事費 */
	private static final String TMP_PAY_PRC_NO_210080756010 = "210080756010";
// ANK-3636-00-00 MOD END

	/** 一時支払料金番号 ＨＧＷ設置工事費 */
	private static final String TMP_PAY_PRC_NO_210081026010 = "210081026010";

	/** 機能コード0 */
	private static final String FUNC_CODE_KEY_00 = "0";
	/** 機能コード1 */
	private static final String FUNC_CODE_KEY_01 = "1";
	/** 機能コード2 */
	private static final String FUNC_CODE_KEY_02 = "2";

	/** 料金項目コード：基本料金 */
// ANK-3636-00-00 MOD START
	private static final String RKC_21001101601 = "21001101601";
	/** 料金項目コード：ＶＤＳＬ接続用子機レンタル料 */
	private static final String RKC_21003031101 = "21003031101";
	/** 料金項目コード：ＶＤＳＬ接続用子機代金 */
	private static final String RKC_21003031601 = "21003031601";
	/** 料金項目コード：インターネットサギウォール　ｆｏｒ　ｅｏ　（セット割） */
	private static final String RKC_21006051601 = "21006051601";
	/** 料金項目コード 初期工事費無料キャンペーン */
	private static final String RKC_S1208001601 = "S1208001601";
	/** 料金項目コード 初期工事費無料キャンペーン（ｅｏ光電話） */
	private static final String RKC_S1248001601 = "S1248001601";
	/** 料金項目コード 初期工事費無料キャンペーン（ｅｏ光テレビ） */
	private static final String RKC_S4208001601 = "S4208001601";
	/** 料金項目コード 初期工事費無料キャンペーン（ｅｏ光テレビ） */
	private static final String RKC_S42080016S1 = "S42080016S1";
	/** 料金項目コード：初期工事費割引キャンペーン（ｅｏ光テレビ） */
	private static final String RKC_S42080016S2 = "S42080016S2";
// ANK-3636-00-00 MOD END

	// ■フロント用コード(表示順用のコードの為、料金部品に渡していない)
	/** 料金項目コード(ホーム・メゾン)：加入契約料無料キャンペーン */
	private static final String RKC_SFU00000001 = "SFU00000001";
	/** 料金項目コード(ホーム・メゾン)：契約事務手数料無料キャンペーン(eoモバイル) */
	private static final String RKC_SFU00000002 = "SFU00000002";
	/** 料金項目コード(マンション)：契約事務手数料無料キャンペーン(eo光ネット) */
	private static final String RKC_SFU00000011 = "SFU00000011";
	/** 料金項目コード(マンション)：初期工事費無料キャンペーン(eo光ネット) */
	private static final String RKC_SFU00000012 = "SFU00000012";
	/** 料金項目コード(マンション)：初期工事費無料キャンペーン(eo光電話) */
	private static final String RKC_SFU00000013 = "SFU00000013";

	/** 割引サービスコード：ネットTVセット割(マンション) */
	private static final String W000M0402 = "W000M0402";
	/** 割引サービスコード：ネットTVセット割(マンション) */
	private static final String W000M0702 = "W000M0702";
	/** 割引サービスコード：ネット電話セット割(マンション) */
	private static final String W000M0703 = "W000M0703";
	/** 割引サービスコード：電話TVセット割(マンション) */
	private static final String W000M0704 = "W000M0704";
	/** 割引サービスコード：ネットTVセット割(マンション) */
	private static final String W000M1502 = "W000M1502";
	/** 割引サービスコード：ネット電話セット割(マンション) */
	private static final String W000M1503 = "W000M1503";
	/** 割引サービスコード：電話TVセット割(マンション) */
	private static final String W000M1504 = "W000M1504";
	// ANK-4109-00-00 ADD START
	/** 割引サービスコード：（eo光電話）標準工事費相当額割引キャンペーン(一括払い) */
	private static final String W50000006 = "W50000006";
	// ANK-4109-00-00 ADD END

	/** 業務パラメータ検索キー：FU_HHB42_WRIB_UPPLNO */
	private static final String WORK_PARAM_ID_HHB = "FU_HHB42_WRIB_UPPLNO";

	/** タイプ：ホームメゾン */
	private static final String KSN_TYPE_HT_MZ = "HT/MZ";
	/** タイプ：マンション */
	private static final String KSN_TYPE_MT = "MT";

	/** 契約区分 既契約 */
	private static final String KEI_DIV_0 = "0";
	/** 契約区分 新契約 */
	private static final String KEI_DIV_1 = "1";

	/** パターンＩＤ_10 */
	private static final String PATTERN_ID_10 = "10";
	/** パターンＩＤ_20 */
	private static final String PATTERN_ID_20 = "20";
	/** パターンＩＤ_30 */
	private static final String PATTERN_ID_30 = "30";
	/** パターンＩＤ_40 */
	private static final String PATTERN_ID_40 = "40";
	/** パターンＩＤ_50 */
	private static final String PATTERN_ID_50 = "50";
	/** パターンＩＤ_60 */
	private static final String PATTERN_ID_60 = "60";
	/** パターンＩＤ_61 */
	private static final String PATTERN_ID_61 = "61";
	/** パターンＩＤ_70 */
	private static final String PATTERN_ID_70 = "70";
	/** パターンＩＤ_71 eo電気同時申込 */
	private static final String PATTERN_ID_71 = "71";
	/** パターンＩＤ_72 定額サービス申込 */
	private static final String PATTERN_ID_72 = "72";
	/** パターンＩＤ_73 定額４Ｋ＋テレビＣＳコース申込 */
	private static final String PATTERN_ID_73 = "73";
	/** パターンＩＤ_80 */
	private static final String PATTERN_ID_80 = "80";
// IT1-2017-0000103 ADD START
	/** パターンＩＤ_81 */
	private static final String PATTERN_ID_81 = "81";
// IT1-2017-0000103 ADD END
	/** パターンＩＤ_90 */
	private static final String PATTERN_ID_90 = "90";
// ANK-3296-00-00 ADD START
	/** パターンＩＤ_91 */
	private static final String PATTERN_ID_91 = "91";
	/** パターンＩＤ_92 */
	private static final String PATTERN_ID_92 = "92";
// ANK-3296-00-00 ADD END
// ANK-3437-00-00 ADD START
	/** パターンＩＤ_93 */
	private static final String PATTERN_ID_93 = "93";
	/** パターンＩＤ_94 */
	private static final String PATTERN_ID_94 = "94";
// ANK-3437-00-00 ADD END
	/** パターンＩＤ_95 */
	private static final String PATTERN_ID_95 = "95";
	/** パターンＩＤ_96 */
	private static final String PATTERN_ID_96 = "96";

	/** パターンＩＤ_100 */
	private static final String PATTERN_ID_100 = "100";
	/** パターンＩＤ_110 */
	private static final String PATTERN_ID_110 = "110";
	/** パターンＩＤ_120 */
	private static final String PATTERN_ID_120 = "120";
	/** パターンＩＤ_11：100ML */
	private static final String PATTERN_ID_11 = "11";
	/** パターンＩＤ_21：100ML */
	private static final String PATTERN_ID_21 = "21";
	/** パターンＩＤ_31：100ML */
	private static final String PATTERN_ID_31 = "31";
	/** パターンＩＤ_51：100ML */
	private static final String PATTERN_ID_51 = "51";
	/** パターンＩＤ_210：ネット、電話、テレビ */
	private static final String PATTERN_ID_210 = "210";
	/** パターンＩＤ_240：電話、テレビ */
	private static final String PATTERN_ID_240 = "240";
	/** パターンＩＤ_250：ネット、テレビ */
	private static final String PATTERN_ID_250 = "250";
	/** パターンＩＤ_260：テレビ */
	private static final String PATTERN_ID_260 = "260";

	/** 加入契約支払方式コード ベース */
	private static final String KANYU_KEI_PAY_HOSHIKI_CD_001 = "001";
	/** 加入契約支払方式コード 個別 */
	private static final String KANYU_KEI_PAY_HOSHIKI_CD_002 = "002";
	/** 加入契約支払方式コード 全戸一括 */
	private static final String KANYU_KEI_PAY_HOSHIKI_CD_003 = "003";
	/** 加入契約支払方式コード 居住者一括 */
	private static final String KANYU_KEI_PAY_HOSHIKI_CD_004 = "004";

	/** 割引種別コード 一時費用割引 */
	private static final String WRIB_SBT_CD_TMP = "1";
	/** 割引種別コード 月額料金割引 */
	private static final String WRIB_SBT_CD_MONTHLY = "2";

	/** スマートリンクプレミアム文言表示区分：表示しない */
	private static final String SMALIN_PRE_DSP_KBN_NODSP = "1";
	/** スマートリンクプレミアム文言表示区分：表示する */
	private static final String SMALIN_PRE_DSP_KBN_DSP = "2";

	/** 請求契約番号 */
	private static final String SEIKYU_KEIYAKU_DEF = "0000000000";

	/** 全角スペース */
	private static final String ZENSPACE = "　";
	/** マイナス文字列置き換え文字 */
	private static final String SANKAKU = "▲";

	/** 割引メッセージパターンID 単独(0001) */
	@SuppressWarnings("unused")
	private static final String WRB_MSG_PATTERN_ID_0001 = "0001";
// ANK-3162-00-00 ADD START
	/** 割引メッセージパターンID 複数(0002) 電気同時申込 */
	private static final String WRB_MSG_PATTERN_ID_0002 = "0002";
// ANK-3162-00-00 ADD END
// ANK-3680-00-00 ADD START
	/** 割引メッセージパターンID パック割(0003) ネット＋テレビ同時申込 */
	private static final String WRB_MSG_PATTERN_ID_0003 = "0003";
// ANK-3680-00-00 ADD END
	/** 割引メッセージパターンID 量販以外(0004) <br/>
	 * 一般WEB、一般WEB(価格com(電気))、一般WEB(価格com(プロバイダ))、一般WEB(提携住宅会社)、<br/>
	 * 量販WEB(代理店)、量販WEB(GMS代理店)、訪販WEB、訪販WEB(AUショップ)<br/>
	 */
	private static final String WRB_MSG_PATTERN_ID_0004 = "0004";
	/** 割引メッセージパターンID 量販(0005) <br/>
	 * コード"0004"を除く量販WEB<br/>
	 * */
	private static final String WRB_MSG_PATTERN_ID_0005 = "0005";
// ANK-4607-00-00 ADD START
	/** 割引メッセージパターンID パック割(0006) ネット＋電話同時申込 */
	private static final String WRB_MSG_PATTERN_ID_0006 = "0006";
// ANK-4607-00-00 ADD END
	/** 割引メッセージパターンID typeN(0007) 現在は未使用 */
	@SuppressWarnings("unused")
	private static final String WRB_MSG_PATTERN_ID_0007 = "0007";

	/** テンプレートＩＤ 料金シミュレーション初期費用条件一覧照会 */
	private static final String TEMPLATE_ID_EFU0161B001 = "EFU0161B001";
	/** テンプレートＩＤ 料金シミュレーション一時支払料金一覧照会 */
	private static final String TEMPLATE_ID_EKK0721B501 = "EKK0721B501";
	/** テンプレートＩＤ 料金シミュレーション料金プラン一覧照会 */
	private static final String TEMPLATE_ID_EKK0591B502 = "EKK0591B502";
	/** テンプレートＩＤ 料金シミュレーションメッセージ一覧照会 */
	private static final String TEMPLATE_ID_EFU0181B001 = "EFU0181B001";
	/** テンプレートＩＤ 料金シミュレーションマンション一時支払料金一覧照会 */
	private static final String TEMPLATE_ID_EKK1921B501 = "EKK1921B501";
	/** テンプレートＩＤ 料金シミュレーション割引メッセージ一覧照会 */
	private static final String TEMPLATE_ID_EFU0351B001 = "EFU0351B001";

	// スマートリンクプレミアム＆42M光ハイブリッド契約数対応
	/** テンプレートＩＤ サービス契約一覧照会（同一請求先回線情報取得） */
	private static final String TEMPLATE_ID_EKK0081B524 = "EKK0081B524";
	/** テンプレートＩＤ オプションサービス既契約情報一覧照会 */
	private static final String TEMPLATE_ID_EKK0351B513 = "EKK0351B513";
	/** テンプレートＩＤ 業務パラメータ管理一意照会 */
	private static final String TEMPLATE_ID_EZM0321A010 = "EZM0321A010";
	/** テンプレートＩＤ 請求元サービス契約一覧照会 */
	private static final String TEMPLATE_ID_EKK0081B028 = "EKK0081B028";
	/** テンプレートＩＤ 同一利用場所サービス契約一覧照会 */
	private static final String TEMPLATE_ID_EKK0081B011 = "EKK0081B011";
	/** テンプレートＩＤ 請求契約一覧照会（SYSID） */
	private static final String TEMPLATE_ID_EKK0491B005 = "EKK0491B005";
	/** テンプレートＩＤ サービス契約一意照会 */
	private static final String TEMPLATE_ID_EKK0081A010 = "EKK0081A010";
	/** テンプレートＩＤ 料金プラン・料金コース一覧照会（プラン区分指定） */
	private static final String TEMPLATE_ID_EKK0591B005 = "EKK0591B005";
	/** テンプレートＩＤ 割引サービス単価一覧照会（割引サービスコード） */
	private static final String TEMPLATE_ID_EKK0711B001 = "EKK0711B001";
	/** スマートリンクプレミアム文言表示区分：表示する(デフォルト) */
	private String smtLinkPrmKbn = SMALIN_PRE_DSP_KBN_DSP;

	// ANK-1580-00-00_eoスマートリンク改修対応
	/** テンプレートＩＤ 割賦プラン一覧照会（eoスマートリンク） */
	private static final String TEMPLATE_ID_EKK2521B501 = "EKK2521B501";
	/** テンプレートＩＤ 割賦プラン料金表示文言一覧照会 */
	private static final String TEMPLATE_ID_EKK2831B010 = "EKK2831B010";

	// ■項目ID
	/** 項目ID：料金シミュレーション結果リスト */
	private static final String PRSIML_RSLT_LIST = "prsiml_rslt_list";
	/** 項目ID：料金シミュレーションメッセージリスト */
	private static final String PRSIML_MSG_LIST = "prsiml_msg_list";
	/** 項目ID：割引メッセージリスト */
	private static final String WRIB_MSG_LIST = "wrib_msg_list";
	/** 項目ID：割引メッセージ結果リスト */
	private static final String WRIB_MSG_RSLT_LIST = "wrib_msg_rslt_list";
	/** 項目ID：スマートリンク情報リスト */
	private static final String SMARTLINK_INFO_LIST = "smartlink_info_list";
	/** 項目ID：スマートリンク結果リスト */
	private static final String SMARTLINK_RSLT_LIST = "smartlink_rslt_list";
	/** 項目ID：月額料金合計 */
	private static final String MONTH_AMNT_GK = "month_amnt_gk";
	/** 項目ID：初期費用合計 */
	private static final String SHOKI_AMNT_GK = "shoki_amnt_gk";
	/** 項目ID：月額料金文言 */
	private static final String MONTH_MONGON = "month_mongon";
	/** 項目ID：初期費用文言 */
	private static final String SHOKI_MONGON = "shoki_mongon";
	/** 項目ID：月額料金内訳リスト */
	private static final String MONTH_UW_LIST = "month_uw_list";
	/** 項目ID：初期費用内訳リスト */
	private static final String SHOKI_UW_LIST = "shoki_uw_list";
	/** 項目ID：料金シミュレーション情報.宅内機器型式コード */
	private static final String PRSIML_TAKNKIKI_MODEL_CD = "prsiml_taknkiki_model_cd";
	/** 項目ID：タブレット支払方法 */
	private static final String TABLET_TANMT_PAYWAY = "tablet_tanmt_payway";
	/** 項目ID：スマートリンクプレミアムパック */
	private static final String PREMIUM_PACK = "premium_pack";
	/** 項目ID：端末補償 */
	private static final String TABLET_TANMT_COMPS = "tablet_tanmt_comps";
	/** 項目ID：割賦プラン料金表示文言種別コード */
	private static final String TABLET_KAPPLAN_PDMGN_CD = "tablet_kapplan_pdmgn_cd";
	/** 項目ID：料金コースコード */
	private static final String PCRS_CD = "pcrs_cd";
	/** 項目ID：料金プランコード */
	private static final String PPLAN_CD = "pplan_cd";
	/** 項目ID：料金プラン金額 */
	private static final String PPLAN_AMNT = "pplan_amnt";
	/** 項目ID：料金シミュレーション表示用名 */
	private static final String PRSIML_PRC_DSP_NM = "prsiml_prc_dsp_nm";
	/** 項目ID：料金内訳名 */
	private static final String PRC_UW_NM = "prc_uw_nm";
	/** 項目ID：請求金額 */
	private static final String SIKY_AMNT = "siky_amnt";
	/** 項目ID：タブレット金額 */
	private static final String TABLET_AMNT = "tablet_amnt";
	/** 項目ID：調整金 */
	private static final String CHOSEI_AMNT = "chosei_amnt";
	/** 項目ID：タブレット割引金額 */
	private static final String TABLET_WRIB_AMNT = "tablet_wrib_amnt";
	/** 項目ID：タブレット割賦金額 */
	private static final String TABLET_KAP_AMNT = "tablet_kap_amnt";
	/** 項目ID：端末補償料金プランコード */
	private static final String TABLET_TANMT_COMPS_PPLAN_CD = "tablet_tanmt_comps_pplan_cd";
	/** 項目ID：料金サービス契約リストの料金プランコード */
	private static final String PRC_PLAN_CD = "prc_plan_cd";
	/** 項目ID：料金サービス契約リストのテレビ選択コース区分 */
	private static final String EO_TV_COURSE_KBN = "eo_tv_course_kbn";
	/** 項目ID：検索用割賦プラン料金表示文言種別コード */
	private static final String SEARCH_KAPPLAN_PDMGN_SBT_CD = "search_kapplan_pdmgn_sbt_cd";
	/** 項目ID：販売タイプ */
	private static final String HANBAI_TYPE = "hanbai_type";
	/** 項目ID：サービスコード */
	private static final String SVC_CD = "svc_cd";
	/** 項目ID：料金グループコード */
	private static final String PRC_GRP_CD = "prc_grp_cd";
	/** 項目ID：加入契約支払方式コード */
	private static final String KANYU_KEI_PAY_HOSHIKI_CD = "kanyu_kei_pay_hoshiki_cd";
// ANK-3162-00-00 ADD START
	/** 項目ID：料金シミュレーション割引メッセージパターンID */
	private static final String PRSIML_WRIB_MSG_PTN_ID = "prsiml_wrib_msg_ptn_id";
// ANK-3162-00-00 ADD END
// ANK-3217-00-00 ADD START
	/** 項目ID：GH金額 */
	private static final String GH_AMNT = "gh_amnt";
	/** 項目ID：GH割賦金額 */
	private static final String GH_KAP_AMNT = "gh_kap_amnt";
	/** 項目ID：GH結果リスト */
	private static final String GH_RSLT_LIST = "gh_rslt_list";
	/** 項目ID：GH支払方法 */
	private static final String GH_TANMT_PAYWAY = "gh_tanmt_payway";
// ANK-3217-00-00 ADD END
// ANK-3680-00-00 ADD START
//	/** 項目ID：eo暮らしスタート割キャンペーン対象物件 */
//	private static final String EOSTART_WARI_MT_CMP = "eostart_wari_mt_cmp";
// ANK-3680-00-00 ADD END

	/** 割引料金（割引料金サービスコード） */
	private static final String WRIB_PRC_PRC_SVC_CD= "prc_svc_cd";
	/** 割引料金（割引制御識別コード） */
	private static final String WRIB_PRC_WRIB_CTRL_SKBT_CD= "wrib_ctrl_skbt_cd";
	/** 割引料金（集計単位コード） */
	private static final String WRIB_PRC_SHUK_TANI_CD= "shuk_tani_cd";
	/** 割引料金（割引集計コード） */
	private static final String WRIB_PRC_WRIB_SHUK_CD= "wrib_shuk_cd";
	/** 割引料金（集計料金コースコード） */
	private static final String WRIB_PRC_SHUK_PCRS_CD= "shuk_pcrs_cd";
	/** 割引料金（集計料金サービスコード） */
	private static final String WRIB_PRC_SHUK_PRC_SVC_CD= "shuk_prc_svc_cd";
	/** 割引料金（集計料金項目コード） */
	private static final String WRIB_PRC_SHUK_PRC_KMK_CD= "shuk_prc_kmk_cd";
	/** 割引料金（割引優先順位） */
	private static final String WRIB_PRC_WRIB_YUSEN_JUN= "wrib_yusen_jun";
	/** 割引料金（料金） */
	private static final String WRIB_PRC_PRC= "prc";
	/** 利用料金（料金コースコード） */
	private static final String USE_PRC_PCRS_CD= "pcrs_cd";
	/** 利用料金（料金サービスコード） */
	private static final String USE_PRC_PRC_SVC_CD= "prc_svc_cd";
	/** 利用料金（料金項目コード） */
	private static final String USE_PRC_PRC_KMK_CD= "prc_kmk_cd";
	/** 利用料金（料金） */
	private static final String USE_PRC_PRC= "prc";
	/** 利用料金（割引優先順位） */
	private static final String USE_PRC_WRIB_YUSEN_JUN= "wrib_yusen_jun";
	/** 利用料金（割引サービスコード） */
	private static final String USE_WRIB_SVC_CD= "wrib_svc_cd";

	/** セッションハンドラ */
	private SessionHandle sessionHandle = null;
	/** パラメータ */
	private IRequestParameterReadWrite parameter = null;
	/** 固定文字列 */
	private String fixedText = null;

	/** 請求金額加算用 */
	private int seikyAmntGk = 0;
	/** ネット契約フラグ(初期費用対応) */
	private boolean netKeiFlg = false;
	/** 電話契約フラグ(初期費用対応) */
	private boolean telKeiFlg = false;
	/** モバイル契約フラグ(セット割対応) */
	private boolean mbKeiFlg = false;
	/** ネット既契約フラグ **/
	private boolean kkeiNetKeiFlg = false;
	/** 電話既契約フラグ **/
	private boolean kkeiTelKeiFlg = false;
	/** TV既契約フラグ **/
	private boolean kkeiTvKeiFlg = false;

	/** システムコード */
	private String sysCd = null;
	/** 機能識別コード */
	private String kinoCd = null;

	/** 料金内訳リスト */
	private List prcUwlist = new ArrayList<Map<String, String>>();
	/** 料金サービス契約リスト */
	private List prcSvkeiList = new ArrayList<Map<String, String>>();
	/** 既契約サービスリスト */
	private List kkeiSvcList = new ArrayList<Map<String, String>>();
	/** 同一請求先契約サービスリスト */
	private List sameSeikySvcList = new ArrayList<Map<String, String>>();
	/** 同一回線契約サービスリスト */
	private List sameKaisenSvcList = new ArrayList<Map<String, String>>();
	/** モバイル単独用回線契約サービスリスト */
	private List mbKaisenSvcList = new ArrayList<Map<String, String>>();
	/** 初期費用条件一覧リスト */
	private List shkhJokenIcrnList = new ArrayList<Map<String, String>>();
	/** 一時支払料金一覧リスト */
	private List tmpyPrcIcrnList = new ArrayList<Map<String, String>>();
	/** 料金プラン一覧リスト */
	private List pplanIcrnList = new ArrayList<Map<String, String>>();
	/** メッセージ一覧リスト */
	private List msgIcrnList = new ArrayList<Map<String, String>>();
	/** 備考メッセージ一覧リスト */
	private List bikoMsgList = new ArrayList<Map<String, String>>();
	/** 割引メッセージリスト */
	private List wribMsgList = new ArrayList<Map<String, String>>();
	/** 割引メッセージ結果リスト */
	private List wribMsgRsltList = new ArrayList<Map<String, String>>();
	/** 契約Ｓ割引サービスリスト */
	private List kkWribSvcList = new ArrayList();
	/** 料金Ｓシミュレーション結果リスト */
	private List acPrsimlRsltList = new ArrayList();
	/** 料金シミュレーション結果リスト */
	private List prsimlRsltList = new ArrayList<Map<String, String>>();
	/** 料金シミュレーション注記リスト */
	private List prsimlMsgList = new ArrayList<Map<String, String>>();
	/** スマートリンク情報リスト */
	private List smartLinkInfoList = new ArrayList<Map<String, String>>();
	/** スマートリンク結果リスト */
	private List smartLinkRsltList = new ArrayList<Map<String, String>>();
// ANK-3217-00-00 ADD START
	/** GH結果リスト */
	private List ghRsltList = new ArrayList<Map<String, String>>();
// ANK-3217-00-00 ADD END

	// ANK-3296-00-00 ADD START
	private static final String STDARD_KOJIHI_OPEN_YMD = "20180402";
// ANK-3296-00-00 ADD END
	/** 割賦プラン料金表示文言コード：03（安心補償キャンペーン文言用） */
	private static final String KAPPLAN_PDMGN_CD_03 = "03";

	/** デバッグ開始タイム */
	private static long debugStartTime = 0;
	/** デバッグ終了タイム */
	private static long debugEndTime = 0;

	/** 部品呼出例外メッセージ */
	private static final String PARTS_ERR_MSG = "例外が発生しましたが業務処理に影響する為、例外処理をスキップします。";

	/** 申込経路 */
	private static final String MSKM_ROUTE = "mskm_route";

	/**
	 * ログにデバッグ時間を表示します。
	 *
	 * <br>
	 * @param handle ハンドル
	 * @param msg メッセージ
	 * @param isEndMode モード
	 */
	private void outputLog(SessionHandle handle, String msg, boolean isEndMode)
	{
		String mode = JFUStrConst.EMPTY;
		long currentTimeMills = System.currentTimeMillis();

		if (isEndMode)
		{
			mode = "END ";
			debugEndTime = currentTimeMills;
		}
		else
		{
			mode = "START ";
			debugStartTime = currentTimeMills;
		}

		String title = "### 料金シミュレーション " + mode;
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), title + msg + String.valueOf(currentTimeMills), null, null, null);

		if (isEndMode)
		{
			long totalTime = (debugEndTime - debugStartTime) / 1000;
			JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), title + " 合計処理時間：" + String.valueOf(totalTime) + "s", null, null, null);
		}
	}

	/**
	 * <p>
	 * 料金シミュレーションメイン処理です。
	 * <BR>
	 * シミュレーション対象物件がマンションの場合、料金シミュレーション処理(マンション用)を呼び出す。<BR>
	 * シミュレーション対象物件がマンション以外の場合、料金シミュレーション処理(ホーム、メゾン用)を呼び出す。
	 * </p>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得I/F
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite getPrcSimulation(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// DEBUG用
		this.outputLog(handle, "### 料金シミュレーションCC　START ", false);

		// リクエストパラメータを取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 取得できない場合
		if (inMap == null)
		{
			// 処理を終了する。
			return param;
		}

		// ANK-1254-00-00 マンション一時金・基本料金対応 2012/11/20 ホーム・メゾンとマンションの処理を分割
		// マンションIDを取得
		String mansionId = this.getMansionId(inMap);

		// マンションIDが取得できない場合、ホーム・メゾンとする
		if (this.isNullBlunk(mansionId))
		{
			// ホーム・メゾンの料金シミュレーションを行う。
			return this.prcSimulationHomeMezon(handle, param, fixedText);
		}
		// マンションの場合
		else
		{
			// マンションの料金シミュレーションを行う。
			return this.prcSimulationMansion(handle, param, fixedText);
		}
	}

	/**
	 * <p>
	 * 料金シミュレーション処理(ホーム、メゾン用)です。
	 * <BR>
	 * ホーム、または、メゾン用の料金シミュレーション処理を行う。
	 * </p>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得I/F
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite prcSimulationHomeMezon(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// 保持リスト初期化処理
		this.initializeSaveList(param, fixedText);

		// 内部処理用変換処理
		changeSaveListItem(handle);

		this.sessionHandle = handle;
		this.parameter = param;
		this.fixedText = fixedText;

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		String funcCd = (String)inMap.get("func_code");
		// マンションID
		String mansionId = (String)inMap.get("mansion_id");
		// 料金シミュレーションメッセージID
		String prsimlMsgPtnId = (String)inMap.get("prsiml_msg_ptn_id");

		// 基本情報取得モードの場合
		if (this.isGetBaseInfoMode(funcCd))
		{
			// 基本料金取得処理
			this.getBasePrcHomeMezon(inMap);
			// 備考メッセージ取得
			makePrcBikoMsg(inMap, mansionId, prsimlMsgPtnId, prcSvkeiList, msgIcrnList);
		}

		// 機能コードが"1":基本料金取得の場合、処理を終了する
		if (FUNC_CODE_KEY_01.equals(funcCd))
		{
			inMap.put("shkh_joken_icrn_list", this.shkhJokenIcrnList);
			inMap.put("tmpy_prc_icrn_list", this.tmpyPrcIcrnList);
			inMap.put("pplan_icrn_list", this.pplanIcrnList);
			inMap.put("msg_icrn_list", this.msgIcrnList);
			inMap.put("biko_msg_list", this.bikoMsgList);
			inMap.put(SMARTLINK_INFO_LIST, this.smartLinkInfoList);
			inMap.put(WRIB_MSG_LIST, this.wribMsgList);

			param.setData(fixedText, inMap);

			// ### DEBUG用
			this.outputLog(handle, "### 料金シミュレーションCC　END ", true);

			// 結果を返却する。
			return param;
		}

		// 同一利用場所サービス契約情報を設定
		getSameKaisenSvcKeiInfo(param, fixedText);

		// 同一請求先サービス契約情報を設定
		setSameSeikyKeiSvcList(param, fixedText);

		// モバイル単独用サービス契約情報を設定
		setSvcKeiListForMbOnly(param, fixedText);

		// 割引サービス料金取得
		this.getWarisvcPrc(inMap);

		// 料金シミュレーション結果作成
		this.makePrcSimuResultHomeMezon(handle, param, fixedText);

		// スマートリンクプレミアム文言表示区分取得
		this.smtLinkPrmKbn = getSmaPreHybDspKbn(inMap);

		/* 2013/02/21 ANK-1222-00-00 Y.Saitou MOD */
		// 料金シミュレーション注記リスト作成
		this.makePrcChukiList(inMap, mansionId, prsimlMsgPtnId, this.prcSvkeiList, this.msgIcrnList);

		// ANK-1580-00-00：スマートリンク対応
// IT1-2017-0000103 MOD START
//		getSmartLinkPrcAndMsg(inMap);
		getSmartLinkPrcAndMsg(inMap, this.msgIcrnList);
// IT1-2017-0000103 MOD END

// ANK-3217-00-00 ADD START
		// GH結果リスト作成処理
		this.getGhPrcAndMsg(inMap);
// ANK-3217-00-00 ADD END

		// キャンペーン文言結果リスト作成処理
		setWribMsgRslList(inMap);

		// シミュレーション結果リストをセット
		inMap.put(PRSIML_RSLT_LIST, this.prsimlRsltList);
		inMap.put(PRSIML_MSG_LIST, this.prsimlMsgList);
		inMap.put(SMARTLINK_RSLT_LIST, this.smartLinkRsltList);
// ANK-3217-00-00 ADD START
		inMap.put(GH_RSLT_LIST, this.ghRsltList);
// ANK-3217-00-00 ADD END
		inMap.put("biko_msg_list", this.bikoMsgList);
		inMap.put(WRIB_MSG_RSLT_LIST, this.wribMsgRsltList);

		param.setData(fixedText, inMap);

		// ### DEBUG用
		this.outputLog(handle, "### 料金シミュレーションCC　END ", true);

		// 結果を返却する。
		return param;
	}

	/**
	 * <p>
	 * 料金シミュレーション処理(マンション用)<BR>
	 * マンション用の料金シミュレーション処理を行う。
	 * </p>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得I/F
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite prcSimulationMansion(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// 保持リスト初期化処理
		this.initializeSaveList(param, fixedText);

		// 内部処理用変換処理
		changeSaveListItem(handle);

		this.sessionHandle = handle;
		this.parameter = param;
		this.fixedText = fixedText;

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード
		String funcCd = (String)inMap.get("func_code");
		// マンションID
		String mansionId = this.getMansionId(inMap);

		String prsimlMsgPtnId = (String)inMap.get("prsiml_msg_ptn_id");

		// 基本情報取得モードの場合
		if (this.isGetBaseInfoMode(funcCd))
		{
			// 基本料金取得処理
			this.getBasePrcMansion(inMap);
			// 備考メッセージ取得
			makePrcBikoMsg(inMap, mansionId, prsimlMsgPtnId, prcSvkeiList, msgIcrnList);

			// マンション相対料金反映
			getMansionAitaiPrc(inMap);
		}

		// 機能コードが"1":基本料金取得の場合、処理を終了する
		if (FUNC_CODE_KEY_01.equals(funcCd))
		{
			inMap.put("shkh_joken_icrn_list", this.shkhJokenIcrnList);
			inMap.put("tmpy_prc_icrn_list", this.tmpyPrcIcrnList);
			inMap.put("pplan_icrn_list", this.pplanIcrnList);
			inMap.put("msg_icrn_list", this.msgIcrnList);
			inMap.put("biko_msg_list", this.bikoMsgList);
			inMap.put(SMARTLINK_INFO_LIST, this.smartLinkInfoList);
			inMap.put(WRIB_MSG_LIST, this.wribMsgList);

			param.setData(fixedText, inMap);

			// ### DEBUG用
			this.outputLog(handle, "### 料金シミュレーションCC　END ", true);

			// 結果を返却する。
			return param;
		}

		// 同一利用場所サービス契約情報を設定
		getSameKaisenSvcKeiInfo(param, fixedText);

		// 同一請求先サービス契約情報を設定
		setSameSeikyKeiSvcList(param, fixedText);

		// モバイル単独用サービス契約情報を設定
		setSvcKeiListForMbOnly(param, fixedText);

		// 割引サービス料金取得
		this.getWarisvcPrc(inMap);

		// 料金シミュレーション結果作成
		this.makePrcSimuResultMansion(handle, param, fixedText);

		// スマートリンクプレミアム文言表示区分取得
		this.smtLinkPrmKbn = getSmaPreHybDspKbn(inMap);

		/* 2013/02/21 ANK-1222-00-00 Y.Saitou MOD */
		// 料金シミュレーション注記リスト作成
		this.makePrcChukiList(inMap, mansionId, prsimlMsgPtnId, this.prcSvkeiList, this.msgIcrnList);

		// ANK-1580-00-00：スマートリンク対応
// IT1-2017-0000103 MOD START
//		getSmartLinkPrcAndMsg(inMap);
		getSmartLinkPrcAndMsg(inMap, this.msgIcrnList);
// IT1-2017-0000103 MOD END

// ANK-3217-00-00 ADD START
		// GH結果リスト作成処理
		this.getGhPrcAndMsg(inMap);
// ANK-3217-00-00 ADD END

		// キャンペーン文言結果リスト作成処理
		setWribMsgRslList(inMap);

		// シミュレーション結果リストをセット
		inMap.put(PRSIML_RSLT_LIST, this.prsimlRsltList);
		inMap.put(PRSIML_MSG_LIST, this.prsimlMsgList);
		inMap.put("biko_msg_list", this.bikoMsgList);
		inMap.put(SMARTLINK_RSLT_LIST, this.smartLinkRsltList);
// ANK-3217-00-00 ADD START
		inMap.put(GH_RSLT_LIST, this.ghRsltList);
// ANK-3217-00-00 ADD END
		inMap.put(WRIB_MSG_RSLT_LIST, this.wribMsgRsltList);

		param.setData(fixedText, inMap);

		// ### DEBUG用
		this.outputLog(handle, "### 料金シミュレーションCC　END ", true);

		// 結果を返却する。
		return param;
	}

	/**
	 * <p>
	 * 基本料金取得処理(ホーム、メゾン用)
	 * </p>
	 * @param inMap 料金シミュレーションマップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void getBasePrcHomeMezon(HashMap inMap) throws Exception
	{
		// ●料金シミュレーション初期費用条件一覧照会
		CAANMsg template = new CAANMsg(EFU0161B001CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EFU0161B001);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		Map<?, ?> result = scCall(template);

		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EFU0161B001CBSMsg.EFU0161B001CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEFU0161B001 = new HashMap<String, String>();
				retEFU0161B001.put(EFU0161B001CBSMsg1List.NET_MSKM_FLG, msg.getString(EFU0161B001CBSMsg1List.NET_MSKM_FLG));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TEL_MSKM_FLG, msg.getString(EFU0161B001CBSMsg1List.TEL_MSKM_FLG));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TV_MSKM_FLG, msg.getString(EFU0161B001CBSMsg1List.TV_MSKM_FLG));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_WIFI_MSKM_FLG, msg.getString(EFU0161B001CBSMsg1List.MBL_WIFI_MSKM_FLG));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_EM_MSKM_FLG, msg.getString(EFU0161B001CBSMsg1List.MBL_EM_MSKM_FLG));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_UQ_MSKM_FLG, msg.getString(EFU0161B001CBSMsg1List.MBL_UQ_MSKM_FLG));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.NET_JMTE, msg.getString(EFU0161B001CBSMsg1List.NET_JMTE));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.NET_JMTE_NM, msg.getString(EFU0161B001CBSMsg1List.NET_JMTE_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.NET_STDARD_KOJIHI, msg.getString(EFU0161B001CBSMsg1List.NET_STDARD_KOJIHI));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.NET_STDARD_KOJIHI_NM, msg.getString(EFU0161B001CBSMsg1List.NET_STDARD_KOJIHI_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TEL_JMTE, msg.getString(EFU0161B001CBSMsg1List.TEL_JMTE));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TEL_JMTE_NM, msg.getString(EFU0161B001CBSMsg1List.TEL_JMTE_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TEL_STDARD_KOJIHI, msg.getString(EFU0161B001CBSMsg1List.TEL_STDARD_KOJIHI));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TEL_STDARD_KOJIHI_NM, msg.getString(EFU0161B001CBSMsg1List.TEL_STDARD_KOJIHI_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TV_JMTE, msg.getString(EFU0161B001CBSMsg1List.TV_JMTE));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TV_JMTE_NM, msg.getString(EFU0161B001CBSMsg1List.TV_JMTE_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TV_STDARD_KOJIHI, msg.getString(EFU0161B001CBSMsg1List.TV_STDARD_KOJIHI));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.TV_STDARD_KOJIHI_NM, msg.getString(EFU0161B001CBSMsg1List.TV_STDARD_KOJIHI_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_WIFI_JMTE, msg.getString(EFU0161B001CBSMsg1List.MBL_WIFI_JMTE));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_WIFI_JMTE_NM, msg.getString(EFU0161B001CBSMsg1List.MBL_WIFI_JMTE_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_EM_JMTE, msg.getString(EFU0161B001CBSMsg1List.MBL_EM_JMTE));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_EM_JMTE_NM, msg.getString(EFU0161B001CBSMsg1List.MBL_EM_JMTE_NM));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_UQ_JMTE, msg.getString(EFU0161B001CBSMsg1List.MBL_UQ_JMTE));
				retEFU0161B001.put(EFU0161B001CBSMsg1List.MBL_UQ_JMTE_NM, msg.getString(EFU0161B001CBSMsg1List.MBL_UQ_JMTE_NM));

				this.shkhJokenIcrnList.add(retEFU0161B001);
			}
		}

		// ●料金シミュレーション一時支払料金一覧照会
		template = new CAANMsg(EKK0721B501CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0721B501);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0721B501CBSMsg.EKK0721B501CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEKK0721B501 = new HashMap<String, String>();
				retEKK0721B501.put(EKK0721B501CBSMsg1List.TMP_PAY_PRC_NO, msg.getString(EKK0721B501CBSMsg1List.TMP_PAY_PRC_NO));
				retEKK0721B501.put(EKK0721B501CBSMsg1List.TMP_PAY_PRC_AMNT, msg.getString(EKK0721B501CBSMsg1List.TMP_PAY_PRC_AMNT));
				retEKK0721B501.put(EKK0721B501CBSMsg1List.PRSIML_DSP_JUN, msg.getString(EKK0721B501CBSMsg1List.PRSIML_DSP_JUN));
				retEKK0721B501.put(EKK0721B501CBSMsg1List.PRSIML_DSP_LV, msg.getString(EKK0721B501CBSMsg1List.PRSIML_DSP_LV));
				retEKK0721B501.put(EKK0721B501CBSMsg1List.PRSIML_PRC_DSP_NM, msg.getString(EKK0721B501CBSMsg1List.PRSIML_PRC_DSP_NM));
				this.tmpyPrcIcrnList.add(retEKK0721B501);
			}
		}

		// ●料金シミュレーション料金プラン一覧照会
		template = new CAANMsg(EKK0591B502CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0591B502);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0591B502CBSMsg.EKK0591B502CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEKK0591B502 = new HashMap<String, String>();
				retEKK0591B502.put(EKK0591B502CBSMsg1List.SVC_CD, msg.getString(EKK0591B502CBSMsg1List.SVC_CD));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRC_GPP_CD, msg.getString(EKK0591B502CBSMsg1List.PRC_GPP_CD));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PCRS_CD, msg.getString(EKK0591B502CBSMsg1List.PCRS_CD));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PPLAN_CD, msg.getString(EKK0591B502CBSMsg1List.PPLAN_CD));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRSIML_DSP_JUN, msg.getString(EKK0591B502CBSMsg1List.PRSIML_DSP_JUN));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRSIML_DSP_LV, msg.getString(EKK0591B502CBSMsg1List.PRSIML_DSP_LV));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRSIML_PRC_DSP_NM, msg.getString(EKK0591B502CBSMsg1List.PRSIML_PRC_DSP_NM));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PPLAN_AMNT, msg.getString(EKK0591B502CBSMsg1List.PPLAN_AMNT));

				this.pplanIcrnList.add(retEKK0591B502);
			}
		}

		// ●料金シミュレーションメッセージ一覧照会
		template = new CAANMsg(EFU0181B001CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EFU0181B001);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EFU0181B001CBSMsg.EFU0181B001CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEFU0181B001 = new HashMap<String, String>();
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRSIML_MSG_PTN_ID, msg.getString(EFU0181B001CBSMsg1List.PRSIML_MSG_PTN_ID));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.SVC_TYPE_SKBT_CD, msg.getString(EFU0181B001CBSMsg1List.SVC_TYPE_SKBT_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD, msg.getString(EFU0181B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRSIML_MSG_BRI_CD, msg.getString(EFU0181B001CBSMsg1List.PRSIML_MSG_BRI_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRC_DSP_BRI_CD, msg.getString(EFU0181B001CBSMsg1List.PRC_DSP_BRI_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.DSP_YUSEN_JUN, msg.getString(EFU0181B001CBSMsg1List.DSP_YUSEN_JUN));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRC_SIML_DSP_MONGON, msg.getString(EFU0181B001CBSMsg1List.PRC_SIML_DSP_MONGON));

				this.msgIcrnList.add(retEFU0181B001);
			}
		}

		// ●スマートリンク情報取得 ANK-1580-00-00_eoスマートリンク改修対応
		getSmartLinkInfo(inMap);

		// ●料金シミュレーション割引メッセージ一覧照会
		template = new CAANMsg(EFU0351B001CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EFU0351B001);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EFU0351B001CBSMsg.EFU0351B001CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
// ANK-3769-00-00 MOD START
				// "2"が増えたので、「"1"以外は表示しない」から「"0"は表示しないに条件変更」
				if (JFUStrConst.CD00003_0.equals(msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_DSP_FLG)))
// ANK-3769-00-00 MOD END
				{
					continue;
				}

				Map<String, String> retEFU0351B001 = new HashMap<String, String>();
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_ID, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_ID));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_PTN_ID, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_PTN_ID));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.SVC_CD, msg.getString(EFU0351B001CBSMsg1List.SVC_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRC_GRP_CD, msg.getString(EFU0351B001CBSMsg1List.PRC_GRP_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PCRS_CD, msg.getString(EFU0351B001CBSMsg1List.PCRS_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PPLAN_CD, msg.getString(EFU0351B001CBSMsg1List.PPLAN_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD, msg.getString(EFU0351B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.DSP_YUSEN_JUN, msg.getString(EFU0351B001CBSMsg1List.DSP_YUSEN_JUN));
// ANK-3133-00-00 ADD START
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_JUN, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_JUN));
// ANK-3133-00-00 ADD END
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_MNGN, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_MNGN));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_TG_PRC_NM, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_TG_PRC_NM));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_AMNT_DSP_MNGN, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_AMNT_DSP_MNGN));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_BIKO, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_BIKO));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_DSP_FLG, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_DSP_FLG));

				this.wribMsgList.add(retEFU0351B001);
			}
		}

		// マンションID
		if (inMap == null)
		{
			return;
		}
		String mansionId = (String)inMap.get("mansion_id");

		// マンションID未設定の場合は処理を終了する
		if (mansionId == null || "".equals(mansionId))
		{
			return;
		}

		// ●料金シミュレーションマンション一時支払料金一覧照会
		template = new CAANMsg(EKK1921B501CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK1921B501);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		// 提供方式契約番号を上りマッピングする
		template.set(EKK1921B501CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get("tk_hoshiki_kei_no"));

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK1921B501CBSMsg.EKK1921B501CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEKK1921B501 = new HashMap<String, String>();
				retEKK1921B501.put(EKK1921B501CBSMsg1List.MANS_PRC_SKBT_CD, msg.getString(EKK1921B501CBSMsg1List.MANS_PRC_SKBT_CD));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NO, msg.getString(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NO));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NM, msg.getString(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NM));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT, msg.getString(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM, msg.getString(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.PRSIML_DSP_JUN, msg.getString(EKK1921B501CBSMsg1List.PRSIML_DSP_JUN));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.PRSIML_DSP_LV, msg.getString(EKK1921B501CBSMsg1List.PRSIML_DSP_LV));

				this.tmpyPrcIcrnList.add(retEKK1921B501);
			}
		}
	}

	/**
	 * <p>
	 * 基本料金取得処理(マンション用)
	 * </p>
	 * @param inMap 料金シミュレーションマップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void getBasePrcMansion(HashMap inMap) throws Exception
	{

		// 料金シミュレーションマンション一時支払料金一覧照会
		CAANMsg template = new CAANMsg(EKK1921B501CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK1921B501);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		// 提供方式契約番号を上りマッピングする
		template.set(EKK1921B501CBSMsg.TK_HOSHIKI_KEI_NO, (String)inMap.get("tk_hoshiki_kei_no"));

		/* SC呼出実行 */
		Map<?, ?> result = scCall(template);

		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EKK1921B501CBSMsg.EKK1921B501CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEKK1921B501 = new HashMap<String, String>();
				retEKK1921B501.put(EKK1921B501CBSMsg1List.MANS_PRC_SKBT_CD, msg.getString(EKK1921B501CBSMsg1List.MANS_PRC_SKBT_CD));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NO, msg.getString(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NO));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NM, msg.getString(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NM));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT, msg.getString(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM, msg.getString(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.PRSIML_DSP_JUN, msg.getString(EKK1921B501CBSMsg1List.PRSIML_DSP_JUN));
				retEKK1921B501.put(EKK1921B501CBSMsg1List.PRSIML_DSP_LV, msg.getString(EKK1921B501CBSMsg1List.PRSIML_DSP_LV));

				this.tmpyPrcIcrnList.add(retEKK1921B501);
			}
		}

		// B料金シミュレーション料金プラン一覧照会
		template = new CAANMsg(EKK0591B502CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0591B502);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0591B502CBSMsg.EKK0591B502CBSMSG1LIST);

		String kojSbt = (String)inMap.get("koji_sbt");

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEKK0591B502 = new HashMap<String, String>();
				retEKK0591B502.put(EKK0591B502CBSMsg1List.SVC_CD, msg.getString(EKK0591B502CBSMsg1List.SVC_CD));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRC_GPP_CD, msg.getString(EKK0591B502CBSMsg1List.PRC_GPP_CD));
				String pcrsCd = msg.getString(EKK0591B502CBSMsg1List.PCRS_CD);
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PCRS_CD, pcrsCd);
				String pplanCd = msg.getString(EKK0591B502CBSMsg1List.PPLAN_CD);
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PPLAN_CD, pplanCd);
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRSIML_DSP_JUN, msg.getString(EKK0591B502CBSMsg1List.PRSIML_DSP_JUN));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRSIML_DSP_LV, msg.getString(EKK0591B502CBSMsg1List.PRSIML_DSP_LV));
				retEKK0591B502.put(EKK0591B502CBSMsg1List.PRSIML_PRC_DSP_NM, msg.getString(EKK0591B502CBSMsg1List.PRSIML_PRC_DSP_NM));

				if ((JFUStrConst.CD00134_G02.equals(pcrsCd) && JFUStrConst.CD00565_PG0201.equals(pplanCd) && (JFUStrConst.KOJI_SBT_019.equals(kojSbt) || JFUStrConst.KOJI_SBT_020.equals(kojSbt)))
						|| (JFUStrConst.CD00134_CA1.equals(pcrsCd) && JFUStrConst.CD00565_PCA101.equals(pplanCd) && JFUStrConst.KOJI_SBT_020.equals(kojSbt)))
				{
					retEKK0591B502.put(EKK0591B502CBSMsg1List.PPLAN_AMNT, JFUStrConst.S_ZERO);
				}
				else
				{
					retEKK0591B502.put(EKK0591B502CBSMsg1List.PPLAN_AMNT, msg.getString(EKK0591B502CBSMsg1List.PPLAN_AMNT));
				}

				this.pplanIcrnList.add(retEKK0591B502);
			}
		}

		// C料金シミュレーションメッセージ一覧照会
		template = new CAANMsg(EFU0181B001CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EFU0181B001);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EFU0181B001CBSMsg.EFU0181B001CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> retEFU0181B001 = new HashMap<String, String>();
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRSIML_MSG_PTN_ID, msg.getString(EFU0181B001CBSMsg1List.PRSIML_MSG_PTN_ID));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.SVC_TYPE_SKBT_CD, msg.getString(EFU0181B001CBSMsg1List.SVC_TYPE_SKBT_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD, msg.getString(EFU0181B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRSIML_MSG_BRI_CD, msg.getString(EFU0181B001CBSMsg1List.PRSIML_MSG_BRI_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRC_DSP_BRI_CD, msg.getString(EFU0181B001CBSMsg1List.PRC_DSP_BRI_CD));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.DSP_YUSEN_JUN, msg.getString(EFU0181B001CBSMsg1List.DSP_YUSEN_JUN));
				retEFU0181B001.put(EFU0181B001CBSMsg1List.PRC_SIML_DSP_MONGON, msg.getString(EFU0181B001CBSMsg1List.PRC_SIML_DSP_MONGON));

				this.msgIcrnList.add(retEFU0181B001);
			}
		}

		// ●スマートリンク情報取得 ANK-1580-00-00_eoスマートリンク改修対応
		getSmartLinkInfo(inMap);

		// ●料金シミュレーション割引メッセージ一覧照会
		template = new CAANMsg(EFU0351B001CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EFU0351B001);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

		/* SC呼出実行 */
		result = scCall(template);

		templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EFU0351B001CBSMsg.EFU0351B001CBSMSG1LIST);

		if (outMsgLst != null)
		{
			for (CAANMsg msg : outMsgLst)
			{
// ANK-3769-00-00 MOD START
				// "2"が増えたので、「"1"以外は表示しない」から「"0"は表示しないに条件変更」
				if (JFUStrConst.CD00003_0.equals(msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_DSP_FLG)))
// ANK-3769-00-00 MOD END
				{
					continue;
				}

				Map<String, String> retEFU0351B001 = new HashMap<String, String>();
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_ID, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_ID));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_PTN_ID, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_PTN_ID));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.SVC_CD, msg.getString(EFU0351B001CBSMsg1List.SVC_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRC_GRP_CD, msg.getString(EFU0351B001CBSMsg1List.PRC_GRP_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PCRS_CD, msg.getString(EFU0351B001CBSMsg1List.PCRS_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PPLAN_CD, msg.getString(EFU0351B001CBSMsg1List.PPLAN_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD, msg.getString(EFU0351B001CBSMsg1List.KANYU_KEI_PAY_HOSHIKI_CD));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.DSP_YUSEN_JUN, msg.getString(EFU0351B001CBSMsg1List.DSP_YUSEN_JUN));
// ANK-3133-00-00 ADD START
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_JUN, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_JUN));
// ANK-3133-00-00 ADD END
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_MNGN, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRBAPL_PRD_DSP_MNGN));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_TG_PRC_NM, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_TG_PRC_NM));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_AMNT_DSP_MNGN, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_AMNT_DSP_MNGN));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_BIKO, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_BIKO));
				retEFU0351B001.put(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_DSP_FLG, msg.getString(EFU0351B001CBSMsg1List.PRSIML_WRIB_MSG_DSP_FLG));

				this.wribMsgList.add(retEFU0351B001);
			}
		}
	}

	/**
	 * スマートリンク情報取得処理です。
	 *
	 * <br>
	 * @param inMap INマップ
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void getSmartLinkInfo(HashMap inMap) throws Exception
	{
		// 情報格納用リスト
		ArrayList infoList = new ArrayList();

		// 運用日付取得
		String oDate = JFUBPCommon.getOpeDate(null);

		// ●割賦プラン一覧照会（eoスマートリンク）
		CAANMsg template = new CAANMsg(EKK2521B501CBSMsg.class.getName());

		// 上りマッピング
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK2521B501);
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);
		template.set(EKK2521B501CBSMsg.KEY_TAKNKIKI_SBT_CD, JFUStrConst.CD01262_P0);

		// サービスIF実行
		Map<?, ?> result = scCall(template);

		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EKK2521B501CBSMsg.EKK2521B501CBSMSG1LIST);

		// 下りマッピング
		ArrayList eKK2521B501 = new ArrayList();
		if (outMsgLst != null && outMsgLst.length > 0)
		{
			for (CAANMsg msg : outMsgLst)
			{
				Map<String, String> childMap = new HashMap<String, String>();
				childMap.put(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD, msg.getString(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD));
				childMap.put(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD_ALI, msg.getString(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD_ALI));
				childMap.put(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD_NM, msg.getString(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD_NM));
				childMap.put(EKK2521B501CBSMsg1List.KAP_PAY_CNT, msg.getString(EKK2521B501CBSMsg1List.KAP_PAY_CNT));
				childMap.put(EKK2521B501CBSMsg1List.KAP_PLAN_CD, msg.getString(EKK2521B501CBSMsg1List.KAP_PLAN_CD));
				childMap.put(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT, msg.getString(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT));
				childMap.put(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT_WRIB, msg.getString(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT_WRIB));
				childMap.put(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_TANKA_SBT_CD, msg.getString(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_TANKA_SBT_CD));
				childMap.put(EKK2521B501CBSMsg1List.TAKNKIKI_MODEL_CD, msg.getString(EKK2521B501CBSMsg1List.TAKNKIKI_MODEL_CD));
				childMap.put(EKK2521B501CBSMsg1List.TAKNKIKI_MODEL_NM, msg.getString(EKK2521B501CBSMsg1List.TAKNKIKI_MODEL_NM));
				eKK2521B501.add(childMap);
			}
		}

		// ●割賦プラン料金表示文言一覧照会
		String[] kapplanpdmgnSbtCdList = null;
		String kapplanpdmgnSbtCd = JFUStrConst.EMPTY;
		if (!JFUBPCommon.isNull(inMap.get(SEARCH_KAPPLAN_PDMGN_SBT_CD)))
		{
			kapplanpdmgnSbtCd = (String)inMap.get(SEARCH_KAPPLAN_PDMGN_SBT_CD);
		}

		if(!JFUBPCommon.isNull(kapplanpdmgnSbtCd) && kapplanpdmgnSbtCd.contains(JFUStrConst.COMMA))
		{
			// 検索用割賦プラン料金表示文言種別コード設定値取得(複数)
			kapplanpdmgnSbtCdList = ((String)inMap.get(SEARCH_KAPPLAN_PDMGN_SBT_CD)).split(JFUStrConst.COMMA);
		}
		else if(!JFUBPCommon.isNull(kapplanpdmgnSbtCd) && !kapplanpdmgnSbtCd.contains(JFUStrConst.COMMA))
		{
			// 検索用割賦プラン料金表示文言種別コード設定値取得(1つ)
			kapplanpdmgnSbtCdList = new String[1];
			kapplanpdmgnSbtCdList[0] = kapplanpdmgnSbtCd;
		}
		else
		{
			// 検索用割賦プラン料金表示文言種別コード設定値無し
			return;
		}

		// 設定されている検索用割賦プラン料金表示文言種別コード分繰り返す
		for (int j = 0; j < kapplanpdmgnSbtCdList.length; j++)
		{
			String key = kapplanpdmgnSbtCdList[j];

			for (int i = 0; i < eKK2521B501.size(); i++)
			{
				HashMap eKK2521B501Map = new HashMap();
				eKK2521B501Map.putAll((HashMap)eKK2521B501.get(i));

				// 割賦プランコード
				String kapPlanCd = (String)eKK2521B501Map.get((EKK2521B501CBSMsg1List.KAP_PLAN_CD));

				template = new CAANMsg(EKK2831B010CBSMsg.class.getName());

				// 上りマッピング
				template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK2831B010);
				template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);
				template.set(EKK2831B010CBSMsg.KEY_KAPPLAN_PDMGN_SBT_CD, key);
				template.set(EKK2831B010CBSMsg.KEY_KAP_PLAN_CD, kapPlanCd);
				template.set(EKK2831B010CBSMsg.KEY_KAPPLAN_PDMGN_APLY_YMD, oDate);
				template.set(EKK2831B010CBSMsg.KEY_PREMIUM_OP_MKM_UM, JFUStrConst.CD00002_1);
				template.set(EKK2831B010CBSMsg.KEY_TNMT_COMPS_MKM_UM, JFUStrConst.CD00002_0);

				// サービスIF実行
				result = scCall(template);

				templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
				outMsgLst = templates[0].getCAANMsgList(EKK2831B010CBSMsg.EKK2831B010CBSMSG1LIST);

				// 下りマッピング(文言取得件数0件の場合)
				if(outMsgLst == null || outMsgLst.length == 0)
				{
					// 空を設定
					eKK2521B501Map.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN, JFUStrConst.EMPTY);
					eKK2521B501Map.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_SBT_CD, key);
					eKK2521B501Map.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD, JFUStrConst.EMPTY);
					eKK2521B501Map.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_TSTAYMD, JFUStrConst.EMPTY);
					eKK2521B501Map.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_TENDYMD, JFUStrConst.EMPTY);

					// 料金情報と文言情報をまとめる
					infoList.add(eKK2521B501Map);
					continue;
				}

				// 下りマッピング(文言取得件数1件以上の場合)
				for(CAANMsg msg : outMsgLst)
				{
					HashMap copyMap = new HashMap();
					JFUBPCommon.copyProperties(copyMap, eKK2521B501Map);
					// 文言(取得値を設定)
					copyMap.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN, msg.getString(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN));
					copyMap.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_SBT_CD, msg.getString(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_SBT_CD));
					copyMap.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD, msg.getString(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD));
					copyMap.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_TSTAYMD, msg.getString(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_TSTAYMD));
					copyMap.put(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_TENDYMD, msg.getString(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_TENDYMD));

					// 料金情報と文言情報をまとめる
					infoList.add(copyMap);
				}
			}
		}

		// 結果をスマートリンク情報リストに格納
		this.smartLinkInfoList.addAll(infoList);
	}

	/**
	 * <p>
	 * マンション相対料金反映
	 * </p>
	 *
	 * @param inMap 料金シミュレーションマップ
	 * @return List<Map<String, String>>
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private List<Map<String, String>> getMansionAitaiPrc(HashMap inMap) throws Exception
	{

		/* 返却用リスト */
		List retList = new ArrayList();

		// シミュレーション部品マップ
		Map<String, Object> iraiBuhinMap = new HashMap<String, Object>();

		// シミュレーション依頼マップ
		Map<String, String> iraiMap = null;

		// シミュレーション依頼リスト
		List<Map<String, String>> iraiList = new ArrayList<Map<String, String>>();

		// マンションID
		String mansionId = (String)inMap.get("mansion_id");
		// 加入契約支払方式コード
		String prsimlMsgPtnId = (String)inMap.get("prsiml_msg_ptn_id");
		// 提供方式契約番号
		String tkHoshikiKeiNo = (String)inMap.get("tk_hoshiki_kei_no");
		// 料金プラン一覧リスト
		List pplanIcrnList = (ArrayList)inMap.get("pplan_icrn_list");

		HashMap pplanIcrnMap = null;
		String pcrsCd = "";
		String prcSvcCd = "";
		String prcKmkCd = "";
		String seikyAmnt = "";
		String pplanCd = "";
		boolean initRplanFlg = true; // 料金プラン初期化フラグ

		// マンションID未設定の場合は処理を終了する
		if (mansionId == null || "".equals(mansionId))
		{
			return retList;
		}

		// シミュレーション依頼マップに設定
		iraiMap = new HashMap<String, String>();

		// 加入契約支払方式コードが"003":全戸一括、"004":全居住者一括
		if (KANYU_KEI_PAY_HOSHIKI_CD_003.equals(prsimlMsgPtnId)
				|| KANYU_KEI_PAY_HOSHIKI_CD_004.equals(prsimlMsgPtnId))
		{
			iraiMap.put("key_svc_cd", null);
			iraiMap.put("key_wrib_svc_cd", null);
			iraiMap.put("key_wrib_svc_tanka_no", null);
			iraiMap.put("key_prc_grp_cd", null);
			iraiMap.put("key_pcrs_cd", null);
			iraiMap.put("key_prc_plan_cd", null);
			iraiMap.put("key_prc_kmk_cd", null);
			iraiMap.put("key_mansion_id", mansionId);
			iraiMap.put("key_tk_hoshiki_kei_no", tkHoshikiKeiNo);
			iraiMap.put("key_pay_kei_skbt_cd", "2");
		}
		// 加入契約支払方式コードが"001":ベース、"002":個別
		else if (KANYU_KEI_PAY_HOSHIKI_CD_001.equals(prsimlMsgPtnId)
				|| KANYU_KEI_PAY_HOSHIKI_CD_002.equals(prsimlMsgPtnId))
		{
			iraiMap.put("key_svc_cd", null);
			iraiMap.put("key_wrib_svc_cd", null);
			iraiMap.put("key_wrib_svc_tanka_no", null);
			iraiMap.put("key_prc_grp_cd", null);
			iraiMap.put("key_pcrs_cd", null);
			iraiMap.put("key_prc_plan_cd", null);
			iraiMap.put("key_prc_kmk_cd", null);
			iraiMap.put("key_mansion_id", mansionId);
			iraiMap.put("key_tk_hoshiki_kei_no", tkHoshikiKeiNo);
			iraiMap.put("key_pay_kei_skbt_cd", "2");
		}
// OM-2018-0000878 2018/09/10 ADD START
		// 加入契約支払方式コードが上記以外
		else
		{
			return retList;
		}
// OM-2018-0000878 2018/09/10 ADD END

		// シミュレーション依頼リストに追加
		iraiList.add(iraiMap);

		// 料金シミュレーション部品
		iraiBuhinMap.put("JACPrcSimulationMsg1List", iraiList);

		// ST2-2013-0001259 機能コード「2」を設定
		iraiBuhinMap.put("func_code", "2");

		parameter.setData("JACPrcSimulationMansionMsg", iraiBuhinMap);

		/*** 料金CC呼出 ***/
		// 質問
		try
		{
			JFUBPCommon.getSrcSimulation(sessionHandle, parameter, "JACPrcSimulationMansionMsg");
		}
		catch (Throwable th)
		{
			JSYejbLog.println(JSYejbLog.ERROR, this.getClass(), PARTS_ERR_MSG, null, null, null);
			JSYejbLog.printStackTrace(JSYejbLog.ERROR, this.getClass(), th, null, null);
		}

		HashMap outMap = (HashMap)parameter.getData("JACPrcSimulationMansionMsg");
		if (outMap.containsKey("JACPrcSimulationMsg2List"))
		{
			retList = (ArrayList)outMap.get("JACPrcSimulationMsg2List");
		}

		/*** 月額料金の反映 ***/
		// 料金プラン一覧リストの件数分処理を実行する
		for (int i = 0; i < pplanIcrnList.size(); i++)
		{
			pplanIcrnMap = (HashMap)pplanIcrnList.get(i);
			pcrsCd = (String)pplanIcrnMap.get("pcrs_cd");
			pplanCd = (String)pplanIcrnMap.get("pplan_cd");

			// 条件に該当した場合は初期化フラグをデフォルトのまま更新しない
			// ST2-2013-0001259：マンション100Mライト対応(PA5611追加)
			initRplanFlg = true;
			if ((JFUStrConst.CD00134_A50.equals(pcrsCd) && JFUStrConst.CD00565_PA5001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A51.equals(pcrsCd) && JFUStrConst.CD00565_PA5101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A52.equals(pcrsCd) && JFUStrConst.CD00565_PA5201.equals(pplanCd))
					|| (JFUStrConst.CD00134_A53.equals(pcrsCd) && JFUStrConst.CD00565_PA5301.equals(pplanCd))
					|| (JFUStrConst.CD00134_A54.equals(pcrsCd) && JFUStrConst.CD00565_PA5401.equals(pplanCd))
					|| (JFUStrConst.CD00134_A55.equals(pcrsCd) && JFUStrConst.CD00565_PA5501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5611.equals(pplanCd))
					|| (JFUStrConst.CD00134_A57.equals(pcrsCd) && JFUStrConst.CD00565_PA5701.equals(pplanCd))
					|| (JFUStrConst.CD00134_C06.equals(pcrsCd) && JFUStrConst.CD00565_PC0601.equals(pplanCd))
					|| (JFUStrConst.CD00134_C43.equals(pcrsCd) && JFUStrConst.CD00565_PC4301.equals(pplanCd))
					|| (JFUStrConst.CD00134_C18.equals(pcrsCd) && JFUStrConst.CD00565_PC1801.equals(pplanCd))
					|| (JFUStrConst.CD00134_A69.equals(pcrsCd) && JFUStrConst.CD00565_PA6901.equals(pplanCd))
					|| (JFUStrConst.CD00134_A70.equals(pcrsCd) && JFUStrConst.CD00565_PA7001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A71.equals(pcrsCd) && JFUStrConst.CD00565_PA7101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A74.equals(pcrsCd) && JFUStrConst.CD00565_PA7401.equals(pplanCd)))
			{
			}
			else
			{
				initRplanFlg = false;
			}

			// 上記条件に該当した場合に料金プラン金額を初期化
			if (initRplanFlg == true)
			{
				pplanIcrnMap.put("pplan_amnt", "0");

				// 料金シミュレーション(AC)の結果件数分処理する
				for (int n = 0; n < retList.size(); n++)
				{
					Map retMap = (HashMap)retList.get(n);
					prcSvcCd = (String)retMap.get("prc_svc_cd");
					prcKmkCd = (String)retMap.get("prc_kmk_cd");
					seikyAmnt = (String)retMap.get("seiky_amnt");

					// 末尾に空白が入っているので除去
					prcSvcCd = prcSvcCd.trim();

					// 加入契約支払方式コードが"003":全戸一括、"004":全居住者一括
					if (KANYU_KEI_PAY_HOSHIKI_CD_003.equals(prsimlMsgPtnId) || KANYU_KEI_PAY_HOSHIKI_CD_004.equals(prsimlMsgPtnId))
					{
						// ST2-2013-0001259：100Mライトコース対応
						// 料金コースと料金プランが一致する金額をマップに設定する
						if (pplanCd.equals(prcSvcCd) && (RKC_21001101601.equals(prcKmkCd)))
						{
							// 基本料金
							pplanIcrnMap.put("pplan_amnt", seikyAmnt);
							break;
						}
						else if (pplanCd.equals(prcSvcCd) && (RKC_21003031101.equals(prcKmkCd) || RKC_21003031601.equals(prcKmkCd)))
						{
							// VDSLレンタル・買取料金
							pplanIcrnMap.put("pplan_amnt", seikyAmnt);
							break;
						}
					}
					// 加入契約支払方式コードが"001":ベース、"002":個別
					else if (KANYU_KEI_PAY_HOSHIKI_CD_001.equals(prsimlMsgPtnId) || KANYU_KEI_PAY_HOSHIKI_CD_002.equals(prsimlMsgPtnId))
					{
						// ST2-2013-0001259：100Mライトコース対応
						// 料金コースと料金プランが一致する金額をマップに設定する
						if (pplanCd.equals(prcSvcCd) && (RKC_21001101601.equals(prcKmkCd)))
						{
							// 基本料金
							pplanIcrnMap.put("pplan_amnt", seikyAmnt);
							break;
						}
						else if (pplanCd.equals(prcSvcCd) && (RKC_21003031101.equals(prcKmkCd) || RKC_21003031601.equals(prcKmkCd)))
						{
							// VDSLレンタル・買取料金
							pplanIcrnMap.put("pplan_amnt", seikyAmnt);
							break;
						}
					}
				}
			}
		}

		// 結果を返却する。
		return retList;
	}

	/**
	 * <p>
	 * 割引サービス料金取得
	 * </p>
	 *
	 * @param inMap 料金シミュレーションマップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void getWarisvcPrc(HashMap inMap) throws Exception
	{
		// 契約依頼(共通情報)マップ
		Map<String, Object> keiyakuCommonMap = new HashMap<String, Object>();
		// 契約依頼マップ
		Map<String, Object> keiyakuIraiMap = new HashMap<String, Object>();
		// 契約依頼(サービス情報)マップ
		Map<String, Object> keiyakuIraiSvcMap = null;

		// 契約依頼リスト
		List<Map<String, Object>> keiyakuIraiList = new ArrayList<Map<String, Object>>();

		// シミュレーション部品マップ(即割以外)
		Map<String, Object> iraiBuhinMap = new HashMap<String, Object>();
		// シミュレーション部品マップ(即割用)
		Map<String, Object> iraiSokuwariBuhinMap = new HashMap<String, Object>();

		// シミュレーション依頼リスト(即割以外)
		List<Map<String, String>> iraiList = new ArrayList<Map<String, String>>();
		// シミュレーション依頼リスト(即割用)
		List<Map<String, String>> iraiSokuwariList = new ArrayList<Map<String, String>>();

		// 割引サービス単価リスト
		List<Map<String, String>> wribsvcTankaList = null;

		// 料金サービス契約リスト
		List prcSvkeiList = this.prcSvkeiList;
		// 料金サービス契約リスト
		List kkeiSvcList = null;

		// 料金シミュレーションリスト(AC)
		List acSimuList = new ArrayList();

		// eoモバイルリスト
		List<String> embList = Arrays.asList(JFUStrConst.CD00134_A26, JFUStrConst.CD00134_A27, JFUStrConst.CD00134_A28, JFUStrConst.CD00134_A29,
				JFUStrConst.CD00134_A59, JFUStrConst.CD00134_A60);

		HashMap prcSvkeiMap =  null;
		HashMap wribSvcMap =  null;
		HashMap wribsvcTankaMap =  null;

		String wribSvcCd = "";
		String seikyKeiNo = "";
		String svcKeiKaisenUcwkNo = "";
		String sokuwariUm = "";
		String famipaKeiUm = "";
		String svcCd = "";
		String pcrsCd = "";
		String prcGrpCd = "";
		String pplanCd = "";

		// 割引サービスコードリスト
		List wribSvcCdList =  null;
		List opSvcList = new ArrayList();
		List sbopSvcList = new ArrayList();
		List seiopSvcList = new ArrayList();
		List kktkSvcList = new ArrayList();

		this.kkWribSvcList = new ArrayList();
		this.acPrsimlRsltList = new ArrayList();

		boolean setSvcListFlg = false; // サービス契約リスト設定フラグ

		String idoDiv = (String)inMap.get("ido_div");
		String mskmSbtCd = (String)inMap.get("mskm_sbt_cd");
		String mskmFormCd = (String)inMap.get("mskm_form_cd");
		wribSvcCdList = (ArrayList)inMap.get("wrib_svc_cd_list");

		// 選択サービス情報
		String selNet = (String)inMap.get("select_svc_net");
		String mbcrs = (String)inMap.get("mobile_course");
		String mskmKsnSvc = (String)inMap.get("mskm_ksn_svc");

		// ANK-4109-00-00 ADD START
		String telStdardKojihiPaywayDspFlg = (String)inMap.get("tel_stdard_kojihi_payway_dsp_flg");
		// ANK-4109-00-00 ADD END
		String stdardKojihiPayway = (String)inMap.get("stdard_kojihi_payway");

		boolean netFlg = false;
		boolean tvUwFlg = false;
		int svcKeiCnt = 0;

		// 既契約情報を設定
		kkeiSvcList = new ArrayList();
		if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.CD00731_1.equals((String)inMap.get("payway_continue"))
				&& this.sameSeikySvcList != null && this.sameSeikySvcList.size() > 0)
		{
			// 同回線＆同請求先に追加の場合、請求先に紐付くサービス契約情報をリストに追加する
			kkeiSvcList.addAll(this.sameSeikySvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && this.mbKaisenSvcList != null && this.mbKaisenSvcList.size() > 0)
		{
			// 同回線＆請求先未決定＆モバイル単独の場合、全回線に紐付くサービス契約情報をリストに追加する
			kkeiSvcList.addAll(this.mbKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& this.sameKaisenSvcList != null && this.sameKaisenSvcList.size() > 0)
		{
			// 同回線に追加で請求先未決定の場合、回線に紐付くサービス契約情報をリストに追加する
			kkeiSvcList.addAll(this.sameKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && "2".equals((String)inMap.get("payway_continue"))
				&& JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && this.mbKaisenSvcList != null && this.mbKaisenSvcList.size() > 0)
		{
			// 同回線＆支払引き継がない＆モバイル単独の場合、全回線に紐付くサービス契約情報をリストに追加する
			kkeiSvcList.addAll(this.mbKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && "2".equals((String)inMap.get("payway_continue"))
				&& this.sameKaisenSvcList != null && this.sameKaisenSvcList.size() > 0)
		{
			// 同回線＆支払引き継がない場合、回線に紐付くサービス契約情報をリストに追加する
			kkeiSvcList.addAll(this.sameKaisenSvcList);
		}

		// 既契約情報を設定
		if ("1".equals((String)inMap.get("kaisen_select")))
		{
			for (int i = 0; i < kkeiSvcList.size(); i++)
			{
				HashMap kkeiSvcMap = (HashMap)kkeiSvcList.get(i);

				svcCd = (String)kkeiSvcMap.get("svc_cd");
				prcGrpCd = (String)kkeiSvcMap.get("prc_grp_cd");
				pcrsCd = (String)kkeiSvcMap.get("pcrs_cd");
				pplanCd = (String)kkeiSvcMap.get("prc_plan_cd");

				if (!isNull(prcGrpCd) && JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd)
						|| JFUStrConst.CD00133_04.equals(prcGrpCd))
				{
					// ネット契約フラグ
					// ネット既契約フラグ
					this.netKeiFlg = true;
					this.kkeiNetKeiFlg = true;
				}
				if (!isNull(prcGrpCd) && JFUStrConst.CD00133_10.equals(prcGrpCd))
				{
					// 電話契約フラグ
					// 電話既契約フラグ
					this.telKeiFlg = true;
					this.kkeiTelKeiFlg = true;
				}
// ANK-4592-00-00 MOD START
				if (!tvUwFlg
						&& (JFUStrConst.CD00134_A36.equals(pcrsCd) || JFUStrConst.CD00134_A37.equals(pcrsCd)
								|| JFUStrConst.CD00134_A40.equals(pcrsCd) || JFUStrConst.CD00134_A41.equals(pcrsCd)
								|| JFUStrConst.CD00134_A85.equals(pcrsCd) || JFUStrConst.CD00134_A86.equals(pcrsCd) || JFUStrConst.CD00134_A87.equals(pcrsCd)
								|| JFUStrConst.CD00134_AC0.equals(pcrsCd) || JFUStrConst.CD00134_AC1.equals(pcrsCd)))
// ANK-4592-00-00 MOD END
				{
					// テレビ契約フラグ
					// テレビ既契約フラグ
					this.kkeiTvKeiFlg = true;
				}
			}
		}

		/*** 契約CCに渡すINパラメータを設定 ***/
		List keiyakuCCList = new ArrayList();

		// ●セット割取得情報を設定
		keiyakuCCList.addAll(this.prcSvkeiList);

		// 既契約情報を設定
		if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.CD00731_1.equals((String)inMap.get("payway_continue"))
				&& this.sameSeikySvcList != null && this.sameSeikySvcList.size() > 0)
		{
			// 同回線＆同請求先に追加の場合、請求先に紐付くサービス契約情報をリストに追加する
			keiyakuCCList.addAll(this.sameSeikySvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && this.mbKaisenSvcList != null && this.mbKaisenSvcList.size() > 0)
		{
			// 同回線＆請求先未決定＆モバイル単独の場合、全回線に紐付くサービス契約情報をリストに追加する
			keiyakuCCList.addAll(this.mbKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& this.sameKaisenSvcList != null && this.sameKaisenSvcList.size() > 0)
		{
			// 同回線に追加で請求先未決定の場合、回線に紐付くサービス契約情報をリストに追加する
			keiyakuCCList.addAll(this.sameKaisenSvcList);
		}

		// ●料金サービス契約リストの件数分処理を実行する
		for (int i = 0; i < keiyakuCCList.size(); i++)
		{
			prcSvkeiMap = (HashMap)keiyakuCCList.get(i);

			seikyKeiNo = (String)prcSvkeiMap.get("seiky_kei_no");
			svcKeiKaisenUcwkNo = (String)prcSvkeiMap.get("svc_kei_kaisen_ucwk_no");
			sokuwariUm = (String)prcSvkeiMap.get("soku_wari_um");
			famipaKeiUm = (String)prcSvkeiMap.get("famipa_kei_um");
			svcCd = (String)prcSvkeiMap.get("svc_cd");
			prcGrpCd = (String)prcSvkeiMap.get("prc_grp_cd");
			pcrsCd = (String)prcSvkeiMap.get("pcrs_cd");
			pplanCd = (String)prcSvkeiMap.get("prc_plan_cd");

			if(!isNull(prcGrpCd)
					&& JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd) || JFUStrConst.CD00133_04.equals(prcGrpCd))
			{
				// ネット契約フラグ
				netFlg = true;
				this.netKeiFlg = true;
			}
			if(!isNull(prcGrpCd) && JFUStrConst.CD00133_10.equals(prcGrpCd))
			{
				// 電話契約フラグ
				this.telKeiFlg = true;
			}

			if (!tvUwFlg
					&& (JFUStrConst.CD00134_A36.equals(pcrsCd) || JFUStrConst.CD00134_A40.equals(pcrsCd) || JFUStrConst.CD00134_A41.equals(pcrsCd)
							|| JFUStrConst.CD00134_A85.equals(pcrsCd) || JFUStrConst.CD00134_A86.equals(pcrsCd) || JFUStrConst.CD00134_A87
							.equals(pcrsCd)))
			{
				// テレビの内訳の場合、1台目の内訳料金コースコードを連携してセット割情報を取得するようにする
				// 1代目で必ず通り連携済みフラグを立てる(地デジBSは除く)
				tvUwFlg = true;
			}
			else if (tvUwFlg
					&& (JFUStrConst.CD00134_A40.equals(pcrsCd) || JFUStrConst.CD00134_A41.equals(pcrsCd) || JFUStrConst.CD00134_A86.equals(pcrsCd) || JFUStrConst.CD00134_A87
							.equals(pcrsCd)))
			{
				// 2台目以降は連携しないようにする
				continue;
			}

			// モバイル選択フラグ
			if(embList.contains(pcrsCd))
			{
				this.mbKeiFlg = true;
			}

			// TAI-2012-0000136 コード体系変更対応 メゾンタイプとマンション光配線を追加
			// 2013/04/23 100Mプレミアム(ホーム・メゾン・マンション)のコードを追加
			// 契約新規対応：コンパクト追加
			// 条件に該当した場合は設定フラグを立てる
			setSvcListFlg = false;
// ANK-4592-00-00 MOD START
			if ((JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0301.equals(pplanCd))
					|| (JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0311.equals(pplanCd))
					|| (JFUStrConst.CD00134_A04.equals(pcrsCd) && JFUStrConst.CD00565_PA0401.equals(pplanCd))
					|| (JFUStrConst.CD00134_A07.equals(pcrsCd) && JFUStrConst.CD00565_PA0701.equals(pplanCd))
					|| (JFUStrConst.CD00134_A05.equals(pcrsCd) && JFUStrConst.CD00565_PA0501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
					|| (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
					|| (JFUStrConst.CD00134_A91.equals(pcrsCd) && JFUStrConst.CD00565_PA9101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
					|| (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0801.equals(pplanCd))
					|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0811.equals(pplanCd))
					|| (JFUStrConst.CD00134_A09.equals(pcrsCd) && JFUStrConst.CD00565_PA0901.equals(pplanCd))
					|| (JFUStrConst.CD00134_A11.equals(pcrsCd) && JFUStrConst.CD00565_PA1101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A10.equals(pcrsCd) && JFUStrConst.CD00565_PA1001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
					|| (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A92.equals(pcrsCd) && JFUStrConst.CD00565_PA9201.equals(pplanCd))
					|| (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
					|| (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A50.equals(pcrsCd) && JFUStrConst.CD00565_PA5001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A51.equals(pcrsCd) && JFUStrConst.CD00565_PA5101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A52.equals(pcrsCd) && JFUStrConst.CD00565_PA5201.equals(pplanCd))
					|| (JFUStrConst.CD00134_A53.equals(pcrsCd) && JFUStrConst.CD00565_PA5301.equals(pplanCd))
					|| (JFUStrConst.CD00134_A54.equals(pcrsCd) && JFUStrConst.CD00565_PA5401.equals(pplanCd))
					|| (JFUStrConst.CD00134_A55.equals(pcrsCd) && JFUStrConst.CD00565_PA5501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5611.equals(pplanCd))
					|| (JFUStrConst.CD00134_A57.equals(pcrsCd) && JFUStrConst.CD00565_PA5701.equals(pplanCd))
					|| (JFUStrConst.CD00134_A31.equals(pcrsCd) && JFUStrConst.CD00565_PA3101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A31.equals(pcrsCd) && JFUStrConst.CD00565_PA3102.equals(pplanCd))
					|| (JFUStrConst.CD00134_A31.equals(pcrsCd) && JFUStrConst.CD00565_PA3103.equals(pplanCd))
					|| (JFUStrConst.CD00134_A31.equals(pcrsCd) && JFUStrConst.CD00565_PA3104.equals(pplanCd))
					|| (JFUStrConst.CD00134_A32.equals(pcrsCd) && JFUStrConst.CD00565_PA3201.equals(pplanCd))
					|| (JFUStrConst.CD00134_A32.equals(pcrsCd) && JFUStrConst.CD00565_PA3202.equals(pplanCd))
					|| (JFUStrConst.CD00134_A32.equals(pcrsCd) && JFUStrConst.CD00565_PA3203.equals(pplanCd))
					|| (JFUStrConst.CD00134_A32.equals(pcrsCd) && JFUStrConst.CD00565_PA3204.equals(pplanCd))
					|| (JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3603.equals(pplanCd))
					|| (JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3605.equals(pplanCd))
					|| (JFUStrConst.CD00134_A37.equals(pcrsCd) && JFUStrConst.CD00565_PA3701.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4003.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4005.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4103.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4105.equals(pplanCd))
					|| (JFUStrConst.CD00134_A26.equals(pcrsCd) && JFUStrConst.CD00565_PA2601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A27.equals(pcrsCd) && JFUStrConst.CD00565_PA2701.equals(pplanCd))
					|| (JFUStrConst.CD00134_A28.equals(pcrsCd) && JFUStrConst.CD00565_PA2801.equals(pplanCd))
					|| (JFUStrConst.CD00134_A29.equals(pcrsCd) && JFUStrConst.CD00565_PA2902.equals(pplanCd))
					|| (JFUStrConst.CD00134_A30.equals(pcrsCd) && JFUStrConst.CD00565_PA3001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A59.equals(pcrsCd) && JFUStrConst.CD00565_PA5901.equals(pplanCd))
					|| (JFUStrConst.CD00134_A60.equals(pcrsCd) && JFUStrConst.CD00565_PA6001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A69.equals(pcrsCd) && JFUStrConst.CD00565_PA6901.equals(pplanCd))
					|| (JFUStrConst.CD00134_A70.equals(pcrsCd) && JFUStrConst.CD00565_PA7001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A71.equals(pcrsCd) && JFUStrConst.CD00565_PA7101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8503.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8505.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8603.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8605.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8701.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8703.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8705.equals(pplanCd))
					|| (JFUStrConst.CD00134_A74.equals(pcrsCd) && JFUStrConst.CD00565_PA7401.equals(pplanCd))
					|| (JFUStrConst.CD00134_AC0.equals(pcrsCd) && JFUStrConst.CD00565_PAC001.equals(pplanCd))
					|| (JFUStrConst.CD00134_AC1.equals(pcrsCd) && JFUStrConst.CD00565_PAC101.equals(pplanCd)))
// ANK-4592-00-00 MOD END
			{
				setSvcListFlg = true;
				svcKeiCnt++;
			}

			if (setSvcListFlg == true)
			{
				keiyakuIraiSvcMap = new HashMap<String, Object>();

				keiyakuIraiSvcMap.put("seky_kei_no", seikyKeiNo);
				keiyakuIraiSvcMap.put("kaisen_kei_no", svcKeiKaisenUcwkNo);
				keiyakuIraiSvcMap.put("sokuwari_um", sokuwariUm);
				keiyakuIraiSvcMap.put("family_pack_um", famipaKeiUm);
				keiyakuIraiSvcMap.put("svc_cd", svcCd);
				keiyakuIraiSvcMap.put("prc_grp_cd", prcGrpCd);
				keiyakuIraiSvcMap.put("pcrs_cd", pcrsCd);
				keiyakuIraiSvcMap.put("pplan_cd", pplanCd);
				keiyakuIraiSvcMap.put("op_svc_list", opSvcList);
				keiyakuIraiSvcMap.put("sbop_svc_list", sbopSvcList);
				keiyakuIraiSvcMap.put("seiopsvc_list", seiopSvcList);
				keiyakuIraiSvcMap.put("kktk_svc_list", kktkSvcList);

				// シミュレーション依頼リストに追加
				keiyakuIraiList.add(keiyakuIraiSvcMap);
			}
		}

		keiyakuCommonMap.put("ido_div", idoDiv);
		keiyakuCommonMap.put("mskm_sbt_cd", mskmSbtCd);
		keiyakuCommonMap.put("mskm_form_cd", mskmFormCd);
		keiyakuCommonMap.put("svc_info_list", keiyakuIraiList);
		keiyakuCommonMap.put("wrib_svc_cd_list", wribSvcCdList);

		keiyakuIraiMap.put("common_info", keiyakuCommonMap);

		parameter.setData("JKKPrcSimulation", keiyakuIraiMap);

		/*** 契約CC呼出 ***/
		try
		{
			JKKBpCommon.simulationWribSvc(sessionHandle, parameter, "JKKPrcSimulation");
		}
		catch (Throwable th)
		{
			JSYejbLog.println(JSYejbLog.ERROR, this.getClass(), PARTS_ERR_MSG, null, null, null);
			JSYejbLog.printStackTrace(JSYejbLog.ERROR, this.getClass(), th, null, null);
		}

		HashMap outMap = (HashMap)parameter.getData("JKKPrcSimulation");

		if (outMap == null)
		{
			return;
		}

		if (!outMap.containsKey("common_info"))
		{
			return;
		}

		HashMap common_infoMap = (HashMap)outMap.get("common_info");
		if (common_infoMap == null)
		{
			return;
		}

		if (!common_infoMap.containsKey("wrib_svc_list"))
		{
			// 割引サービスリストが無かった場合は処理を抜ける
			return;
		}

		this.kkWribSvcList = (ArrayList)common_infoMap.get("wrib_svc_list");

		// 即割り追加フラグ
		boolean isAddSokuwari = false;
		// 割引サービスMap
		HashMap wribSvcCdMap = new HashMap();

		// 割引サービスMap生成
		if (wribSvcCdList != null)
		{
			for (Object map : wribSvcCdList)
			{
				wribSvcCdMap.put(((Map)map).get("wrib_svc_cd"), "");
			}
		}

		/*** 料金CCに渡すINパラメータを設定 ***/
		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < this.kkWribSvcList.size(); i++)
		{

			wribSvcMap = (HashMap)this.kkWribSvcList.get(i);

			wribsvcTankaList = (ArrayList)wribSvcMap.get("wrib_svc_tanka_list");
			wribSvcCd = (String)wribSvcMap.get("wrib_svc_cd");

			// 割引サービス単価リストの件数分処理を実行する
			for (int n = 0; n < wribsvcTankaList.size(); n++)
			{
				wribsvcTankaMap = (HashMap)wribsvcTankaList.get(n);

				svcCd = (String)wribsvcTankaMap.get("svc_cd");
				prcGrpCd = (String)wribsvcTankaMap.get("prc_grp_cd");
				pcrsCd = (String)wribsvcTankaMap.get("pcrs_cd");
				pplanCd = (String)wribsvcTankaMap.get("pplan_cd");

				// シミュレーション依頼リストとの突合せをし不要な割引サービスを除外する。
				for (int m = 0; m < keiyakuIraiList.size(); m++)
				{
					keiyakuIraiSvcMap = (HashMap)keiyakuIraiList.get(m);
					String keiIraiPcrsCd = (String)keiyakuIraiSvcMap.get("pcrs_cd");

					// ●即割り
					if (!isAddSokuwari && JFUStrConst.KK0841_WRIB_SVC_CD_SOKUWARI.equals(wribSvcCd))
					{
						// シミュレーション依頼リスト(即割用)に追加
						iraiSokuwariList.add(this.createWrbkIraiMap2(wribSvcMap, wribsvcTankaMap, keiyakuIraiSvcMap));
						isAddSokuwari = true;
					}

					// ●手動適用
					else if (wribSvcCdMap.containsKey(wribSvcCd))
					{
						// 料金プランコードが合致する場合
						if (pplanCd.equals((String)keiyakuIraiSvcMap.get("pplan_cd")))
						{
							// シミュレーション依頼リストに追加
							iraiList.add(this.createWrbkIraiMap2(wribSvcMap, wribsvcTankaMap, keiyakuIraiSvcMap));
							wribSvcCdMap.remove(wribSvcCd);
						}
					}

					// ●セット割
					else if (JFUStrConst.KK0841_WRIB_SVC_CD_NETTV_SET.equals(wribSvcCd)
							|| JFUStrConst.KK0841_WRIB_SVC_CD_NETTELL_SET.equals(wribSvcCd)
							|| JFUStrConst.KK0841_WRIB_SVC_CD_TELLTV_SET.equals(wribSvcCd)
							|| JFUStrConst.KK0841_WRIB_SVC_CD_NETMOBILE_SET.equals(wribSvcCd)
							|| W000M0402.equals(wribSvcCd)
							|| W000M0702.equals(wribSvcCd) || W000M0703.equals(wribSvcCd) || W000M0704.equals(wribSvcCd)
							|| W000M1502.equals(wribSvcCd) || W000M1503.equals(wribSvcCd) || W000M1504.equals(wribSvcCd))
					{
						if (JFUStrConst.KK0841_WRIB_SVC_CD_TELLTV_SET.equals(wribSvcCd) && netFlg)
						{
							// ネット選択かつTV電話セット割の場合、依頼しない(ホームメゾン)
							continue;
						}
						if ((W000M0704.equals(wribSvcCd) || W000M1504.equals(wribSvcCd)) && netFlg)
						{
							// ネット選択かつTV電話セット割の場合、依頼しない(マンション)
							continue;
						}
						if(svcKeiCnt == 1 && this.mbKeiFlg && !JFUStrConst.KK0841_WRIB_SVC_CD_NETMOBILE_SET.equals(wribSvcCd))
						{
							// モバイルのみ追加契約でネットモバイルセット割り以外の場合依頼しない
							continue;
						}
						if(JFUStrConst.KK0841_WRIB_SVC_CD_NETMOBILE_SET.equals(wribSvcCd) && !"1".equals(selNet)
								&& (JFUStrConst.EMPTY.equals(mbcrs) || JFUStrConst.MOBILE_COURSE_NON.equals(mbcrs))
								&& !JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc))
						{
							// ネットモバイルセット割でネットとモバイルの選択が無い場合依頼しない
							continue;
						}

						// 料金プランコードが合致する場合
						if (pplanCd.equals((String)keiyakuIraiSvcMap.get("pplan_cd")))
						{
							if(JFUStrConst.KK0841_WRIB_SVC_CD_NETTV_SET.equals(wribSvcCd)
									|| JFUStrConst.KK0841_WRIB_SVC_CD_TELLTV_SET.equals(wribSvcCd)
									|| W000M0402.equals(wribSvcCd)
									|| W000M0702.equals(wribSvcCd) || W000M0704.equals(wribSvcCd)
									|| W000M1502.equals(wribSvcCd) || W000M1504.equals(wribSvcCd))
							{
								// TVを含むセット割の場合
								// 契約新規対応：コンパクト追加
								if (JFUStrConst.CD00134_A36.equals(pcrsCd) || JFUStrConst.CD00134_A40.equals(pcrsCd)
										|| JFUStrConst.CD00134_A41.equals(pcrsCd) || JFUStrConst.CD00134_A85.equals(pcrsCd)
										|| JFUStrConst.CD00134_A86.equals(pcrsCd) || JFUStrConst.CD00134_A87.equals(pcrsCd))
								{
									// コンパクトまたはプレミアムまたはベーシックの場合、料金コースコードをHDコースに置き換える
									keiyakuIraiSvcMap.put("pcrs_cd", JFUStrConst.CD00134_A39);
									wribsvcTankaMap.put("pcrs_cd", JFUStrConst.CD00134_A39);
								}
							}

							for (int k = 0; k < 2; k++)
							{
								// シミュレーション依頼リストに追加
								iraiList.add(this.createWrbkIraiMap1(wribSvcMap, wribsvcTankaMap, keiyakuIraiSvcMap, k));
							}
						}
					}
					else
					{
						// ●自動適用キャンペーン
						// 料金プランコードが合致する場合
						if (pplanCd.equals((String)keiyakuIraiSvcMap.get("pplan_cd")))
						{
							// ANK-4109-00-00 ADD START
							if (W50000006.equals(wribSvcCd)
									&& (!JFUStrConst.STDARD_KOJIHI_PAYWAY_DISP_ON.equals(telStdardKojihiPaywayDspFlg) 
										|| !JFUStrConst.STDARD_KOJIHI_PAYWAY_IKT.equals(stdardKojihiPayway)))
							{
								// W50000006：（eo光電話）標準工事費相当額割引キャンペーン(一括払い)
								// かつ、電話の標準工事費ボタンが選択されていない場合、除外する
								continue;
							}
							// ANK-4109-00-00 ADD END

							for (int k = 0; k < 2; k++)
							{
								if (JFUStrConst.CD00134_A36.equals(pcrsCd) || JFUStrConst.CD00134_A40.equals(pcrsCd)
										|| JFUStrConst.CD00134_A41.equals(pcrsCd) || JFUStrConst.CD00134_A85.equals(pcrsCd)
										|| JFUStrConst.CD00134_A86.equals(pcrsCd) || JFUStrConst.CD00134_A87.equals(pcrsCd))
								{
									// プレミアムまたはベーシックの場合、料金コースコードにHDコースを設定
									keiyakuIraiSvcMap.put("pcrs_cd", JFUStrConst.CD00134_A39);
									wribsvcTankaMap.put("pcrs_cd", JFUStrConst.CD00134_A39);
								}
								// シミュレーション依頼リストに追加
								iraiList.add(this.createWrbkIraiMap1(wribSvcMap, wribsvcTankaMap, keiyakuIraiSvcMap, k));
							}
						}
						else
						{
							// ●eoモバイル機器
							if(embList.contains(keiIraiPcrsCd))
							{
								// 上条件で一致しない場合は、機器の料金プランコードで比較する
								for (int j = 0; j < prcSvkeiList.size(); j++)
								{
									HashMap childPrcSvcKeiMap = (HashMap)prcSvkeiList.get(j);
									String kikiPplanCd = (String)childPrcSvcKeiMap.get("prc_plan_cd");

									if (kikiPplanCd != null && kikiPplanCd.startsWith("PC") && pplanCd.equals(kikiPplanCd))
									{
										for (int k = 0; k < 2; k++)
										{
											// シミュレーション依頼リストに追加
											iraiList.add(this.createWrbkIraiMap1(wribSvcMap, wribsvcTankaMap, keiyakuIraiSvcMap, k));
										}
									}
								}
							}
						}
					}
				}
			}
		}

		String netMskmFlg = "";
		String telMskmFlg = "";
		String tvMskmFlg = "";
		String mblWifiMskmFlg = "";
		String mblEmMskmFlg = "";
		String mblUqMskmFlg = "";

		// 料金サービス契約リストの件数分処理を実行する
		for (int i = 0; i < this.prcSvkeiList.size(); i++)
		{
			HashMap prcSvkeiMap_ = (HashMap)prcSvkeiList.get(i);

			String keiDiv = (String)prcSvkeiMap_.get("kei_div");
			String prcGrpCdKei = (String)prcSvkeiMap_.get("prc_grp_cd");

			// 契約区分が"1":新契約の場合
			if (KEI_DIV_1.equals(keiDiv))
			{
				if (JFUStrConst.CD00133_02.equals(prcGrpCdKei) || JFUStrConst.CD00133_03.equals(prcGrpCdKei) || JFUStrConst.CD00133_04.equals(prcGrpCdKei))
				{
					netMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_10.equals(prcGrpCdKei))
				{
					telMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_11.equals(prcGrpCdKei) || JFUStrConst.CD00133_12.equals(prcGrpCdKei))
				{
					tvMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_07.equals(prcGrpCdKei))
				{
					mblWifiMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_08.equals(prcGrpCdKei))
				{
					mblEmMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_09.equals(prcGrpCdKei))
				{
					mblUqMskmFlg = JFUStrConst.CD00002_1;
				}
			}
		}

		// ●初期費用対応
		for (int m = 0; m < keiyakuIraiList.size(); m++)
		{
			keiyakuIraiSvcMap = (HashMap)keiyakuIraiList.get(m);

			String targetPrcKmkCd =
					getPrcKmkCd((String)keiyakuIraiSvcMap.get("prc_grp_cd"), (String)keiyakuIraiSvcMap.get("pcrs_cd"), this.getKsnType(inMap));

			// ネットと電話が申し込まれている状態の場合、電話工事費は引かないようにする
			if (RKC_S1248001601.equals(targetPrcKmkCd) && JFUStrConst.CD00002_1.equals(netMskmFlg) && JFUStrConst.CD00002_1.equals(telMskmFlg))
			{
				continue;
			}
			// 既契約にネットがある場合、電話工事費は引かないようにする
			if (RKC_S1248001601.equals(targetPrcKmkCd) && this.kkeiNetKeiFlg)
			{
				continue;
			}

// ANK-3296-00-00 ADD START
			if (JFUBPCommon.getOpeDate(null).compareTo(STDARD_KOJIHI_OPEN_YMD) >= 0 && KSN_TYPE_HT_MZ.equals(getKsnType(inMap)) &&
					(RKC_S1208001601.equals(targetPrcKmkCd) || RKC_S1248001601.equals(targetPrcKmkCd)))
			{
				continue;
			}
// ANK-3296-00-00 ADD END

			// テレビの料金コースコードを変換
			// 契約新規対応：コンパクト追加
			if (JFUStrConst.CD00134_A36.equals((String)keiyakuIraiSvcMap.get("pcrs_cd"))
					|| JFUStrConst.CD00134_A40.equals((String)keiyakuIraiSvcMap.get("pcrs_cd"))
					|| JFUStrConst.CD00134_A41.equals((String)keiyakuIraiSvcMap.get("pcrs_cd"))
					|| JFUStrConst.CD00134_A85.equals((String)keiyakuIraiSvcMap.get("pcrs_cd"))
					|| JFUStrConst.CD00134_A86.equals((String)keiyakuIraiSvcMap.get("pcrs_cd"))
					|| JFUStrConst.CD00134_A87.equals((String)keiyakuIraiSvcMap.get("pcrs_cd")))
			{
				keiyakuIraiSvcMap.put("pcrs_cd", JFUStrConst.CD00134_A39);
			}

			if(this.createShkhIraiMap(keiyakuIraiSvcMap, this.getKsnType(inMap)) == null)
			{
				continue;
			}

			iraiList.add(this.createShkhIraiMap(keiyakuIraiSvcMap, this.getKsnType(inMap)));
		}

		// AC部品に渡す依頼リストを設定(即割以外)
		iraiList.addAll(getWribInfoAnotherPlace(this.parameter, this.fixedText));
		iraiBuhinMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG1LIST, iraiList);

		if(isAddSokuwari)
		{
			// 即割申込有りの場合
			iraiSokuwariBuhinMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG1LIST, iraiSokuwariList);
		}

		// 【ST2-2013-0001533】即割選択時の金額不正対応
		if(KSN_TYPE_HT_MZ.equals(getKsnType(inMap)))
		{
			// ホームメゾンの場合：機能コード「1」
			iraiBuhinMap.put(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);

			if(isAddSokuwari)
			{
				// 即割申込有りの場合
				iraiSokuwariBuhinMap.put(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
			}
		}
		else
		{
			// マンションの場合：機能コード「2」
			iraiBuhinMap.put(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_2);

			if(isAddSokuwari)
			{
				// 即割申込有りの場合(※マンションの場合は実行されないと思われる)
				iraiSokuwariBuhinMap.put(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_2);
			}
		}

		// シミュレーション結果リスト
		ArrayList resList = new ArrayList<HashMap>();
		HashMap detailMap = new HashMap();
		resList.add(detailMap);

		iraiBuhinMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG2LIST, resList);

		if(isAddSokuwari)
		{
			// 即割申込有りの場合
			iraiSokuwariBuhinMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG2LIST, resList);
		}

		if (isAddSokuwari)
		{
			// 即割申込有りの場合
			parameter.setData("JACPrcSimulationMsg", iraiSokuwariBuhinMap);

			/*** 料金CC呼出(即割専用) ***/
			if (iraiSokuwariList != null && iraiSokuwariList.size() > 0)
			{
				try
				{
					JFUBPCommon.getSrcSimulation(sessionHandle, parameter, "JACPrcSimulationMsg");
				}
				catch (Throwable th)
				{
					JSYejbLog.println(JSYejbLog.ERROR, this.getClass(), PARTS_ERR_MSG, null, null, null);
					JSYejbLog.printStackTrace(JSYejbLog.ERROR, this.getClass(), th, null, null);
				}
			}

			outMap = (HashMap)parameter.getData("JACPrcSimulationMsg");

			if (outMap != null)
			{
				if (outMap.containsKey("JACPrcSimulationMsg2List"))
				{
					acSimuList.addAll((ArrayList)outMap.get("JACPrcSimulationMsg2List"));
				}
			}

			// 即割に使用したデータを削除
			parameter.removeData("JACPrcSimulationMsg");
		}

		parameter.setData("JACPrcSimulationMsg", iraiBuhinMap);

		/*** 料金CC呼出(即割以外) ***/
		if (iraiList != null && iraiList.size() > 0)
		{
			try
			{
				JFUBPCommon.getSrcSimulation(sessionHandle, parameter, "JACPrcSimulationMsg");
			}
			catch (Throwable th)
			{
				JSYejbLog.println(JSYejbLog.ERROR, this.getClass(), PARTS_ERR_MSG, null, null, null);
				JSYejbLog.printStackTrace(JSYejbLog.ERROR, this.getClass(), th, null, null);
			}
		}

		outMap = (HashMap)parameter.getData("JACPrcSimulationMsg");

		if (outMap != null)
		{
			if (outMap.containsKey("JACPrcSimulationMsg2List"))
			{
				acSimuList.addAll((ArrayList)outMap.get("JACPrcSimulationMsg2List"));

				this.acPrsimlRsltList = acSimuList;

				// 2012/12/28 初期費用対応
				for (int m = 0; m < iraiList.size(); m++)
				{
					keiyakuIraiSvcMap = (HashMap)iraiList.get(m);

					if (!"99999999".equals(keiyakuIraiSvcMap.get("key_wrib_svc_cd")))
					{
						continue;
					}

					// KKのアウトリストに辻褄を合わせる
					HashMap shkhKKMap = this.createShkhKKMap(keiyakuIraiSvcMap, this.getKsnType(inMap));

					if (shkhKKMap != null)
					{
						this.kkWribSvcList.add(shkhKKMap);
					}
				}
			}
		}

		// インターネットサギウォールセット割
		HashMap iswWribInfo = getIswWribInfo(inMap);

		if(iswWribInfo != null && iswWribInfo.size() > 0)
		{
			if(iswWribInfo.get("result_list") != null && ((ArrayList)iswWribInfo.get("result_list")).size() > 0)
			{
				acSimuList.addAll((ArrayList)iswWribInfo.get("result_list"));
				this.acPrsimlRsltList = acSimuList;
			}

			ArrayList iraiListOter = (ArrayList)iswWribInfo.get("irai_list");

			for (int m = 0; m < iraiListOter.size(); m++)
			{
				keiyakuIraiSvcMap = (HashMap)iraiListOter.get(m);

				if (!JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA.equals(keiyakuIraiSvcMap.get("key_wrib_svc_cd")))
				{
					continue;
				}

				// KKのアウトリストに辻褄を合わせる
				HashMap otherWribMap = this.createOtherWrib(keiyakuIraiSvcMap, this.getKsnType(inMap), WRIB_SBT_CD_MONTHLY);

				if (otherWribMap != null)
				{
					this.kkWribSvcList.add(otherWribMap);
				}
			}
		}
	}

	/**
	 * ネットのタイプを返却します。
	 *
	 * <br>
	 * @param inMap インマップ
	 * @return ネットタイプ
	 */
	@SuppressWarnings("unchecked")
	private String getKsnType(HashMap inMap)
	{

		String mansionId = this.getMansionId(inMap);

		if (mansionId == null || mansionId.length() < 1)
		{
			return KSN_TYPE_HT_MZ;
		}
		else
		{
			return KSN_TYPE_MT;
		}

	}

	/**
	 * AC部品に設定するマップを作成する。
	 * <br>
	 * @param wribSvcMap 割引サービスマップ
	 * @param wribsvcTankaMap 割引サービス単価マップ
	 * @param keiyakuIraiSvcMap 契約依頼マップ
	 * @param i インデックス
	 * @return 結果
	 */
	@SuppressWarnings("unchecked")
	private HashMap createWrbkIraiMap1(HashMap wribSvcMap, HashMap wribsvcTankaMap, Map keiyakuIraiSvcMap, int i)
	{
		HashMap iraiMap = new HashMap();

		// 割引サービスコード
		String keyWribSvcCd = "";
		// 割引サービス単価番号
		String keyWribSvcTankaNo = "";
		if (i == 0)
		{
			keyWribSvcCd = (String)wribSvcMap.get("wrib_svc_cd");
			keyWribSvcTankaNo = (String)wribsvcTankaMap.get("wrib_svc_tanka_no");
		}
		else
		{
			keyWribSvcCd = "";
			keyWribSvcTankaNo = "";
		}

		// 割引サービスコード
		iraiMap.put("key_wrib_svc_cd", keyWribSvcCd);
		// 割引サービス単価番号
		iraiMap.put("key_wrib_svc_tanka_no", keyWribSvcTankaNo);

		// サービスコード
		iraiMap.put("key_svc_cd", (String)wribsvcTankaMap.get("svc_cd"));
		// 料金項目コード
		iraiMap.put("key_prc_kmk_cd", (String)wribsvcTankaMap.get("prc_kmk_cd"));
		// 料金グループコード
		iraiMap.put("key_prc_grp_cd", (String)wribsvcTankaMap.get("prc_grp_cd"));
		// 料金コースコード
		iraiMap.put("key_pcrs_cd", (String)keiyakuIraiSvcMap.get("pcrs_cd"));
		// 料金プランコード
		iraiMap.put("key_prc_plan_cd", (String)keiyakuIraiSvcMap.get("pplan_cd"));

		// マンションID
		iraiMap.put("key_mansion_id", "");
		// 提供方式契約番号
		iraiMap.put("key_tk_hoshiki_kei_no", "");
		// 料金契約識別コード
		iraiMap.put("key_pay_kei_skbt_cd", "2");

		return iraiMap;
	}

	/**
	 * AC部品に設定するマップを作成する。
	 * <br>
	 * @param wribSvcMap 割引サービスマップ
	 * @param wribsvcTankaMap 割引サービス単価マップ
	 * @param keiyakuIraiSvcMap 契約依頼マップ
	 * @return 結果
	 */
	@SuppressWarnings("unchecked")
	private HashMap createWrbkIraiMap2(HashMap wribSvcMap, HashMap wribsvcTankaMap, Map keiyakuIraiSvcMap)
	{

		String space12 = "";

		HashMap iraiMap2 = new HashMap();

		// サービスコード
		iraiMap2.put("key_svc_cd", (String)wribsvcTankaMap.get("svc_cd"));
		// 割引サービスコード
		iraiMap2.put("key_wrib_svc_cd", (String)wribSvcMap.get("wrib_svc_cd"));
		// 料金グループコード
		iraiMap2.put("key_prc_grp_cd", (String)wribsvcTankaMap.get("prc_grp_cd"));
		// 料金コースコード
		iraiMap2.put("key_pcrs_cd", (String)keiyakuIraiSvcMap.get("pcrs_cd"));

		String keyPrcKmkCd = null;
		String prcPlanCd = null;
		String wribSvcTankaNo = null;
		if (JFUStrConst.KK0841_WRIB_SVC_CD_SOKUWARI.equals((String)wribSvcMap.get("wrib_svc_cd")))
		{
			keyPrcKmkCd = "S1200200101";
			prcPlanCd = "      ";
			wribSvcTankaNo = space12;
		}
		else
		{
			keyPrcKmkCd = (String)wribsvcTankaMap.get("prc_kmk_cd");
			prcPlanCd = (String)keiyakuIraiSvcMap.get("pplan_cd");

			// 割引サービス単価番号
			wribSvcTankaNo = (String)wribsvcTankaMap.get("wrib_svc_tanka_no");
		}

		// 割引サービス単価番号
		iraiMap2.put("key_wrib_svc_tanka_no", wribSvcTankaNo);

		iraiMap2.put("key_prc_kmk_cd", keyPrcKmkCd);
		iraiMap2.put("key_prc_plan_cd", prcPlanCd);

		iraiMap2.put("key_mansion_id", "");
		iraiMap2.put("key_tk_hoshiki_kei_no", "");
		iraiMap2.put("key_pay_kei_skbt_cd", "2");

		return iraiMap2;
	}

	/**
	 * 初期費用判定処理です。
	 *
	 * <br>
	 * @param keiyakuIraiSvcMap 契約依頼サービスマップ
	 * @param ksnType タイプ
	 * @return 結果
	 */
	@SuppressWarnings("unchecked")
	private HashMap createShkhKKMap(Map keiyakuIraiSvcMap, String ksnType)
	{

		HashMap kkMap = new HashMap();

		// 割引サービスコード
		kkMap.put("wrib_svc_cd", "99999999");

		boolean wribSvcNmGetflg = false;
		Iterator ite = this.acPrsimlRsltList.iterator();
		while (ite.hasNext())
		{

			HashMap acMap = (HashMap)ite.next();

			if (acMap.containsKey("prc_kmk_cd") && acMap.containsKey("pcrs_cd"))
			{
				if ((acMap.get("prc_kmk_cd").equals(keiyakuIraiSvcMap.get("key_prc_kmk_cd")))
						&& (acMap.get("pcrs_cd").equals(keiyakuIraiSvcMap.get("key_pcrs_cd"))))
				{
					// 割引サービス名
					kkMap.put("wrib_svc_nm", (String)acMap.get("prc_kmk_nm"));
					wribSvcNmGetflg = true;

					break;
				}
			}
		}

		// 割引サービス名が取得出来なかった場合、nullを返却
		if (!wribSvcNmGetflg)
		{
			return null;
		}

		// 割引サービス単価リスト ----------------------------
		ArrayList wribSvcTankaList = new ArrayList();

		HashMap wribsvcTankaMap = new HashMap();

		// 1:一時費用
		wribsvcTankaMap.put("wrib_sbt_cd", WRIB_SBT_CD_TMP);

		wribsvcTankaMap.put("svc_cd", (String)keiyakuIraiSvcMap.get("svc_cd"));
		wribsvcTankaMap.put("wrib_svc_tanka_no", "");
		wribsvcTankaMap.put("prc_grp_cd", (String)keiyakuIraiSvcMap.get("key_prc_grp_cd"));
		wribsvcTankaMap.put("pcrs_cd", (String)keiyakuIraiSvcMap.get("key_pcrs_cd"));
		wribsvcTankaMap.put("pplan_cd", (String)keiyakuIraiSvcMap.get("key_pplan_cd"));
		wribsvcTankaMap.put("prc_kmk_cd", this.getPrcKmkCd((String)keiyakuIraiSvcMap.get("key_prc_grp_cd"),
														(String)keiyakuIraiSvcMap.get("key_pcrs_cd"), ksnType));

		wribSvcTankaList.add(wribsvcTankaMap);

		kkMap.put("wrib_svc_tanka_list", wribSvcTankaList);

		return kkMap;
	}

	/**
	 * 初期費用依頼マップを作成します。
	 *
	 * <br>
	 * @param keiyakuIraiSvcMap 契約依頼サービスマップ
	 * @param ksnType タイプ
	 * @return 結果
	 */
	@SuppressWarnings("unchecked")
	private HashMap createShkhIraiMap(Map keiyakuIraiSvcMap, String ksnType)
	{

		HashMap iraiMap2 = new HashMap();

		// 割引サービスコード
		iraiMap2.put("key_wrib_svc_cd", "99999999");
		// 料金グループコード
		iraiMap2.put("key_prc_grp_cd", (String)keiyakuIraiSvcMap.get("prc_grp_cd"));
		// 料金コースコード
		iraiMap2.put("key_pcrs_cd", (String)keiyakuIraiSvcMap.get("pcrs_cd"));

		// 割引サービス単価番号
		//iraiMap2.put("key_wrib_svc_tanka_no", wribSvcTankaNo);

		String prcKmkCd = getPrcKmkCd((String)keiyakuIraiSvcMap.get("prc_grp_cd"), (String)keiyakuIraiSvcMap.get("pcrs_cd"), ksnType);

		if(JFUBPCommon.isNull(prcKmkCd))
		{
			return null;
		}

		iraiMap2.put("key_prc_kmk_cd", getPrcKmkCd((String)keiyakuIraiSvcMap.get("prc_grp_cd"), (String)keiyakuIraiSvcMap.get("pcrs_cd"), ksnType));

		iraiMap2.put("key_prc_plan_cd", "      ");

		return iraiMap2;
	}

	/**
	 * 料金項目コードを取得します。
	 *
	 * <br>
	 * @param prcGrpCd 料金グループコード
	 * @param pcrsCd 料金コースコード
	 * @param ksnType タイプ
	 * @return 料金項目コード
	 */
	private String getPrcKmkCd(String prcGrpCd, String pcrsCd, String ksnType)
	{
		if (KSN_TYPE_HT_MZ.equals(ksnType))
		{
			// ホームメゾン
			if(!this.kkeiNetKeiFlg)
			{
				// 既契約にネットが無い場合
				if (JFUStrConst.CD00133_02.equals(prcGrpCd))
				{
					// ●ネットホーム
					if ("A03".equals(pcrsCd) || "A04".equals(pcrsCd) || "A05".equals(pcrsCd)
							|| "A07".equals(pcrsCd) || "A83".equals(pcrsCd) || "A89".equals(pcrsCd)
							|| "A91".equals(pcrsCd) || "A93".equals(pcrsCd) || "A95".equals(pcrsCd))
					{
						return RKC_S1208001601;
					}
				}

				if (JFUStrConst.CD00133_03.equals(prcGrpCd))
				{
					// ●ネットメゾン
					if ("A08".equals(pcrsCd) || "A09".equals(pcrsCd) || "A10".equals(pcrsCd)
							|| "A11".equals(pcrsCd) || "A84".equals(pcrsCd) || "A90".equals(pcrsCd)
							|| "A92".equals(pcrsCd) || "A94".equals(pcrsCd) || "A96".equals(pcrsCd))
					{
						return RKC_S1208001601;
					}
				}
			}

			if (!this.kkeiTelKeiFlg)
			{
				// 既契約に電話が無い場合
				if (JFUStrConst.CD00133_10.equals(prcGrpCd))
				{
					// ●電話
					if ("A31".equals(pcrsCd) || "A32".equals(pcrsCd))
					{
						return RKC_S1248001601;
					}
				}
			}

			if (!this.kkeiTvKeiFlg)
			{
				// 既契約にTVが無い場合
				if (!this.netKeiFlg && !this.telKeiFlg)
				{
					// TV単独の契約の場合
					if (JFUStrConst.CD00133_11.equals(prcGrpCd))
					{
// ANK-4592-00-00 MOD START
						// ●eo光テレビ(K-CAT)
						if ("A36".equals(pcrsCd) || "A37".equals(pcrsCd) || "A39".equals(pcrsCd) || "A40".equals(pcrsCd) || "A41".equals(pcrsCd)
								|| JFUStrConst.CD00134_A85.equals(pcrsCd) || JFUStrConst.CD00134_A86.equals(pcrsCd)
								|| JFUStrConst.CD00134_A87.equals(pcrsCd) || JFUStrConst.CD00134_AC0.equals(pcrsCd) || JFUStrConst.CD00134_AC1.equals(pcrsCd))
// ANK-4592-00-00 MOD END
						{
							return RKC_S42080016S2;
						}
					}

					if (JFUStrConst.CD00133_12.equals(prcGrpCd))
					{
						// ●eo光テレビ(KCN)
						if ("A25".equals(pcrsCd))
						{
							return RKC_S42080016S2;
						}
					}

					if (JFUStrConst.CD00133_13.equals(prcGrpCd))
					{
						// ●eo光テレビ(再送信)
						if ("A23".equals(pcrsCd) || "A24".equals(pcrsCd) || "A64".equals(pcrsCd))
						{
							return RKC_S42080016S2;
						}
					}
				}
				else if (this.netKeiFlg || this.telKeiFlg)
				{
					// ネットまたは電話の契約がある場合
					if (JFUStrConst.CD00133_11.equals(prcGrpCd))
					{
// ANK-4592-00-00 MOD START
						// ●eo光テレビ(K-CAT)
						if ("A36".equals(pcrsCd) || "A37".equals(pcrsCd) || "A39".equals(pcrsCd) || "A40".equals(pcrsCd) || "A41".equals(pcrsCd)
								|| JFUStrConst.CD00134_A85.equals(pcrsCd) || JFUStrConst.CD00134_A86.equals(pcrsCd)
								|| JFUStrConst.CD00134_A87.equals(pcrsCd) || JFUStrConst.CD00134_AC0.equals(pcrsCd) || JFUStrConst.CD00134_AC1.equals(pcrsCd))
// ANK-4592-00-00 MOD END
						{
							return RKC_S4208001601;
						}
					}

					if (JFUStrConst.CD00133_12.equals(prcGrpCd))
					{
						// ●eo光テレビ(KCN)
						if ("A25".equals(pcrsCd))
						{
							return RKC_S4208001601;
						}
					}

					if (JFUStrConst.CD00133_13.equals(prcGrpCd))
					{
						// ●eo光テレビ(再送信)
						if ("A23".equals(pcrsCd) || "A24".equals(pcrsCd) || "A64".equals(pcrsCd))
						{
							return RKC_S4208001601;
						}
					}
				}
			}
		}
		else
		{
			// マンション
			if (!this.kkeiTvKeiFlg)
			{
				// 既契約にネットと電話が無い場合
				if (!this.netKeiFlg && !this.telKeiFlg)
				{
					// TV単独の契約の場合
					if (JFUStrConst.CD00133_11.equals(prcGrpCd))
					{
						// ●eo光テレビ(K-CAT)
						if ("A36".equals(pcrsCd) || "A39".equals(pcrsCd) || "A40".equals(pcrsCd) || "A41".equals(pcrsCd)
								|| JFUStrConst.CD00134_A85.equals(pcrsCd) || JFUStrConst.CD00134_A86.equals(pcrsCd)
								|| JFUStrConst.CD00134_A87.equals(pcrsCd))
						{
							return RKC_S42080016S1;
						}
					}

					if (JFUStrConst.CD00133_13.equals(prcGrpCd))
					{
						// ●eo光テレビ(再送信)
						if ("A24".equals(pcrsCd) || "A64".equals(pcrsCd))
						{
							return RKC_S42080016S1;
						}
					}
				}
				else if (this.netKeiFlg || this.telKeiFlg)
				{
					// ネットまたは電話の契約がある場合
					if (JFUStrConst.CD00133_11.equals(prcGrpCd))
					{
						// ●eo光テレビ(K-CAT)
						if ("A36".equals(pcrsCd) || "A39".equals(pcrsCd) || "A40".equals(pcrsCd) || "A41".equals(pcrsCd)
								|| JFUStrConst.CD00134_A85.equals(pcrsCd) || JFUStrConst.CD00134_A86.equals(pcrsCd)
								|| JFUStrConst.CD00134_A87.equals(pcrsCd))
						{
							return RKC_S42080016S1;
						}
					}

					if (JFUStrConst.CD00133_13.equals(prcGrpCd))
					{
						// ●eo光テレビ(再送信)
						if ("A24".equals(pcrsCd) || "A64".equals(pcrsCd))
						{
							return RKC_S42080016S1;
						}
					}
				}
			}
		}

		return null;
	}

	/**
	 * <p>
	 * 料金シミュレーション結果作成
	 * </p>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得I/F
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite makePrcSimuResultHomeMezon(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	throws Exception
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		// モデムプラン
		String vdslModemPlan = (String)inMap.get("vdsl_modem_plan");
		// 番号ポータビリティー番号数
		String bmpNoCnt = (String)inMap.get("bmp_no_cnt");
		// 申込回線サービス
		String mskmKsnSvc = (String)inMap.get("mskm_ksn_svc");
// ANK-3296-00-00 ADD START
		// 標準工事費お支払い方法
		String stdardKojihiPayway = (String)inMap.get("stdard_kojihi_payway");
// ANK-3296-00-00 ADD END
		// ＯＮＵ交換工事有無
		String onuKknKojiUm = (String)inMap.get("onu_kkn_koji_um");

		HashMap prcSvkeiMap = null;
		HashMap pplanIcrnMap = null;
		HashMap shkhJokenIcrnMap = null;
		HashMap tmpyPrcIcrnMap =  null;
		HashMap prcUwMap =  null;
		HashMap prsimlRsltMap =  null;

		String netMskmFlg = JFUStrConst.CD00002_0; // ネット申込フラグ（０：未申込、１：申込）
		String telMskmFlg = JFUStrConst.CD00002_0; // 電話申込フラグ
		String tvMskmFlg = JFUStrConst.CD00002_0; // テレビ申込フラグ
		String mblWifiMskmFlg = JFUStrConst.CD00002_0; // モバイルWi-Fi申込フラグ
		String mblEmMskmFlg = JFUStrConst.CD00002_0; // モバイルEM申込フラグ
		String mblUqMskmFlg = JFUStrConst.CD00002_0; // モバイルUQ申込フラグ

		String netKeiDiv = KEI_DIV_1; // ネット契約フラグ（０：既契約、１：新契約）
		String telKeiDiv = KEI_DIV_1; // 電話契約フラグ
		String tvKeiDiv = KEI_DIV_1; // テレビ契約フラグ
		String mblWifiKeiDiv = KEI_DIV_1; // モバイルWi-Fi契約フラグ
		String mblEmKeiDiv = KEI_DIV_1; // モバイルEM契約フラグ
		String mblUqKeiDiv = KEI_DIV_1; // モバイルUQ契約フラグ

		String netMskmFlgIcrn = JFUStrConst.CD00002_0; // ネット申込フラグ（初期費用条件一覧リスト）
		String telMskmFlgIcrn = JFUStrConst.CD00002_0; // 電話申込フラグ（初期費用条件一覧リスト）
		String tvMskmFlgIcrn = JFUStrConst.CD00002_0; // テレビ申込フラグ（初期費用条件一覧リスト）
		String mblWifiMskmFlgIcrn = JFUStrConst.CD00002_0; // モバイルWi-Fi申込フラグ（初期費用条件一覧リスト）
		String mblEmMskmFlgIcrn = JFUStrConst.CD00002_0; // モバイルEM申込フラグ（初期費用条件一覧リスト）
		String mblUqMskmFlgIcrn = JFUStrConst.CD00002_0; // モバイルUQ申込フラグ（初期費用条件一覧リスト）

		String prcGrpCd = ""; // 料金グループコード
		String keiDiv = ""; // 契約区分
		String pcrsCd = ""; // 料金コースコード
		String pplanCd = ""; // 料金プランコード
		String pplanAmnt = ""; // 料金プラン金額
		String prcGrpCdKei = ""; // 料金グループコード(料金サービス契約リスト)
		String pcrsCdKei = ""; // 料金コースコード(料金サービス契約リスト)
		String pplanCdKei = ""; // 料金プランコード(料金サービス契約リスト)
		String pcrsCdPlan = ""; // 料金コースコード(料金プラン一覧リスト)
		String pplanCdPlan = ""; // 料金プランコード(料金プラン一覧リスト)
		String prsimlPrcDspNmPlan = ""; // 料金シミュレーション表示名(料金プラン一覧リスト)
		String sokuwariUm = ""; // 即割有無
		String chowariUm = ""; // 長割有無
		String netJmte = ""; // ネット事務手数料
		String netJmteNm = ""; // ネット事務手数料名
		String netStdardKojihi = ""; // ネット標準工事費
		String netStdardKojihiNm = ""; // ネット標準工事費名
		String telJmte = ""; // 電話事務手数料
		String telJmteNm = ""; // 電話事務手数料名
		String telStdardKojihi = ""; // 電話標準工事費
		String telStdardKojihiNm = ""; // 電話標準工事費名
		String tvJmte = ""; // テレビ事務手数料
		String tvJmteNm = ""; // テレビ事務手数料名
		String tvStdardKojihi = ""; // テレビ標準工事費
		String tvStdardKojihiNm = ""; // テレビ標準工事費名
		String mblWifiJmte = ""; // モバイルWiFi事務手数料
		String mblWifiJmteNm = ""; // モバイルWiFi事務手数料名
		String mblEmJmte = ""; // モバイルEM事務手数料
		String mblEmJmteNm = ""; // モバイルEM事務手数料名
		String mblUqJmte = ""; // モバイルUQ事務手数料
		String mblUqJmteNm = ""; // モバイルUQ事務手数料名
		String tmpPayPrcNo = ""; // 一時支払料金番号
		String tmpPayPrcAmnt = ""; // 一時支払料金金額
		String prsimlPrcDspNmTmp = ""; // 料金シミュレーション料金表示名(一時支払料金一覧リスト)
		String prsimlPrcDspLvTmp = ""; // 料金シミュレーション料金表示レベル(一時支払料金一覧リスト)
		String spaceAdd = ""; // 全角スペース追加用

		int getsuEohSikyAmntGk = 0; // 月額料金eo光請求金額合計
// ANK-3133-00-00 ADD START
		int getsuEohSikyAmntNet = 0; // 月額料金eo光ネット請求金額
// ANK-3133-00-00 ADD END
		int initEohSikyAmntGk = 0; // 初期費用eo光請求金額合計

		int getsuMblSikyAmntGk = 0; // 月額料金モバイル請求金額合計
		int initMblSikyAmntGk = 0; // 初期費用モバイル請求金額合計

		int pplanAmnti = 0; // 料金プラン金額
		int eohWribAmn = 0; // eo光割引料金
		int mblWribAmn = 0; // eoモバイル割引料金
		int eohKeiWribAmn = 0; // eo光料金（既契約分）
		int mblKeiWribAmn = 0; // eoモバイル割引料金（既契約分）

		int mblWribAmnKei = 0; // eoモバイル割引料金合計

		Boolean keiEnabled = true; // 既契約フラグ（TRUE：既契約）
		int keiWribCnt = 0; // 既契約割引数

		Boolean stbEnabled = false; // STB出力フラグ（TRUE：出力）
		Boolean spaceEnabled = true; // 空白フラグ（TRUE：ｽﾍﾟｰｽ出力）

		int output = 0; // 出力件数

		boolean setSokuwariFlg = true; // 即割設定フラグ
		boolean setChowariFlg = true; // 長割設定フラグ

		boolean setIswSetWrib = false; // インターネットサギウォールセット割設定フラグ

		this.prsimlRsltList = new ArrayList<Map<String, String>>();

		// 申込サービス＆既契約サービスをまとめる
		List<HashMap> prcSvcKeiListAll = new ArrayList();
		prcSvcKeiListAll.addAll(this.prcSvkeiList);

		// 既契約情報を設定
		if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.CD00731_1.equals((String)inMap.get("payway_continue"))
				&& this.sameSeikySvcList != null && this.sameSeikySvcList.size() > 0)
		{
			// 同回線＆同請求先に追加の場合、請求先に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.sameSeikySvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && this.mbKaisenSvcList != null && this.mbKaisenSvcList.size() > 0)
		{
			// 同回線＆請求先未決定＆モバイル単独の場合、全回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.mbKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& this.sameKaisenSvcList != null && this.sameKaisenSvcList.size() > 0)
		{
			// 同回線に追加で請求先未決定の場合、回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.sameKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && "2".equals((String)inMap.get("payway_continue"))
				&& JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && this.mbKaisenSvcList != null && this.mbKaisenSvcList.size() > 0)
		{
			// 同回線＆支払引き継がない＆モバイル単独の場合、全回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.mbKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && "2".equals((String)inMap.get("payway_continue"))
				&& this.sameKaisenSvcList != null && this.sameKaisenSvcList.size() > 0)
		{
			// 同回線＆支払引き継がない場合、回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.sameKaisenSvcList);
		}

		// eo光スティック申込台数
		String eoStickMskmCnt = (String)inMap.get("eo_stick_mskm_cnt");
		if(JFUBPCommon.isNull(eoStickMskmCnt))
		{
			// 空の場合、0台とする
			eoStickMskmCnt = JFUStrConst.S_ZERO;
		}

		// ●申込みサービスの抽出
		// 料金サービス契約リストの件数分処理を実行する
		for (int i = 0; i < prcSvcKeiListAll.size(); i++)
		{
			prcSvkeiMap = (HashMap)prcSvcKeiListAll.get(i);

			keiDiv = (String)prcSvkeiMap.get("kei_div");
			prcGrpCd = (String)prcSvkeiMap.get("prc_grp_cd");

			// 契約区分が"1"：新規契約の場合
			if (KEI_DIV_1.equals(keiDiv))
			{
				if (JFUStrConst.CD00133_02.equals(prcGrpCd)
						|| JFUStrConst.CD00133_03.equals(prcGrpCd)
						|| JFUStrConst.CD00133_04.equals(prcGrpCd))
				{
					// ネット申込有り
					netMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
				{
					// 電話申込有り
					telMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_11.equals(prcGrpCd)
						|| JFUStrConst.CD00133_12.equals(prcGrpCd))
				{
					// TV申込有り
					tvMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
				{
					// Wi-Fi申込有り
					mblWifiMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
				{
					// eoモバイル申込有り
					mblEmMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
				{
					// UQWiMAX申込有り
					mblUqMskmFlg = JFUStrConst.CD00002_1;
				}
			}
			// 契約区分が"1"以外：追加契約
			else
			{
				if (JFUStrConst.CD00133_02.equals(prcGrpCd)
						|| JFUStrConst.CD00133_03.equals(prcGrpCd)
						|| JFUStrConst.CD00133_04.equals(prcGrpCd))
				{
					// ネット追加申込
					netKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
				{
					// 電話追加申込
					telKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_11.equals(prcGrpCd)
						|| JFUStrConst.CD00133_12.equals(prcGrpCd))
				{
					// TV追加申込
					tvKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
				{
					// Wi-FI追加申込
					mblWifiKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
				{
					// eoモバイル追加申込
					mblEmKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
				{
					// UQWiMAX追加申込
					mblUqKeiDiv = keiDiv;
				}
			}
		}


		/*** ★月額料金の出力処理★ ***/
		this.prcUwlist = new ArrayList();

		// 料金プラン一覧リストの件数分処理を実行する
		for (int i = 0; i < this.pplanIcrnList.size(); i++)
		{
			pplanIcrnMap = (HashMap)pplanIcrnList.get(i);

			pcrsCd = (String)pplanIcrnMap.get("pcrs_cd");
			pplanCd = (String)pplanIcrnMap.get("pplan_cd");
			pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
			prsimlPrcDspNmPlan = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
			prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

			// 買取機器関連の場合
			if ((JFUStrConst.CD00134_CA3.equals(pcrsCd) && JFUStrConst.CD00565_PCA301.equals(pplanCd)))
			{
				// 対象外のデータのため無視する。
				continue;
			}

			// モバイル機器関連の場合
			if ((JFUStrConst.CD00134_C27.equals(pcrsCd) && JFUStrConst.CD00565_PC2701.equals(pplanCd))
					|| (JFUStrConst.CD00134_C28.equals(pcrsCd) && JFUStrConst.CD00565_PC2801.equals(pplanCd))
					|| (JFUStrConst.CD00134_C29.equals(pcrsCd) && JFUStrConst.CD00565_PC2901.equals(pplanCd))
					|| (JFUStrConst.CD00134_C30.equals(pcrsCd) && JFUStrConst.CD00565_PC3001.equals(pplanCd))
					|| (JFUStrConst.CD00134_C31.equals(pcrsCd) && JFUStrConst.CD00565_PC3101.equals(pplanCd))
					|| (JFUStrConst.CD00134_C37.equals(pcrsCd) && JFUStrConst.CD00565_PC3701.equals(pplanCd))
					|| (JFUStrConst.CD00134_C38.equals(pcrsCd) && JFUStrConst.CD00565_PC3801.equals(pplanCd)))
			{
				// 対象外のデータのため無視する。
				continue;
			}

			// TAI-2012-0000136 コード体系変更対応 メゾンの追加パターンを追記
			// 契約新規対応：コンパクト追加
			// ＳＴＢ追加費関連の場合
			else if ((JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3602.equals(pplanCd))
					|| (JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3606.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4002.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4004.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4006.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4102.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4104.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4106.equals(pplanCd))
					|| (JFUStrConst.CD00134_C12.equals(pcrsCd) && JFUStrConst.CD00565_PC1201.equals(pplanCd))
					|| (JFUStrConst.CD00134_C13.equals(pcrsCd) && JFUStrConst.CD00565_PC1301.equals(pplanCd))
					|| (JFUStrConst.CD00134_C14.equals(pcrsCd) && JFUStrConst.CD00565_PC1401.equals(pplanCd))
					|| (JFUStrConst.CD00134_C15.equals(pcrsCd) && JFUStrConst.CD00565_PC1501.equals(pplanCd))
					|| (JFUStrConst.CD00134_C92.equals(pcrsCd) && JFUStrConst.CD00565_PC9201.equals(pplanCd))
					|| (JFUStrConst.CD00134_C93.equals(pcrsCd) && JFUStrConst.CD00565_PC9301.equals(pplanCd))
					|| (JFUStrConst.CD00134_C95.equals(pcrsCd) && JFUStrConst.CD00565_PC9501.equals(pplanCd))
					|| (JFUStrConst.CD00134_C96.equals(pcrsCd) && JFUStrConst.CD00565_PC9601.equals(pplanCd))
					|| (JFUStrConst.CD00134_C97.equals(pcrsCd) && JFUStrConst.CD00565_PC9701.equals(pplanCd))
					|| (JFUStrConst.CD00134_C98.equals(pcrsCd) && JFUStrConst.CD00565_PC9801.equals(pplanCd))
					|| (JFUStrConst.CD00134_C99.equals(pcrsCd) && JFUStrConst.CD00565_PC9901.equals(pplanCd))
					|| (JFUStrConst.CD00134_CA4.equals(pcrsCd) && JFUStrConst.CD00565_PCA401.equals(pplanCd))
					|| (JFUStrConst.CD00134_CA5.equals(pcrsCd) && JFUStrConst.CD00565_PCA501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8502.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8506.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8602.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8604.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8606.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8702.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8704.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8706.equals(pplanCd)))
			{
				// 既に出力済みのため無視する。
				continue;
			}

			// ホームメゾンの場合、VDSLモデム全プランは対象外
			else if ((JFUStrConst.CD00134_C06.equals(pcrsCd) && JFUStrConst.CD00565_PC0601.equals(pplanCd))
					|| (JFUStrConst.CD00134_C43.equals(pcrsCd) && JFUStrConst.CD00565_PC4301.equals(pplanCd)))
			{
				// 飛ばす
				continue;
			}

			// スマートリンクプレミアムの場合は別エリアなので対象外
			// 【案件番号：ANK-1580-00-00】eoスマートリンク改修対応@（複数契約対応・機種追加）
			else if(JFUStrConst.CD00134_B80.equals(pcrsCd) && JFUStrConst.CD00565_PB8001.equals(pplanCd))
			{
				// 飛ばす
				continue;
			}

			if (isNullBlunk(pplanAmnt))
			{
				// プラン金額が空の場合、"0"を設定
				pplanAmnt = "0";
			}

			pplanAmnti = Integer.parseInt(pplanAmnt);

			// 料金シミュレーション表示レベルの数だけ全角スペースを追加
			spaceAdd = "";
			if (isNullBlunk(prsimlPrcDspLvTmp))
			{
				prsimlPrcDspLvTmp = "0";
			}
			for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
			{
				spaceAdd = spaceAdd + ZENSPACE;
			}

			// TAI-2012-0000136 コード体系変更対応 メゾンの追加パターンを追記
			// 契約新規対応：コンパクト追加
			// STB追加費の出力判定
			if (((JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3605.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4003.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4005.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4103.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4105.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8505.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8603.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8605.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8701.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8703.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8705.equals(pplanCd)))
					&& (!stbEnabled))
			{
				// 料金サービス契約リストの件数分処理を実行する
				for (int n = 0; n < prcSvkeiList.size(); n++)
				{
					prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

					pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
					pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");

					// 料金プランコードと料金グループコードが一致した場合
					if (pcrsCd.equals(pcrsCdKei) && pplanCd.equals(pplanCdKei))
					{
						stbEnabled = true;
					}

					// TAI-2012-0000136 コード体系変更対応 メゾンの追加パターンを追記
					// 契約新規対応：コンパクト追加
					// ＳＴＢ関連費出力の場合
					if (stbEnabled
							&& ((JFUStrConst.CD00134_A36.equals(pcrsCdKei) && JFUStrConst.CD00565_PA3601.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A36.equals(pcrsCdKei) && JFUStrConst.CD00565_PA3602.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A36.equals(pcrsCdKei) && JFUStrConst.CD00565_PA3605.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A36.equals(pcrsCdKei) && JFUStrConst.CD00565_PA3606.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4001.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4002.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4003.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4004.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4005.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4006.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4101.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4102.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4103.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4104.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4105.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4106.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C12.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1201.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C13.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1301.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C14.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1401.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C15.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1501.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C92.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9201.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C93.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9301.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C95.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9501.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C96.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9601.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C97.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9701.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C98.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9801.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C99.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9901.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_CA4.equals(pcrsCdKei) && JFUStrConst.CD00565_PCA401.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_CA5.equals(pcrsCdKei) && JFUStrConst.CD00565_PCA501.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A85.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8501.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A85.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8502.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A85.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8505.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A85.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8506.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8601.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8602.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8603.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8604.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8605.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8606.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8701.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8702.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8703.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8704.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8705.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8706.equals(pplanCdKei))))
					{
						// 料金プラン一覧リストの件数分処理を実行する
						for (int num = 0; num < pplanIcrnList.size(); num++)
						{
							pplanIcrnMap = (HashMap)pplanIcrnList.get(num);

							pcrsCdPlan = (String)pplanIcrnMap.get("pcrs_cd");
							pplanCdPlan = (String)pplanIcrnMap.get("pplan_cd");
							pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
							prsimlPrcDspNmTmp = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
							prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

							// 料金シミュレーション表示レベルの数だけ全角スペースを追加
							spaceAdd = "";
							if (isNullBlunk(prsimlPrcDspLvTmp))
							{
								prsimlPrcDspLvTmp = "0";
							}

							for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
							{
								spaceAdd = spaceAdd + ZENSPACE;
							}

							// 料金サービス契約リストと料金プラン一覧の料金コースコードと料金プランコードが一致した場合
							if (pcrsCdKei.equals(pcrsCdPlan) && pplanCdKei.equals(pplanCdPlan))
							{
								prcUwMap = new HashMap<String, String>();
								prcUwMap.put("siky_amnt", pplanAmnt);
								prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmTmp);

								this.prcUwlist.add(prcUwMap);

								// 請求金額を加算
								if (isNullBlunk(pplanAmnt))
								{
									pplanAmnt = "0";
								}

								// eo光請求金額合計を加算
								getsuEohSikyAmntGk = getsuEohSikyAmntGk + Integer.parseInt(pplanAmnt);
								break;
							}
						}
					}
				}
			}
			else
			{
				// 料金サービス契約リストの件数分処理を実行する
				for (int n = 0; n < prcSvkeiList.size(); n++)
				{
					prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

					prcGrpCdKei = (String)prcSvkeiMap.get("prc_grp_cd");
					sokuwariUm = (String)prcSvkeiMap.get("soku_wari_um");
					chowariUm = (String)prcSvkeiMap.get("chowari_mskm_um");

					// 基本料金取得用の読み替え処理
					HashMap changeInfo = changeListItemByBaseAmt(handle, prcSvkeiMap);
					pcrsCdKei = (String)changeInfo.get("pcrs_cd");
					pplanCdKei = (String)changeInfo.get("prc_plan_cd");

					// 料金プランコードと料金グループコードが一致した場合
					if (pcrsCd.equals(pcrsCdKei) && pplanCd.equals(pplanCdKei))
					{
						// 請求金額合計を加算
						if (JFUStrConst.CD00133_07.equals(prcGrpCdKei)
								|| JFUStrConst.CD00133_08.equals(prcGrpCdKei)
								|| JFUStrConst.CD00133_09.equals(prcGrpCdKei))
						{
							// eoモバイル請求金額合計を加算
							getsuMblSikyAmntGk = getsuMblSikyAmntGk + pplanAmnti;

							// 空白行出力判定
							if (spaceEnabled)
							{
								// 最初のモバイルデータの切り替わりの場合、空白行を間に挟む
								if (this.prcUwlist.size() > 0)
								{
									prcUwMap = new HashMap<String, String>();
									prcUwMap.put("siky_amnt", "");
									prcUwMap.put("prc_uw_nm", "");
									this.prcUwlist.add(prcUwMap);
								}
								spaceEnabled = false;
							}
						}
						else if(JFUStrConst.CD00134_C26.equals(pcrsCd) && JFUStrConst.CD00565_PC2601.equals(pplanCd))
						{
							// ●PLCの場合
							// 台数設定
							String plcNum = (String)prcSvkeiMap.get("plc_num");
							if(isNull(plcNum))
							{
								plcNum = "2";
							}

							// PLCプラン料金×台数
							pplanAmnti = pplanAmnti * Integer.parseInt(plcNum);

							// eo光請求金額合計を加算
							getsuEohSikyAmntGk = getsuEohSikyAmntGk + pplanAmnti;
						}
						else
						{
							// eo光請求金額合計を加算
							getsuEohSikyAmntGk = getsuEohSikyAmntGk + pplanAmnti;
						}

						// 明細出力
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", String.valueOf(pplanAmnti));
						prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmPlan);
						this.prcUwlist.add(prcUwMap);

						// 条件に該当した場合は即割料金を判定する。
						if ((JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0311.equals(pplanCd))
								|| (JFUStrConst.CD00134_A07.equals(pcrsCd) && JFUStrConst.CD00565_PA0701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A05.equals(pcrsCd) && JFUStrConst.CD00565_PA0501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A91.equals(pcrsCd) && JFUStrConst.CD00565_PA9101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0811.equals(pplanCd))
								|| (JFUStrConst.CD00134_A11.equals(pcrsCd) && JFUStrConst.CD00565_PA1101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A10.equals(pcrsCd) && JFUStrConst.CD00565_PA1001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A92.equals(pcrsCd) && JFUStrConst.CD00565_PA9201.equals(pplanCd))
								|| (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A54.equals(pcrsCd) && JFUStrConst.CD00565_PA5401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A55.equals(pcrsCd) && JFUStrConst.CD00565_PA5501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A57.equals(pcrsCd) && JFUStrConst.CD00565_PA5701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A74.equals(pcrsCd) && JFUStrConst.CD00565_PA7401.equals(pplanCd))
// ANK-4427-00-00 ADD START
								|| (JFUStrConst.CD00134_AA0.equals(pcrsCd) && JFUStrConst.CD00565_PAA001.equals(pplanCd))
								|| (JFUStrConst.CD00134_AA1.equals(pcrsCd) && JFUStrConst.CD00565_PAA101.equals(pplanCd))
								|| (JFUStrConst.CD00134_AB0.equals(pcrsCd) && JFUStrConst.CD00565_PAB001.equals(pplanCd))
								|| (JFUStrConst.CD00134_AB1.equals(pcrsCd) && JFUStrConst.CD00565_PAB101.equals(pplanCd)))
// ANK-4427-00-00 ADD END
						{
							if (setSokuwariFlg == true && "1".equals(sokuwariUm))
							{
								// 即割
								addSokuwariAmnt(inMap);
								getsuEohSikyAmntGk = getsuEohSikyAmntGk + this.seikyAmntGk;
								setSokuwariFlg = false;
							}

							if (setChowariFlg == true && "1".equals(chowariUm))
							{
								// 長割（新長割）

								addChowariAmnt(inMap, pcrsCd, pplanCd);
								setChowariFlg = false;
							}
						}

// ANK-3133-00-00 ADD START
						// 条件に該当した場合はネットの月額料金と判定する。
						if ((JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0311.equals(pplanCd))
								|| (JFUStrConst.CD00134_A04.equals(pcrsCd) && JFUStrConst.CD00565_PA0401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A05.equals(pcrsCd) && JFUStrConst.CD00565_PA0501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A07.equals(pcrsCd) && JFUStrConst.CD00565_PA0701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0811.equals(pplanCd))
								|| (JFUStrConst.CD00134_A09.equals(pcrsCd) && JFUStrConst.CD00565_PA0901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A10.equals(pcrsCd) && JFUStrConst.CD00565_PA1001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A11.equals(pcrsCd) && JFUStrConst.CD00565_PA1101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A47.equals(pcrsCd) && JFUStrConst.CD00565_PA4702.equals(pplanCd))
								|| (JFUStrConst.CD00134_A48.equals(pcrsCd) && JFUStrConst.CD00565_PA4801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A49.equals(pcrsCd) && JFUStrConst.CD00565_PA4901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A50.equals(pcrsCd) && JFUStrConst.CD00565_PA5001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A51.equals(pcrsCd) && JFUStrConst.CD00565_PA5101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A52.equals(pcrsCd) && JFUStrConst.CD00565_PA5201.equals(pplanCd))
								|| (JFUStrConst.CD00134_A53.equals(pcrsCd) && JFUStrConst.CD00565_PA5301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A54.equals(pcrsCd) && JFUStrConst.CD00565_PA5401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A55.equals(pcrsCd) && JFUStrConst.CD00565_PA5501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5611.equals(pplanCd))
								|| (JFUStrConst.CD00134_A57.equals(pcrsCd) && JFUStrConst.CD00565_PA5701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A67.equals(pcrsCd) && JFUStrConst.CD00565_PA6701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A68.equals(pcrsCd) && JFUStrConst.CD00565_PA6801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A69.equals(pcrsCd) && JFUStrConst.CD00565_PA6901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A70.equals(pcrsCd) && JFUStrConst.CD00565_PA7001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A71.equals(pcrsCd) && JFUStrConst.CD00565_PA7101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A78.equals(pcrsCd) && JFUStrConst.CD00565_PA7801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A79.equals(pcrsCd) && JFUStrConst.CD00565_PA7901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A80.equals(pcrsCd) && JFUStrConst.CD00565_PA8001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A91.equals(pcrsCd) && JFUStrConst.CD00565_PA9101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A92.equals(pcrsCd) && JFUStrConst.CD00565_PA9201.equals(pplanCd))
								|| (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A74.equals(pcrsCd) && JFUStrConst.CD00565_PA7401.equals(pplanCd))
// ANK-4427-00-00 ADD START
								|| (JFUStrConst.CD00134_AA0.equals(pcrsCd) && JFUStrConst.CD00565_PAA001.equals(pplanCd))
								|| (JFUStrConst.CD00134_AA1.equals(pcrsCd) && JFUStrConst.CD00565_PAA101.equals(pplanCd))
								|| (JFUStrConst.CD00134_AA2.equals(pcrsCd) && JFUStrConst.CD00565_PAA201.equals(pplanCd))
								|| (JFUStrConst.CD00134_AA3.equals(pcrsCd) && JFUStrConst.CD00565_PAA301.equals(pplanCd))
								|| (JFUStrConst.CD00134_AA4.equals(pcrsCd) && JFUStrConst.CD00565_PAA401.equals(pplanCd))
								|| (JFUStrConst.CD00134_AB0.equals(pcrsCd) && JFUStrConst.CD00565_PAB001.equals(pplanCd))
								|| (JFUStrConst.CD00134_AB1.equals(pcrsCd) && JFUStrConst.CD00565_PAB101.equals(pplanCd))
								|| (JFUStrConst.CD00134_AB2.equals(pcrsCd) && JFUStrConst.CD00565_PAB201.equals(pplanCd))
								|| (JFUStrConst.CD00134_AB3.equals(pcrsCd) && JFUStrConst.CD00565_PAB301.equals(pplanCd))
								|| (JFUStrConst.CD00134_AB4.equals(pcrsCd) && JFUStrConst.CD00565_PAB401.equals(pplanCd)))
// ANK-4427-00-00 ADD END
						{
							getsuEohSikyAmntNet = getsuEohSikyAmntGk;
						}
// ANK-3133-00-00 ADD END

						// インターネットサギウォール　ｆｏｒ　ｅｏ　（セット割）出力設定
						if(JFUStrConst.CD00134_BE2.equals(pcrsCd) && JFUStrConst.CD00565_PBE201.equals(pplanCd)
								&& !setIswSetWrib)
						{
							addOtherWrib(inMap, JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA, WRIB_SBT_CD_MONTHLY);
							getsuEohSikyAmntGk = getsuEohSikyAmntGk + this.seikyAmntGk;
							setIswSetWrib = true;
						}
					}
				}
			}
		}

		/*** ★月額金額の割引／キャンペーン出力処理★ ***/
		// 割引サービス単価リスト
		List wribSvcTankaList = null;

		HashMap waribikiMap = null;
		HashMap wribSvcInfoMap = null;
		HashMap wribSvcTankaInfoMap = null;

		String wribSvcCd = "";
		String wribSvcNm = "";
		String wribSbtCdTanka = "";
		String wribSvcTankaNo = JFUStrConst.EMPTY;
		String prcsCd = "";
		String wribSvcCdSimu = "";
		String pcrsCdSimu = "";
		String prcSvcCd = JFUStrConst.EMPTY;
		String seikyAmntSimu = "";
		BigDecimal amnt = null;

		spaceEnabled = true; // 空白フラグ（TRUE：ｽﾍﾟｰｽ出力）

		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < this.kkWribSvcList.size(); i++)
		{
			wribSvcInfoMap = (HashMap)this.kkWribSvcList.get(i);

			wribSvcCd = (String)wribSvcInfoMap.get("wrib_svc_cd");
			wribSvcNm = (String)wribSvcInfoMap.get("wrib_svc_nm");
			wribSvcTankaList = (ArrayList)wribSvcInfoMap.get("wrib_svc_tanka_list");

			output = 0; // 出力件数
			eohWribAmn = 0; // eo光割引料金
			mblWribAmn = 0; // eoモバイル割引料金
			eohKeiWribAmn = 0; // eo光割引料金（既契約分）
			mblKeiWribAmn = 0; // eoモバイル割引料金（既契約分）
			keiWribCnt = 0; // 既契約割引数

			// 即割り、ファミリーパック、インターネットサギウォールセット割
			// 上記の場合は次の繰り返し処理へ
			if (JFUStrConst.KK0841_WRIB_SVC_CD_SOKUWARI.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA.equals(wribSvcCd))
			{
				continue;
			}

			// 割引サービス単価リストの件数分処理を実行する
			for (int n = 0; n < wribSvcTankaList.size(); n++)
			{
				wribSvcTankaInfoMap = (HashMap)wribSvcTankaList.get(n);

				wribSbtCdTanka = (String)wribSvcTankaInfoMap.get("wrib_sbt_cd");
				prcGrpCd = (String)wribSvcTankaInfoMap.get("prc_grp_cd");
				wribSvcTankaNo = (String)wribSvcTankaInfoMap.get("wrib_svc_tanka_no");

				// 割引種別コードが"2":月額料金割引の場合
				if (WRIB_SBT_CD_MONTHLY.equals(wribSbtCdTanka))
				{
					// シミュレーション結果リストの件数分処理を実行する
					amnt = new BigDecimal(0);
					for (int num = 0; num < this.acPrsimlRsltList.size(); num++)
					{
						waribikiMap = (HashMap)this.acPrsimlRsltList.get(num);

						wribSvcCdSimu = (String)waribikiMap.get("wrib_svc_cd");
						prcSvcCd = (String)waribikiMap.get("prc_svc_cd");
						seikyAmntSimu = (String)waribikiMap.get("seiky_amnt");
						pcrsCdSimu = (String)waribikiMap.get("pcrs_cd");

						// KKの割引サービスコードとAC結果リストの割引サービスコードが異なる場合、次へ
						if (!wribSvcCd.equals(wribSvcCdSimu))
						{
							continue;
						}

						// 割引サービス単価番号とAC結果リストの割引サービスコードが異なる場合、次へ
						if (!wribSvcTankaNo.equals(prcSvcCd))
						{
							continue;
						}

						// 請求金額を加算
						if (isNullBlunk(seikyAmntSimu))
						{
							seikyAmntSimu = "0";
						}

						// 請求金額取得
						amnt = new BigDecimal(seikyAmntSimu.trim());

						if (JFUStrConst.CD00133_02.equals(prcGrpCd)
								|| JFUStrConst.CD00133_03.equals(prcGrpCd)
								|| JFUStrConst.CD00133_04.equals(prcGrpCd))
						{
							// ■ネット(ホーム・メゾン・マンション)契約判定
							if (JFUStrConst.CD00002_1.equals(netMskmFlg))
							{
								// ネット申込有りの場合、既契約にネット契約無し
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(netKeiDiv))
							{
								// 既契約にネット有り
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								// 上記以外は次へ
								continue;
							}
						}
						else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
						{
							// ■電話契約判定
							if (JFUStrConst.CD00002_1.equals(telMskmFlg))
							{
								// 電話申込有りの場合、既契約に電話契約無し
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(telKeiDiv))
							{
								// 既契約に電話有り
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								// 上記外は次へ
								continue;
							}
						}
						else if (JFUStrConst.CD00133_11.equals(prcGrpCd) || JFUStrConst.CD00133_12.equals(prcGrpCd)
								|| JFUStrConst.CD00134_A39.equals(pcrsCdSimu))
						{
							// ■TV契約判定
							if (JFUStrConst.CD00002_1.equals(tvMskmFlg))
							{
								// TV申込有りの場合、既契約にTV契約無し
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(tvKeiDiv))
							{
								// 既契約にTV有り
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								// 上記外は次へ
								continue;
							}
						}
						else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
						{
							// ■Wi-Fi契約判定
							if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg))
							{
								// Wi-Fi申込有りの場合、既契約にWi-Fi契約無し
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblWifiKeiDiv))
							{
								// 既契約にWi-Fi有り
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								// 上記外は次へ
								continue;
							}
						}
						else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblEmMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblEmKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblUqKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}

						if ((JFUStrConst.CD00133_07.equals(prcGrpCd))
								|| (JFUStrConst.CD00133_08.equals(prcGrpCd))
								|| (JFUStrConst.CD00133_09.equals(prcGrpCd)))
						{
							// eoモバイルの場合、eoモバイルの割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								mblKeiWribAmn = mblKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								mblWribAmn = mblWribAmn + amnt.intValue();
							}
						}
						else
						{
							// 上記以外の場合、eo光の割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								eohKeiWribAmn = eohKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								eohWribAmn = eohWribAmn + amnt.intValue();
							}
						}

						// 出力件数カウント
						output = output + 1;
					}
				}
			}

			// 出力ありなら追加する
			if (output > 0)
			{
				// 空白行出力判定
				if (spaceEnabled)
				{
					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", "");
					prcUwMap.put("prc_uw_nm", "");
					this.prcUwlist.add(prcUwMap);

					spaceEnabled = false;
				}

				// 既契約割引数が1件なら割引料金を加算する。
				if (keiWribCnt == 1)
				{
					//mblWribAmn = mblWribAmn + mblKeiWribAmn;
					eohWribAmn = eohWribAmn + eohKeiWribAmn;
				}

				prcUwMap = new HashMap<String, String>();
				prcUwMap.put("siky_amnt", String.valueOf(eohWribAmn + mblWribAmn + mblKeiWribAmn));
				prcUwMap.put("prc_uw_nm", wribSvcNm);
				prcUwMap.put("wrib_camp_cd", wribSvcCd);
				this.prcUwlist.add(prcUwMap);

				// eo光、eoモバイルを分けて金額を加算する。
				getsuEohSikyAmntGk = getsuEohSikyAmntGk + eohWribAmn;
				getsuMblSikyAmntGk = getsuMblSikyAmntGk + mblWribAmn;
// IT1-2017-0000105 ADD START
				if (JFUStrConst.CD00002_1.equals(netMskmFlg) &&
						(KEI_DIV_0.equals(telKeiDiv) || KEI_DIV_0.equals(tvKeiDiv)))
				{
					getsuEohSikyAmntNet = getsuEohSikyAmntNet + eohWribAmn;
				}
// IT1-2017-0000105 ADD END

				// モバイル
				if(mblKeiWribAmn < 0)
				{
					mblWribAmnKei = mblWribAmnKei + mblKeiWribAmn;
				}
			}
		}

		// 結果リストのセット
		prsimlRsltMap = new HashMap<String, String>();
		prsimlRsltMap.put("prc_dsp_bri_cd", "1");

		if (JFUStrConst.CD00002_1.equals(netMskmFlg) || JFUStrConst.CD00002_1.equals(telMskmFlg) || JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", String.valueOf(getsuEohSikyAmntGk));
// ANK-3133-00-00 ADD START
			prsimlRsltMap.put("eoh_net_gtgk", String.valueOf(getsuEohSikyAmntNet));
// ANK-3133-00-00 ADD END
		}
		else
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", "");
		}

		if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg) || JFUStrConst.CD00002_1.equals(mblEmMskmFlg) || JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", String.valueOf(getsuMblSikyAmntGk));
		}
		else
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", "");
		}

		prsimlRsltMap.put("prc_uwlist", this.prcUwlist);
		this.prsimlRsltList.add(prsimlRsltMap);

		/*** 初期費用の出力処理 ***/

		// 初期化
		this.prcUwlist = new ArrayList();
		HashMap kanyuMap = new HashMap();
		HashMap wifJimte = new HashMap();
		this.seikyAmntGk = 0;

		// 初期費用条件一覧リストの件数分処理を実行する
		for (int i = 0; i < this.shkhJokenIcrnList.size(); i++)
		{
			shkhJokenIcrnMap = (HashMap)this.shkhJokenIcrnList.get(i);

			netMskmFlgIcrn = (String)shkhJokenIcrnMap.get("net_mskm_flg");
			telMskmFlgIcrn = (String)shkhJokenIcrnMap.get("tel_mskm_flg");
			tvMskmFlgIcrn = (String)shkhJokenIcrnMap.get("tv_mskm_flg");
			mblWifiMskmFlgIcrn = (String)shkhJokenIcrnMap.get("mbl_wifi_mskm_flg");
			mblEmMskmFlgIcrn = (String)shkhJokenIcrnMap.get("mbl_em_mskm_flg");
			mblUqMskmFlgIcrn = (String)shkhJokenIcrnMap.get("mbl_uq_mskm_flg");
			netJmte = (String)shkhJokenIcrnMap.get("net_jmte");
			netJmteNm = (String)shkhJokenIcrnMap.get("net_jmte_nm");
			netStdardKojihi = (String)shkhJokenIcrnMap.get("net_stdard_kojihi");
			netStdardKojihiNm = (String)shkhJokenIcrnMap.get("net_stdard_kojihi_nm");
			telJmte = (String)shkhJokenIcrnMap.get("tel_jmte");
			telJmteNm = (String)shkhJokenIcrnMap.get("tel_jmte_nm");
			telStdardKojihi = (String)shkhJokenIcrnMap.get("tel_stdard_kojihi");
			telStdardKojihiNm = (String)shkhJokenIcrnMap.get("tel_stdard_kojihi_nm");
			tvJmte = (String)shkhJokenIcrnMap.get("tv_jmte");
			tvJmteNm = (String)shkhJokenIcrnMap.get("tv_jmte_nm");
			tvStdardKojihi = (String)shkhJokenIcrnMap.get("tv_stdard_kojihi");
			tvStdardKojihiNm = (String)shkhJokenIcrnMap.get("tv_stdard_kojihi_nm");
			mblWifiJmte = (String)shkhJokenIcrnMap.get("mbl_wifi_jmte");
			mblWifiJmteNm = (String)shkhJokenIcrnMap.get("mbl_wifi_jmte_nm");
			mblEmJmte = (String)shkhJokenIcrnMap.get("mbl_em_jmte");
			mblEmJmteNm = (String)shkhJokenIcrnMap.get("mbl_em_jmte_nm");
			mblUqJmte = (String)shkhJokenIcrnMap.get("mbl_uq_jmte");
			mblUqJmteNm = (String)shkhJokenIcrnMap.get("mbl_uq_jmte_nm");

			// 変数のフラグとリストのフラグが一致した場合
			if (netMskmFlg.equals(netMskmFlgIcrn)
					&& telMskmFlg.equals(telMskmFlgIcrn)
					&& tvMskmFlg.equals(tvMskmFlgIcrn)
					&& mblWifiMskmFlg.equals(mblWifiMskmFlgIcrn)
					&& mblEmMskmFlg.equals(mblEmMskmFlgIcrn)
					&& mblUqMskmFlg.equals(mblUqMskmFlgIcrn))
			{
				// ネット申込フラグが"1":申込の場合
				if (JFUStrConst.CD00002_1.equals(netMskmFlgIcrn))
				{
					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", netJmte);
					prcUwMap.put("prc_uw_nm", netJmteNm);

					this.prcUwlist.add(prcUwMap);

// ANK-3296-00-00 MOD START
//					prcUwMap = new HashMap<String, String>();
//					prcUwMap.put("siky_amnt", netStdardKojihi);
//					prcUwMap.put("prc_uw_nm", netStdardKojihiNm);
//
//					this.prcUwlist.add(prcUwMap);
					if (JFUBPCommon.getOpeDate(null).compareTo(STDARD_KOJIHI_OPEN_YMD) < 0 || JFUStrConst.STDARD_KOJIHI_PAYWAY_IKT.equals(stdardKojihiPayway))
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", netStdardKojihi);
						prcUwMap.put("prc_uw_nm", netStdardKojihiNm);

						this.prcUwlist.add(prcUwMap);
					}
					else
					{
						netStdardKojihi = "0";
					}
// ANK-3296-00-00 MOD END
					// 請求金額を加算
					if (isNullBlunk(netJmte))
					{
						netJmte = "0";
					}

					initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(netJmte);

					if (isNullBlunk(netStdardKojihi))
					{
						netStdardKojihi = "0";
					}

					initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(netStdardKojihi);

					// モデムプランが"1":買取の場合
					if ("1".equals(vdslModemPlan))
					{
						output = 0; // 出力件数

						// 一時支払料金一覧リストの件数分処理を実行する
						for (int n = 0; n < this.tmpyPrcIcrnList.size(); n++)
						{
							tmpyPrcIcrnMap = (HashMap)this.tmpyPrcIcrnList.get(n);

							tmpPayPrcNo = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_no");
							tmpPayPrcAmnt = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_amnt");
							prsimlPrcDspNmTmp = (String)tmpyPrcIcrnMap.get("prsiml_prc_dsp_nm");
							prsimlPrcDspLvTmp = (String)tmpyPrcIcrnMap.get("prsiml_dsp_lv");

							// 料金シミュレーション表示レベルの数だけ全角スペースを追加
							spaceAdd = "";
							if (isNullBlunk(prsimlPrcDspLvTmp))
							{
								prsimlPrcDspLvTmp = "0";
							}

							for (int num = 0; num < Integer.parseInt(prsimlPrcDspLvTmp); num++)
							{
								spaceAdd = spaceAdd + ZENSPACE;
							}

							// 出力後なら処理を抜ける
							if (output == 1)
							{
								break;
							}
						}
					}
				}

				// 電話申込フラグが"1":申込の場合
				if (JFUStrConst.CD00002_1.equals(telMskmFlgIcrn))
				{
					// ネット申込フラグが"1":申込の場合は0を設定
					if (JFUStrConst.CD00002_1.equals(netMskmFlgIcrn))
					{
						telJmte = "0";
						telStdardKojihi = "0";
					}
					// ネットが既契約の場合は標準工事費なし
					else if (KEI_DIV_0.equals(netKeiDiv) || this.kkeiNetKeiFlg)
					{
						telStdardKojihi = "0";
					}
					// テレビ単独契約に電話申込、またはテレビ同時申込の場合は標準工事費なし
					else if (!JFUStrConst.CD00002_1.equals(tvMskmFlg) && ("1".equals((String)inMap.get("select_svc_tv"))))
					{
						// eo光電話.標準工事費
						telStdardKojihi = "0";
					}

					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", telJmte);
					prcUwMap.put("prc_uw_nm", telJmteNm);

					this.prcUwlist.add(prcUwMap);

// ANK-3296-00-00 MOD START
//					prcUwMap = new HashMap<String, String>();
//					prcUwMap.put("siky_amnt", telStdardKojihi);
//					prcUwMap.put("prc_uw_nm", telStdardKojihiNm);
//
//					this.prcUwlist.add(prcUwMap);
					if (JFUBPCommon.getOpeDate(null).compareTo(STDARD_KOJIHI_OPEN_YMD) < 0 || JFUStrConst.STDARD_KOJIHI_PAYWAY_IKT.equals(stdardKojihiPayway))
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", telStdardKojihi);
						prcUwMap.put("prc_uw_nm", telStdardKojihiNm);

						this.prcUwlist.add(prcUwMap);
					}
					else
					{
						telStdardKojihi = "0";
					}
// ANK-3296-00-00 MOD END

					// 請求金額を加算
					if (isNullBlunk(telJmte))
					{
						telJmte = "0";
					}

					initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(telJmte);

					if (isNullBlunk(telStdardKojihi))
					{
						telStdardKojihi = "0";
					}

					initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(telStdardKojihi);

					// ●番号ポータビリティー番号数が存在し、"0"でない場合
					if (!isNullBlunk(bmpNoCnt) && !"0".equals(bmpNoCnt))
					{
						output = 0; // 出力件数

						// 一時支払料金一覧リストの件数分処理を実行する
						for (int n = 0; n < this.tmpyPrcIcrnList.size(); n++)
						{
							tmpyPrcIcrnMap = (HashMap)this.tmpyPrcIcrnList.get(n);

							tmpPayPrcNo = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_no");
							tmpPayPrcAmnt = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_amnt");
							prsimlPrcDspNmTmp = (String)tmpyPrcIcrnMap.get("prsiml_prc_dsp_nm");
							prsimlPrcDspLvTmp = (String)tmpyPrcIcrnMap.get("prsiml_dsp_lv");

							// 料金シミュレーション表示レベルの数だけ全角スペースを追加
							spaceAdd = "";
							if (isNullBlunk(prsimlPrcDspLvTmp))
							{
								prsimlPrcDspLvTmp = "0";
							}

							for (int num = 0; num < Integer.parseInt(prsimlPrcDspLvTmp); num++)
							{
								spaceAdd = spaceAdd + ZENSPACE;
							}

							// 電話番号割当手数料(番ポ手数料)の場合
							if (TMP_PAY_PRC_NO_BMP.equals(tmpPayPrcNo))
							{
								for (int m = 0; m < Integer.parseInt(bmpNoCnt); m++)
								{
									prcUwMap = new HashMap<String, String>();
									prcUwMap.put("siky_amnt", tmpPayPrcAmnt);
									prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmTmp);
									this.prcUwlist.add(prcUwMap);

									// 請求金額を加算
									if (isNullBlunk(tmpPayPrcAmnt))
									{
										tmpPayPrcAmnt = "0";
									}

									initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(tmpPayPrcAmnt);
								}

								output += 1;
							}

							// 出力後なら処理を抜ける
							if (output == 2)
							{
								break;
							}
						}
					}
				}

				// ＯＮＵ交換工事が"1":有の場合
				if ("1".equals(onuKknKojiUm))
				{
					initEohSikyAmntGk = addInitPrcSimulation(TMP_PAY_PRC_NO_210081026010, initEohSikyAmntGk);
				}

				// テレビ申込フラグが"1":申込の場合
				if (JFUStrConst.CD00002_1.equals(tvMskmFlgIcrn))
				{
					if (Integer.parseInt(tvJmte) == 0)
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", tvJmte);
						prcUwMap.put("prc_uw_nm", tvJmteNm);

						this.prcUwlist.add(prcUwMap);
					}
					else if(Integer.parseInt(tvJmte) > 0)
					{
						// ★加入契約料（ｅｏ光テレビ）無料対応
						kanyuMap.put("siky_amnt", "-" + tvJmte);
						kanyuMap.put("prc_uw_nm", "加入契約料無料キャンペーン（ｅｏ光テレビ）");

						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", tvJmte);
						prcUwMap.put("prc_uw_nm", tvJmteNm);

						this.prcUwlist.add(prcUwMap);
					}

					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", tvStdardKojihi);
					prcUwMap.put("prc_uw_nm", tvStdardKojihiNm);

					this.prcUwlist.add(prcUwMap);

					// 請求金額を加算
					if (isNullBlunk(tvJmte))
					{
						tvJmte = "0";
					}

					initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(tvJmte);

					if (isNullBlunk(tvStdardKojihi))
					{
						tvStdardKojihi = "0";
					}

					initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(tvStdardKojihi);

					// 料金サービス契約リストの件数分処理を実行する
					for (int n = 0; n < prcSvkeiList.size(); n++)
					{
						prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

						pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
						pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");

						// TAI-2012-0000136 メゾンの追加パターンを追記
						// 契約新規対応：コンパクト追加
						if ((JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3602.equals(pplanCd))
								|| (JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3606.equals(pplanCd))
								|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4002.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4004.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4006.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4102.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4104.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4106.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8502.equals(pplanCd))
								|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8506.equals(pplanCd))
								|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8602.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8604.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8606.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8702.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8704.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8706.equals(pplanCdKei)))
						{

							output = 0; // 出力件数

							// 一時支払料金一覧リストの件数分処理を実行する
							for (int num = 0; num < this.tmpyPrcIcrnList.size(); num++)
							{
								tmpyPrcIcrnMap = (HashMap)this.tmpyPrcIcrnList.get(num);

								tmpPayPrcNo = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_no");
								tmpPayPrcAmnt = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_amnt");
								prsimlPrcDspNmTmp = (String)tmpyPrcIcrnMap.get("prsiml_prc_dsp_nm");
								prsimlPrcDspLvTmp = (String)tmpyPrcIcrnMap.get("prsiml_dsp_lv");
								pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
								pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");

								// 料金シミュレーション表示レベルの数だけ全角スペースを追加
								spaceAdd = "";
								if (isNullBlunk(prsimlPrcDspLvTmp))
								{
									prsimlPrcDspLvTmp = "0";
								}

								for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
								{
									spaceAdd = spaceAdd + ZENSPACE;
								}

								// チューナー追加設置工事費の場合
								if (TMP_PAY_PRC_NO_210080756010.equals(tmpPayPrcNo))
								{

									prcUwMap = new HashMap<String, String>();
									prcUwMap.put("siky_amnt", tmpPayPrcAmnt);
									prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmTmp);

									this.prcUwlist.add(prcUwMap);

									// 請求金額を加算
									if (isNullBlunk(tmpPayPrcAmnt))
									{
										tmpPayPrcAmnt = "0";
									}

									initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(tmpPayPrcAmnt);

									output += 1;
								}

								// 出力後なら処理を抜ける
								if (output == 1)
								{
									break;
								}
							}
						}
					}
				}

				// モバイルWiFi申込フラグが"1":申込の場合
				if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlgIcrn))
				{
					// モバイルデータの切り替わりの場合、空白行を間に挟む
					if (this.prcUwlist.size() > 0)
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", "");
						prcUwMap.put("prc_uw_nm", "");

						this.prcUwlist.add(prcUwMap);
					}

					// モバイルWiFi事務手数料に"0"を設定
					if (Integer.parseInt(mblWifiJmte) > 0)
					{
						wifJimte.put("siky_amnt", "-" + mblWifiJmte);
						wifJimte.put("prc_uw_nm", "契約事務手数料無料キャンペーン（ｅｏモバイル）");
					}

					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", mblWifiJmte);
					prcUwMap.put("prc_uw_nm", mblWifiJmteNm);

					this.prcUwlist.add(prcUwMap);

					// 請求金額を加算
					if (isNullBlunk(mblWifiJmte))
					{
						mblWifiJmte = "0";
					}

					initMblSikyAmntGk = initMblSikyAmntGk + Integer.parseInt(mblWifiJmte);
				}
				// モバイルEM申込フラグが"1":申込の場合
				else if (JFUStrConst.CD00002_1.equals(mblEmMskmFlgIcrn))
				{
					// モバイルデータの切り替わりの場合、空白行を間に挟む
					if (this.prcUwlist.size() > 0)
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", "");
						prcUwMap.put("prc_uw_nm", "");

						this.prcUwlist.add(prcUwMap);
					}

					// ネット申込フラグ、電話申込フラグの何れかが"1":申込の場合はモバイルEM事務手数料に"0"を設定
					if (JFUStrConst.CD00002_1.equals(netMskmFlgIcrn) || JFUStrConst.CD00002_1.equals(telMskmFlgIcrn))
					{
						mblEmJmte = "0";
					}

					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", mblEmJmte);
					prcUwMap.put("prc_uw_nm", mblEmJmteNm);

					this.prcUwlist.add(prcUwMap);

					// 請求金額を加算
					if (isNullBlunk(mblEmJmte))
					{
						mblEmJmte = "0";
					}

					initMblSikyAmntGk = initMblSikyAmntGk + Integer.parseInt(mblEmJmte);

					// 料金サービス契約リストの件数分処理を実行する
					for (int n = 0; n < prcSvkeiList.size(); n++)
					{
						prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

						pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
						pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");

						if ((JFUStrConst.CD00134_C27.equals(pcrsCdKei) && JFUStrConst.CD00565_PC2701.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_C28.equals(pcrsCdKei) && JFUStrConst.CD00565_PC2801.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_C29.equals(pcrsCdKei) && JFUStrConst.CD00565_PC2901.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_C37.equals(pcrsCdKei) && JFUStrConst.CD00565_PC3701.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_C38.equals(pcrsCdKei) && JFUStrConst.CD00565_PC3801.equals(pplanCdKei)))
						{

							output = 0; // 出力件数

							// 料金プラン一覧リストの件数分処理を実行する
							for (int num = 0; num < pplanIcrnList.size(); num++)
							{
								pplanIcrnMap = (HashMap)pplanIcrnList.get(num);

								pcrsCdPlan = (String)pplanIcrnMap.get("pcrs_cd");
								pplanCdPlan = (String)pplanIcrnMap.get("pplan_cd");
								pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
								prsimlPrcDspNmTmp = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
								prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

								// 料金シミュレーション表示レベルの数だけ全角スペースを追加
								spaceAdd = "";
								if (isNullBlunk(prsimlPrcDspLvTmp))
								{
									prsimlPrcDspLvTmp = "0";
								}

								for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
								{
									spaceAdd = spaceAdd + ZENSPACE;
								}

								// 専用ドック代金
								if(JFUStrConst.CD00134_C37.equals(pcrsCdKei) && JFUStrConst.CD00565_PC3701.equals(pplanCdKei))
								{
									// 0円とする
									pplanAmnt = "0";
								}

								// 料金サービス契約リストと料金プラン一覧の料金コースコードと料金プランコードが一致した場合
								if (pcrsCdKei.equals(pcrsCdPlan) && pplanCdKei.equals(pplanCdPlan))
								{
									prcUwMap = new HashMap<String, String>();
									prcUwMap.put("siky_amnt", pplanAmnt);
									prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmTmp);

									this.prcUwlist.add(prcUwMap);

									// 請求金額を加算
									if (isNullBlunk(pplanAmnt))
									{
										pplanAmnt = "0";
									}

									initMblSikyAmntGk = initMblSikyAmntGk + Integer.parseInt(pplanAmnt);

									output += 1;
								}

								// 出力後なら処理を抜ける
								if (output == 1)
								{
									break;
								}
							}
						}
					}
				}
				// モバイルUQ申込フラグが"1":申込の場合
				else if (JFUStrConst.CD00002_1.equals(mblUqMskmFlgIcrn))
				{
					// モバイルデータの切り替わりの場合、空白行を間に挟む
					if (this.prcUwlist.size() > 0)
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", "");
						prcUwMap.put("prc_uw_nm", "");

						this.prcUwlist.add(prcUwMap);
					}

					// ネット申込フラグ、電話申込フラグの何れかが"1":申込の場合はモバイルUQ事務手数料に"0"を設定
					if (JFUStrConst.CD00002_1.equals(netMskmFlgIcrn) || JFUStrConst.CD00002_1.equals(telMskmFlgIcrn))
					{
						mblUqJmte = "0";
					}

					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", mblUqJmte);
					prcUwMap.put("prc_uw_nm", mblUqJmteNm);

					this.prcUwlist.add(prcUwMap);

					// 請求金額を加算
					if (isNullBlunk(mblUqJmte))
					{
						mblUqJmte = "0";
					}

					initMblSikyAmntGk = initMblSikyAmntGk + Integer.parseInt(mblUqJmte);

					// 料金サービス契約リストの件数分処理を実行する
					for (int n = 0; n < prcSvkeiList.size(); n++)
					{
						prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

						pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
						pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");

						if ((JFUStrConst.CD00134_C30.equals(pcrsCdKei) && JFUStrConst.CD00565_PC3001.equals(pplanCdKei))
								|| (JFUStrConst.CD00134_C31.equals(pcrsCdKei) && JFUStrConst.CD00565_PC3101.equals(pplanCdKei)))
						{
							output = 0; // 出力件数

							// 料金プラン一覧リストの件数分処理を実行する
							for (int num = 0; num < pplanIcrnList.size(); num++)
							{
								pplanIcrnMap = (HashMap)pplanIcrnList.get(num);

								pcrsCdPlan = (String)pplanIcrnMap.get("pcrs_cd");
								pplanCdPlan = (String)pplanIcrnMap.get("pplan_cd");
								pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
								prsimlPrcDspNmTmp = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
								prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

								// 料金シミュレーション表示レベルの数だけ全角スペースを追加
								spaceAdd = "";
								if (isNullBlunk(prsimlPrcDspLvTmp))
								{
									prsimlPrcDspLvTmp = "0";
								}

								for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
								{
									spaceAdd = spaceAdd + ZENSPACE;
								}

								// 料金サービス契約リストと料金プラン一覧の料金コースコードと料金プランコードが一致した場合
								if (pcrsCdKei.equals(pcrsCdPlan) && pplanCdKei.equals(pplanCdPlan))
								{
									prcUwMap = new HashMap<String, String>();
									prcUwMap.put("siky_amnt", pplanAmnt);
									prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmTmp);

									this.prcUwlist.add(prcUwMap);

									// 請求金額を加算
									if (isNullBlunk(pplanAmnt))
									{
										pplanAmnt = "0";
									}

									initMblSikyAmntGk = initMblSikyAmntGk + Integer.parseInt(pplanAmnt);

									output += 1;
								}

								// 出力後なら処理を抜ける
								if (output == 1)
								{
									break;
								}
							}
						}
					}
				}

				// 出力したので処理を抜ける
				break;
			}
		}

		// IP-STB申込台数が1台以上の場合
		if (Integer.parseInt(eoStickMskmCnt) > 0)
		{
			// 機器買取初期費用表示対応
			for (int i = 0; i < this.pplanIcrnList.size(); i++)
			{
				pplanIcrnMap = (HashMap)pplanIcrnList.get(i);

				pcrsCd = (String)pplanIcrnMap.get("pcrs_cd");
				pplanCd = (String)pplanIcrnMap.get("pplan_cd");
				pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
				prsimlPrcDspNmPlan = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
				prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

				if (isNullBlunk(pplanAmnt))
				{
					pplanAmnt = "0";
				}
				pplanAmnti = Integer.parseInt(pplanAmnt) * Integer.parseInt(eoStickMskmCnt);

				// 機器買取のみ初期費用に表示
				if (JFUStrConst.CD00134_CA3.equals(pcrsCd) && JFUStrConst.CD00565_PCA301.equals(pplanCd))
				{
					// データの切り替わりの場合、空白行を間に挟む
					if (this.prcUwlist.size() > 0)
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", "");
						prcUwMap.put("prc_uw_nm", "");

						this.prcUwlist.add(prcUwMap);
					}
					initEohSikyAmntGk = initEohSikyAmntGk + pplanAmnti;

					// 明細出力
					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", String.valueOf(pplanAmnti));
					prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmPlan);

					this.prcUwlist.add(prcUwMap);
					break;
				}
			}
		}

		// ●割引／キャンペーン出力処理

		// 割引サービス単価リスト
		wribSvcTankaList = new ArrayList();

		wribSvcCd = "";
		wribSvcNm = "";
		wribSbtCdTanka = "";
		wribSvcCdSimu = "";
		seikyAmntSimu = "";
		wribSvcTankaNo = JFUStrConst.EMPTY;
		prcSvcCd = JFUStrConst.EMPTY;
		String kktkSvcCd = JFUStrConst.EMPTY;
		String prcKmkCd = JFUStrConst.EMPTY;
		spaceEnabled = true; // 空白フラグ（TRUE：ｽﾍﾟｰｽ出力）

		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < this.kkWribSvcList.size(); i++)
		{
			wribSvcInfoMap = (HashMap)this.kkWribSvcList.get(i);

			wribSvcCd = (String)wribSvcInfoMap.get("wrib_svc_cd");
			wribSvcNm = (String)wribSvcInfoMap.get("wrib_svc_nm");
			wribSvcTankaList = (ArrayList)wribSvcInfoMap.get("wrib_svc_tanka_list");

			output = 0; // 出力件数
			eohWribAmn = 0; // eo光割引料金
			mblWribAmn = 0; // eoモバイル割引料金
			eohKeiWribAmn = 0; // eo光割引料金（既契約分）
			mblKeiWribAmn = 0; // eoモバイル割引料金（既契約分）
			keiWribCnt = 0; // 既契約割引数

			// 即割り、ファミリーパック、インターネットサギウォールセット割
			// 上記の場合は次の繰り返し処理へ
			if (JFUStrConst.KK0841_WRIB_SVC_CD_SOKUWARI.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA.equals(wribSvcCd))
			{
				continue;
			}

			// 割引サービス単価リストの件数分処理を実行する
			for (int n = 0; n < wribSvcTankaList.size(); n++)
			{
				wribSvcTankaInfoMap = (HashMap)wribSvcTankaList.get(n);

				wribSbtCdTanka = (String)wribSvcTankaInfoMap.get("wrib_sbt_cd");
				prcGrpCd = (String)wribSvcTankaInfoMap.get("prc_grp_cd");
				prcsCd = (String)wribSvcTankaInfoMap.get("pcrs_cd");
				wribSvcTankaNo = (String)wribSvcTankaInfoMap.get("wrib_svc_tanka_no");
				kktkSvcCd = (String)wribSvcTankaInfoMap.get("kktk_svc_cd");
				prcKmkCd = (String)wribSvcTankaInfoMap.get("prc_kmk_cd");

				// 割引種別コードが"1":一時費用割引の場合
				if (WRIB_SBT_CD_TMP.equals(wribSbtCdTanka))
				{
					// シミュレーション結果リストの件数分処理を実行する
					amnt = new BigDecimal(0);
					for (int num = 0; num < this.acPrsimlRsltList.size(); num++)
					{
						waribikiMap = (HashMap)this.acPrsimlRsltList.get(num);

						wribSvcCdSimu = (String)waribikiMap.get("wrib_svc_cd");
						pcrsCdSimu = (String)waribikiMap.get("pcrs_cd");
						prcSvcCd = (String)waribikiMap.get("prc_svc_cd");
						seikyAmntSimu = (String)waribikiMap.get("seiky_amnt");

						// 割引サービスリストの割引サービスコードとシミュレーション結果リストの割引サービスコードが一致しなかった場合、次のデータへ
						if (!wribSvcCd.equals(wribSvcCdSimu))
						{
							continue;
						}

						if (prcSvcCd != null && prcSvcCd.trim().length() > 0 && !wribSvcTankaNo.equals(prcSvcCd))
						{
							// 料金サービスコードがトリム後に空でない、割引サービス単価リストの料金コースコードとシミュレーション結果リストの
							// 料金コースコードが一致しなかった場合、次のデータへ
							continue;
						}
						else if(JFUBPCommon.isNull(kktkSvcCd) && !prcsCd.equals(pcrsCdSimu))
						{
							// 契約の料金コースコードとシミュレーション結果リストの料金コースコードが一致しなかった場合、次のデータへ
							continue;
						}

						// 請求金額を加算
						if (isNullBlunk(seikyAmntSimu))
						{
							seikyAmntSimu = "0";
						}

						amnt = new BigDecimal(seikyAmntSimu);

						if (JFUStrConst.CD00133_02.equals(prcGrpCd)
								|| JFUStrConst.CD00133_03.equals(prcGrpCd)
								|| JFUStrConst.CD00133_04.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(netMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(netKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(telMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(telKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_11.equals(prcGrpCd) || JFUStrConst.CD00133_12.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(tvMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(tvKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblWifiKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblEmMskmFlg))
							{
								keiEnabled = false;
							}

							if (KEI_DIV_0.equals(mblEmKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
							{
								keiEnabled = false;
							}

							if (KEI_DIV_0.equals(mblUqKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if(JFUStrConst.KK0771_KKTK_SVC_CD_C016.equals(kktkSvcCd))
						{
							// 機器提供サービスコードが「eoモバイル EM用」の場合
							if (JFUStrConst.CD00002_1.equals(mblEmMskmFlg))
							{
								keiEnabled = false;
							}

							if (KEI_DIV_0.equals(mblEmKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
						}
						else if(JFUStrConst.KK0771_KKTK_SVC_CD_C017.equals(kktkSvcCd))
						{
							// 機器提供サービスコードが「eoモバイル UQ用」の場合
							if (JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
							{
								keiEnabled = false;
							}

							if (KEI_DIV_0.equals(mblUqKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
						}

						if ((JFUStrConst.CD00133_07.equals(prcGrpCd))
								|| (JFUStrConst.CD00133_08.equals(prcGrpCd))
								|| (JFUStrConst.CD00133_09.equals(prcGrpCd))
								|| (JFUStrConst.KK0771_KKTK_SVC_CD_C016.equals(kktkSvcCd)) || (JFUStrConst.KK0771_KKTK_SVC_CD_C017.equals(kktkSvcCd)))
						{
							// 料金グループコードが「eoモバイル」、または、機器サービスコードが「eoモバイル機器　EM用」、
							// または、「eoモバイル機器　UQ用」場合、eoモバイルの割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								mblKeiWribAmn = mblKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								mblWribAmn = mblWribAmn + amnt.intValue();
							}
						}
						else
						{
							// 上記以外の場合、eo光の割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								eohKeiWribAmn = eohKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								eohWribAmn = eohWribAmn + amnt.intValue();
							}
						}

						// 出力件数カウント
						output = output + 1;
					}
				}
			}

			// 出力ありなら追加する
			if (output > 0)
			{
				// 空白行出力判定
				if (spaceEnabled)
				{
					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", "");
					prcUwMap.put("prc_uw_nm", "");
					this.prcUwlist.add(prcUwMap);

					spaceEnabled = false;
				}

				// 既契約割引数が1件なら割引料金を加算する。
				if (keiWribCnt == 1)
				{
					mblWribAmn = mblWribAmn + mblKeiWribAmn;
					eohWribAmn = eohWribAmn + eohKeiWribAmn;
				}

				prcUwMap = new HashMap<String, String>();
				prcUwMap.put("siky_amnt", String.valueOf(eohWribAmn + mblWribAmn));
				prcUwMap.put("prc_uw_nm", wribSvcNm);
				prcUwMap.put("wrib_camp_cd", prcKmkCd);

				this.prcUwlist.add(prcUwMap);

				// eo光、eoモバイルを分けて金額を加算する。
				initEohSikyAmntGk = initEohSikyAmntGk + eohWribAmn;
				initMblSikyAmntGk = initMblSikyAmntGk + mblWribAmn;
			}
		}

		if ((output == 0 || this.prcUwlist.size() == 0) && (kanyuMap.size() > 0 || wifJimte.size() > 0))
		{
			prcUwMap = new HashMap<String, String>();
			prcUwMap.put("siky_amnt", "");
			prcUwMap.put("prc_uw_nm", "");
			this.prcUwlist.add(prcUwMap);
		}
		if(kanyuMap.size() > 0)
		{
			// ★加入契約料（ｅｏ光テレビ）無料CP対応
			prcUwMap = new HashMap<String, String>();
			prcUwMap.put("siky_amnt", (String)kanyuMap.get("siky_amnt"));
			prcUwMap.put("prc_uw_nm", (String)kanyuMap.get("prc_uw_nm"));
			prcUwMap.put("wrib_camp_cd", RKC_SFU00000001);

			this.prcUwlist.add(prcUwMap);

			initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt((String)kanyuMap.get("siky_amnt"));
		}
		if(wifJimte.size() > 0)
		{
			// ★モバイルWi-Fi事務手数料無料CP対応
			prcUwMap = new HashMap<String, String>();
			prcUwMap.put("siky_amnt", (String)wifJimte.get("siky_amnt"));
			prcUwMap.put("prc_uw_nm", (String)wifJimte.get("prc_uw_nm"));
			prcUwMap.put("wrib_camp_cd", RKC_SFU00000002);

			this.prcUwlist.add(prcUwMap);

			initMblSikyAmntGk = initMblSikyAmntGk + Integer.parseInt((String)wifJimte.get("siky_amnt"));
		}

		// 結果リストのセット
		prsimlRsltMap = new HashMap<String, String>();
		prsimlRsltMap.put("prc_dsp_bri_cd", "0");
		if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				|| JFUStrConst.CD00002_1.equals(telMskmFlg)
				|| JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", String.valueOf(initEohSikyAmntGk));
		}
		else
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", "");
		}

		if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg)
				|| JFUStrConst.CD00002_1.equals(mblEmMskmFlg)
				|| JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", String.valueOf(initMblSikyAmntGk));
		}
		else
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", "");
		}

		prsimlRsltMap.put("prc_uwlist", this.prcUwlist);

		this.prsimlRsltList.add(prsimlRsltMap);

		/*** 編集処理 ***/
		HashMap resultMap = new HashMap<String, String>();
		int sikyAmntGki = 0;
		String prcUwNm = "";
		String sikyAmnt = "";
		String sikyAmntGk = "";
		String eohSikyAmntGk = "";
		String mblSikyAmntGk = "";
		boolean addFlag = false;

		ArrayList prcUwList = null;
		amnt = new BigDecimal(0);

		// 料金シミュレーション結果リストの件数分処理を実行する
		for (int i = 0; i < this.prsimlRsltList.size(); i++)
		{
			resultMap = (HashMap)this.prsimlRsltList.get(i);

			sikyAmntGki = 0;
			eohSikyAmntGk = (String)resultMap.get("eoh_siky_amnt_gk");
			mblSikyAmntGk = (String)resultMap.get("mbl_siky_amnt_gk");
			prcUwList = (ArrayList)resultMap.get("prc_uwlist");

			// 請求金額合計を算出
			if (!"".equals(eohSikyAmntGk))
			{
				// 計がマイナスなら0円とする。
				if (Integer.parseInt(eohSikyAmntGk) < 0)
				{
					eohSikyAmntGk = "0";
				}

				sikyAmntGki = sikyAmntGki + Integer.parseInt(eohSikyAmntGk);

				// フォーマット変換
				eohSikyAmntGk = JPCFomatString.formatNumber(eohSikyAmntGk);
			}

			if (!"".equals(mblSikyAmntGk))
			{
				// 計がマイナスなら0円とする。
				if (Integer.parseInt(mblSikyAmntGk) < 0)
				{
					mblSikyAmntGk = "0";
				}

				sikyAmntGki = sikyAmntGki + Integer.parseInt(mblSikyAmntGk);

				// フォーマット変換
				mblSikyAmntGk = JPCFomatString.formatNumber(mblSikyAmntGk);
			}

			if(i == 0 && mblWribAmnKei < 0)
			{
				sikyAmntGki = sikyAmntGki + mblWribAmnKei;
			}

			if(sikyAmntGki < 0)
			{
				sikyAmntGki = 0;
			}

			// フォーマット変換
			sikyAmntGk = JPCFomatString.formatNumber(String.valueOf(sikyAmntGki));

			resultMap.put("siky_amnt_gk", sikyAmntGk);
			resultMap.put("eoh_siky_amnt_gk", eohSikyAmntGk);
			resultMap.put("mbl_siky_amnt_gk", mblSikyAmntGk);

			// 料金内訳リストの件数分処理を実行する
			for (int n = 0; n < prcUwList.size(); n++)
			{
				addFlag = false;

				prcUwMap = (HashMap)prcUwList.get(n);

				prcUwNm = (String)prcUwMap.get("prc_uw_nm");
				sikyAmnt = (String)prcUwMap.get("siky_amnt");

				if (isNullBlunk(sikyAmnt))
				{
					if (isNullBlunk(prcUwNm))
					{
						continue;
					}

					sikyAmnt = "0";
				}

				amnt = new BigDecimal(sikyAmnt);

				if (amnt.intValue() < 0)
				{
					addFlag = true;
					amnt = new BigDecimal(amnt.intValue() * -1);
				}

				// 請求金額をフォーマット変換
				sikyAmnt = JPCFomatString.formatNumber(String.valueOf(amnt.intValue()));

				if (addFlag)
				{
					sikyAmnt = "▲" + sikyAmnt;
				}

				prcUwMap.put("siky_amnt", sikyAmnt);
			}
		}

		return param;
	}

	/**
	 * <p>
	 * 料金シミュレーション結果作成(マンション用)
	 * </p>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得I/F
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite makePrcSimuResultMansion(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws Exception
	{

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 番号ポータビリティー番号数
		String bmpNoCnt = (String)inMap.get("bmp_no_cnt");
		// 申込回線サービス
		String mskmKsnSvc = (String)inMap.get("mskm_ksn_svc");
		// モデムプラン
		String vdslModemPlan = (String)inMap.get("vdsl_modem_plan");
		// 提供料金種別コード
		String tkPrcSbtCd = (String)inMap.get("tk_prc_sbt_cd");
		// 変更ネットコースコード（表示用）
		String change_net_pcrscd = (String)inMap.get("change_net_pcrscd");
		// 変更ネットコース表示名（表示用）
		String change_net_prc_dsp_nm = (String)inMap.get("change_net_prc_dsp_nm");
		// ＯＮＵ交換工事有無
		String onuKknKojiUm = (String)inMap.get("onu_kkn_koji_um");

		HashMap prcSvkeiMap = null;
		HashMap pplanIcrnMap = null;
		HashMap prcUwMap = null;

		HashMap prsimlRsltMap = null;

		// 同一回線：ネット契約状況
		String keiSvcNet = (String)inMap.get("kei_svc_net");
		// 同一回線：TV契約状況
		String keiSvcTv = (String)inMap.get("kei_svc_tv");

		// 加入契約申込条件コード
		String knykeiMskmJokenCd = (String)inMap.get("knykei_mskm_joken_cd");

		String netMskmFlg = JFUStrConst.CD00002_0; // ネット申込フラグ（０：未申込、１：申込）
		String telMskmFlg = JFUStrConst.CD00002_0; // 電話申込フラグ
		String tvMskmFlg = JFUStrConst.CD00002_0; // テレビ申込フラグ
		String mblWifiMskmFlg = JFUStrConst.CD00002_0; // モバイルWi-Fi申込フラグ
		String mblEmMskmFlg = JFUStrConst.CD00002_0; // モバイルEM申込フラグ
		String mblUqMskmFlg = JFUStrConst.CD00002_0; // モバイルUQ申込フラグ

		String netKeiDiv = KEI_DIV_1; // ネット契約フラグ（０：既契約、１：新契約）
		String telKeiDiv = KEI_DIV_1; // 電話契約フラグ
		String tvKeiDiv = KEI_DIV_1; // テレビ契約フラグ
		String mblWifiKeiDiv = KEI_DIV_1; // モバイルWi-Fi契約フラグ
		String mblEmKeiDiv = KEI_DIV_1; // モバイルEM契約フラグ
		String mblUqKeiDiv = KEI_DIV_1; // モバイルUQ契約フラグ

		String prcGrpCd = ""; // 料金グループコード
		String keiDiv = ""; // 契約区分
		String pcrsCd = ""; // 料金コースコード
		String pplanCd = ""; // 料金プランコード
		String pplanAmnt = ""; // 料金プラン金額
		String prcGrpCdKei = ""; // 料金グループコード(料金サービス契約リスト)
		String pcrsCdKei = ""; // 料金コースコード(料金サービス契約リスト)
		String pplanCdKei = ""; // 料金プランコード(料金サービス契約リスト)
		String pcrsCdPlan = ""; // 料金コースコード(料金プラン一覧リスト)
		String pplanCdPlan = ""; // 料金プランコード(料金プラン一覧リスト)
		String prsimlPrcDspNmPlan = ""; // 料金シミュレーション表示名(料金プラン一覧リスト)
		String sokuwariUm = ""; // 即割有無
		String telJmte = ""; // 電話事務手数料
		String telStdardKojihi = ""; // 電話標準工事費
		String mblWifiJmte = ""; // モバイルWiFi事務手数料
		String prsimlPrcDspNmTmp = ""; // 料金シミュレーション料金表示名(一時支払料金一覧リスト)
		String prsimlPrcDspLvTmp = ""; // 料金シミュレーション料金表示レベル(一時支払料金一覧リスト)
		String spaceAdd = ""; // 全角スペース追加用

		int getsuEohSikyAmntGk = 0; // 月額料金eo光請求金額合計
// IT1-2017-0000103 ADD START
		int getsuEohSikyAmntNet = 0; // 月額料金eo光ネット請求金額
// IT1-2017-0000103 ADD END
		int getsuMblSikyAmntGk = 0; // 月額料金モバイル請求金額合計
		int initEohSikyAmntGk = 0; // 初期費用eo光請求金額合計
		int initMblSikyAmntGk = 0; // 初期費用モバイル請求金額合計
		int pplanAmnti = 0;
		int eohWribAmn = 0; // eo光割引料金
		int mblWribAmn = 0; // eoモバイル割引料金
		int eohKeiWribAmn = 0; // eo光料金（既契約分）
		int mblKeiWribAmn = 0; // eoモバイル割引料金（既契約分）
		Boolean keiEnabled = true; // 契約フラグ（TRUE：既契約）
		int keiWribCnt = 0; // 既契約割引数

		int mblWribAmnKei = 0; // eoモバイル割引料金合計

		Boolean stbEnabled = false; // STB出力フラグ（TRUE：出力）
		Boolean spaceEnabled = true; // 空白フラグ（TRUE：ｽﾍﾟｰｽ出力）

		int output = 0; // 出力件数
		boolean setSokuwariFlg = true; // 即割設定フラグ
		boolean setIswSetWrib = false; // インターネットサギウォールセット割設定フラグ

		HashMap modemMap = new HashMap();
		this.prsimlRsltList = new ArrayList<Map<String, String>>();

		// 申込サービス＆既契約サービスをまとめる
		List<HashMap> prcSvcKeiListAll = new ArrayList();
		prcSvcKeiListAll.addAll(this.prcSvkeiList);

		// 既契約情報設定
		if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.CD00731_1.equals((String)inMap.get("payway_continue"))
				&& this.sameSeikySvcList != null && this.sameSeikySvcList.size() > 0)
		{
			// 同回線＆同請求先に追加の場合、請求先に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.sameSeikySvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && this.mbKaisenSvcList != null && this.mbKaisenSvcList.size() > 0)
		{
			// 同回線＆請求先未決定＆モバイル単独の場合、全回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.mbKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && JFUStrConst.EMPTY.equals((String)inMap.get("payway_continue"))
				&& this.sameKaisenSvcList != null && this.sameKaisenSvcList.size() > 0)
		{
			// 同回線に追加で請求先未決定の場合、回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.sameKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && "2".equals((String)inMap.get("payway_continue"))
				&& JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && this.mbKaisenSvcList != null && this.mbKaisenSvcList.size() > 0)
		{
			// 同回線＆支払引き継がない＆モバイル単独の場合、全回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.mbKaisenSvcList);
		}
		else if("1".equals((String)inMap.get("kaisen_select")) && "2".equals((String)inMap.get("payway_continue"))
				&& this.sameKaisenSvcList != null && this.sameKaisenSvcList.size() > 0)
		{
			// 同回線＆支払引き継がない場合、回線に紐付くサービス契約情報をリストに追加する
			prcSvcKeiListAll.addAll(this.sameKaisenSvcList);
		}

		// eo光スティック申込台数
		String eoStickMskmCnt = (String)inMap.get("eo_stick_mskm_cnt");
		if(JFUBPCommon.isNull(eoStickMskmCnt))
		{
			// 空の場合、0台とする
			eoStickMskmCnt = JFUStrConst.S_ZERO;
		}

		// 申込みサービスの抽出 -----------------------------------------------
		// 料金サービス契約リストの件数分処理を実行する
		for (int i = 0; i < prcSvcKeiListAll.size(); i++)
		{
			prcSvkeiMap = (HashMap)prcSvcKeiListAll.get(i);

			keiDiv = (String)prcSvkeiMap.get("kei_div");
			prcGrpCd = (String)prcSvkeiMap.get("prc_grp_cd");

			// 契約区分が"1":新契約の場合
			if (KEI_DIV_1.equals(keiDiv))
			{
				if (JFUStrConst.CD00133_02.equals(prcGrpCd)
						|| JFUStrConst.CD00133_03.equals(prcGrpCd)
						|| JFUStrConst.CD00133_04.equals(prcGrpCd))
				{
					netMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
				{
					telMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_11.equals(prcGrpCd)
						|| JFUStrConst.CD00133_12.equals(prcGrpCd))
				{
					tvMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
				{
					mblWifiMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
				{
					mblEmMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
				{
					mblUqMskmFlg = JFUStrConst.CD00002_1;
				}
			}
			else
			{
				if (JFUStrConst.CD00133_02.equals(prcGrpCd)
						|| JFUStrConst.CD00133_03.equals(prcGrpCd)
						|| JFUStrConst.CD00133_04.equals(prcGrpCd))
				{
					netKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
				{
					telKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_11.equals(prcGrpCd)
						|| JFUStrConst.CD00133_12.equals(prcGrpCd))
				{
					tvKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
				{
					mblWifiKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
				{
					mblEmKeiDiv = keiDiv;
				}
				else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
				{
					mblUqKeiDiv = keiDiv;
				}
			}
		}

		/*** ★マンション月額料金の出力処理★ ***/
		this.prcUwlist = new ArrayList();

		// 料金プラン一覧リストの件数分処理を実行する
		for (int i = 0; i < this.pplanIcrnList.size(); i++)
		{
			pplanIcrnMap = (HashMap)pplanIcrnList.get(i);

			pcrsCd = (String)pplanIcrnMap.get("pcrs_cd");
			pplanCd = (String)pplanIcrnMap.get("pplan_cd");
			pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
			prsimlPrcDspNmPlan = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
			if ((change_net_pcrscd != null) && change_net_pcrscd.equals(pcrsCd))
			{
				prsimlPrcDspNmPlan = change_net_prc_dsp_nm;
			}
			prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

			// 買取機器関連の場合
			if ((JFUStrConst.CD00134_CA3.equals(pcrsCd) && JFUStrConst.CD00565_PCA301.equals(pplanCd)))
			{
				// 対象外のデータのため無視する。
				continue;
			}

			// モバイル機器関連の場合
			if ((JFUStrConst.CD00134_C27.equals(pcrsCd) && JFUStrConst.CD00565_PC2701.equals(pplanCd))
					|| (JFUStrConst.CD00134_C28.equals(pcrsCd) && JFUStrConst.CD00565_PC2801.equals(pplanCd))
					|| (JFUStrConst.CD00134_C29.equals(pcrsCd) && JFUStrConst.CD00565_PC2901.equals(pplanCd))
					|| (JFUStrConst.CD00134_C30.equals(pcrsCd) && JFUStrConst.CD00565_PC3001.equals(pplanCd))
					|| (JFUStrConst.CD00134_C31.equals(pcrsCd) && JFUStrConst.CD00565_PC3101.equals(pplanCd))
					|| (JFUStrConst.CD00134_C37.equals(pcrsCd) && JFUStrConst.CD00565_PC3701.equals(pplanCd))
					|| (JFUStrConst.CD00134_C38.equals(pcrsCd) && JFUStrConst.CD00565_PC3801.equals(pplanCd)))
			{
				// 対象外のデータのため無視する。
				continue;
			}

			// ＳＴＢ追加費関連の場合(TAI-2012-0000136 メゾンの追加パターンを追記)
			// 契約新規対応：コンパクト追加
			else if ((JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3604.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4002.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4004.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4006.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4102.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4104.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4106.equals(pplanCd))
					|| (JFUStrConst.CD00134_C12.equals(pcrsCd) && JFUStrConst.CD00565_PC1201.equals(pplanCd))
					|| (JFUStrConst.CD00134_C13.equals(pcrsCd) && JFUStrConst.CD00565_PC1301.equals(pplanCd))
					|| (JFUStrConst.CD00134_C14.equals(pcrsCd) && JFUStrConst.CD00565_PC1401.equals(pplanCd))
					|| (JFUStrConst.CD00134_C15.equals(pcrsCd) && JFUStrConst.CD00565_PC1501.equals(pplanCd))
					|| (JFUStrConst.CD00134_C92.equals(pcrsCd) && JFUStrConst.CD00565_PC9201.equals(pplanCd))
					|| (JFUStrConst.CD00134_C93.equals(pcrsCd) && JFUStrConst.CD00565_PC9301.equals(pplanCd))
					|| (JFUStrConst.CD00134_C95.equals(pcrsCd) && JFUStrConst.CD00565_PC9501.equals(pplanCd))
					|| (JFUStrConst.CD00134_C96.equals(pcrsCd) && JFUStrConst.CD00565_PC9601.equals(pplanCd))
					|| (JFUStrConst.CD00134_C97.equals(pcrsCd) && JFUStrConst.CD00565_PC9701.equals(pplanCd))
					|| (JFUStrConst.CD00134_C98.equals(pcrsCd) && JFUStrConst.CD00565_PC9801.equals(pplanCd))
					|| (JFUStrConst.CD00134_C99.equals(pcrsCd) && JFUStrConst.CD00565_PC9901.equals(pplanCd))
					|| (JFUStrConst.CD00134_CA4.equals(pcrsCd) && JFUStrConst.CD00565_PCA401.equals(pplanCd))
					|| (JFUStrConst.CD00134_CA5.equals(pcrsCd) && JFUStrConst.CD00565_PCA501.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8504.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8602.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8604.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8606.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8702.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8704.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8706.equals(pplanCd)))
			{
				// 既に出力済みのため無視する。
				continue;
			}

			// モデム買取プラン
			else if(JFUStrConst.CD00134_C43.equals(pcrsCd) && JFUStrConst.CD00565_PC4301.equals(pplanCd))
			{
				// 飛ばす
				continue;
			}

			// スマートリンクプレミアムの場合は別エリアなので対象外
			// 【案件番号：ANK-1580-00-00】eoスマートリンク改修対応@（複数契約対応・機種追加）
			else if(JFUStrConst.CD00134_B80.equals(pcrsCd) && JFUStrConst.CD00565_PB8001.equals(pplanCd))
			{
				// 飛ばす
				continue;
			}

			if (isNullBlunk(pplanAmnt))
			{
				pplanAmnt = "0";
			}

			pplanAmnti = Integer.parseInt(pplanAmnt);

			// 料金シミュレーション表示レベルの数だけ全角スペースを追加
			spaceAdd = "";
			if (isNullBlunk(prsimlPrcDspLvTmp))
			{
				prsimlPrcDspLvTmp = "0";
			}

			for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
			{
				spaceAdd = spaceAdd + ZENSPACE;
			}

			// TAI-2012-0000136 メゾンの追加パターンを追記
			// STB追加費の出力判定
			if (((JFUStrConst.CD00134_A36.equals(pcrsCd) && JFUStrConst.CD00565_PA3603.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4001.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4003.equals(pplanCd))
					|| (JFUStrConst.CD00134_A40.equals(pcrsCd) && JFUStrConst.CD00565_PA4005.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4101.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4103.equals(pplanCd))
					|| (JFUStrConst.CD00134_A41.equals(pcrsCd) && JFUStrConst.CD00565_PA4105.equals(pplanCd))
					|| (JFUStrConst.CD00134_A85.equals(pcrsCd) && JFUStrConst.CD00565_PA8503.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8601.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8603.equals(pplanCd))
					|| (JFUStrConst.CD00134_A86.equals(pcrsCd) && JFUStrConst.CD00565_PA8605.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8701.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8703.equals(pplanCd))
					|| (JFUStrConst.CD00134_A87.equals(pcrsCd) && JFUStrConst.CD00565_PA8705.equals(pplanCd)))
					&& (!stbEnabled))
			{

				// 料金サービス契約リストの件数分処理を実行する
				for (int n = 0; n < prcSvkeiList.size(); n++)
				{
					prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

					pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
					pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");

					// 料金プランコードと料金グループコードが一致した場合
					if (pcrsCd.equals(pcrsCdKei) && pplanCd.equals(pplanCdKei))
					{
						stbEnabled = true;
					}

					// ＳＴＢ関連費出力の場合
					if (stbEnabled
							&& ((JFUStrConst.CD00134_A36.equals(pcrsCdKei) && JFUStrConst.CD00565_PA3603.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A36.equals(pcrsCdKei) && JFUStrConst.CD00565_PA3604.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4001.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4002.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4003.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4004.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4005.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4006.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4101.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4102.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4103.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4104.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4105.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4106.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C12.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1201.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C13.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1301.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C14.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1401.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C15.equals(pcrsCdKei) && JFUStrConst.CD00565_PC1501.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C92.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9201.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C93.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9301.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C95.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9501.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C96.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9601.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C97.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9701.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C98.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9801.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_C99.equals(pcrsCdKei) && JFUStrConst.CD00565_PC9901.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_CA4.equals(pcrsCdKei) && JFUStrConst.CD00565_PCA401.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_CA5.equals(pcrsCdKei) && JFUStrConst.CD00565_PCA501.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A85.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8503.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A85.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8504.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8601.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8602.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8603.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8604.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8605.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8606.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8701.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8702.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8703.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8704.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8705.equals(pplanCdKei))
									|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8706.equals(pplanCdKei))))
					{

						// 料金プラン一覧リストの件数分処理を実行する
						for (int num = 0; num < pplanIcrnList.size(); num++)
						{
							pplanIcrnMap = (HashMap)pplanIcrnList.get(num);

							pcrsCdPlan = (String)pplanIcrnMap.get("pcrs_cd");
							pplanCdPlan = (String)pplanIcrnMap.get("pplan_cd");
							pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
							prsimlPrcDspNmTmp = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
							prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

							// 料金シミュレーション表示レベルの数だけ全角スペースを追加
							spaceAdd = "";
							if (isNullBlunk(prsimlPrcDspLvTmp))
							{
								prsimlPrcDspLvTmp = "0";
							}

							for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
							{
								spaceAdd = spaceAdd + ZENSPACE;
							}

							// 料金サービス契約リストと料金プラン一覧の料金コースコードと料金プランコードが一致した場合
							if (pcrsCdKei.equals(pcrsCdPlan)
									&& pplanCdKei.equals(pplanCdPlan))
							{
								prcUwMap = new HashMap<String, String>();
								prcUwMap.put("siky_amnt", pplanAmnt);
								prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmTmp);

								this.prcUwlist.add(prcUwMap);

								// 請求金額を加算
								if (isNullBlunk(pplanAmnt))
								{
									pplanAmnt = "0";
								}

								// eo光請求金額合計を加算
								getsuEohSikyAmntGk = getsuEohSikyAmntGk + Integer.parseInt(pplanAmnt);
								break;
							}
						}
					}
				}
			}
			else
			{
				// 料金サービス契約リストの件数分処理を実行する
				for (int n = 0; n < prcSvkeiList.size(); n++)
				{
					prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

					prcGrpCdKei = (String)prcSvkeiMap.get("prc_grp_cd");
					sokuwariUm = (String)prcSvkeiMap.get("soku_wari_um");

					// 基本料金取得用の読み替え処理
					HashMap changeInfo = changeListItemByBaseAmt(handle, prcSvkeiMap);
					pcrsCdKei = (String)changeInfo.get("pcrs_cd");
					pplanCdKei = (String)changeInfo.get("prc_plan_cd");

					// 料金プランコードと料金プランコードが一致した場合
					if (pcrsCd.equals(pcrsCdKei) && pplanCd.equals(pplanCdKei))
					{
						// 請求金額合計を加算
						if (JFUStrConst.CD00133_07.equals(prcGrpCdKei) || JFUStrConst.CD00133_08.equals(prcGrpCdKei)
								|| JFUStrConst.CD00133_09.equals(prcGrpCdKei))
						{
							// eoモバイル請求金額合計を加算
							getsuMblSikyAmntGk = getsuMblSikyAmntGk + pplanAmnti;

							// 空白行出力判定
							if (spaceEnabled)
							{
								// 最初のモバイルデータの切り替わりの場合、空白行を間に挟む
								if (this.prcUwlist.size() > 0)
								{
									prcUwMap = new HashMap<String, String>();
									prcUwMap.put("siky_amnt", "");
									prcUwMap.put("prc_uw_nm", "");

									this.prcUwlist.add(prcUwMap);
								}

								spaceEnabled = false;
							}
						}
						else if(JFUStrConst.CD00133_10.equals(prcGrpCdKei)
									&& JFUStrConst.CD00134_C06.equals(pcrsCd) && JFUStrConst.CD00565_PC0601.equals(pplanCd))
						{
							// eo光請求金額合計を加算
							getsuEohSikyAmntGk = getsuEohSikyAmntGk + pplanAmnti;

							// 電話VDSLモデムレンタル料内訳表示対応
							modemMap.put("siky_amnt", String.valueOf(pplanAmnti));
							modemMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmPlan);
							continue;
						}
						else if(JFUStrConst.CD00134_C26.equals(pcrsCd) && JFUStrConst.CD00565_PC2601.equals(pplanCd))
						{
							// ●PLCの場合
							// 台数設定
							String plcNum = (String)prcSvkeiMap.get("plc_num");
							if(isNull(plcNum))
							{
								plcNum = "2";
							}

							// PLCプラン料金×台数
							pplanAmnti = pplanAmnti * Integer.parseInt(plcNum);

							// eo光請求金額合計を加算
							getsuEohSikyAmntGk = getsuEohSikyAmntGk + pplanAmnti;
						}
						else
						{
							// eo光請求金額合計を加算
							getsuEohSikyAmntGk = getsuEohSikyAmntGk + pplanAmnti;
						}

						// 明細出力
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", String.valueOf(pplanAmnti));
						prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmPlan);

						this.prcUwlist.add(prcUwMap);

						// 明細出力(電話VDSLモデムレンタル料内訳表示対応)
						if(modemMap.size() > 0 && (JFUStrConst.CD00134_A31.equals(pcrsCdKei) || JFUStrConst.CD00134_A32.equals(pcrsCdKei)))
						{
							prcUwMap = new HashMap<String, String>();
							prcUwMap.put("siky_amnt", String.valueOf(modemMap.get("siky_amnt")));
							prcUwMap.put("prc_uw_nm", modemMap.get("prc_uw_nm"));
							this.prcUwlist.add(prcUwMap);
						}

						// 条件に該当した場合は即割料金を判定する。
						if ((JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0311.equals(pplanCd))
								|| (JFUStrConst.CD00134_A07.equals(pcrsCd) && JFUStrConst.CD00565_PA0701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A05.equals(pcrsCd) && JFUStrConst.CD00565_PA0501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A91.equals(pcrsCd) && JFUStrConst.CD00565_PA9101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0811.equals(pplanCd))
								|| (JFUStrConst.CD00134_A11.equals(pcrsCd) && JFUStrConst.CD00565_PA1101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A10.equals(pcrsCd) && JFUStrConst.CD00565_PA1001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A92.equals(pcrsCd) && JFUStrConst.CD00565_PA9201.equals(pplanCd))
								|| (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A54.equals(pcrsCd) && JFUStrConst.CD00565_PA5401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A55.equals(pcrsCd) && JFUStrConst.CD00565_PA5501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A57.equals(pcrsCd) && JFUStrConst.CD00565_PA5701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A74.equals(pcrsCd) && JFUStrConst.CD00565_PA7401.equals(pplanCd)))
						{
							if (setSokuwariFlg == true && "1".equals(sokuwariUm))
							{
								addSokuwariAmnt(inMap);
								getsuEohSikyAmntGk = getsuEohSikyAmntGk + this.seikyAmntGk;
								setSokuwariFlg = false;
							}
						}

// IT1-2017-0000103 ADD START
						// 条件に該当した場合はネットの月額料金と判定する。
						if ((JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0311.equals(pplanCd))
								|| (JFUStrConst.CD00134_A04.equals(pcrsCd) && JFUStrConst.CD00565_PA0401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A05.equals(pcrsCd) && JFUStrConst.CD00565_PA0501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A07.equals(pcrsCd) && JFUStrConst.CD00565_PA0701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0811.equals(pplanCd))
								|| (JFUStrConst.CD00134_A09.equals(pcrsCd) && JFUStrConst.CD00565_PA0901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A10.equals(pcrsCd) && JFUStrConst.CD00565_PA1001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A11.equals(pcrsCd) && JFUStrConst.CD00565_PA1101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A47.equals(pcrsCd) && JFUStrConst.CD00565_PA4702.equals(pplanCd))
								|| (JFUStrConst.CD00134_A48.equals(pcrsCd) && JFUStrConst.CD00565_PA4801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A49.equals(pcrsCd) && JFUStrConst.CD00565_PA4901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A50.equals(pcrsCd) && JFUStrConst.CD00565_PA5001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A51.equals(pcrsCd) && JFUStrConst.CD00565_PA5101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A52.equals(pcrsCd) && JFUStrConst.CD00565_PA5201.equals(pplanCd))
								|| (JFUStrConst.CD00134_A53.equals(pcrsCd) && JFUStrConst.CD00565_PA5301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A54.equals(pcrsCd) && JFUStrConst.CD00565_PA5401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A55.equals(pcrsCd) && JFUStrConst.CD00565_PA5501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5611.equals(pplanCd))
								|| (JFUStrConst.CD00134_A57.equals(pcrsCd) && JFUStrConst.CD00565_PA5701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A67.equals(pcrsCd) && JFUStrConst.CD00565_PA6701.equals(pplanCd))
								|| (JFUStrConst.CD00134_A68.equals(pcrsCd) && JFUStrConst.CD00565_PA6801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A69.equals(pcrsCd) && JFUStrConst.CD00565_PA6901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A70.equals(pcrsCd) && JFUStrConst.CD00565_PA7001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A71.equals(pcrsCd) && JFUStrConst.CD00565_PA7101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A78.equals(pcrsCd) && JFUStrConst.CD00565_PA7801.equals(pplanCd))
								|| (JFUStrConst.CD00134_A79.equals(pcrsCd) && JFUStrConst.CD00565_PA7901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A80.equals(pcrsCd) && JFUStrConst.CD00565_PA8001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A91.equals(pcrsCd) && JFUStrConst.CD00565_PA9101.equals(pplanCd))
								|| (JFUStrConst.CD00134_A92.equals(pcrsCd) && JFUStrConst.CD00565_PA9201.equals(pplanCd))
								|| (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd))
								|| (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd))
								|| (JFUStrConst.CD00134_A74.equals(pcrsCd) && JFUStrConst.CD00565_PA7401.equals(pplanCd)))
						{
							getsuEohSikyAmntNet = getsuEohSikyAmntGk;
						}
// IT1-2017-0000103 ADD END

						// インターネットサギウォール　ｆｏｒ　ｅｏ　（セット割）出力設定
						if(JFUStrConst.CD00134_BE2.equals(pcrsCd) && JFUStrConst.CD00565_PBE201.equals(pplanCd)
								&& !setIswSetWrib)
						{
							addOtherWrib(inMap, JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA, WRIB_SBT_CD_MONTHLY);
							getsuEohSikyAmntGk = getsuEohSikyAmntGk + this.seikyAmntGk;
							setIswSetWrib = true;
						}
					}
				}
			}
		}

		/*** ★マンション割引料金の出力処理★ ***/
		// 割引サービス単価リスト
		List wribSvcTankaList = null;

		HashMap waribikiMap = null;
		HashMap wribSvcInfoMap = null;
		HashMap wribSvcTankaInfoMap = null;

		String wribSvcCd = "";
		String wribSvcNm = "";
		String wribSbtCdTanka = "";
		String wribSvcTankaNo = JFUStrConst.EMPTY;
		String prcsCd = "";
		String wribSvcCdSimu = "";
		String pcrsCdSimu = "";
		String prcSvcCd = JFUStrConst.EMPTY;
		String seikyAmntSimu = "";
		String prcKmkCd = JFUStrConst.EMPTY;
		BigDecimal amnt = null;
		spaceEnabled = true; // 空白フラグ（TRUE：ｽﾍﾟｰｽ出力）

		// マンションネット料金コースリスト
		List<String> netMansList =
				Arrays.asList(JFUStrConst.CD00134_A47, JFUStrConst.CD00134_A48, JFUStrConst.CD00134_A49, JFUStrConst.CD00134_A50,
						JFUStrConst.CD00134_A51, JFUStrConst.CD00134_A52, JFUStrConst.CD00134_A53, JFUStrConst.CD00134_A54,
						JFUStrConst.CD00134_A55, JFUStrConst.CD00134_A56, JFUStrConst.CD00134_A57, JFUStrConst.CD00134_A74);
		// マンション電話料金コースリスト
		List<String> telMansList =
				Arrays.asList(JFUStrConst.CD00134_A31, JFUStrConst.CD00134_A32);
		// マンションTV料金コースリスト
		List<String> tvMansList =
				Arrays.asList(JFUStrConst.CD00134_A36, JFUStrConst.CD00134_A37, JFUStrConst.CD00134_A39, JFUStrConst.CD00134_A40,
						JFUStrConst.CD00134_A41, JFUStrConst.CD00134_A85, JFUStrConst.CD00134_A86, JFUStrConst.CD00134_A87);
		// モバイル(EM)料金コースリスト
		List<String> mbMansList =
				Arrays.asList(JFUStrConst.CD00134_A26, JFUStrConst.CD00134_A27, JFUStrConst.CD00134_A59, JFUStrConst.CD00134_A60);
		// モバイル(UQ-WiMAX)料金コースリスト
		List<String> uqMansList =
				Arrays.asList(JFUStrConst.CD00134_A28, JFUStrConst.CD00134_A29);

		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < this.kkWribSvcList.size(); i++)
		{
			wribSvcInfoMap = (HashMap)this.kkWribSvcList.get(i);

			wribSvcCd = (String)wribSvcInfoMap.get("wrib_svc_cd");
			wribSvcNm = (String)wribSvcInfoMap.get("wrib_svc_nm");
			wribSvcTankaList = (ArrayList)wribSvcInfoMap.get("wrib_svc_tanka_list");

			output = 0; // 出力件数
			eohWribAmn = 0; // eo光割引料金
			mblWribAmn = 0; // eoモバイル割引料金
			eohKeiWribAmn = 0; // eo光割引料金（既契約分）
			mblKeiWribAmn = 0; // eoモバイル割引料金（既契約分）
			keiWribCnt = 0; // 既契約割引数

			// 即割り、ファミリーパック、インターネットサギウォールセット割
			// 上記の場合は次の繰り返し処理へ
			if (JFUStrConst.KK0841_WRIB_SVC_CD_SOKUWARI.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA.equals(wribSvcCd))
			{
				continue;
			}

			// 割引サービス単価リストの件数分処理を実行する
			for (int n = 0; n < wribSvcTankaList.size(); n++)
			{
				wribSvcTankaInfoMap = (HashMap)wribSvcTankaList.get(n);

				wribSbtCdTanka = (String)wribSvcTankaInfoMap.get("wrib_sbt_cd");
				prcGrpCd = (String)wribSvcTankaInfoMap.get("prc_grp_cd");
				prcsCd = (String)wribSvcTankaInfoMap.get("pcrs_cd");
				wribSvcTankaNo = (String)wribSvcTankaInfoMap.get("wrib_svc_tanka_no");

				// 割引種別コードが"2":月額料金割引の場合
				if (WRIB_SBT_CD_MONTHLY.equals(wribSbtCdTanka))
				{
					// シミュレーション結果リストの件数分処理を実行する
					amnt = new BigDecimal(0);
					for (int num = 0; num < this.acPrsimlRsltList.size(); num++)
					{
						waribikiMap = (HashMap)this.acPrsimlRsltList.get(num);

						wribSvcCdSimu = (String)waribikiMap.get("wrib_svc_cd");
						pcrsCdSimu = (String)waribikiMap.get("pcrs_cd");
						seikyAmntSimu = (String)waribikiMap.get("seiky_amnt");
						prcSvcCd = (String)waribikiMap.get("prc_svc_cd");

						// 割引サービスリストの割引サービスコードとシミュレーション結果リストの割引サービスコードが一致しなかった場合、次のデータへ
						if (!wribSvcCd.equals(wribSvcCdSimu))
						{
							continue;
						}

						// 割引サービス単価番号と料金サービスコードが一致しなかった場合、次のデータへ
						if (!JFUBPCommon.isNull(wribSvcTankaNo) && !wribSvcTankaNo.equals(prcSvcCd))
						{
							continue;
						}

						// 割引サービス単価リストの料金コースコードとシミュレーション結果リストの料金コースコードが一致しなかった場合、次のデータへ
						if (!prcsCd.equals(pcrsCdSimu))
						{
							continue;
						}

						// 請求金額を加算
						if (isNullBlunk(seikyAmntSimu))
						{
							seikyAmntSimu = "0";
						}

						// 請求金額
						amnt = new BigDecimal(seikyAmntSimu.trim());

						// 契約状態判定
						if (netMansList.contains(prcsCd))
						{
							// ■ネット
							if (JFUStrConst.CD00002_1.equals(netMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(netKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (telMansList.contains(prcsCd))
						{
							// ■電話
							if (JFUStrConst.CD00002_1.equals(telMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(telKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (tvMansList.contains(prcsCd))
						{
							// ■テレビ
							if (JFUStrConst.CD00002_1.equals(tvMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(tvKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00134_A30.equals(prcsCd))
						{
							// ■Wi-Fi
							if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblWifiKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (mbMansList.contains(prcsCd))
						{
							// ■EM
							if (JFUStrConst.CD00002_1.equals(mblEmMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblEmKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (uqMansList.contains(prcsCd))
						{
							// ■UQ-WiMAX
							if (JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblUqKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}

						if ((JFUStrConst.CD00134_A30.equals(prcsCd)) || (mbMansList.contains(prcsCd)) || (uqMansList.contains(prcsCd)))
						{
							// eoモバイルの場合、eoモバイルの割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								mblKeiWribAmn = mblKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								mblWribAmn = mblWribAmn + amnt.intValue();
							}
						}
						else
						{
							// 上記以外の場合、eo光の割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								eohKeiWribAmn = eohKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								eohWribAmn = eohWribAmn + amnt.intValue();
							}
						}

						// 出力件数カウント
						output = output + 1;
					}
				}
			}

			// 出力ありなら追加する
			if (output > 0)
			{
				if (spaceEnabled)
				{
					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", "");
					prcUwMap.put("prc_uw_nm", "");

					this.prcUwlist.add(prcUwMap);

					spaceEnabled = false;
				}

				// 既契約割引数が1件なら割引料金を加算する。
				if (keiWribCnt == 1)
				{
					//mblWribAmn = mblWribAmn + mblKeiWribAmn;
					eohWribAmn = eohWribAmn + eohKeiWribAmn;
				}

				prcUwMap = new HashMap<String, String>();
				prcUwMap.put("siky_amnt", String.valueOf(eohWribAmn + mblWribAmn + mblKeiWribAmn));
				prcUwMap.put("prc_uw_nm", wribSvcNm);
				prcUwMap.put("wrib_camp_cd", wribSvcCd);

				this.prcUwlist.add(prcUwMap);

				// eo光、eoモバイルを分けて金額を加算する。
				getsuEohSikyAmntGk = getsuEohSikyAmntGk + eohWribAmn;
				getsuMblSikyAmntGk = getsuMblSikyAmntGk + mblWribAmn;
// IT1-2017-0000105 ADD START
				if (JFUStrConst.CD00002_1.equals(netMskmFlg) &&
						(KEI_DIV_0.equals(telKeiDiv) || KEI_DIV_0.equals(tvKeiDiv)))
				{
					getsuEohSikyAmntNet = getsuEohSikyAmntNet + eohWribAmn;
				}
// IT1-2017-0000105 ADD END

				// モバイル
				if(mblKeiWribAmn < 0)
				{
					mblWribAmnKei = mblWribAmnKei + mblKeiWribAmn;
				}
			}
		}

		// 結果リストのセット
		prsimlRsltMap = new HashMap<String, String>();
		prsimlRsltMap.put("prc_dsp_bri_cd", "1");
		if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				|| JFUStrConst.CD00002_1.equals(telMskmFlg)
				|| JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", String.valueOf(getsuEohSikyAmntGk));
// IT1-2017-0000103 ADD START
			prsimlRsltMap.put("eoh_net_gtgk", String.valueOf(getsuEohSikyAmntNet));
// IT1-2017-0000103 ADD END
		}
		else
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", "");
		}

		if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg)
				|| JFUStrConst.CD00002_1.equals(mblEmMskmFlg)
				|| JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", String.valueOf(getsuMblSikyAmntGk));
		}
		else
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", "");
		}

		prsimlRsltMap.put("prc_uwlist", this.prcUwlist);

		this.prsimlRsltList.add(prsimlRsltMap);


		/*** ★初期費用の出力処理★ ***/
		// 初期化
		ArrayList muryoCpList = new ArrayList();
		this.prcUwlist = new ArrayList();
		this.seikyAmntGk = 0;

		// 提供方式パターンコード取得
		String teikyoHoshikiPtnCd = (String)inMap.get("teikyo_hoshiki_ptn_cd");

		// ネット申込フラグが"1":申込の場合
		if (JFUStrConst.CD00002_1.equals(netMskmFlg))
		{
			// eo光ネット.契約事務手数料情報を取得
			HashMap netKeiJmteInfo = null;
			if(JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyoHoshikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyoHoshikiPtnCd))
			{
				// イーサネットの場合
				netKeiJmteInfo = this.getTmpPayPrc(TMP_PAY_PRC_NO_MN_KEI_ETHERNET);
			}
			else
			{
				// イーサネット以外の場合
				netKeiJmteInfo = this.getTmpPayPrc(TMP_PAY_PRC_NO_MT_NET_KEI);
			}

			// 契約事務手数料情報を内訳リストに追加
			if(JFUStrConst.CD01260_13.equals(knykeiMskmJokenCd))
			{
				// 2013.7.12追加 全戸一括の場合、0円とする
				this.prcUwlist.add(this.createPrcUwMap("0", (String)netKeiJmteInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));
			}
			else
			{
				// 全戸一括以外
				this.prcUwlist.add(this.createPrcUwMap((String)netKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
						(String)netKeiJmteInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));
			}

			// eo光ネット.標準工事費情報を取得
			HashMap netStdardKojihiInfo = this.getTmpPayPrc(this.getNetStdardKojihiNo(inMap));
			// 標準工事費情報を内訳リストに追加
			if(JFUStrConst.CD01260_13.equals(knykeiMskmJokenCd))
			{
				// 2013.7.12追加 全戸一括の場合、0円とする
				this.prcUwlist.add(this.createPrcUwMap("0", (String)netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));
			}
			else
			{
				// 全戸一括以外
				this.prcUwlist.add(this.createPrcUwMap((String)netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
						(String)netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));
			}

			// ●契約事務手数料
			// 請求金額を加算(ネット契約事務手数料)
			if(!JFUStrConst.CD01260_13.equals(knykeiMskmJokenCd))
			{
				// 全戸一括以外は計算する
				initEohSikyAmntGk = initEohSikyAmntGk + this.parseInteter((String)netKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT));
			}

			// 2018年4月以降はマンションの契約事務手数料無料キャンペーンは終了する。
			if (JFUBPCommon.getOpeDate(null).compareTo(STDARD_KOJIHI_OPEN_YMD) >= 0)
			{
				// 2018年4月以降の場合、無料としない
			}
			else if(!JFUStrConst.CD01260_13.equals(knykeiMskmJokenCd) &&
					this.parseInteter((String)netKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT)) > 0)
			{
				if(("001".equals(tkPrcSbtCd) || "002".equals(tkPrcSbtCd)) && JFUStrConst.MODEM_PLAN_KAITORI.equals(vdslModemPlan))
				{
					// VDSL-Sは無料としない
					//this.prcUwlist.add(this.createPrcUwMap((String) netKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
					//		(String) netKeiJmteInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));
				}
				else if(JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(teikyoHoshikiPtnCd))
				{
					// 光配線の場合、無料としない
				}
				else
				{
					// 契約事務手数料無料CP(ネット)対応
					// 請求金額を加算(ネット契約事務手数料)
					initEohSikyAmntGk = initEohSikyAmntGk
												+ (0 - this.parseInteter((String)netKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT)));
					// 内訳リストに追加
					muryoCpList.add(this.createPrcUwMapForWribCamp("-" + (String)netKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
							"契約事務手数料無料キャンペーン（ｅｏ光ネット）", RKC_SFU00000011));
				}
			}

			// ●ネット標準工事費
			// 請求金額を加算(ネット標準工事費)
			if(!JFUStrConst.CD01260_13.equals(knykeiMskmJokenCd))
			{
				// 全戸一括以外は計算する
				initEohSikyAmntGk = initEohSikyAmntGk + this.parseInteter((String)netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT));
			}

			if(!JFUStrConst.CD01260_13.equals(knykeiMskmJokenCd) &&
					this.parseInteter((String)netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT)) > 0)
			{
				if(("001".equals(tkPrcSbtCd) || "002".equals(tkPrcSbtCd)) && JFUStrConst.MODEM_PLAN_KAITORI.equals(vdslModemPlan))
				{
					// VDSL-Sは無料としない
					//this.prcUwlist.add(this.createPrcUwMap((String) netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
					//		(String) netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));
				}
				else
				{
					// ★2013/04/02 マンション毎キャンペーン無効化(暫定対応)
					// ★有効化するときはこのif文を削除する

					// 請求金額を加算(ネット標準工事費)
					initEohSikyAmntGk = initEohSikyAmntGk
												+ (0 - this.parseInteter((String)netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT)));
					// 内訳リストに追加
					muryoCpList.add(this.createPrcUwMapForWribCamp("-" + (String)netStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
							"初期工事費無料キャンペーン（ｅｏ光ネット）", RKC_SFU00000012));
				}
			}

			// VDSLモデム買取初期費用表示対応
			for (int i = 0; i < this.pplanIcrnList.size(); i++)
			{
				pplanIcrnMap = (HashMap)pplanIcrnList.get(i);

				pcrsCd = (String)pplanIcrnMap.get("pcrs_cd");
				pplanCd = (String)pplanIcrnMap.get("pplan_cd");
				pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
				prsimlPrcDspNmPlan = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
				prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

				if (isNullBlunk(pplanAmnt))
				{
					pplanAmnt = "0";
				}
				pplanAmnti = Integer.parseInt(pplanAmnt);

				// 料金サービス契約リストの件数分処理を実行する
				for (int n = 0; n < prcSvkeiList.size(); n++)
				{
					prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

					prcGrpCdKei = (String)prcSvkeiMap.get("prc_grp_cd");
					pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
					pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");
					sokuwariUm = (String)prcSvkeiMap.get("soku_wari_um");

					// モデム買取プランのみ初期費用に表示
					if(JFUStrConst.CD00134_C43.equals(pcrsCd) && JFUStrConst.CD00565_PC4301.equals(pplanCdKei))
					{
						initEohSikyAmntGk = initEohSikyAmntGk + pplanAmnti;

						// 明細出力
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", String.valueOf(pplanAmnti));
						prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmPlan);

						this.prcUwlist.add(prcUwMap);
						break;
					}
				}
			}
		}

		// 電話申込フラグが"1":申込の場合
		if (JFUStrConst.CD00002_1.equals(telMskmFlg))
		{
			// eo光電話.契約事務手数料情報を取得
			HashMap telKeiJmteInfo = null;
			if(JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyoHoshikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyoHoshikiPtnCd))
			{
				// イーサネットの場合
				telKeiJmteInfo = this.getTmpPayPrc(TMP_PAY_PRC_NO_MTEL_KEI_ENET);
			}
			else
			{
				// イーサネット以外の場合
				telKeiJmteInfo = this.getTmpPayPrc(TMP_PAY_PRC_NO_MT_TEL_KEI);
			}

			// eo光電話.標準工事費情報を取得
			HashMap telStdardKojihiInfo = this.getTmpPayPrc(this.getTelStdardKojihiNo(inMap));

			// ネット申込フラグが"1":申込の場合は0を設定
			if (JFUStrConst.CD00002_1.equals(netMskmFlg))
			{
				// eo光電話.契約事務手数料
				telJmte = "0";
				// eo光電話.標準工事費
				telStdardKojihi = "0";
			}
			// ネットが既契約の場合は標準工事費なし
			else if (KEI_DIV_0.equals(netKeiDiv) || "1".equals(keiSvcNet))
			{
				// eo光電話.契約事務手数料はEKK1921B501から取得
				telJmte = (String)telKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT);
				// eo光電話.標準工事費
				telStdardKojihi = "0";
			}
			// 上記以外 契約事務手数料、標準工事費をEKK1921B501から取得
			else
			{
				// eo光電話.契約事務手数料
				telJmte = (String)telKeiJmteInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT);
				// eo光電話.標準工事費
				telStdardKojihi = (String)telStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT);
			}

			// ●全戸一括 2013.7.12追加
			if(JFUStrConst.CD01260_13.equals(knykeiMskmJokenCd))
			{
				// 全戸一括の場合、事務手数料と工事費を0円とする
				telJmte = "0";
				telStdardKojihi = "0";
			}

			// eo光電話.契約事務手数料情報を内訳リストに追加
			this.prcUwlist.add(this.createPrcUwMap(telJmte, (String)telKeiJmteInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));

			// eo光電話.標準工事費情報を内訳リストに追加
			this.prcUwlist.add(this.createPrcUwMap(telStdardKojihi, (String)telStdardKojihiInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));

			// ●契約事務手数料
			// 請求金額を加算(eo光電話.契約事務手数料)
			initEohSikyAmntGk = initEohSikyAmntGk + this.parseInteter(telJmte);

			// ●標準工事費
			// 請求金額を加算(eo光電話.標準工事費)
			initEohSikyAmntGk = initEohSikyAmntGk + this.parseInteter(telStdardKojihi);

			// ●無料キャンペーン設定
			if(this.parseInteter(telStdardKojihi) > 0 && (JFUStrConst.CD00002_1.equals(tvMskmFlg) || "1".equals(keiSvcTv)))
			{
				// 標準工事費が0円でなく、TVとセットまたは既契約に存在する場合は、電話の標準工事費を無料CPとする
				// 請求金額を加算(電話標準工事費)
				initEohSikyAmntGk = initEohSikyAmntGk + (0 - this.parseInteter(telStdardKojihi));
				// 内訳リストに追加
				muryoCpList.add(this.createPrcUwMapForWribCamp("-" + (String)telStdardKojihiInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
						"初期工事費無料キャンペーン（ｅｏ光電話）", RKC_SFU00000013));
			}

			// VDSLモデム買取初期費用表示対応(契約新規：電話単独対応)
			if (!this.netKeiFlg && !this.kkeiNetKeiFlg)
			{
				for (int i = 0; i < this.pplanIcrnList.size(); i++)
				{
					pplanIcrnMap = (HashMap)pplanIcrnList.get(i);

					pcrsCd = (String)pplanIcrnMap.get("pcrs_cd");
					pplanCd = (String)pplanIcrnMap.get("pplan_cd");
					pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
					prsimlPrcDspNmPlan = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
					prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

					if (isNullBlunk(pplanAmnt))
					{
						pplanAmnt = "0";
					}
					pplanAmnti = Integer.parseInt(pplanAmnt);

					// 料金サービス契約リストの件数分処理を実行する
					for (int n = 0; n < prcSvkeiList.size(); n++)
					{
						prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

						prcGrpCdKei = (String)prcSvkeiMap.get("prc_grp_cd");
						pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
						pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");
						sokuwariUm = (String)prcSvkeiMap.get("soku_wari_um");

						// モデム買取プランのみ初期費用に表示
						if (JFUStrConst.CD00134_C43.equals(pcrsCd) && JFUStrConst.CD00565_PC4301.equals(pplanCdKei))
						{
							initEohSikyAmntGk = initEohSikyAmntGk + pplanAmnti;

							// 明細出力
							prcUwMap = new HashMap<String, String>();
							prcUwMap.put("siky_amnt", String.valueOf(pplanAmnti));
							prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmPlan);

							this.prcUwlist.add(prcUwMap);
							break;
						}
					}
				}
			}

			// 番号ポータビリティー番号数が存在し、"0"でない場合
			if (!isNullBlunk(bmpNoCnt) && (this.parseInteter(bmpNoCnt) > 0))
			{
				// 電話番号割当手数料情報を取得
				HashMap telWratInfo = this.getTmpPayPrc(TMP_PAY_PRC_NO_BMP);

				// 電話番号割当手数料を番号ポータビリティー番号数分加算する。
				for (int n = 0; n < this.parseInteter(bmpNoCnt); n++)
				{
					// 料金シミュレーション表示レベルの数だけ全角スペースを追加
					// 電話番号割当手数料を内訳リストに追加
					this.prcUwlist.add(
							this.createPrcUwMap(
									(String)telWratInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
									this.getSpaceString((String)telWratInfo.get(EKK1921B501CBSMsg1List.PRSIML_DSP_LV))
									+ (String)telWratInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));

					// 請求金額を加算(電話番号割当手数料)
					initEohSikyAmntGk = initEohSikyAmntGk
						+ this.parseInteter((String)telWratInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT));
				}
			}
		}

		// ＯＮＵ交換工事が"1":有の場合
		if ("1".equals(onuKknKojiUm))
		{
			initEohSikyAmntGk = addInitPrcSimulation(TMP_PAY_PRC_NO_210081026010, initEohSikyAmntGk);
		}

		// テレビ申込フラグが"1":申込の場合
		if (JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{

			// マンションのeo光テレビは契約事務手数料、加入契約料無し

			// eo光テレビ.標準工事費情報を取得
			HashMap tvHyojnkzhInfo = this.getTmpPayPrc(TMP_PAY_PRC_NO_MT_TV_HYOJNKZH);

			this.prcUwlist.add(this.createPrcUwMap((String)tvHyojnkzhInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
					(String)tvHyojnkzhInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));

			// 請求金額を加算(eo光テレビ.標準工事費)
			initEohSikyAmntGk = initEohSikyAmntGk + this.parseInteter((String)tvHyojnkzhInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT));

			boolean isFirstAddTvTyuna = true;

			// 料金サービス契約リストの件数分処理を実行する
			for (int n = 0; n < prcSvkeiList.size(); n++)
			{
				prcSvkeiMap = (HashMap)prcSvkeiList.get(n);

				pcrsCdKei = (String)prcSvkeiMap.get("pcrs_cd");
				pplanCdKei = (String)prcSvkeiMap.get("prc_plan_cd");

				// TAI-2012-0000136 メゾンの追加パターンを追記
				if ((JFUStrConst.CD00134_A39.equals(pcrsCdKei) && JFUStrConst.CD00565_PA3901.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4002.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4004.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A40.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4006.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4102.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4104.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A41.equals(pcrsCdKei) && JFUStrConst.CD00565_PA4106.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8602.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8604.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A86.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8606.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8702.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8704.equals(pplanCdKei))
						|| (JFUStrConst.CD00134_A87.equals(pcrsCdKei) && JFUStrConst.CD00565_PA8706.equals(pplanCdKei)))
				{

					if (isFirstAddTvTyuna)
					{
						isFirstAddTvTyuna = false;
						continue;
					}

					// チューナー追加設置工事費情報を取得
					HashMap tvTyunaAddJmkzhInfo = this.getTmpPayPrc(TMP_PAY_PRC_NO_ADD_STB_KZH);

					this.prcUwlist.add(
								this.createPrcUwMap(
										(String)tvTyunaAddJmkzhInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT),
										this.getSpaceString((String)tvTyunaAddJmkzhInfo.get(EKK1921B501CBSMsg1List.PRSIML_DSP_LV))
										+ (String)tvTyunaAddJmkzhInfo.get(EKK1921B501CBSMsg1List.PRSIML_PRC_DSP_NM)));

						// 請求金額を加算(チューナー追加設置工事費)
						initEohSikyAmntGk = initEohSikyAmntGk
								+ this.parseInteter((String)tvTyunaAddJmkzhInfo.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_AMNT));
				}
			}
		}

		// IP-STB申込台数が1台以上の場合
		if (Integer.parseInt(eoStickMskmCnt) > 0)
		{
			// 機器買取初期費用表示対応
			for (int i = 0; i < this.pplanIcrnList.size(); i++)
			{
				pplanIcrnMap = (HashMap)pplanIcrnList.get(i);

				pcrsCd = (String)pplanIcrnMap.get("pcrs_cd");
				pplanCd = (String)pplanIcrnMap.get("pplan_cd");
				pplanAmnt = (String)pplanIcrnMap.get("pplan_amnt");
				prsimlPrcDspNmPlan = (String)pplanIcrnMap.get("prsiml_prc_dsp_nm");
				prsimlPrcDspLvTmp = (String)pplanIcrnMap.get("prsiml_dsp_lv");

				if (isNullBlunk(pplanAmnt))
				{
					pplanAmnt = "0";
				}
				pplanAmnti = Integer.parseInt(pplanAmnt) * Integer.parseInt(eoStickMskmCnt);

				// 機器買取のみ初期費用に表示
				if (JFUStrConst.CD00134_CA3.equals(pcrsCd) && JFUStrConst.CD00565_PCA301.equals(pplanCd))
				{
					// データの切り替わりの場合、空白行を間に挟む
					if (this.prcUwlist.size() > 0)
					{
						prcUwMap = new HashMap<String, String>();
						prcUwMap.put("siky_amnt", "");
						prcUwMap.put("prc_uw_nm", "");

						this.prcUwlist.add(prcUwMap);
					}
					initEohSikyAmntGk = initEohSikyAmntGk + pplanAmnti;

					// 明細出力
					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("siky_amnt", String.valueOf(pplanAmnti));
					prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmPlan);

					this.prcUwlist.add(prcUwMap);
					break;
				}
			}
		}

		// ★割引／キャンペーン出力処理
		// 割引サービス単価リスト
		wribSvcTankaList = new ArrayList();

		wribSvcCd = "";
		wribSvcNm = "";
		wribSbtCdTanka = "";
		wribSvcCdSimu = "";
		seikyAmntSimu = "";
		spaceEnabled = true; // 空白フラグ（TRUE：ｽﾍﾟｰｽ出力）

		// ●各無料CPがある場合、内訳に文言を設定する
		if (muryoCpList.size() > 0)
		{
			if (spaceEnabled)
			{
				prcUwMap = new HashMap<String, String>();
				prcUwMap.put("siky_amnt", "");
				prcUwMap.put("prc_uw_nm", "");

				this.prcUwlist.add(prcUwMap);

				spaceEnabled = false;
			}

			this.prcUwlist.addAll(muryoCpList);
		}

		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < this.kkWribSvcList.size(); i++)
		{

			wribSvcInfoMap = (HashMap)this.kkWribSvcList.get(i);

			wribSvcCd = (String)wribSvcInfoMap.get("wrib_svc_cd");
			wribSvcNm = (String)wribSvcInfoMap.get("wrib_svc_nm");
			wribSvcTankaList = (ArrayList)wribSvcInfoMap.get("wrib_svc_tanka_list");

			output = 0; // 出力件数
			eohWribAmn = 0; // eo光割引料金
			mblWribAmn = 0; // eoモバイル割引料金
			eohKeiWribAmn = 0; // eo光割引料金（既契約分）
			mblKeiWribAmn = 0; // eoモバイル割引料金（既契約分）
			keiWribCnt = 0; // 既契約割引数

			// 即割り、ファミリーパック、インターネットサギウォールセット割
			// 上記の場合は次の繰り返し処理へ
			if (JFUStrConst.KK0841_WRIB_SVC_CD_SOKUWARI.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA.equals(wribSvcCd)
					|| JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA.equals(wribSvcCd))
			{
				continue;
			}

			// 割引サービス単価リストの件数分処理を実行する
			for (int n = 0; n < wribSvcTankaList.size(); n++)
			{
				wribSvcTankaInfoMap = (HashMap)wribSvcTankaList.get(n);

				wribSbtCdTanka = (String)wribSvcTankaInfoMap.get("wrib_sbt_cd");
				prcGrpCd = (String)wribSvcTankaInfoMap.get("prc_grp_cd");
				prcsCd = (String)wribSvcTankaInfoMap.get("pcrs_cd");
				prcKmkCd = (String)wribSvcTankaInfoMap.get("prc_kmk_cd");

				// 割引種別コードが"1":一時費用割引の場合
				if (WRIB_SBT_CD_TMP.equals(wribSbtCdTanka))
				{
					// シミュレーション結果リストの件数分処理を実行する
					amnt = new BigDecimal(0);
					for (int num = 0; num < this.acPrsimlRsltList.size(); num++)
					{
						waribikiMap = (HashMap)this.acPrsimlRsltList.get(num);

						wribSvcCdSimu = (String)waribikiMap.get("wrib_svc_cd");
						pcrsCdSimu = (String)waribikiMap.get("pcrs_cd");
						seikyAmntSimu = (String)waribikiMap.get("seiky_amnt");

						// 割引サービスリストの割引サービスコードとシミュレーション結果リストの割引サービスコードが一致しなかった場合、次のデータへ
						if (!wribSvcCd.equals(wribSvcCdSimu))
						{
							continue;
						}

						// 割引サービス単価リストの料金コースコードとシミュレーション結果リストの料金コースコードが一致しなかった場合、次のデータへ
						if (!prcsCd.equals(pcrsCdSimu))
						{
							continue;
						}

						// 請求金額を加算
						if (isNullBlunk(seikyAmntSimu))
						{
							seikyAmntSimu = "0";
						}

						amnt = new BigDecimal(seikyAmntSimu);

						if (JFUStrConst.CD00133_02.equals(prcGrpCd)
								|| JFUStrConst.CD00133_03.equals(prcGrpCd)
								|| JFUStrConst.CD00133_04.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(netMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(netKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(telMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(telKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_11.equals(prcGrpCd) || JFUStrConst.CD00133_12.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(tvMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(tvKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg))
							{
								keiEnabled = false;
							}
							else if (KEI_DIV_0.equals(mblWifiKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblEmMskmFlg))
							{
								keiEnabled = false;
							}

							if (KEI_DIV_0.equals(mblEmKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}
						else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
						{
							if (JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
							{
								keiEnabled = false;
							}

							if (KEI_DIV_0.equals(mblUqKeiDiv))
							{
								keiEnabled = true;
								keiWribCnt = keiWribCnt + 1;
							}
							else
							{
								continue;
							}
						}

						if ((JFUStrConst.CD00133_07.equals(prcGrpCd))
								|| (JFUStrConst.CD00133_08.equals(prcGrpCd))
								|| (JFUStrConst.CD00133_09.equals(prcGrpCd)))
						{
							// eoモバイルの場合、eoモバイルの割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								mblKeiWribAmn = mblKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								mblWribAmn = mblWribAmn + amnt.intValue();
							}
						}
						else
						{
							// 上記以外の場合、eo光の割引料金として加算
							if (keiEnabled)
							{
								// 既契約
								eohKeiWribAmn = eohKeiWribAmn + amnt.intValue();
							}
							else
							{
								// 新契約
								eohWribAmn = eohWribAmn + amnt.intValue();
							}
						}

						// 出力件数カウント
						output = output + 1;
					}
				}
			}

			// 出力ありなら追加する
			if (output > 0)
			{
				if (spaceEnabled && muryoCpList.size() == 0)
				{
					prcUwMap = new HashMap<String, String>();
					prcUwMap.put("prc_uw_nm", "");
					prcUwMap.put("prc_uw_nm", "");

					this.prcUwlist.add(prcUwMap);

					spaceEnabled = false;
				}

				// 既契約割引数が1件なら割引料金を加算する。
				if (keiWribCnt == 1)
				{
					mblWribAmn = mblWribAmn + mblKeiWribAmn;
					eohWribAmn = eohWribAmn + eohKeiWribAmn;
				}

				prcUwMap = new HashMap<String, String>();
				prcUwMap.put("siky_amnt", String.valueOf(eohWribAmn + mblWribAmn));
				prcUwMap.put("prc_uw_nm", wribSvcNm);
				prcUwMap.put("wrib_camp_cd", prcKmkCd);

				this.prcUwlist.add(prcUwMap);

				// eo光、eoモバイルを分けて金額を加算する。
				initEohSikyAmntGk = initEohSikyAmntGk + eohWribAmn;
				initMblSikyAmntGk = initMblSikyAmntGk + mblWribAmn;
			}
		}

		// 結果リストのセット
		prsimlRsltMap = new HashMap<String, String>();
		prsimlRsltMap.put("prc_dsp_bri_cd", "0");
		if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				|| JFUStrConst.CD00002_1.equals(telMskmFlg)
				|| JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", String.valueOf(initEohSikyAmntGk));
		}
		else
		{
			prsimlRsltMap.put("eoh_siky_amnt_gk", "");
		}

		if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg)
				|| JFUStrConst.CD00002_1.equals(mblEmMskmFlg)
				|| JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", String.valueOf(initMblSikyAmntGk));
		}
		else
		{
			prsimlRsltMap.put("mbl_siky_amnt_gk", "");
		}

		prsimlRsltMap.put("prc_uwlist", this.prcUwlist);

		this.prsimlRsltList.add(prsimlRsltMap);

		/*** 編集処理 ***/
		HashMap resultMap = null;

		int sikyAmntGki = 0;
		String prcUwNm = "";
		String sikyAmnt = "";
		String sikyAmntGk = "";
		String eohSikyAmntGk = "";
		String mblSikyAmntGk = "";
		String eoh_net_gtgk = "";
		boolean addFlag = false;

		ArrayList prcUwList = null;
		amnt = new BigDecimal(0);

		// 料金シミュレーション結果リストの件数分処理を実行する
		for (int i = 0; i < this.prsimlRsltList.size(); i++)
		{
			resultMap = (HashMap)this.prsimlRsltList.get(i);

			sikyAmntGki = 0;
			eohSikyAmntGk = (String)resultMap.get("eoh_siky_amnt_gk");
			mblSikyAmntGk = (String)resultMap.get("mbl_siky_amnt_gk");
			eoh_net_gtgk = (String)resultMap.get("eoh_net_gtgk");
			prcUwList = (ArrayList)resultMap.get("prc_uwlist");

			// 請求金額合計を算出
			if (!"".equals(eohSikyAmntGk))
			{
				// 計がマイナスなら0円とする。
				if (Integer.parseInt(eohSikyAmntGk) < 0)
				{
					eohSikyAmntGk = "0";
				}

				sikyAmntGki = sikyAmntGki + Integer.parseInt(eohSikyAmntGk);

				// フォーマット変換
				eohSikyAmntGk = JPCFomatString.formatNumber(eohSikyAmntGk);
			}

			// 月額料金（ご利用開始月）
			if (!isNullBlunk(eoh_net_gtgk))
			{
				// 計がマイナスなら0円とする。（例：全戸一括ＭＴでテレビサービス提供中に、ネット申込を行う場合。 業務上ありえるかは不明）
				if (Integer.parseInt(eoh_net_gtgk) < 0)
				{
					eoh_net_gtgk = "0";
				}
			}

			if (!"".equals(mblSikyAmntGk))
			{
				// 計がマイナスなら0円とする。
				if (Integer.parseInt(mblSikyAmntGk) < 0)
				{
					mblSikyAmntGk = "0";
				}

				sikyAmntGki = sikyAmntGki + Integer.parseInt(mblSikyAmntGk);

				// フォーマット変換
				mblSikyAmntGk = JPCFomatString.formatNumber(mblSikyAmntGk);
			}

			// 月額料金の計算
			if(i == 0 && mblWribAmnKei < 0)
			{
				sikyAmntGki = sikyAmntGki + mblWribAmnKei;
			}

			if(sikyAmntGki < 0)
			{
				sikyAmntGki = 0;
			}

			// フォーマット変換
			sikyAmntGk = JPCFomatString.formatNumber(String.valueOf(sikyAmntGki));

			resultMap.put("siky_amnt_gk", sikyAmntGk);
			resultMap.put("eoh_siky_amnt_gk", eohSikyAmntGk);
			resultMap.put("mbl_siky_amnt_gk", mblSikyAmntGk);
			resultMap.put("eoh_net_gtgk", eoh_net_gtgk);

			// 料金内訳リストの件数分処理を実行する
			for (int n = 0; n < prcUwList.size(); n++)
			{
				addFlag = false;

				prcUwMap = (HashMap)prcUwList.get(n);

				prcUwNm = (String)prcUwMap.get("prc_uw_nm");

				if (prcUwMap.get("siky_amnt") instanceof Integer)
				{
					sikyAmnt = String.valueOf(prcUwMap.get("siky_amnt"));
				}
				else
				{
					sikyAmnt = (String)prcUwMap.get("siky_amnt");
				}

				if (isNullBlunk(sikyAmnt))
				{
					if (isNullBlunk(prcUwNm))
					{
						continue;
					}

					sikyAmnt = "0";
				}

				amnt = new BigDecimal(sikyAmnt);

				if (amnt.intValue() < 0)
				{
					addFlag = true;
					amnt = new BigDecimal(amnt.intValue() * -1);
				}

				// 請求金額をフォーマット変換
				sikyAmnt = JPCFomatString.formatNumber(String.valueOf(amnt.intValue()));

				if (addFlag)
				{
					sikyAmnt = "▲" + sikyAmnt;
				}

				prcUwMap.put("siky_amnt", sikyAmnt);
			}
		}

		return param;
	}

	/* 2013/02/21 ANK-1222-00-00 Y.Saitou MOD */
	/**
	 * 料金シミュレーション注記リスト作成
	 * <br>
	 * @param inMap 料金シミュレーションマップ
	 * @param mansionId マンションID
	 * @param prsimlMsgPtnId メッセージパターンID
	 * @param prcSvkeiList サービス契約リスト
	 * @param msgIcrnList メッセージリスト
	 *
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void makePrcChukiList(HashMap inMap, String mansionId, String prsimlMsgPtnId, List prcSvkeiList, List msgIcrnList) throws Exception
	{

		String eohMsgPtnId = "0"; // eo光メッセージパターンID
		String eohMblMsgPtnId = "0"; // eoモバイルメッセージパターンID
		String tmpEohMsgPtnId = "0"; // eo光メッセージパターンID（ゼロパディング用）
		String mineoPtnId = JFUStrConst.S_ZERO; // mineoメッセージパターンID
		String tmpEohMblMsgPtnId = "0"; // eoモバイルメッセージパターンID（ゼロパディング用）
		String kosokuwariFinMsgPtnId = "0"; //高速割メッセージパターンID
		String tmpKosokuwariFinMsgPtnId = "0"; //高速割メッセージパターンID（ゼロパディング用）
// ANK-3437-00-00 ADD START
		String sokuwariMsgPtnId = "0"; //即割メッセージパターンID
		String tmpSokuwariMsgPtnId = "0"; //即割メッセージパターンID（ゼロパディング用）
// ANK-3437-00-00 ADD END
		String svtSkbtCd = "0"; // サービスタイプ識別コード
		String knyKykPayCd = "0"; // 加入方式支払方式コード

		String netMskmFlg = JFUStrConst.CD00002_0; // ネット申込フラグ
		String telMskmFlg = JFUStrConst.CD00002_0; // 電話申込フラグ
		String tvMskmFlg = JFUStrConst.CD00002_0; // テレビ申込フラグ
		String mblWifiMskmFlg = JFUStrConst.CD00002_0; // モバイルWi-Fi申込フラグ
		String mblEmMskmFlg = JFUStrConst.CD00002_0; // モバイルEM申込フラグ
		String mblUqMskmFlg = JFUStrConst.CD00002_0; // モバイルUQ申込フラグ
		String mineoMskmFlg = (String)inMap.get("from_mineo_flg"); // mineo申込フラグ
		String eoTvCourseBsStarMskmFlg = JFUStrConst.CD00002_0; // 「地デジ・BSコース　スターチャンネルセット」申込フラグ
		String eoelecDojiMskmIshiUm = (String)inMap.get("eoelec_doji_mskm_ishi_um"); // 「eo電気同時申込意思有無」
// ANK-3296-00-00 ADD START
		String stdardKojihiPayway = (String)inMap.get("stdard_kojihi_payway"); // 「標準工事費お支払い方法」
// ANK-3296-00-00 ADD END
		String tegakSvcMskmUm = (String)inMap.get("tegak_svc_mskm_um"); // 「定額サービス申込有無」
		String tegak4kSvcMskmUm = (String)inMap.get("tegak_4k_svc_mskm_um"); // 「定額４Ｋサービス申込有無」
		String prcGrpCd = ""; // 料金グループコード
		String pcrsCd = "";
		String pplanCd = "";
		String keiDiv = "";
// ANK-3437-00-00 ADD START
		String svcCd = "";
// ANK-3437-00-00 ADD END
		String prsimlMsgPtnIdFromMap = "";
		String svcTypeSkbtIdFromMap = "";
		String knyKykPayCdFromMap = "";
		String primlMsgBriCdFromMap = "";
		String prcDspBriCdFromMap = "";
		String prcSimlDspMongonFromMap = "";
		String eoTvCourseKbn = JFUStrConst.EMPTY;
		String tvPrcsCd =  JFUStrConst.EMPTY;

		boolean net100MLFlg = false;
		boolean tvCsCrsFlg = false;

		HashMap prcSvkeiMap = null;
		HashMap msgIcrnMap = null;
		HashMap retMap = null;

		// eo光スティック申込台数
		String eoStickMskmCnt = (String)inMap.get("eo_stick_mskm_cnt");
		if(JFUBPCommon.isNull(eoStickMskmCnt))
		{
			// 空の場合、0台とする
			eoStickMskmCnt = JFUStrConst.S_ZERO;
		}

		/*** 申込みサービスの抽出 ***/

		// 料金サービス契約リストの件数分処理を実行する
		for (int i = 0; i < this.prcSvkeiList.size(); i++)
		{
			prcSvkeiMap = (HashMap)prcSvkeiList.get(i);

			keiDiv = (String)prcSvkeiMap.get("kei_div");
			prcGrpCd = (String)prcSvkeiMap.get("prc_grp_cd");
			pcrsCd = (String)prcSvkeiMap.get("pcrs_cd");
			pplanCd = (String)prcSvkeiMap.get("prc_plan_cd");
			eoTvCourseKbn = (String)prcSvkeiMap.get(EO_TV_COURSE_KBN);

			// 契約区分が"1":新契約の場合
			if ("1".equals(keiDiv))
			{
				if (JFUStrConst.CD00133_02.equals(prcGrpCd)
						|| JFUStrConst.CD00133_03.equals(prcGrpCd)
						|| JFUStrConst.CD00133_04.equals(prcGrpCd))
				{
					netMskmFlg = JFUStrConst.CD00002_1;

					// 100ML選択フラグ
					if((JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0311.equals(pplanCd))
							|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0811.equals(pplanCd))
							|| (JFUStrConst.CD00134_A56.equals(pcrsCd) && JFUStrConst.CD00565_PA5611.equals(pplanCd)))
					{
						net100MLFlg = true;
					}
				}
				else if (JFUStrConst.CD00133_10.equals(prcGrpCd))
				{
					telMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_11.equals(prcGrpCd) || JFUStrConst.CD00133_12.equals(prcGrpCd))
				{
					tvMskmFlg = JFUStrConst.CD00002_1;
					tvPrcsCd = getTvUpperPcrsCd(tvPrcsCd, pcrsCd, pplanCd);
				}
				else if (JFUStrConst.CD00133_07.equals(prcGrpCd))
				{
					mblWifiMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_08.equals(prcGrpCd))
				{
					mblEmMskmFlg = JFUStrConst.CD00002_1;
				}
				else if (JFUStrConst.CD00133_09.equals(prcGrpCd))
				{
					mblUqMskmFlg = JFUStrConst.CD00002_1;
				}
			}

			// 「テレビ選択コース区分」が'3'（地デジ・BSコース　スターチャンネルセット)の場合
			if (JFUStrConst.EO_TV_COURSE_BS_STAR.equals(eoTvCourseKbn))
			{
				// 申し込みあり
				eoTvCourseBsStarMskmFlg = JFUStrConst.CD00002_1;
			}
		}

		// eo光メッセージパターンID
		if (isMsgPtnIdTvBsCmp(mansionId, tvPrcsCd, (String)inMap.get("mskm_ymd")))
		{
			// ホーム、メゾンタイプ（地デジ、ｽﾏｰﾄｺﾝﾊﾟｸﾄ）
			eohMsgPtnId = getMsgPtnIdTvBsCmp(netMskmFlg, telMskmFlg, tvMskmFlg);
		}
		else if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				&& JFUStrConst.CD00002_1.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_10;

			if(net100MLFlg)
			{
				eohMsgPtnId = PATTERN_ID_11;
			}
		}
		else if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				&& JFUStrConst.CD00002_1.equals(telMskmFlg)
				&& JFUStrConst.CD00002_0.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_20;

			if(net100MLFlg)
			{
				eohMsgPtnId = PATTERN_ID_21;
			}
		}
		else if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				&& JFUStrConst.CD00002_0.equals(telMskmFlg)
				&& JFUStrConst.CD00002_0.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_30;

			if(net100MLFlg)
			{
				eohMsgPtnId = PATTERN_ID_31;
			}
		}
		else if (JFUStrConst.CD00002_0.equals(netMskmFlg)
				&& JFUStrConst.CD00002_1.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_40;
		}
		else if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				&& JFUStrConst.CD00002_0.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_50;

			if(net100MLFlg)
			{
				eohMsgPtnId = PATTERN_ID_51;
			}
		}
		else if (JFUStrConst.CD00002_0.equals(netMskmFlg)
				&& JFUStrConst.CD00002_0.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_60;
		}
		else if (JFUStrConst.CD00002_0.equals(netMskmFlg)
				&& JFUStrConst.CD00002_1.equals(telMskmFlg)
				&& JFUStrConst.CD00002_0.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_100;
		}

		// eoモバイルメッセージパターンID
		if (JFUStrConst.CD00002_1.equals(mblWifiMskmFlg)
				&& JFUStrConst.CD00002_0.equals(mblEmMskmFlg)
				&& JFUStrConst.CD00002_0.equals(mblUqMskmFlg))
		{
			eohMblMsgPtnId = PATTERN_ID_70;
		}
		else if (JFUStrConst.CD00002_0.equals(mblWifiMskmFlg)
				&& JFUStrConst.CD00002_1.equals(mblEmMskmFlg)
				&& JFUStrConst.CD00002_0.equals(mblUqMskmFlg))
		{
			eohMblMsgPtnId = PATTERN_ID_80;
		}
		else if (JFUStrConst.CD00002_0.equals(mblWifiMskmFlg)
				&& JFUStrConst.CD00002_0.equals(mblEmMskmFlg)
				&& JFUStrConst.CD00002_1.equals(mblUqMskmFlg))
		{
			eohMblMsgPtnId = PATTERN_ID_90;
		}

		// mineoメッセージパターンID
		if(JFUStrConst.CD00002_1.equals(mineoMskmFlg))
		{
			mineoPtnId = PATTERN_ID_110;
		}
		// メッセージパターンID更新

		/* 2013/02/21 ANK-1222-00-00 Y.Saitou ADD-START */
		// eoスマートリンク申込注記文言表示有無
		String mobileSmlMongonDisp = (String)inMap.get("mobile_sml_mongon_disp");
		/* 2013/02/21 ANK-1222-00-00 Y.Saitou ADD-END */

		// 料金サービス契約リストの件数分処理を実行する
		for (int i = 0; i < prcSvkeiList.size(); i++)
		{
			prcSvkeiMap = (HashMap)prcSvkeiList.get(i);

			keiDiv = (String)prcSvkeiMap.get("kei_div");
			pcrsCd = (String)prcSvkeiMap.get("pcrs_cd");
			pplanCd = (String)prcSvkeiMap.get("prc_plan_cd");
// ANK-3437-00-00 ADD START
			svcCd = (String)prcSvkeiMap.get("svc_cd");
// ANK-3437-00-00 ADD END

			String chowari_mskm_um = "";
			String auto_keizoku_um = "";
// ANK-3437-00-00 ADD START
			String sokuWariUm = "";
// ANK-3437-00-00 ADD END

			if (!isNull(prcSvkeiMap.get("chowari_mskm_um")))
			{
				chowari_mskm_um = (String)prcSvkeiMap.get("chowari_mskm_um");
			}

			if (!isNull(prcSvkeiMap.get("auto_keizoku_um")))
			{
				auto_keizoku_um = (String)prcSvkeiMap.get("auto_keizoku_um");
			}

// ANK-3437-00-00 ADD START
			if (!isNull(prcSvkeiMap.get("soku_wari_um")))
			{
				sokuWariUm = (String)prcSvkeiMap.get("soku_wari_um");
			}
// ANK-3437-00-00 ADD END

			if ((JFUStrConst.CD00134_A86.equals(pcrsCd))
				|| (JFUStrConst.CD00134_A87.equals(pcrsCd)))
			{
				// スマートプレミアム／スマートベーシック
				tvCsCrsFlg = true;
			}

			if ("1".equals(keiDiv))
			{
				// 2012/11/29 文言対応
				eohMsgPtnId = eohMsgPtnId + this.getLastMsgPthId(mansionId, pcrsCd, pplanCd, chowari_mskm_um, auto_keizoku_um);

				if (JFUStrConst.CD00134_A59.equals(pcrsCd)
						&& JFUStrConst.CD00565_PA5901.equals(pplanCd))
				{
					eohMblMsgPtnId = eohMblMsgPtnId + "5901";
				}

				// 2012/11/22 ANK-1254-00-00 42Mの文言修正
				if (JFUStrConst.CD00134_A60.equals(pcrsCd)
						&& JFUStrConst.CD00565_PA6001.equals(pplanCd))
				{
					/* 2013/02/21 ANK-1222-00-00 Y.Saitou MOD-START */
					if (mobileSmlMongonDisp != null && JFUStrConst.CD00002_1.equals(mobileSmlMongonDisp)
							&& SMALIN_PRE_DSP_KBN_DSP.equals(this.smtLinkPrmKbn))
					{
						eohMblMsgPtnId = eohMblMsgPtnId + "6002";
					}
					else
					{
						eohMblMsgPtnId = eohMblMsgPtnId + "6001";
					}
					/* 2013/02/21 ANK-1222-00-00 Y.Saitou MOD-END */
				}
// ANK-3437-00-00 ADD START
				if (JFUStrConst.CD00130_01.equals(svcCd)
						&& JFUStrConst.NET_SOKUWARI_NOT_MSKM.equals(sokuWariUm))
				{
					if ((JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0301.equals(pplanCd))
						|| (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0801.equals(pplanCd)))
					{
						// ホーム100M または メゾン100M

						sokuwariMsgPtnId = PATTERN_ID_93;
					}
					else if ((JFUStrConst.CD00134_A05.equals(pcrsCd) && JFUStrConst.CD00565_PA0501.equals(pplanCd))
							|| (JFUStrConst.CD00134_A10.equals(pcrsCd) && JFUStrConst.CD00565_PA1001.equals(pplanCd))
							|| (JFUStrConst.CD00134_A91.equals(pcrsCd) && JFUStrConst.CD00565_PA9101.equals(pplanCd))
							|| (JFUStrConst.CD00134_A92.equals(pcrsCd) && JFUStrConst.CD00565_PA9201.equals(pplanCd)))
					{
						// ホーム1G または メゾン1G

						sokuwariMsgPtnId = PATTERN_ID_94;

					} else if ((JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
							|| (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
							|| (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
							|| (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
							|| (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
							|| (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
							|| (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd))
							|| (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd)))
					{
						// ホーム5G/10G または メゾン5G/10G

						sokuwariMsgPtnId = PATTERN_ID_95;
					}
				}
// ANK-3437-00-00 ADD END
				if (JFUStrConst.CD00130_01.equals(svcCd)
						&& ((JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
								|| (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
								|| (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
								|| (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
								|| (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd)) 
								|| (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd))))
				{
					// ホーム5G/10G または メゾン5G/10G

					kosokuwariFinMsgPtnId = PATTERN_ID_96;
				}
			}
		}

		// メッセージIDのゼロパディング
		tmpEohMsgPtnId = fillMoji(eohMsgPtnId, 8, false, "0");
		tmpEohMblMsgPtnId = fillMoji(eohMblMsgPtnId, 8, false, "0");
		tmpKosokuwariFinMsgPtnId = fillMoji(kosokuwariFinMsgPtnId, 8, false, "0");
// ANK-3437-00-00 ADD START
		tmpSokuwariMsgPtnId = fillMoji(sokuwariMsgPtnId, 8, false, "0");
// ANK-3437-00-00 ADD END

		eohMsgPtnId = tmpEohMsgPtnId;
		eohMblMsgPtnId = tmpEohMblMsgPtnId;
		kosokuwariFinMsgPtnId = tmpKosokuwariFinMsgPtnId;
// ANK-3437-00-00 ADD START
		sokuwariMsgPtnId = tmpSokuwariMsgPtnId;
// ANK-3437-00-00 ADD END
		// サービスタイプ識別コード
		if (isNull(mansionId) == false)
		{
			svtSkbtCd = JFUStrConst.CD01176_MF;
		}
		else
		{
			svtSkbtCd = JFUStrConst.CD01176_HF;
		}

		// 加入契約支払方式コード
		knyKykPayCd = prsimlMsgPtnId;
		if (knyKykPayCd == null)
		{
			knyKykPayCd = "";
		}

		knyKykPayCd = knyKykPayCd.trim();

		// メッセージ一覧リストの件数分処理を実行する
		for (int i = 0; i < msgIcrnList.size(); i++)
		{
			msgIcrnMap = (HashMap)msgIcrnList.get(i);

			prsimlMsgPtnIdFromMap = (String)msgIcrnMap.get("prsiml_msg_ptn_id");
			svcTypeSkbtIdFromMap = (String)msgIcrnMap.get("svc_type_skbt_cd");
			knyKykPayCdFromMap = (String)msgIcrnMap.get("kanyu_kei_pay_hoshiki_cd");

			if (knyKykPayCdFromMap == null)
			{
				knyKykPayCdFromMap = "";
			}

			knyKykPayCdFromMap = knyKykPayCdFromMap.trim();
			primlMsgBriCdFromMap = (String)msgIcrnMap.get("prsiml_msg_bri_cd");
			prcDspBriCdFromMap = (String)msgIcrnMap.get("prc_dsp_bri_cd");

			// TAI-2012-0000136 2012/12/04 文言がNULLの場合、空白を設定する。
			prcSimlDspMongonFromMap = this.convertNullToBlank((String)msgIcrnMap.get("prc_siml_dsp_mongon"));

			if (kosokuwariFinMsgPtnId.equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(0,retMap);
			}

// ANK-3437-00-00 ADD START
			if (sokuwariMsgPtnId.equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}
// ANK-3437-00-00 ADD END

			if (eohMsgPtnId.equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}

			// eo光スティック文言対応
			if(Integer.parseInt(eoStickMskmCnt) > 0 && fillMoji(PATTERN_ID_120, 8, false, "0").equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap) && knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}

			// 「地デジ・BSコース　スターチャンネルセット」文言対応
			if (JFUStrConst.CD00002_1.equals(eoTvCourseBsStarMskmFlg)
					&& fillMoji(PATTERN_ID_61, 8, false, "0").equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}
			// 「eo電気同時申込」文言対応
			if (JFUStrConst.CD00002_1.equals(eoelecDojiMskmIshiUm)
					&& JFUStrConst.CD00002_1.equals(netMskmFlg)
					&& fillMoji(PATTERN_ID_71, 8, false, "0").equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}

			// 「定額サービス申込有無」文言対応
			if (JFUStrConst.CD00002_1.equals(tegakSvcMskmUm)
					&& fillMoji(PATTERN_ID_72, 8, false, "0").equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}

			// 「定額４Ｋ＋テレビＣＳコース申込」文言対応
			if (JFUStrConst.CD00002_1.equals(tegak4kSvcMskmUm) && tvCsCrsFlg
					&& fillMoji(PATTERN_ID_73, 8, false, "0").equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}

// ANK-3296-00-00 ADD START
			// 「標準工事費お支払い方法」文言対応
			if (JFUStrConst.STDARD_KOJIHI_PAYWAY_IKT.equals(stdardKojihiPayway)
					&& fillMoji(PATTERN_ID_91, 8, false, "0").equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
// ANK-3951-00-00 ADD START
				String kojihiKap24Flg = (String)inMap.get("kojihi_kap_24_flg"); // 工事費割賦(24回)フラグ ※蓋開け用
				if(JFUStrConst.CD00002_1.equals(kojihiKap24Flg))
				{
					// 蓋開け以降は、ネット申込時のみ表示
					if( JFUStrConst.CD00002_1.equals(netMskmFlg) )
					{
						retMap = new HashMap<String, String>();
						
						retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
						retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
						retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

						prsimlMsgList.add(retMap);
					}
				}
				else
				{
// ANK-3951-00-00 ADD END
					// 蓋開け前の場合は従来の条件で表示
					retMap = new HashMap<String, String>();
		
					retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
					retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
					retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);
	
					prsimlMsgList.add(retMap);
					
// ANK-3951-00-00 ADD START
				}
// ANK-3951-00-00 ADD END
			}

			if (JFUStrConst.STDARD_KOJIHI_PAYWAY_BUNKATSU.equals(stdardKojihiPayway)
					&& fillMoji(PATTERN_ID_92, 8, false, "0").equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);
// ANK-4427-00-00 ADD START
				// 返却情報にパターンIDを追加する
				retMap.put("prc_siml_msg_ptn_id", prsimlMsgPtnIdFromMap);
// ANK-4427-00-00 ADD END
	
				prsimlMsgList.add(retMap);
			}
// ANK-3296-00-00 ADD END

			if (eohMblMsgPtnId.equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}
		}

		// mineoメッセージ取得処理
		if(!JFUStrConst.CD00002_1.equals(mineoMskmFlg))
		{
			return;
		}

		// 前0埋め
		mineoPtnId = fillMoji(mineoPtnId, 8, false, "0");

		// mineo同時申込の場合メッセージを取得する
		for (int i = 0; i < msgIcrnList.size(); i++)
		{
			msgIcrnMap = (HashMap)msgIcrnList.get(i);

			prsimlMsgPtnIdFromMap = (String)msgIcrnMap.get("prsiml_msg_ptn_id");
			svcTypeSkbtIdFromMap = (String)msgIcrnMap.get("svc_type_skbt_cd");
			knyKykPayCdFromMap = (String)msgIcrnMap.get("kanyu_kei_pay_hoshiki_cd");

			if (knyKykPayCdFromMap == null)
			{
				knyKykPayCdFromMap = "";
			}

			knyKykPayCdFromMap = knyKykPayCdFromMap.trim();
			primlMsgBriCdFromMap = (String)msgIcrnMap.get("prsiml_msg_bri_cd");
			prcDspBriCdFromMap = (String)msgIcrnMap.get("prc_dsp_bri_cd");

			// TAI-2012-0000136 2012/12/04 文言がNULLの場合、空白を設定する。
			prcSimlDspMongonFromMap = this.convertNullToBlank((String)msgIcrnMap.get("prc_siml_dsp_mongon"));

			if (mineoPtnId.equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				prsimlMsgList.add(retMap);
			}
		}
	}

	/**
	 * テレビの料金プランから、主契約の料金コースを取得します。
	 *
	 * <br>
	 * @param svPcrsCd 保存中の料金コースコード
	 * @param pcrsCd カレントの料金コースコード
	 * @param pplanCd カレントの料金プランコード
	 * @return 料金コースコード
	 */
	private String getTvUpperPcrsCd(String svPcrsCd, String pcrsCd, String pplanCd)
	{
		if (isNull(pplanCd))
		{
			return svPcrsCd;
		}
		if (TV_TOP_PLAN_CD.contains(pplanCd))
		{
			return pcrsCd;
		}
		return svPcrsCd;
	}
	/**
	 * 地デジ、ｽﾏｰﾄｺﾝﾊﾟｸﾄ申込でパターン設定を行うか判定します。
	 *
	 * <br>
	 * @param mansionId マンションID
	 * @param tvPrcsCd テレビの料金コースコード
	 * @param mskm_ymd 申込年月日
	 * @return true：パターン設定を行う
	 */
	private boolean isMsgPtnIdTvBsCmp(String mansionId, String tvPrcsCd, String mskm_ymd)
	{
		// eo光メッセージパターンID
		// ※「ホーム、メゾンタイプ、地デジ」については、[2017/06/30]までは、既存パターンで処理を行う
		if (!isNull(mansionId))
		{
			// マンションの場合
			return false;
		}
		// ホーム、メゾンタイプ
		if (JFUStrConst.CD00134_A85.equals(tvPrcsCd))
		{
			// スマートコンパクトの場合
			return true;
		}
		if (TV_BS_PCRS_CD.contains(tvPrcsCd)
			&& (JPCUtilCommon.isPastDate(CP_START_20170701, mskm_ymd, DOJITU_1)))
		{
			// 地デジ、スターチャンネルセット ※2017/07/01以降
			return true;
		}
		return false;
	}

	/**
	 * 地デジ、ｽﾏｰﾄｺﾝﾊﾟｸﾄ申込ので使用するeo光メッセージパターンIDを設定します。<br>
	 * 「料金シミュレーションメッセージ」を参照するKEYの生成に使用。
	 *
	 * <br>
	 * @param netMskmFlg ネット申込有無
	 * @param telMskmFlg 電話申込有無
	 * @param tvMskmFlg テレビ申込有無
	 * @return eo光メッセージパターンID
	 */
	private String getMsgPtnIdTvBsCmp(String netMskmFlg, String telMskmFlg, String tvMskmFlg)
	{

		String eohMsgPtnId = JFUStrConst.EMPTY;

		if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				&& JFUStrConst.CD00002_1.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_210;
		}
		else if (JFUStrConst.CD00002_0.equals(netMskmFlg)
				&& JFUStrConst.CD00002_1.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_240;
		}
		else if (JFUStrConst.CD00002_1.equals(netMskmFlg)
				&& JFUStrConst.CD00002_0.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_250;

		}
		else if (JFUStrConst.CD00002_0.equals(netMskmFlg)
				&& JFUStrConst.CD00002_0.equals(telMskmFlg)
				&& JFUStrConst.CD00002_1.equals(tvMskmFlg))
		{
			eohMsgPtnId = PATTERN_ID_260;
		}
		return eohMsgPtnId;
	}

	/**
	 * 料金シミュレーション備考メッセージ生成
	 *
	 * <br>
	 * @param inMap
	 * @param mansionId
	 * @param prsimlMsgPtnId
	 * @param prcSvkeiList
	 * @param msgIcrnList
	 */
	@SuppressWarnings("unchecked")
	private void makePrcBikoMsg(HashMap inMap, String mansionId, String prsimlMsgPtnId, List prcSvkeiList, List msgIcrnList)
	{
		String mineoPtnId = JFUStrConst.S_ZERO; // mineoメッセージパターンID
		String mineoMskmFlg = (String)inMap.get("from_mineo_flg"); // mineo申込フラグ

		HashMap msgIcrnMap = null;
		HashMap retMap = null;

		String prsimlMsgPtnIdFromMap = "";
		String svcTypeSkbtIdFromMap = "";
		String knyKykPayCdFromMap = "";
		String primlMsgBriCdFromMap = "";
		String prcDspBriCdFromMap = "";
		String prcSimlDspMongonFromMap = "";
		String svtSkbtCd = "0"; // サービスタイプ識別コード
		String knyKykPayCd = "0"; // 加入方式支払方式コード

		// mineoメッセージパターンID
		if(JFUStrConst.CD00002_1.equals(mineoMskmFlg))
		{
			mineoPtnId = PATTERN_ID_110;
		}

		// サービスタイプ識別コード
		if (isNull(mansionId) == false)
		{
			svtSkbtCd = JFUStrConst.CD01176_MF;
		}
		else
		{
			svtSkbtCd = JFUStrConst.CD01176_HF;
		}

		// 加入契約支払方式コード
		knyKykPayCd = prsimlMsgPtnId;
		if (knyKykPayCd == null)
		{
			knyKykPayCd = "";
		}

		knyKykPayCd = knyKykPayCd.trim();

		// mineoメッセージ取得処理
		if(!JFUStrConst.CD00002_1.equals(mineoMskmFlg))
		{
			return;
		}

		// 前0埋め
		mineoPtnId = fillMoji(mineoPtnId, 8, false, "0");

		// mineo同時申込の場合メッセージを取得する
		for (int i = 0; i < msgIcrnList.size(); i++)
		{
			msgIcrnMap = (HashMap)msgIcrnList.get(i);

			prsimlMsgPtnIdFromMap = (String)msgIcrnMap.get("prsiml_msg_ptn_id");
			svcTypeSkbtIdFromMap = (String)msgIcrnMap.get("svc_type_skbt_cd");
			knyKykPayCdFromMap = (String)msgIcrnMap.get("kanyu_kei_pay_hoshiki_cd");

			if (knyKykPayCdFromMap == null)
			{
				knyKykPayCdFromMap = "";
			}

			knyKykPayCdFromMap = knyKykPayCdFromMap.trim();
			primlMsgBriCdFromMap = (String)msgIcrnMap.get("prsiml_msg_bri_cd");
			prcDspBriCdFromMap = (String)msgIcrnMap.get("prc_dsp_bri_cd");

			// TAI-2012-0000136 2012/12/04 文言がNULLの場合、空白を設定する。
			prcSimlDspMongonFromMap = this.convertNullToBlank((String)msgIcrnMap.get("prc_siml_dsp_mongon"));

			if (mineoPtnId.equals(prsimlMsgPtnIdFromMap)
					&& svtSkbtCd.equals(svcTypeSkbtIdFromMap)
					&& knyKykPayCd.equals(knyKykPayCdFromMap))
			{
				retMap = new HashMap<String, String>();

				retMap.put("prsiml_msg_bri_cd", primlMsgBriCdFromMap);
				retMap.put("prc_dsp_bri_cd", prcDspBriCdFromMap);
				retMap.put("prc_siml_dsp_msg", prcSimlDspMongonFromMap);

				bikoMsgList.add(retMap);
			}
		}
	}

	/**
	 * 即割金額追加処理です。
	 * <br>
	 * @param inMap インマップ
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void addSokuwariAmnt(HashMap inMap) throws Exception
	{

		// 割引サービス単価リスト1
		List wribSvcTankaList = null;

		HashMap waribikiMap = null;
		HashMap wribSvcInfoMap = null;
		HashMap wribSvcTankaInfoMap = null;
		HashMap prcUwMap = null;

		String wribSvcCd = "";
		String wribSvcNm = "";
		String wribSbtCdTanka = "";
		String wribSvcCdSimu = "";
		String seikyAmntSimu = "";

		this.seikyAmntGk = 0;

		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < this.kkWribSvcList.size(); i++)
		{
			wribSvcInfoMap = (HashMap)this.kkWribSvcList.get(i);

			wribSvcCd = (String)wribSvcInfoMap.get("wrib_svc_cd");
			wribSvcNm = (String)wribSvcInfoMap.get("wrib_svc_nm");
			wribSvcTankaList = (ArrayList)wribSvcInfoMap.get("wrib_svc_tanka_list");

			// 割引サービスコードが即割の場合
			if (JFUStrConst.KK0841_WRIB_SVC_CD_SOKUWARI.equals(wribSvcCd))
			{
				// 割引サービス単価リストの件数分処理を実行する
				for (int n = 0; n < wribSvcTankaList.size(); n++)
				{
					wribSvcTankaInfoMap = (HashMap)wribSvcTankaList.get(n);

					wribSbtCdTanka = (String)wribSvcTankaInfoMap.get("wrib_sbt_cd");

					// 割引種別コードが"2":月額費用割引の場合
					if (WRIB_SBT_CD_MONTHLY.equals(wribSbtCdTanka))
					{
						for (int num = 0; num < this.acPrsimlRsltList.size(); num++)
						{
							waribikiMap = (HashMap)this.acPrsimlRsltList.get(num);

							wribSvcCdSimu = (String)waribikiMap.get("wrib_svc_cd");

							if (wribSvcCdSimu == null)
							{
								wribSvcCdSimu = "";
							}

							if ("99999999".equals(wribSvcCdSimu))
							{
								// 初期費用CPの場合、次のループへ
								continue;
							}

							if(!wribSvcCd.equals(wribSvcCdSimu))
							{
								// 割引サービスコードが異なる場合、次のループへ
								continue;
							}

							seikyAmntSimu = (String)waribikiMap.get("seiky_amnt");

							// 請求金額を加算
							if (isNullBlunk(seikyAmntSimu))
							{
								seikyAmntSimu = "0";
							}

							BigDecimal amnt = new BigDecimal(seikyAmntSimu);

							if (wribSvcCd.equals(wribSvcCdSimu))
							{
								prcUwMap = new HashMap<String, String>();
								prcUwMap.put("siky_amnt", String.valueOf(amnt.intValue()));
								prcUwMap.put("prc_uw_nm", ZENSPACE + wribSvcNm);
								prcUwMap.put("wrib_svc_cd", "W00000021");

								this.prcUwlist.add(prcUwMap);
							}

							// 即割金額を設定する。
							this.seikyAmntGk = amnt.intValue();

							return;
						}
					}
				}
			}
		}
	}

	/**
	 * 長割(新長割)金額追加処理です。
	 * <br>
	 * @param inMap インマップ
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void addChowariAmnt(HashMap inMap, String pcrsCd, String pplanCd) throws Exception
	{
		// 長割(新長割)額取得処理(料金シミュレーション4段表示時の3年目以降の金額用)
		// 3年目以降の金額のため、請求金額には加算しない

		// ●＜料金シミュレーション＞一覧照会
		CAANMsg template = new CAANMsg(EAC0281B010CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, "EAC0281B010");
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_02);
		template.set(EAC0281B010CBSMsg.KEY_PRC_KMK_CD, "S1200300101");
		template.set(EAC0281B010CBSMsg.KEY_SYS_CD, "AC");
		template.set(EAC0281B010CBSMsg.KEY_PRC_SVC_CD, "            ");
		template.set(EAC0281B010CBSMsg.KEY_PCRS_CD, pcrsCd);

		/* SC呼出実行 */
		Map<?, ?> result = scCall(template);
		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EAC0281B010CBSMsg.EAC0281B010CBSMSG1LIST);

		if (outMsgLst != null && outMsgLst.length > 0)
		{
			for (CAANMsg msg : outMsgLst)
			{
				HashMap<String, String> prcUwMap = new HashMap<String, String>();
				String amnt = msg.getString(EAC0281B010CBSMsg1List.PRC);

				prcUwMap.put("siky_amnt", String.valueOf(amnt));
				prcUwMap.put("gamenDispFlg", "0");
				prcUwMap.put("wrib_svc_cd", "W00000041");
				this.prcUwlist.add(prcUwMap);
			}
		}
	}

	/**
	 * SC呼出 <br>
	 *
	 * @param template テンプレート
	 * @return Map<?, ?> ＳＣ呼出結果
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<?, ?> scCall(CAANMsg template) throws Exception
	{

		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, parameter.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, parameter.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, parameter.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, parameter.getCallType());

		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, parameter.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, parameter.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, parameter.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, parameter.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		CAANMsg[] templates = new CAANMsg[1];

		// 運用日付
		template.set(JCMConstants.OPERATE_DATE_KEY, parameter.getControlMapData(SCControlMapKeys.OPE_DATE));
		// 運用日時
		template.set(JCMConstants.OPERATE_DATETIME_KEY, parameter.getControlMapData(SCControlMapKeys.OPE_TIME));

		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		/* ◇ＳＣ呼出実行 */
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map<?, ?> result = scCall.run(paramMap, sessionHandle);

		return result;
	}

	/**
	 * 指定された桁数まで充填します。 <br>
	 *
	 * @param arg0 編集する文字列
	 * @param arg1 編集する長さ
	 * @param arg2 左右判断フラグ
	 * @param arg3 充填する文字
	 * @return String 編集した文字列を返却
	 */
	private static String fillMoji(String arg0, int arg1, boolean arg2, String arg3)
	{

		if (isNull(arg0))
		{
			return "";
		}

		if (arg1 <= 0)
		{
			return "";
		}

		String strRep = arg0;

		if (arg0.length() < arg1)
		{
			StringBuffer buf = new StringBuffer(arg0);

			if (arg2)
			{
				for (int i = buf.length(); i < arg1; i++)
				{
					buf.append(arg3);
				}
			}
			else
			{
				for (int i = buf.length(); i < arg1; i++)
				{
					buf.insert(0, arg3);
				}
			}

			strRep = buf.toString();
		}

		return strRep;
	}

	/**
	 * オブジェクトに値が設定されているか判定します。 <br>
	 *
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	protected static boolean isNull(Object arg0)
	{
		if (arg0 == null)
		{
			return true;
		}

		return 0 == arg0.toString().length();
	}

	/**
	 * null又は空文字の場合はtrue、そうでない場合はfalse
	 *
	 * @param chkstr
	 * @return 結果
	 */
	private boolean isNullBlunk(Object chkstr)
	{
		if (chkstr == null || chkstr.equals(""))
		{
			return true;
		}

		return false;
	}

	/**
	 * マンション一時支払一覧リストから、指定した一時支払料金番号の一時支払料金情報を取得する。
	 *
	 * @param tmpPayPrcNo 一時支払料金番号
	 * @return 一時支払料金情報
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, HashMap> getTmpPayPrc(String tmpPayPrcNo)
	{

		// 一時支払料金番号が指定されていない場合
		if (isNullBlunk(tmpPayPrcNo))
		{
			return null;
		}

		// マンション一時金支払一覧リスト
		Iterator ite = this.tmpyPrcIcrnList.iterator();

		while (ite.hasNext())
		{
			HashMap tmpMap = (HashMap)ite.next();

			String targetTmpPayPrcNo = tmpMap.get(EKK1921B501CBSMsg1List.TMP_PAY_PRC_NO).toString();

			if (isNullBlunk(targetTmpPayPrcNo))
			{
				continue;
			}

			// 一時支払料金番号が一致した場合
			if (targetTmpPayPrcNo.equals(tmpPayPrcNo))
			{
				return tmpMap;
			}
		}

		// 取得できなかった場合
		return new HashMap<String, HashMap>();
	}

	/**
	 * eo光ネットの標準工事費の一時金支払料金番号を取得する。(マンション用)
	 *
	 * @param inMap 料金シミュレーションマップ
	 * @return 一時金支払料金番号
	 */
	@SuppressWarnings("unchecked")
	private String getNetStdardKojihiNo(HashMap inMap)
	{

		// 料金シミュレーションマップが設定されていない場合、または、料金シミュレーションマップに提供方式パターンコードが設定されていない場合
		if (inMap == null || !inMap.containsKey("teikyo_hoshiki_ptn_cd"))
		{
			return null;
		}

		// 提供方式パターンコードを取得
		String teikyoHoushikiPtnCd = (String)inMap.get("teikyo_hoshiki_ptn_cd");

		// 提供方式パターンコードがNULL、または、空白の場合
		if (isNullBlunk(teikyoHoushikiPtnCd))
		{
			return null;
		}

		// VDSLモデムプランを取得
		String vdslModemPlan = (String)inMap.get("vdsl_modem_plan");

		// 提供方式パターンコードがVDSLの場合
		if (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(teikyoHoushikiPtnCd))
		{

			// VDSLモデムプランが買取の場合
			if (JFUStrConst.MODEM_PLAN_KAITORI.equals(vdslModemPlan))
			{
				return TMP_PAY_PRC_NO_MN_VDSL_KT_KZH;
			}
			// VDSLモデムプランがレンタルの場合
			else
			{
				return TMP_PAY_PRC_NO_MN_VDSL_RT_KZH;
			}
		}
		// 提供方式パターンコードがVDSL-Sの場合
		else if (JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(teikyoHoushikiPtnCd))
		{
			// VDSLモデムプランが買取の場合
			if (JFUStrConst.MODEM_PLAN_KAITORI.equals(vdslModemPlan))
			{
				return TMP_PAY_PRC_NO_MN_VDSLS_KT_KZH;
			}
			// VDSLモデムプランがレンタルの場合
			else
			{
				return TMP_PAY_PRC_NO_MN_VDSLS_RT_KZH;
			}
		}
		// 提供方式パターンコードがイーサー、または、ギガイーサーの場合
		else if (JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyoHoushikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyoHoushikiPtnCd))
		{
			return TMP_PAY_PRC_NO_MN_ETHER_KZH;
		}
		// 提供方式パターンコードが光配線の場合
		else if (JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(teikyoHoushikiPtnCd))
		{
			return TMP_PAY_PRC_NO_MN_HIKARI_KZH;
		}
		// 提供方式パターンコードが不明の場合
		else
		{
			return null;
		}
	}

	/**
	 *
	 * eo光電話の標準工事費の一時金支払料金番号を取得する。(マンション用)
	 *
	 * @param inMap 料金シミュレーションマップ
	 * @return 一時金支払料金番号
	 */
	@SuppressWarnings("unchecked")
	private String getTelStdardKojihiNo(HashMap inMap)
	{

		// 料金シミュレーションマップが設定されていない、または、料金シミュレーションマップに提供方式パターンコードが設定されていない場合
		if (inMap == null || !inMap.containsKey("teikyo_hoshiki_ptn_cd"))
		{
			return null;
		}

		// 提供方式パターンコードを取得
		String teikyoHoushikiPtnCd = (String)inMap.get("teikyo_hoshiki_ptn_cd");

		// 提供方式パターンコードがNULL、または、空白の場合
		if (isNullBlunk(teikyoHoushikiPtnCd))
		{
			return null;
		}

		// VDSLモデムプラン
		String vdslModemPlan = (String)inMap.get("vdsl_modem_plan");

		// 提供方式パターンコードがVDSLの場合
		if (JFUStrConst.TK_HOSHIKI_PTN_VDSL.equals(teikyoHoushikiPtnCd))
		{

			// VDSLモデムプランが買取の場合
			if (JFUStrConst.MODEM_PLAN_KAITORI.equals(vdslModemPlan))
			{
				return TMP_PAY_PRC_NO_MTEL_VDSLKT_KZH;
			}
			// VDSLモデムプランがレンタルの場合
			else
			{
				return TMP_PAY_PRC_NO_MTEL_VDSLRT_KZH;
			}
		}
		// 提供方式パターンコードがVDSL-Sの場合
		else if (JFUStrConst.TK_HOSHIKI_PTN_VDSLS.equals(teikyoHoushikiPtnCd))
		{
			// VDSLモデムプランが買取の場合
			if (JFUStrConst.MODEM_PLAN_KAITORI.equals(vdslModemPlan))
			{
				return TMP_PAY_PRC_NO_MTEL_VDSLSKTKZH;
			}
			// VDSLモデムプランがレンタルの場合
			else
			{
				return TMP_PAY_PRC_NO_MTEL_VDSLSRTKZH;
			}
		}
		// 提供方式パターンコードがイーサー、または、ギガイーサーの場合
		else if (JFUStrConst.TK_HOSHIKI_PTN_ENET.equals(teikyoHoushikiPtnCd) || JFUStrConst.TK_HOSHIKI_PTN_GG_ENET.equals(teikyoHoushikiPtnCd))
		{
			return TMP_PAY_PRC_NO_MTEL_ETHER_KZH;
		}
		// 提供方式パターンコードが光配線の場合
		else if (JFUStrConst.TK_HOSHIKI_PTN_HIKARI_HAISEN.equals(teikyoHoushikiPtnCd))
		{
			return TMP_PAY_PRC_NO_MTEL_HIKARI_KZH;
		}
		// 提供方式パターンコードが不明の場合
		else
		{
			return null;
		}
	}

	/**
	 * 料金シミュレーションマップからマンションIDを取得する。
	 * @param inMap 料金シミュレーションマップ
	 * @return マンションID
	 */
	@SuppressWarnings("unchecked")
	private String getMansionId(HashMap inMap)
	{
		// 料金シミュレーションマップが設定されていない、または、料金シミュレーションマップにマンションIDが設定されていない場合
		if (inMap == null || !inMap.containsKey("mansion_id"))
		{
			return null;
		}

		// マンションIDを返却
		return (String)inMap.get("mansion_id");
	}

	/**
	 * 料金シミュレーション保持リストを初期化する。
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ文字列
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void initializeSaveList(IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// 料金内訳リスト
		this.prcUwlist = new ArrayList<Map<String, String>>();
		// 料金サービス契約リスト
		this.prcSvkeiList = new ArrayList<Map<String, String>>();
		// 初期費用条件一覧リスト
		this.shkhJokenIcrnList = new ArrayList<Map<String, String>>();
		// 一時支払料金一覧リスト
		this.tmpyPrcIcrnList = new ArrayList<Map<String, String>>();
		// 料金プラン一覧リスト
		this.pplanIcrnList = new ArrayList<Map<String, String>>();
		// メッセージ一覧リスト
		this.msgIcrnList = new ArrayList<Map<String, String>>();
		// 契約Ｓ割引サービスリスト
		this.kkWribSvcList = new ArrayList();
		// 料金Ｓシミュレーション結果リスト
		this.acPrsimlRsltList = new ArrayList();
		// 料金シミュレーション結果リスト
		this.prsimlRsltList = new ArrayList<Map<String, String>>();
		// 料金シミュレーション注記リスト
		this.prsimlMsgList = new ArrayList<Map<String, String>>();
		// スマートリンク情報リスト
		this.smartLinkInfoList = new ArrayList<Map<String, String>>();
		// スマートリンク結果リスト
		this.smartLinkRsltList = new ArrayList<Map<String, String>>();
// ANK-3217-00-00 ADD START
		// GH結果リスト
		this.ghRsltList = new ArrayList<Map<String, String>>();
// ANK-3217-00-00 ADD END
		// 割引メッセージリスト
		this.wribMsgList = new ArrayList<Map<String, String>>();
		// 割引メッセージ結果リスト
		this.wribMsgRsltList = new ArrayList<Map<String, String>>();

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);

		// inMapに設定がある場合のみ変数にセットする
		if (inMap.get("prc_svkei_list") != null)
		{
			// 料金サービス契約リスト
			this.prcSvkeiList = (ArrayList)inMap.get("prc_svkei_list");
		}
		if (inMap.get("shkh_joken_icrn_list") != null)
		{
			// 初期費用条件一覧リスト
			this.shkhJokenIcrnList = (ArrayList)inMap.get("shkh_joken_icrn_list");
		}
		if (inMap.get("tmpy_prc_icrn_list") != null)
		{
			// 一時支払料金一覧リスト
			this.tmpyPrcIcrnList = (ArrayList)inMap.get("tmpy_prc_icrn_list");
		}
		if (inMap.get("pplan_icrn_list") != null)
		{
			// 料金プラン一覧リスト
			this.pplanIcrnList = (ArrayList)inMap.get("pplan_icrn_list");
		}
		if (inMap.get("msg_icrn_list") != null)
		{
			// メッセージ一覧リスト
			this.msgIcrnList = (ArrayList)inMap.get("msg_icrn_list");
		}
		if (inMap.get("kkei_svc_list") != null)
		{
			// 既契約サービスリスト
			this.kkeiSvcList = (ArrayList)inMap.get("kkei_svc_list");
		}
		if (inMap.get(SMARTLINK_INFO_LIST) != null)
		{
			// スマートリンク情報リスト
			this.smartLinkInfoList = (ArrayList)inMap.get(SMARTLINK_INFO_LIST);
		}
		if (inMap.get(SMARTLINK_RSLT_LIST) != null)
		{
			// スマートリンク結果リスト
			this.smartLinkRsltList = (ArrayList)inMap.get(SMARTLINK_RSLT_LIST);
		}
// ANK-3217-00-00 ADD START
		if (inMap.get(GH_RSLT_LIST) != null)
		{
			// GH結果リスト
			this.ghRsltList = (ArrayList)inMap.get(GH_RSLT_LIST);
		}
// ANK-3217-00-00 ADD END
		if (inMap.get(WRIB_MSG_LIST) != null)
		{
			// 割引メッセージリスト
			this.wribMsgList = (ArrayList)inMap.get(WRIB_MSG_LIST);
		}
		if (inMap.get(WRIB_MSG_RSLT_LIST) != null)
		{
			// 割引メッセージ結果リスト
			this.wribMsgRsltList = (ArrayList)inMap.get(WRIB_MSG_RSLT_LIST);
		}
	}

	/**
	 * 同一請求先サービス契約情報を設定します。
	 *
	 * <br>
	 * @param param
	 * @param fixedText
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void setSameSeikyKeiSvcList(IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 申込回線サービス
		String mskmKsnSvc = (String)inMap.get("mskm_ksn_svc");
		// 現在のサービス契約回線内訳番号
		String nowSvcKeiKaisenUwNo = (String)inMap.get("now_svc_kei_kaisen_ucwk_no");
		// マンションタイプ
		String mskmMnsType = (String)inMap.get("mskm_mns_type");

		// 同一請求のサービス契約情報リスト
		if (!JFUStrConst.CD00731_0.equals((String)inMap.get("payway_continue")) && !JFUBPCommon.isNull((String)inMap.get("hktgi_seiky_kei_no")))
		{
			// ●サービス契約一覧照会（同一請求先回線情報取得）
			CAANMsg template = new CAANMsg(EKK0081B028CBSMsg.class.getName());
			// テンプレートID
			template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0081B028);
			template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
			template.set(EKK0081B028CBSMsg.KEY_SEIKY_KEI_NO, (String)inMap.get("hktgi_seiky_kei_no"));
			// SC実行
			Map<?, ?> scResult = scCall(template);
			// 明細取得
			CAANMsg[] templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
			CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EKK0081B028CBSMsg.EKK0081B028CBSMSG1LIST);

			// 既契約ネット判定
			boolean kikeiyakuNet = false;
			if(outMsgLst != null && outMsgLst.length > 0)
			{
				for (int i = 0; i < outMsgLst.length; i++)
				{
					CAANMsg msg = outMsgLst[i];

					// 同回線の情報でない場合、次へ
					String svcKeiKaisenUwNo = msg.getString(EKK0081B028CBSMsg1List.KK0241_SVC_KEI_KAISEN_UCWK_NO);
					if(!JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && !nowSvcKeiKaisenUwNo.equals(svcKeiKaisenUwNo))
					{
						continue;
					}

					// 既契約にネットがある場合、TRUEを設定する
					String prcGrpCd = msg.getString(EKK0081B028CBSMsg1List.KK0081_PRC_GRP_CD);
					if(JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd) || JFUStrConst.CD00133_04.equals(prcGrpCd))
					{
						kikeiyakuNet = true;
					}
				}
			}

			// サービス契約情報をリストに格納する
			int netCnt = 0;
			if(outMsgLst != null && outMsgLst.length > 0)
			{
				for (int i = 0; i < outMsgLst.length; i++)
				{
					CAANMsg msg = outMsgLst[i];
					HashMap childMap = new HashMap();

					String prcGrpCd = msg.getString(EKK0081B028CBSMsg1List.KK0081_PRC_GRP_CD);

					// 同回線の情報でない場合、次へ
					String svcKeiKaisenUwNo = msg.getString(EKK0081B028CBSMsg1List.KK0241_SVC_KEI_KAISEN_UCWK_NO);
					if(!(JFUStrConst.CD00133_07.equals(prcGrpCd) || JFUStrConst.CD00133_08.equals(prcGrpCd) || JFUStrConst.CD00133_09.equals(prcGrpCd))
							&& !JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && !nowSvcKeiKaisenUwNo.equals(svcKeiKaisenUwNo))
					{
						continue;
					}

					// 扱う対象サービスを判定
					if(kikeiyakuNet
							&& !(JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd) || JFUStrConst.CD00133_04.equals(prcGrpCd)))
					{
						// ネットの情報のみ料金シミュレーション内で扱うので、ネット以外の情報は対象外とする
						// 逆に、既契約にネットが無い場合は、全て対象とする
						continue;
					}

					// モバイル単独申込でネット以外のサービスは対象外とする
					if(JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc)
							&& !(JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd) || JFUStrConst.CD00133_04.equals(prcGrpCd)))
					{
						continue;
					}
					// モバイル単独申込で同請求先ににネットの契約が複数ある場合、1つだけ対象とする
					// ネットのみ対象となる為、処理を終了する
					if(JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) && netCnt >= 1)
					{
						break;
					}

					// ネットをカウントする
					if(JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd) || JFUStrConst.CD00133_04.equals(prcGrpCd))
					{
						netCnt++;
					}

					childMap.put("kei_div", "0");
					childMap.put("seiky_kei_no", SEIKYU_KEIYAKU_DEF);
					childMap.put("svc_kei_kaisen_ucwk_no", msg.getString(EKK0081B028CBSMsg1List.KK0241_SVC_KEI_KAISEN_UCWK_NO));
					childMap.put("svc_kei_no", msg.getString(EKK0081B028CBSMsg1List.KK0081_SVC_KEI_NO));
					childMap.put("svc_kei_stat", msg.getString(EKK0081B028CBSMsg1List.KK0081_SVC_KEI_STAT));
					childMap.put("svc_cd", msg.getString(EKK0081B028CBSMsg1List.KK0081_SVC_CD));
					childMap.put("prc_grp_cd", msg.getString(EKK0081B028CBSMsg1List.KK0081_PRC_GRP_CD));
					childMap.put("pcrs_cd", msg.getString(EKK0081B028CBSMsg1List.KK0081_PCRS_CD));
					childMap.put("prc_plan_cd", msg.getString(EKK0081B028CBSMsg1List.KK0081_PPLAN_CD));
					childMap.put("famipa_kei_um", "0");
					childMap.put("soku_wari_um", "0");

					if(JFUBPCommon.isNull(msg.getString(EKK0081B028CBSMsg1List.KK0241_SVC_KEI_KAISEN_UCWK_NO)))
					{
						childMap.put("svc_kei_kaisen_ucwk_no", "000000000000");
					}

					// HDコースを変換
					if(JFUStrConst.CD00134_A39.equals(msg.getString(EKK0081B028CBSMsg1List.KK0081_PCRS_CD)) ||
						JFUStrConst.CD00134_A38.equals(msg.getString(EKK0081B028CBSMsg1List.KK0081_PCRS_CD)))
					{
						if("1".equals(mskmMnsType))
						{
							// マンション
							childMap.put("pcrs_cd", JFUStrConst.CD00134_A40);
							childMap.put("prc_plan_cd", JFUStrConst.CD00565_PA4003);
						}
						else if("2".equals(mskmMnsType))
						{
							// メゾン
							childMap.put("pcrs_cd", JFUStrConst.CD00134_A40);
							childMap.put("prc_plan_cd", JFUStrConst.CD00565_PA4005);
						}
						else
						{
							// ホーム
							childMap.put("pcrs_cd", JFUStrConst.CD00134_A40);
							childMap.put("prc_plan_cd", JFUStrConst.CD00565_PA4001);
						}
					}

					this.sameSeikySvcList.add(childMap);
				}
			}
		}
	}

	/**
	 * 同一利用場所サービス契約情報を取得し設定します。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void getSameKaisenSvcKeiInfo(IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// ユーザデータ情報
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 申込区分2
		String mskmKbn2 = (String)inMap.get("mskm_kbn_2");
		// SYSID
		String sysid = (String)inMap.get("sysid");
		// 現在のサービス契約回線内訳番号
		String nowSvcKeiKaisenUwNo = (String)inMap.get("now_svc_kei_kaisen_ucwk_no");
		// マンションタイプ
		String mskmMnsType = (String)inMap.get("mskm_mns_type");
		// 支払方法引継
		String paywayContinue = (String)inMap.get("payway_continue");

		// 支払方法引継が「引継」の場合、実行しない
		if(JFUStrConst.CD00731_1.equals(paywayContinue))
		{
			return;
		}

		// キー項目に値が設定されていない場合、実行しない
		if(JFUBPCommon.isNull(sysid))
		{
			return;
		}

		// SC情報設定変数
		CAANMsg template = null;
		CAANMsg[] templates = null;
		CAANMsg[] outMsgLst = null;
		Map<?, ?> scResult = null;

		// ■モバイルのサービス契約情報を取得する
		ArrayList mbList = new ArrayList();
		// ●サービス契約一覧照会（SYSID）3
		template = new CAANMsg(EKK0081B519CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0081B011);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		template.set(EKK0081B519CBSMsg.KEY_SYSID, sysid);
		// SC実行
		scResult = scCall(template);
		// 明細取得
		templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0081B519CBSMsg.EKK0081B519CBSMSG1LIST);

		// サービス契約情報をリストに格納する
		if(outMsgLst != null && outMsgLst.length > 0)
		{
			boolean sameMbFlg = false;
			for (int i = 0; i < outMsgLst.length; i++)
			{
				CAANMsg msg = outMsgLst[i];
				HashMap childMap = new HashMap();

				// サービス契約ステータスが「解約済・キャンセル済」の場合、次へ
				String svcKeiStat = msg.getString(EKK0081B519CBSMsg1List.SVC_KEI_STAT);
				if(JFUStrConst.CD00037_910.equals(svcKeiStat) || JFUStrConst.CD00037_920.equals(svcKeiStat))
				{
					continue;
				}

				// 料金グループコードがモバイル以外の場合は次へ
				String prcGrpCd = msg.getString(EKK0081B519CBSMsg1List.PRC_GRP_CD);
				if(!(JFUStrConst.CD00133_07.equals(prcGrpCd) || JFUStrConst.CD00133_08.equals(prcGrpCd)
						|| JFUStrConst.CD00133_09.equals(prcGrpCd)))
				{
					continue;
				}

				// 仮登録後対応
				// 申込サービスと既契約サービスで同じサービスの場合、除外する
				if("2".equals(mskmKbn2) && !sameMbFlg)
				{
					String pcrsCd = msg.getString(EKK0081B519CBSMsg1List.PCRS_CD);
					String pplanCd = msg.getString(EKK0081B519CBSMsg1List.PPLAN_CD);

					for (int j = 0; j < this.prcSvkeiList.size(); j++)
					{
						HashMap svcKeiMap = (HashMap)this.prcSvkeiList.get(j);
						String svcKeiPcrsCd = (String)svcKeiMap.get("pcrs_cd");
						String svcKeiPplanCd = (String)svcKeiMap.get("prc_plan_cd");
						if(pcrsCd.equals(svcKeiPcrsCd) && pplanCd.equals(svcKeiPplanCd))
						{
							sameMbFlg = true;
							break;
						}
					}
				}
				if(sameMbFlg)
				{
					continue;
				}

				// サービス情報設定
				childMap.put("kei_div", "0");
				childMap.put("seiky_kei_no", SEIKYU_KEIYAKU_DEF);
				childMap.put("svc_kei_kaisen_ucwk_no", "000000000000");
				childMap.put("svc_kei_no", msg.getString(EKK0081B519CBSMsg1List.SVC_KEI_NO));
				childMap.put("svc_kei_stat", msg.getString(EKK0081B519CBSMsg1List.SVC_KEI_STAT));
				childMap.put("svc_cd", msg.getString(EKK0081B519CBSMsg1List.SVC_CD));
				childMap.put("prc_grp_cd", msg.getString(EKK0081B519CBSMsg1List.PRC_GRP_CD));
				childMap.put("pcrs_cd", msg.getString(EKK0081B519CBSMsg1List.PCRS_CD));
				childMap.put("prc_plan_cd", msg.getString(EKK0081B519CBSMsg1List.PPLAN_CD));
				childMap.put("famipa_kei_um", "0");
				childMap.put("soku_wari_um", "0");

				mbList.add(childMap);
			}
		}

		// キー項目に値が設定されていない場合、実行しない
		if(JFUBPCommon.isNull(sysid) || JFUBPCommon.isNull(nowSvcKeiKaisenUwNo))
		{
			if(mbList != null && mbList.size() > 0)
			{
				this.sameKaisenSvcList.addAll(mbList);
			}

			return;
		}

		// ■回線系サービス契約情報を取得する
		ArrayList kaisenSvcList = new ArrayList();
		// SC情報設定変数
		template = null;
		templates = null;
		outMsgLst = null;
		scResult = null;

		// ●同一利用場所サービス契約一覧照会
		template = new CAANMsg(EKK0081B011CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0081B011);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		template.set(EKK0081B011CBSMsg.KEY_SYSID, sysid);
		template.set(EKK0081B011CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, nowSvcKeiKaisenUwNo);
		// SC実行
		scResult = scCall(template);
		// 明細取得
		templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0081B011CBSMsg.EKK0081B011CBSMSG1LIST);

		// サービス契約情報をリストに格納する
		if(outMsgLst != null && outMsgLst.length > 0)
		{
			for (int i = 0; i < outMsgLst.length; i++)
			{
				CAANMsg msg = outMsgLst[i];
				HashMap childMap = new HashMap();

				// サービス契約ステータスが「解約済・キャンセル済」の場合、次へ
				String svcKeiStat = msg.getString(EKK0081B011CBSMsg1List.SVC_KEI_STAT);
				if(JFUStrConst.CD00037_910.equals(svcKeiStat) || JFUStrConst.CD00037_920.equals(svcKeiStat))
				{
					continue;
				}

				// 仮登録後対応
				// 申込サービスと既契約サービスで同じサービスが存在する場合、そのサービスを除外する
				boolean sameFlg = false;
				if("2".equals(mskmKbn2))
				{
					String prcGrpCd = msg.getString(EKK0081B011CBSMsg1List.PRC_GRP_CD);
					for (int j = 0; j < this.prcSvkeiList.size(); j++)
					{
						HashMap svcKeiMap = (HashMap)this.prcSvkeiList.get(j);
						String svcKeiPrcGrpCd = (String)svcKeiMap.get("prc_grp_cd");

						if (prcGrpCd.equals(svcKeiPrcGrpCd))
						{
							sameFlg = true;
							break;
						}
					}
				}
				if(sameFlg)
				{
					continue;
				}

				// サービス情報設定
				childMap.put("kei_div", "0");
				childMap.put("seiky_kei_no", SEIKYU_KEIYAKU_DEF);
				childMap.put("svc_kei_kaisen_ucwk_no", msg.getString(EKK0081B011CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
				childMap.put("svc_kei_no", msg.getString(EKK0081B011CBSMsg1List.SVC_KEI_NO));
				childMap.put("svc_kei_stat", msg.getString(EKK0081B011CBSMsg1List.SVC_KEI_STAT));
				childMap.put("svc_cd", msg.getString(EKK0081B011CBSMsg1List.SVC_CD));
				childMap.put("prc_grp_cd", msg.getString(EKK0081B011CBSMsg1List.PRC_GRP_CD));
				childMap.put("pcrs_cd", msg.getString(EKK0081B011CBSMsg1List.PCRS_CD));
				childMap.put("prc_plan_cd", msg.getString(EKK0081B011CBSMsg1List.PPLAN_CD));
				childMap.put("famipa_kei_um", "0");
				childMap.put("soku_wari_um", "0");

				// HDコースを変換
				if(JFUStrConst.CD00134_A39.equals(msg.getString(EKK0081B011CBSMsg1List.PCRS_CD)) ||
					JFUStrConst.CD00134_A38.equals(msg.getString(EKK0081B011CBSMsg1List.PCRS_CD)))
				{
					if("1".equals(mskmMnsType))
					{
						// マンション
						childMap.put("pcrs_cd", JFUStrConst.CD00134_A40);
						childMap.put("prc_plan_cd", JFUStrConst.CD00565_PA4003);
					}
					else if("2".equals(mskmMnsType))
					{
						// メゾン
						childMap.put("pcrs_cd", JFUStrConst.CD00134_A40);
						childMap.put("prc_plan_cd", JFUStrConst.CD00565_PA4005);
					}
					else
					{
						// ホーム
						childMap.put("pcrs_cd", JFUStrConst.CD00134_A40);
						childMap.put("prc_plan_cd", JFUStrConst.CD00565_PA4001);
					}
				}

				kaisenSvcList.add(childMap);
			}
		}

		// ●既契約ネット判定＆情報設定
		boolean kikeiyakuNet = false;
		if(kaisenSvcList != null && kaisenSvcList.size() > 0)
		{
			for (int i = 0; i < kaisenSvcList.size(); i++)
			{
				HashMap childMap = (HashMap)kaisenSvcList.get(i);
				String prcGrpCd = (String)childMap.get("prc_grp_cd");

				if(JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd) || JFUStrConst.CD00133_04.equals(prcGrpCd))
				{
					// 既契約にネットがある場合、TRUEを設定する
					kikeiyakuNet = true;

					// 既契約にネットがある場合、ネットの情報だけ使用する
					this.sameKaisenSvcList = new ArrayList();
					this.sameKaisenSvcList.add(childMap);
					break;
				}
				else
				{
					this.sameKaisenSvcList.add(childMap);
				}
			}
		}

		// 既契約にネットがなくモバイル契約がある場合、回線系サービス情報とモバイル契約情報を渡す
		if(!kikeiyakuNet && mbList != null && mbList.size() > 0)
		{
			this.sameKaisenSvcList.addAll(mbList);
		}
	}

	/**
	 * モバイル単独申込時で既契約サービス情報を取得し、必要情報を設定します
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void setSvcKeiListForMbOnly(IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// ユーザデータ情報
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 申込回線サービス
		String mskmKsnSvc = (String)inMap.get("mskm_ksn_svc");

		// モバイル単独申し込みでない、既契約リストが存在しない場合、実行しない
		if(!JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) || this.kkeiSvcList == null || this.kkeiSvcList.size() == 0)
		{
			return;
		}

		// 必要情報を設定
		for (int i = 0; i < this.kkeiSvcList.size(); i++)
		{
			HashMap kkeiMap = (HashMap)this.kkeiSvcList.get(i);

			// ネットが存在する場合、ネット(1つ)だけの情報をリストに設定する
			String prcGrpCd = (String)kkeiMap.get("prc_grp_cd");
			if(JFUStrConst.CD00133_02.equals(prcGrpCd) || JFUStrConst.CD00133_03.equals(prcGrpCd) || JFUStrConst.CD00133_04.equals(prcGrpCd))
			{
				this.mbKaisenSvcList.add(kkeiMap);
				break;
			}
		}
	}

	/**
	 * ネットモバイルセット割(別場所)取得処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @return 結果
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getWribInfoAnotherPlace(IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// 結果リスト
		ArrayList resultList = new ArrayList();

		// ユーザデータ情報
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 申込区分
		String mskmKbn = (String)inMap.get("mskm_kbn");
		// SYSID
		String sysid = (String)inMap.get("sysid");
		// 支払方法引継
		String paywayContinue = (String)inMap.get("payway_continue");
		// 引継請求契約番号
		String hktgSeikyKeiNo = (String)inMap.get("hktgi_seiky_kei_no");

		// 選択サービス情報
		String selNet = (String)inMap.get("select_svc_net");
		String mbcrs = (String)inMap.get("mobile_course");
		String mskmKsnSvc = (String)inMap.get("mskm_ksn_svc");

		// 同一回線：ネット契約状況
		String keiSvcNet = (String)inMap.get("kei_svc_net");

		if(JFUBPCommon.isNull(sysid) || !JFUStrConst.MSKM_KBN_ADD.equals(mskmKbn))
		{
			// SYSIDなし || 追加契約以外の場合、処理をしない
			return resultList;
		}

		if(JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(mskmKsnSvc) || "1".equals(selNet) || "1".equals(keiSvcNet) || "0".equals(mbcrs))
		{
			// モバイル単独 || ネット選択有り || 同一回線にネット有り || モバイル選択なしの場合、処理をしない
			return resultList;
		}

		// ネット料金グループリスト(ホーム・メゾン・マンション)
		List<String> netList = Arrays.asList(JFUStrConst.CD00133_02, JFUStrConst.CD00133_03, JFUStrConst.CD00133_04);
		// モバイルリスト
		List<String> embList = Arrays.asList(JFUStrConst.CD00133_07, JFUStrConst.CD00133_08, JFUStrConst.CD00133_08, JFUStrConst.CD00133_09);

		// 契約依頼(共通情報)マップ
		Map<String, Object> keiyakuCommonMap = new HashMap<String, Object>();
		// 契約依頼リスト
		List<Map<String, Object>> keiyakuIraiList = new ArrayList<Map<String, Object>>();
		// 契約依頼マップ
		HashMap keiyakuIraiSvcMap = null;
		// 契約依頼マップ
		Map<String, Object> keiyakuIraiMap = new HashMap<String, Object>();

		String idoDiv = (String)inMap.get("ido_div");
		String mskmSbtCd = (String)inMap.get("mskm_sbt_cd");
		String mskmFormCd = (String)inMap.get("mskm_form_cd");
		ArrayList wribSvcCdList = (ArrayList)inMap.get("wrib_svc_cd_list");
		String sokuwari = (String)inMap.get("net_sokuwari");
		String famipa = (String)inMap.get("net_famipa");

		if(JFUBPCommon.isNull(sokuwari))
		{
			// 即割情報が設定されていない場合、無しを設定
			sokuwari = "0";
		}
		if(JFUBPCommon.isNull(famipa))
		{
			// ファミパ情報が設定されていない場合、無しを設定
			famipa = "0";
		}

		// SC情報設定変数

		// ●請求契約一覧照会（SYSID）
		CAANMsg template = new CAANMsg(EKK0491B005CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0491B005);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_2);
		template.set(EKK0491B005CBSMsg.KEY_SYSID, sysid);
		// SC実行
		Map<?, ?> scResult = scCall(template);
		// 明細取得
		CAANMsg[] templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EKK0491B005CBSMsg.EKK0491B005CBSMSG1LIST);

		if(outMsgLst == null || outMsgLst.length == 0)
		{
			// 取得できなかった場合、処理を終了する
			return resultList;
		}

		// ネットサービスコード
		String netSvcCd = JFUStrConst.EMPTY;
		// ネット料金グループコード
		String netPrcGrpCcd = JFUStrConst.EMPTY;
		// ネット料金コースコード
		String netPcrsCd = JFUStrConst.EMPTY;
		// ネット料金プランコード
		String netPplanCd = JFUStrConst.EMPTY;

		for (int i = 0; i < outMsgLst.length; i++)
		{
			CAANMsg msg = outMsgLst[i];

			// サービス契約ステータスが「解約済・キャンセル済」の場合、次へ
			String svcKeiStat = msg.getString(EKK0491B005CBSMsg1List.SVC_KEI_STAT);
			if(JFUStrConst.CD00037_910.equals(svcKeiStat) || JFUStrConst.CD00037_920.equals(svcKeiStat))
			{
				continue;
			}

			// サービス契約番号
			String svcKeiNo = msg.getString(EKK0491B005CBSMsg1List.SVC_KEI_NO);
			// 料金グループコード
			String prcGrpCd = msg.getString(EKK0491B005CBSMsg1List.PRC_GRP_CD);
			// 請求契約番号
			String seikyKeiNo = msg.getString(EKK0491B005CBSMsg1List.SEIKY_KEI_NO);

			if(JFUStrConst.EMPTY.equals(paywayContinue) && netList.contains(prcGrpCd))
			{
				// ★支払方法引継有無未決定の場合

				// SC情報設定変数
				template = null;
				templates = null;
				CAANMsg[] svcKeiList = null;
				scResult = null;

				// ●サービス契約一意照会
				template = new CAANMsg(EKK0081A010CBSMsg.class.getName());
				// テンプレートID
				template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0081A010);
				template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_2);
				template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
				template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
				// SC実行
				scResult = scCall(template);
				// 明細取得
				templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
				svcKeiList = templates[0].getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);

				for (int j = 0; j < svcKeiList.length; j++)
				{
					CAANMsg msg2 = svcKeiList[j];

					netSvcCd = msg2.getString(EKK0081A010CBSMsg1List.SVC_CD);
					netPrcGrpCcd = msg2.getString(EKK0081A010CBSMsg1List.PRC_GRP_CD);
					netPcrsCd = msg2.getString(EKK0081A010CBSMsg1List.PCRS_CD);
					netPplanCd = msg2.getString(EKK0081A010CBSMsg1List.PPLAN_CD);
				}

				break;
			}
			else if(JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(paywayContinue) && netList.contains(prcGrpCd)
					&& hktgSeikyKeiNo.equals(seikyKeiNo))
			{
				// ★支払方法引き継ぐ場合

				// SC情報設定変数
				template = null;
				templates = null;
				CAANMsg[] svcKeiList = null;
				scResult = null;

				// ●サービス契約一意照会
				template = new CAANMsg(EKK0081A010CBSMsg.class.getName());
				// テンプレートID
				template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0081A010);
				template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_2);
				template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
				template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
				// SC実行
				scResult = scCall(template);
				// 明細取得
				templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
				svcKeiList = templates[0].getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);

				for (int j = 0; j < svcKeiList.length; j++)
				{
					CAANMsg msg2 = svcKeiList[j];

					netSvcCd = msg2.getString(EKK0081A010CBSMsg1List.SVC_CD);
					netPrcGrpCcd = msg2.getString(EKK0081A010CBSMsg1List.PRC_GRP_CD);
					netPcrsCd = msg2.getString(EKK0081A010CBSMsg1List.PCRS_CD);
					netPplanCd = msg2.getString(EKK0081A010CBSMsg1List.PPLAN_CD);
				}

				break;
			}
			else
			{
				continue;
			}
		}

		if(JFUBPCommon.isNull(netSvcCd) || JFUBPCommon.isNull(netPrcGrpCcd)
				|| JFUBPCommon.isNull(netPcrsCd) || JFUBPCommon.isNull(netPplanCd))
		{
			// 値が設定されていない場合、処理を終了する
			return resultList;
		}

		if(this.prcSvkeiList == null || this.prcSvkeiList.size() == 0)
		{
			// 選択サービスが存在しない場合、処理を終了する
			return resultList;
		}

		for (int i = 0; i < this.prcSvkeiList.size(); i++)
		{
			HashMap prcSvkeiMap = (HashMap)this.prcSvkeiList.get(i);
			String svcCd = (String)prcSvkeiMap.get("svc_cd");
			String prcGrpCd = (String)prcSvkeiMap.get("prc_grp_cd");
			String pcrsCd = (String)prcSvkeiMap.get("pcrs_cd");
			String pplanCd = (String)prcSvkeiMap.get("prc_plan_cd");

			if(embList.contains(prcGrpCd))
			{
				keiyakuIraiSvcMap = new HashMap<String, Object>();

				keiyakuIraiSvcMap.put("seky_kei_no", "0000000000");
				keiyakuIraiSvcMap.put("kaisen_kei_no", "000000000000");
				keiyakuIraiSvcMap.put("sokuwari_um", sokuwari);
				keiyakuIraiSvcMap.put("family_pack_um", famipa);
				keiyakuIraiSvcMap.put("svc_cd", svcCd);
				keiyakuIraiSvcMap.put("prc_grp_cd", prcGrpCd);
				keiyakuIraiSvcMap.put("pcrs_cd", pcrsCd);
				keiyakuIraiSvcMap.put("pplan_cd", pplanCd);
				keiyakuIraiSvcMap.put("op_svc_list", new ArrayList());
				keiyakuIraiSvcMap.put("sbop_svc_list", new ArrayList());
				keiyakuIraiSvcMap.put("seiopsvc_list", new ArrayList());
				keiyakuIraiSvcMap.put("kktk_svc_list", new ArrayList());

				// シミュレーション依頼リストに追加
				keiyakuIraiList.add(keiyakuIraiSvcMap);
				break;
			}
		}

		if(keiyakuIraiList == null || keiyakuIraiList.size() == 0)
		{
			// 依頼リストが存在しない場合、処理を終了する
			return resultList;
		}

		// ネット
		keiyakuIraiSvcMap = new HashMap<String, Object>();
		keiyakuIraiSvcMap.put("seky_kei_no", "0000000000");
		keiyakuIraiSvcMap.put("kaisen_kei_no", "000000000000");
		keiyakuIraiSvcMap.put("sokuwari_um", sokuwari);
		keiyakuIraiSvcMap.put("family_pack_um", famipa);
		keiyakuIraiSvcMap.put("svc_cd", netSvcCd);
		keiyakuIraiSvcMap.put("prc_grp_cd", netPrcGrpCcd);
		keiyakuIraiSvcMap.put("pcrs_cd", netPcrsCd);
		keiyakuIraiSvcMap.put("pplan_cd", netPplanCd);
		keiyakuIraiSvcMap.put("op_svc_list", new ArrayList());
		keiyakuIraiSvcMap.put("sbop_svc_list", new ArrayList());
		keiyakuIraiSvcMap.put("seiopsvc_list", new ArrayList());
		keiyakuIraiSvcMap.put("kktk_svc_list", new ArrayList());

		// シミュレーション依頼リストに追加
		keiyakuIraiList.add(keiyakuIraiSvcMap);

		keiyakuCommonMap.put("ido_div", idoDiv);
		keiyakuCommonMap.put("mskm_sbt_cd", mskmSbtCd);
		keiyakuCommonMap.put("mskm_form_cd", mskmFormCd);
		keiyakuCommonMap.put("svc_info_list", keiyakuIraiList);
		keiyakuCommonMap.put("wrib_svc_cd_list", wribSvcCdList);

		keiyakuIraiMap.put("common_info", keiyakuCommonMap);
		parameter.setData("JKKPrcSimulation", keiyakuIraiMap);

		/*** 契約CC呼出 ***/
		try
		{
			JKKBpCommon.simulationWribSvc(sessionHandle, parameter, "JKKPrcSimulation");
		}
		catch (Throwable th)
		{
			JSYejbLog.println(JSYejbLog.ERROR, this.getClass(), PARTS_ERR_MSG, null, null, null);
			JSYejbLog.printStackTrace(JSYejbLog.ERROR, this.getClass(), th, null, null);
		}

		HashMap outMap = (HashMap)parameter.getData("JKKPrcSimulation");

		if (outMap == null || !outMap.containsKey("common_info"))
		{
			return resultList;
		}

		HashMap common_infoMap = (HashMap)outMap.get("common_info");
		if (common_infoMap == null || !common_infoMap.containsKey("wrib_svc_list"))
		{
			return resultList;
		}

		ArrayList wribSvcList = (ArrayList)common_infoMap.get("wrib_svc_list");
		this.kkWribSvcList.addAll((ArrayList)common_infoMap.get("wrib_svc_list"));

		// 割引サービスMap
		HashMap wribSvcCdMap = new HashMap();
		// 割引サービスMap生成
		if (wribSvcCdList != null)
		{
			for (Object map : wribSvcCdList)
			{
				wribSvcCdMap.put(((Map)map).get("wrib_svc_cd"), "");
			}
		}

		/*** 料金CCに渡すINパラメータを設定 ***/
		// シミュレーション依頼リスト
		List<Map<String, String>> iraiList = new ArrayList<Map<String, String>>();
		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < wribSvcList.size(); i++)
		{
			HashMap wribSvcMap = (HashMap)wribSvcList.get(i);

			ArrayList wribsvcTankaList = (ArrayList)wribSvcMap.get("wrib_svc_tanka_list");
			String wribSvcCd = (String)wribSvcMap.get("wrib_svc_cd");

			// 割引サービス単価リストの件数分処理を実行する
			for (int n = 0; n < wribsvcTankaList.size(); n++)
			{
				HashMap wribsvcTankaMap = (HashMap)wribsvcTankaList.get(n);

				String pplanCd = (String)wribsvcTankaMap.get("pplan_cd");

				// シミュレーション依頼リストとの突合せをし不要な割引サービスを除外する。
				for (int m = 0; m < keiyakuIraiList.size(); m++)
				{
					keiyakuIraiSvcMap = (HashMap)keiyakuIraiList.get(m);

					// ●セット割
					if (JFUStrConst.KK0841_WRIB_SVC_CD_NETMOBILE_SET.equals(wribSvcCd))
					{
						// 料金プランコードが合致する場合
						if (pplanCd.equals((String)keiyakuIraiSvcMap.get("pplan_cd")))
						{
							for (int k = 0; k < 2; k++)
							{
								// シミュレーション依頼リストに追加
								iraiList.add(this.createWrbkIraiMap1(wribSvcMap, wribsvcTankaMap, keiyakuIraiSvcMap, k));
							}
						}
					}
				}
			}
		}

		// 結果リストに設定
		resultList.addAll(iraiList);

		return resultList;
	}

	/**
	 * 基本情報取得モードかどうかを判定する。
	 *
	 * @param funcCd 機能コード
	 * @return 判定結果
	 */
	private boolean isGetBaseInfoMode(String funcCd)
	{
		// 機能コードが"0":料金シミュレーション、かつ初期費用条件一覧リスト、一時支払料金一覧リスト、
		// 料金プラン一覧リスト、メッセージ一覧リスト、マンション一時支払料金一覧リストが１件でも存在した場合、料金シミュレーション処理を行う
		if (FUNC_CODE_KEY_00.equals(funcCd)
				&& (this.shkhJokenIcrnList.size() > 0
						|| this.tmpyPrcIcrnList.size() > 0
						|| this.pplanIcrnList.size() > 0
						|| this.msgIcrnList.size() > 0))
		{
			return false;
		}

		return true;
	}

	/**
	 * 指定した文字列が数値でない場合、0を返却する。数値の場合、数値に変換して返却する。
	 * @param amnt String型の金額
	 * @return Integerに変換した金額
	 */
	private Integer parseInteter(String amnt)
	{
		try
		{
			Integer.parseInt(amnt);
		}
		catch (NumberFormatException nfe)
		{
			return 0;
		}

		return Integer.parseInt(amnt);
	}

	/**
	 * 指定した料金シミュレーション表示レベルの数の全角スペースを取得する。
	 * @param prsimlPrcDspLvTmp 料金シミュレーション表示レベル
	 * @return 全角スペース
	 */
	private String getSpaceString(String prsimlPrcDspLvTmp)
	{
		// 料金シミュレーション表示レベルの数だけ全角スペースを追加
		String spaceAdd = "";

		try
		{
			Integer.parseInt(prsimlPrcDspLvTmp);
		}
		catch(NumberFormatException nfe)
		{
			prsimlPrcDspLvTmp = "0";
		}

		for (int num = 0; num < Integer.parseInt(prsimlPrcDspLvTmp); num++)
		{
			spaceAdd = spaceAdd + ZENSPACE;
		}

		return spaceAdd;
	}

	/**
	 * 内訳リスト追加用のHashMapを生成する。
	 * @param sikyAmnt 金額
	 * @param prcUwNm 表示文言
	 * @return 内訳リスト追加用HashMap
	 */
	@SuppressWarnings("unchecked")
	private HashMap createPrcUwMap(String sikyAmnt, String prcUwNm)
	{
		HashMap prcUwMap = new HashMap<String, String>();
		// 金額
		prcUwMap.put("siky_amnt", this.parseInteter((String)sikyAmnt));
		// 表示文言
		prcUwMap.put("prc_uw_nm", prcUwNm);

		return prcUwMap;
	}

	/**
	 * 内訳リスト(割引キャンペーン)追加用のHashMapを生成する。
	 *
	 * @param sikyAmnt 金額
	 * @param prcUwNm 表示文言
	 * @param wribCampCd 割引キャンペーンコード
	 * @return 内訳リスト追加用HashMap
	 */
	@SuppressWarnings("unchecked")
	private HashMap createPrcUwMapForWribCamp(String sikyAmnt, String prcUwNm, String wribCampCd)
	{
		HashMap prcUwMap = new HashMap<String, String>();

		// 金額
		prcUwMap.put("siky_amnt", this.parseInteter((String)sikyAmnt));
		// 表示文言
		prcUwMap.put("prc_uw_nm", prcUwNm);
		// 割引キャンペーンコード
		prcUwMap.put("wrib_camp_cd", wribCampCd);

		return prcUwMap;
	}

	/**
	 * 自動継続のメッセージパターンIDを取得します。
	 * <br>
	 * @param mansionId マンションID
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param chowari_mskm_um 長割有無
	 * @param auto_keizoku_um 自動継続有無
	 * @return メッセージパターンID
	 */
	private String getLastMsgPthId(String mansionId, String pcrsCd, String pplanCd, String chowari_mskm_um, String auto_keizoku_um)
	{

		// マンションの場合、自動継続は無し
		if (!isNullBlunk(mansionId))
		{
			return "";
		}

		// 長割が申し込まれていない場合、自動継続は無し
		if (!JFUStrConst.NET_CHOWARI_MSKM.equals(chowari_mskm_um))
		{
			return "";
		}

		// メッセージパターンIDフラグ
		boolean isAddLastMsgPthId = false;

		// ホーム100M
		if (JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0301.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// ホーム200M
		else if (JFUStrConst.CD00134_A07.equals(pcrsCd) && JFUStrConst.CD00565_PA0701.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// ホーム1G
		else if (JFUStrConst.CD00134_A05.equals(pcrsCd) && JFUStrConst.CD00565_PA0501.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// ホーム100ML
		else if (JFUStrConst.CD00134_A03.equals(pcrsCd) && JFUStrConst.CD00565_PA0311.equals(pplanCd))
		{
			isAddLastMsgPthId = false;
		}
		// ホーム10G
		else if (JFUStrConst.CD00134_A83.equals(pcrsCd) && JFUStrConst.CD00565_PA8301.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// ホーム5G
		else if (JFUStrConst.CD00134_A89.equals(pcrsCd) && JFUStrConst.CD00565_PA8901.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン100M
		else if (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0801.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン200M
		else if (JFUStrConst.CD00134_A11.equals(pcrsCd) && JFUStrConst.CD00565_PA1101.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン1G
		else if (JFUStrConst.CD00134_A10.equals(pcrsCd) && JFUStrConst.CD00565_PA1001.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン100ML
		else if (JFUStrConst.CD00134_A08.equals(pcrsCd) && JFUStrConst.CD00565_PA0811.equals(pplanCd))
		{
			isAddLastMsgPthId = false;
		}
		// メゾン10G
		else if (JFUStrConst.CD00134_A84.equals(pcrsCd) && JFUStrConst.CD00565_PA8401.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン5G
		else if (JFUStrConst.CD00134_A90.equals(pcrsCd) && JFUStrConst.CD00565_PA9001.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// ホーム1G Netflixパック
		else if (JFUStrConst.CD00134_A91.equals(pcrsCd) && JFUStrConst.CD00565_PA9101.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// ホーム5G Netflixパック
		else if (JFUStrConst.CD00134_A93.equals(pcrsCd) && JFUStrConst.CD00565_PA9301.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// ホーム10G Netflixパック
		else if (JFUStrConst.CD00134_A95.equals(pcrsCd) && JFUStrConst.CD00565_PA9501.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン1G Netflixパック
		else if (JFUStrConst.CD00134_A92.equals(pcrsCd) && JFUStrConst.CD00565_PA9201.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン5G Netflixパック
		else if (JFUStrConst.CD00134_A94.equals(pcrsCd) && JFUStrConst.CD00565_PA9401.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		// メゾン10G Netflixパック
		else if (JFUStrConst.CD00134_A96.equals(pcrsCd) && JFUStrConst.CD00565_PA9601.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
// ANK-4427-00-00 ADD START
		else if (JFUStrConst.CD00134_AA0.equals(pcrsCd) && JFUStrConst.CD00565_PAA001.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		else if (JFUStrConst.CD00134_AA1.equals(pcrsCd) && JFUStrConst.CD00565_PAA101.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		else if (JFUStrConst.CD00134_AB0.equals(pcrsCd) && JFUStrConst.CD00565_PAB001.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
		else if (JFUStrConst.CD00134_AB1.equals(pcrsCd) && JFUStrConst.CD00565_PAB101.equals(pplanCd))
		{
			isAddLastMsgPthId = true;
		}
// ANK-4427-00-00 ADD END

		// メッセージパターンIDフラグがTRUE(ホーム100M or 200M or 1G or メゾン100M or 200M or 1G)
		if (isAddLastMsgPthId)
		{
			// 自動継続あり
			if (JFUStrConst.NET_AUTO_KEIZOKU_MSKM.equals(auto_keizoku_um))
			{
				return "9902";
			}
			// 自動継続なし
			else if (JFUStrConst.NET_AUTO_KEIZOKU_NOT_MSKM.equals(auto_keizoku_um))
			{
				return "9901";
			}
		}

		return "";
	}

	/**
	 * スマートリンクプレミアム文言表示区分(追加申込時)の取得処理です。
	 * <br>
	 * <br>
	 * スマートリンクプレミアムパック既契約数とeoモバイル3G 42M光ハイブリッドタイプの契約数を条件にして、<br>
	 * スマートリンクプレミアム文言表示区分を取得します。
	 * <br>
	 * @param inMap INマップ
	 * @return 結果
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private String getSmaPreHybDspKbn(HashMap inMap) throws Exception
	{
		String result = JFUStrConst.EMPTY;

		// SC情報設定変数
		CAANMsg template = null;
		CAANMsg[] templates = null;
		CAANMsg[] outMsgLst = null;
		Map<?, ?> scResult = null;

		// ●サービス契約一覧照会（同一請求先回線情報取得）
		template = new CAANMsg(EKK0081B524CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0081B524);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		template.set(EKK0081B524CBSMsg.KEY_SYSID, (String)inMap.get("sysid"));
		// SC実行
		scResult = scCall(template);
		// 明細取得
		templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0081B524CBSMsg.EKK0081B524CBSMSG1LIST);

		// eoモバイル3G 42M光ハイブリッドタイプ契約数
		int emHhbCnt = 0;
		if(outMsgLst != null && outMsgLst.length > 0)
		{
			for (int i = 0; i < outMsgLst.length; i++)
			{
				CAANMsg msg = outMsgLst[i];
				String prcGrpCd = msg.getString(EKK0081B524CBSMsg1List.PRC_GRP_CD);
				String pcrsCd = msg.getString(EKK0081B524CBSMsg1List.PCRS_CD);

				if(JFUStrConst.CD00133_08.equals(prcGrpCd) && JFUStrConst.CD00134_A60.equals(pcrsCd))
				{
					// 料金グループコード eoモバイル(EM) かつ 料金コースコード ３Ｇ　４２Ｍ　光ハイブリッドタイプ の場合、
					// 契約数をカウントアップする
					emHhbCnt++;
				}
			}
		}

		// ●オプションサービス既契約情報一覧照会
		template = new CAANMsg(EKK0351B513CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0351B513);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		template.set(EKK0351B513CBSMsg.KEY_SYSID, (String)inMap.get("sysid"));
		// SC実行
		scResult = scCall(template);
		// 明細取得
		templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0351B513CBSMsg.EKK0351B513CBSMSG1LIST);

		// スマートリンクプレミアム契約数
		int smtLkCnt = 0;
		if(outMsgLst != null && outMsgLst.length > 0)
		{
			for (int i = 0; i < outMsgLst.length; i++)
			{
				CAANMsg msg = outMsgLst[i];
				String opSvcCd = msg.getString(EKK0351B513CBSMsg1List.OP_SVC_CD);

				if(JFUStrConst.CD00136_B077.equals(opSvcCd))
				{
					// オプションサービスコード＝「B077：スマートリンクプレミアム」の場合、
					// 契約数をカウントアップする。
					smtLkCnt++;
				}
			}
		}

		// ●業務パラメータ管理一意照会
		template = new CAANMsg(EZM0321A010CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EZM0321A010);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		template.set(EZM0321A010CBSMsg.KEY_WORK_PARAM_ID, WORK_PARAM_ID_HHB);
		// SC実行
		scResult = scCall(template);
		// 明細取得
		templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST);

		// 業務パラメータ設定値取得
		String hhbNum = String.valueOf(0);
		if(outMsgLst != null && outMsgLst.length > 0)
		{
			for (int i = 0; i < outMsgLst.length; i++)
			{
				CAANMsg msg = outMsgLst[i];
				String value = msg.getString(EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);

				if(value != null && value.length() > 0)
				{
					hhbNum = value;
					break;
				}
			}
		}

		// ●現在の選択サービス契約
		int addHhbNum = 0;
		if(this.prcSvkeiList != null && this.prcSvkeiList.size() > 0)
		{
			for (int i = 0; i < this.prcSvkeiList.size(); i++)
			{
				HashMap prcSvKeiMap = (HashMap)this.prcSvkeiList.get(i);
				String pcrsCd = (String)prcSvKeiMap.get("pcrs_cd");
				String pplanCd = (String)prcSvKeiMap.get("prc_plan_cd");

				if(JFUStrConst.CD00134_A60.equals(pcrsCd) && JFUStrConst.CD00565_PA6001.equals(pplanCd))
				{
					// 3G42M光ハイブリッドタイプの場合、カウントアップする。
					addHhbNum++;
				}
			}
		}

		// ●プレミアムパック申込状態取得(申し込むならカウントアップ)
		int mskmPrePackCnt = 0;
		if(JFUStrConst.SMALIN_PREMIUM_PACK_MSKM.equals((String)inMap.get("premium_pack")))
		{
			mskmPrePackCnt++;
		}

		// 割引適用上限数 計算式：(既契約スマートリンクプレミアム + 追加契約スマートリンクプレミアム) * 業務パラメータ
		int jogenNum = (smtLkCnt + mskmPrePackCnt) * Integer.parseInt(hhbNum);

		// 文言表示区分設定 条件式：上限数 >= 既契約3G42M光ハイブリッド + 選択3G42M光ハイブリッド
		if((smtLkCnt + mskmPrePackCnt) > 0 && jogenNum >= (emHhbCnt + addHhbNum))
		{
			// スマートリンクプレミアム有り、かつ、上限数に達していない場合、表示する
			result = SMALIN_PRE_DSP_KBN_DSP;
		}
		else
		{
			// スマートリンクプレミアムを契約していない、または、上限数に達している場合、表示しない
			result = SMALIN_PRE_DSP_KBN_NODSP;
		}

		return result;
	}

	/**
	 * スマートリンク料金＆メッセージ取得処理です。
	 * <br>
	 * 【案件番号：ANK-1580-00-00】eoスマートリンク改修対応@（複数契約対応・機種追加）
	 * <br>
	 * @param inMap INマップ
	 * @param msgIcrnList メッセージリスト
	 */
	@SuppressWarnings("unchecked")
	private void getSmartLinkPrcAndMsg(HashMap inMap, List msgIcrnList)
	{
		// 結果格納マップ
		HashMap smaResMap = new HashMap();
		// 月額料金内訳リスト
		ArrayList monthPrcUwList = new ArrayList();
		// 初期費用内訳リスト
		ArrayList shokiPrcUwList = new ArrayList();
		// 月額料金内訳マップ
		HashMap monthPrcUwMap = null;
		// 初期費用内訳マップ
		HashMap shokiPrcUwMap = null;

		// 月額合計金額
		int monthGkAmnt = 0;
		// 初期合計金額
		int shokiGkAmnt = 0;

		// 月額料金文言
		StringBuffer monthMongon = new StringBuffer();
		// 初期費用文言
		StringBuffer shokiMongon = new StringBuffer();

		// 一括フラグ
		boolean iktFlg = false;

		// 宅内機器型式コード(料金シミュレーション情報)
		String prsimlTaknkikiModelCd = (String)inMap.get(PRSIML_TAKNKIKI_MODEL_CD);
		// タブレット端末支払方法
		String tabletPayWay = (String)inMap.get(TABLET_TANMT_PAYWAY);
		// スマートリンクプレミアム選択状態
		String selSmartLinkPrm = (String)inMap.get(PREMIUM_PACK);
		// 端末補償選択状態
		String seltanmtComps = (String)inMap.get(TABLET_TANMT_COMPS);
		// 割賦プラン料金表示文言種別コード
		String inKapplanPdmgnCd = (String)inMap.get(TABLET_KAPPLAN_PDMGN_CD);
		// 販売タイプ
		String hanbaiType = (String)inMap.get(HANBAI_TYPE);

		// 割賦プラン料金表示文言種別コード
		String inKapplanPdmgnSbtCd = JFUStrConst.EMPTY;
		if(JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbaiType) || JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbaiType))
		{
			// 量販訪販
			inKapplanPdmgnSbtCd = JFUStrConst.CD01600_11;
		}
		else
		{
			// 量販訪販以外
			inKapplanPdmgnSbtCd = JFUStrConst.CD01600_10;
		}

		if(this.smartLinkInfoList == null || this.smartLinkInfoList.size() == 0)
		{
			// スマートリンク情報リストがない場合、処理しない
			return;
		}

		if(!JFUStrConst.SMALIN_PREMIUM_PACK_MSKM.equals(selSmartLinkPrm))
		{
			// スマートリンクプレミアムパックの申込選択がない場合、処理しない
			return;
		}

		// 端末補償用料金プランコード取得
		String tanmtPplanCd = (String)inMap.get(TABLET_TANMT_COMPS_PPLAN_CD);
		String tanmtCompsAmnt = JFUStrConst.S_ZERO;
		HashMap tanmtCompsMap = new HashMap();

		// スマートリンクのプラン単価取得
		for (int i = 0; i < this.pplanIcrnList.size(); i++)
		{
			HashMap pplanMap = (HashMap)this.pplanIcrnList.get(i);
			String pcrsCd = (String)pplanMap.get(PCRS_CD);
			String pplanCd = (String)pplanMap.get(PPLAN_CD);
			String pplanAmnt = (String)pplanMap.get(PPLAN_AMNT);
			String dspNm = (String)pplanMap.get(PRSIML_PRC_DSP_NM);

			if(JFUBPCommon.isNull(pplanAmnt))
			{
				pplanAmnt = JFUStrConst.S_ZERO;
			}

			if(JFUStrConst.CD00134_B80.equals(pcrsCd) && JFUStrConst.CD00565_PB8001.equals(pplanCd))
			{
				// プレミアムパック
				// 月額合計金額計算
				monthGkAmnt = monthGkAmnt + Integer.parseInt(pplanAmnt);

				// 月額料金内訳情報を設定
				monthPrcUwMap = new HashMap();
				monthPrcUwMap.put(PRC_UW_NM, dspNm);
				monthPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(pplanAmnt));
				monthPrcUwList.add(monthPrcUwMap);
			}
			else if(JFUStrConst.TABLET_TANMT_COMPS_MSKM.equals(seltanmtComps)
					&& JFUStrConst.CD00134_G05.equals(pcrsCd) && tanmtPplanCd.equals(pplanCd))
			{
				// 端末補償(申し込む場合)
				// 月額合計金額計算
				tanmtCompsAmnt = pplanAmnt;

				// 月額料金内訳情報を設定
				tanmtCompsMap = new HashMap();
				tanmtCompsMap.put(PRC_UW_NM, dspNm);
				tanmtCompsMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(pplanAmnt));
			}
		}

		// タブレットの支払方法選択がない場合
		if(JFUBPCommon.isNull(tabletPayWay))
		{
			// 取得情報を設定し返却する
			smaResMap.put(MONTH_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(monthGkAmnt)));
			smaResMap.put(SHOKI_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(shokiGkAmnt)));
			smaResMap.put(MONTH_UW_LIST, monthPrcUwList);
			smaResMap.put(SHOKI_UW_LIST, shokiPrcUwList);
			this.smartLinkRsltList.add(smaResMap);
			return;
		}

		// タブレットの支払方法が選択されている場合、選択機器の料金情報取得
		ArrayList tgList = new ArrayList();
		for (int i = 0; i < this.smartLinkInfoList.size(); i++)
		{
			HashMap smartLinkMap = (HashMap)this.smartLinkInfoList.get(i);
			// 宅内機器型式コード
			String smartLinkKiki = (String)smartLinkMap.get(EKK2521B501CBSMsg1List.TAKNKIKI_MODEL_CD);
			// 割賦販売形態コード
			String kapHambaiFormCd = (String)smartLinkMap.get(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD);
			// 割賦プラン料金表示文言種別コード
			String kapplanPdmgnSbtCd = (String)smartLinkMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_SBT_CD);
			// 割賦プラン料金表示文言コード
			String kapplanPdmgnCd = (String)smartLinkMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD);

			if(!prsimlTaknkikiModelCd.equals(smartLinkKiki))
			{
				// 宅内機器型式コードが一致しない情報はスキップする
				continue;
			}

			if(!kapplanPdmgnSbtCd.equals(inKapplanPdmgnSbtCd))
			{
				// 割賦プラン料金表示文言種別コードが一致しない情報はスキップする
				continue;
			}

			// 取得データの割賦プラン料金表示文言コード：03（安心補償キャンペーン文言用）では無い場合
			if(!KAPPLAN_PDMGN_CD_03.equals(kapplanPdmgnCd))
			{
				if(!kapplanPdmgnCd.equals(inKapplanPdmgnCd))
				{
					// 割賦プラン料金表示文言コードが一致しない情報はスキップする
					continue;
				}
			}

			// 対象の情報だけリストに格納する
			if(JFUStrConst.SMALIN_TANMT_PAYWAY_IKT.equals(tabletPayWay) && JFUStrConst.CD01467_01.equals(kapHambaiFormCd))
			{
				// 一括
				tgList.add(smartLinkMap);
				iktFlg = true;
			}
			else if(JFUStrConst.SMALIN_TANMT_PAYWAY_BNKT.equals(tabletPayWay) && JFUStrConst.CD01467_02.equals(kapHambaiFormCd))
			{
				// 分割(24回)
				tgList.add(smartLinkMap);
			}
			else if(JFUStrConst.SMALIN_TANMT_PAYWAY_BNKT_36.equals(tabletPayWay) && JFUStrConst.CD01467_03.equals(kapHambaiFormCd))
			{
				// 分割(36回)
				tgList.add(smartLinkMap);
			}
		}

		// 調整料金判定
		String normalAmnt = JFUStrConst.S_ZERO;
		String choseiAmnt = JFUStrConst.S_ZERO;
		for (int i = 0; i < tgList.size(); i++)
		{
			HashMap smartLinkMap = (HashMap)tgList.get(i);

			// 割賦プラン料金表示文言コード
			if (smartLinkMap.containsKey(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)
					&& !JFUBPCommon.isNull(smartLinkMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)))
			{
				if (KAPPLAN_PDMGN_CD_03.equals((String)smartLinkMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)))
				{
					// 割賦プラン料金表示文言コードが：03（安心補償キャンペーン文言用）の時は読み飛ばし
					continue;
				}
			}

			// 割賦プラン料金単価種別コード
			String kapPlanPrcTankaSbtCd = (String)smartLinkMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_TANKA_SBT_CD);

			if(JFUStrConst.CD01466_001.equals(kapPlanPrcTankaSbtCd))
			{
				// 割賦プラン料金額(通常用)
				normalAmnt = (String)smartLinkMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
			}
			else if(JFUStrConst.CD01466_002.equals(kapPlanPrcTankaSbtCd))
			{
				// 割賦プラン料金額(調整用)
				choseiAmnt = (String)smartLinkMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
			}
		}
		// 調整フラグ(通常金額と調整用金額を比較 / 同値：未調整(FALSE)、異値：要調整(TRUE))
		boolean choseiFlg = !normalAmnt.equals(choseiAmnt);

		// 結果リスト作成
		for (int i = 0; i < tgList.size(); i++)
		{
			HashMap tgMap = (HashMap)tgList.get(i);

			// 割賦プラン料金表示文言コード
			if (tgMap.containsKey(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)
					&& !JFUBPCommon.isNull(tgMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)))
			{
				if (KAPPLAN_PDMGN_CD_03.equals((String)tgMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)))
				{
					// 割賦プラン料金表示文言コードが：03（安心補償キャンペーン文言用）の時は読み飛ばし
					continue;
				}
			}

			// 割賦プラン料金単価種別コード
			String kapPlanPrcTankaSbtCd = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_TANKA_SBT_CD);

			if(!JFUStrConst.CD01466_001.equals(kapPlanPrcTankaSbtCd))
			{
				continue;
			}

			if(iktFlg)
			{
				// ★一括の場合(初期費用エリアに表示する)
				shokiPrcUwMap = new HashMap();

				// タブレット提供価格
				String kapPlanPrcAmnt = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
				if(JFUBPCommon.isNull(kapPlanPrcAmnt))
				{
					kapPlanPrcAmnt = JFUStrConst.S_ZERO;
				}

				// 初期費用合計金額計算
				shokiGkAmnt = shokiGkAmnt + Integer.parseInt(kapPlanPrcAmnt);
				// 初期費用内訳情報設定
				shokiPrcUwMap.put(PRC_UW_NM, TABLET_AMNT);
				shokiPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(kapPlanPrcAmnt));
				shokiPrcUwList.add(shokiPrcUwMap);

				// 調整用金額
				if(choseiFlg)
				{
					shokiPrcUwMap = new HashMap();
					if(JFUBPCommon.isNull(choseiAmnt))
					{
						choseiAmnt = JFUStrConst.S_ZERO;
					}

					// 初期費用合計金額計算
					shokiGkAmnt = shokiGkAmnt + Integer.parseInt(choseiAmnt);
					// 初期費用内訳情報設定
					shokiPrcUwMap.put(PRC_UW_NM, CHOSEI_AMNT);
					shokiPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(choseiAmnt));
					shokiPrcUwList.add(shokiPrcUwMap);
				}

				// ★端末補償を内訳に追加
				if(JFUStrConst.TABLET_TANMT_COMPS_MSKM.equals(seltanmtComps) && tanmtCompsMap != null && tanmtCompsMap.size() > 0)
				{
					monthGkAmnt = monthGkAmnt + Integer.parseInt(tanmtCompsAmnt);
					monthPrcUwList.add(tanmtCompsMap);
				}

				// プレミアムパック割引
				String kapPlanPrcAmntWrib = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT_WRIB);
				if(JFUBPCommon.isNull(kapPlanPrcAmntWrib))
				{
					kapPlanPrcAmntWrib = JFUStrConst.S_ZERO;
				}

				shokiPrcUwMap = new HashMap();
				// 初期費用合計金額計算
				shokiGkAmnt = shokiGkAmnt - Integer.parseInt(kapPlanPrcAmntWrib);
				// 初期費用内訳情報設定
				shokiPrcUwMap.put(PRC_UW_NM, TABLET_WRIB_AMNT);
				shokiPrcUwMap.put(SIKY_AMNT, SANKAKU + JFUBPCommon.formatNumber(kapPlanPrcAmntWrib));
				shokiPrcUwList.add(shokiPrcUwMap);

				// 文言
				String kapplanPdmgn = (String)tgMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN);
				if(JFUBPCommon.isNull(kapplanPdmgn))
				{
					kapplanPdmgn = JFUStrConst.EMPTY;
				}

				// 文言設定
				shokiMongon.append(kapplanPdmgn);
			}
			else
			{
				// ★分割の場合(月額料金エリアに表示する)
				monthPrcUwMap = new HashMap();

				// タブレット提供価格
				String kapPlanPrcAmnt = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
				if(JFUBPCommon.isNull(kapPlanPrcAmnt))
				{
					kapPlanPrcAmnt = JFUStrConst.S_ZERO;
				}

				// 月額合計金額計算
				monthGkAmnt = monthGkAmnt + Integer.parseInt(kapPlanPrcAmnt);
				// 月額内訳情報設定
				monthPrcUwMap.put(PRC_UW_NM, TABLET_KAP_AMNT);
				monthPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(kapPlanPrcAmnt));
				monthPrcUwList.add(monthPrcUwMap);

				// 端末補償を内訳に追加
				if(JFUStrConst.TABLET_TANMT_COMPS_MSKM.equals(seltanmtComps) && tanmtCompsMap != null && tanmtCompsMap.size() > 0)
				{
					monthGkAmnt = monthGkAmnt + Integer.parseInt(tanmtCompsAmnt);
					monthPrcUwList.add(tanmtCompsMap);
				}

				// プレミアムパック割引
				String kapPlanPrcAmntWrib = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT_WRIB);
				if(JFUBPCommon.isNull(kapPlanPrcAmntWrib))
				{
					kapPlanPrcAmntWrib = JFUStrConst.S_ZERO;
				}

				monthPrcUwMap = new HashMap();
				// 月額合計金額計算
				monthGkAmnt = monthGkAmnt - Integer.parseInt(kapPlanPrcAmntWrib);
				// 月額内訳情報設定
				monthPrcUwMap.put(PRC_UW_NM, TABLET_WRIB_AMNT);
				monthPrcUwMap.put(SIKY_AMNT, SANKAKU + JFUBPCommon.formatNumber(kapPlanPrcAmntWrib));
				monthPrcUwList.add(monthPrcUwMap);

				// 調整用金額(初期費用エリアに表示)
				if(choseiFlg)
				{
					shokiPrcUwMap = new HashMap();
					if(JFUBPCommon.isNull(choseiAmnt))
					{
						choseiAmnt = JFUStrConst.S_ZERO;
					}

					// 調整用金額
					// 初期費用合計金額計算
					shokiGkAmnt = shokiGkAmnt + (Integer.parseInt(choseiAmnt));
					// 初期費用内訳情報設定
					shokiPrcUwMap.put(PRC_UW_NM, CHOSEI_AMNT);
					shokiPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(choseiAmnt));
					shokiPrcUwList.add(shokiPrcUwMap);

					// 割引料金
					shokiPrcUwMap = new HashMap();
					// 初期費用合計金額計算
					shokiGkAmnt = shokiGkAmnt - Integer.parseInt(kapPlanPrcAmntWrib);
					// 初期費用内訳情報設定
					shokiPrcUwMap.put(PRC_UW_NM, TABLET_WRIB_AMNT);
					shokiPrcUwMap.put(SIKY_AMNT, SANKAKU + JFUBPCommon.formatNumber(kapPlanPrcAmntWrib));
					shokiPrcUwList.add(shokiPrcUwMap);
				}

				// 文言
				String kapplanPdmgn = (String)tgMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN);
				if(JFUBPCommon.isNull(kapplanPdmgn))
				{
					kapplanPdmgn = JFUStrConst.EMPTY;
				}

				// 文言設定
				monthMongon.append(kapplanPdmgn);
			}
		}

		// 安心補償キャンペーン文言を追加
		boolean ansinCompsMskm = false;
		String kapplanPdmgn = JFUStrConst.EMPTY;
		for (int i = 0; i < tgList.size(); i++)
		{
			HashMap tgMap = (HashMap)tgList.get(i);

			String selKapPlanCd = JFUStrConst.EMPTY;
			String mngnKapPlanCd = JFUStrConst.EMPTY;

			// 端末補償有無フラグ設定
			if(JFUStrConst.TABLET_TANMT_COMPS_MSKM.equals(seltanmtComps) && tanmtCompsMap != null && tanmtCompsMap.size() > 0)
			{
				ansinCompsMskm = true;
			}

			// 選択端末の割賦プランコード
			if (tgMap.containsKey(EKK2521B501CBSMsg1List.KAP_PLAN_CD)
					&& !JFUBPCommon.isNull(tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_CD)))
			{
				selKapPlanCd = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_CD);
			}

			// 割賦プラン料金表示文言コードが存在する場合
			// 割賦プラン料金表示文言コード：03（安心補償キャンペーン文言用）の文言を取得
			if (tgMap.containsKey(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)
					&& !JFUBPCommon.isNull(tgMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)))
			{
				if (KAPPLAN_PDMGN_CD_03.equals((String)tgMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_CD)))
				{
					// 割賦プランコードを取得
					mngnKapPlanCd = (String)tgMap.get(EKK2831B010CBSMsg1List.KAP_PLAN_CD);
				}

				// 選択した割賦プランコードとマスタの割賦プランコードが同じ場合の
				// 割賦プラン料金表示文言を取得する
				if (selKapPlanCd.equals(mngnKapPlanCd))
				{
					// 割賦プラン料金表示文言
					kapplanPdmgn = (String)tgMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN);
				}
			}
		}

		// 安心補償オプションの申し込みがあり、安心補償キャンペーン文言が取得できたら
		if (ansinCompsMskm && !JFUBPCommon.isNull(kapplanPdmgn))
		{
			if (monthMongon.length() > 0)
			{
				// 既に月額料金に文言設定あれば、改行コード</br>を追加
				monthMongon.append(JFUStrConst.RETURN_CODE_BR);
			}
			// 安心補償キャンペーン文言追加
			monthMongon.append(kapplanPdmgn);
		}

// IT1-2017-0000103 ADD START
		if (ansinCompsMskm)
		{
			String prsimlMsgPtnIdFromMap = "";
			String prcSimlDspMongonFromMap = "";

			HashMap msgIcrnMap = null;

			// メッセージ一覧リストの件数分処理を実行する
			for (int i = 0; i < msgIcrnList.size(); i++)
			{
				msgIcrnMap = (HashMap)msgIcrnList.get(i);

				prsimlMsgPtnIdFromMap = (String)msgIcrnMap.get("prsiml_msg_ptn_id");
				// 「安心保障オプション」文言対応
				if (fillMoji(PATTERN_ID_81, 8, false, "0").equals(prsimlMsgPtnIdFromMap))
				{
					prcSimlDspMongonFromMap = this.convertNullToBlank((String)msgIcrnMap.get("prc_siml_dsp_mongon"));

					if (monthMongon.length() > 0)
					{
						// 既に月額料金に文言設定あれば、改行コード</br>を追加
						monthMongon.append(JFUStrConst.RETURN_CODE_BR);
					}
					// 安心補償キャンペーン文言追加
					monthMongon.append(prcSimlDspMongonFromMap);
				}
			}
		}
// IT1-2017-0000103 ADD END

		// 金額判定(マイナスの場合、0円とする)
		if(monthGkAmnt < 0)
		{
			monthGkAmnt = 0;
		}
		if(shokiGkAmnt < 0)
		{
			shokiGkAmnt = 0;
		}

		// 取得情報を返却リストに格納する
		smaResMap.put(MONTH_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(monthGkAmnt)));
		smaResMap.put(SHOKI_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(shokiGkAmnt)));
		smaResMap.put(MONTH_MONGON, monthMongon.toString());
		smaResMap.put(SHOKI_MONGON, shokiMongon.toString());
		smaResMap.put(MONTH_UW_LIST, monthPrcUwList);
		smaResMap.put(SHOKI_UW_LIST, shokiPrcUwList);
		this.smartLinkRsltList.add(smaResMap);
	}

// ANK-3217-00-00 ADD START
	/**
	 * GH料金＆メッセージ取得処理です。
	 *
	 * <br>
	 * @param inMap INマップ
	 */
	@SuppressWarnings("unchecked")
	private void getGhPrcAndMsg(HashMap inMap)
	{
		// 結果格納マップ
		HashMap ghResMap = new HashMap();
		// 月額料金内訳リスト
		ArrayList monthPrcUwList = new ArrayList();
		// 初期費用内訳リスト
		ArrayList shokiPrcUwList = new ArrayList();
		// 月額料金内訳マップ
		HashMap monthPrcUwMap = null;
		// 初期費用内訳マップ
		HashMap shokiPrcUwMap = null;

		// 月額合計金額
		int monthGkAmnt = 0;
		// 初期合計金額
		int shokiGkAmnt = 0;

		// 一括フラグ
		boolean iktFlg = false;

		// 宅内機器型式コード(料金シミュレーション情報)
		String prsimlTaknkikiModelCd = (String)inMap.get(PRSIML_TAKNKIKI_MODEL_CD);
		// GH端末支払方法
		String ghPayWay = (String)inMap.get(GH_TANMT_PAYWAY);

		// 販売タイプ
		String hanbaiType = (String)inMap.get(HANBAI_TYPE);

		// 割賦プラン料金表示文言種別コード
		String inKapplanPdmgnSbtCd = JFUStrConst.EMPTY;
		if(JFUStrConst.HNBAI_TYPE_RYOHAN.equals(hanbaiType) || JFUStrConst.HNBAI_TYPE_HOHAN.equals(hanbaiType))
		{
			// 量販訪販
			inKapplanPdmgnSbtCd = JFUStrConst.CD01600_11;
		}
		else
		{
			// 量販訪販以外
			inKapplanPdmgnSbtCd = JFUStrConst.CD01600_10;
		}

		if(this.smartLinkInfoList == null || this.smartLinkInfoList.size() == 0)
		{
			return;
		}

		// GHの支払方法選択がない場合
		if(JFUBPCommon.isNull(ghPayWay))
		{
			// 取得情報を設定し返却する
			ghResMap.put(MONTH_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(monthGkAmnt)));
			ghResMap.put(SHOKI_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(shokiGkAmnt)));
			ghResMap.put(MONTH_UW_LIST, monthPrcUwList);
			ghResMap.put(SHOKI_UW_LIST, shokiPrcUwList);
			this.smartLinkRsltList.add(ghResMap);
			return;
		}

		// GHの支払方法が選択されている場合、選択機器の料金情報取得
		ArrayList tgList = new ArrayList();
		for (int i = 0; i < this.smartLinkInfoList.size(); i++)
		{
			HashMap ghMap = (HashMap)this.smartLinkInfoList.get(i);
			// 宅内機器型式コード
			String taknkikiModelCd = (String)ghMap.get(EKK2521B501CBSMsg1List.TAKNKIKI_MODEL_CD);
			// 割賦販売形態コード
			String kapHambaiFormCd = (String)ghMap.get(EKK2521B501CBSMsg1List.KAP_HAMBAI_FORM_CD);
			// 割賦プラン料金表示文言種別コード
			String kapplanPdmgnSbtCd = (String)ghMap.get(EKK2831B010CBSMsg1List.KAPPLAN_PDMGN_SBT_CD);

			if(!prsimlTaknkikiModelCd.equals(taknkikiModelCd))
			{
				// 宅内機器型式コードが一致しない情報はスキップする
				continue;
			}

			if(!kapplanPdmgnSbtCd.equals(inKapplanPdmgnSbtCd))
			{
				// 割賦プラン料金表示文言種別コードが一致しない情報はスキップする
				continue;
			}

			// 対象の情報だけリストに格納する
			if(JFUStrConst.GH_TANMT_PAYWAY_IKT.equals(ghPayWay) && JFUStrConst.CD01467_01.equals(kapHambaiFormCd))
			{
				// 一括
				tgList.add(ghMap);
				iktFlg = true;
			}
			else if(JFUStrConst.GH_TANMT_PAYWAY_BNKT.equals(ghPayWay) && JFUStrConst.CD01467_02.equals(kapHambaiFormCd))
			{
				// 分割(24回)
				tgList.add(ghMap);
			}
		}

		// 調整料金判定
		String normalAmnt = JFUStrConst.S_ZERO;
		String choseiAmnt = JFUStrConst.S_ZERO;
		for (int i = 0; i < tgList.size(); i++)
		{
			HashMap ghMap = (HashMap)tgList.get(i);

			// 割賦プラン料金単価種別コード
			String kapPlanPrcTankaSbtCd = (String)ghMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_TANKA_SBT_CD);

			if(JFUStrConst.CD01466_001.equals(kapPlanPrcTankaSbtCd))
			{
				// 割賦プラン料金額(通常用)
				normalAmnt = (String)ghMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
			}
			else if(JFUStrConst.CD01466_002.equals(kapPlanPrcTankaSbtCd))
			{
				// 割賦プラン料金額(調整用)
				choseiAmnt = (String)ghMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
			}
		}
		// 調整フラグ(通常金額と調整用金額を比較 / 同値：未調整(FALSE)、異値：要調整(TRUE))
		boolean choseiFlg = !normalAmnt.equals(choseiAmnt);

		// 結果リスト作成
		for (int i = 0; i < tgList.size(); i++)
		{
			HashMap tgMap = (HashMap)tgList.get(i);

			// 割賦プラン料金単価種別コード
			String kapPlanPrcTankaSbtCd = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_TANKA_SBT_CD);

			if(!JFUStrConst.CD01466_001.equals(kapPlanPrcTankaSbtCd))
			{
				continue;
			}

			if(iktFlg)
			{
				// ★一括の場合(初期費用エリアに表示する)
				shokiPrcUwMap = new HashMap();

				// GH提供価格
				String kapPlanPrcAmnt = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
				if(JFUBPCommon.isNull(kapPlanPrcAmnt))
				{
					kapPlanPrcAmnt = JFUStrConst.S_ZERO;
				}

				// 初期費用合計金額計算
				shokiGkAmnt = shokiGkAmnt + Integer.parseInt(kapPlanPrcAmnt);
				// 初期費用内訳情報設定
				shokiPrcUwMap.put(PRC_UW_NM, GH_AMNT);
				shokiPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(kapPlanPrcAmnt));
				shokiPrcUwList.add(shokiPrcUwMap);

				// 調整用金額
				if(choseiFlg)
				{
					shokiPrcUwMap = new HashMap();
					if(JFUBPCommon.isNull(choseiAmnt))
					{
						choseiAmnt = JFUStrConst.S_ZERO;
					}

					// 初期費用合計金額計算
					shokiGkAmnt = shokiGkAmnt + Integer.parseInt(choseiAmnt);
					// 初期費用内訳情報設定
					shokiPrcUwMap.put(PRC_UW_NM, CHOSEI_AMNT);
					shokiPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(choseiAmnt));
					shokiPrcUwList.add(shokiPrcUwMap);
				}
			}
			else
			{
				// ★分割の場合(月額料金エリアに表示する)
				monthPrcUwMap = new HashMap();

				// GH提供価格
				String kapPlanPrcAmnt = (String)tgMap.get(EKK2521B501CBSMsg1List.KAP_PLAN_PRC_AMNT);
				if(JFUBPCommon.isNull(kapPlanPrcAmnt))
				{
					kapPlanPrcAmnt = JFUStrConst.S_ZERO;
				}

				// 月額合計金額計算
				monthGkAmnt = monthGkAmnt + Integer.parseInt(kapPlanPrcAmnt);
				// 月額内訳情報設定
				monthPrcUwMap.put(PRC_UW_NM, GH_KAP_AMNT);
				monthPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(kapPlanPrcAmnt));
				monthPrcUwList.add(monthPrcUwMap);

				// 調整用金額(初期費用エリアに表示)
				if(choseiFlg)
				{
					shokiPrcUwMap = new HashMap();
					if(JFUBPCommon.isNull(choseiAmnt))
					{
						choseiAmnt = JFUStrConst.S_ZERO;
					}

					// 調整用金額
					// 初期費用合計金額計算
					shokiGkAmnt = shokiGkAmnt + (Integer.parseInt(choseiAmnt));
					// 初期費用内訳情報設定
					shokiPrcUwMap.put(PRC_UW_NM, CHOSEI_AMNT);
					shokiPrcUwMap.put(SIKY_AMNT, JFUBPCommon.formatNumber(choseiAmnt));
					shokiPrcUwList.add(shokiPrcUwMap);
				}
			}
		}

		// 金額判定(マイナスの場合、0円とする)
		if(monthGkAmnt < 0)
		{
			monthGkAmnt = 0;
		}
		if(shokiGkAmnt < 0)
		{
			shokiGkAmnt = 0;
		}

		// 取得情報を返却リストに格納する
		ghResMap.put(MONTH_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(monthGkAmnt)));
		ghResMap.put(SHOKI_AMNT_GK, JFUBPCommon.formatNumber(String.valueOf(shokiGkAmnt)));
		ghResMap.put(MONTH_UW_LIST, monthPrcUwList);
		ghResMap.put(SHOKI_UW_LIST, shokiPrcUwList);
		this.ghRsltList.add(ghResMap);
	}
// ANK-3217-00-00 ADD END

	/**
	 * 割引メッセージ結果リスト作成処理です。
	 *
	 * <br>
	 * @param inMap INマップ
	 */
	@SuppressWarnings("unchecked")
	private void setWribMsgRslList(HashMap inMap)
	{
		if (this.prcSvkeiList == null || this.wribMsgList == null)
		{
			// 各リストがNULLの場合処理しない
			return;
		}

		// 加入契約支払方式コード
		String kanyuKeiPayHoshikiCd = (String)inMap.get("prsiml_msg_ptn_id");
		// 申込経路
		String mskmRoute = JFUBPCommon.nvl((String)inMap.get(MSKM_ROUTE), JFUStrConst.EMPTY);

// ANK-3162-00-00 ADD START
		// eo電気同時申込意思有無
		String eoelecDojiMskmIshiUm = (String)inMap.get("eoelec_doji_mskm_ishi_um");
// ANK-3162-00-00 ADD END
// ANK-3680-00-00 ADD START
		// 19001100_【MT（月額）】eo暮らしスタート割△５００ 対象物件
		String eostartWariMTcmp = (String)inMap.get("eostart_wari_mt_cmp");
// ANK-3680-00-00 ADD END

		// ■申込内容に該当する割引を「料金シミュレーション割引メッセージ」から取得する。
		for (int i = 0; i < this.prcSvkeiList.size(); i++)
		{
			Map<String, String> svcKeiMap = (Map<String, String>)this.prcSvkeiList.get(i);

			for (int j = 0; j < this.wribMsgList.size(); j++)
			{
				Map<String, String> wribMsgMap = (Map<String, String>)this.wribMsgList.get(j);

				if(wribMsgMap == null || wribMsgMap.size() == 0)
				{
					continue;
				}

				// 一致する割引メッセージがあるか判定
				boolean flg1 = false;
				boolean flg2 = false;
// ANK-3162-00-00 ADD START
				boolean flg3 = false;
// ANK-3162-00-00 ADD END
				// 判定：サービスコード、料金グループコード、料金コースコード、料金プランコード
				if (((String)wribMsgMap.get(SVC_CD)).equals((String)svcKeiMap.get(SVC_CD))
						&& ((String)wribMsgMap.get(PRC_GRP_CD)).equals((String)svcKeiMap.get(PRC_GRP_CD))
						&& ((String)wribMsgMap.get(PCRS_CD)).equals((String)svcKeiMap.get(PCRS_CD))
						&& ((String)wribMsgMap.get(PPLAN_CD)).equals((String)svcKeiMap.get(PRC_PLAN_CD)))
				{
					flg1 = true;
				}

				if (JFUStrConst.CD00133_04.equals((String)svcKeiMap.get(PRC_GRP_CD)))
				{
					// 料金グループコードが「04：ネットマンション」の場合、加入契約支払方式コードを条件に入れる
					if (((String)wribMsgMap.get(KANYU_KEI_PAY_HOSHIKI_CD)).equals(kanyuKeiPayHoshikiCd))
					{
						flg2 = true;
					}
// ANK-3680-00-00 ADD START
					// eo暮らしスタート割対象物件の場合のみ表示
					if ("0".equals(eostartWariMTcmp))
					{
						flg2 = false;
					}
// ANK-3680-00-00 ADD END
				}
				else
				{
					// 上記以外
					flg2 = true;
				}

// ANK-3162-00-00 MOD START
				// 判定２：料金シュミレーション割引メッセージパターンID
				//TODO: 割引の条件分岐追加
				if (WRB_MSG_PATTERN_ID_0004.equals(((String)wribMsgMap.get(PRSIML_WRIB_MSG_PTN_ID))))
				{
					if (!JFUStrConst.MSKM_ROUTE_RYOHAN.equals(mskmRoute))
					{
						// 量販以外
						flg3 = true;
					}
				}
				else if (WRB_MSG_PATTERN_ID_0005.equals(((String)wribMsgMap.get(PRSIML_WRIB_MSG_PTN_ID))))
				{
					if (JFUStrConst.MSKM_ROUTE_RYOHAN.equals(mskmRoute))
					{
						// 量販
						flg3 = true;
					}
				}
				else if (!WRB_MSG_PATTERN_ID_0002.equals(((String)wribMsgMap.get(PRSIML_WRIB_MSG_PTN_ID))))
				{
// ANK-3680-00-00 ADD START
					// 割引メッセージパターンID パック割(0003) の場合、ネットとテレビ同時申込を条件に表示する。
					if (WRB_MSG_PATTERN_ID_0003.equals(((String)wribMsgMap.get(PRSIML_WRIB_MSG_PTN_ID))))
					{
						if ("1".equals(((String)inMap.get("select_svc_net"))) &&
								"1".equals(((String)inMap.get("select_svc_tv"))))
						{
							flg3 = true;
						}
					}
// ANK-4607-00-00 ADD START
					// 割引メッセージパターンID パック割(0006) の場合、ネットと電話同時申込を条件に表示する。
					else if(WRB_MSG_PATTERN_ID_0006.equals(((String)wribMsgMap.get(PRSIML_WRIB_MSG_PTN_ID))))
					{
						if ("1".equals(((String)inMap.get("select_svc_net"))) &&
								"1".equals(((String)inMap.get("select_svc_tel"))))
						{
							flg3 = true;
						}	
					}
// ANK-4607-00-00 ADD END
					else
					{
						flg3 = true;
					}
// ANK-3680-00-00 ADD END
				}
				else if(WRB_MSG_PATTERN_ID_0002.equals(((String)wribMsgMap.get(PRSIML_WRIB_MSG_PTN_ID))) && (JFUStrConst.CD00002_1.equals(eoelecDojiMskmIshiUm)))
				{
					// 電気同時申込
					flg3 = true;
				}

				// 全条件に一致した場合、情報を格納する
//				if (flg1 && flg2)
				if (flg1 && flg2 && flg3)
// ANK-3162-00-00 MOD END
				{
					this.wribMsgRsltList.add(wribMsgMap);
				}
			}
		}
	}

	/**
	 * 指定した文字列がNULLの場合、空白を返却する。
	 * NULLでない場合、指定した文字列を返却する。
	 * @param targetString 文字列
	 * @return targetStringがNULL:空白　targetStringがNULL以外:targetString
	 */
	@SuppressWarnings("static-access")
	private String convertNullToBlank(String targetString)
	{
		if (this.isNull(targetString))
		{
			return JFUStrConst.EMPTY;
		}
		else
		{
			return targetString;
		}
	}

	/**
	 * 内部処理用変換処理を行う。
	 * @param handle セッションマネージャなどを持ったハンドル
	 * <br>
	 */
	@SuppressWarnings("unchecked")
	private void changeSaveListItem(SessionHandle handle)
	{
		// DEBUG用
		this.outputLog(handle, "### 料金シミュレーションCC　内部処理用変換処理(changeSaveListItem)　START ", false);

		for (int i = 0; i < this.prcSvkeiList.size(); i++)
		{
			HashMap prcSvkeiMap = (HashMap)this.prcSvkeiList.get(i);

			// マップ項目「テレビ選択コース区分」の設定値（初期値）
			String eoTvCourseKbn = JFUStrConst.EMPTY;

			String pcrsCd = convertNullToBlank((String)prcSvkeiMap.get(PCRS_CD));
			String prcPlanCd = convertNullToBlank((String)prcSvkeiMap.get(PRC_PLAN_CD));

			// 変換処理
			if ((JFUStrConst.CD00134_F05.equals(pcrsCd)) && (JFUStrConst.CD00565_PF0501.equals(prcPlanCd)))
			{
				// 料金コースと料金プランを変換
				prcSvkeiMap.put(PCRS_CD, JFUStrConst.CD00134_A37);
				prcSvkeiMap.put(PRC_PLAN_CD, JFUStrConst.CD00565_PA3701);
				// テレビ選択コース区分に'3'（地デジ・BSコース　スターチャンネルセット)を設定
				eoTvCourseKbn = JFUStrConst.EO_TV_COURSE_BS_STAR;
			}

			// マップに項目追加
			prcSvkeiMap.put(EO_TV_COURSE_KBN, eoTvCourseKbn);
		}

		// DEBUG用
		this.outputLog(handle, "### 料金シミュレーションCC　内部処理用変換処理(changeSaveListItem)　END ", false);

	}

	/**
	 * 基本料金取得用の読み替え処理を行う。
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param prcSvkeiMap 料金サービス契約リストｎ件目
	 * @return HashMap 読み替え情報マップ
	 * <br>
	 */
	@SuppressWarnings("unchecked")
	private HashMap changeListItemByBaseAmt(SessionHandle handle, HashMap prcSvkeiMap)
	{
		// DEBUG用
		this.outputLog(handle, "### 料金シミュレーションCC　基本料金取得用の読み替え処理(changeListItemByBaseAmt)　START ", false);

		// テレビ選択コース区分取得
		String eoTvCourseKbn = convertNullToBlank((String)prcSvkeiMap.get(EO_TV_COURSE_KBN));
		// 料金コース取得
		String pcrsCd = convertNullToBlank((String)prcSvkeiMap.get(PCRS_CD));
		// 料金プラン取得
		String prcPlanCd = convertNullToBlank((String)prcSvkeiMap.get(PRC_PLAN_CD));

		// 返却値に、引数値（入力項目）を設定
		HashMap retMap = new HashMap<String, String>();
		retMap.put(PCRS_CD, pcrsCd);
		retMap.put(PRC_PLAN_CD, prcPlanCd);

		// 読み替え処理
		//（条件)
		// 選択サービスリストの処理対象レコードの「テレビ選択コース区分」が'3'（地デジ・BSコース　スターチャンネルセット)
		// かつ「料金コースコード」が「A37(地デジ・BSコース)」
		// かつ「料金プランコード」が「PA3701(地デジ・BSコース 定額プラン)」
		if ((JFUStrConst.EO_TV_COURSE_BS_STAR.equals(eoTvCourseKbn)) && (JFUStrConst.CD00134_A37.equals(pcrsCd))
				&& (JFUStrConst.CD00565_PA3701.equals(prcPlanCd)))
		{
			// 料金コースと料金プランを変換
			retMap.put(PCRS_CD, JFUStrConst.CD00134_F05);
			retMap.put(PRC_PLAN_CD, JFUStrConst.CD00565_PF0501);
		}

		// DEBUG用
		this.outputLog(handle, "### 料金シミュレーションCC　基本料金取得用の読み替え処理(changeListItemByBaseAmt)　END ", false);

		// 返却
		return retMap;
	}

	/**
	 * インターネットサギウォールセット割引情報を取得します。
	 *
	 * <br>
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private HashMap getIswWribInfo(HashMap inMap) throws Exception
	{
		// 結果マップ
		HashMap resultMap = new HashMap();

		if(this.prcSvkeiList == null || this.prcSvkeiList.size() == 0)
		{
			// 選択サービスが存在しない場合、処理を終了する
			return resultMap;
		}

		// SC情報設定変数
		// ●料金プラン・料金コース一覧照会（プラン区分指定）
		 CAANMsg template = new CAANMsg(EKK0591B005CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0591B005);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		template.set(EKK0591B005CBSMsg.KEY_PRC_GRP_CD,
				JFUStrConst.CD00133_02 + JFUStrConst.COMMA + JFUStrConst.CD00133_03 + JFUStrConst.COMMA + JFUStrConst.CD00133_04);
		template.set(EKK0591B005CBSMsg.KEY_PPLAN_DIV, "04");
		// SC実行
		Map<?, ?> scResult = scCall(template);
		// 明細取得
		CAANMsg[] templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EKK0591B005CBSMsg.EKK0591B005CBSMSG1LIST);

		if(outMsgLst == null)
		{
			// マスタが存在しない場合、処理を終了する
			return resultMap;
		}

		// ネットサービスコード
		String netSvcCd = JFUStrConst.EMPTY;
		// ネット料金グループコード
		String netPrcGrpCcd = JFUStrConst.EMPTY;
		// ネット料金コースコード
		String netPcrsCd = JFUStrConst.EMPTY;
		// ネット料金プランコード
		String netPplanCd = JFUStrConst.EMPTY;

		// スマートリンクプレミアムパック選択状態
		String selSmartLinkPrm = (String)inMap.get(PREMIUM_PACK);
		// ｅｏセキュリティーパック申込フラグ
		boolean secPacFlg = false;
		// インターネットサギウォール申込フラグ
		boolean iswFlg = false;

		for (int i = 0; i < this.prcSvkeiList.size(); i++)
		{
			HashMap prcSvkeiMap = (HashMap)this.prcSvkeiList.get(i);
			String svcCd = (String)prcSvkeiMap.get("svc_cd");
			String prcGrpCd = (String)prcSvkeiMap.get("prc_grp_cd");
			String pcrsCd = (String)prcSvkeiMap.get("pcrs_cd");
			String pplanCd = (String)prcSvkeiMap.get("prc_plan_cd");

			// ネットのコース情報が設定されていない場合、設定する
			if(isNull(netSvcCd) || isNull(netPrcGrpCcd) || isNull(netPcrsCd) || isNull(netPplanCd))
			{
				for (int j = 0; j < outMsgLst.length; j++)
				{
					CAANMsg msg = outMsgLst[j];
					String mstPcrsCd = msg.getString(EKK0591B005CBSMsg1List.PCRS_CD);
					String mstPplanCd = msg.getString(EKK0591B005CBSMsg1List.PPLAN_CD);

					if(pcrsCd.equals(mstPcrsCd) && pplanCd.equals(mstPplanCd))
					{
						// 料金コースコード＆料金プランコードが一致した場合
						netSvcCd = svcCd;
						netPrcGrpCcd = prcGrpCd;
						netPcrsCd = pcrsCd;
						netPplanCd = pplanCd;
						break;
					}
				}
			}

			if(JFUStrConst.CD00134_F07.equals(pcrsCd) && JFUStrConst.CD00565_PF0701.equals(pplanCd))
			{
				// ｅｏセキュリティーパック申込あり
				secPacFlg = true;
			}
			if(JFUStrConst.CD00134_BE2.equals(pcrsCd) && JFUStrConst.CD00565_PBE201.equals(pplanCd))
			{
				// インターネットサギウォール申込あり
				iswFlg = true;
			}
		}

		if((!secPacFlg && !JFUStrConst.SMALIN_PREMIUM_PACK_MSKM.equals(selSmartLinkPrm)) || !iswFlg)
		{
			// ｅｏセキュリティーパック、スマートリンクプレミアム、インターネットサギウォールのどちらかが申し込まれていない場合
			return resultMap;
		}

		// ●割引サービス単価一覧照会（割引サービスコード）
		template = new CAANMsg(EKK0711B001CBSMsg.class.getName());
		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, TEMPLATE_ID_EKK0711B001);
		template.set(JCMConstants.FUNC_CODE_KEY, JPCModelConstant.FUNC_CD_1);
		template.set(EKK0711B001CBSMsg.KEY_WRIB_SVC_CD, JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA);
		// SC実行
		scResult = scCall(template);
		// 明細取得
		templates = (CAANMsg[])scResult.get(JCMConstants.TEMPLATE_LIST_KEY);
		outMsgLst = templates[0].getCAANMsgList(EKK0711B001CBSMsg.EKK0711B001CBSMSG1LIST);

		if(outMsgLst == null)
		{
			// マスタが存在しない場合、処理を終了する
			return resultMap;
		}

		// シミュレーション依頼リスト
		List<Map<String, String>> iraiList = new ArrayList<Map<String, String>>();

		Map iraiMap = new HashMap();

		for (int i = 0; i < outMsgLst.length; i++)
		{
			CAANMsg msg = outMsgLst[i];
			String pcrsCd = msg.getString(EKK0711B001CBSMsg1List.PCRS_CD);
			String pplanCd = msg.getString(EKK0711B001CBSMsg1List.PPLAN_CD);
			String opSvcCd = msg.getString(EKK0711B001CBSMsg1List.OP_SVC_CD);

			if(JFUStrConst.CD00134_BE2.equals(pcrsCd) && JFUStrConst.CD00565_PBE201.equals(pplanCd)
					&& JFUStrConst.CD00136_B131.equals(opSvcCd))
			{
				// インターネットサギウォールセット割の場合
				iraiMap.put("key_wrib_svc_cd", msg.getString(EKK0711B001CBSMsg1List.WRIB_SVC_CD));

				iraiMap.put("key_wrib_svc_tanka_no", msg.getString(EKK0711B001CBSMsg1List.WRIB_SVC_TANKA_NO));
				iraiMap.put("svc_cd", msg.getString(EKK0711B001CBSMsg1List.SVC_CD));
// ANK-3636-00-00 MOD START
				iraiMap.put("key_prc_kmk_cd", RKC_21006051601);
// ANK-3636-00-00 MOD END

				iraiMap.put("key_prc_grp_cd", netPrcGrpCcd);
				iraiMap.put("key_pcrs_cd", netPcrsCd);
				iraiMap.put("key_pplan_cd", netPplanCd);

				iraiMap.put("wrib_svc_nm", JFUStrConst.EMPTY);

				iraiList.add(iraiMap);
				break;
			}
		}

		// 割引料金設定後、結果リストに設定
		resultMap.put("irai_list", iraiList);
		resultMap.put("result_list", waribikiKeisan(inMap, iraiList));

		return resultMap;
	}

	/**
	 * <p>
	 * 割引料金設定処理です。
	 * </p>
	 * @param wribList 割引リスト
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private ArrayList waribikiKeisan(HashMap inMap, List<Map<String, String>> wribList) throws Exception
	{
		// 料金系サービスIF実行前処理
		if(KSN_TYPE_HT_MZ.equals(getKsnType(inMap)))
		{
			// ホーム・メゾン
			acIfInit(JPCModelConstant.FUNC_CD_1);
		}
		else
		{
			// マンション
			acIfInit(JPCModelConstant.FUNC_CD_2);
		}

		ArrayList resultList = new ArrayList();

		List<Map<String, String>> waribikiLst = new ArrayList<Map<String, String>>();

		for (Map<String, String> msg : wribList)
		{
			String inPcrsCd = msg.get("key_pcrs_cd");
			String inWrbSvcTnkNo = msg.get("key_wrib_svc_tanka_no");

			// 割引サービス単価番号が入ってないときはループを抜ける
			if (isNull(inWrbSvcTnkNo))
			{
				continue;
			}

			CAANMsg template = new CAANMsg(EAC0231B010CBSMsg.class.getName());

			// ●割引集計＜料金シミュレーション＞一覧照会
			template.set(JCMConstants.TEMPLATE_ID_KEY, "EAC0231B010");
			template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

			template.set(EAC0231B010CBSMsg.KEY_SYS_CD, this.sysCd);
			template.set(EAC0231B010CBSMsg.KEY_PRC_SVC_CD, JPCUtilCommon.fillHalfSpace(inWrbSvcTnkNo, 12, true));

			/* SC呼出実行 */
			Map<?, ?> result = scCall(template);

			CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
			CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EAC0231B010CBSMsg.EAC0231B010CBSMSG1LIST);

			for (CAANMsg outMsg : outMsgLst)
			{
				if(outMsg.getString(EAC0231B010CBSMsg1List.SHUK_PCRS_CD).equals(inPcrsCd))
				{
					Map<String, String> waribiki = new HashMap<String, String>();
					waribiki.put(WRIB_PRC_PRC_SVC_CD, outMsg.getString(EAC0231B010CBSMsg1List.PRC_SVC_CD));
					waribiki.put(WRIB_PRC_WRIB_CTRL_SKBT_CD, outMsg.getString(EAC0231B010CBSMsg1List.WRIB_CTRL_SKBT_CD));
					waribiki.put(WRIB_PRC_SHUK_TANI_CD, outMsg.getString(EAC0231B010CBSMsg1List.SHUK_TANI_CD));
					waribiki.put(WRIB_PRC_WRIB_SHUK_CD, outMsg.getString(EAC0231B010CBSMsg1List.WRIB_SHUK_CD));
					waribiki.put(WRIB_PRC_SHUK_PCRS_CD, outMsg.getString(EAC0231B010CBSMsg1List.SHUK_PCRS_CD));
					waribiki.put(WRIB_PRC_SHUK_PRC_SVC_CD, outMsg.getString(EAC0231B010CBSMsg1List.SHUK_PRC_SVC_CD));
					waribiki.put(WRIB_PRC_SHUK_PRC_KMK_CD, outMsg.getString(EAC0231B010CBSMsg1List.SHUK_PRC_KMK_CD));
					waribiki.put(WRIB_PRC_WRIB_YUSEN_JUN, outMsg.getString(EAC0231B010CBSMsg1List.WRIB_YUSEN_JUN));
					waribiki.put(WRIB_PRC_PRC, "0");
					waribiki.put(USE_WRIB_SVC_CD, msg.get("key_wrib_svc_cd"));
					waribiki.put("key_pcrs_cd", inPcrsCd);
					waribiki.put("key_wrib_svc_tanka_no", inWrbSvcTnkNo);
					waribikiLst.add(waribiki);
					break;
				}
			}
		}

		// 割引対象情報集計
		Map<List<String>, Map<String, String>> shukeiMap = new HashMap<List<String>, Map<String, String>>();
		for (Map<String, String> waribiki : waribikiLst)
		{
			List<String> key = new ArrayList<String>();
			key.add(waribiki.get(WRIB_PRC_PRC_SVC_CD));
			key.add(waribiki.get(WRIB_PRC_WRIB_CTRL_SKBT_CD));
			key.add(waribiki.get(WRIB_PRC_WRIB_SHUK_CD));
			if (shukeiMap.containsKey(key))
			{
				BigDecimal shukeiPrc = new BigDecimal(shukeiMap.get(key).get(WRIB_PRC_PRC));
				BigDecimal waribikiPrc = new BigDecimal(waribiki.get(WRIB_PRC_PRC));
				BigDecimal plus = shukeiPrc.add(waribikiPrc);
				shukeiMap.get(key).put(WRIB_PRC_PRC, plus.toString());
			}
			else
			{
				shukeiMap.put(key, waribiki);
			}
		}

		// 割引計算
		Set<List<String>> keySet = shukeiMap.keySet();
		for (List<String> key : keySet)
		{
			Map<String, String> shukei = shukeiMap.get(key);

			CAANMsg template = new CAANMsg(EAC0251B010CBSMsg.class.getName());

			// ●割引料金＜料金シミュレーション＞一覧照会
			template.set(JCMConstants.TEMPLATE_ID_KEY, "EAC0251B010");
			template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

			template.set(EAC0251B010CBSMsg.KEY_SYS_CD, this.sysCd);
			template.set(EAC0251B010CBSMsg.KEY_PRC_SVC_CD, shukei.get(WRIB_PRC_PRC_SVC_CD));
			template.set(EAC0251B010CBSMsg.KEY_WRIB_SHUK_CD, shukei.get(WRIB_PRC_WRIB_SHUK_CD));

			/* SC呼出実行 */
			Map<?, ?> result = scCall(template);

			CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
			CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EAC0251B010CBSMsg.EAC0251B010CBSMSG1LIST);

			BigDecimal wariPrc = BigDecimal.ZERO;

			if (outMsgLst != null && outMsgLst.length > 0)
			{
				CAANMsg outMsg = outMsgLst[0];
				BigDecimal wribValue = new BigDecimal(outMsg.getString(EAC0251B010CBSMsg1List.WRIB_VALUE));
				BigDecimal prc = new BigDecimal(shukei.get(WRIB_PRC_PRC));

				// 割引計算方法コード
				String wribCalcWayCd = outMsg.getString(EAC0251B010CBSMsg1List.WRIB_CALC_WAY_CD);
				if ("1".equals(wribCalcWayCd) || "2".equals(wribCalcWayCd))
				{
					// 置換割引
					if (wribValue.compareTo(prc) < 0)
					{
						wariPrc = prc.subtract(wribValue);
						wariPrc = wariPrc.negate();
					}
				}
				else if ("3".equals(wribCalcWayCd) || "4".equals(wribCalcWayCd))
				{
					// 金額割引
					if (wribValue.compareTo(prc) >= 0)
					{
						wariPrc = prc;
					}
					else
					{
						wariPrc = wribValue;
					}
				}
				else if ("5".equals(wribCalcWayCd) || "6".equals(wribCalcWayCd))
				{
					// 率割引
					wariPrc = prc.multiply(wribValue).divide(new BigDecimal(100));
				}

				wariPrc = JACCommonUtil.round("3", wariPrc, 0);
				Map<String, String> usePrc = new HashMap<String, String>();
				usePrc.put(USE_PRC_PCRS_CD, shukei.get("key_pcrs_cd"));
				usePrc.put(USE_PRC_PRC_SVC_CD, shukei.get("key_wrib_svc_tanka_no"));
				usePrc.put("prc_kmk_nm", shukei.get("wrib_svc_nm"));

				if(JFUStrConst.KK0841_WRIB_SVC_CD_SECUPA.equals(shukei.get(USE_WRIB_SVC_CD)))
				{
// ANK-3636-00-00 MOD START
					usePrc.put(USE_PRC_PRC_KMK_CD, RKC_21006051601);
// ANK-3636-00-00 MOD END
				}
				else
				{
					usePrc.put(USE_PRC_PRC_KMK_CD, outMsg.getString(EAC0251B010CBSMsg1List.WRIBPRC_KMK_CD));
				}

				usePrc.put(USE_PRC_PRC, wariPrc.toString());
				usePrc.put(USE_PRC_WRIB_YUSEN_JUN, shukei.get(WRIB_PRC_WRIB_YUSEN_JUN));
				usePrc.put(USE_WRIB_SVC_CD, shukei.get(USE_WRIB_SVC_CD));
				usePrc.put("seiky_amnt", wariPrc.toString());
				resultList.add(usePrc);
			}
		}

		for (int i = 0; i < resultList.size(); i++)
		{
			Map<String, String> usePrc = (Map<String, String>)resultList.get(i);

			// ●料金項目抽出変換＜料金シミュレーション＞一覧照会
			CAANMsg template = new CAANMsg(ECH0401B020CBSMsg.class.getName());
			template.set(JCMConstants.TEMPLATE_ID_KEY, "ECH0401B020");
			template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);

			template.set(ECH0401B020CBSMsg.KEY_SYS_CD, this.sysCd);
			template.set(ECH0401B020CBSMsg.KEY_APL_KINO_CD, this.kinoCd);
			template.set(ECH0401B020CBSMsg.KEY_PCRS_CD, usePrc.get(USE_PRC_PCRS_CD));
			template.set(ECH0401B020CBSMsg.KEY_PRC_SVC_CD, usePrc.get(USE_PRC_PRC_SVC_CD));
			template.set(ECH0401B020CBSMsg.KEY_PRC_KMK_CD, usePrc.get(USE_PRC_PRC_KMK_CD));

			/* SC呼出実行 */
			Map<?, ?> result = scCall(template);

			CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
			CAANMsg[] outMsgLst = templates[0].getCAANMsgList(ECH0401B020CBSMsg.ECH0401B020CBSMSG1LIST);

			if(outMsgLst != null)
			{
				for (int j = 0; j < outMsgLst.length; j++)
				{
					CAANMsg msg = outMsgLst[j];

					if(isNull(usePrc.get("prc_kmk_nm")))
					{
						// 料金項目名が未設定の場合、設定する
						usePrc.put("prc_kmk_nm", msg.getString(ECH0401B020CBSMsg1List.PRC_KMK_NM));
						break;
					}
				}
			}
		}

		return resultList;
	}

	/**
	 * その他の割引情報設定処理です。
	 *
	 * <br>
	 * @param keiyakuIraiSvcMap 契約依頼サービスマップ
	 * @param ksnType タイプ
	 * @param wribSbtCd 割引種別コード(1:初期費用/2:月額料金)
	 * @return 結果
	 */
	@SuppressWarnings("unchecked")
	private HashMap createOtherWrib(Map keiyakuIraiSvcMap, String ksnType, String wribSbtCd)
	{

		HashMap kkMap = new HashMap();

		// 割引サービスコード
		kkMap.put("wrib_svc_cd", keiyakuIraiSvcMap.get("key_wrib_svc_cd"));

		boolean wribSvcNmGetflg = false;
		Iterator ite = this.acPrsimlRsltList.iterator();
		while (ite.hasNext())
		{
			HashMap acMap = (HashMap)ite.next();

			if (acMap.containsKey("prc_kmk_cd") && acMap.containsKey("pcrs_cd"))
			{
				if ((acMap.get("prc_kmk_cd").equals(keiyakuIraiSvcMap.get("key_prc_kmk_cd")))
						&& (acMap.get("pcrs_cd").equals(keiyakuIraiSvcMap.get("key_pcrs_cd"))))
				{
					// 割引サービス名(マスタ)
					kkMap.put("wrib_svc_nm", (String)acMap.get("prc_kmk_nm"));
					wribSvcNmGetflg = true;

					break;
				}
				else if(!isNull(keiyakuIraiSvcMap.get("wrib_svc_nm")))
				{
					// 割引サービス名が独自で設定されている場合
					kkMap.put("wrib_svc_nm", keiyakuIraiSvcMap.get("wrib_svc_nm"));
					wribSvcNmGetflg = true;
					break;
				}
			}
		}

		// 割引サービス名が取得出来なかった場合、nullを返却
		if (!wribSvcNmGetflg)
		{
			return null;
		}

		// 割引サービス単価リスト
		ArrayList wribSvcTankaList = new ArrayList();

		HashMap wribsvcTankaMap = new HashMap();
		wribsvcTankaMap.put("wrib_sbt_cd", wribSbtCd);
		wribsvcTankaMap.put("svc_cd", (String)keiyakuIraiSvcMap.get("svc_cd"));
		wribsvcTankaMap.put("wrib_svc_tanka_no", (String)keiyakuIraiSvcMap.get("key_wrib_svc_tanka_no"));
		wribsvcTankaMap.put("prc_grp_cd", (String)keiyakuIraiSvcMap.get("key_prc_grp_cd"));
		wribsvcTankaMap.put("pcrs_cd", (String)keiyakuIraiSvcMap.get("key_pcrs_cd"));
		wribsvcTankaMap.put("pplan_cd", (String)keiyakuIraiSvcMap.get("key_pplan_cd"));
		wribsvcTankaMap.put("prc_kmk_cd", this.getPrcKmkCd((String)keiyakuIraiSvcMap.get("key_prc_grp_cd"),
				(String)keiyakuIraiSvcMap.get("key_pcrs_cd"), ksnType));

		wribSvcTankaList.add(wribsvcTankaMap);

		kkMap.put("wrib_svc_tanka_list", wribSvcTankaList);

		return kkMap;
	}

	/**
	 * 料金系サービスIF実行前処理です。
	 *
	 * <br>
	 * @param funcCode 機能コード
	 * @throws Exception
	 */
	private void acIfInit(String funcCode) throws Exception
	{
		sysCd = getSysParam(JACStrConst.SYSPARA_SYSTEM_CD, JACStrConst.SYSTEM_CD_PRC_SIMULATION);

		if(FUNC_CODE_KEY_01.equals(funcCode))
		{
			kinoCd = getSysParam(JACStrConst.SYSPARA_WORK_KINO_SKBT, JACStrConst.WORK_KINO_SKBT_SIMULATION1);
		}
		else
		{
			kinoCd = getSysParam(JACStrConst.SYSPARA_WORK_KINO_SKBT, JACStrConst.WORK_KINO_SKBT_SIMULATION2);
		}
	}

	/**
	 * <p>
	 * システムパラメータ取得。
	 * </p>
	 * @param bunruiId システムパラメータ分類コード
	 * @param paramId システムパラメータＩＤ
	 * @return システムパラメータ設定値
	 * @throws Exception
	 */
	private String getSysParam(String bunruiId, String paramId) throws Exception
	{
		String ret = "";
		CAANMsg template = new CAANMsg(EZM0311A010CBSMsg.class.getName());

		// テンプレートID
		template.set(JCMConstants.TEMPLATE_ID_KEY, "EZM0311A010");
		template.set(JCMConstants.FUNC_CODE_KEY, FUNC_CODE_KEY_01);
		template.set(EZM0311A010CBSMsg.KEY_SYS_PARAM_BUNRUI_CD, bunruiId);
		template.set(EZM0311A010CBSMsg.KEY_SYS_PARAM_ID, paramId);

		/* SC呼出実行 */
		Map<?, ?> result = scCall(template);

		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg[] outMsgLst = templates[0].getCAANMsgList(EZM0311A010CBSMsg.EZM0311A010CBSMSG1LIST);
		if (outMsgLst != null)
		{
			ret = outMsgLst[0].getString(EZM0311A010CBSMsg1List.SYS_PARAM_SETTE_VALUE_1);
		}

		return ret;
	}

	/**
	 * 月額料金に割引金額を追加する処理です。
	 *
	 * <br>
	 * @param inMap インマップ
	 * @param inWribSvcCd 割引サービスコード
	 * @param inWribSbtCd 割引種別コード
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void addOtherWrib(HashMap inMap, String inWribSvcCd, String inWribSbtCd) throws Exception
	{

		// 割引サービス単価リスト1
		List wribSvcTankaList = null;

		HashMap waribikiMap = null;
		HashMap wribSvcInfoMap = null;
		HashMap wribSvcTankaInfoMap = null;
		HashMap prcUwMap = null;

		String wribSvcCd = "";
		String wribSvcNm = "";
		String wribSbtCdTanka = "";
		String wribSvcCdSimu = "";
		String seikyAmntSimu = "";

		this.seikyAmntGk = 0;

		// 割引サービスリストの件数分処理を実行する
		for (int i = 0; i < this.kkWribSvcList.size(); i++)
		{
			wribSvcInfoMap = (HashMap)this.kkWribSvcList.get(i);

			wribSvcCd = (String)wribSvcInfoMap.get("wrib_svc_cd");
			wribSvcNm = (String)wribSvcInfoMap.get("wrib_svc_nm");
			wribSvcTankaList = (ArrayList)wribSvcInfoMap.get("wrib_svc_tanka_list");

			// 指定の割引サービスコードである場合
			if (inWribSvcCd.equals(wribSvcCd))
			{
				// 割引サービス単価リストの件数分処理を実行する
				for (int n = 0; n < wribSvcTankaList.size(); n++)
				{
					wribSvcTankaInfoMap = (HashMap)wribSvcTankaList.get(n);

					wribSbtCdTanka = (String)wribSvcTankaInfoMap.get("wrib_sbt_cd");

					// 指定の割引種別コードである場合
					if (inWribSbtCd.equals(wribSbtCdTanka))
					{
						for (int num = 0; num < this.acPrsimlRsltList.size(); num++)
						{
							waribikiMap = (HashMap)this.acPrsimlRsltList.get(num);

							wribSvcCdSimu = (String)waribikiMap.get("wrib_svc_cd");

							if (wribSvcCdSimu == null)
							{
								wribSvcCdSimu = "";
							}

							if ("99999999".equals(wribSvcCdSimu))
							{
								// 初期費用CPの場合、次のループへ
								continue;
							}

							if(!wribSvcCd.equals(wribSvcCdSimu))
							{
								// 割引サービスコードが異なる場合、次のループへ
								continue;
							}

							seikyAmntSimu = (String)waribikiMap.get("seiky_amnt");

							// 請求金額を加算
							if (isNullBlunk(seikyAmntSimu))
							{
								seikyAmntSimu = "0";
							}

							BigDecimal amnt = new BigDecimal(seikyAmntSimu);

							if (wribSvcCd.equals(wribSvcCdSimu))
							{
								prcUwMap = new HashMap<String, String>();
								prcUwMap.put("siky_amnt", String.valueOf(amnt.intValue()));
								prcUwMap.put("prc_uw_nm", ZENSPACE + wribSvcNm);

								this.prcUwlist.add(prcUwMap);
							}

							// マイナスの金額は返ってこないため、置き換える。
							this.seikyAmntGk = amnt.intValue();

							return;
						}
					}
				}
			}
		}
	}

	/**
	 * <p>
	 * 割引サービス料金シミュレーション
	 * </p>
	 *
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得I/F
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite getWribSvcSimulation(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fixedText);

		this.sessionHandle = handle;
		this.parameter = param;
		this.fixedText = fixedText;

		// inMapに設定がある場合のみ変数にセットする
		if (inMap.get("prc_svkei_list") != null)
		{
			// 料金サービス契約リスト
			this.prcSvkeiList = (ArrayList)inMap.get("prc_svkei_list");
		}

		// 割引サービス料金取得
		getWarisvcPrc(inMap);

		HashMap outMap = (HashMap)param.getData("JACPrcSimulationMsg");

		if (outMap != null)
		{
			if (outMap.containsKey(JACPrcSimulationMsg.JACPrcSimulationMSG2LIST))
			{
				inMap.put(JACPrcSimulationMsg.JACPrcSimulationMSG2LIST, outMap.get(JACPrcSimulationMsg.JACPrcSimulationMSG2LIST));
			}
		}
		param.setData(fixedText, inMap);

		// 結果を返却する。
		return param;
	}

	/**
	 * @param addTmpPayPrcNo
	 * @param initEohSikyAmntGk
	 * @return
	 */
	@SuppressWarnings("unchecked")
	private int addInitPrcSimulation(String addTmpPayPrcNo, int initEohSikyAmntGk)
	{

		// 一時支払料金一覧リストの件数分処理を実行する
		for (int num = 0; num < this.tmpyPrcIcrnList.size(); num++)
		{
			HashMap tmpyPrcIcrnMap = (HashMap)this.tmpyPrcIcrnList.get(num);

			String tmpPayPrcNo = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_no");
			String tmpPayPrcAmnt = (String)tmpyPrcIcrnMap.get("tmp_pay_prc_amnt");
			String prsimlPrcDspNmTmp = (String)tmpyPrcIcrnMap.get("prsiml_prc_dsp_nm");
			String prsimlPrcDspLvTmp = (String)tmpyPrcIcrnMap.get("prsiml_dsp_lv");

			// 料金シミュレーション表示レベルの数だけ全角スペースを追加
			String spaceAdd = "";
			if (isNullBlunk(prsimlPrcDspLvTmp))
			{
				prsimlPrcDspLvTmp = "0";
			}
			for (int number = 0; number < Integer.parseInt(prsimlPrcDspLvTmp); number++)
			{
				spaceAdd = spaceAdd + ZENSPACE;
			}

			// ＨＧＷ設置工事費の場合
			if (addTmpPayPrcNo.equals(tmpPayPrcNo))
			{
				HashMap prcUwMap = new HashMap<String, String>();
				prcUwMap.put("siky_amnt", tmpPayPrcAmnt);
				prcUwMap.put("prc_uw_nm", spaceAdd + prsimlPrcDspNmTmp);

				this.prcUwlist.add(prcUwMap);

				// 請求金額を加算
				if (isNullBlunk(tmpPayPrcAmnt))
				{
					tmpPayPrcAmnt = "0";
				}

				initEohSikyAmntGk = initEohSikyAmntGk + Integer.parseInt(tmpPayPrcAmnt);

				// 処理を抜ける
				break;
			}
		}

		return initEohSikyAmntGk;
	}
}
