/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：FUW01501SFLogic
*   ソースファイル名：FUW01501SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*    eo光テレビコース変更申込画面サービスフォームBeanビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/04/01   FJ）岡      新規作成
*   v3.00       2012/03/15   FJ）大野    【ANK-0281-01-00】オプション重複チェック対応
*   v3.00       2012/03/22   FJ）大野    【ANK-0041-01-00】申込完了メール対応
*   v4.00       2012/07/21   FJ）大野    【ANK-0368-00-00】11月からのＴＶキャンペーン開始に伴うＷＥＢ受付連携改修依頼
*   v4.00       2012/07/21   FJ）大野    【ANK-0381-00-00】ＩＰｖ６無料文言不備
*   v4.00       2012/08/16   FJ) 岡井    【ANK-0545-00-00】PMP：サービスコード対応
*   v4.00       2012/09/11   FJ) 岡井    【ANK-1162-00-00】サービス〜プランの保持体系変更
*   v3.00       2012/09/13   FJ) 山名    【ST1-2012-0000447】
*   v4.00       2012/10/16   FJ）文元    【IT1-2012-0001135】障害対応
*   v4.00       2012/10/19   FJ) 岡井    【ANK-1199-00-00】申込書明細番号の自動発番について
*   v4.00       2012/10/22   FJ) 岡井    【IT1-2012-0001105】「工事案件対象宅内機器」スキーマ対応
*   v4.00       2012/10/25   FJ) 岡井    【IT1-2012-0001669】LOT2-IT1障害対応
*   v4.00       2012/11/16   FJ) 岡井    【ANK-1224-00-00】機器の料金コース追加等について
*   v4.00       2012/12/03   FJ) 岡井    【IT2-2012-0001941】STB機器登録不正障害(地デジ・BS→新コース)
*   v4.00       2012/12/26   FJ) 岡井    【TAI-2012-0000136】オプション重複チェックで予約中機器の考慮漏れ対応
*   v4.00       2012/12/29   FJ) 瀧澤    【TAI-2012-0000136】異なる連絡先未入力時の対応
*   v5.00       2013/01/16   FJ) 井口    【ANK-1339-00-00】１０月案件
*   v5.00       2013/01/25   FJ) 西村    【ANK-1399-00-00】フロントS文言確認修正対応
*   v5.00       2013/03/25   FJ）中谷    【IT1-2013-0000565】工事受付Sへの異動無機器情報連携対応
*   v5.00       2013/03/27   FJ）文元    【IT1-2013-0000661】「EKK0341B509(機器提供サービス契約一覧照会)」の項目追加による修正
*   v5.00       2013/04/15   FJ）瀧澤    627 STB変更無し時にも料金表に有料のSTB代金が表示される対応
*   v5.00       2013/05/23   FJ）文元    【ANK-1523-00-00】〔現行システム対応〕フロントＳテレビキャンペーン対応(TV共通チェック追加)
*   v5.01       2013/08/29   FJ）文元    【OM-2013-0001219】機器提供サービス契約が解約、またはキャンセルの場合に宅内機器を取得しないよう対応
*   v5.02       2013/09/09   FJ）谷本    【OM-2013-0001423】テレビのコース変更の予約適用開始年月日の修正
*   v5.03       2013/11/11   FJ) 文元    【OM-2013-0004147】機器提供サービス契約からONU情報取得時、キャンセル・解約を対象外にする
*   v8.00       2014/01/27   FJ) 文元    【ANK-1589-00-00】消費増税に伴う料金施策
*   v8.00       2014/01/27   FJ) 畑中    【ANK-1916-00-00】フロント変更系料金シミュレーション注釈見直し
*   v10.00      2014/07/08   FJ) 西山    【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
*   v12.00      2014/11/18   FJ) 谷本    【OM-2014-0003562】視聴制御連携誤り対応
*   v12.00      2015/01/30   FJ) 臼杵    【ANK-2358-00-00】【ＮＯ．１８３３】【スタchセット割】フロントにおけるコース変更抑止条件の変更対応
*   v14.00      2015/04/22   FJ）西川    【OM-2015-0000720】工事案件の設定値(電話番号)の改修
*   v14.00      2015/05/07   FJ）西川    【OM-2015-0001000】BSパススルーのバナー表示条件誤り対応
*   v23.00      2016/01/30   FJ) 張本    【ANK-2716-00-00】STB申込時の申込完了メールの文面変更
*   v25.00      2016/04/19   FJ) 岡井    【ANK-2530-00-00】ＴＶ新コースおよびＶＯＤ導入
*   v25.00      2016/05/30   FJ) 岡井    【ANK-2530-00-00】ＴＶ新コースおよびＶＯＤ導入
*	v26.00      2016/06/09   FJ) 張本    【ANK-2687-00-00】プレミアムサポート施策
*   v25.00      2016/07/06   FJ) 岡井    【OM-2016-0001732】VOD異動予約登録不具合
*   v25.00      2016/07/14   FJ) 横山    【ANK-2530-13-00】【案件内仕変】STB交換なしのコース変更受付
*   v26.00      2016/08/05   FJ) 岡井    【OM-2016-0001901】VOD工事案件障害
*   v27.00      2016/09/12   FJ) 横山    【ANK-2985-00-00】消費者保護ルール見直し対応STEP3
*   v32.00      2017/06/07   FJ)西川     【ANK-3100-00-00】スマートコンパクト受付対応
*   v32.00.01   2017/05/30   FJ) 謝      【ANK-3057-00-00】自動送信メールの文面変更
*   v39.00      2018/08/24   FJ) 大島    【ANK-3464-00-00】地デジ・BSコースにWEBからSTB追加した際のキャンペーン自動付与
*   v39.00.00   2018/08/29   FJ）美濃原  【ANK-3488-00-00】４KSTB（ACASチップ）導入対応
*   v40.00.00   2019/01/04   FJ) 美濃原  【ANK-3509-00-00】TVコース変更時のVONU交換必須化対応（キャンペーン文言表示削除）
*   v47.0.0     2019/06/28   FJ) 大島    【ANK-3636-00-00】消費増税対応（8%⇒10%）
*   v52.00.00   2021/02/27   FJ) 星野    【ANK-3977-00-00】eoWeb画面の料金表記変更
*   v52.00.01   2021/02/12   FJ) 美濃原  【ANK-3991-00-00】STB新機種追加(2021年4月〜)
*   v53.00      2021/06/07   FJ）岡井    【ANK-4066-00-00】新4KSTBの申込可能条件変更
*   v62.00      2022/10/20   FJ）美濃原  【ANK-4335-00-00】ACAS対応新STB導入対応
*   v66.0.0     2023/01/31   FJ) 美濃原  【ANK-4307-00-00】【eo定期】プレミアムクラブリニューアル対応
*   v74.00.00   2025/02/14   FJ) 余野木  【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応
*   v74.1.0     2025/03/17   FJ)西川葵   【ANK-4669-00-00】2025年サービス基本料金値上げ対応  事前周知対応
*   v75.00.00   2025/04/21   FJ) 余野木  【ANK-4673-00-00】テレビ新コース（スカパー用）導入対応 2025年6月フォロー案件
**********************************************************************/
package eo.web.webview.FUW01501SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;
import static eo.common.constant.JFUStrConst.ERROR_CODE_0102;
import static eo.common.constant.JPCModelConstant.FUNC_CD_1;
import static eo.common.constant.JPCModelConstant.FUNC_CD_2;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JPCDateUtil;
import eo.common.util.JPCUtilCommon;
import eo.common.util.JZMCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0126_FUSV0126OPDBMapper;
import eo.web.webview.mapping.FUSV0127_FUSV0127OPDBMapper;
import eo.web.webview.mapping.FUSV0223_FUSV0223OPDBMapper;

/**
 * eo光テレビコース変更申込画面サービスフォームBeanビューロジック
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW01501SFLogic extends JCCWebBusinessLogic
{
	/** サービスユースケースID：eo光テレビコース変更申込(初期表示） */
	private static final String SVC_USECASE_ID_FUSV0126 = "FUSV0126";
	/** サービスユースケースID：eo光テレビコース変更申込(登録） */
	private static final String SVC_USECASE_ID_FUSV0127 = "FUSV0127";
	/** サービスユースケースID：会員情報更新依頼 */
	private static final String SVC_USECASE_ID_CKSV9001 = "CKSV9001";
	/** テンプレートID(サービス契約料金プラン変更) */
	private static final String TEMPLATE_ID_SVC_KEI_UPD = "EKK0101C060";
	/** テンプレートID(サービス契約内訳手続中料金プラン変更) */
	private static final String TEMPLATE_ID_SVC_KEI_UCWK_TTDKI_UPD = "EKK0161C100";
	/** テンプレートID(サービス契約内訳料金プラン変更) */
	private static final String TEMPLATE_ID_SVC_KEI_UCWK_UPD = "EKK0161C110";
	/** テンプレートID(サービス契約内訳<eo光TV>登録) */
	private static final String TEMPLATE_ID_SVC_KEI_UCWK_TRK = "EKK0181D010";
	/** テンプレートID(機器提供サービス契約料金コース変更) */
	private static final String TEMPLATE_ID_SVC_KEI_KKTK_UPD = "EKK0341C160";
	/** テンプレートID(機器提供サービス契約登録) */
	private static final String TEMPLATE_ID_SVC_KEI_KKTK_TRK = "EKK0341D010";
	/** テンプレートID(機器提供サービス契約機器変更手続開始) */
	private static final String TEMPLATE_ID_SVC_KEI_KKTK_CNG = "EKK0341C530";
	/** アイテムID(svc_kei_no) */
	private static final String ITEM_ID_SVC_KEI_NO = "svc_kei_no";
	/** アイテムID(upd_dtm_bf) */
	private static final String ITEM_ID_UPD_DTM_DF = "upd_dtm_bf";
	/** アイテムID(kktk_svc_cd) */
	private static final String ITEM_ID_KKTK_SVC_CD = "kktk_svc_cd";
	/** アイテムID(ido_div) */
	private static final String ITEM_ID_IDO_DIV = "ido_div";

	/** 運用日付 */
	private String operateDate = JFUStrConst.EMPTY;

	/** スタンダードコース */
	private static final String PCRS00 = "0";
	/** バリューコース */
	private static final String PCRS01 = "1";
	/** ライトコース */
	private static final String PCRS02 = "2";
	/** ベーシックＨＤコース */
	private static final String PCRS03 = "3";
	/** プレミアムＨＤコース */
	private static final String PCRS04 = "4";
	/** コンパクトコース */
	private static final String PCRS05 = "5";
	/** 地デジ・ＢＳコース */
	private static final String PCRS06 = "6";
	/** SDコース */
	private static final String PCRS07 = "7";
	/** HDコース */
	private static final String PCRS08 = "8";
	/** スマートベーシック */
	private static final String PCRS09 = "9";
	/** スマートプレミアム */
	private static final String PCRS10 = "10";
	/** スマートコンパクト */
	private static final String PCRS11 = "11";
	/** 新HDコース */
	private static final String PCRS12 = "12";
// ANK-4592-00-00 ADD START
	/** CSベーシック */
	private static final String PCRS13 = "13";
	/** CSプレミアム */
	private static final String PCRS14 = "14";
	/** 日付 */
	private static final String ONE_DAY = "01";
// ANK-4592-00-00 ADD END

// ANK-4592-00-00 MOD START
	/** コースリスト対応配列　ホーム
	 * 	0:スタンダード　1：バリュー　2：ライト　3：ベーシックHD　4：プレミアムHD
	 * 	5：コンパクト　6：地デジ・BS　7：SDコース　8：HDコース　9：スマートベーシック　10：スマートプレミアム　11：スマートコンパクト
	 *	12：HDコース(スマート)　13：CSベーシック　14：CSプレミアム */
	private static final String[] PCRS_CNG_LIST =
			{ JFUStrConst.CD00134_A35, JFUStrConst.CD00134_A33, JFUStrConst.CD00134_A34, JFUStrConst.CD00134_A40, JFUStrConst.CD00134_A41,
					JFUStrConst.CD00134_A36, JFUStrConst.CD00134_A37, JFUStrConst.CD00134_A38, JFUStrConst.CD00134_A39,
					JFUStrConst.CD00134_A86, JFUStrConst.CD00134_A87, JFUStrConst.CD00134_A85, JFUStrConst.CD00134_A39,
					JFUStrConst.CD00134_AC0, JFUStrConst.CD00134_AC1};
// ANK-4592-00-00 MOD END

// ANK-4592-00-00 MOD START
	/** コースリスト対応配列　ホーム
	 * 	0:スタンダード　1：バリュー　2：ライト　3：ベーシックHD　4：プレミアムHD
	 * 	5：コンパクト　6：地デジ・BS　7：SDコース　8：HDコース　9：スマートベーシック　10：スマートプレミアム　11：スマートコンパクト
	 * 	12：HDコース(スマート)　13：CSベーシック　14：CSプレミアム */
	private static final String[] PLAN_CNG_LIST =
			{ JFUStrConst.CD00565_PA3501, JFUStrConst.CD00565_PA3301, JFUStrConst.CD00565_PA3401, JFUStrConst.CD00565_PA4001,
					JFUStrConst.CD00565_PA4101, JFUStrConst.CD00565_PA3601, JFUStrConst.CD00565_PA3701, JFUStrConst.CD00565_PA3801,
					JFUStrConst.CD00565_PA3901, JFUStrConst.CD00565_PA8601, JFUStrConst.CD00565_PA8701, JFUStrConst.CD00565_PA8501,
					JFUStrConst.CD00565_PA3901, JFUStrConst.CD00565_PAC001, JFUStrConst.CD00565_PAC101};
// ANK-4592-00-00 MOD END

	/** コースリスト(新コース：ベーシックHD、プレミアムHD、コンパクト) */
	private static final List<String> NEW_PCRS_LIST = Arrays.asList(PCRS_CNG_LIST[Integer.parseInt(PCRS03)],
			PCRS_CNG_LIST[Integer.parseInt(PCRS04)], PCRS_CNG_LIST[Integer.parseInt(PCRS05)]);

	/** コースリスト(新コース(スマート)：スマートベーシック、スマートプレミアム、スマートコンパクト) */
	private static final List<String> SMT_PCRS_LIST = Arrays.asList(PCRS_CNG_LIST[Integer.parseInt(PCRS09)],
			PCRS_CNG_LIST[Integer.parseInt(PCRS10)], PCRS_CNG_LIST[Integer.parseInt(PCRS11)]);

// ANK-4592-00-00 ADD START
	/** コースリスト(CSコース：CSベーシック、CSプレミアム) */
	private static final List<String> PCRS_CS_LIST = Arrays.asList(PCRS13, PCRS14);
// ANK-4592-00-00 ADD END

	/** 機器リスト　選択しない用のグレード */
	private static final String MAX_GRADE = "999";

	/** 空白 */
	private static final String SPACE = JFUStrConst.EMPTY;
	/** ゼロ */
	private static final String ZERO = "0";
	/** 料金リストの基本コースフラグ設定 */
	private static final String MAIN_FLG_ONE = "1";
	/** 予約フラグ：0：契約中 */
	private static final String RSV_FLG0 = "0";
	/**  契約情報リスト 内訳契約状態：0：契約中 */
	private static final String UCWK_STATUS_0 = "0";
	/**  契約情報リスト 内訳契約状態：1：予約中 */
	private static final String UCWK_STATUS_1 = "1";
	/**  契約情報リスト 内訳契約状態：2：なし */
	private static final String UCWK_STATUS_2 = "2";
	/** コード種別：0　旧コース */
	private static final String PCRS_TYPE00 = "0";
	/** コード種別：1　新コース */
	private static final String PCRS_TYPE01 = "1";
	/** コード種別：2　地デジ */
	private static final String PCRS_TYPE02 = "2";
	/** コード種別：3　新コース(スマート) */
	private static final String PCRS_TYPE03 = "3";
// ANK-4673-00-00 ADD START
	/** コード種別：4　CSコース */
	private static final String PCRS_TYPE04 = "4";
// ANK-4673-00-00 ADD END
	/** STB月額料金名 取得キー */
	private static final String STB_RYOKIN_KEI_NAME = "stb_ryokin_kei_name";
	/** 合計名 取得キー */
	private static final String ALL_RYOKIN_KEI_NAME = "all_ryokin_kei_name";
	/** 初期費用リスト項目名 取得キー */
	private static final String SHOKI_RYOKIN_NAME = "syoki_ryokin_name";
// ANK-4592-00-00 ADD START
	/** 初期費用リスト項目名 取得キー(CSコース) */
	private static final String SHOKI_RYOKIN_NAME_CS = "syoki_ryokin_name_cs";
// ANK-4592-00-00 ADD END
	/** セット割引文言 */
	private static final String WARIBIKI_MONGON = "waribiki_mongon";
	/** STB選択文言 */
	private static final String STB_SELECT_MONGON = "stb_select_mongon";
	/** STB追加変更有無フラグ0 */
	private static final String STB_CNG_UMU_FLG_0 = "0";
	/** STB追加変更有無フラグ1 */
	private static final String STB_CNG_UMU_FLG_1 = "1";
	/** 機器変更画面遷移フラグ「0：未経由」を設定 */
	private static final String KIKI_CNG_FLG_0 = "0";
	/** 機器変更画面遷移フラグ「1：経由」を設定 */
	private static final String KIKI_CNG_FLG_1 = "1";
	/** BSパススルー申込有無フラグ0 */
	private static final String BSPT_MSKM_FLG_0 = "0";
	/** BSパススルー申込有無フラグ1 */
	private static final String BSPT_MSKM_FLG_1 = "1";
	/**BSパススルー申込可否フラグ0 「0:不可能」 */
	private static final String BSPASS_DISP_FLG0 = "0";
	/**BSパススルー申込可否フラグ1 「1:可能」 */
	private static final String BSPASS_DISP_FLG1 = "1";
	/** BSパススルー申込権限有無 0：権限無し */
	private static final String BSPT_MSKM_AUTH_0 = "0";
	/** BSパススルー申込権限有無 1：権限有り */
	private static final String BSPT_MSKM_AUTH_1 = "1";
	/** メールアドレス表示フラグ「0：非表示」 */
	private static final String MLAD_DISP_FLG0 = "0";
	/** メールアドレス表示フラグ「1:表示」 */
	private static final String MLAD_DISP_FLG1 = "1";
	/**契約台数　地デジ・ＢＳの初期値 */
	private static final String MSKM_STB_CNT1 = "1";
	/**契約台数　地デジ・ＢＳ以外の初期値 */
	private static final String MSKM_STB_CNT2 = "-1";
	/**機器変更可否フラグ 「0：変更不可能」 */
	private static final String STB_CNG_FLG_0 = "0";
	/**機器変更可否フラグ 「1：変更可能」*/
	private static final String STB_CNG_FLG_1 = "1";
	/**予約レコード有無フラグ 「0:なし」*/
	private static final String YOYAKU_FLG_0 = "0";
	/**予約レコード有無フラグ 「1:あり」*/
	private static final String YOYAKU_FLG_1 = "1";
	/**契約状態 「0:STB契約中のみ」*/
	private static final String STATUS_0 = "0";
	/**契約状態 「1:STB変更予約あり」*/
	private static final String STATUS_1 = "1";
	/**契約状態 「1:STB新規追加」*/
	private static final String STATUS_2 = "2";
	/**STB変更 「0:未変更」*/
	private static final String CHG_STB_0 = "0";
	/**STB変更 「1:変更」*/
	private static final String CHG_STB_1 = "1";
	/**機器選択リスト表示フラグ 「0:表示」*/
	private static final String KIKI_DISP_FLG_0 = "0";
	/**機器選択リスト表示フラグ 「1:非表示」*/
	private static final String KIKI_DISP_FLG_1 = "1";
	/**ライトコース有無フラグ 「0:なし」*/
	private static final String LIGHT_DISP_FLG_0 = "0";
	/**ライトコース有無フラグ 「1:あり」*/
	private static final String LIGHT_DISP_FLG_1 = "1";
	/**ＣＣ用　有無フラグ 「0:なし」*/
	private static final String CC_FLG_0 = "0";
	/**ＣＣ用　有無フラグ 「1:あり」*/
	private static final String CC_FLG_1 = "1";
	/**ＶＯＮＵＢＳパススルー可否 0：可*/
	private static final String BSPT_KEI_FLG_0 = "0";
	/**ＳＴＢＩＤ検索有無フラグ 「0：無」*/
	private static final String SC_STBID_FLG_0 = "0";
	/**ＳＴＢＩＤ検索有無フラグ 「1：有」*/
	private static final String SC_STBID_FLG_1 = "1";
// ANK-4592-00-00 ADD START
	/**ＣＳコース表示フラグ 「1:表示」*/
	private static final String CS_DISP_FLG_1 = "1";
	/**ＣＳコース表示フラグ 「0:非表示」*/
	private static final String CS_DISP_FLG_0 = "0";
// ANK-4592-00-00 ADD START
	/** ハイフン */
	private static final String HYHUN = "-";
	/** 料金コース種別コード */
	private static final String PCRS_STB_CD_01 = "1";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）機器提供サービス契約（STB)一覧照会 */
	private static final String SC_TITLE_FUSV012601SC = "FUSV012601SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）機器提供サービス契約（BCAS)一覧照会 */
	private static final String SC_TITLE_FUSV012602SC = "FUSV012602SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）機器提供サービス契約（CCAS)一覧照会 */
	private static final String SC_TITLE_FUSV012603SC = "FUSV012603SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）機器提供サービス契約（VONU)一覧照会 */
	private static final String SC_TITLE_FUSV012604SC = "FUSV012604SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）サービス契約一覧照会 */
	private static final String SC_TITLE_FUSV012605SC = "FUSV012605SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）サービス契約内訳一覧照会 */
	private static final String SC_TITLE_FUSV012606SC = "FUSV012606SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）連絡先一覧照会 */
	private static final String SC_TITLE_FUSV012607SC = "FUSV012607SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）一時支払金一意照会（出張費） */
	private static final String SC_TITLE_FUSV012608SC = "FUSV012608SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）一時支払金一意照会（交換手数料） */
	private static final String SC_TITLE_FUSV012609SC = "FUSV012609SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）一時支払金一意照会（追加手数料） */
	private static final String SC_TITLE_FUSV012610SC = "FUSV012610SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）一時支払金一意照会（BSPT工事費） */
	private static final String SC_TITLE_FUSV012611SC = "FUSV012611SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）マンション物件一意照会 */
	private static final String SC_TITLE_FUSV012612SC = "FUSV012612SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）宅内機器一意照会 */
	private static final String CC_TITLE_FUSV012601CC = "FUSV012601CC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）宅内機器型式一意照会 */
	private static final String SC_TITLE_FUSV012614SC = "FUSV012614SC";
	/** SCタイトル：eo光テレビコース変更申込(初期表示）料金コース一覧照会（eo光テレビ情報取得） */
	private static final String SC_TITLE_FUSV012615SC = "FUSV012615SC";
// ANK-4592-00-00 ADD START
	/** SCタイトル：eo光テレビコース変更申込(初期表示）一時支払金一意照会（契約事務手数料） */
	private static final String SC_TITLE_FUSV012617SC = "FUSV012617SC";
// ANK-4592-00-00 ADD END
	/** CCタイトル：STB宅内機器一覧取得CC */
	private static final String CC_TITLE_FUSV012603CC = "FUSV012603CC";

	/** CCタイトル：eo光テレビ登録(コース変更＆STB変更) */
	private static final String CC_TITLE_FUSV012702CC = "FUSV012702CC";
	/** CCタイトル：eo光テレビSTB追加変更申込 */
	private static final String CC_TITLE_FUSV012711CC = "FUSV012711CC";

	/** Mapキー：機器提供サービス契約一覧明細(STB) */
	private static final String MAP_KEY_SC1CBSMSGLIST = "EKK0341B509CBSMsg1List";
	/** Mapキー：機器提供サービス契約一覧明細(BCAS) */
	private static final String MAP_KEY_SC2CBSMSGLIST = "EKK0341B509CBSMsg1List";
	/** Mapキー：機器提供サービス契約一覧明細(CCAS) */
	private static final String MAP_KEY_SC3CBSMSGLIST = "EKK0341B509CBSMsg1List";
	/** Mapキー：機器提供サービス契約一覧明細(VONU) */
	private static final String MAP_KEY_SC4CBSMSGLIST = "EKK0341B509CBSMsg1List";
	/** Mapキー：サービス契約一覧明細 */
	private static final String MAP_KEY_SC5CBSMSGLIST = "EKK0081B515CBSMsg1List";
	/** Mapキー：サービス契約内訳一覧明細 */
	private static final String MAP_KEY_SC6CBSMSGLIST = "EKK0161B509CBSMsg1List";
	/** Mapキー：連絡先一覧明細 */
	private static final String MAP_KEY_SC7CBSMSGLIST = "ECK0201B001CBSMsg1List";
	/** Mapキー：一時支払金一意照会明細（出張費） */
	private static final String MAP_KEY_SC8CBSMSGLIST = "EKK0721A010CBSMsg1List";
	/** Mapキー：一時支払金一意照会明細（交換手数料） */
	private static final String MAP_KEY_SC9CBSMSGLIST = "EKK0721A010CBSMsg1List";
	/** Mapキー：一時支払金一意照会明細（追加手数料） */
	private static final String MAP_KEY_SC10CBSMSGLIST = "EKK0721A010CBSMsg1List";
	/** Mapキー：一時支払金一意照会明細（BSPT工事費） */
	private static final String MAP_KEY_SC11CBSMSGLIST = "EKK0721A010CBSMsg1List";
// ANK-4592-00-00 ADD START
	/** Mapキー：一時支払金一意照会明細（契約事務手数料） */
	private static final String MAP_KEY_SC17CBSMSGLIST = "EKK0721A010CBSMsg1List";
// ANK-4592-00-00 ADD END
	/** Mapキー：マンション物件一意照会明細 */
	private static final String MAP_KEY_SC12CBSMSGLIST = "EKK0861A010CBSMsg1List";
	/** Mapキー：宅内機器一意照会明細 */
	private static final String MAP_KEY_CC01CBSMSGLIST = "TKKIKISHOKAI1List";
	/** Mapキー：宅内機器型式一意照会明細 */
	private static final String MAP_KEY_SC14CBSMSGLIST = "EZM0411A010CBSMsg1List";
	/** Mapキー：料金コース一覧照会明細（eo光テレビ情報取得） */
	private static final String MAP_KEY_SC15CBSMSGLIST = "EKK0791B502CBSMsg1List";
	/** Mapキー：STB宅内機器一覧リスト(グレード考慮)  */
	private static final String MAP_KEY_CHG_STB_KIKI_LIST = "chg_stb_kiki_list";
	/** Mapキー：STB宅内機器一覧リスト(全て) */
	private static final String MAP_KEY_ADD_STB_KIKI_LIST = "add_stb_kiki_list";

	/** Mapキー：マンション物件コード */
	private static final String MAP_KEY_MANSION_BUKKEN_CD = "mansion_bukken_cd";
	/** Mapキー：オーナー契約番号  */
	private static final String MAP_KEY_OWNR_KEI_NO = "ownr_kei_no";
	/** Mapキー：料金グループコード */
	private static final String MAP_KEY_PRC_GRP_CD = "prc_grp_cd";
	/** Mapキー：料金コースコード */
	private static final String MAP_KEY_PCRS_CD = "pcrs_cd";
	/** Mapキー：料金コースコード名 */
	private static final String MAP_KEY_PCRS_CD_NM = "pcrs_cd_nm";
	/** Mapキー：料金プランコード（ホーム基本） */
	private static final String MAP_KEY_PPLAN_CD = "pplan_cd";
	/** Mapキー：料金プランコード(マンション基本) */
	private static final String MAP_KEY_PPLANM_CD = "pplanm_cd";
	/** Mapキー：料金プランコード(メゾン基本) */
	private static final String MAP_KEY_PPLANMZ_CD = "pplanmz_cd";
	/** Mapキー：料金コース追加料金プランコード（ホーム追加）  */
	private static final String MAP_KEY_PPLAN_CD_ADD = "pplan_cd_add";
	/** Mapキー：料金コース追加料金プランコード（マンション追加）  */
	private static final String MAP_KEY_PPLANM_CD_ADD = "pplanm_cd_add";
	/** Mapキー：料金コース基本プランの料金（ホーム基本）  */
	private static final String MAP_KEY_PRICE = "price";
	/** Mapキー：料金コース基本プランの料金（マンション基本）  */
	private static final String MAP_KEY_PRICEM = "pricem";
	/** Mapキー：料金コース基本プランの料金（メゾン基本）  */
	private static final String MAP_KEY_PRICEMZ = "pricemz";
	/** Mapキー：料金コース追加プランの料金（ホーム追加）  */
	private static final String MAP_KEY_PRICE_ADD = "price_add";
	/** Mapキー：料金コース追加プランの料金（マンション追加）  */
	private static final String MAP_KEY_PRICEM_ADD = "pricem_add";
	/** Mapキー：機器提供サービス契約番号 */
	private static final String MAP_KEY_KKTK_SVC_KEI_NO = "kktk_svc_kei_no";
	/** Mapキー：サービス契約内訳番号 */
	private static final String MAP_KEY_SVC_KEI_UCWK_NO = "svc_kei_ucwk_no";
	/** Mapキー：宅内機器型式コード */
	private static final String MAP_TAKNKIKI_MODEL_CD = "taknkiki_model_cd";
	/** Mapキー：機器製造番号 */
	private static final String MAP_KIKI_SEIZO_NO = "kiki_seizo_no";
	/** Mapキー：機器製造番号 */
	private static final String MAP_KEY_KIKI_SEIZO_NO = "key_kiki_seizo_no";
	/** Mapキー：機器変更番号 */
	private static final String MAP_KEY_KK_CHG_NO = "kiki_chg_no";
	/** Mapキー：連絡先コード */
	private static final String MAP_KEY_RRKS_CD = "rrks_cd";
	/** Mapキー：連絡方法コード */
	private static final String MAP_KEY_RRK_WAY_CD = "rrk_way_cd";
	/** Mapキー：連絡先種別コード */
	private static final String MAP_KEY_RRKS_SBT_CD = "rrks_sbt_cd";
	/** Mapキー：電話番号 */
	private static final String MAP_KEY_TELNO = "telno";
	/** Mapキー：一時支払料金額 */
	private static final String MAP_KEY_TMP_PAY_PRC_AMNT = "tmp_pay_prc_amnt";
	/** Mapキー：サービス開始年月日 */
	private static final String MAP_KEY_SVC_STA_YMD = "svc_sta_ymd";
	/** Mapキー：世代登録年月日時分秒 */
	private static final String MAP_KEY_GENE_ADD_DTM = "gene_add_dtm";
	/** Mapキー：料金コース名   */
	private static final String MAP_KEY_PCRS_NM = "pcrs_nm";
	/** Mapキー： 料金プラン単位名(ホーム基本)	    */
	private static final String MAP_KEY_PPLAN_KOTEI_TANI_NM = "pplan_kotei_tani_nm";
	/** Mapキー： 料金プラン単位名(ホーム追加)	    */
	private static final String MAP_KEY_PPLAN_TANI_NM_ADD = "pplan_kotei_tani_nm_add";
	/** Mapキー： 料金プラン単位名(マンション基本)	    */
	private static final String MAP_KEY_PPLAN_KOTEI_TANI_NMM = "pplan_kotei_tani_nmm";
	/** Mapキー： 料金プラン単位名(メゾン基本)	    */
	private static final String MAP_KEY_PPLAN_KOTEI_TANI_NMMZ = "pplan_kotei_tani_nmmz";
	/** Mapキー： 料金プラン単位名(マンション追加)	    */
	private static final String MAP_KEY_PPLAN_TANI_NMM_ADD = "pplan_kotei_tani_nmm_add";
	/** Mapキー：TVコースグループコード  */
	private static final String MAP_KEY_TV_COURSE_GRP_CD = "tv_course_grp_cd";
	/** Mapキー：料金コース種別コード   */
	private static final String MAP_KEY_PCRS_SBT_CD = "pcrs_sbt_cd";
	/** Mapキー：料金コースグレード順位  */
	private static final String MAP_KEY_PCRS_GRADE_JUN = "pcrs_grade_jun";
	/** Mapキー：機器提供サービスコード  */
	private static final String MAP_KEY_KKTK_SVC_CD = "kktk_svc_cd";
	/** Mapキー：表示順序  */
	private static final String MAP_KEY_DSP_JUN = "dsp_jun";
	/** Mapキー：ＨＤＤ容量コード名称  */
	private static final String MAP_KEY_HDD_CAPA_CD_NM = "hdd_capa_cd_nm";
	/** Mapキー：ＨＤＤ容量コード  */
	private static final String MAP_KEY_HDD_CAPA_CD = "hdd_capa_cd";
	/** Mapキー：予約中ＨＤＤ容量コード  */
	private static final String MAP_KEY_RSV_HDD_CAPA_CD = "rsv_hdd_capa_cd";
	/** Mapキー：宅内機器型式コード  */
	private static final String MAP_KEY_TAKNKIKI_MODEL_CD = "taknkiki_model_cd";
	/** Mapキー：ＳＴＢＩＤ  */
	private static final String MAP_KEY_STB_ID = "stb_id";
	/** Mapキー：ＶＯＮＵＢＳパススルー可否  */
	private static final String MAP_KEY_VONU_BSPT_KH = "vonu_bspt_kh";
	/** Mapキー：契約状態フラグ  */
	private static final String MAP_KEY_STATUS_FLG = "status_flg";
	/** Mapキー：異動レコード有無フラグ  */
	private static final String MAP_KEY_IDO_RSV_FLG = "ido_rsv_flg";
	/** Mapキー：異動予約詳細コード  */
	private static final String MAP_KEY_IDO_RSV_DTL_CD = "ido_rsv_dtl_cd";
	/** Mapキー：選択機器コース名  */
	private static final String MAP_KEY_RSV_PCRS_CD_NM = "rsv_pcrs_cd_nm";
	/** Mapキー：選択機器コースコード  */
	private static final String MAP_KEY_RSV_PCRS_CD = "rsv_pcrs_cd";
	/** Mapキー：選択機器プランコード  */
	private static final String MAP_KEY_RSV_PPLAN_CD = "rsv_pplan_cd";
	/** Mapキー：選択宅内機器型式コード  */
	private static final String MAP_KEY_RSV_TAKNKIKI_MODEL_CD = "rsv_taknkiki_model_cd";
	/** Mapキー：STB宅内機器リスト(グレード考慮)  */
	private static final String MAP_KEY_CHG_STB_LIST = "chg_stb_list";
	/** Mapキー：コード  */
	private static final String MAP_KEY_CD = "cd";
	/** Mapキー：名称  */
	private static final String MAP_KEY_NM = "nm";
	/** Mapキー：HDD  */
	private static final String MAP_KEY_HDD = "hdd";
	/** Mapキー：HDD容量  */
	private static final String MAP_KEY_HDDCD = "hddCd";
	/** Mapキー：プラン  */
	private static final String MAP_KEY_PPLAN = "pplan";
	/** Mapキー：料金  */
	private static final String MAP_KEY_PRC = "prc";
	/** Mapキー：グレード  */
	private static final String MAP_KEY_GLADE = "glade";
	/** Mapキー：表示順  */
	private static final String MAP_KEY_DISP = "disp";
	/** Mapキー：単価名  */
	private static final String MAP_KEY_TANINM = "taniNm";

	/** 機器リスト件数(5件)：メゾン以外  */
	private int KIKI_LIST_CNT = 5;
	/** 機器リスト件数(5件)：メゾン  */
	private static final int KIKI_LIST_CNT_MEZON = 1;
	
	/** CCタイトル：テレビコース名表示切替コモンコンポーネント処理 */
	private static final String CC_TITLE_FUSV012604CC = "FUSV012604CC";
	/** サービス名称 */
	private static final String CHBF_SVC_NM = "chbf_svc_nm";
	/** 料金プランコード */
	private static final String CHBF_PPLN_CD = "chbf_pplan_cd";
	/** 料金プランコード(コース変更先) */
	private static final String CHAF_PPLN_CD = "chaf_pplan_cd";

	/** 全機器リスト */
	private ArrayList<HashMap<String, String>> all_stb_list = new ArrayList<HashMap<String, String>>();
	/** 全機器リスト_BCAS */
	private ArrayList<HashMap<String, String>> all_stb_list_bcas = new ArrayList<HashMap<String, String>>();
	/** 全機器リスト_CCAS */
	private ArrayList<HashMap<String, String>> all_stb_list_ccas = new ArrayList<HashMap<String, String>>();
	/** VONUリスト */
	private ArrayList<HashMap<String, String>> vonu_list = new ArrayList<HashMap<String, String>>();
	/**機器提供サービス(VONU)マップ */
	private HashMap<String, HashMap<String, String>> vonu_map = new HashMap<String, HashMap<String, String>>();
	/**ＳＴＢＩＤマップ */
	private HashMap<String, String> stbid_map = new HashMap<String, String>();
	/** 契約情報リスト  */
	private ArrayList<HashMap<String, String>> keiyaku_list = new ArrayList<HashMap<String, String>>();
	/** 内訳リスト  */
	private ArrayList<HashMap<String, String>> pcrs_list = new ArrayList<HashMap<String, String>>();
	/** 連絡先リスト  */
	private ArrayList<HashMap<String, String>> address_list = new ArrayList<HashMap<String, String>>();

	/** サービス契約マップ  */
	private HashMap<String, HashMap<String, String>> local_kei_main_map = new HashMap<String, HashMap<String, String>>();
	/**機器提供サービス契約(STB) */
	private HashMap<String, HashMap<String, String>> stb_all_kei_map = new HashMap<String, HashMap<String, String>>();
	/**機器提供サービス契約（B_CAS） */
	private HashMap<String, HashMap<String, String>> stb_all_kei_map_bcas = new HashMap<String, HashMap<String, String>>();
	/** 機器提供サービス契約（C_CAS） */
	private HashMap<String, HashMap<String, String>> stb_all_kei_map_ccas = new HashMap<String, HashMap<String, String>>();
	/** サービス契約内訳マップ  */
	private HashMap<String, HashMap<String, String>> pcrs_all_kei_map = new HashMap<String, HashMap<String, String>>();
	/** 機器提供サービス契約番号格納リスト  */
	private String[] stb_no_list = new String[10];

	/**機器リスト（参照用）件数  */
	private int kiki_save_list_cnt = 0;

	/** 工事案件備考 接頭辞（電話番号）  */
	private static final String KOJIAK_BIKO_PREFIX_TEL = "●連絡先：連絡先電話番号：";

	/** 工事案件備考 接頭辞（携帯番号）  */
	private static final String KOJIAK_BIKO_PREFIX_KTAI = "●連絡先：携帯用電話番号：";

// ANK-3057-00-00 MOD START
//	/** メール文言 STB用 */
//	private static final String ML_STB_PREFIX =
//			"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + JFUStrConst.RETURN_CODE +
//			"なお、eo光テレビチューナーの変更・追加のお申込内容については" + JFUStrConst.RETURN_CODE +
//			"以下の通りとなります。" + JFUStrConst.RETURN_CODE + JFUStrConst.RETURN_CODE +
//			"《お申し込み内容》" + JFUStrConst.RETURN_CODE;
	/** メール文言 STB用 地デジ・BS */
	private static final String ML_STB_PREFIX_CDBS =
			"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + JFUStrConst.RETURN_CODE +
			"■お申し込みいただいたeo光テレビチューナー" + JFUStrConst.RETURN_CODE + JFUStrConst.RETURN_CODE;
	
	/** メール文言 STB用 地デジ・BS以外 */
	private static final String ML_STB_PREFIX_CDBS_OTHER =
			"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + JFUStrConst.RETURN_CODE +
			"■eo光テレビチューナーの追加／変更のお申し込み内容" + JFUStrConst.RETURN_CODE + JFUStrConst.RETURN_CODE;
// ANK-3057-00-00 MOD END
// ANK-4592-00-00 ADD START
	/** メール文言 地デジ・BS⇒CS */
	private static final String ML_PREFIX_CDBS_TOCS =
			"━━━━━━━━━━━━━━━━━━━━" + JFUStrConst.RETURN_CODE +
			"■変更後のコース" + JFUStrConst.RETURN_CODE;
// ANK-4592-00-00 ADD END
// ANK-4673-00-00 ADD START
	/** メール文言 CS⇒CS */
	private static final String ML_PREFIX_CDCS_TOCS =
			"━━━━━━━━━━━━━━━━━━━━" + JFUStrConst.RETURN_CODE +
			"■変更後のコース" + JFUStrConst.RETURN_CODE;
// ANK-4673-00-00 ADD END

	/** 工事案件 転記対象項目名リスト:機器提供サービス契約番号 */
	private static final String[] ITEM_NM_LIST_KKTK_SVC_KEI_NO =
			{ FUW01501SFConst.KKTK_SVC_KEI_NO_1, FUW01501SFConst.KKTK_SVC_KEI_NO_2, FUW01501SFConst.KKTK_SVC_KEI_NO_3,
					FUW01501SFConst.KKTK_SVC_KEI_NO_4, FUW01501SFConst.KKTK_SVC_KEI_NO_5, FUW01501SFConst.KKTK_SVC_KEI_NO_6,
					FUW01501SFConst.KKTK_SVC_KEI_NO_7, FUW01501SFConst.KKTK_SVC_KEI_NO_8, FUW01501SFConst.KKTK_SVC_KEI_NO_9,
					FUW01501SFConst.KKTK_SVC_KEI_NO_10, FUW01501SFConst.KKTK_SVC_KEI_NO_11, FUW01501SFConst.KKTK_SVC_KEI_NO_12,
					FUW01501SFConst.KKTK_SVC_KEI_NO_13, FUW01501SFConst.KKTK_SVC_KEI_NO_14, FUW01501SFConst.KKTK_SVC_KEI_NO_15,
					FUW01501SFConst.KKTK_SVC_KEI_NO_16 };

	/** 工事案件 転記対象項目名リスト:宅内機器種別コード */
	private static final String[] ITEM_NM_LIST_TAKNKIKI_SBT_CD =
			{ FUW01501SFConst.TAKNKIKI_SBT_CD_1, FUW01501SFConst.TAKNKIKI_SBT_CD_2, FUW01501SFConst.TAKNKIKI_SBT_CD_3,
					FUW01501SFConst.TAKNKIKI_SBT_CD_4, FUW01501SFConst.TAKNKIKI_SBT_CD_5, FUW01501SFConst.TAKNKIKI_SBT_CD_6,
					FUW01501SFConst.TAKNKIKI_SBT_CD_7, FUW01501SFConst.TAKNKIKI_SBT_CD_8, FUW01501SFConst.TAKNKIKI_SBT_CD_9,
					FUW01501SFConst.TAKNKIKI_SBT_CD_10, FUW01501SFConst.TAKNKIKI_SBT_CD_11, FUW01501SFConst.TAKNKIKI_SBT_CD_12,
					FUW01501SFConst.TAKNKIKI_SBT_CD_13, FUW01501SFConst.TAKNKIKI_SBT_CD_14, FUW01501SFConst.TAKNKIKI_SBT_CD_15,
					FUW01501SFConst.TAKNKIKI_SBT_CD_16 };

	/** 工事案件 転記対象項目名リスト:宅内機器異動コード */
	private static final String[] ITEM_NM_LIST_TAKNKIKI_IDO_CD =
			{ FUW01501SFConst.TAKNKIKI_IDO_CD_1, FUW01501SFConst.TAKNKIKI_IDO_CD_2, FUW01501SFConst.TAKNKIKI_IDO_CD_3,
					FUW01501SFConst.TAKNKIKI_IDO_CD_4, FUW01501SFConst.TAKNKIKI_IDO_CD_5, FUW01501SFConst.TAKNKIKI_IDO_CD_6,
					FUW01501SFConst.TAKNKIKI_IDO_CD_7, FUW01501SFConst.TAKNKIKI_IDO_CD_8, FUW01501SFConst.TAKNKIKI_IDO_CD_9,
					FUW01501SFConst.TAKNKIKI_IDO_CD_10, FUW01501SFConst.TAKNKIKI_IDO_CD_11, FUW01501SFConst.TAKNKIKI_IDO_CD_12,
					FUW01501SFConst.TAKNKIKI_IDO_CD_13, FUW01501SFConst.TAKNKIKI_IDO_CD_14, FUW01501SFConst.TAKNKIKI_IDO_CD_15,
					FUW01501SFConst.TAKNKIKI_IDO_CD_16 };

	/** 工事案件 転記対象項目名リスト:ＨＤＤ容量コード */
	private static final String[] ITEM_NM_LIST_HDD_CAPA_CD =
			{ FUW01501SFConst.HDD_CAPA_CD_1, FUW01501SFConst.HDD_CAPA_CD_2, FUW01501SFConst.HDD_CAPA_CD_3, FUW01501SFConst.HDD_CAPA_CD_4,
					FUW01501SFConst.HDD_CAPA_CD_5, FUW01501SFConst.HDD_CAPA_CD_6, FUW01501SFConst.HDD_CAPA_CD_7, FUW01501SFConst.HDD_CAPA_CD_8,
					FUW01501SFConst.HDD_CAPA_CD_9, FUW01501SFConst.HDD_CAPA_CD_10, FUW01501SFConst.HDD_CAPA_CD_11, FUW01501SFConst.HDD_CAPA_CD_12,
					FUW01501SFConst.HDD_CAPA_CD_13, FUW01501SFConst.HDD_CAPA_CD_14, FUW01501SFConst.HDD_CAPA_CD_15, FUW01501SFConst.HDD_CAPA_CD_16 };

	/** 工事案件 転記対象項目IDリスト:STB契約TVコースコード */
	private static final String[] ITEM_NM_LIST_STB_KEI_TV_CRS_CD =
			{ FUW01501SFConst.STB_KEI_TV_COURSE_CD_1, FUW01501SFConst.STB_KEI_TV_COURSE_CD_2, FUW01501SFConst.STB_KEI_TV_COURSE_CD_3,
					FUW01501SFConst.STB_KEI_TV_COURSE_CD_4, FUW01501SFConst.STB_KEI_TV_COURSE_CD_5, FUW01501SFConst.STB_KEI_TV_COURSE_CD_6,
					FUW01501SFConst.STB_KEI_TV_COURSE_CD_7, FUW01501SFConst.STB_KEI_TV_COURSE_CD_8, FUW01501SFConst.STB_KEI_TV_COURSE_CD_9,
					FUW01501SFConst.STB_KEI_TV_COURSE_CD_10, FUW01501SFConst.STB_KEI_TV_COURSE_CD_11, FUW01501SFConst.STB_KEI_TV_COURSE_CD_12,
					FUW01501SFConst.STB_KEI_TV_COURSE_CD_13, FUW01501SFConst.STB_KEI_TV_COURSE_CD_14, FUW01501SFConst.STB_KEI_TV_COURSE_CD_15,
					FUW01501SFConst.STB_KEI_TV_COURSE_CD_16 };

	/** 工事案件 転記対象項目IDリスト:旧STB＿ID */
	private static final String[] ITEM_NM_LIST_OLD_STB_ID =
			{ FUW01501SFConst.OLD_STB_ID_1, FUW01501SFConst.OLD_STB_ID_2, FUW01501SFConst.OLD_STB_ID_3, FUW01501SFConst.OLD_STB_ID_4,
					FUW01501SFConst.OLD_STB_ID_5, FUW01501SFConst.OLD_STB_ID_6, FUW01501SFConst.OLD_STB_ID_7, FUW01501SFConst.OLD_STB_ID_8,
					FUW01501SFConst.OLD_STB_ID_9, FUW01501SFConst.OLD_STB_ID_10, FUW01501SFConst.OLD_STB_ID_11, FUW01501SFConst.OLD_STB_ID_12,
					FUW01501SFConst.OLD_STB_ID_13, FUW01501SFConst.OLD_STB_ID_14, FUW01501SFConst.OLD_STB_ID_15, FUW01501SFConst.OLD_STB_ID_16 };

	/** 工事案件 転記対象項目IDリスト:旧HDD容量コード */
	private static final String[] ITEM_NM_LIST_OLD_HDD_CAPA_CD =
			{ FUW01501SFConst.OLD_HDD_CAPA_CD_1, FUW01501SFConst.OLD_HDD_CAPA_CD_2, FUW01501SFConst.OLD_HDD_CAPA_CD_3,
					FUW01501SFConst.OLD_HDD_CAPA_CD_4, FUW01501SFConst.OLD_HDD_CAPA_CD_5, FUW01501SFConst.OLD_HDD_CAPA_CD_6,
					FUW01501SFConst.OLD_HDD_CAPA_CD_7, FUW01501SFConst.OLD_HDD_CAPA_CD_8, FUW01501SFConst.OLD_HDD_CAPA_CD_9,
					FUW01501SFConst.OLD_HDD_CAPA_CD_10, FUW01501SFConst.OLD_HDD_CAPA_CD_11, FUW01501SFConst.OLD_HDD_CAPA_CD_12,
					FUW01501SFConst.OLD_HDD_CAPA_CD_13, FUW01501SFConst.OLD_HDD_CAPA_CD_14, FUW01501SFConst.OLD_HDD_CAPA_CD_15,
					FUW01501SFConst.OLD_HDD_CAPA_CD_16 };

	/** 工事案件 転記対象項目IDリスト:旧宅内機器型式コード */
	private static final String[] ITEM_NM_LIST_OLD_TAKN_MDL_CD =
			{ FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_1, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_2, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_3,
					FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_4, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_5, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_6,
					FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_7, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_8, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_9,
					FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_10, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_11, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_12,
					FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_13, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_14, FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_15,
					FUW01501SFConst.OLD_TAKNKIKI_MODEL_CD_16 };

	/** エラー表示画面項目箇所(チェック用)：change_pcrs_cd */
	private static final String ERR_PLACE_FIXIPAD_ITEM_ID_01 = "change_pcrs_cd";
	/** エラー表示画面項目箇所(チェック用)：pcrs0 */
	private static final String ERR_PLACE_FIXIPAD_ITEM_ID_02 = "pcrs0";
	/** エラー表示画面項目箇所(チェック用)：pcrs1 */
	private static final String ERR_PLACE_FIXIPAD_ITEM_ID_03 = "pcrs1";
	/** エラー表示画面項目箇所(チェック用)：pcrs2 */
	private static final String ERR_PLACE_FIXIPAD_ITEM_ID_04 = "pcrs2";
	/** エラー表示画面項目箇所(チェック用)：pcrs3 */
	private static final String ERR_PLACE_FIXIPAD_ITEM_ID_05 = "pcrs3";
	/** エラー表示画面項目箇所(チェック用)：pcrs4 */
	private static final String ERR_PLACE_FIXIPAD_ITEM_ID_06 = "pcrs4";
	/** 契約台数(CC用) */
	private static final String KEI_DAI_0 = "0";
	/** 契約台数(CC用) */
	private static final String KEI_DAI_1 = "1";
	/** 契約台数(CC用) */
	private static final String KEI_DAI_2 = "2";
	/** 契約台数(CC用) */
	private static final String KEI_DAI_3 = "3";
	/** 契約台数(CC用) */
	private static final String KEI_DAI_4 = "4";

	/** 申込完了メール送信部品呼出機能ID：地デジ・ＢＳ→新コース */
	private static final String FUW015_1 = "FUW015_1";
	/** 申込完了メール送信部品呼出機能ID：旧コース→新コース(追加変更無し) */
	private static final String FUW015_2 = "FUW015_2";
	/** 申込完了メール送信部品呼出機能ID：新コース→新コース、旧コース→旧コース(追加変更無し) */
	private static final String FUW015_3 = "FUW015_3";
	/** 申込完了メール送信部品呼出機能ID：旧コース→新コース(追加変更有り) */
	private static final String FUW015_4 = "FUW015_4";
	/** 申込完了メール送信部品呼出機能ID：新コース→新コース、旧コース→旧コース(追加変更有り) */
	private static final String FUW015_5 = "FUW015_5";
	/** 申込完了メール送信部品呼出機能ID：地デジ・ＢＳ→CSコース */
	private static final String FUW015_6 = "FUW015_6";
// ANK-4673-00-00 ADD START
	/** 申込完了メール送信部品呼出機能ID：CSコース→CSコース */
	private static final String FUW015_7 = "FUW015_7";
// ANK-4673-00-00 ADD END

	/** FUSV0223 */
	private static final String FUSV0223 = "FUSV0223";
	/** 料金表用定数：テーブルタイトル */
	private static final String PRC_INFO_AREA_TITLE2 = "初期費用";
	/** 料金表用定数：テーブルタイトル */
	private static final String PRC_INFO_AREA_TITLE3 = "eo光テレビチューナー月額料金";
	/** 料金表用定数：テーブルタイトル */
	private static final String PRC_INFO_AREA_TITLE4 = "お申し込み後の月額料金";
	/** 料金表用定数：テーブルスタイルクラス */
	private static final String PRC_INFO_AREA_CLASS = "wid120p:wid80p";
	/** 料金表用定数：テーブルタイトル [初期費用リスト項目名 取得キー] */
	private static final String SHOKI_BSPT_KOJI_RYOKIN_NAME = "bspt_ryokin_kei_name";
	/** Beanタイプ(リスト) */
	private static final String BEAN_TYPE_LIST = "list";

	/** 住居形態（ホーム） */
	private static final String JK_FORM_HOME = "1";
	/** 住居形態（マンション） */
	private static final String JK_FORM_MAN = "2";
	/** 住居形態（メゾン） */
	private static final String JK_FORM_MEZON = "3";

	/** BSパスチューナ */
	private static final String BSPT_PREFIX = "bspt_";
	/** BSパスチューナ */
	private static final String BSPT = "bspt";
	/** c0_0 */
	private static final String C0_0 = "c0_0";
	/** c0_1 */
	private static final String C0_1 = "c0_1";
	/** c1_0 */
	private static final String C1_0 = "c1_0";
	/** c1_1 */
	private static final String C1_1 = "c1_1";
	/** c3_0 */
	private static final String C3_0 = "c3_0";
	/** c3_1 */
	private static final String C3_1 = "c3_1";
	/** c4_0 */
	private static final String C4_0 = "c4_0";
	/** c4_1 */
	private static final String C4_1 = "c4_1";
	/** c5_0 */
	private static final String C5_0 = "c5_0";
	/** c5_1 */
	private static final String C5_1 = "c5_1";
	/** c6_0 */
	private static final String C6_0 = "c6_0";
	/** c6_1 */
	private static final String C6_1 = "c6_1";
	/** c7_0 */
	private static final String C7_0 = "c7_0";
	/** c7_1 */
	private static final String C7_1 = "c7_1";
	/** クラス名 基本料金 */
	private static final String FIXED_FEE = "fixed_fee";
	/** クラス名 初期費用 */
	private static final String INITIAL_COST = "initial_cost";

	/** 新しい料金コースコード */
	private static final String IDO_NEW_PCRS_CD = "ido_new_pcrs_cd";
	/** 新しい料金コースコード名 */
	private static final String IDO_NEW_PCRS_NM = "ido_new_pcrs_nm";
	/** 新しい料金料金プランコード */
	private static final String IDO_NEW_PPLAN_CD = "ido_new_pplan_cd";
	/** 料金表表示用単位 */
	private static final String SPACE_JPN_UNIT = " 円";
	/** タイトル１ */
	private static final String TITLE_0_0 = "title_0_0";
	/** タイトル２ */
	private static final String TITLE_1_0 = "title_1_0";
	/** タイトル３ */
	private static final String TITLE_2_0 = "title_2_0";
	/** タイトル４ */
	private static final String TITLE_3_0 = "title_3_0";
	/** タイトル５ */
	private static final String TITLE_4_0 = "title_4_0";
	/** K_SPACE */
	private static final String K_SPACE = "k_space";
	/** C_SPACE */
	private static final String C_SPACE = "c_space";
	/** MSKM_PREFIX */
	private static final String MSKM_PREFIX = "mskm_";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** プロパティファイル取得文字列 */
	private static final String PATH_GYOUMU_KISEI_COMMON = "DISPSETTING/SETTING[@screenId='#']/DISPTEXT[@groupid='GYOUMU_KISEI_COMMON']";
	/** プロパティファイル取得文字列 */
	private static final String PATH_GYOUMU_KISEI_FUW01501 = "DISPSETTING/SETTING[@screenId='FUW01501']/DISPTEXT[@groupid='GYOUMU_KISEI']";

	/** プロパティファイル取得文字列 STB機器情報 */
	private static final String PATH_STB_KIKI = "DISPSETTING/SETTING[@screenId='FUW01501']/DISPTEXT[@groupid='stbPattern']";
	/**  2016/09/12 ANK-2985-00-00 mod start */
	/** 有効機器取得項目配列 */
	private static final String[] STB_KIKI_ITEM_LIST = { "pattern_", "disp_start_", "disp_end_",
		"disp_pcrs_", "disp_jun_", "kiki_pcrs_cd_", "knytcs_flg_" };
	/**  2016/09/12 ANK-2985-00-00 mod end */

	/** THMLタグ th  */
	private static final String TAG_TH_S = "<th>";
	/** THMLタグ /th  */
	private static final String TAG_TH_E = "</th>";

	/** CCタイトル：異動予約取得コモンコンポーネント処理 */
	private static final String CC_TITLE_FUSV012605CC = "FUSV012605CC";
	/** 異動予約一覧 */
	private static final String OUT_IDO_RSV_SVC_KEI_LIST = "ido_rsv_svc_kei_list";

	/**機器コンボボックス値 「変更なし」*/
	private static final String KIKI_COMBO_NOCNG = "変更なし";

	/**  2016/09/12 ANK-2985-00-00 add start */
	/** 契約内容通知書フラグ：可 */
	private static final String KKPCRS_KNYCTS_LIST_FLG_KA = "1";
	/**  2016/09/12 ANK-2985-00-00 add end */

	/** ANK-3464-00-00 ADD START*/
	/** 定義取得ID 地上デジ・ＢＳコース　ベーシックほかメニュー移行時のＳＴＢ設置工事費無料 割引サービスコード */
	private static final String QUERY_ID_STBFREE_WRIB_CD = "stbfree_wrib_cd";
	/** ANK-3464-00-00 ADD END*/

	/** ＢＣＡＳ不要ＳＴＢフラグ：不要 */
	private static final String BCAS_FUYO_STB = "1";
	/** ＢＣＡＳ不要ＳＴＢフラグ：必要 */
	private static final String BCAS_NEED_STB = "0";

	/** フラグON */
	private static final String FLG_ON = "1";
	/** フラグOFF */
	private static final String FLG_OFF = "0";

// ANK-4592-00-00 ADD START
	/** テレビコース名：CSベーシック */
	private static final String COURSE_NM_CS_BAS = "CSベーシック";
	/** テレビコース名：CSプレミアム */
	private static final String COURSE_NM_CS_PRE = "CSプレミアム";
// ANK-4592-00-00 ADD END
//ANK-4669-00-00 ADD START
	/** 価格改定文言 */
	private static final String KAKAKU_KAITEI_COMMENT = "kakaku_kaitei_comment";
	/** 価格改定表示終了日付 */
	private static final String KAKAKU_KAITEI_COMMENT_ENDYMD = "kakaku_kaitei_comment_endymd";
//ANK-4669-00-00 ADD END

	/**
	 * マップに保持している業務規制コードをStringBufferで返す。
	 * 
	 * <br>
	 * @param gyomuKiseiMap
	 * @return
	 * @throws Exception
	 */
	private StringBuffer getGyomuKisei(Map<String, String> gyomuKiseiMap) throws Exception
	{
		Collection<String> gyomuKiseiCollection = gyomuKiseiMap.values();
		Iterator<String> itr = gyomuKiseiCollection.iterator();
		StringBuffer gyomuKiseiCd = new StringBuffer();
		while (itr.hasNext())
		{
			gyomuKiseiCd.append(itr.next());
		}

		return gyomuKiseiCd;
	}

	/**
	 * 業務規制情報を設定する。
	 * @return boolean true:規制中  false:規制中でない
	 */
	private void checkGyomuKisei() throws Exception
	{
		// 業務規制情報取得
		HashMap<String, Object> workKiseiInfoMap = JFUWebCommon.getBusinessControlMap(this);

		if (null != workKiseiInfoMap && 0 != workKiseiInfoMap.size())
		{
			// ●業務規制取得処理
			Map<String, String> gyomuKiseiMap = JFUWebCommon.getDispItemsAsMap(PATH_GYOUMU_KISEI_COMMON, QUERY_ATTR_NAME);
			Map<String, String> gyomuKiseiScreenIdMap = JFUWebCommon.getDispItemsAsMap(PATH_GYOUMU_KISEI_FUW01501, QUERY_ATTR_NAME);
			StringBuffer gyomuKiseiCd = new StringBuffer();
			gyomuKiseiCd = gyomuKiseiCd.append(getGyomuKisei(gyomuKiseiMap));
			gyomuKiseiCd = gyomuKiseiCd.append(JFUStrConst.COMMA);
			gyomuKiseiCd = gyomuKiseiCd.append(getGyomuKisei(gyomuKiseiScreenIdMap));

			String[] gyomuKiseiCdArray = gyomuKiseiCd.toString().split(JFUStrConst.COMMA);

			// 業務規制情報設定処理
			// 共有フォームBeanの取得
			X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
			// 業務規制リスト取得
			X31SDataBeanAccess workKiseiListBean = getWorkKiseiList(commonInfoBean);

			for (int i = 0; i < gyomuKiseiCdArray.length; i++)
			{
				// 業務規制情報マップから、対象規制情報を取得
				HashMap<?, ?> workKiseiMap = (HashMap<?, ?>)workKiseiInfoMap.get(gyomuKiseiCdArray[i]);

				// 業務規制フラグの取得
				String kiseiFlg = (String)workKiseiMap.get(JFUStrConst.KISEI_FLG);

				// フロント稼動対象規制フラグを設定
				if (JFUStrConst.CD01306_1.equals(kiseiFlg))
				{
					workKiseiListBean.sendMessageString(CommonInfoCFConst.FRONT_KADO_TRGT_KISEI_FLG_48, X31CWebConst.DATABEAN_SET_VALUE,
							JFUStrConst.CD01306_1);
					String errorCd = gyomuKiseiCdArray[i].toString().replace(JFUStrConst.S_SYSTEM_CD, JFUStrConst.EMPTY);
					// 規制フラグが"1"(規制中)の場合
					DEBUG_LOG.info("業務規制【メンテナンス中エラー】" + errorCd);
					// メンテナンス中エラー
					throw new JCCBusinessException(errorCd);
				}
			}
		}
	}

	/**
	 * フロント業務リスト
	 * @param commonInfoBean
	 * @return workKiseiListBean
	 */
	private X31SDataBeanAccess getWorkKiseiList(X31SDataBeanAccess commonInfoBean)
	{
		// フロント業務リストを取得
		X31SDataBeanAccessArray array = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_WORK_INFO);
		if (array.getCount() == 0)
		{
			array.addDataBean();
		}
		X31SDataBeanAccess frontWorkListBean = array.getDataBean(0);

		return frontWorkListBean;
	}

	/**
	 * 初期処理
	 * <br>
	 * @return	処理結果
	 * @throws Exception	例外
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		DEBUG_LOG.info("----- FUW01501SFLogic init Start -----");

		// ****************************************************************************************************
		// *初期設定
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBean宣言
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// 運用日付
		operateDate = JFUWebCommon.getOpeDate(this, null);

		// 利用可能サービスチェック
		JFUWebCommon.checkCommonRelation(this, SVC_USECASE_ID_FUSV0127);

		// 現顧客契約情報の最新化
		JFUWebCommon.refreshGenCustKei(this);

		// ****************************************************************************************************
		// *共有フォームBeanから設定値を取得
		// *****************************************************************************************************
		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得
		// -------------------------------------------------
		X31SDataBeanAccess webCustBean = commonInfoBean.getDataBeanArray(JFUWebCommon.GEN_CUST_KEI_INFO).getDataBean(0);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.SSO情報取得
		// -------------------------------------------------
		X31SDataBeanAccess ssoInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SSO_INFO).getDataBean(0);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得.サービス契約情報取得
		// -------------------------------------------------
		X31SDataBeanAccess genSvcKeiInfoList = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得.請求契約情報取得
		// -------------------------------------------------
		X31SDataBeanAccess genSeikyKeiInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SEIKY_KEI_INFO).getDataBean(0);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得.サービス契約情報.サービス契約回線内訳情報
		// -------------------------------------------------
		X31SDataBeanAccess genSvcKeiKaisenUcwkInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO).getDataBean(0);

		// 業務規制チェック
		checkGyomuKisei();

		// サービス契約回線内訳情報.回線場所都道府県名
		String stateNm = genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_STATE_NM_26, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス契約回線内訳情報.回線場所市区町村名
		String cityNm = genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_CITY_NM_26, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス契約回線内訳情報.回線場所大字通称名
		String oaztsuNm = genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_OAZTSU_NM_26, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス契約回線内訳情報.回線場所字丁目名
		String azchoNm = genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_AZCHO_NM_26, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス契約回線内訳情報.回線場所番地号
		String bnchigo = genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_BNCHIGO_26, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス契約回線内訳情報.回線場所住所補記・建物名
		String adrttm = genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_ADRTTM_26, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス契約回線内訳情報.回線場所住所補記・部屋番号
		String adrrm = genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_ADRRM_26, X31CWebConst.DATABEAN_GET_VALUE);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得.サービス契約情報.機器提供サービス契約情報
		// -------------------------------------------------
		X31SDataBeanAccessArray genKktkSvcKeiList = commonInfoBean.getDataBeanArray(JFUWebCommon.KKTK_SVC_KEI_INFO);
		// VONUの機器提供サービスコード取得
		String vonuKktkSvcCd = JFUStrConst.EMPTY;
		// 機器提供サービス契約番号
		String vonuKktkSvcKeiNo = JFUStrConst.EMPTY;
		// 宅内機器型式コード
		String vonuTaknkikiModelCd = JFUStrConst.EMPTY;
		// 最終更新年月日時分秒
		String vonulastupdDtm = JFUStrConst.EMPTY;
		// 料金コースコード（ＶＯＮＵ）
		String vonuPcrsCd = JFUStrConst.EMPTY;

		// VONU情報取得
		for (int listCnt = 0; listCnt < genKktkSvcKeiList.getCount(); listCnt++)
		{
			X31SDataBeanAccess kktkSvcKeiInfo = genKktkSvcKeiList.getDataBean(listCnt);
			String kktkSvcKeiStat = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KKTK_SVC_KEI_STAT_27, X31CWebConst.DATABEAN_GET_VALUE);

			// 機器提供サービス契約ステータスが申し込み不可のステータスの場合、読み飛ばし
			if (!enableKktkSvcKeiStat(kktkSvcKeiStat))
			{
				continue;
			}
			
			vonuKktkSvcCd = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KKTK_SVC_CD_27, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUStrConst.KK0771_KKTK_SVC_CD_C013.equals(vonuKktkSvcCd))
			{
				vonuKktkSvcKeiNo = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KKTK_SVC_KEI_NO_27, X31CWebConst.DATABEAN_GET_VALUE);
				vonuTaknkikiModelCd = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.TAKNKIKI_MODEL_CD_27, X31CWebConst.DATABEAN_GET_VALUE);
				vonulastupdDtm = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.LAST_UPD_DTM_27, X31CWebConst.DATABEAN_GET_VALUE);
				// 機器提供サービス契約情報.料金コースコード
				vonuPcrsCd = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.PCRS_CD_27, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}

		// ＳＴＢＩＤ取得要リスト取得(STB情報取得)
		X31SDataBeanAccess stbidList = null;
		int stbCnt = 0;
		for (int listCnt = 0; listCnt < genKktkSvcKeiList.getCount(); listCnt++)
		{
			X31SDataBeanAccess kktkSvcKeiInfo = genKktkSvcKeiList.getDataBean(listCnt);
			String kktkSvcCd = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KKTK_SVC_CD_27, X31CWebConst.DATABEAN_GET_VALUE);
			String kktkSvcKeiStat = kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KKTK_SVC_KEI_STAT_27, X31CWebConst.DATABEAN_GET_VALUE);

			// 機器提供サービス契約ステータスが申し込み不可のステータスの場合、読み飛ばし
			if (!enableKktkSvcKeiStat(kktkSvcKeiStat))
			{
				continue;
			}

			if (JFUStrConst.KK0771_KKTK_SVC_CD_C009.equals(kktkSvcCd))
			{
				if (kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KIKI_SEIZO_NO_27, X31CWebConst.DATABEAN_GET_VALUE) != null
						&& !SPACE.equals(kktkSvcKeiInfo.sendMessageString(CommonInfoCFConst.KIKI_SEIZO_NO_27, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					stbidList =
							JFUWebCommon
									.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.STBID_LIST + JFUWebCommon.SEP_N_LAST, stbCnt);
					stbidList.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_22, X31CWebConst.DATABEAN_SET_VALUE, kktkSvcKeiInfo.sendMessageString(
							CommonInfoCFConst.KIKI_SEIZO_NO_27, X31CWebConst.DATABEAN_GET_VALUE));
					stbCnt += 1;
				}
			}
		}

		// ****************************************************************************************************
		// *サービスフォームBeanの初期値設定
		// *****************************************************************************************************
		// SYSID
		serviceInfoBean.sendMessageString(FUW01501SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.SYSID_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 氏名
		serviceInfoBean.sendMessageString(FUW01501SFConst.CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.CUST_NM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// お客様名カナ
		serviceInfoBean.sendMessageString(FUW01501SFConst.CUST_KANA, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.CUST_KANA_22, X31CWebConst.DATABEAN_GET_VALUE));

		// メールアドレス
		serviceInfoBean.sendMessageString(FUW01501SFConst.I_RRKS_MLAD, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.RRKS_HOME_MLAD_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 勤務先名
		serviceInfoBean.sendMessageString(FUW01501SFConst.OFFC_NM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.OFFC_NM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者郵便番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_PCD, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_PCD_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者都道府県名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_STATE_NM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者住所コード
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_AD_CD_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者市区町村名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_CITY_NM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者大字通称名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_OAZTSU_NM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者字丁目名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_AZCHO_NM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者番地号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_BNCHIGO_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者住所補記・建物名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_ADRTTM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者住所補記・部屋番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_ADRRM_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者電話番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_TELNO_22, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_NO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_NO_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所住所未確定フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.KISN_PLC_AD_MI_FIX_FLG, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KISN_PLC_AD_MI_FIX_FLG_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所住所コード
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_AD_CD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所郵便番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_PCD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_PCD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所都道府県名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_STATE_NM_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 電話番号（表示用）
		serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_STC_SK_TELNO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_TELNO_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所電話番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_TELNO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_TELNO_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所市区町村名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_CITY_NM_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所大字通称名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_OAZTSU_NM_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所字丁目名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_AZCHO_NM_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所番地号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_BNCHIGO_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所住所補記・建物名
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_ADRTTM_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所住所補記・部屋番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLACE_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_ADRRM_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 集合住宅入居階数コード
		serviceInfoBean.sendMessageString(FUW01501SFConst.SHUGJ_NYUKYO_FLR_CNT_CD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.SHUGJ_NYUKYO_FLR_CNT_CD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 戸建建築階数コード
		serviceInfoBean.sendMessageString(FUW01501SFConst.KODATE_KCKU_FLR_CNT_CD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KODATE_KCKU_FLR_CNT_CD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 方角コード１
		serviceInfoBean.sendMessageString(FUW01501SFConst.DIRECTION_CD_1, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo.sendMessageString(
				CommonInfoCFConst.DIRECTION_CD_1_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 方角コード２
		serviceInfoBean.sendMessageString(FUW01501SFConst.DIRECTION_CD_2, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo.sendMessageString(
				CommonInfoCFConst.DIRECTION_CD_2_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 住所形態コード
		serviceInfoBean.sendMessageString(FUW01501SFConst.AD_FORM_CD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo.sendMessageString(
				CommonInfoCFConst.AD_FORM_CD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所＿契約者住所差異フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.KAISEN_PLC_KSH_AD_SAI_FLG, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLC_KSH_AD_SAI_FLG_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所区画整理中フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.KISN_PLC_KKK_SEIRI_CHU_FLG, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KISN_PLC_KKK_SEIRI_CHU_FLG_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 経度 ←
		serviceInfoBean.sendMessageString(FUW01501SFConst.LGTD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo.sendMessageString(
				CommonInfoCFConst.LGTD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 緯度 ←
		serviceInfoBean.sendMessageString(FUW01501SFConst.LTTD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo.sendMessageString(
				CommonInfoCFConst.LTTD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 座標補正有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.ZAHYO_HOSEI_UM, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo.sendMessageString(
				CommonInfoCFConst.ZAHYO_HOSEI_UM_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 関電営業所番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEPCO_BUSIOFFICE_NO, X31CWebConst.DATABEAN_SET_VALUE,
				genSvcKeiKaisenUcwkInfo.sendMessageString(CommonInfoCFConst.KEPCO_BUSIOFFICE_CD_26, X31CWebConst.DATABEAN_GET_VALUE));

		// eo光テレビチューナー設置場所住所
		String genKaisenPlace = JZMCommonUtil.getPtn01(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
		serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_STC_SAKI, X31CWebConst.DATABEAN_SET_VALUE, genKaisenPlace);

		// サービスコード
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiInfoList.sendMessageString(
				CommonInfoCFConst.SVC_CD_23, X31CWebConst.DATABEAN_GET_VALUE));

		// サービス契約番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiInfoList.sendMessageString(
				CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		// 提供方式契約番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.TK_HOSHIKI_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiInfoList.sendMessageString(
				CommonInfoCFConst.TK_HOSHIKI_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE));

		// 機器提供サービスコード
		serviceInfoBean.sendMessageString(FUW01501SFConst.KKTK_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.KK0771_KKTK_SVC_CD_C009);

		// 機器提供サービスコード(BCAS)
		serviceInfoBean.sendMessageString(FUW01501SFConst.KKTK_SVC_CD_BCAS, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.KK0771_KKTK_SVC_CD_C010);

		// 機器提供サービスコード(CCAS)
		serviceInfoBean.sendMessageString(FUW01501SFConst.KKTK_SVC_CD_CCAS, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.KK0771_KKTK_SVC_CD_C011);

		// 機器提供サービスコード(ＶＯＮＵ)
		serviceInfoBean.sendMessageString(FUW01501SFConst.VONU_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.KK0771_KKTK_SVC_CD_C013);

		// 機器提供サービス契約番号（ＶＯＮＵ)
		serviceInfoBean.sendMessageString(FUW01501SFConst.V_ONU_NO, X31CWebConst.DATABEAN_SET_VALUE, vonuKktkSvcKeiNo);

		// 最終更新年月日時分秒（ＶＯＮＵ）
		serviceInfoBean.sendMessageString(FUW01501SFConst.LAST_UPD_DTM_VONU, X31CWebConst.DATABEAN_SET_VALUE, vonulastupdDtm);

		// 料金コースコード（ＶＯＮＵ）
		serviceInfoBean.sendMessageString(FUW01501SFConst.VONU_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, vonuPcrsCd);

		// 宅内機器型式コード
		serviceInfoBean.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_SET_VALUE, vonuTaknkikiModelCd);

		// 機器製造番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_SET_VALUE, ssoInfo.sendMessageString(
				CommonInfoCFConst.KIKI_SEIZO_NO_STB_21, X31CWebConst.DATABEAN_GET_VALUE));

		// C_CASカードNo
		serviceInfoBean.sendMessageString(FUW01501SFConst.C_CAS_NO, X31CWebConst.DATABEAN_SET_VALUE, ssoInfo.sendMessageString(
				CommonInfoCFConst.KIKI_SEIZO_NO_21, X31CWebConst.DATABEAN_GET_VALUE));

		// Ｃ＿ＣＡＳカードＮｏ（表示用）
		String ccasDisp = ssoInfo.sendMessageString(CommonInfoCFConst.KIKI_SEIZO_NO_21, X31CWebConst.DATABEAN_GET_VALUE);
		if (ccasDisp != null && !SPACE.equals(ccasDisp))
		{
			ccasDisp = editKikiSeizoNo(ccasDisp);
			serviceInfoBean.sendMessageString(FUW01501SFConst.C_CAS_NO_DISP, X31CWebConst.DATABEAN_SET_VALUE, ccasDisp);
		}

		// サービス契約回線内訳番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_NO_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 請求契約番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, genSeikyKeiInfo.sendMessageString(
				CommonInfoCFConst.SEIKY_KEI_NO_32, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-3636-00-00 MOD START
		// 一時支払料金出張費リスト tmp_pay_11_list
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_PRC_NO_11, X31CWebConst.DATABEAN_SET_VALUE,
				JFUStrConst.KK0721_TMP_PAY_PRC_NO_210000000020);

		// 一時支払料金交換手数料リスト
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_PRC_NO_12, X31CWebConst.DATABEAN_SET_VALUE,
				JFUStrConst.KK0721_TMP_PAY_PRC_NO_210000000021);

		// 一時支払料金追加手数料リスト
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_PRC_NO_13, X31CWebConst.DATABEAN_SET_VALUE,
				JFUStrConst.KK0721_TMP_PAY_PRC_NO_210000000022);

		// 一時支払料金番号(BSPT工事費)リスト
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_PRC_NO_14, X31CWebConst.DATABEAN_SET_VALUE,
				JFUStrConst.KK0721_TMP_PAY_PRC_NO_210000000023);
// ANK-3636-00-00 MOD END

// ANK-4592-00-00 ADD START
		// 一時支払料金契約事務手数料リスト
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_PRC_NO_15, X31CWebConst.DATABEAN_SET_VALUE,
				JFUStrConst.KK0721_TMP_PAY_PRC_NO_210054376010);
// ANK-4592-00-00 ADD END

		// 一時支払料金出張費
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_11_LIST, X31CWebConst.DATABEAN_SET_VALUE, ZERO);

		// 一時支払料金交換手数料
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_12_LIST, X31CWebConst.DATABEAN_SET_VALUE, ZERO);

		// 一時支払料金追加手数料
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_13_LIST, X31CWebConst.DATABEAN_SET_VALUE, ZERO);

		// 一時支払料金BSPT工事費
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_14_LIST, X31CWebConst.DATABEAN_SET_VALUE, ZERO);

// ANK-4592-00-00 ADD START
		// 一時支払料金契約事務手数料
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_15_LIST, X31CWebConst.DATABEAN_SET_VALUE, ZERO);
// ANK-4592-00-00 ADD END

		// BSパススルー申込有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_FLG_0);

		// BSパススルー申込権限有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_MSKM_AUTH, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_AUTH_0);

		// 予約レコード有無フラグ 「0:なし」を設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.YOYAKU_FLG, X31CWebConst.DATABEAN_SET_VALUE, YOYAKU_FLG_0);

		// 機器変更可否フラグ 「0：変更不可能」を設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_FLG_0);

		// マンション物件番号を設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.MANSION_BUKKEN_NO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.MANSION_BUKKEN_NO_26, X31CWebConst.DATABEAN_GET_VALUE));

		// 変更後料金コース　設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, SPACE);

		// 初期費用表示有無フラグ　設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.RYOKIN_4_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, ZERO);

		// ライトコース有無フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.LIGHT_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, LIGHT_DISP_FLG_0);

		// STB追加変更有無フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_UMU_FLG_0);

		// 機器変更画面遷移フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_0);

		// 最終更新年月日時分秒（サービス契約）
		serviceInfoBean.sendMessageString(FUW01501SFConst.LAST_UPD_DTM_KEI, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiInfoList.sendMessageString(
				CommonInfoCFConst.LAST_UPD_DTM_23, X31CWebConst.DATABEAN_GET_VALUE));

		// 料金グループコード
		serviceInfoBean.sendMessageString(FUW01501SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00133_11);

		// ＳＴＢＩＤ検索有無フラグ 「0：無」
		serviceInfoBean.sendMessageString(FUW01501SFConst.SC_STBID_FLG, X31CWebConst.DATABEAN_SET_VALUE, SC_STBID_FLG_0);

// ANK-4673-00-00 MOD START
		// 契約中のコースが地デジ・ＢＳ、CSベーシック、CSプレミアム以外の場合、ＳＴＢＩＤ検索有無フラグ 「1：有」
		if (!PCRS_CNG_LIST[Integer.parseInt(PCRS06)].equals(genSvcKeiInfoList.sendMessageString(CommonInfoCFConst.PCRS_CD_23,
				X31CWebConst.DATABEAN_GET_VALUE))
				&& !PCRS_CNG_LIST[Integer.parseInt(PCRS13)].equals(genSvcKeiInfoList.sendMessageString(CommonInfoCFConst.PCRS_CD_23,
						X31CWebConst.DATABEAN_GET_VALUE))
				&& !PCRS_CNG_LIST[Integer.parseInt(PCRS14)].equals(genSvcKeiInfoList.sendMessageString(CommonInfoCFConst.PCRS_CD_23,
						X31CWebConst.DATABEAN_GET_VALUE)))
// ANK-4673-00-00 MOD END
		{
			serviceInfoBean.sendMessageString(FUW01501SFConst.SC_STBID_FLG, X31CWebConst.DATABEAN_SET_VALUE, SC_STBID_FLG_1);
		}
// ANK-3872-00-00 ADD START
		// ご契約者住所／電話番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.CONTRACT_TELNO, X31CWebConst.DATABEAN_SET_VALUE, webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_TELNO_22, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所住所／電話番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.USE_PLACE_TELNO, X31CWebConst.DATABEAN_SET_VALUE, genSvcKeiKaisenUcwkInfo
				.sendMessageString(CommonInfoCFConst.KAISEN_PLACE_TELNO_26, X31CWebConst.DATABEAN_GET_VALUE));
		// 連絡先電話選択(契約者電話番号を初期選択とする)
		serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TEL_SELECT, X31CWebConst.DATABEAN_SET_VALUE, "1");
// ANK-3872-00-00 ADD END

// ANK-4592-00-00 ADD START
		// ＣＳコース表示フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.CS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, CS_DISP_FLG_1);
// ANK-4592-00-00 ADD END

		// ****************************************************************************************************
		// * サービスより情報取得
		// *****************************************************************************************************
		// サービス検索条件格納用マップ
		HashMap<String, HashMap<String, String>> inputMap = new HashMap<String, HashMap<String, String>>();
		// サービス処理結果格納用マップ
		HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap =
				new HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>>();

		// サービスパラメータ生成
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_FUSV0126);
		String bsptWribSvcCd = JFUWebCommon.getBsptWribSvcCd();

		// -------------------------------------------------
		// DataBean-BPマッピングクラス生成
		// -------------------------------------------------
		FUSV0126_FUSV0126OPDBMapper mapper = new FUSV0126_FUSV0126OPDBMapper();
		// 上り/下りマッピング用パラメータ生成
		X31SDataBeanAccess[] serviceFormBeanArray = new X31SDataBeanAccess[] { serviceInfoBean, commonInfoBean };

		// 機器提供サービス契約一覧（STB)の加工処理（FUSV012601SC）)SC上りマッピング
		mapper.setFUSV012601SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 機器提供サービス契約一覧（STB)の加工処理（FUSV012601SC）SC上りマッピング
		mapper.setFUSV012602SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 機器提供サービス契約一覧（CCAS)の加工処理（FUSV012603SC）SC上りマッピング
		mapper.setFUSV012603SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 機器提供サービス契約一覧（VONU)の加工処理（FUSV012604SC）SC上りマッピング
		mapper.setFUSV012604SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// サービス契約一覧の加工処理（FUSV012605SC）SC上りマッピング
		mapper.setFUSV012605SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// サービス契約内訳一覧の加工処理（FUSV012606SC）SC上りマッピング
		mapper.setFUSV012606SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 連絡先一覧の加工処理（FUSV012607SC）SC上りマッピング
		mapper.setFUSV012607SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 一時支払金一意照会（出張費）の加工処理SC上りマッピング
		mapper.setFUSV012608SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 一時支払金一意照会（交換手数料）の加工処理SC上りマッピング
		mapper.setFUSV012609SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 一時支払金一意照会（追加手数料）の加工処理SC上りマッピング
		mapper.setFUSV012610SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 一時支払金一意照会（BSPT工事費）の加工処理SC上りマッピング
		mapper.setFUSV012611SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// マンション物件の加工処理SC上りマッピング
		mapper.setFUSV012612SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 宅内機器一意照会の加工処理CC上りマッピング
		mapper.setFUSV012601CC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 宅内機器型式一意照会の加工処理SC上りマッピング
		mapper.setFUSV012614SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 料金コース一覧照会の加工処理SC上りマッピング
		mapper.setFUSV012615SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// 機器提供サービス契約一覧（STB)の加工処理SC上りマッピング
		mapper.setFUSV0126WORK01(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// キャンペーン文言一覧照会CCの上りマッピング（BSパススルーの割引サービス契約が登録されているかチェック）
		mapper.setFUSV012602CC(serviceFormBeanArray, inputMap, FUNC_CD_1, bsptWribSvcCd);
		// サービス契約一覧照会（SYSID）2の上りマッピング
		mapper.setFUSV012616SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
		// STB宅内機器取得CCの上りマッピング
		mapper.setFUSV012603CC(serviceFormBeanArray, inputMap);
		// テレビコース名表示切替CCの上りマッピング
		mapper.setFUSV012604CC(serviceFormBeanArray, inputMap);
		// 異動予約取得CCの上がりマッピング
		mapper.setFUSV012605CC(serviceFormBeanArray, inputMap);
// ANK-4592-00-00 ADD START
		// 一時支払金一意照会（契約事務手数料）の加工処理SC上りマッピング
		mapper.setFUSV012617SC(serviceFormBeanArray, inputMap, FUNC_CD_1);
// ANK-4592-00-00 ADD END

		// -------------------------------------------------
		// ■FUSV0126　eo光テレビコース変更サービス呼び出し■
		// -------------------------------------------------
		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 業務エラーを再throw
			DEBUG_LOG.info("----- FUW01501_init() サービス実行エラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// 住居形態　１：ホーム　２：マンション　３：メゾン
		String jkFromKb = JK_FORM_HOME;

		// -------------------------------------------------
		// 機器提供サービス契約一覧（STB)の加工処理（FUSV012601SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC1(commonInfoBean, serviceInfoBean, outputMap);
		// -------------------------------------------------
		// 機器提供サービス契約一覧（BCAS)の加工処理（FUSV012602SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC2(commonInfoBean, serviceInfoBean, outputMap);
		// -------------------------------------------------
		// 機器提供サービス契約一覧（CCAS)の加工処理（FUSV012603SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC3(commonInfoBean, serviceInfoBean, outputMap);
		// -------------------------------------------------
		// 機器提供サービス契約一覧（VONU)の加工処理（FUSV012604SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC4(commonInfoBean, serviceInfoBean, outputMap);

		// -------------------------------------------------
		// マンション物件の加工処理（FUSV012612SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		jkFromKb = editDispMapSC12(commonInfoBean, serviceInfoBean, outputMap, jkFromKb);
		// -------------------------------------------------
		// 料金コース一覧照会（料金コース月額料金取得用）の加工処理（FUSV012615SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		jkFromKb = editDispMapSC15(commonInfoBean, serviceInfoBean, outputMap, jkFromKb);
		// -------------------------------------------------
		// 料金コース一覧照会（機器の月額料金取得用）の加工処理（FUSV012616SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		// オンライン運用日取得
		String opeDate = JFUWebCommon.getOpeDate(this, null);
		setFuOpedate(commonInfoBean, opeDate);
		// STB名称の表示切替フラグ +++++*
		boolean stbNameFlg = JFUWebCommon.getStbNameFlg(opeDate);
		// プロパティから取得した機器情報を元にMAPを取得（KEY:機器の料金コースコード、値：宅内機器型式コード）
		Map<String, String> mapTaknaiKikiCd = JFUWebCommon.getKikiPcrsMdlMap(opeDate);
		editDispMapSC16(commonInfoBean, serviceInfoBean, outputMap, stbNameFlg, mapTaknaiKikiCd);

		// -------------------------------------------------
		// サービス契約一覧の加工処理（FUSV012605SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC5(commonInfoBean, serviceInfoBean, outputMap);

		// サービス契約一覧照会（SYSID）2 (FUSV012616SC)の下りマッピング処理
		mapper.getFUSV012616SC(serviceFormBeanArray, outputMap);

		// 機器機種変更中の予約中の場合は、エラーにする。
		chkKikiMdlChgRsvcv(outputMap);

		// テレビ関連の申し込み可否チェック処理
		checkTvMskmAvailable(outputMap);

		// -------------------------------------------------
		// サービス契約状態チェック
		// -------------------------------------------------
		if (local_kei_main_map.get(RSV_FLG0) == null)
		{
			// サービス契約にレコードが存在しないためエラー
			DEBUG_LOG.info("----- FUW01501_init() サービス契約未存在エラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}

		HashMap<String, String> keiMainMap = local_kei_main_map.get(RSV_FLG0);
		// STATUS_FLG --契約状態フラグ(0：追加予約中　1：契約中)
		String statusFlg = keiMainMap.get(MAP_KEY_STATUS_FLG);
		if (ZERO.equals(statusFlg))
		{
			// サービス契約に契約中レコードが存在しないためエラー
			DEBUG_LOG.info("----- FUW01501_init() サービス契約、契約中レコード未存在エラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}

		// IDO_RSV_FLG --異動予約.異動レコード有無フラグ(0：無　1：有)
		String idoRsvFlg = keiMainMap.get(MAP_KEY_IDO_RSV_FLG);
		// IDO_RSV_DTL_CD --異動予約.異動予約詳細コード(003:コース変更、005:サービス休止、006:サービス休止解除、007:サービス解約、009:回線利用場所変更)
		if (!ZERO.equals(idoRsvFlg))
		{
			// サービス契約が予約中のためエラー
			DEBUG_LOG.info("----- FUW01501_init() サービス契約予約中エラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}

		// コース種別取得
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		// -------------------------------------------------
		// 契約中STB件数チェック
		// -------------------------------------------------
// ANK-4673-00-00 MOD START
		if (!PCRS_TYPE02.equals(pcrsType) && !PCRS_TYPE04.equals(pcrsType))
		{
			// 契約中コースが地デジ・BS、CSベーシック、CSプレミアム以外の場合
// ANK-4673-00-00 MOD END
			if (all_stb_list.size() <= 0)
			{
				// 機器提供サービス契約が存在しないため、エラー
				DEBUG_LOG.info("----- FUW01501_init() 機器提供サービス契約未存在エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
		}

// ANK-4673-09-00 ADD START
		// 契約中コースがCSベーシック、CSプレミアムの場合
		if (PCRS_TYPE04.equals(pcrsType))
		{
			// 蓋開日より前の場合はエラー
			if (!JFUWebCommon.isAnk4673Open(opeDate))
			{
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
		}
// ANK-4673-09-00 ADD END

		// テレビコース名表示切替チェック
		// テレビコース名表示切替から料金プランコード、料金プランコード(コース変更先)を取得
		HashMap parentMap = (HashMap)outputMap.get(CC_TITLE_FUSV012604CC);
		String chafPplncd = (String)parentMap.get(CHAF_PPLN_CD);
		String chbfPplncd = (String)parentMap.get(CHBF_PPLN_CD);
		// -------------------------------------------------
		// テレビコース名表示切替チェック
		// -------------------------------------------------
		//料金プランコード、または料金プランコード(コース変更先)が地デジ・ＢＳコース　スターチャンネルセット(割引有)の場合はエラー
		if (JFUStrConst.CD00565_PZ0201.equals(chbfPplncd) || JFUStrConst.CD00565_PZ0201.equals(chafPplncd)) 

		{
			DEBUG_LOG.info("----- FUW01501_init() テレビコース名表示切替存在エラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}
		
		// -------------------------------------------------
		// サービス契約内訳一覧の加工処理（FUSV012606SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		HashMap<String, String> resutMap = editDispMapSC6(commonInfoBean, serviceInfoBean, outputMap);
		boolean exists4KSTB = ((resutMap.get("exists4KSTB").equals(FLG_ON)) ? (true) : (false));
		String old4Kstb = resutMap.get("old4Kstb");
		// コース種別取得
		pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		serviceInfoBean.sendMessageString(FUW01501SFConst.HOYU_STB_4K_OLD, X31CWebConst.DATABEAN_SET_VALUE, old4Kstb);

		// -------------------------------------------------
		// サービス契約内訳状態チェック
		// -------------------------------------------------
// ANK-4673-00-00 MOD START
		if (!PCRS_TYPE02.equals(pcrsType) && !PCRS_TYPE04.equals(pcrsType))
// ANK-4673-00-00 MOD END
		{
			// サービス契約内訳番号
			String svcKeiUcwkNo = serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE);

			// レコードが存在しない場合
			if (pcrs_all_kei_map.get(svcKeiUcwkNo) == null)
			{
				// サービス契約内訳にC-CASカード番号に対応するレコードが存在しないためエラー
				DEBUG_LOG.info("----- FUW01501_init() サービス契約内訳未存在エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}

			HashMap<String, String> ucwkMainMap = pcrs_all_kei_map.get(svcKeiUcwkNo);
			// STATUS_FLG --契約状態フラグ(0：追加予約中　1：契約中)
			String ucwkStatusFlg = ucwkMainMap.get(MAP_KEY_STATUS_FLG);

			// サービス提供中レコードが存在しない場合
			if (ZERO.equals(ucwkStatusFlg))
			{
				// サービス契約内訳に契約中が存在しないためエラー
				DEBUG_LOG.info("----- FUW01501_init() サービス契約内訳、契約中レコード未存在エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}

			// 機器提供サービス契約（STB)取得
			String kktkSvckeiNo = serviceInfoBean.sendMessageString(FUW01501SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			HashMap<String, String> kikiMainMap = stb_all_kei_map.get(kktkSvckeiNo);
			String kikiIdoRsvFlg = kikiMainMap.get(MAP_KEY_STATUS_FLG);
			if (JFUStrConst.CD01167_014.equals(kikiIdoRsvFlg))
			{
				// オプションの次月予約があるためエラー
				DEBUG_LOG.info("----- FUW01501_init() オプション次月予約エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}

		}

		// -------------------------------------------------
		// 連絡先一覧の加工処理（FUSV012607SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC7(commonInfoBean, serviceInfoBean, outputMap);
		// -------------------------------------------------
		// 一時支払金一意照会（出張費）の加工処理（FUSV012608SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC8(commonInfoBean, serviceInfoBean, outputMap);
		// -------------------------------------------------
		// 一時支払金一意照会（交換手数料）の加工処理（FUSV012609SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC9(commonInfoBean, serviceInfoBean, outputMap);
		// -------------------------------------------------
		// 一時支払金一意照会（追加手数料）の加工処理（FUSV012610SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC10(commonInfoBean, serviceInfoBean, outputMap);
		// -------------------------------------------------
		// 一時支払金一意照会（BSPT工事費）の加工処理（FUSV012611SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC11(commonInfoBean, serviceInfoBean, outputMap);
// ANK-4592-00-00 ADD START
		// -------------------------------------------------
		// 一時支払金一意照会（契約事務手数料）の加工処理（FUSV012617SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapSC17(commonInfoBean, serviceInfoBean, outputMap);
// ANK-4592-00-00 ADD END

		// -------------------------------------------------
		// 宅内機器一意照会の加工処理（FUSV012601CC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		editDispMapCC01(commonInfoBean, serviceInfoBean, outputMap);

		// -------------------------------------------------
		// 宅内機器型式一意照会の加工処理（FUSV012614SC）
		// →自動生成の下りマッピング処理の代替処理
		// -------------------------------------------------
		// BSパススルー契約有無
		boolean bspt_kei_flg = editDispMapSC14(commonInfoBean, serviceInfoBean, outputMap);

		// -------------------------------------------------
		// BSパススルー工事費割引CPの適用可否を考慮した結果を取得（割引サービスコードが空でない場合は適用）
		// -------------------------------------------------
		String bsptWribTekiyoFlg = mapper.getFUSV012602CC(this, outputMap);
		if (!JFUStrConst.EMPTY.equals(bsptWribTekiyoFlg))
		{
			bsptWribSvcCd = JFUStrConst.EMPTY;
		}

// ANK-4592-00-00 ADD START
		// 卸先事業者コード
		String orsjgs_cd = webCustBean.sendMessageString(CommonInfoCFConst.ORSJGS_CD_22, X31CWebConst.DATABEAN_GET_VALUE);
		// 設備卸事業者の場合(卸先事業者コードが設定されている)、CSコース表示フラグをOFFに設定
		if (!JFUStrConst.EMPTY.equals(orsjgs_cd))
		{
			serviceInfoBean.sendMessageString(FUW01501SFConst.CS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, CS_DISP_FLG_0);
		}
// ANK-4592-00-00 ADD END

		// 住居フラグの設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.AD_FORM_FLG, X31CWebConst.DATABEAN_SET_VALUE, jkFromKb);

		// ****************************************************************************************************
		// * 初期表示エラーチェック
		// *****************************************************************************************************
		// -------------------------------------------------
		// ◆ＶＯＮＵ4Ｋ−ＳＴＢ登録可否
		// -------------------------------------------------
		String vOnu4KstbChk = getVOnu4KStbChk(serviceInfoBean);
		serviceInfoBean.sendMessageString(FUW01501SFConst.HOYU_VONU_4KSTB_KH, X31CWebConst.DATABEAN_SET_VALUE, vOnu4KstbChk);
		// -------------------------------------------------
		// C_CASカードNo設定チェック
		// -------------------------------------------------

		// C_CASカードNo取得
		String ccasNo = serviceInfoBean.sendMessageString(FUW01501SFConst.C_CAS_NO, X31CWebConst.DATABEAN_GET_VALUE);

		if (!PCRS_TYPE02.equals(pcrsType))
		{
			// 契約中コースが地デジ・BS以外の場合
			if (ccasNo == null || SPACE.equals(ccasNo))
			{
				// C_CASカードNoが設定されていないためエラー
				DEBUG_LOG.info("----- FUW01501_init() C_CASカードNo未設定エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
		}
		else
		{
			// 契約中コースが地デジ・BSの場合
			if (ccasNo != null && !SPACE.equals(ccasNo))
			{
				// C_CASカードNoが設定されているためエラー
				DEBUG_LOG.info("----- FUW01501_init() C_CASカードNo設定エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
		}

		// -------------------------------------------------
		// 契約中STB件数チェック STB_NO_LIST
		// -------------------------------------------------
// ANK-4673-00-00 MOD START
		if (!PCRS_TYPE02.equals(pcrsType) && !PCRS_TYPE04.equals(pcrsType))
		{
			// 契約中コースが地デジ・BS、CSベーシック、CSプレミアム以外の場合
// ANK-4673-00-00 MOD END

			int kikiCnt = 0;
			for (int kCnt = 0; stb_no_list[kCnt] != null && !SPACE.equals(stb_no_list[kCnt]); kCnt++)
			{
				kikiCnt = kCnt + 1;
			}

			if (!JK_FORM_MEZON.equals(jkFromKb) && kikiCnt > KIKI_LIST_CNT)
			{
				// ホーム・マンションの場合、機器提供サービス契約が6件以上存在するためエラー
				DEBUG_LOG.info("----- FUW01501_init() 機器提供サービス契約件数超過エラー[メゾン以外] -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
			else if (JK_FORM_MEZON.equals(jkFromKb) && kikiCnt > KIKI_LIST_CNT)
			{
				// メゾンの場合、機器提供サービス契約が2件以上存在するためエラー
				DEBUG_LOG.info("----- FUW01501_init() 機器提供サービス契約件数超過エラー[メゾン] -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}

		}

		// ****************************************************************************************************
		// * サービスフォームBean設定
		// *****************************************************************************************************

		// 料金グループコード取得
		String grpCd = serviceInfoBean.sendMessageString(FUW01501SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// マンション物件コード
		String mansion_bukken_cd = serviceInfoBean.sendMessageString(FUW01501SFConst.MANSION_BUKKEN_CD, X31CWebConst.DATABEAN_GET_VALUE);

		// -------------------------------------------------
		// BSパススルー申込可否フラグ設定
		// -------------------------------------------------
		boolean kikiCngRsnFlg = false;
		HashMap<String, String> vonuMap = vonu_map.get(RSV_FLG0);
		if (vonuMap != null)
		{
			// STATUS_FLG --契約状態フラグ(0：追加予約中 1：契約中 011：機器コース変更 012：機器変更手続 013：機器解約 014：次月開始オプション有 )
			String vonuStatusFlg = vonuMap.get(MAP_KEY_STATUS_FLG);
			if (JFUStrConst.CD01167_011.equals(vonuStatusFlg) || JFUStrConst.CD01167_012.equals(vonuStatusFlg))
			{
				// VONUが何らかの予約中の場合は変更不可能
				kikiCngRsnFlg = true;
			}
		}
		else
		{
			// VONU情報が存在しない場合は変更不可能
			kikiCngRsnFlg = true;
		}

		if (bspt_kei_flg)
		{
			// ローカル変数の「BSパススルー契約有無」が「true：BSパススルー対応機」の場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG0);
		}
		else if (kikiCngRsnFlg)
		{
			// VONUの予約レコードがありおよびVONUが存在しない場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG0);
		}
		else if (PCRS_TYPE02.equals(pcrsType))
		{
			// コース種別が地デジコースの場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG0);
		}
		else if (JFUStrConst.CD00133_12.equals(grpCd))
		{
			// サービス契約の料金グループが「12：eo光テレビ(KCN)」の場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG0);
		}
		else if (JFUStrConst.CD01228_001.equals(mansion_bukken_cd))
		{
			// マンション物件コードがマンションの場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG0);
		}
		else if (!JFUStrConst.EMPTY.equals(bsptWribTekiyoFlg))
		{
			// BSパススルー工事費割引CPが適用済の場合（当画面では無料のみのため申込不可とする）
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG0);
		}
		else
		{
			// 上記以外の場合　BSパススルー申込権限あり
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG1);
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_FLG_1);
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_MSKM_AUTH, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_AUTH_1);
		}

		// -------------------------------------------------
		// BSパススルー工事費 設定
		// -------------------------------------------------
		int syuttyoPrc = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_11_LIST, X31CWebConst.DATABEAN_GET_VALUE));

		// 税抜き金額算出用
		String syuttyoPrcStr = serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_11_LIST, X31CWebConst.DATABEAN_GET_VALUE);
		String bsptPrcStr = serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_14_LIST, X31CWebConst.DATABEAN_GET_VALUE);

		int kei = Integer.parseInt(syuttyoPrcStr) + Integer.parseInt(bsptPrcStr);
		// 税抜き金額設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_KOUJI_PRC, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.formatNumber(Integer
				.toString(kei))
				+ SPACE_JPN_UNIT);

		// -------------------------------------------------
		// 機器リスト格納件数 設定
		// -------------------------------------------------
		serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_KENSU_CNT, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(kiki_save_list_cnt));

// ANK-4673-00-00 MOD START
		if (PCRS_TYPE02.equals(pcrsType) || PCRS_TYPE04.equals(pcrsType))
// ANK-4673-00-00 MOD END
		{
			// ****************************************************************************************************
			// * 契約情報リスト設定　契約中コースが地デジＢＳ、CSベーシック、CSプレミアム
			// *****************************************************************************************************

			// -------------------------------------------------
			// 機器リスト（参照用）取得
			// -------------------------------------------------
			X31SDataBeanAccess kikiSaveList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_SAVE_LIST);
			X31SDataBeanAccess keiList = null;
			X31SDataBeanAccess kikiList = null;

			for (int kCnt = 0; kCnt < KIKI_LIST_CNT; kCnt++)
			{
				// -------------------------------------------------
				// 契約情報リストの初期値設定
				// -------------------------------------------------
				keiList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KEI_LIST + JFUWebCommon.SEP_N_LAST, kCnt);
				kikiList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_LIST + JFUWebCommon.SEP_N_LAST, kCnt);

				// 契約情報リストの初期値設定
				setMakeKeiList00(keiList, Integer.toString(kCnt), serviceInfoBean);

				// 機器リスト格納件数(機器リスト（参照用）)
				String kikiKensuCnt = serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_KENSU_CNT, X31CWebConst.DATABEAN_GET_VALUE);

				// STB機器リスト(変更)を編集
				// CCの結果からマップと明細リストを取得
				HashMap kikiMap = outputMap.get(CC_TITLE_FUSV012603CC);
				ArrayList chgKikiList = (ArrayList)kikiMap.get(MAP_KEY_ADD_STB_KIKI_LIST);
				// 空設定フラグ
				boolean emptyFlg = false;

				ArrayList tgStbKikiList = new ArrayList();
				for (int klCnt = 0; klCnt < Integer.parseInt(kikiKensuCnt); klCnt++)
				{
					// 機器リスト（参照用）から各値を取得
					// 料金コースコード
					String cd = kikiSaveList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// 料金コース名
					String nm = kikiSaveList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// ＨＤＤ容量
					String hdd = kikiSaveList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// ＨＤＤ容量コード
					String hddCd = kikiSaveList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// 料金プランコード
					String pplan = kikiSaveList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// 料金プラン固定金額
					String prc = kikiSaveList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// 料金コースグレード順位
					String glade = kikiSaveList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// 料金プラン単位名
					String taniNm = kikiSaveList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
					// 宅内機器型式コード
					String taknikikiModelCd = kikiSaveList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);

					for (int j = 0; j < chgKikiList.size(); j++)
					{
						// CCの結果マップから取得
						HashMap childMap = (HashMap)chgKikiList.get(j);

						String disp = (String)childMap.get(MAP_KEY_DSP_JUN);	//仮番
						String taknaiKikiCd = (String)childMap.get(MAP_KEY_TAKNKIKI_MODEL_CD);

						// 条件に当てはまる場合、各値を設定する
						if ((JFUStrConst.EMPTY.equals(hddCd) && !emptyFlg) || (!JFUWebCommon.isNull(taknikikiModelCd)))
						{
							HashMap tgStbKikiMap = new HashMap();
							tgStbKikiMap.put(MAP_KEY_CD, cd);
							tgStbKikiMap.put(MAP_KEY_NM, nm);
							tgStbKikiMap.put(MAP_KEY_HDDCD, hddCd);
							tgStbKikiMap.put(MAP_KEY_HDD, hdd);
							tgStbKikiMap.put(MAP_KEY_PPLAN, pplan);
							tgStbKikiMap.put(MAP_KEY_PRC, prc);
							tgStbKikiMap.put(MAP_KEY_GLADE, glade);
							tgStbKikiMap.put(MAP_KEY_DISP, disp);	//仮番
							tgStbKikiMap.put(MAP_KEY_TANINM, taniNm);

							if (JFUStrConst.EMPTY.equals(hddCd) && !emptyFlg)
							{
								// 空(選択しない)の場合はからを設定
								tgStbKikiMap.put(MAP_KEY_TAKNKIKI_MODEL_CD, JFUStrConst.EMPTY);
							}
							else
							{
								// 上記以外は取得値を設定
								tgStbKikiMap.put(MAP_KEY_TAKNKIKI_MODEL_CD, taknaiKikiCd);
							}

							// 空(選択しない)の場合、空フラグをTRUEにし、カウントをマイナスする
							if (JFUStrConst.EMPTY.equals(hddCd))
							{
								emptyFlg = true;
								j--;
								// 表示順を「0」とする
								tgStbKikiMap.put(MAP_KEY_DISP, JFUStrConst.S_ZERO);
							}

							tgStbKikiList.add(tgStbKikiMap);
						}
					}
				}

				// 機器選択リスト並び替え
				Collections.sort(tgStbKikiList, new Comparator()
				{

					/**
					 * 機器選択リスト並び替え
					 * <br>
					 * @param o1 値1
					 * @param o2 値2
					 * @return 比較結果
					 */
					public int compare(Object o1, Object o2)
					{
						HashMap map1 = (HashMap)o1;
						HashMap map2 = (HashMap)o2;
						Integer str1 = Integer.valueOf((String)map1.get(MAP_KEY_DISP));
						Integer str2 = Integer.valueOf((String)map2.get(MAP_KEY_DISP));
						return str1.compareTo(str2);
					}
				});

				for (int i = 0; i < tgStbKikiList.size(); i++)
				{
					HashMap tgStbKikiMap = (HashMap)tgStbKikiList.get(i);

					// 料金コース．料金コースコード
					kikiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_CD));
					// 料金コース．料金コース名
					kikiList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_NM));
					// 料金コース．機器リスト ＨＤＤ容量
					kikiList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_HDD));
					// 料金コース．機器リスト ＨＤＤ容量コード
					kikiList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_HDDCD));
					// 料金プラン固定単価．料金プランコード
					kikiList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_PPLAN));
					// 料金プラン固定単価．料金プラン固定金額
					kikiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_PRC));
					// 料金コース．料金コースグレード順位
					kikiList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_GLADE));
					// 料金コース．表示順序
					kikiList.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_DISP));
					// 料金プラン固定単価．料金プラン単位名
					kikiList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_TANINM));
					// 宅内機器型式コード
					kikiList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
							(String)tgStbKikiMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));
				}

				// 機器設定数設定
				kikiList.sendMessageString(FUW01501SFConst.KIKI_CNT_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(tgStbKikiList.size()));
			}

			// -------------------------------------------------
			// 台数選択(地デジBSの場合は、「1台」をデフォルト設定)
			// -------------------------------------------------
			serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_SET_VALUE, MSKM_STB_CNT1);

			// -------------------------------------------------
			// 機器変更可否フラグ
			// -------------------------------------------------
			serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_FLG_1);

			// サービスフォームBeanよりご利用料金リスト４作成
			X31SDataBeanAccess ryokinList4 = null;
			X31SDataBeanAccessArray ryokinList4Clear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN_4_LIST);
			ryokinList4Clear.clearArray();
			ryokinList4 = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.RYOKIN_4_LIST);

			int addPrc = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_13_LIST, X31CWebConst.DATABEAN_GET_VALUE));
			int shoki_kei = 0;

			shoki_kei = (Integer.parseInt(STB_CNG_FLG_1) * addPrc) + syuttyoPrc;

			// 料金リストの名称設定
			ryokinList4.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW01501, SHOKI_RYOKIN_NAME));
			// 料金リストの料金設定
			ryokinList4.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(shoki_kei));
			// 料金リストの料金プラン単位名設定
			ryokinList4.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, SPACE_JPN_UNIT);

		}
		else
		{
			// /****************************************************************************************************
			// * 契約情報リスト設定　契約中コースが「旧コース」OR「新コース」
			// *****************************************************************************************************

			// 機器リスト（参照用）取得
			X31SDataBeanAccess kikiSaveList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_SAVE_LIST);
			// 契約情報リスト宣言
			X31SDataBeanAccess keiList = null;
			// 機器リスト宣言
			X31SDataBeanAccess kikiList = null;
			// 予約レコード有無フラグ判定用フラグ
			boolean yoyakuFlg = false;

			// 機器提供サービス契約番号格納リストの値が設定されている間繰り返す
			// ■■■■　FOR文開始　■■■■
			for (int kCnt = 0; stb_no_list[kCnt] != null && !SPACE.equals(stb_no_list[kCnt]); kCnt++)
			{
				// -------------------------------------------------
				// 設定情報取得取得
				// -------------------------------------------------
				// 機器提供サービス契約（STB）
				HashMap<String, String> stbAllKeiMap = stb_all_kei_map.get(stb_no_list[kCnt]);
				// 機器提供サービス契約（B_CAS）
				// ※B_CASが不要なSTBも存在するため、機器提供サービスがない場合がある。
				HashMap<String, String> stbAllKeiMapBcas = stb_all_kei_map_bcas.get(stb_no_list[kCnt]);
				if (stbAllKeiMapBcas == null)
				{
					stbAllKeiMapBcas = new HashMap<String, String>();
					stbAllKeiMapBcas.put(MAP_KIKI_SEIZO_NO, JFUStrConst.EMPTY);
					stbAllKeiMapBcas.put(MAP_KEY_KKTK_SVC_KEI_NO, JFUStrConst.EMPTY);
					stbAllKeiMapBcas.put(MAP_KEY_GENE_ADD_DTM, JFUStrConst.EMPTY);
					stbAllKeiMapBcas.put(MAP_TAKNKIKI_MODEL_CD, JFUStrConst.EMPTY);
					stbAllKeiMapBcas.put(MAP_KEY_KK_CHG_NO, JFUStrConst.EMPTY);
				}
				// 機器提供サービス契約（C_CAS）
				HashMap<String, String> stbAllKeiMapCcas = stb_all_kei_map_ccas.get(stb_no_list[kCnt]);
				// サービス契約内訳番号取得
				String keyUcwkNo = stbAllKeiMap.get(MAP_KEY_SVC_KEI_UCWK_NO);
				// サービス契約内訳マップ
				HashMap<String, String> pcrsAllKeiMap = pcrs_all_kei_map.get(keyUcwkNo);

				// -------------------------------------------------
				// 契約情報リストおよび機器リストを取得
				// -------------------------------------------------
				keiList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KEI_LIST + JFUWebCommon.SEP_N_LAST, kCnt);
				kikiList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_LIST + JFUWebCommon.SEP_N_LAST, kCnt);

				// STATUS_FLG --契約状態フラグ(0：追加予約中　1：契約中)
				String ucwkStatusFlg = pcrsAllKeiMap.get(MAP_KEY_STATUS_FLG);
				// IDO_RSV_DTL_CD --異動予約.異動予約詳細コード(003:コース変更、005:サービス休止、006:サービス休止解除、007:サービス解約)
				String ucwkIdoRsvDtlCd = pcrsAllKeiMap.get(MAP_KEY_IDO_RSV_DTL_CD);
				// STATUS_FLG --契約状態フラグ(0：追加予約中 1：契約中 011：機器コース変更 012：機器変更手続 013：機器解約 014：次月開始オプション有 )
				String kikiStatusFlg = stbAllKeiMap.get(MAP_KEY_STATUS_FLG);

				// -------------------------------------------------
				// 契約情報リストおよび機器リストの設定
				// -------------------------------------------------
				// 契約台数
				int daisucnt = kCnt + 1;
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_CNT_01, Integer.toString(daisucnt));
				// STB変更
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.CHG_STB_01, CHG_STB_0);
				// C-CASカード番号
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_SEIZO_NO_01, stbAllKeiMapCcas.get(MAP_KIKI_SEIZO_NO));

				// 契約情報リスト Ｃ＿ＣＡＳカードＮｏ．（表示用）
				ccasDisp = stbAllKeiMapCcas.get(MAP_KIKI_SEIZO_NO);
				if (ccasDisp != null && !SPACE.equals(ccasDisp))
				{
					ccasDisp = editKikiSeizoNo(ccasDisp);
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.C_CAS_NO_DISP_01, ccasDisp);
				}

				// 契約情報リスト 宅内機器型式コードＳＴＢ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.TAKNKIKI_MODEL_CD_STB_01, stbAllKeiMap.get(MAP_TAKNKIKI_MODEL_CD));
				// 契約情報リスト 機器製造番号ＳＴＢ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_SEIZO_NO_STB_01, stbAllKeiMap.get(MAP_KIKI_SEIZO_NO));
				// 契約情報リスト 機器製造番号ＢＣＡＳ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_SEIZO_NO_BCAS_01, stbAllKeiMapBcas.get(MAP_KIKI_SEIZO_NO));
				// 契約情報リスト 機器製造番号ＣＣＡＳ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_SEIZO_NO_CCAS_01, stbAllKeiMapCcas.get(MAP_KIKI_SEIZO_NO));
				// サービス契約内訳番号
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.SVC_KEI_UCWK_NO_01, pcrsAllKeiMap.get(MAP_KEY_SVC_KEI_UCWK_NO));
				// 機器提供サービス契約番号
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KKTK_SVC_KEI_NO_01, stbAllKeiMap.get(MAP_KEY_KKTK_SVC_KEI_NO));
				// 機器提供サービス契約番号（B_CAS）
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KKTK_SVC_KEI_NO_BCAS_01, stbAllKeiMapBcas.get(MAP_KEY_KKTK_SVC_KEI_NO));
				// 機器提供サービス契約番号（C_CAS）
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KKTK_SVC_KEI_NO_CCAS_01, stbAllKeiMapCcas.get(MAP_KEY_KKTK_SVC_KEI_NO));
				// 世代登録年月日時分秒（サービス契約内訳）
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_PCRS_01, pcrsAllKeiMap.get(MAP_KEY_GENE_ADD_DTM));
				// 世代登録年月日時分秒（機器提供サービス契約）
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_KIKI_01, stbAllKeiMap.get(MAP_KEY_GENE_ADD_DTM));
				// 世代登録年月日時分秒（機器提供サービス契約_BCAS）
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_KIKI_BCAS_01, stbAllKeiMapBcas.get(MAP_KEY_GENE_ADD_DTM));
				// 世代登録年月日時分秒（機器提供サービス契約_CCAS）
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_KIKI_CCAS_01, stbAllKeiMapCcas.get(MAP_KEY_GENE_ADD_DTM));

				// 契約情報リスト 契約中宅内機器型式コードＳＴＢ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_STB_01, stbAllKeiMap.get(MAP_TAKNKIKI_MODEL_CD));
				// 契約情報リスト 契約中宅内機器型式コードＢＣＡＳ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_BCAS_01, stbAllKeiMapBcas.get(MAP_TAKNKIKI_MODEL_CD));
				// 契約情報リスト 契約中宅内機器型式コードＣＣＡＳ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_CCAS_01, stbAllKeiMapCcas.get(MAP_TAKNKIKI_MODEL_CD));

				// 契約情報リスト 機器変更番号ＳＴＢ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KK_CHG_NO_01, stbAllKeiMap.get(MAP_KEY_KK_CHG_NO));
				// 契約情報リスト 機器変更番号ＢＣＡＳ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KK_CHG_NO_BCAS_01, stbAllKeiMapBcas.get(MAP_KEY_KK_CHG_NO));
				// 契約情報リスト 機器変更番号ＣＣＡＳ
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KK_CHG_NO_CCAS_01, stbAllKeiMapCcas.get(MAP_KEY_KK_CHG_NO));

				if (!ZERO.equals(ucwkStatusFlg))
				{
					// 契約中コース
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_PCRS_01, pcrsAllKeiMap.get(MAP_KEY_PCRS_NM));
					// 契約中コースコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_PCRS_CD_01, pcrsAllKeiMap.get(MAP_KEY_PCRS_CD));
					// 契約中プランコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_PPLAN_CD_01, pcrsAllKeiMap.get(MAP_KEY_PPLAN_CD));
				}
				else
				{
					// 料金コースに紐づくコース選択を取得
					String keiPcrs = getChgPcrs(pcrsAllKeiMap.get(MAP_KEY_PCRS_CD));
					// コース選択
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.CHG_PCRS_01, keiPcrs);
					// 選択コースコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PCRS_CD_01, pcrsAllKeiMap.get(MAP_KEY_PCRS_CD));
					// 選択プランコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PPLAN_CD_01, pcrsAllKeiMap.get(MAP_KEY_PPLAN_CD));
					// 選択コース
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PCRS_01, pcrsAllKeiMap.get(MAP_KEY_PCRS_NM));
				}

				if (!ZERO.equals(kikiStatusFlg))
				{
					// ------------------*
					// 契約中機器コース
					// ------------------*
					String kikiPcrsNm = JFUWebCommon.getDisplayStbName(stbNameFlg, stbAllKeiMap.get(MAP_KEY_PCRS_CD_NM), stbAllKeiMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_KIKI_PCRS_01, kikiPcrsNm);
					// 契約中機器コースコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_KIKI_PCRS_CD_01, stbAllKeiMap.get(MAP_KEY_PCRS_CD));
					// 契約中機器プランコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_KIKI_PPLAN_CD_01, stbAllKeiMap.get(MAP_KEY_PPLAN_CD));
					// 契約中ＨＤＤ容量コード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_HDD_CAPA_CD_01, stbAllKeiMap.get(MAP_KEY_HDD_CAPA_CD));
					// 契約中宅内機器型式コード
					JFUWebCommon
							.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_01, stbAllKeiMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));

				}
				// 契約情報リスト 機器契約詳細コード
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_RSV_DTL_CD_01, kikiStatusFlg);
				// 契約情報リスト 内訳契約詳細コード
				JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.UCWK_RSV_DTL_CD_01, ucwkIdoRsvDtlCd);

				// 機器提供サービス契約中レコードから「機器製造番号」取得
				String kikiSeizoNo = stbAllKeiMap.get(MAP_KIKI_SEIZO_NO);
				if (kikiSeizoNo != null && !SPACE.equals(kikiSeizoNo))
				{
					String stbId = stbid_map.get(stbAllKeiMap.get(MAP_KIKI_SEIZO_NO));
					if (stbId != null)
					{
						// 機器製造番号が機器製造番号ＳＴＢと一致するＳＴＢＩＤ取得要リストのＳＴＢＩＤを取得
						JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.STB_ID_01, stbId);
					}
				}

				// /****************************************************************************************************
				// * サービス契約内訳のレコード状態によって変更
				// *****************************************************************************************************
				if (!ZERO.equals(ucwkStatusFlg))
				{// 契約中のサービス契約内訳がある場合
					// 契約情報リスト 内訳契約状態
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.UCWK_STATUS_01, UCWK_STATUS_0);

				}
				else
				{// 契約中のサービス契約内訳がない場合
					// 契約情報リスト 内訳契約状態
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.UCWK_STATUS_01, UCWK_STATUS_2);
					// 予約フラグ設定
					yoyakuFlg = true;
				}
				if (JFUStrConst.CD01167_003.equals(ucwkIdoRsvDtlCd))
				{
					// -------------------------------------------------
					// サービス契約内訳にコース変更予約レコードが存在する場合
					// -------------------------------------------------
					// IDO_NEW_PCRS_CD --異動予約.新料金コースコード
					String ucwkIidoNewPcrsCd = pcrsAllKeiMap.get(IDO_NEW_PCRS_CD);
					// 料金コースに紐づくコース選択を取得
					String keiPcrs = getChgPcrs(ucwkIidoNewPcrsCd);
					// IDO_NEW_PCRS_NM --異動予約.新料金コース名称
					String ucwkIidoNewPcrsNm = pcrsAllKeiMap.get(IDO_NEW_PCRS_NM);
					// コース選択
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.CHG_PCRS_01, keiPcrs);
					// 選択コースコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PCRS_CD_01, ucwkIidoNewPcrsCd);
					// 選択プランコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PPLAN_CD_01, pcrsAllKeiMap.get(IDO_NEW_PPLAN_CD));
					// 選択コース
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PCRS_01, ucwkIidoNewPcrsNm);
					// 予約フラグ設定
					yoyakuFlg = true;
					// 契約情報リスト 内訳契約状態
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.UCWK_STATUS_01, UCWK_STATUS_1);
				}
				else if (JFUStrConst.CD01167_005.equals(ucwkIdoRsvDtlCd) || JFUStrConst.CD01167_006.equals(ucwkIdoRsvDtlCd)
						|| JFUStrConst.CD01167_007.equals(ucwkIdoRsvDtlCd))
				{
					// -------------------------------------------------
					// サービス契約内訳にコース変更以外の予約レコードが存在する場合
					// -------------------------------------------------
					// 予約フラグ設定
					yoyakuFlg = true;
					// 契約情報リスト 内訳契約状態
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.UCWK_STATUS_01, UCWK_STATUS_1);
				}

				// /****************************************************************************************************
				// * 機器提供サービス契約のレコード状態によって変更
				// *****************************************************************************************************
				if (JK_FORM_HOME.equals(kikiStatusFlg))
				{
					// -------------------------------------------------
					// 機器提供サービス契約のレコードが契約中の場合
					// -------------------------------------------------
					// 契約状態
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.STATUS_01, STATUS_0);
					// 機器選択リスト表示フラグ
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_DISP_FLG_01, KIKI_DISP_FLG_0);

					// -------------------------------------------------
					// 契約中の機器提供サービス契約より料金コースコード取得し、対応するグレードを取得
					// -------------------------------------------------
					// 
					HashMap kikiMap = outputMap.get(CC_TITLE_FUSV012603CC);
					// STB機器リスト(変更)を編集
					boolean emptyFlg = false;
					ArrayList chgKikiList = (ArrayList)kikiMap.get(MAP_KEY_CHG_STB_KIKI_LIST);

					// 機器リスト格納件数
					String kikiKensuCnt = serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_KENSU_CNT, X31CWebConst.DATABEAN_GET_VALUE);

					ArrayList tgStbKikiList = new ArrayList();
					for (int klCnt = 0; klCnt < Integer.parseInt(kikiKensuCnt); klCnt++)
					{
						// 料金コースコード
						String cd = kikiSaveList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// 料金コース名
						String nm = kikiSaveList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// ＨＤＤ容量
						String hdd = kikiSaveList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// ＨＤＤ容量コード
						String hddCd = kikiSaveList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// 料金プランコード
						String pplan = kikiSaveList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// 料金プラン固定金額
						String prc = kikiSaveList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// 料金コースグレード順位
						String glade = kikiSaveList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// 料金プラン単位名
						String taniNm = kikiSaveList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);
						// 宅内機器型式コード
						String taknikikiModelCd = kikiSaveList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, klCnt);

						for (int j = kCnt; j < chgKikiList.size(); j++)
						{
							// CCの取得結果から機器リストを取得
							HashMap childMap = (HashMap)chgKikiList.get(j);
							ArrayList stbkikiList = (ArrayList)childMap.get(MAP_KEY_CHG_STB_LIST);

							for (int k = 0; k < stbkikiList.size(); k++)
							{
								HashMap chgStbMap = (HashMap)stbkikiList.get(k);
								String disp = (String)chgStbMap.get(MAP_KEY_DSP_JUN);
								String taknaiKikiCd = (String)chgStbMap.get(MAP_KEY_TAKNKIKI_MODEL_CD);

								// 条件に当てはまる場合、各値を設定する
								if ((JFUStrConst.EMPTY.equals(hddCd) && !emptyFlg) 
										|| (!JFUWebCommon.isNull(taknikikiModelCd)))
								{
									HashMap tgStbKikiMap = new HashMap();
									tgStbKikiMap.put(MAP_KEY_CD, cd);
									tgStbKikiMap.put(MAP_KEY_NM, nm);
									tgStbKikiMap.put(MAP_KEY_HDDCD, hddCd);
									tgStbKikiMap.put(MAP_KEY_HDD, hdd);
									tgStbKikiMap.put(MAP_KEY_PPLAN, pplan);
									tgStbKikiMap.put(MAP_KEY_PRC, prc);
									tgStbKikiMap.put(MAP_KEY_GLADE, glade);
									tgStbKikiMap.put(MAP_KEY_DISP, disp);	//仮番
									tgStbKikiMap.put(MAP_KEY_TANINM, taniNm);

									if (JFUStrConst.EMPTY.equals(hddCd) && !emptyFlg)
									{
										// 空(選択しない)の場合はからを設定
										tgStbKikiMap.put(MAP_KEY_TAKNKIKI_MODEL_CD, JFUStrConst.EMPTY);
									}
									else
									{
										// 上記以外は取得値を設定
										tgStbKikiMap.put(MAP_KEY_TAKNKIKI_MODEL_CD, taknaiKikiCd);
									}

									// 空(選択しない)の場合、空フラグをTRUEにし、カウントをマイナスする
									if (JFUStrConst.EMPTY.equals(hddCd))
									{
										emptyFlg = true;
										k--;
										// 表示順を「0」とする
										tgStbKikiMap.put(MAP_KEY_DISP, JFUStrConst.S_ZERO);
									}

									tgStbKikiList.add(tgStbKikiMap);
								}
							}

							if (stbkikiList == null || stbkikiList.size() == 0)
							{
								// 機器選択リスト表示フラグ　「1:非表示」
								JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_DISP_FLG_01, KIKI_DISP_FLG_1);
							}
							else
							{
								// 機器選択リスト表示フラグ 「0:表示」
								JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_DISP_FLG_01, KIKI_DISP_FLG_0);
								// 機器変更可否フラグ 「1：変更可能」
								serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_FLG_1);
							}

							break;
						}
					}

					// 機器選択リスト並び替え
					Collections.sort(tgStbKikiList, new Comparator()
					{

						/**
						 * 機器選択リスト並び替え
						 * <br>
						 * @param o1 値1
						 * @param o2 値2
						 * @return 比較結果
						 */
						public int compare(Object o1, Object o2)
						{
							HashMap map1 = (HashMap)o1;
							HashMap map2 = (HashMap)o2;
							Integer str1 = Integer.valueOf((String)map1.get(MAP_KEY_DISP));
							Integer str2 = Integer.valueOf((String)map2.get(MAP_KEY_DISP));
							return str1.compareTo(str2);
						}
					});

					for (int i = 0; i < tgStbKikiList.size(); i++)
					{
						HashMap tgStbKikiMap = (HashMap)tgStbKikiList.get(i);

						// 料金コース．料金コースコード
						kikiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_CD));
						// 料金コース．料金コース名
						kikiList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_NM));
						// 料金コース．機器リスト ＨＤＤ容量
						kikiList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_HDD));
						// 料金コース．機器リスト ＨＤＤ容量コード
						kikiList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_HDDCD));
						// 料金プラン固定単価．料金プランコード
						kikiList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_PPLAN));
						// 料金プラン固定単価．料金プラン固定金額
						kikiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_PRC));
						// 料金コース．料金コースグレード順位
						kikiList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_GLADE));
						// 料金コース．表示順序
						kikiList.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_DISP));
						// 料金プラン固定単価．料金プラン単位名
						kikiList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_TANINM));
						// 宅内機器型式コード
						kikiList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
								(String)tgStbKikiMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));
					}

					// 機器設定数設定
					kikiList.sendMessageString(FUW01501SFConst.KIKI_CNT_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(tgStbKikiList.size()));
				}
				else if (JFUStrConst.CD01167_011.equals(kikiStatusFlg))
				{
					// -------------------------------------------------
					// 機器提供サービス契約のレコードがコース変更予約中の場合
					// -------------------------------------------------
					// 選択機器コース名
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PCRS_01, stbAllKeiMap.get(MAP_KEY_RSV_PCRS_CD_NM));
					// 選択機器コースコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PCRS_CD_01, stbAllKeiMap.get(MAP_KEY_RSV_PCRS_CD));
					// 選択機器プランコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PPLAN_CD_01, stbAllKeiMap.get(MAP_KEY_RSV_PPLAN_CD));
					// 選択ＨＤＤ容量コード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.HDD_CAPA_CD_01, stbAllKeiMap.get(MAP_KEY_RSV_HDD_CAPA_CD));
					// 選択宅内機器型式コード
					JFUWebCommon
							.setDataBeanItemByPath(keiList, FUW01501SFConst.TAKNKIKI_MODEL_CD_01, stbAllKeiMap.get(MAP_KEY_RSV_TAKNKIKI_MODEL_CD));
					// 契約中レコードあり
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.STATUS_01, STATUS_1);
					// 機器選択リスト表示フラグ「1:非表示」
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_DISP_FLG_01, KIKI_DISP_FLG_1);

					deepCopyDataBean2(kikiSaveList, kikiList);
				}
				else if (ZERO.equals(kikiStatusFlg))
				{
					// -------------------------------------------------
					// 機器提供サービス契約が追加予約中の場合
					// -------------------------------------------------
					// 選択機器コース名
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PCRS_01, stbAllKeiMap.get(MAP_KEY_PCRS_CD_NM));
					// 選択機器コースコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PCRS_CD_01, stbAllKeiMap.get(MAP_KEY_PCRS_CD));
					// 選択機器プランコード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PPLAN_CD_01, stbAllKeiMap.get(MAP_KEY_PPLAN_CD));
					// 選択ＨＤＤ容量コード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.HDD_CAPA_CD_01, stbAllKeiMap.get(MAP_KEY_HDD_CAPA_CD));
					// 選択宅内機器型式コード
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.TAKNKIKI_MODEL_CD_01, stbAllKeiMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));

					// 契約情報リスト 契約状態
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.STATUS_01, STATUS_2);
					// 機器選択リスト表示フラグ「1:非表示」
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_DISP_FLG_01, KIKI_DISP_FLG_1);
				}
				else
				{
					// -------------------------------------------------
					// 機器提供サービス契約がコース変更以外の予約中
					// -------------------------------------------------
					// 契約情報リスト 契約状態
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.STATUS_01, STATUS_1);
					// 機器選択リスト表示フラグ「1:非表示」
					JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_DISP_FLG_01, KIKI_DISP_FLG_1);
				}
			}
			// ■■■■　FOR文終了　■■■■

			// -------------------------------------------------
			// STB追加情報設定
			// -------------------------------------------------
			HashMap kikiMapAdd = outputMap.get(CC_TITLE_FUSV012603CC);
			setKeiKikiAddList(serviceInfoBean, kikiMapAdd, mansion_bukken_cd);

			// -------------------------------------------------
			// 契約台数
			// -------------------------------------------------
			X31SDataBeanAccessArray keiCntList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);

			// 台数選択(地デジBS以外の場合は「追加しない」をデフォルト設定)
			serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_SET_VALUE, MSKM_STB_CNT2);

			// -------------------------------------------------
			// 予約レコード有無フラグ
			// -------------------------------------------------
			if (yoyakuFlg)
			{
				// 1件でもサービス契約内訳に予約中レコードが存在する場合、旧→新コースへの変更不可能
				serviceInfoBean.sendMessageString(FUW01501SFConst.YOYAKU_FLG, X31CWebConst.DATABEAN_SET_VALUE, YOYAKU_FLG_1);
			}

			// -------------------------------------------------
			// 機器変更画面遷移フラグ
			// -------------------------------------------------
			if (PCRS_TYPE00.equals(pcrsType))
			{
				String stbCngFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_FLG, X31CWebConst.DATABEAN_GET_VALUE);
				String bspassDisfFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE);
				if (keiCntList.getCount() >= 2 || STB_CNG_FLG_1.equals(stbCngFlg) || BSPASS_DISP_FLG1.equals(bspassDisfFlg))
				{

					// 契約中のコースが旧コース　かつ
					// （契約STBが2台以上　または　機器変更可否フラグが「1：変更可能」　または　BSパススルー申込可否フラグが「1:可能」）な場合
					// 機器変更画面遷移フラグ
					serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_1);
				}
			}
		}

		// 機器変更画面遷移フラグを設定(無条件でFUW01502へ遷移する)
		serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_1);

		// ****************************************************************************************************
		// * ご利用料金枠の設定（eo光テレビコース変更申込画面用)
		// *****************************************************************************************************
		makeRyokinList(serviceInfoBean);

		// 料金表表示現在日設定処理
		JFUWebCommon.setPrcDspNowDay(this);
		
		// ****************************************************************************************************
		// * 遷移先画面情報の設定(eo光テレビオコース変更申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01501);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01501);

		DEBUG_LOG.info("----- FUW01501SFLogic init End -----");

		return true;
	}

	/**
	 * C-CASカード番号のハイフン処理
	 * <br>
	 * @param arg0 	C-CASカード番号
	 * @return String 編集されたC-CASカード番号
	 */
	private static String editKikiSeizoNo(String arg0)
	{
		StringBuffer strBuf = new StringBuffer();

		// C-CASカード番号の文字数を取得
		int length = arg0.length();

		for (int i = 0; i < length; i++)
		{
			// C-CASカード番号の4桁目、8桁目、12桁目、16桁目にハイフンを設定
			if (4 == length - i || 8 == length - i || 12 == length - i || 16 == length - i)
			{
				strBuf.append(HYHUN);
			}

			strBuf.append(arg0.substring(i, i + 1));
		}

		return strBuf.toString();
	}

	/**
	 * 次へボタン押下処理（eo光テレビコース変更申込確認画面へ遷移）
	 * <br>
	 * @return	処理結果
	 * @throws Exception 例外
	 */
	public boolean cfmNext() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- cfmNext Start -----");
		// /*****************************************************************************************************
		// *初期処理
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();
		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得.サービス契約情報.サービス契約回線内訳情報
		// -------------------------------------------------
		X31SDataBeanAccess genSvcKeiKaisenUcwkInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO).getDataBean(0);

		// 現在の料金コースコード取得
		X31SDataBeanAccess svcKeiInfoBean = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);
		String nowPcrsCd = svcKeiInfoBean.sendMessageString(CommonInfoCFConst.PCRS_CD_23, X31CWebConst.DATABEAN_GET_VALUE);

// ANK-4592-00-00 ADD START
		// 変更後料金コース取得
		String cngPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4592-00-00 ADD END

		// 変更後の料金コースコードを設定
		if (JFUStrConst.CD00134_A37.equals(nowPcrsCd))
		{
// ANK-4592-00-00 MOD START
			if (PCRS13.equals(cngPcrsCd))
			{
				// 変更後がCSベーシックの場合
				serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_AC0);
				serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PAC001);
			}
			else if (PCRS14.equals(cngPcrsCd))
			{
				// 変更後がCSプレミアムの場合
				serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_AC1);
				serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PAC101);
			}
			else
			{
				// 地デジ・BSの場合
				serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A39);
			}
// ANK-4592-00-00 MOD END
		}
		else if (JFUStrConst.CD00134_A39.equals(nowPcrsCd))
		{
			// 新コースの場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A39);
		}
// ANK-4673-00-00 ADD START
		else if (JFUStrConst.CD00134_AC0.equals(nowPcrsCd))
		{
			// CSベーシックの場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_AC1);
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PAC101);
		}
		else if (JFUStrConst.CD00134_AC1.equals(nowPcrsCd))
		{
			// CSプレミアムの場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_AC0);
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PAC001);
		}
// ANK-4673-00-00 ADD END

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray keiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
		// サービスフォームBeanより機器リスト取得
		X31SDataBeanAccessArray kikiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST);
		// 契約情報リスト（保存用）
		X31SDataBeanAccessArray hozonKeiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KEI_LIST);
		hozonKeiListClear.clearArray();
		// 機器リスト（保存用）
		X31SDataBeanAccessArray hozonKikiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_LIST);
		hozonKikiListClear.clearArray();

		// サービスフォームBeanより契約追加情報リスト取得
		X31SDataBeanAccessArray keiAddList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.ADD_LIST);
		// サービスフォームBeanより追加機器リスト取得
		X31SDataBeanAccessArray kikiAddList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST);
		// 契約追加情報リスト（保存用）
		X31SDataBeanAccessArray hozonKeiAddListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_ADD_LIST);
		hozonKeiAddListClear.clearArray();
		// 追加機器リスト（保存用）
		X31SDataBeanAccessArray hozonKikiAddListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_ADD_LIST);
		hozonKikiAddListClear.clearArray();

		// 戻るボタン押下時の処理のため、現在の情報を保存
		for (int cnt = 0; cnt < keiList.getCount(); cnt++)
		{
			X31SDataBeanAccess keiyakuDataBean = keiList.getDataBean(cnt);
			X31SDataBeanAccess kikiDataBean = kikiList.getDataBean(cnt);

			X31SDataBeanAccess keiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.HOZON_KEI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean(keiyakuDataBean, keiSaveList);
			X31SDataBeanAccess kikiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.HOZON_KIKI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean2(kikiDataBean, kikiSaveList);
		}

		// 戻るボタン押下時の処理のため、現在の追加情報を保存
		for (int cnt = 0; cnt < keiAddList.getCount(); cnt++)
		{
			X31SDataBeanAccess keiyakuDataBean = keiAddList.getDataBean(cnt);
			X31SDataBeanAccess kikiDataBean = kikiAddList.getDataBean(cnt);

			X31SDataBeanAccess keiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.HOZON_ADD_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean(keiyakuDataBean, keiSaveList);
			X31SDataBeanAccess kikiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.HOZON_KIKI_ADD_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean2(kikiDataBean, kikiSaveList);
		}

// ANK-4592-00-00 MOD START
		// 変更後がCSベーシック、CSプレミアムの場合は確認画面に遷移するためフラグをOFFで設定
		if (PCRS_CS_LIST.contains(cngPcrsCd))
		{
			// 機器変更画面遷移フラグ　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_0);
		}
		else
		{
			// 機器変更画面遷移フラグ　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_1);
		}
// ANK-4592-00-00 MOD END
		// コース種別取得
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);

		// 契約台数取得
		int mskmStbCnt = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));

		// /*****************************************************************************************************
		// *基本コース取得
		// *****************************************************************************************************
		// 地デジ・ＢＳ以外の場合
		if (!PCRS_TYPE02.equals(pcrsType))
		{
			// 契約情報リストの選択コースに変更後コース修正&ライトコース有無フラグ設定値取得
			String light_disp_flg = setLightFlg(keiList, serviceInfoBean);
			// サービスフォームBeanにライトコース有無フラグ設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.LIGHT_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, light_disp_flg);
		}

		// 基本コース(主コース)のレコード番号取得
		String main_chk_flg = SPACE;
		main_chk_flg = getMainCnt(keiList, main_chk_flg, mskmStbCnt);
		if (SPACE.equals(main_chk_flg))
		{
			main_chk_flg = ZERO;
		}

		// *****************************************************************************************************
		// * 契約情報リスト、追加情報リストの修正
		// * ご利用料金リスト３および４作成
		// *****************************************************************************************************
		setRyokinList(serviceInfoBean, keiList, mskmStbCnt, main_chk_flg);

		// ****************************************************************************************************
		// * ご利用料金枠の設定（eo光テレビコース変更申確認込画面用）
		// *****************************************************************************************************
		makeRyokinList3(serviceInfoBean);

		// 料金コース（サービス契約）取得
		String pcrsCdKei = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_CD_KEI, X31CWebConst.DATABEAN_GET_VALUE);
		// メールアドレス取得
		String iRrksMlad = serviceInfoBean.sendMessageString(FUW01501SFConst.I_RRKS_MLAD, X31CWebConst.DATABEAN_GET_VALUE);

		if ((PCRS_TYPE00.equals(pcrsType) && PCRS_CNG_LIST[Integer.parseInt(PCRS08)].equals(pcrsCdKei)) || PCRS_TYPE02.equals(pcrsType))
		{
			if (!SPACE.equals(iRrksMlad))
			{
				// メールアドレス表示フラグ　設定
				serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG1);

				// 氏名取得
				String custNm = serviceInfoBean.sendMessageString(FUW01501SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE);
				// 送信先リスト
				X31SDataBeanAccess mladList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MLAD_LIST);
				// 送信先リスト 送信先メールアドレス
				mladList.sendMessageString(FUW01501SFConst.MLAD_16, X31CWebConst.DATABEAN_SET_VALUE, iRrksMlad);
				// 非定型文字列リスト
				X31SDataBeanAccess textHtkCkamMojiList =
						JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.TEXT_HTK_CKAM_MOJI_LIST);
				// 非定型文字列リスト 本文非定型置換文字
				textHtkCkamMojiList.sendMessageString(FUW01501SFConst.TEXT_HTK_CKAM_MOJI_17, X31CWebConst.DATABEAN_SET_VALUE, custNm);
				// メールヘッダーリスト
				JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MAIL_HEADER_LIST);
			}
			else
			{
				// メールアドレス表示フラグ　設定
				serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG0);
				// 送信先リスト
				JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MLAD_LIST);
				// 非定型文字列リスト
				JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.TEXT_HTK_CKAM_MOJI_LIST);
				// メールヘッダーリスト
				JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MAIL_HEADER_LIST);
			}
		}
		else
		{
			// メールアドレス表示フラグ　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG0);
			// 送信先リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MLAD_LIST);
			// 非定型文字列リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.TEXT_HTK_CKAM_MOJI_LIST);
			// メールヘッダーリスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MAIL_HEADER_LIST);
		}

		// ////////////////////////////////////////////////////////////
		// 登録サービス（FUSV0127）呼出用パラメータ設定
		// ////////////////////////////////////////////////////////////
		setFUSV0127Parameter(serviceInfoBean);

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_FUSV0127);

		// DataBean-BPマッピング
		FUSV0127_FUSV0127OPDBMapper mapper = new FUSV0127_FUSV0127OPDBMapper();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean, genSvcKeiKaisenUcwkInfo, commonInfoBean };

		// 変更後料金コース取得
		// キャンペーン文言用
		// 地デジ・BSの場合
		if (JFUStrConst.CD00134_A37.equals(nowPcrsCd))
		{
			// 地デジ・BSの場合、変更後のコース選択ボタンが存在しないので、
			// STBの1件目のボタン選択をキャンペーン用変更後にセットする
			X31SDataBeanAccessArray arraybean = null;
			X31SDataBeanAccess beanTemp = null;
			beanTemp = paramBean[0];
			arraybean = beanTemp.getDataBeanArray(FUW01501SFConst.CCLIST_STB_ADD);

			X31SDataBeanAccess subbean = arraybean.getDataBean(0);
			serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, subbean
					.sendMessageString(FUW01501SFConst.KK0161_PCRS_CD_07, X31CWebConst.DATABEAN_GET_VALUE));
			serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, subbean.sendMessageString(
					FUW01501SFConst.KK0161_PPLAN_CD_07, X31CWebConst.DATABEAN_GET_VALUE));
		}

// ANK-3464-00-00 ADD START
		// 画面定義ファイルより「地上デジ・ＢＳコース　ベーシックほかメニュー移行時のＳＴＢ設置工事費無料」の割引サービスコードを取得
		String strStbFreeWribCd = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, QUERY_ID_STBFREE_WRIB_CD);
// ANK-3464-00-00 ADD END

		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, String> outputMap = new HashMap<String, String>();
		String bsptWribSvcCd = getBsptWribSvcCd(serviceInfoBean);
// ANK-4592-00-00 ADD START
		// 共通フォームBean.フロント共有情報
		X31SDataBeanAccess frontInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO).getDataBean(0);
		// フロント共有情報.フロント運用日付を設定します。
		String opeDate = frontInfo.sendMessageString(CommonInfoCFConst.FU_OPEDATE_05, X31CWebConst.DATABEAN_GET_VALUE);
		String addOneMonth = JPCDateUtil.addMonth(opeDate, 1);
		// 予約適用年月日にオンライン運用日の翌月１日を設定
		String rsv_aply_ymd = addOneMonth.substring(0,6) + ONE_DAY;
// ANK-4592-00-00 END START

		// eo光テレビコース変更申込(申込)作業項目マップ01の加工処理上りマッピング
		mapper.setFUSV0127WORK01(paramBean, inputMap, FUNC_CD_2);
		// オプションチャンネル重複一覧照会マップの加工処理CC上りマッピング
		mapper.setFUSV012707CC(paramBean, inputMap, FUNC_CD_1);
		// 申込書番号採番SCの上りマッピング
		mapper.setFUSV012712SC(paramBean, inputMap, FUNC_CD_2);
		// 申込内容承認登録マップの加工処理SC上りマッピング
		mapper.setFUSV012701SC(paramBean, inputMap, FUNC_CD_2);
		// eo光テレビ登録(コース変更)マップの加工処理CC上りマッピング
		mapper.setFUSV012701CC(paramBean, inputMap, FUNC_CD_2);
		// eo光テレビ登録(コース変更＆STB変更)マップの加工処理CC上りマッピング
		mapper.setFUSV012702CC(paramBean, inputMap, FUNC_CD_2, bsptWribSvcCd);
		// eo光テレビ登録(地デジ→新コース)マップの加工処理CC上りマッピング
// ANK-3464-00-00 MOD START
		mapper.setFUSV012703CC(paramBean, inputMap, FUNC_CD_2, strStbFreeWribCd);
// ANK-3464-00-00 MOD END
		// eo光テレビ登録(BSパススルー)マップの加工処理SC上りマッピング
		mapper.setFUSV012702SC(paramBean, inputMap, FUNC_CD_2);
		// 進捗情報登録マップの加工処理SC上りマッピング
		mapper.setFUSV012703SC(paramBean, inputMap, FUNC_CD_2);
		// 申込明細照査・後続業務依頼マップの加工処理SC上りマッピング
		mapper.setFUSV012704SC(paramBean, inputMap, FUNC_CD_2);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_2(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_3(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_4(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_5(paramBean, inputMap, FUNC_CD_1);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_2(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_3(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_4(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_5(paramBean, inputMap, FUNC_CD_2);
		// 工事案件(eo光テレビ)受付マップの加工処理SC上りマッピング
		mapper.setFUSV012706SC(paramBean, inputMap, FUNC_CD_2);
		// 機器提供サービス契約機器変更手続中理由変更マップの加工処理SC上りマッピング
		mapper.setFUSV012708SC(paramBean, inputMap, FUNC_CD_2);
		// eo光テレビSTB追加変更申込CC上りマッピング
		mapper.setFUSV012711CC(paramBean, outputMap, FUNC_CD_2, bsptWribSvcCd);
// ANK-4592-00-00 ADD START
		if (PCRS_CS_LIST.contains(cngPcrsCd))
		{
			// CSコース情報操作CC
			mapper.setFUSV012717CC(paramBean, inputMap, FUNC_CD_2);
			// サービス契約料金プラン変更SC
			mapper.setFUSV012709SC(paramBean, inputMap, FUNC_CD_2, rsv_aply_ymd);
			// 事務手数料登録CC
			mapper.setFUSV012718CC(paramBean, inputMap, FUNC_CD_2);
			// サービス契約料金プラン変更確定SC
			mapper.setFUSV012710SC(paramBean, inputMap, FUNC_CD_2, rsv_aply_ymd);
		}
// ANK-4592-00-00 ADD END

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);

			// ●サービス処理結果の取得
			// オプションチャンネル重複一覧照会コンポーネント部品マップ
			paramBean = mapper.getFUSV012707CC(paramBean, outputMap);
			X31SDataBeanAccessArray opchChfkList = paramBean[0].getDataBeanArray(FUW01501SFConst.OPCH_CHFK_LIST);

			if (opchChfkList.getCount() > 0)
			{
				String[] opchNmUmkm00 = { JFUStrConst.EMPTY };
				StringBuffer umkm00 = new StringBuffer();

				for (int m = 0; m < opchChfkList.getCount(); m++)
				{
					X31SDataBeanAccess opchChfkBean = opchChfkList.getDataBean(m);

					// オプションサービス名
					umkm00.append(JFUStrConst.RETURN_CODE_BR);
					umkm00.append(opchChfkBean.sendMessageString(FUW01501SFConst.OP_SVC_NM_24, X31CWebConst.DATABEAN_GET_VALUE));
				}

				String umkmstr00 = umkm00.toString();
				opchNmUmkm00[0] = umkmstr00;

				// error
				// サービス処理結果が取得できた場合は、エラーとして画面再表示
				// エラーメッセージ表示項目：変更可能コース
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1520_KW, opchNmUmkm00, ERR_PLACE_FIXIPAD_ITEM_ID_01);
				return true;
			}
		}
		catch (JCCWebServiceException se)
		{
			checkInsertErr(se);
		}

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(eo光テレビオコース変更申込確認画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01503);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01503);

		// デバッグ用ログ出力
		DEBUG_LOG.debug("☆☆☆DataDump☆次へボタン押下処理（eo光テレビコース変更申込確認画面へ遷移）☆☆");
		DEBUG_LOG.info("----- cfmNext End -----");
		return true;
	}

	/********************************************************************************************************
	 *  次へボタン押下処理（eo光テレビ機器の変更申込画面へ遷移）
	 *
	 * @return 処理結果
	 * @throws Exception 例外
	 *********************************************************************************************************/
	public boolean cngStbNext() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- cngStbNext Start -----");

		// *****************************************************************************************************
		// *初期処理
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();

		// オプションの次月予約有無チェック
		if (chkOptionCannel(serviceInfoBean))
		{
			// オプションの次月予約があるためエラー
			DEBUG_LOG.info("----- FUW01501_init() オプション次月予約エラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
		}

		// 機器変更画面遷移フラグ　設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_1);
		// コース種別
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		// 変更後料金コース取得
		String cngPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);

		// 変更後料金コースがCSベーシック、CSプレミアムの場合は確認画面へ遷移
// ANK-4592-00-00 ADD START
		if (PCRS_CS_LIST.contains(cngPcrsCd))
		{
			return cfmNext();
		}
// ANK-4592-00-00 ADD END

		// キャンペーン文言用 変更後の料金コースコード・料金プランコード（サービス契約）設定
		if (PCRS07.equals(cngPcrsCd))
		{
			// SDコース
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A38);
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA3801);
		}
		else if (PCRS08.equals(cngPcrsCd) || PCRS12.equals(cngPcrsCd))
		{
			// HDコース・新HDコース
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A39);
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA3901);
		}

		// キャンペーン文言用
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, PCRS_CNG_LIST[Integer
				.parseInt(cngPcrsCd)]);
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, PLAN_CNG_LIST[Integer
				.parseInt(cngPcrsCd)]);

		// ＢＳパススルー申込可否フラグ再設定
		// ※「BSパススルー申込権限有り」かつ「変更前が地デジ以外」かつ「変更後が新HDコース」の場合、BSパススルー申込可能
		setBsptDspFlgCtrl(serviceInfoBean);

		// Ｃ＿ＣＡＳカードＮｏ取得
		String kikiSeizoNo = serviceInfoBean.sendMessageString(FUW01501SFConst.C_CAS_NO, X31CWebConst.DATABEAN_GET_VALUE);

		// 契約情報リスト（保存用）
		X31SDataBeanAccessArray hozonKeiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KEI_LIST);
		hozonKeiListClear.clearArray();
		// 機器リスト（保存用）
		X31SDataBeanAccessArray hozonKikiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_LIST);
		hozonKikiListClear.clearArray();
		// 追加契約情報リスト（保存用）
		X31SDataBeanAccessArray hozonAddListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_ADD_LIST);
		hozonAddListClear.clearArray();
		// 追加機器リスト（保存用）
		X31SDataBeanAccessArray hozonKikiAddListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_ADD_LIST);
		hozonKikiAddListClear.clearArray();

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray keiList1 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
		// サービスフォームBeanより機器リスト取得
		X31SDataBeanAccessArray kiki_list1 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST);
		// サービスフォームBeanよりコースリスト取得
		X31SDataBeanAccessArray ryokinList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN);

		// 戻るボタン押下時の処理のため、現在の情報を保存
		for (int cnt = 0; cnt < keiList1.getCount(); cnt++)
		{
			X31SDataBeanAccess keiyakuDataBean = keiList1.getDataBean(cnt);
			X31SDataBeanAccess kikiDataBean = kiki_list1.getDataBean(cnt);

			// 契約情報リスト → 契約情報リスト（保存用）
			X31SDataBeanAccess keiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.HOZON_KEI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean(keiyakuDataBean, keiSaveList);

			// 機器リスト → 機器リスト（保存用）
			X31SDataBeanAccess kikiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.HOZON_KIKI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean2(kikiDataBean, kikiSaveList);

			// ***************************************************
			// *契約情報リストの選択コースに変更後コース修正
			// ***************************************************
			// 機器提供サービス契約番号取得
			String keiKikiSeizoNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_01, X31CWebConst.DATABEAN_GET_VALUE);

			// 選択CCAS番号と一致した情報を編集
			if (kikiSeizoNo.equals(keiKikiSeizoNo))
			{
				// 変更後コースを契約情報リストのコース選択に設定
				keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, cngPcrsCd);

				// ////////////////////////////////////////////////////////////////////
				// 「選択コース」を選択された「料金コースコード」に返還
				// ////////////////////////////////////////////////////////////////////
				String afterPcrs = PCRS_CNG_LIST[Integer.parseInt(cngPcrsCd)];

				// 料金コースリストより対応コース取得検索
				for (int rCnt = 0; rCnt < ryokinList.getCount(); rCnt++)
				{
					// コースリストより1件取得
					X31SDataBeanAccess ryokinDataBean = ryokinList.getDataBean(rCnt);
					// 料金コースリストより料金コースコード取得
					String ryokinCd = ryokinDataBean.sendMessageString(FUW01501SFConst.CD_03, X31CWebConst.DATABEAN_GET_VALUE);
					// 契約情報リストの選択コースコードに料金コースコードを設定
					keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinCd);

					if (afterPcrs.equals(ryokinCd))
					{
						// 料金リストの名称設定
						String ryokinNm = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_03, X31CWebConst.DATABEAN_GET_VALUE);
						keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinNm);
						break;
					}
				}
			}
		}

		// サービスフォームBeanよりｅｏ光テレビチューナー追加リスト取得
		X31SDataBeanAccessArray addList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.ADD_LIST);
		// サービスフォームBeanより機器リスト＿追加取得
		X31SDataBeanAccessArray kikiAddlist = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST);

		// 戻るボタン押下時の処理のため、現在の追加情報を保存
		for (int addCnt = 0; addCnt < addList.getCount(); addCnt++)
		{
			X31SDataBeanAccess keiyakuDataBean = addList.getDataBean(addCnt);
			X31SDataBeanAccess kikiDataBean = kikiAddlist.getDataBean(addCnt);

			// ｅｏ光テレビチューナー追加リスト → ｅｏ光テレビチューナー追加リスト（保存）
			X31SDataBeanAccess keiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean,
							FUW01501SFConst.HOZON_ADD_LIST + JFUWebCommon.SEP_N_LAST, addCnt);
			deepCopyDataBean(keiyakuDataBean, keiSaveList);

			// 機器リスト＿追加 → 機器リスト＿追加（保存用）
			X31SDataBeanAccess kikiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean,
							FUW01501SFConst.HOZON_KIKI_ADD_LIST + JFUWebCommon.SEP_N_LAST, addCnt);
			deepCopyDataBean2(kikiDataBean, kikiSaveList);
		}

		// 選択台数を初期化
		if (PCRS06.equals(cngPcrsCd))
		{
			// 地デジBS
			serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_SET_VALUE, MSKM_STB_CNT1);
		}
		else
		{
			// 地デジBS以外
			serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_SET_VALUE, MSKM_STB_CNT2);
		}

		// 既契約情報以外の情報を初期化(最大数−既契約数)
		int keiChgCnt = keiList1.getCount();
		for (int i = 0; i < KIKI_LIST_CNT - keiChgCnt; i++)
		{
			// 契約情報リストを生成
			X31SDataBeanAccess keiAddInfo
				= JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.ADD_LIST + JFUWebCommon.SEP_N_LAST, i);

			// 契約台数(STB追加欄の「X台目追加」の「X」に使用される)
			int keiCfmCnt = (i + 1) + keiChgCnt;
			keiAddInfo.sendMessageString(FUW01501SFConst.KEI_CNT_01, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(keiCfmCnt));
			// コース選択
			keiAddInfo.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			// コース名
			keiAddInfo.sendMessageString(FUW01501SFConst.PCRS_NM_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			// 契約状態
			keiAddInfo.sendMessageString(FUW01501SFConst.STATUS_01, X31CWebConst.DATABEAN_SET_VALUE, STATUS_2);
			// 内訳契約状態
			keiAddInfo.sendMessageString(FUW01501SFConst.UCWK_STATUS_01, X31CWebConst.DATABEAN_SET_VALUE, UCWK_STATUS_2);
			// ＳＴＢ変更
			keiAddInfo.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// レコード作成フラグ
			keiAddInfo.sendMessageString(FUW01501SFConst.MAKE_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, "1");
			// 機器選択リスト表示フラグ
			keiAddInfo.sendMessageString(FUW01501SFConst.KIKI_DISP_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, "0"); 

			// 機器情報リストを生成
			X31SDataBeanAccess kikiAddInfo
				= JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_ADD_LIST + JFUWebCommon.SEP_N_LAST, i);

			// 機器リスト選択値
			kikiAddInfo.sendMessageString(FUW01501SFConst.SELECT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		}

		// ////////////////////////////////////////////////////////////
		// 登録サービス（FUSV0223）呼出用パラメータ設定
		// ////////////////////////////////////////////////////////////
		setFUSV0223Parameter(serviceInfoBean);

		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, FUSV0223);

		// DataBean-BPマッピング
		FUSV0223_FUSV0223OPDBMapper mapper = new FUSV0223_FUSV0223OPDBMapper();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean };

		HashMap<String, Map<String, String>> inputMap = new HashMap<String, Map<String, String>>();
		HashMap<String, String> outputMap = new HashMap<String, String>();

		// オプションチャンネル重複一覧照会マップの加工処理CC上りマッピング
		mapper.setFUSV022301CC(paramBean, inputMap, FUNC_CD_1);

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);

			// ●サービス処理結果の取得
			// オプションチャンネル重複一覧照会コンポーネント部品マップ
			paramBean = mapper.getFUSV022301CC(paramBean, outputMap);
			X31SDataBeanAccessArray opchChfkList = paramBean[0].getDataBeanArray(FUW01501SFConst.OPCH_CHFK_LIST);

			if (opchChfkList.getCount() > 0)
			{
				String[] opchNmUmkm00 = { JFUStrConst.EMPTY };
				StringBuffer umkm00 = new StringBuffer();

				for (int m = 0; m < opchChfkList.getCount(); m++)
				{
					X31SDataBeanAccess opchChfkBean = opchChfkList.getDataBean(m);

					// オプションサービス名
					umkm00.append(JFUStrConst.RETURN_CODE_BR);
					umkm00.append(opchChfkBean.sendMessageString(FUW01501SFConst.OP_SVC_NM_24, X31CWebConst.DATABEAN_GET_VALUE));
				}

				String umkmstr00 = umkm00.toString();
				opchNmUmkm00[0] = umkmstr00;

				// error
				// サービス処理結果が取得できた場合は、エラーとして画面再表示
				// エラーメッセージ表示項目：変更可能コース
				JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1520_KW, opchNmUmkm00, ERR_PLACE_FIXIPAD_ITEM_ID_01);

				return true;
			}
		}
		catch (JCCWebServiceException se)
		{
			checkInsertErr(se);
		}

		// ****************************************************************************************************
		// * ご利用料金枠の設定（eo光テレビ機器の変更申込画面用
		// *****************************************************************************************************
		makeRyokinList2(serviceInfoBean);

		// メールアドレス表示フラグ　設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG1);

		// B-CAS不要情報（業務パラメータ、マスタから取得したB-CAS不要機器の情報。データが存在しない場合は空）
		List<String> bcasMasterList = JFUWebCommon.getWorkParamSplit(this, JFUStrConst.KK_HDD_CAPA_BCASNONE);
		// 機器リストの編集
		setKikiInfo(serviceInfoBean, bcasMasterList, 1);
		// 追加機器リストの編集
		setKikiInfo(serviceInfoBean, bcasMasterList, 2);

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(eo光テレ機器の変更申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01502);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01502);

		// デバッグ用ログ出力
		DEBUG_LOG.debug("■■■■■☆☆☆DataDump☆次へボタン押下処理（eo光テレビ機器の変更申込画面へ遷移）☆☆■■■■■");
		DEBUG_LOG.info("----- cngStbNext End -----");
		return true;
	}

	/********************************************************************************************************
	 *  確認するボタン押下処理（eo光テレビコース変更申込確認画面へ遷移）
	 *
	 * @return 処理結果
	 * @throws Exception 例外
	 *********************************************************************************************************/
	public boolean cfm() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- cfm Start -----");

		// オンライン運用日取得
		String opeDate = JFUWebCommon.getOpeDate(this, null);
		// *****************************************************************************************************
		// *初期処理
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得.サービス契約情報.サービス契約回線内訳情報
		// -------------------------------------------------
		X31SDataBeanAccess genSvcKeiKaisenUcwkInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO).getDataBean(0);
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray keiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray kikiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST);
		// サービスフォームBeanより追加情報リスト取得
		X31SDataBeanAccessArray addList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.ADD_LIST);
		// サービスフォームBeanより追加情報リスト取得
		X31SDataBeanAccessArray addKikiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST);

		// 契約台数取得
		int mskmStbCnt = 0;
		int addStbCnt = 0;
		if (PCRS06.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 現在のコースが地デジ・BSの場合
			mskmStbCnt = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			// 現在のコースが地デジ・BS以外の場合
			mskmStbCnt = keiList.getCount();
			// 追加台数取得
			addStbCnt = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 地デジBS情報の編集(地デジBSの場合は必ず1台以上選択されている(追加しないがない))
		if (PCRS06.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			for (int i = 0; i < keiList.getCount(); i++)
			{
				X31SDataBeanAccess keiyakuDataBean = keiList.getDataBean(i);
				X31SDataBeanAccess kikiDataBean = kikiList.getDataBean(i);

				if (i > (mskmStbCnt - 1))
				{
					// 契約リストが選択されている台数より大きい情報である場合

					// 不要な契約情報を初期化
					keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

					// 不要な選択機器情報を初期化
					kikiDataBean.sendMessageString(FUW01501SFConst.SELECT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		// 追加情報の編集(確認完了画面の表示制御)
		if (addList != null && addList.getCount() > 0 && addStbCnt != addList.getCount())
		{
			if (addStbCnt < 0)
			{
				addStbCnt = 0;
			}

			for (int i = 0; i < addList.getCount(); i++)
			{
				X31SDataBeanAccess keiyakuDataBean = addList.getDataBean(i);
				X31SDataBeanAccess kikiDataBean = addKikiList.getDataBean(i);

				if (addStbCnt == 0 || (addStbCnt > 0 && i > (addStbCnt - 1)))
				{
					// 追加台数が0台の場合、追加台数が1台以上で追加リストが選択されている台数より大きい情報である場合

					// 不要な追加情報を初期化
					keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
					keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

					// 不要な選択機器情報を初期化
					kikiDataBean.sendMessageString(FUW01501SFConst.SELECT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
			}
		}

		// *****************************************************************************************************
		// *基本コース取得
		// *****************************************************************************************************
		// 基本コース設定フラグ 初期化
		String main_chk_flg = SPACE;
		if (addList != null && addStbCnt > 0)
		{
			// 契約あり＋追加台数あり
			main_chk_flg = getMainCnt2(keiList, addList, main_chk_flg, mskmStbCnt, addStbCnt);
		}
		else
		{
			// 上記以外
			main_chk_flg = getMainCnt(keiList, main_chk_flg, mskmStbCnt);
		}
		if (SPACE.equals(main_chk_flg))
		{
			main_chk_flg = ZERO;
		}

		// *****************************************************************************************************
		// * 契約情報リスト修正
		// * ご利用料金リスト３および４作成
		// *****************************************************************************************************
		setRyokinList(serviceInfoBean, keiList, mskmStbCnt, main_chk_flg);

		// ****************************************************************************************************
		// * ご利用料金枠の設定（eo光テレビコース変更申確認込画面用）
		// *****************************************************************************************************
		makeRyokinList3(serviceInfoBean);

		// メールアドレス取得
		String iRrksMlad = serviceInfoBean.sendMessageString(FUW01501SFConst.I_RRKS_MLAD, X31CWebConst.DATABEAN_GET_VALUE);

		if (!SPACE.equals(iRrksMlad))
		{
			// メールアドレス表示フラグ　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG1);

			// 氏名取得
			String custNm = serviceInfoBean.sendMessageString(FUW01501SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE);
			// 送信先リスト
			X31SDataBeanAccess mladList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MLAD_LIST);
			// 送信先リスト 送信先メールアドレス
			mladList.sendMessageString(FUW01501SFConst.MLAD_16, X31CWebConst.DATABEAN_SET_VALUE, iRrksMlad);
			// 非定型文字列リスト
			X31SDataBeanAccess textHtkCkamMojiList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.TEXT_HTK_CKAM_MOJI_LIST);
			// 非定型文字列リスト 本文非定型置換文字
			textHtkCkamMojiList.sendMessageString(FUW01501SFConst.TEXT_HTK_CKAM_MOJI_17, X31CWebConst.DATABEAN_SET_VALUE, custNm);
			// メールヘッダーリスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MAIL_HEADER_LIST);
		}
		else
		{
			// メールアドレス表示フラグ　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG0);
			// 送信先リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MLAD_LIST);
			// 非定型文字列リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.TEXT_HTK_CKAM_MOJI_LIST);
			// メールヘッダーリスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MAIL_HEADER_LIST);
		}

// ANK-3464-00-00 ADD START
		// 画面定義ファイルより「地上デジ・ＢＳコース　ベーシックほかメニュー移行時のＳＴＢ設置工事費無料」の割引サービスコードを取得
		String strStbFreeWribCd = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, QUERY_ID_STBFREE_WRIB_CD);
// ANK-3464-00-00 ADD END
		String bsptWribSvcCd = getBsptWribSvcCd(serviceInfoBean);
// ANK-3872-00-00 ADD START
		// 連絡先電話番号
		String rrksTelNo = JFUStrConst.EMPTY;
		if ("1".equals(serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TEL_SELECT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			rrksTelNo = serviceInfoBean.sendMessageString(FUW01501SFConst.CONTRACT_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
		} else if("2".equals(serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TEL_SELECT, X31CWebConst.DATABEAN_GET_VALUE))) {
			rrksTelNo = serviceInfoBean.sendMessageString(FUW01501SFConst.USE_PLACE_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
		} else if("3".equals(serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TEL_SELECT, X31CWebConst.DATABEAN_GET_VALUE))) {
			rrksTelNo = serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TEL_OTHRE_AREA, X31CWebConst.DATABEAN_GET_VALUE) +
			serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TEL_OTHRE_LOCAL, X31CWebConst.DATABEAN_GET_VALUE) +
			serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TEL_OTHRE_SUBSCRIBER, X31CWebConst.DATABEAN_GET_VALUE);
		} else {
			// ---------------------------------------------
			// 上記以外で工事案件が呼び出される場合はエラー
			// 「」
			// ---------------------------------------------
			if (BSPT_MSKM_FLG_1.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
					|| STB_CNG_UMU_FLG_1.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				JCCWebCommon.setMessageInfo(this, "EKF0420-TW", new String[] { "連絡先電話番号", "選択" }, "koji_rrsk");
				return true;
			}
		}
		serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, rrksTelNo);
// ANK-3872-00-00 ADD END

		// ////////////////////////////////////////////////////////////
		// 登録サービス（FUSV0127）呼出用パラメータ設定
		// ////////////////////////////////////////////////////////////
		setFUSV0127Parameter(serviceInfoBean);

		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_FUSV0127);

		// DataBean-BPマッピング
		FUSV0127_FUSV0127OPDBMapper mapper = new FUSV0127_FUSV0127OPDBMapper();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean, genSvcKeiKaisenUcwkInfo, commonInfoBean };

		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, String> outputMap = new HashMap<String, String>();

		// eo光テレビコース変更申込(申込)作業項目マップ01の加工処理上りマッピング
		mapper.setFUSV0127WORK01(paramBean, inputMap, FUNC_CD_2);
		// オプションチャンネル重複一覧照会マップの加工処理CC上りマッピング
		mapper.setFUSV012707CC(paramBean, inputMap, FUNC_CD_1);
		// 申込書番号採番SCの上りマッピング
		mapper.setFUSV012712SC(paramBean, inputMap, FUNC_CD_2);
		// 申込内容承認登録マップの加工処理SC上りマッピング
		mapper.setFUSV012701SC(paramBean, inputMap, FUNC_CD_2);
		// eo光テレビ登録(コース変更)マップの加工処理CC上りマッピング
		mapper.setFUSV012701CC(paramBean, inputMap, FUNC_CD_2);
		// eo光テレビ登録(コース変更＆STB変更)マップの加工処理CC上りマッピング
		mapper.setFUSV012702CC(paramBean, inputMap, FUNC_CD_2, bsptWribSvcCd);
		// eo光テレビ登録(地デジ→新コース)マップの加工処理CC上りマッピング
// ANK-3464-00-00 MOD START
		mapper.setFUSV012703CC(paramBean, inputMap, FUNC_CD_2, strStbFreeWribCd);
// ANK-3464-00-00 MOD END
		// eo光テレビ登録(BSパススルー)マップの加工処理SC上りマッピング
		mapper.setFUSV012702SC(paramBean, inputMap, FUNC_CD_2);
		// 進捗情報登録マップの加工処理SC上りマッピング
		mapper.setFUSV012703SC(paramBean, inputMap, FUNC_CD_2);
		// 申込明細照査・後続業務依頼マップの加工処理SC上りマッピング
		mapper.setFUSV012704SC(paramBean, inputMap, FUNC_CD_2);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_2(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_3(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_4(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_5(paramBean, inputMap, FUNC_CD_1);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_2(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_3(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_4(paramBean, inputMap, FUNC_CD_2);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_5(paramBean, inputMap, FUNC_CD_2);
		// 工事案件(eo光テレビ)受付マップの加工処理SC上りマッピング
		mapper.setFUSV012706SC(paramBean, inputMap, FUNC_CD_2);
		// 機器提供サービス契約機器変更手続中理由変更マップの加工処理SC上りマッピング
		mapper.setFUSV012708SC(paramBean, inputMap, FUNC_CD_2);
		// 機器提供サービス契約一意照会SC
		mapper.setFUSV012713SC(paramBean, inputMap, FUNC_CD_2);
		// 機器提供サービス契約情報変更（契約変更中）SC
		mapper.setFUSV012714SC(paramBean, inputMap, FUNC_CD_2);
		// eo光テレビSTB追加変更申込CC
		mapper.setFUSV012711CC(paramBean, inputMap, FUNC_CD_2, bsptWribSvcCd);
		// eoプレミアムクラブ施策一覧照会CC上りマッピング
		mapper.setFUSV012713CC(paramBean, inputMap, bsptWribSvcCd);

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);

			// ●サービス処理結果の取得
			// オプションチャンネル重複一覧照会コンポーネント部品マップ
			paramBean = mapper.getFUSV012707CC(paramBean, outputMap);
			// ■eoプレミアムクラブ施策一覧照会 サービスの結果から画面表示用の施策リストを取得する
			mapper.getPremiumClubList(paramBean, outputMap, JPCModelConstant.FUNC_CD_2, opeDate);
			X31SDataBeanAccessArray opchChfkList = paramBean[0].getDataBeanArray(FUW01501SFConst.OPCH_CHFK_LIST);

			if (opchChfkList.getCount() > 0)
			{
				String[] opchNmUmkm01 = { JFUStrConst.EMPTY };
				String[] opchNmUmkm02 = { JFUStrConst.EMPTY };
				String[] opchNmUmkm03 = { JFUStrConst.EMPTY };
				String[] opchNmUmkm04 = { JFUStrConst.EMPTY };
				String[] opchNmUmkm05 = { JFUStrConst.EMPTY };
				StringBuffer umkm01 = new StringBuffer();
				StringBuffer umkm02 = new StringBuffer();
				StringBuffer umkm03 = new StringBuffer();
				StringBuffer umkm04 = new StringBuffer();
				StringBuffer umkm05 = new StringBuffer();

				for (int m = 0; m < opchChfkList.getCount(); m++)
				{
					X31SDataBeanAccess opchChfkBean = opchChfkList.getDataBean(m);

					// 契約台数
					String kei = opchChfkBean.sendMessageString(FUW01501SFConst.KEI_DAI_24, X31CWebConst.DATABEAN_GET_VALUE);

					// オプションサービス名
					if (KEI_DAI_0.equals(kei))
					{
						umkm01.append(JFUStrConst.RETURN_CODE_BR);
						umkm01.append(opchChfkBean.sendMessageString(FUW01501SFConst.OP_SVC_NM_24, X31CWebConst.DATABEAN_GET_VALUE));
					}
					if (KEI_DAI_1.equals(kei))
					{
						umkm02.append(JFUStrConst.RETURN_CODE_BR);
						umkm02.append(opchChfkBean.sendMessageString(FUW01501SFConst.OP_SVC_NM_24, X31CWebConst.DATABEAN_GET_VALUE));
					}
					if (KEI_DAI_2.equals(kei))
					{
						umkm03.append(JFUStrConst.RETURN_CODE_BR);
						umkm03.append(opchChfkBean.sendMessageString(FUW01501SFConst.OP_SVC_NM_24, X31CWebConst.DATABEAN_GET_VALUE));
					}
					if (KEI_DAI_3.equals(kei))
					{
						umkm04.append(JFUStrConst.RETURN_CODE_BR);
						umkm04.append(opchChfkBean.sendMessageString(FUW01501SFConst.OP_SVC_NM_24, X31CWebConst.DATABEAN_GET_VALUE));
					}
					if (KEI_DAI_4.equals(kei))
					{
						umkm05.append(JFUStrConst.RETURN_CODE_BR);
						umkm05.append(opchChfkBean.sendMessageString(FUW01501SFConst.OP_SVC_NM_24, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}

				String umkmstr01 = umkm01.toString();
				opchNmUmkm01[0] = umkmstr01;
				String umkmstr02 = umkm02.toString();
				opchNmUmkm02[0] = umkmstr02;
				String umkmstr03 = umkm03.toString();
				opchNmUmkm03[0] = umkmstr03;
				String umkmstr04 = umkm04.toString();
				opchNmUmkm04[0] = umkmstr04;
				String umkmstr05 = umkm05.toString();
				opchNmUmkm05[0] = umkmstr05;

				// error
				// サービス処理結果が取得できた場合は、エラーとして画面再表示
				if (!JFUStrConst.EMPTY.equals(umkmstr01))
				{
					JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1520_KW, opchNmUmkm01, ERR_PLACE_FIXIPAD_ITEM_ID_02);
				}
				if (!JFUStrConst.EMPTY.equals(umkmstr02))
				{
					JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1520_KW, opchNmUmkm02, ERR_PLACE_FIXIPAD_ITEM_ID_03);
				}
				if (!JFUStrConst.EMPTY.equals(umkmstr03))
				{
					JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1520_KW, opchNmUmkm03, ERR_PLACE_FIXIPAD_ITEM_ID_04);
				}
				if (!JFUStrConst.EMPTY.equals(umkmstr04))
				{
					JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1520_KW, opchNmUmkm04, ERR_PLACE_FIXIPAD_ITEM_ID_05);
				}
				if (!JFUStrConst.EMPTY.equals(umkmstr05))
				{
					JFUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKF1520_KW, opchNmUmkm05, ERR_PLACE_FIXIPAD_ITEM_ID_06);
				}
				return true;
			}
		}
		catch (JCCWebServiceException se)
		{
			checkInsertErr(se);
		}

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(eo光テレ機器の変更申込画面へ遷移)
		// *****************************************************************************************************

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01503);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01503);

		// デバッグ用ログ出力
		DEBUG_LOG.debug("■■■■■☆☆☆DataDump☆確認するボタン押下処理（eo光テレビコース変更申込確認画面へ遷移）☆☆■■■■■");
		DEBUG_LOG.info("----- cfm End -----");
		return true;
	}

	/********************************************************************************************************
	 *  申し込むボタン押下処理（eo光テレビコース変更申込結果画面へ遷移）
	 *
	 * @return 処理結果
	 * @throws Exception 例外
	 *********************************************************************************************************/
	public boolean mskm() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- mskm Start -----");

		// *****************************************************************************************************
		// *初期処理
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客情報取得.サービス契約情報.サービス契約回線内訳情報
		// -------------------------------------------------
		X31SDataBeanAccess genSvcKeiKaisenUcwkInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO).getDataBean(0);

		// 利用可能サービスチェック
		JFUWebCommon.checkCommonRelation(this, SVC_USECASE_ID_FUSV0127);

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(eo光テレ機器の変更申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01504);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01504);

		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_FUSV0127);

		// DataBean-BPマッピング
		FUSV0127_FUSV0127OPDBMapper mapper = new FUSV0127_FUSV0127OPDBMapper();

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean, genSvcKeiKaisenUcwkInfo, commonInfoBean };

		HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
		HashMap<String, String> outputMap = new HashMap<String, String>();

// ANK-4673-00-00 ADD START
		// コース種別取得
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		// CSコース変更時のステータスチェック
		if (PCRS_TYPE04.equals(pcrsType))
		{
			// 現顧客情報を再取得
			JFUWebCommon.refreshGenCustKei(this);
			checkTvCsCS(commonInfoBean);
		}
// ANK-4673-00-00 ADD END

// ANK-3464-00-00 ADD START
		// 画面定義ファイルより「地上デジ・ＢＳコース　ベーシックほかメニュー移行時のＳＴＢ設置工事費無料」の割引サービスコードを取得
		String strStbFreeWribCd = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, QUERY_ID_STBFREE_WRIB_CD);
// ANK-3464-00-00 ADD END
		String bsptWribSvcCd = getBsptWribSvcCd(serviceInfoBean);

// ANK-4592-00-00 ADD START
		// 変更後料金コース取得
		String cngPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 共通フォームBean.フロント共有情報
		X31SDataBeanAccess frontInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO).getDataBean(0);
		// フロント共有情報.フロント運用日付を設定します。
		String opeDate = frontInfo.sendMessageString(CommonInfoCFConst.FU_OPEDATE_05, X31CWebConst.DATABEAN_GET_VALUE);
		String addOneMonth = JPCDateUtil.addMonth(opeDate, 1);
		// 予約適用年月日にオンライン運用日の翌月１日を設定
		String rsv_aply_ymd = addOneMonth.substring(0,6) + ONE_DAY;
// ANK-4592-00-00 ADD END

		// eo光テレビコース変更申込(申込)作業項目マップ01の加工処理上りマッピング
		mapper.setFUSV0127WORK01(paramBean, inputMap, FUNC_CD_1);
		// オプションチャンネル重複一覧照会マップの加工処理CC上りマッピング
		mapper.setFUSV012707CC(paramBean, inputMap, FUNC_CD_1);
		// 申込書番号採番SCの上りマッピング
		mapper.setFUSV012712SC(paramBean, inputMap, FUNC_CD_1);
		// 申込内容承認登録マップの加工処理SC上りマッピング
		mapper.setFUSV012701SC(paramBean, inputMap, FUNC_CD_1);
		// eo光テレビ登録(コース変更)マップの加工処理CC上りマッピング
		mapper.setFUSV012701CC(paramBean, inputMap, FUNC_CD_1);
		// eo光テレビ登録(コース変更＆STB変更)マップの加工処理CC上りマッピング
		mapper.setFUSV012702CC(paramBean, inputMap, FUNC_CD_1, bsptWribSvcCd);
		// eo光テレビ登録(地デジ→新コース)マップの加工処理CC上りマッピング
// ANK-3464-00-00 MOD START
		mapper.setFUSV012703CC(paramBean, inputMap, FUNC_CD_1, strStbFreeWribCd);
// ANK-3464-00-00 MOD END
		// eo光テレビ登録(BSパススルー)マップの加工処理SC上りマッピング
		mapper.setFUSV012702SC(paramBean, inputMap, FUNC_CD_1);
		// 進捗情報登録マップの加工処理SC上りマッピング
		mapper.setFUSV012703SC(paramBean, inputMap, FUNC_CD_1);
		// 申込明細照査・後続業務依頼マップの加工処理SC上りマッピング
		mapper.setFUSV012704SC(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_2(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_3(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_4(paramBean, inputMap, FUNC_CD_1);
		// デジタルティアグループコード一覧照会マップの加工処理SC上りマッピング
		mapper.setFUSV012705SC_5(paramBean, inputMap, FUNC_CD_1);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC(paramBean, inputMap, FUNC_CD_1);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_2(paramBean, inputMap, FUNC_CD_1);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_3(paramBean, inputMap, FUNC_CD_1);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_4(paramBean, inputMap, FUNC_CD_1);
		// 視聴制御オーダ送信マップの加工処理SC上りマッピング
		mapper.setFUSV012706CC_5(paramBean, inputMap, FUNC_CD_1);
		// 工事案件(eo光テレビ)受付マップの加工処理SC上りマッピング
		mapper.setFUSV012706SC(paramBean, inputMap, FUNC_CD_1);
		// 機器提供サービス契約機器変更手続中理由変更マップの加工処理SC上りマッピング
		mapper.setFUSV012708SC(paramBean, inputMap, FUNC_CD_1);
		// 機器提供サービス契約一意照会SC
		mapper.setFUSV012713SC(paramBean, inputMap, FUNC_CD_1);
		// 機器提供サービス契約情報変更（契約変更中）SC
		mapper.setFUSV012714SC(paramBean, inputMap, FUNC_CD_1);
		// 物流返品処理マップ設定
		mapper.setFUSV0127ExecuteHmpin(paramBean, inputMap);
		// eo光テレビSTB追加変更申込CC
		mapper.setFUSV012711CC(paramBean, inputMap, FUNC_CD_1, bsptWribSvcCd);
		// チケット利用申請依頼CC
		mapper.setFUSV012714CC(paramBean, inputMap);
		/**  2016/09/12 ANK-2985-00-00 add start */
		if (getKikipcrsKnytcsflg(serviceInfoBean))
		{
			// サービスIF結果データ移送CC上りマッピング
			mapper.setFUSV012715CC(paramBean, inputMap, FUNC_CD_1);
			// 契約内容通知書登録CC上りマッピング
			mapper.setFUSV012716CC(paramBean, inputMap, FUNC_CD_1, this);
		}
		/**  2016/09/12 ANK-2985-00-00 add end */
// ANK-4592-00-00 ADD START
		if (PCRS_CS_LIST.contains(cngPcrsCd))
		{
			// CSコース情報操作CC
			mapper.setFUSV012717CC(paramBean, inputMap, FUNC_CD_1);
			// サービス契約料金プラン変更SC
			mapper.setFUSV012709SC(paramBean, inputMap, FUNC_CD_1, rsv_aply_ymd);
			// 事務手数料登録CC
			mapper.setFUSV012718CC(paramBean, inputMap, FUNC_CD_1);
			// サービス契約料金プラン変更確定SC
			mapper.setFUSV012710SC(paramBean, inputMap, FUNC_CD_1, rsv_aply_ymd);
		}
// ANK-4592-00-00 ADD END

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);

			// BSパススルーの妥当性チェック（パターンにより割引の登録場所が異なる）
			checkBsptWrib(outputMap, serviceInfoBean, this, CC_TITLE_FUSV012702CC);
			checkBsptWrib(outputMap, serviceInfoBean, this, CC_TITLE_FUSV012711CC);
			// ●サービス処理結果の取得(下りマッピング)
			// 工事案件(eo光テレビ)受付SCの下りマッピング
			mapper.getFUSV012706SC(paramBean, outputMap);
			// 申込書番号採番SCの下りマッピング
			mapper.getFUSV012712SC(paramBean, outputMap);

			// オプションチャンネル重複一覧照会コンポーネント部品マップ
			paramBean = mapper.getFUSV012707CC(paramBean, outputMap);
			X31SDataBeanAccessArray opchChfkList = paramBean[0].getDataBeanArray(FUW01501SFConst.OPCH_CHFK_LIST);

			if (opchChfkList.getCount() > 0)
			{
				// error
				// サービス処理結果が取得できた場合は、"0201"(お客様情報変更エラー)に遷移
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
			}
		}
		catch (JCCWebServiceException se)
		{
			checkInsertErr(se);

		}

		/* ++++++++++ 【ANK-0545-00-00 PMP：サービスコード対応】v4.00 追加開始 ++++++++++ */

		if (!PCRS_TYPE03.equals(pcrsType) && PCRS12.equals(cngPcrsCd))
		{
			// 新コース(スマート系)以外→新コース(スマート系)：CKSV9001のサービスを実行する
			// ●CKSV9001のサービス情報を設定
			Map<String, String> ckParamMap = new HashMap<String, String>();
			ckParamMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_CKSV9001);
		}
		/* ++++++++++ 【ANK-0545-00-00 PMP：サービスコード対応】v4.00 追加終了 ++++++++++ */

		// ●申込完了メール
		// 申込完了メール送信部品呼出機能ID 
		String sendMailId = null;

		// 可変文字リスト
		String[] textList = { getMailTextStb(serviceInfoBean) };

		// 申込完了メール送信部品呼出機能ID取得
		if (PCRS_TYPE02.equals(pcrsType) && PCRS12.equals(cngPcrsCd))
		{
			// 地デジ・ＢＳ→新コース
			sendMailId = FUW015_1;
		}
// ANK-4592-00-00 ADD START
		else if (PCRS_TYPE02.equals(pcrsType) && (PCRS_CS_LIST.contains(cngPcrsCd)))
		{
			// 地デジ・ＢＳ→新コース
			sendMailId = FUW015_6;
		}
// ANK-4592-00-00 ADD END
		else if ((PCRS_TYPE00.equals(pcrsType) || PCRS_TYPE01.equals(pcrsType)) && PCRS12.equals(cngPcrsCd)
				&& CC_FLG_1.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_STB_CNG_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// SDコース→新HDコース、HDコース→新HDコース、かつ、STB変更がある
			if (textList[0].length() > 0)
			{
				// 機器の追加変更が有り
				sendMailId = FUW015_4;
			}
			else
			{
				// 機器の追加変更が無し
				sendMailId = FUW015_2;
			}
		}
// ANK-4673-00-00 ADD START
		else if (PCRS_TYPE04.equals(pcrsType))
		{
			// CSコース→CSコース
			sendMailId = FUW015_7;
		}
// ANK-4673-00-00 ADD END
		else
		{
			// SDコース→SDコース、HDコース→HDコース、新HDコース→新HDコース
			if (textList[0].length() > 0)
			{
				// 機器の追加変更が有り
				sendMailId = FUW015_5;
			}
			else
			{
				// 機器の追加変更が無し
				sendMailId = FUW015_3;
			}
		}

		DEBUG_LOG.debug("★申込完了メール送信部品呼出機能ID：" + sendMailId);

		// 申込完了メール送信部品呼出処理
		JFUWebCommon.sendMskmFinMail(this, sendMailId, null, textList);

// ANK-4669-00-00 ADD START
		// ****************************************************************************************************
		// * ご利用料金枠の設定（eo光テレビコース変更申込完了画面用）
		// *****************************************************************************************************
		makeRyokinList4(serviceInfoBean);
// ANK-4669-00-00 ADD END
		
		// デバッグ用ログ出力
		DEBUG_LOG.debug("■■■■■☆☆☆DataDump☆申し込むボタン押下処理（eo光テレビコース変更申込結果画面へ遷移）☆☆■■■■■");
		DEBUG_LOG.info("----- mskm End -----");
		return true;
	}

	/********************************************************************************************************
	 *  登録時のエラー内容判定
	 * @param se
	 * @return 処理結果
	 *********************************************************************************************************/
	private void checkInsertErr(JCCWebServiceException se)
	{
		// 例外情報を取得
		X31CMessageResult msgResult = se.getMessageList();
		X31CMessageMoreInfo[] moreInfo = msgResult.getMessageMoreInfoList();
		X31CMessageMoreInfo info = moreInfo[0];// 関連チェック系は必ずエラーが1つのため0番目から取得する。
		String templateid = info.getTemplateId();
		String itemid = info.getItemId();
		String status = info.getStatus();
		String errFlg = info.getItemCheckErr();

		// ステータスが"1100"（内部スキーマ関連チェックエラー）または"1400"（概念スキーマの関連チェックでエラー発生)
		// または"1300"（外部スキーマの相関チェックでエラー発生)の場合
		if (String.valueOf(JPCModelConstant.RELATION_ERR).equals(status) || String.valueOf(JPCModelConstant.ENTITY_RELATION_ERR).equals(status)
				|| String.valueOf(JPCModelConstant.STATUSTRANS_ERR).equals(status)
				|| String.valueOf(JPCModelConstant.TEMPLATE_CORRELATION_ERR).equals(status))
		{
			// テンプレートIDが"EKK0101C060"(サービス契約料金プラン変更)かつ エラーフラグが"EJ"の場合
			if (TEMPLATE_ID_SVC_KEI_UPD.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
			{
				// アイテムIDが"upd_dtm_df"(更新年月日時分秒(更新前))の場合
				if (ITEM_ID_UPD_DTM_DF.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() サービス契約料金プラン変更EAエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
			// テンプレートIDが"EKK0101C060"(サービス契約料金プラン変更)かつ エラーフラグが"ED""EL""EP""EM"のいづれかの場合
			else if (TEMPLATE_ID_SVC_KEI_UPD.equals(templateid)
					&& (JFUStrConst.RELATION_CHECK_ERR_ED.equals(errFlg) || JFUStrConst.RELATION_CHECK_ERR_EL.equals(errFlg)
							|| JFUStrConst.RELATION_CHECK_ERR_EP.equals(errFlg) || JFUStrConst.RELATION_CHECK_ERR_EM.equals(errFlg)))
			{
				// アイテムIDが"ido_div"(異動予約)の場合
				if (ITEM_ID_IDO_DIV.equals(itemid))
				{
					// 業務共通例外クラス："0102"（契約状態エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() サービス契約料金プラン変更ED-EL-EP-EMエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
				}
			}
			// テンプレートIDが"EKK0161C100"(サービス契約内訳手続中料金プラン変更)の場合
			else if (TEMPLATE_ID_SVC_KEI_UCWK_TTDKI_UPD.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
			{
				// アイテムIDが"upd_dtm_df"(更新年月日時分秒(更新前))の場合
				if (ITEM_ID_UPD_DTM_DF.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() サービス契約内訳手続中料金プラン変更EAエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
			// テンプレートIDが"EKK0161C110"(サービス契約内訳料金プラン変更)の場合
			else if (TEMPLATE_ID_SVC_KEI_UCWK_UPD.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
			{
				// アイテムIDが"upd_dtm_df"(更新年月日時分秒(更新前))の場合
				if (ITEM_ID_UPD_DTM_DF.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() サービス契約内訳料金プラン変更EAエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
			// テンプレートIDが"EKK0161C110"(サービス契約内訳料金プラン変更)かつ エラーフラグが"ED""EL""EP""EM"のいづれかの場合
			else if (TEMPLATE_ID_SVC_KEI_UCWK_UPD.equals(templateid)
					&& (JFUStrConst.RELATION_CHECK_ERR_ED.equals(errFlg) || JFUStrConst.RELATION_CHECK_ERR_EL.equals(errFlg)
							|| JFUStrConst.RELATION_CHECK_ERR_EP.equals(errFlg) || JFUStrConst.RELATION_CHECK_ERR_EM.equals(errFlg)))
			{
				// アイテムIDが"ido_div"(異動予約)の場合
				if (ITEM_ID_IDO_DIV.equals(itemid))
				{
					// 業務共通例外クラス："0102"（契約状態エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() サービス契約内訳料金プラン変更ED-EL-EP-EMエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
				}
			}
			// テンプレートIDが"EKK0181D010"(サービス契約内訳<eo光TV>登録)かつ エラーフラグが"ED"の場合
			else if (TEMPLATE_ID_SVC_KEI_UCWK_TRK.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_ED.equals(errFlg))
			{
				// アイテムが"サービス契約番号：svc_kei_no"の場合
				if (ITEM_ID_SVC_KEI_NO.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() サービス契約内訳<eo光TV>登録EDエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
			// テンプレートIDが"EKK0341C160"(機器提供サービス契約料金コース変更)かつエラーフラグが"EA"の場合
			else if (TEMPLATE_ID_SVC_KEI_KKTK_UPD.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
			{
				// アイテムIDが"upd_dtm_df"(更新年月日時分秒(更新前))の場合
				if (ITEM_ID_UPD_DTM_DF.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() 機器提供サービス契約料金コース変更EAエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
			// テンプレートIDが"EKK0341C160"(機器提供サービス契約料金コース変更)かつ エラーフラグが"ED""EL""EP""EM"のいづれかの場合
			else if (TEMPLATE_ID_SVC_KEI_KKTK_UPD.equals(templateid)
					&& (JFUStrConst.RELATION_CHECK_ERR_ED.equals(errFlg) || JFUStrConst.RELATION_CHECK_ERR_EL.equals(errFlg)
							|| JFUStrConst.RELATION_CHECK_ERR_EP.equals(errFlg) || JFUStrConst.RELATION_CHECK_ERR_EM.equals(errFlg)))
			{
				// アイテムIDが"ido_div"(異動予約)の場合
				if (ITEM_ID_IDO_DIV.equals(itemid))
				{
					// 業務共通例外クラス："0102"（契約状態エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() 機器提供サービス契約料金コース変更ED-EL-EP-EMエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
				}
			}
			// テンプレートIDが"EKK0341D010"(機器提供サービス契約登録)、かつエラーフラグが"ED"の場合
			else if (TEMPLATE_ID_SVC_KEI_KKTK_TRK.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_ED.equals(errFlg))
			{
				// アイテムが"機器提供サービスコード：kktk_svc_cd"の場合
				if (ITEM_ID_KKTK_SVC_CD.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() 機器提供サービス契約登録EDエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
			// テンプレートIDが"EKK0341C530"(機器提供サービス契約機器変更手続開始)、かつエラーフラグが"EA"の場合
			else if (TEMPLATE_ID_SVC_KEI_KKTK_CNG.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
			{
				// アイテムIDが"upd_dtm_df"(更新年月日時分秒(更新前))の場合
				if (ITEM_ID_UPD_DTM_DF.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					DEBUG_LOG.info("----- FUW01501_checkInserErr() 機器提供サービス契約機器変更手続開始EAエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
		}

		// 業務共通例外クラス："0002"（システムエラー）
		DEBUG_LOG.info("----- FUW01501_checkInserErr() システムエラー -----");
		throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);

	}

	/********************************************************************************************************
	 *  戻るボタン押下処理（eo光テレビ機器の変更画面より実行）
	 *
	 * @return 処理結果
	 * @throws Exception 例外
	 *********************************************************************************************************/
	public boolean kikiBack() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- kikiBack Start -----");

		// *****************************************************************************************************
		// *初期処理
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray keiList1 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KEI_LIST);
		// サービスフォームBeanより機器リスト取得
		X31SDataBeanAccessArray kiki_list1 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_LIST);
		// 契約情報リスト
		X31SDataBeanAccessArray keiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
		keiListClear.clearArray();
		// 機器リスト
		X31SDataBeanAccessArray kikiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST);
		kikiListClear.clearArray();

		// サービスフォームBeanより契約追加情報リスト取得
		X31SDataBeanAccessArray addList1 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_ADD_LIST);
		// サービスフォームBeanより追加機器リスト取得
		X31SDataBeanAccessArray kikiAddlist1 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_ADD_LIST);
		// 契約追加情報リスト
		X31SDataBeanAccessArray addListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.ADD_LIST);
		addListClear.clearArray();
		// 追加機器リスト
		X31SDataBeanAccessArray kikiAddListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST);
		kikiAddListClear.clearArray();

		// 戻るボタン押下時の処理のため、現在の情報を保存
		for (int cnt = 0; cnt < keiList1.getCount(); cnt++)
		{
			X31SDataBeanAccess keiyakuDataBean = keiList1.getDataBean(cnt);
			X31SDataBeanAccess kikiDataBean = kiki_list1.getDataBean(cnt);

			X31SDataBeanAccess keiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KEI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean(keiyakuDataBean, keiSaveList);
			X31SDataBeanAccess kikiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
			deepCopyDataBean2(kikiDataBean, kikiSaveList);
		}

		// 戻るボタン押下時の処理のため、現在の追加情報を保存
		for (int addCnt = 0; addCnt < addList1.getCount(); addCnt++)
		{
			X31SDataBeanAccess keiyakuDataBean = addList1.getDataBean(addCnt);
			X31SDataBeanAccess kikiDataBean = kikiAddlist1.getDataBean(addCnt);

			X31SDataBeanAccess keiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.ADD_LIST + JFUWebCommon.SEP_N_LAST, addCnt);
			deepCopyDataBean(keiyakuDataBean, keiSaveList);
			X31SDataBeanAccess kikiSaveList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_ADD_LIST + JFUWebCommon.SEP_N_LAST, addCnt);
			deepCopyDataBean2(kikiDataBean, kikiSaveList);
		}

		// BSパススルー表示制御
		setBsptDspFlgCtrl(serviceInfoBean);

		// 機器コース最終押下ボタン番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.LAST_PUT_KIKI_NO, X31CWebConst.DATABEAN_SET_VALUE, SPACE);
		// 料金コース最終押下ボタン番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.LAST_PUT_PRCS_NO, X31CWebConst.DATABEAN_SET_VALUE, SPACE);
		// ****************************************************************************************************
		// * ご利用料金枠の設定（eo光テレビコース変更申込画面用)
		// *****************************************************************************************************
		makeRyokinList(serviceInfoBean);

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(eo光テレ機器の変更申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01501);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01501);

		// デバッグ用ログ出力
		DEBUG_LOG.debug("■■■■■☆☆☆DataDump☆戻るボタン押下処理（eo光テレビ機器の変更画面より実行）☆☆■■■■■" + super.dumpDatabean());
		DEBUG_LOG.info("----- kikiBack End -----");
		return true;
	}

	/********************************************************************************************************
	 *  戻るボタン押下処理（eo光テレビコース変更確認画面より実行）
	 *
	 * @return 処理結果
	 * @throws Exception 例外
	 *********************************************************************************************************/
	public boolean kfmBack() throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- kfmBack Start -----");

		// *****************************************************************************************************
		// *初期処理
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();

		String kikiCngFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// ---------------------------------------------
		// 工事案件の呼出有無を判定
		// ---------------------------------------------
		if (isSetKoujiAnken(serviceInfoBean))
		{
			// 電話番号
			String telNo = serviceInfoBean.sendMessageString(FUW01501SFConst.SAVE_KIKI_STC_SK_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
			serviceInfoBean.sendMessageString(FUW01501SFConst.I_DT_RRKS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, telNo);
			// 携帯電話／ＰＨＳ番号
			String ktaiTelNo = serviceInfoBean.sendMessageString(FUW01501SFConst.SAVE_RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
			serviceInfoBean.sendMessageString(FUW01501SFConst.I_RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_SET_VALUE, ktaiTelNo);
		}

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(eo光テレ機器の変更申込画面へ遷移)
		// *****************************************************************************************************
		if (KIKI_CNG_FLG_1.equals(kikiCngFlg))
		{
			// ****************************************************************************************************
			// * ご利用料金枠の設定（eo光テレビ機器の変更申込画面用
			// *****************************************************************************************************
			makeRyokinList2(serviceInfoBean);
			// 遷移先画面IDを設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01502);
			// 遷移先画面名を設定
			commonInfoBean
					.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01502);

		}
		else
		{
			// ****************************************************************************************************
			// * ご利用料金枠の設定（eo光テレビコース変更申込画面用)
			// *****************************************************************************************************
			makeRyokinList(serviceInfoBean);

			// サービスフォームBeanより契約情報リスト取得
			X31SDataBeanAccessArray keiHozonList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KEI_LIST);
			// サービスフォームBeanより機器リスト取得
			X31SDataBeanAccessArray kikiHozonList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_LIST);
			// 契約情報リスト
			X31SDataBeanAccessArray keiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
			keiListClear.clearArray();
			// 機器リスト
			X31SDataBeanAccessArray kikiListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST);
			kikiListClear.clearArray();

			// サービスフォームBeanより契約追加情報リスト取得
			X31SDataBeanAccessArray keiAddHozonList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_ADD_LIST);
			// サービスフォームBeanより追加機器リスト取得
			X31SDataBeanAccessArray kikiAddHozonList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_ADD_LIST);
			// 契約追加情報リスト
			X31SDataBeanAccessArray keiAddListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.ADD_LIST);
			keiAddListClear.clearArray();
			// 追加機器リスト
			X31SDataBeanAccessArray kikiAddListClear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST);
			kikiAddListClear.clearArray();

			// 戻るボタン押下時の処理のため、現在の情報を保存
			for (int cnt = 0; cnt < keiHozonList.getCount(); cnt++)
			{
				X31SDataBeanAccess keiyakuDataBean = keiHozonList.getDataBean(cnt);
				X31SDataBeanAccess kikiDataBean = kikiHozonList.getDataBean(cnt);

				X31SDataBeanAccess keiSaveList =
						JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KEI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
				deepCopyDataBean(keiyakuDataBean, keiSaveList);
				X31SDataBeanAccess kikiSaveList =
						JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_LIST + JFUWebCommon.SEP_N_LAST, cnt);
				deepCopyDataBean2(kikiDataBean, kikiSaveList);
			}

			// 戻るボタン押下時の処理のため、現在の追加情報を保存
			for (int cnt = 0; cnt < keiAddHozonList.getCount(); cnt++)
			{
				X31SDataBeanAccess keiyakuDataBean = keiAddHozonList.getDataBean(cnt);
				X31SDataBeanAccess kikiDataBean = kikiAddHozonList.getDataBean(cnt);

				X31SDataBeanAccess keiSaveList =
						JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.ADD_LIST + JFUWebCommon.SEP_N_LAST, cnt);
				deepCopyDataBean(keiyakuDataBean, keiSaveList);
				X31SDataBeanAccess kikiSaveList =
						JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_ADD_LIST + JFUWebCommon.SEP_N_LAST, cnt);
				deepCopyDataBean2(kikiDataBean, kikiSaveList);
			}

			// ****************************************************************************************************
			// * 機器変更画面遷移フラグ設定
			// *****************************************************************************************************
			// 契約台数　取得
			String mskmStbCnt = serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE);
			// コース種別　取得
			String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
			// 機器変更可否フラグ　取得
			String stbCngFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_FLG, X31CWebConst.DATABEAN_GET_VALUE);

			// 機器変更画面遷移フラグ　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_1);
			if (PCRS_TYPE00.equals(pcrsType))
			{
				String bspassDisfFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE);
				if (Integer.parseInt(mskmStbCnt) >= 2 || STB_CNG_FLG_1.equals(stbCngFlg) || BSPASS_DISP_FLG1.equals(bspassDisfFlg))
				{
					// 契約中のコースが旧コース　かつ
					// （契約STBが2台以上　または　機器変更可否フラグが「1：変更可能」　または　BSパススルー申込可否フラグが「1:可能」）な場合
					// 機器変更画面遷移フラグ
					serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIKI_CNG_FLG_1);
				}
			}

			// 遷移先画面IDを設定
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW01501);
			// 遷移先画面名を設定
			commonInfoBean
					.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW01501);
		}

		// デバッグ用ログ出力
		DEBUG_LOG.debug("■■■■■☆☆☆DataDump☆戻るボタン押下処理（eo光テレビ機器の変更画面より実行）☆☆■■■■■" + super.dumpDatabean());
		DEBUG_LOG.info("----- kfmBack End -----");
		return true;
	}

	/**
	 * 地デジ・BS以外の場合、契約情報リストの修正およびライトコース有無フラグ設定
	 * <br>
	 * @param keiList			契約情報リスト
	 * @param serviceInfoBean	サービスフォームBean
	 * @return	ライトコース有無フラグ
	 * @throws Exception 例外
	 */
	private String setLightFlg(X31SDataBeanAccessArray keiList, X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		// *****************************************************************************************************
		// *初期処理
		// *****************************************************************************************************
		String light_disp_flg = LIGHT_DISP_FLG_0;
		// 変更後料金コース取得
		String cngPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// キャンペーン文言用 変更後の料金コースコード・料金プランコード（サービス契約）設定
		if (PCRS00.equals(cngPcrsCd) || PCRS01.equals(cngPcrsCd))
		{
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A38);
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA3801);
		}
		else if (PCRS03.equals(cngPcrsCd) || PCRS04.equals(cngPcrsCd))
		{
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_A39);
			serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00565_PA3901);
		}

		// キャンペーン文言用
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_CHG_SVKEI_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, PCRS_CNG_LIST[Integer
				.parseInt(cngPcrsCd)]);
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_CHG_PPLAN_CD, X31CWebConst.DATABEAN_SET_VALUE, PLAN_CNG_LIST[Integer
				.parseInt(cngPcrsCd)]);

		// 機器提供サービス契約番号取得
		String kikiSeizoNo = serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);

		for (int cnt = 0; cnt < keiList.getCount(); cnt++)
		{
			// 契約情報リストより1件取得
			X31SDataBeanAccess keiyakuDataBean = keiList.getDataBean(cnt);
			// 契約情報リスト 機器製造番号ＳＴＢ
			String keiKikiSeizoNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_STB_01, X31CWebConst.DATABEAN_GET_VALUE);

			// 変更後コースを契約情報リストのコース選択に設定
			if (kikiSeizoNo.equals(keiKikiSeizoNo))
			{
				keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, cngPcrsCd);
			}

			// 契約中コース取得
			String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 契約中コースに紐づくコース選択を取得
			String keiPcrs = getChgPcrs(keiPcrsCd);
			// コース選択取得
			String keiCngPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);

			if (keiCngPcrs.equals(SPACE) && (PCRS02.equals(keiPcrs) || PCRS05.equals(keiPcrs)))
			{
				// ライトコース又はコンパクトコースが契約中リストに存在する場合「1：有」を設定
				light_disp_flg = LIGHT_DISP_FLG_1;
			}

		}
		return light_disp_flg;
	}

	/**
	 * ご利用料金リスト３および４作成
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @param keiList1			契約情報リスト
	 * @param mskmStbCnt		契約台数
	 * @param main_chk_flg		基本コース設定フラグ
	 * @throws Exception 例外
	 */
	private void setRyokinList(X31SDataBeanAccess serviceInfoBean, X31SDataBeanAccessArray keiList1, int mskmStbCnt, String main_chk_flg)
			throws Exception
	{
		// サービスフォームBeanよりコースリスト取得
		X31SDataBeanAccessArray ryokinList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN);
		// サービスフォームBeanよりご利用料金リスト３作成
		X31SDataBeanAccess ryokinList3 = null;
		X31SDataBeanAccessArray ryokinList3Clear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN_3_LIST);
		ryokinList3Clear.clearArray();

		// サービスフォームBeanよりご利用料金リスト４作成
		X31SDataBeanAccess ryokinList4 = null;
		X31SDataBeanAccessArray ryokinList4Clear = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN_4_LIST);
		ryokinList4Clear.clearArray();
		ryokinList4 = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.RYOKIN_4_LIST);

		// 追加STB情報リスト
		X31SDataBeanAccessArray addList = null;
		// 追加件数
		int addStbCnt = 0;
		if (!PCRS06.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			addList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.ADD_LIST);
			if (addList != null && addList.getCount() > 0)
			{
				addStbCnt = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			}
			if (addStbCnt <= 0)
			{
				// 追加しない場合、「-1」で設定されるため、「0」に変換する
				addStbCnt = 0;
			}
		}

		// テレビチューナー料金合計　初期化
		int stb_kei = 0;
		// 総合計　初期化
		int all_kei = 0;
		// STB変更台数設定
		int cngStbCnt = 0;
		// 単位名
		String stbTaniNm = JFUStrConst.EMPTY;
		String pcrsTaniNm = JFUStrConst.EMPTY;
		// サービスフォームBeanのSTB追加変更有無フラグを設定
		serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_UMU_FLG_0);

// ANK-4592-00-00 ADD START
		// 変更後料金コース取得
		String cngPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4592-00-00 ADD END

		// 契約情報＋追加情報の件数分、処理する
		int keiAddCnt = mskmStbCnt + addStbCnt;
		int getAddInfoNo = 0;
		for (int cnt = 0; cnt < keiAddCnt; cnt++)
		{
			// ////////////////////////////////////////////////////////////////////
			// 初期設定
			// ////////////////////////////////////////////////////////////////////
			// 契約情報リストより1件取得
			X31SDataBeanAccess keiyakuDataBean = null;

			if (cnt < mskmStbCnt)
			{
				// 契約情報を処理する場合
				keiyakuDataBean = keiList1.getDataBean(cnt);
			}
			else
			{
				// 追加情報を処理する場合
				getAddInfoNo = cnt - mskmStbCnt;
				keiyakuDataBean = addList.getDataBean(getAddInfoNo);
			}

			// ご利用料金リスト３のレコード作成
			ryokinList3 = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.RYOKIN_3_LIST + JFUWebCommon.SEP_N_LAST, cnt);

			// ////////////////////////////////////////////////////////////////////
			// 契約情報リストの選択コース設定
			// ////////////////////////////////////////////////////////////////////
			// 契約中コース取得
			String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

			// 契約中コースに紐づくコース選択を取得
			String keiKeiPcrs = getChgPcrs(keiPcrsCd);

			// コース選択取得
			String keiCngPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);

			if (SPACE.equals(keiCngPcrs))
			{
				// コース選択が未設定の場合は、契約中コースを設定
				keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, keiKeiPcrs);
				keiCngPcrs = keiKeiPcrs;
			}

			// ////////////////////////////////////////////////////////////////////
			// 「選択コース」を選択された「料金コースコード」に返還
			// ////////////////////////////////////////////////////////////////////
// ANK-4592-00-00 ADD START
			// CSベーシック、CSプレミアム選択時は契約リストが0件のため変更後料金コースコードを設定
			if (SPACE.equals(keiCngPcrs))
			{
				keiCngPcrs = cngPcrsCd;
			}
// ANK-4592-00-00 ADD END
			int pcrsCnt = Integer.parseInt(keiCngPcrs);
			String afterPcrs = PCRS_CNG_LIST[pcrsCnt];

			// ////////////////////////////////////////////////////////////////////
			// 「コースリストより選択された料金コース情報取得
			// ////////////////////////////////////////////////////////////////////
			if (cnt == Integer.parseInt(main_chk_flg))
			{
				// ////////////////////////////////////////////////////////////////////
				// 基本コース
				// ////////////////////////////////////////////////////////////////////

				// 料金コースリストより対応コース取得検索
				for (int rCnt = 0; rCnt < ryokinList.getCount(); rCnt++)
				{
					// コースリストより1件取得
					X31SDataBeanAccess ryokinDataBean = ryokinList.getDataBean(rCnt);
					// 料金コースリストより料金コースコード取得
					String ryokinCd = ryokinDataBean.sendMessageString(FUW01501SFConst.CD_03, X31CWebConst.DATABEAN_GET_VALUE);

					if (afterPcrs.equals(ryokinCd))
					{
						// ////////////////////////////////////////////////////////////////////
						// ご利用料金リスト３の内容設定
						// ////////////////////////////////////////////////////////////////////
						// 料金リストのコード設定
						ryokinList3.sendMessageString(FUW01501SFConst.CD_04, X31CWebConst.DATABEAN_SET_VALUE, ryokinCd);
						// 料金リストの名称設定
						String ryokinNm = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_03, X31CWebConst.DATABEAN_GET_VALUE);
						ryokinList3.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_SET_VALUE, ryokinNm);
						// 料金リストの料金設定
						String ryokinPrc = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_03, X31CWebConst.DATABEAN_GET_VALUE);
						ryokinList3.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, ryokinPrc);
						// 料金リストの料金プラン単位名設定
						pcrsTaniNm = ryokinDataBean.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_03, X31CWebConst.DATABEAN_GET_VALUE);
						ryokinList3.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, pcrsTaniNm);
						// 料金リストの基本コースフラグ設定
						ryokinList3.sendMessageString(FUW01501SFConst.MAIN_FLG_04, X31CWebConst.DATABEAN_SET_VALUE, MAIN_FLG_ONE);

						// ////////////////////////////////////////////////////////////////////
						// 情報リストの内容修正
						// ////////////////////////////////////////////////////////////////////

						// 契約情報リストの選択コースに料金コース名を設定
						keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinNm);
						// 契約情報リストの選択コースコードに料金コースコードを設定
						keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinCd);

						// コースリスト 料金プランコードを取得
						String ryokinPplanCd = ryokinDataBean.sendMessageString(FUW01501SFConst.PLAN_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
						// 契約情報リスト 内訳契約状態
						String ucwkStatus = keiyakuDataBean.sendMessageString(FUW01501SFConst.UCWK_STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);
						if (UCWK_STATUS_1.equals(ucwkStatus))
						{
							// サービス契約内訳予約中レコードかつ料金コースが未変更でプランコード変更時、コース変更不可
							// 契約情報リスト 選択プランコード
							String pplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

							if (!ryokinPplanCd.equals(pplanCd))
							{
								// サービス契約内訳が予約中のレコードに対しプラン変更が発生したためエラー
								DEBUG_LOG.info("----- FUW01501_setRyokinList() サービス契約内訳予約中のプラン変更エラー[基本コース] -----");
								throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
							}
						}
						// 契約情報リストの選択プランコードにプランコードを設定
						keiyakuDataBean.sendMessageString(FUW01501SFConst.PPLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinPplanCd);

						// ////////////////////////////////////////////////////////////////////
						// サービス契約の情報設定
						// ////////////////////////////////////////////////////////////////////
						// TVコースグループコード取得
						String ryokinTvCourseGrpCd =
								ryokinDataBean.sendMessageString(FUW01501SFConst.TV_COURSE_GRP_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
						for (int rCnt2 = 0; rCnt2 < ryokinList.getCount(); rCnt2++)
						{
							X31SDataBeanAccess ryokinDataBean2 = ryokinList.getDataBean(rCnt2);
							// TVコースグループコード取得
							String ryokinTvCourseGrpCd2 =
									ryokinDataBean2.sendMessageString(FUW01501SFConst.TV_COURSE_GRP_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
							// 料金コース種別コード取得
							String pcrsSbtCd = ryokinDataBean2.sendMessageString(FUW01501SFConst.PCRS_SBT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);

							if (PCRS_STB_CD_01.equals(pcrsSbtCd) && ryokinTvCourseGrpCd.equals(ryokinTvCourseGrpCd2))
							{
								// コースリストの料金コース種別コードが「1(サービス契約)」かつTVコースグループコード取得が同一の場合
								// サービスフォームBeanに料金コース（サービス契約）設定
								String ryokinCd2 = ryokinDataBean2.sendMessageString(FUW01501SFConst.CD_03, X31CWebConst.DATABEAN_GET_VALUE);
								serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_CD_KEI, X31CWebConst.DATABEAN_SET_VALUE, ryokinCd2);

								// サービスフォームBeanに料金プラン（サービス契約）設定
								String ryokinPplanCd2 =
										ryokinDataBean2.sendMessageString(FUW01501SFConst.PLAN_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
								serviceInfoBean.sendMessageString(FUW01501SFConst.PPLAN_CD_KEI, X31CWebConst.DATABEAN_SET_VALUE, ryokinPplanCd2);

								// サービスフォームBeanに料金グループ（サービス契約）設定
								String ryokinPrcGrpCd2 =
										ryokinDataBean2.sendMessageString(FUW01501SFConst.PRC_GRP_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
								serviceInfoBean.sendMessageString(FUW01501SFConst.PRC_GRP_CD_KEI, X31CWebConst.DATABEAN_SET_VALUE, ryokinPrcGrpCd2);
							}
						}

						// ////////////////////////////////////////////////////////////////////
						// 料金計算
						// ////////////////////////////////////////////////////////////////////
						// 料金リストの料金が無料の場合"0"に置き換える
						if (JFUStrConst.FREE_LABEL.equals(ryokinPrc))
						{
							ryokinPrc = ZERO;
						}
						// 総合計に料金コースの月額料金を加算
						all_kei = all_kei + Integer.parseInt(ryokinPrc);
						// STBの月額使用料計算
						X31SDataBeanAccessArray kiki_list = null;
						X31SDataBeanAccess kikiCngList = null;

						// 機器情報取得
						boolean addStbFlg = false;
						if (cnt < mskmStbCnt)
						{
							// 契約情報を処理する場合
							kiki_list = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST);
							kikiCngList = kiki_list.getDataBean(cnt);
						}
						else
						{
							// 追加情報を処理する場合
							kiki_list = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST);
							kikiCngList = kiki_list.getDataBean(getAddInfoNo);
							addStbFlg = true;
						}

						// 機器選択リストより機器リスト選択値取得
						String kikiSelectCd = kikiCngList.sendMessageString(FUW01501SFConst.SELECT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
						if (!SPACE.equals(kikiSelectCd) && !ZERO.equals(kikiSelectCd))
						{
							int index = Integer.parseInt(kikiSelectCd);

							// 機器選択リストより月額料金取得
							String kikiPrc = kikiCngList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							// 総合計にSTBの月額料金を加算
							stb_kei = stb_kei + Integer.parseInt(kikiPrc);

							if (!addStbFlg)
							{
								// STB変更カウント
								cngStbCnt = cngStbCnt + 1;
							}

							// 機器選択リストよりコースコード取得
							String kikiPrcCd = kikiCngList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, kikiPrcCd);
							// 機器選択リストよりプランコード取得
							String kikiPplanCd = kikiCngList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PPLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, kikiPplanCd);
							// 機器選択リストよりプランコード取得
							String kikiPrcNm = kikiCngList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, kikiPrcNm);
							// 機器選択リストよりＨＤＤ容量コード取得
							String hddCd = kikiCngList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.HDD_CAPA_CD_01, X31CWebConst.DATABEAN_SET_VALUE, hddCd);
							// 機器選択リストより料金プラン単位名取得
							stbTaniNm = kikiCngList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);

							String status = keiyakuDataBean.sendMessageString(FUW01501SFConst.STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);
							if (!STATUS_1.equals(status))
							{
								// STB変更
								keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_SET_VALUE, CHG_STB_1);
							}

							// サービスフォームBeanのSTB追加変更有無フラグを設定
							serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_UMU_FLG_1);
						}
						else
						{
							// 機器が選択されていない場合は、契約中の機器の月額料金を設定

							// 契約情報リストより契約中の機器コースコード取得
							String keiKikiPcrsCd =
									keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
							if (!SPACE.equals(keiKikiPcrsCd))
							{
								// 機器リスト（参照用）より機器コースコードリスト取得
								X31SDataBeanAccessArray kikiSaveList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_SAVE_LIST);
								X31SDataBeanAccess kikiKeiList = kikiSaveList.getDataBean(0);
								int saveCnt =
										Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_KENSU_CNT,
												X31CWebConst.DATABEAN_GET_VALUE));
								for (int kCnt = 0; kCnt < saveCnt; kCnt++)
								{
									// 契約中の機器と同一の料金コースコード取得時、月額料金を加算する
									String kikiPcsCd =
											kikiKeiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, kCnt);
									if (keiKikiPcrsCd.equals(kikiPcsCd))
									{
										// 機器選択リストより月額料金取得
										String kikiPrc =
												kikiKeiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, kCnt);
										// 機器選択リストより料金プラン単位名取得
										stbTaniNm =
												kikiKeiList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, kCnt);
										// 総合計にSTBの月額料金を加算
										stb_kei = stb_kei + Integer.parseInt(kikiPrc);
									}
								}
							}

							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_SET_VALUE, CHG_STB_0);
						}
						break;
					}
				}

			}
			else
			{
				// ////////////////////////////////////////////////////////////////////
				// 追加コース
				// ////////////////////////////////////////////////////////////////////
				// 料金コースリストより対応コース取得検索
				for (int rCnt = 0; rCnt < ryokinList.getCount(); rCnt++)
				{
					// コースリストより1件取得
					X31SDataBeanAccess ryokinDataBean = ryokinList.getDataBean(rCnt);
					// 料金コースリストより料金コースコード(追加)取得
					String ryokinCd = ryokinDataBean.sendMessageString(FUW01501SFConst.CD_03, X31CWebConst.DATABEAN_GET_VALUE);

					if (afterPcrs.equals(ryokinCd))
					{
						// ////////////////////////////////////////////////////////////////////
						// ご利用料金リスト３の内容設定
						// ////////////////////////////////////////////////////////////////////
						// 料金リストのコード設定
						ryokinList3.sendMessageString(FUW01501SFConst.CD_04, X31CWebConst.DATABEAN_SET_VALUE, ryokinCd);
						// 料金リストの名称設定
						String ryokinNm = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
						ryokinList3.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_SET_VALUE, ryokinNm);
						// 料金リストの料金設定
						String ryokinPrc = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
						ryokinList3.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, ryokinPrc);
						// 料金リストの料金プラン単位名設定
						pcrsTaniNm = ryokinDataBean.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
						ryokinList3.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, pcrsTaniNm);
						// 料金リストの基本コースフラグ設定
						ryokinList3.sendMessageString(FUW01501SFConst.MAIN_FLG_04, X31CWebConst.DATABEAN_SET_VALUE, ZERO);

						// ////////////////////////////////////////////////////////////////////
						// 情報リストの内容修正
						// ////////////////////////////////////////////////////////////////////
						// 契約情報リストの選択コースに料金コース名を設定
						keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinNm);
						// 契約情報リストの選択コースコードに料金コースコードを設定
						keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinCd);

						// コースリスト 料金プランコードを取得
						String ryokinPplanCd = ryokinDataBean.sendMessageString(FUW01501SFConst.PLAN_CD_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
						// 契約情報リスト 内訳契約状態
						String ucwkStatus = keiyakuDataBean.sendMessageString(FUW01501SFConst.UCWK_STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);
						if (UCWK_STATUS_1.equals(ucwkStatus))
						{
							// サービス契約内訳予約中レコードかつ料金コースが未変更でプランコード変更時、コース変更不可
							// 契約情報リスト 選択プランコード
							String pplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

							if (!ryokinPplanCd.equals(pplanCd))
							{
								// サービス契約内訳が予約中のレコードに対しプラン変更が発生したためエラー
								DEBUG_LOG.info("----- FUW01501_setRyokinList() サービス契約内訳予約中のプラン変更エラー[追加コース] -----");
								throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
							}
						}
						// 契約情報リストの選択プランコードにプランコードを設定
						keiyakuDataBean.sendMessageString(FUW01501SFConst.PPLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, ryokinPplanCd);

						// ////////////////////////////////////////////////////////////////////
						// 料金計算
						// ////////////////////////////////////////////////////////////////////
						// 料金リストの料金が無料の場合"0"に置き換える
						if (JFUStrConst.FREE_LABEL.equals(ryokinPrc))
						{
							ryokinPrc = ZERO;
						}

						// 総合計に料金コースの月額料金を加算
						all_kei = all_kei + Integer.parseInt(ryokinPrc);

						// STBの月額使用料計算
						X31SDataBeanAccessArray kiki_list = null;
						X31SDataBeanAccess kikiCngList = null;

						// 機器情報取得
						boolean addStbFlg = false;
						if (cnt < mskmStbCnt)
						{
							// 契約情報を処理する場合
							kiki_list = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST);
							kikiCngList = kiki_list.getDataBean(cnt);
						}
						else
						{
							// 追加情報を処理する場合
							kiki_list = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST);
							kikiCngList = kiki_list.getDataBean(getAddInfoNo);
							addStbFlg = true;
						}

						// 機器選択リストより機器リスト選択値取得
						String kikiSelectCd = kikiCngList.sendMessageString(FUW01501SFConst.SELECT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
						if (!SPACE.equals(kikiSelectCd) && !ZERO.equals(kikiSelectCd))
						{
							int index = Integer.parseInt(kikiSelectCd);

							// 機器選択リストより月額料金取得
							String kikiPrc = kikiCngList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							// 総合計にSTBの月額料金を加算
							stb_kei = stb_kei + Integer.parseInt(kikiPrc);

							if (!addStbFlg)
							{
								// STB変更カウント
								cngStbCnt = cngStbCnt + 1;
							}

							// 機器選択リストよりコースコード取得
							String kikiPrcCd = kikiCngList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, kikiPrcCd);
							// 機器選択リストよりプランコード取得
							String kikiPplanCd = kikiCngList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PPLAN_CD_01, X31CWebConst.DATABEAN_SET_VALUE, kikiPplanCd);
							// 機器選択リストよりプランコード取得
							String kikiPrcNm = kikiCngList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, kikiPrcNm);
							// 機器選択リストよりＨＤＤ容量コード取得
							String hddCd = kikiCngList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.HDD_CAPA_CD_01, X31CWebConst.DATABEAN_SET_VALUE, hddCd);
							String status = keiyakuDataBean.sendMessageString(FUW01501SFConst.STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);
							// 機器選択リストより料金プラン単位名取得
							stbTaniNm = kikiCngList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);

							if (!STATUS_1.equals(status))
							{
								// STB変更
								keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_SET_VALUE, CHG_STB_1);
							}
							// サービスフォームBeanのSTB追加変更有無フラグを設定
							serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_UMU_FLG_1);
						}
						else
						{
							// 機器が選択されていない場合は、契約中の機器の月額料金を設定

							// 契約情報リストより契約中の機器コースコード取得
							String keiKikiPcrsCd =
									keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
							if (SPACE.equals(keiKikiPcrsCd))
							{
								// 契約中の機器がない場合は、契約情報リストより選択機器コースコード取得
								keiKikiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
							}

							// 機器リスト（参照用）より機器コースコードリスト取得
							X31SDataBeanAccessArray kikiSaveList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_SAVE_LIST);
							X31SDataBeanAccess kikiKeiList = kikiSaveList.getDataBean(0);
							int saveCnt =
									Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_KENSU_CNT,
											X31CWebConst.DATABEAN_GET_VALUE));
							for (int kCnt = 0; kCnt < saveCnt; kCnt++)
							{
								// 契約中の機器と同一の料金コースコード取得時、月額料金を加算する
								String kikiPcsCd = kikiKeiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, kCnt);
								if (keiKikiPcrsCd.equals(kikiPcsCd))
								{
									// 機器選択リストより月額料金取得
									String kikiPrc =
											kikiKeiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, kCnt);
									// 総合計にSTBの月額料金を加算
									stb_kei = stb_kei + Integer.parseInt(kikiPrc);

								}
							}

							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
							keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_SET_VALUE, CHG_STB_0);
						}
						break;
					}
				}
			}
		}

		// ////////////////////////////////////////////////////////////////////
		// ご利用料金リスト３　金額設定
		// ////////////////////////////////////////////////////////////////////
		int nextCnt = keiAddCnt;
		int addCnt = 0;

		// STBのチューナー代が有料の場合のみ、料金表に表示を追加する
		if (stb_kei != 0)
		{
			// STB追加変更有無フラグが「1：有」 のときのみ設定
			// リスト３取得
			ryokinList3 =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.RYOKIN_3_LIST + JFUWebCommon.SEP_N_LAST,
							nextCnt + addCnt);
			addCnt += 1;
			all_kei = all_kei + stb_kei;
			// 料金リストのコード設定
			// ryokinList3.sendMessageString(FUW01501SFConst.CD_04, X31CWebConst.DATABEAN_SET_VALUE, SPACE);
			// 料金リストの名称設定
			ryokinList3.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW01501, STB_RYOKIN_KEI_NAME));

			String tvKikiPrc = null;

			tvKikiPrc = Integer.toString(stb_kei);

			// 料金リストの料金設定
			ryokinList3.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, tvKikiPrc);
			// 料金リストの料金プラン単位名設定
			ryokinList3.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, stbTaniNm);
		}
		stbTaniNm = pcrsTaniNm;

		// リスト３取得
		ryokinList3 =
				JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.RYOKIN_3_LIST + JFUWebCommon.SEP_N_LAST,
						nextCnt + addCnt);

		// 料金リストのコード設定
		// ryokinList3.sendMessageString(FUW01501SFConst.CD_04, X31CWebConst.DATABEAN_SET_VALUE, SPACE);
		// 料金リストの名称設定
		ryokinList3.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
				JFUScreenConst.SCREEN_ID_FUW01501, ALL_RYOKIN_KEI_NAME));
		// 料金リストの料金設定
		ryokinList3.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(all_kei));
		// 料金リストの料金プラン単位名設定
		ryokinList3.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, stbTaniNm);
		// 料金リストの基本コースフラグ設定
		// ryokinList3.sendMessageString(FUW01501SFConst.MAIN_FLG_04, X31CWebConst.DATABEAN_SET_VALUE, SPACE);

		// ////////////////////////////////////////////////////////////////////
		// ご利用料金リスト４　金額設定
		// ////////////////////////////////////////////////////////////////////

		boolean bsptFlg = serviceInfoBean.sendMessageBoolean(FUW01501SFConst.CHKBOX_BSPASS, X31CWebConst.DATABEAN_GET_VALUE);
		if (bsptFlg)
		{
			// BSパススルー申込有無フラグに「1：有」を設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_FLG_1);
			// サービスフォームBeanのSTB追加変更有無フラグを設定
			// serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_UMU_FLG_1);
		}
		else
		{
			// BSパススルー申込有無フラグに「0：無」を設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_FLG_0);
		}

		// STB追加変更有無フラグ取得
		String stbCngUmuFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (STB_CNG_UMU_FLG_1.equals(stbCngUmuFlg) || bsptFlg)
		{
			int cngPrc = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_12_LIST, X31CWebConst.DATABEAN_GET_VALUE));
			int addPrc = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_13_LIST, X31CWebConst.DATABEAN_GET_VALUE));
			int syuttyoPrc = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_11_LIST, X31CWebConst.DATABEAN_GET_VALUE));
			int bsptPrc = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_14_LIST, X31CWebConst.DATABEAN_GET_VALUE));
			int bsptWaribiki = bsptPrc + syuttyoPrc;
			int shoki_kei = 0;

			// コース種別取得
			String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
			// 追加台数
			int addSelCnt = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));

			if (PCRS_TYPE02.equals(pcrsType))
			{
				// 地デジBSの場合
				shoki_kei = (cngStbCnt * addPrc) + syuttyoPrc;
			}
			else
			{
				// 地デジBS以外の場合
				shoki_kei = (cngStbCnt * cngPrc) + syuttyoPrc;

				// 追加台数
				if (addSelCnt > 0)
				{
					shoki_kei = shoki_kei + (addSelCnt * addPrc);
				}

				// BSパススルー
				if (bsptFlg)
				{
					shoki_kei = shoki_kei + bsptPrc;
					// ■現状、当画面のBSパススルー(TV用ONU交換工事)申込は割引キャンペーンにより"無料"のみとなっているため、減算する。
					if (isBsptMuryo(serviceInfoBean))
					{
						shoki_kei = shoki_kei - bsptWaribiki;
					}
				}
			}
			// 料金リストの名称設定
			ryokinList4.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
					JFUScreenConst.SCREEN_ID_FUW01501, SHOKI_RYOKIN_NAME));
			// 料金リストの料金設定
			if (bsptFlg && shoki_kei == 0)
			{
				ryokinList4.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.FREE_LABEL);
				ryokinList4.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			}
			else
			{
				ryokinList4.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(shoki_kei));
				// 料金リストの料金プラン単位名設定
				ryokinList4.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, SPACE_JPN_UNIT);
			}
		} 
// ANK-4592-00-00 ADD START
		else if (PCRS_CS_LIST.contains(cngPcrsCd))
		{
// ANK-4673-00-00 MOD START
			if (PCRS_TYPE04.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// CSコースからCSコースの場合は非表示(設定しない)
			}
			else
			{
				int cngPrc = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_15_LIST, X31CWebConst.DATABEAN_GET_VALUE));
				// 料金リストの名称設定
				ryokinList4.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getDispText(
						JFUScreenConst.SCREEN_ID_FUW01501, SHOKI_RYOKIN_NAME_CS));
				if (cngPrc == 0)
				{
					ryokinList4.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.FREE_LABEL);
					ryokinList4.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
				}
				else
				{
					ryokinList4.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(cngPrc));
					// 料金リストの料金プラン単位名設定
					ryokinList4.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_SET_VALUE, SPACE_JPN_UNIT);
				}
			}
// ANK-4673-00-00 MOD END
		}
// ANK-4592-00-00 ADD END

	}

	/**
	 * ご利用料金枠の設定（eo光テレビコース変更申込画面用
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception 
	 */
	private void makeRyokinList(X31SDataBeanAccess serviceInfoBean) throws Exception
	{

		// ご利用料金リスト取得
		X31SDataBeanAccess prcInfoAreaList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.PRC_INFO_AREA_LIST);
		// タイトルリストの初期化
		X31SDataBeanAccessArray prcInfoTitleList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_TITLE_LIST);
		prcInfoTitleList.clearArray();
		// 備考リストの初期化
		X31SDataBeanAccessArray prcInfoBikoList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_BIKO_LIST);
		prcInfoBikoList.clearArray();
		// コメントリストの初期化
		X31SDataBeanAccessArray prcInfoCommentList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_COMMENT_LIST);
		prcInfoCommentList.clearArray();
		
		// 備考 テキスト
		List<String> setBikoList = new ArrayList<String>();

		// ************************************************************************************************************************
		// ●コメントエリア情報設定処理
		// ************************************************************************************************************************
		JFUWebCommon.setCommentList(prcInfoAreaList, new ArrayList<String>(), new ArrayList<String>());

		// ************************************************************************************************************************
		// ●タイトル・テーブルエリア情報設定処理
		// ************************************************************************************************************************
		// テーブルタイトル識別子リスト(任意)
		List<String> setTableTitleSkbtList = new ArrayList<String>();
		setTableTitleSkbtList.add(TITLE_0_0);
		setTableTitleSkbtList.add(TITLE_1_0);
		// テーブルタイトルエリア表示用リスト
		List<String> setTableTitleList = new ArrayList<String>();
		setTableTitleList.add(PRC_INFO_AREA_TITLE4);
		setTableTitleList.add(PRC_INFO_AREA_TITLE3);

		// ************************************************************************************************************************
		// テーブルスタイルクラスリスト(任意)
		// テーブルスタイル(タイトルの背景色)に値を入れたい場合に設定する。
		// ************************************************************************************************************************
		List<String> setTableStyleClass1List = new ArrayList<String>();
		List<String> setTableStyleClass2List = new ArrayList<String>();
		setTableStyleClass1List.add(FIXED_FEE);
		setTableStyleClass1List.add(FIXED_FEE);
		setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);
		setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);

		// ************************************************************************************************************************
		// eo光テレビチューナー月額料金
		// ************************************************************************************************************************
		// 月額料金用
		List<String> setTableValueSkbtList2 = new ArrayList<String>();
		setTableValueSkbtList2.add(K_SPACE);
		// 右値リスト
		List<String> setTableRightValueList2 = new ArrayList<String>();
		setTableRightValueList2.add(JFUStrConst.SPACE);
		// 左値リスト
		List<String> setTableLeftValueList2 = new ArrayList<String>();
		setTableLeftValueList2.add(JFUStrConst.MINUS);

		// ************************************************************************************************************************
		// 月額料金用
		// ************************************************************************************************************************
		// 月額料金用
		List<String> setTableValueSkbtList = new ArrayList<String>();
		// 右値リスト
		List<String> setTableRightValueList = new ArrayList<String>();
		// 左値リスト
		List<String> setTableLeftValueList = new ArrayList<String>();

		// 1 行目設定
		setTableValueSkbtList.add(C_SPACE);
		setTableLeftValueList.add(JFUStrConst.SPACE);
		setTableRightValueList.add(JFUStrConst.MINUS);

		// サービスフォームBeanよりコースリスト取得
		X31SDataBeanAccessArray ryokinList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN);

		// 契約台数取得
		int ryokinCnt = ryokinList.getCount();
		for (int cnt = 0; cnt < ryokinCnt; cnt++)
		{
			// コースリストより1件取得
			X31SDataBeanAccess ryokinDataBean = ryokinList.getDataBean(cnt);
			// 料金リストの料金コースコード取得
			String ryokinCd = ryokinDataBean.sendMessageString(FUW01501SFConst.CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金リストの名称取得
			String ryokinNm = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_03, X31CWebConst.DATABEAN_GET_VALUE);
			String ryokinNmAdd = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金リストの料金取得
			String ryokinPrc = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_03, X31CWebConst.DATABEAN_GET_VALUE);
			String ryokinPrcAdd = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金プラン単位名取得
			String taniNm = ryokinDataBean.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金プラン単位名(追加)取得
			String taniNmAdd = ryokinDataBean.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);

			if (JFUStrConst.CD00134_A35.equals(ryokinCd))
			{
				// 料金コースがスタンダード
				setTableValueSkbtList.add(C0_0);
				setTableLeftValueList.add(ryokinNm);

				// 無料の場合
				if (ZERO.equals(ryokinPrc))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);
				}

				setTableValueSkbtList.add(C0_1);
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A33.equals(ryokinCd))
			{
				// 料金コースがバリュー
				setTableValueSkbtList.add(C1_0);
				setTableLeftValueList.add(ryokinNm);
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				setTableValueSkbtList.add(C1_1);
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A40.equals(ryokinCd))
			{
				// 料金コースがベーシック
				setTableValueSkbtList.add(C3_0);
				setTableLeftValueList.add(ryokinNm);
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				setTableValueSkbtList.add(C3_1);
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A41.equals(ryokinCd))
			{
				// 料金コースがプレミアム
				setTableValueSkbtList.add(C4_0);
				setTableLeftValueList.add(ryokinNm);
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				setTableValueSkbtList.add(C4_1);
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A86.equals(ryokinCd))
			{
				// 料金コースがスマートベーシック
				setTableValueSkbtList.add(C5_0);
				setTableLeftValueList.add(ryokinNm);
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				setTableValueSkbtList.add(C5_1);
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A87.equals(ryokinCd))
			{
				// 料金コースがスマートプレミアム
				setTableValueSkbtList.add(C6_0);
				setTableLeftValueList.add(ryokinNm);
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				setTableValueSkbtList.add(C6_1);
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A85.equals(ryokinCd))
			{
				// 料金コースがスマートコンパクト
				setTableValueSkbtList.add(C7_0);
				setTableLeftValueList.add(ryokinNm);
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				setTableValueSkbtList.add(C7_1);
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
		}
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		// ************************************************************************************************************************
		// テーブルの値、左値、右値の各リストを格納するマップ
		Map<String, List<String>> tableValueMap = new LinkedHashMap<String, List<String>>();
		// ************************************************************************************************************************
		
		if (PCRS_TYPE02.equals(pcrsType))
		{
			setTableTitleSkbtList.add(TITLE_2_0);
			setTableTitleList.add(PRC_INFO_AREA_TITLE2);
			setTableStyleClass1List.add(INITIAL_COST);
			setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);
			// ********************************************************************************************************************
			// 【初期費用】
			// ID名
			// eo光テレビチューナー月額料金テーブル左値リスト
			// eo光テレビチューナー月額料金テーブル右値リスト
			// 申込画面でSTBを申し込むことができなくなった為、初期費用情報を設定しない(VOD対応)
			// ********************************************************************************************************************
			List<String> setTableValueSkbtList3 = new ArrayList<String>();
			List<String> setTableLeftValueList3 = new ArrayList<String>();
			List<String> setTableRightValueList3 = new ArrayList<String>();

			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList);
			tableValueMap.put(PRC_INFO_AREA_TITLE3 + 1 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList2);
			tableValueMap.put(PRC_INFO_AREA_TITLE3 + 1 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList2);
			tableValueMap.put(PRC_INFO_AREA_TITLE3 + 1 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList2);
			setBikoList.add(JFUStrConst.EMPTY);
			if (setTableValueSkbtList3.size() > 0)
			{
				tableValueMap.put(PRC_INFO_AREA_TITLE2 + 2 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList3);
				tableValueMap.put(PRC_INFO_AREA_TITLE2 + 2 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList3);
				tableValueMap.put(PRC_INFO_AREA_TITLE2 + 2 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList3);

				setBikoList.add(JFUStrConst.EMPTY);
			}
			
			String biko = TAG_TH_S + JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, WARIBIKI_MONGON) + TAG_TH_E;
			
			setBikoList.add(biko);
		}
		else
		{
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList);
			setBikoList.add(TAG_TH_S + JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, WARIBIKI_MONGON) + TAG_TH_E);
		}
		
		// テーブルタイトルエリア表示用リスト設定
		JFUWebCommon.setTableTitleList(prcInfoAreaList, setTableTitleSkbtList, setTableTitleList, setTableStyleClass1List, setTableStyleClass2List,
				tableValueMap);

		// 備考エリア情報設定
		JFUWebCommon.setBikoList(prcInfoAreaList,  new ArrayList<String>(), setBikoList);
	}

	/**
	 * ご利用料金枠の設定（eo光テレビ機器の変更申込画面用
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception 
	 */
	private void makeRyokinList2(X31SDataBeanAccess serviceInfoBean) throws Exception
	{

		// ご利用料金リスト取得
		X31SDataBeanAccess prcInfoAreaList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.PRC_INFO_AREA_LIST);
		// タイトルリストの初期化
		X31SDataBeanAccessArray prcInfoTitleList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_TITLE_LIST);
		prcInfoTitleList.clearArray();
		// 備考リストの初期化
		X31SDataBeanAccessArray prcInfoBikoList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_BIKO_LIST);
		prcInfoBikoList.clearArray();
		// コメントリストの初期化
		X31SDataBeanAccessArray prcInfoCommentList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_COMMENT_LIST);
		prcInfoCommentList.clearArray();
		// 備考リスト
		List<String> setBikoList = new ArrayList<String>();

		// サービスフォームBeanよりコースリスト取得
		X31SDataBeanAccessArray ryokinList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN);
		// コース種別
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);

		// ************************************************************************************************************************
		// ●コメントエリア情報設定処理
		// ************************************************************************************************************************
		JFUWebCommon.setCommentList(prcInfoAreaList, new ArrayList<String>(), new ArrayList<String>());

		// ************************************************************************************************************************
		// ●タイトル・テーブルエリア情報設定処理
		// ************************************************************************************************************************
		// テーブルタイトル識別子リスト(任意)：
		List<String> setTableTitleSkbtList = new ArrayList<String>();
		setTableTitleSkbtList.add(TITLE_0_0);	// コース月額料金用
		setTableTitleSkbtList.add(TITLE_1_0);	// チューナー月額料金用
		setTableTitleSkbtList.add(TITLE_2_0);	// 初期費用用

		// テーブルタイトルエリア表示用リスト
		List<String> setTableTitleList = new ArrayList<String>();
		setTableTitleList.add(PRC_INFO_AREA_TITLE4);	// コース月額料金用
		setTableTitleList.add(PRC_INFO_AREA_TITLE3);	// チューナー月額料金用
		setTableTitleList.add(PRC_INFO_AREA_TITLE2);	// 初期費用用

		// テーブルスタイルクラスリスト(任意)
		List<String> setTableStyleClass1List = new ArrayList<String>();
		setTableStyleClass1List.add(FIXED_FEE);		// コース月額料金用
		setTableStyleClass1List.add(FIXED_FEE);		// チューナー月額料金用
		setTableStyleClass1List.add(INITIAL_COST);	// 初期費用用

		// テーブルスタイル(タイトルの背景色)に値を入れたい場合に設定する。
		List<String> setTableStyleClass2List = new ArrayList<String>();
		setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);	// コース月額料金用
		setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);	// チューナー月額料金用
		setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);	// 初期費用用

		// ************************************************************************************************************************
		// ●コース月額料金設定
		// ************************************************************************************************************************
		List<String> setTableValueSkbtList = new ArrayList<String>();
		// 右値リスト
		List<String> setTableRightValueList = new ArrayList<String>();
		// 左値リスト
		List<String> setTableLeftValueList = new ArrayList<String>();

		// ■1行目設定
		// 識別ID
		setTableValueSkbtList.add(C_SPACE);
		// 左値：空文字
		setTableLeftValueList.add(JFUStrConst.SPACE);
		// 右値：ハイフン
		setTableRightValueList.add(JFUStrConst.MINUS);

		// 料金情報リスト分、名称と金額を設定する
		int ryokinCnt = ryokinList.getCount();
		for (int cnt = 0; cnt < ryokinCnt; cnt++)
		{
			// コースリストより1件取得
			X31SDataBeanAccess ryokinDataBean = ryokinList.getDataBean(cnt);

			// 料金リストの料金コースコード取得
			String ryokinCd = ryokinDataBean.sendMessageString(FUW01501SFConst.CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金リストの名称取得
			String ryokinNm = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_03, X31CWebConst.DATABEAN_GET_VALUE);
			String ryokinNmAdd = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金リストの料金取得
			String ryokinPrc = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_03, X31CWebConst.DATABEAN_GET_VALUE);
			String ryokinPrcAdd = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金プラン単位名取得
			String taniNm = ryokinDataBean.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_03, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金プラン単位名(追加)取得
			String taniNmAdd = ryokinDataBean.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_ADD_03, X31CWebConst.DATABEAN_GET_VALUE);

			if (JFUStrConst.CD00134_A35.equals(ryokinCd))
			{
				// ■料金コースがスタンダード

				// 基本コース
				// 識別ID
				setTableValueSkbtList.add(C0_0);
				// 左値：名称
				setTableLeftValueList.add(ryokinNm);

				// 無料の場合
				if (ZERO.equals(ryokinPrc))
				{
					// 右値：無料
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					// 右値：金額＋単位
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);
				}

				// 追加コース
				// 識別ID
				setTableValueSkbtList.add(C0_1);
				// 左値：名称
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A33.equals(ryokinCd))
			{
				// ■料金コースがバリュー

				// 基本コース
				// 識別ID
				setTableValueSkbtList.add(C1_0);
				// 左値：名称
				setTableLeftValueList.add(ryokinNm);
				// 右値：金額＋単位
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				// 追加コース
				// 識別ID
				setTableValueSkbtList.add(C1_1);
				// 左値：名称
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					// 右値：無料
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					// 右値：金額＋単位
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A40.equals(ryokinCd))
			{
				// ■料金コースがベーシック

				// 基本コース
				// 識別ID
				setTableValueSkbtList.add(C3_0);
				// 左値：名称
				setTableLeftValueList.add(ryokinNm);
				// 右値：金額＋単位
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				// 追加コース
				// 識別ID
				setTableValueSkbtList.add(C3_1);
				// 左値：名称
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					// 右値：無料
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					// 右値：金額＋単位
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A41.equals(ryokinCd))
			{
				// ■料金コースがプレミアム

				// 基本コース
				// 識別ID
				setTableValueSkbtList.add(C4_0);
				// 左値：名称
				setTableLeftValueList.add(ryokinNm);
				// 右値：金額＋単位
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				// 追加コース
				// 識別ID
				setTableValueSkbtList.add(C4_1);
				// 右値：金額＋単位
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					// 右値：無料
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					// 右値：金額＋単位
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A86.equals(ryokinCd))
			{
				// ■料金コースがスマートベーシック

				// 基本コース
				// 識別ID
				setTableValueSkbtList.add(C5_0);
				// 左値：名称
				setTableLeftValueList.add(ryokinNm);
				// 右値：金額＋単位
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				// 追加コース
				// 識別ID
				setTableValueSkbtList.add(C5_1);
				// 左値：名称
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					// 右値：無料
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					// 右値：金額＋単位
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A87.equals(ryokinCd))
			{
				// ■料金コースがスマートプレミアム

				// 基本コース
				setTableValueSkbtList.add(C6_0);
				// 左値：名称
				setTableLeftValueList.add(ryokinNm);
				// 右値：金額＋単位
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				// 追加コース
				// 識別ID
				setTableValueSkbtList.add(C6_1);
				// 左値：名称
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					// 右値：無料
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					// 右値：金額＋単位
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
			else if (JFUStrConst.CD00134_A85.equals(ryokinCd))
			{
				// ■料金コースがスマートコンパクト

				// 基本コース
				setTableValueSkbtList.add(C7_0);
				// 左値：名称
				setTableLeftValueList.add(ryokinNm);
				// 右値：金額＋単位
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + taniNm);

				// 追加コース
				// 識別ID
				setTableValueSkbtList.add(C7_1);
				// 左値：名称
				setTableLeftValueList.add(ryokinNmAdd);

				// 無料の場合
				if (ZERO.equals(ryokinPrcAdd))
				{
					// 右値：無料
					setTableRightValueList.add(JFUStrConst.FREE_LABEL);
				}
				// 有料の場合
				else
				{
					// 右値：金額＋単位
					setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrcAdd) + taniNmAdd);
				}
			}
		}

		// ************************************************************************************************************************
		// ●eo光テレビチューナー月額料金設定
		// ************************************************************************************************************************
		List<String> setTableValueSkbtList2 = new ArrayList<String>();
		List<String> setTableLeftValueList2 = new ArrayList<String>();
		List<String> setTableRightValueList2 = new ArrayList<String>();

		// ■空情報を設定(Javascriptで表示を切り替える)
		// 識別ID
		setTableValueSkbtList2.add(K_SPACE);
		// 左値：空文字
		setTableLeftValueList2.add(JFUStrConst.SPACE);
		// 右値：ハイフン
		setTableRightValueList2.add(JFUStrConst.MINUS);

		// ********************************************************************************************************************
		// ●初期費用
		// ********************************************************************************************************************
		List<String> setTableValueSkbtList3 = new ArrayList<String>();
		List<String> setTableLeftValueList3 = new ArrayList<String>();
		List<String> setTableRightValueList3 = new ArrayList<String>();

		if (!PCRS_TYPE02.equals(pcrsType))
		{
			// 地デジBS以外の場合

			// ■一時支払料金ＢＳＰＴ工事費（BSPT工事費 ＋ 出張費）
			String bsPrc = serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_14_LIST, X31CWebConst.DATABEAN_GET_VALUE);
			String syuttyoPrc = serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_11_LIST, X31CWebConst.DATABEAN_GET_VALUE);
			int prc = Integer.parseInt(bsPrc) + Integer.parseInt(syuttyoPrc);
			// 識別ID
			setTableValueSkbtList3.add(BSPT);
			// 左値：名称
			setTableLeftValueList3.add(JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, SHOKI_BSPT_KOJI_RYOKIN_NAME));

			// ■現状、当画面のBSパススルー(TV用ONU交換工事)申込は割引キャンペーンにより"無料"のみとなっている。有料はない。
			if (isBsptMuryo(serviceInfoBean))
			{
				// 右値：金額＋単位
				setTableRightValueList3.add(JFUStrConst.FREE_LABEL);
			}
			else
			{
				// 右値：金額＋単位
				setTableRightValueList3.add(JPCUtilCommon.formatNumber(Integer.toString(prc)) + SPACE_JPN_UNIT);
			}
		}

		// ********************************************************************************************************************
		// ●備考設定
		// ********************************************************************************************************************
		String biko = JFUStrConst.EMPTY;
		setBikoList.add(JFUStrConst.EMPTY);

		biko = TAG_TH_S + JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, WARIBIKI_MONGON) +
				JFUStrConst.RETURN_CODE_BR + JFUStrConst.RETURN_CODE_BR +
				JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, STB_SELECT_MONGON) + TAG_TH_E;

		// 表示位置の調整
		if (setTableValueSkbtList3.size() > 0)
		{
			// 初期費用情報が存在する場合
			setBikoList.add(JFUStrConst.EMPTY);
			setBikoList.add(biko);
		}
		else
		{
			// 初期費用情報が存在しない場合
			setBikoList.add(biko);
		}

		// ********************************************************************************************************************
		// ●各情報設定
		// ********************************************************************************************************************
		// テーブルの値、左値、右値の各リストを格納するマップ
		Map<String, List<String>> tableValueMap = new LinkedHashMap<String, List<String>>();

		// 月額料金情報
		tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList);
		tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList);
		tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList);
		tableValueMap.put(PRC_INFO_AREA_TITLE3 + 1 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList2);
		tableValueMap.put(PRC_INFO_AREA_TITLE3 + 1 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList2);
		tableValueMap.put(PRC_INFO_AREA_TITLE3 + 1 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList2);

		// 初期費用情報
		if (setTableValueSkbtList3.size() > 0)
		{
			tableValueMap.put(PRC_INFO_AREA_TITLE2 + 2 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList3);
			tableValueMap.put(PRC_INFO_AREA_TITLE2 + 2 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList3);
			tableValueMap.put(PRC_INFO_AREA_TITLE2 + 2 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList3);
		}


		// テーブルタイトルエリア表示用リスト設定
		JFUWebCommon.setTableTitleList(prcInfoAreaList, setTableTitleSkbtList, setTableTitleList, setTableStyleClass1List,
				setTableStyleClass2List, tableValueMap);
		// 備考エリア情報設定
		JFUWebCommon.setBikoList(prcInfoAreaList,  new ArrayList<String>(), setBikoList);
	}

	/**
	 * ご利用料金枠の設定（eo光テレビコース変更申込確認画面用）
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception 
	 */
	private void makeRyokinList3(X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		// ご利用料金リスト取得
		X31SDataBeanAccess prcInfoAreaList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.PRC_INFO_AREA_LIST);
		// タイトルリストの初期化
		X31SDataBeanAccessArray prcInfoTitleList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_TITLE_LIST);
		prcInfoTitleList.clearArray();
		// 備考リストの初期化
		X31SDataBeanAccessArray prcInfoBikoList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_BIKO_LIST);
		prcInfoBikoList.clearArray();
		// コメントリストの初期化
		X31SDataBeanAccessArray prcInfoCommentList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_COMMENT_LIST);
		prcInfoCommentList.clearArray();

		// 備考 テキスト
		List<String> setBikoList = new ArrayList<String>();

		// ************************************************************************************************************************
		// ●コメントエリア情報設定処理
		// ************************************************************************************************************************
//ANK-4669-00-00 MOD START
//		JFUWebCommon.setCommentList(prcInfoAreaList, new ArrayList<String>(), new ArrayList<String>());
		//コメント　テキスト格納リスト
		List<String> setCommentList = new ArrayList<String>();
		//コメント　識別子格納リスト
		List<String> setCommentSkbtList = new ArrayList<String>();
		//時限式コメント格納リスト
		List<String> commentMongonList = new ArrayList<String>();
		//時限式コメント表示終了日格納リスト
		List<String> commentYmdList = new ArrayList<String>();

		//確認画面にのみ表示する、時限式コメントをリストに格納
		setCommentListCfmEndymd(commentMongonList, commentYmdList);
		//コメント（時限式）表示判定処理
		commentEndymd(setCommentList, setCommentSkbtList, commentMongonList, commentYmdList);
		// コメントエリア情報設定
		JFUWebCommon.setCommentList(prcInfoAreaList, setCommentSkbtList, setCommentList);
//ANK-4669-00-00 MOD END
		// ************************************************************************************************************************
		// ●タイトル・テーブルエリア情報設定処理
		// ************************************************************************************************************************
		// テーブルタイトル識別子リスト(任意)
		List<String> setTableTitleSkbtList = new ArrayList<String>();
		setTableTitleSkbtList.add(TITLE_3_0);

		// テーブルタイトルエリア表示用リスト
		List<String> setTableTitleList = new ArrayList<String>();
		setTableTitleList.add(PRC_INFO_AREA_TITLE4);

		// ************************************************************************************************************************
		// テーブルスタイルクラスリスト(任意)
		// テーブルスタイル(タイトルの背景色)に値を入れたい場合に設定する。
		// ************************************************************************************************************************
		List<String> setTableStyleClass1List = new ArrayList<String>();
		List<String> setTableStyleClass2List = new ArrayList<String>();
		setTableStyleClass1List.add(FIXED_FEE);
		setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);

		// ************************************************************************************************************************
		// テーブルの値、左値、右値の各リストを格納するマップ
		// ************************************************************************************************************************
		Map<String, List<String>> tableValueMap = new LinkedHashMap<String, List<String>>();

		// ************************************************************************************************************************
		// 【お申し込み後の月額料金】
		// ID名
		// eo光テレビチューナー月額料金テーブル左値リスト
		// eo光テレビチューナー月額料金テーブル右値リスト
		// ************************************************************************************************************************
		List<String> setTableLeftValueList = new ArrayList<String>();
		List<String> setTableRightValueList = new ArrayList<String>();

		// サービスフォームBeanよりご利用料金リスト3取得
		X31SDataBeanAccessArray ryokinList3 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN_3_LIST);
		// 契約台数取得
		int ryokinCnt3 = ryokinList3.getCount();

		List<String> setTableValueSkbtList = new ArrayList<String>();
		for (int cnt = 0; cnt < ryokinCnt3; cnt++)
		{
			// ご利用料金３リストより1件取得
			X31SDataBeanAccess ryokinDataBean = ryokinList3.getDataBean(cnt);
			// 料金リストの名称取得
			String ryokinNm = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金リストの料金取得
			String ryokinPrc = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_GET_VALUE);
			// 料金リストの料金取得
			String tani = ryokinDataBean.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_GET_VALUE);

			setTableValueSkbtList.add(MSKM_PREFIX + cnt);
			setTableLeftValueList.add(ryokinNm);
			// 無料の場合
			if (ZERO.equals(ryokinPrc))
			{
				setTableRightValueList.add(JFUStrConst.FREE_LABEL);
			}
			// 有料の場合
			else
			{
				setTableRightValueList.add(JPCUtilCommon.formatNumber(ryokinPrc) + tani);
			}
		}

		// STB追加変更有無フラグ取得
		String stbCngUmuFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		boolean bsptFlg = serviceInfoBean.sendMessageBoolean(FUW01501SFConst.CHKBOX_BSPASS, X31CWebConst.DATABEAN_GET_VALUE);

// ANK-4592-00-00 ADD START
		// 変更後料金コース取得
		String cngPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4592-00-00 ADD END

// ANK-4592-00-00 MOD START
		// 変更後がCSベーシック、CSプレミアム時の初期費用も表示する
		if (STB_CNG_UMU_FLG_1.equals(stbCngUmuFlg) || bsptFlg || PCRS_CS_LIST.contains(cngPcrsCd))
// ANK-4592-00-00 MOD END
		{
			setTableTitleSkbtList.add(TITLE_4_0);
			setTableTitleList.add(PRC_INFO_AREA_TITLE2);
			setTableStyleClass1List.add(INITIAL_COST);
			setTableStyleClass2List.add(PRC_INFO_AREA_CLASS);
			// ********************************************************************************************************************
			// 【初期費用】
			// ID名
			// eo光テレビチューナー月額料金テーブル左値リスト
			// eo光テレビチューナー月額料金テーブル右値リスト
			// ********************************************************************************************************************
			List<String> setTableValueSkbtList2 = new ArrayList<String>();
			List<String> setTableLeftValueList2 = new ArrayList<String>();
			List<String> setTableRightValueList2 = new ArrayList<String>();

			// サービスフォームBeanよりご利用料金リスト4取得
			X31SDataBeanAccessArray ryokinList4 = serviceInfoBean.getDataBeanArray(FUW01501SFConst.RYOKIN_4_LIST);
			// 契約台数取得
			int ryokinCnt4 = ryokinList4.getCount();
			
			boolean flg = false;
			for (int cnt = 0; cnt < ryokinCnt4; cnt++)
			{
				// ご利用料金４リストより1件取得
				X31SDataBeanAccess ryokinDataBean = ryokinList4.getDataBean(cnt);
				// 料金リストの名称取得
				String ryokinNm = ryokinDataBean.sendMessageString(FUW01501SFConst.NM_04, X31CWebConst.DATABEAN_GET_VALUE);
				// 料金リストの料金取得
				String ryokinPrc = ryokinDataBean.sendMessageString(FUW01501SFConst.PRC_04, X31CWebConst.DATABEAN_GET_VALUE);
				// 料金リストの料金プラン単位名取得
				String tani = ryokinDataBean.sendMessageString(FUW01501SFConst.TANI_04, X31CWebConst.DATABEAN_GET_VALUE);
				// 料金リストの料金がnullでない、空でない、0でない場合
				if (null != ryokinPrc && !JFUStrConst.EMPTY.equals(ryokinPrc) && !ZERO.equals(ryokinPrc))
				{
					setTableValueSkbtList2.add(BSPT_PREFIX + cnt);
					setTableLeftValueList2.add(ryokinNm);
					setTableRightValueList2.add(JPCUtilCommon.formatNumber(ryokinPrc) + tani);
					tableValueMap.put(PRC_INFO_AREA_TITLE2 + 1 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList2);
					tableValueMap.put(PRC_INFO_AREA_TITLE2 + 1 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList2);
					tableValueMap.put(PRC_INFO_AREA_TITLE2 + 1 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList2);
					flg = true;
				}
			}
			
			if(flg)
			{
				setBikoList.add(JFUStrConst.EMPTY);
			}

			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList);
		}
		else
		{
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList);
			tableValueMap.put(PRC_INFO_AREA_TITLE4 + 0 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList);
		}

		// テーブルタイトルエリア表示用リスト設定
		JFUWebCommon.setTableTitleList(prcInfoAreaList, setTableTitleSkbtList, setTableTitleList, setTableStyleClass1List, setTableStyleClass2List,
				tableValueMap);
		
		// 備考エリア情報設定
		setBikoList.add(TAG_TH_S + JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, WARIBIKI_MONGON) + TAG_TH_E);
		JFUWebCommon.setBikoList(prcInfoAreaList,  new ArrayList<String>(), setBikoList);

	}
//ANK-4669-00-00 MOD START
	/**
	 * ご利用料金枠の設定（eo光テレビコース変更申込完了画面用）
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception 
	 */
	private void makeRyokinList4(X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		// ご利用料金リスト取得
		X31SDataBeanAccess prcInfoAreaList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.PRC_INFO_AREA_LIST);
		// コメントリストの初期化
		X31SDataBeanAccessArray prcInfoCommentList = prcInfoAreaList.getDataBeanArray(JFUStrConst.PRC_INFO_COMMENT_LIST);
		prcInfoCommentList.clearArray();

		// ************************************************************************************************************************
		// ●コメントエリア情報設定処理
		// ************************************************************************************************************************
		//コメント　テキスト格納リスト
		List<String> setCommentList = new ArrayList<String>();
		//コメント　識別子格納リスト
		List<String> setCommentSkbtList = new ArrayList<String>();
		//時限式コメント格納リスト
		List<String> commentMongonList = new ArrayList<String>();
		//時限式コメント表示終了日格納リスト
		List<String> commentYmdList = new ArrayList<String>();

		//コメント（時限式）表示判定処理
		commentEndymd(setCommentList, setCommentSkbtList, commentMongonList, commentYmdList);
		
		// コメントエリア情報設定
		JFUWebCommon.setCommentList(prcInfoAreaList, setCommentSkbtList, setCommentList);
	}
//ANK-4669-00-00 MOD END

	/**
	 * 基本コース(主コース)のレコード番号取得処理
	 * <br>
	 * @param keiList1			契約情報リスト
	 * @param main_chk_flg		基本コース設定フラグ
	 * @param mskmStbCnt		契約台数
	 * @return	基本コースのレコード番号
	 * @throws Exception 例外
	 */
	private String getMainCnt(X31SDataBeanAccessArray keiList1, String main_chk_flg, int mskmStbCnt) throws Exception
	{

		String ret = JFUStrConst.EMPTY;

		for (int cnt = 0; cnt < mskmStbCnt; cnt++)
		{
			// 契約情報リストより1件取得
			X31SDataBeanAccess keiyakuDataBean = keiList1.getDataBean(cnt);

			// 変更後コースまたは契約中コースを契約情報リストのコース選択に設定
			if (SPACE.equals(main_chk_flg))
			{

				// 契約中コースコード取得
				String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

				// 契約中コースコードに紐づくコース選択を取得
				String keiKeiPcrs = getChgPcrs(keiPcrsCd);

				// コース選択取得
				String keiCngPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);

				// コース選択が設定されておらず、契約中コースが「スタンダード」または「プレミアムＨＤ」または「スマートプレミアム」の場合
				// またはコース選択が「スタンダード」または「プレミアムＨＤ」または「スマートプレミアム」の場合
				if (isJdgKeiCngPcrs(keiCngPcrs, keiKeiPcrs))
				{
					ret = Integer.toString(cnt);
					break;
				}
			}
			else
			{
				break;
			}
		}

		if (SPACE.equals(ret))
		{
			for (int cnt = 0; cnt < mskmStbCnt; cnt++)
			{
				// 契約情報リストより1件取得
				X31SDataBeanAccess keiyakuDataBean = keiList1.getDataBean(cnt);

				// 変更後コースを契約情報リストのコース選択に設定
				if (JFUStrConst.EMPTY.equals(main_chk_flg))
				{

					// 契約中コースコード取得
					String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

					// 契約中コースコードに紐づくコース選択を取得
					String keiKeiPcrs = getChgPcrs(keiPcrsCd);

					// コース選択取得
					String keiCngPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);

					// コース選択が設定されておらず、契約中コースが「バリュー」または「ベーシックＨＤ」または「スマートベーシック」の場合
					// またはコース選択が「バリュー」または「ベーシックＨＤ」または「スマートベーシック」の場合
					if (isJdgKeiCngPcrs2(keiCngPcrs, keiKeiPcrs))
					{
						ret = Integer.toString(cnt);
						break;
					}
				}
				else
				{
					break;
				}
			}
		}
		return ret;
	}

	/**
	 * 基本コース(主コース)のレコード番号取得処理(契約情報＋追加情報)
	 * <br>
	 * @param keiList1			契約情報リスト
	 * @param addList1			追加情報リスト
	 * @param main_chk_flg		基本コース設定フラグ
	 * @param keiCnt			契約台数
	 * @param addCnt			追加台数
	 * @return	基本コースのレコード番号
	 * @throws Exception 例外
	 */
	private String getMainCnt2(X31SDataBeanAccessArray keiList1, X31SDataBeanAccessArray addList1,
			String main_chk_flg, int keiCnt, int addCnt) throws Exception
	{

		String ret = JFUStrConst.EMPTY;
		int keiAddCnt = keiCnt + addCnt;
		int getAddInfo = 0;

		for (int cnt = 0; cnt < keiAddCnt; cnt++)
		{
			// 契約情報リストより1件取得
			X31SDataBeanAccess keiyakuDataBean = null;
			if (cnt < keiCnt)
			{
				// 契約情報取得
				keiyakuDataBean = keiList1.getDataBean(cnt);
			}
			else
			{
				// 追加情報取得
				getAddInfo = cnt - keiCnt;
				keiyakuDataBean = addList1.getDataBean(getAddInfo);
			}

			// 変更後コースまたは契約中コースを契約情報リストのコース選択に設定
			if (SPACE.equals(main_chk_flg))
			{

				// 契約中コースコード取得
				String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

				// 契約中コースコードに紐づくコース選択を取得
				String keiKeiPcrs = getChgPcrs(keiPcrsCd);

				// コース選択取得
				String keiCngPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);

				// コース選択が設定されておらず、契約中コースが「スタンダード」または「プレミアムＨＤ」または「スマートプレミアム」の場合
				// またはコース選択が「スタンダード」または「プレミアムＨＤ」または「スマートプレミアム」の場合
				if (isJdgKeiCngPcrs(keiCngPcrs, keiKeiPcrs))
				{
					ret = Integer.toString(cnt);
					break;
				}
			}
			else
			{
				break;
			}
		}

		if (SPACE.equals(ret))
		{
			for (int cnt = 0; cnt < keiAddCnt; cnt++)
			{
				// 契約情報リストより1件取得
				X31SDataBeanAccess keiyakuDataBean = null;
				if (cnt < keiCnt)
				{
					// 契約情報取得
					keiyakuDataBean = keiList1.getDataBean(cnt);
				}
				else
				{
					// 追加情報取得
					getAddInfo = cnt - keiCnt;
					keiyakuDataBean = addList1.getDataBean(getAddInfo);
				}

				// 変更後コースを契約情報リストのコース選択に設定
				if (JFUStrConst.EMPTY.equals(main_chk_flg))
				{

					// 契約中コースコード取得
					String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

					// 契約中コースコードに紐づくコース選択を取得
					String keiKeiPcrs = getChgPcrs(keiPcrsCd);

					// コース選択取得
					String keiCngPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);

					// コース選択が設定されておらず、契約中コースが「バリュー」または「ベーシックＨＤ」または「スマートベーシック」の場合
					// またはコース選択が「バリュー」または「ベーシックＨＤ」または「スマートベーシック」の場合
					if (isJdgKeiCngPcrs2(keiCngPcrs, keiKeiPcrs))
					{
						ret = Integer.toString(cnt);
						break;
					}
				}
				else
				{
					break;
				}
			}
		}

		return ret;
	}

	/**
	 * 地デジ・ＢＳ用　契約情報リスト設定
	 *
	 * <br>
	 * @param keiList 契約情報リスト
	 * @param cnt 機器カウント
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 */
	private void setMakeKeiList00(X31SDataBeanAccess keiList, String cnt, X31SDataBeanAccess serviceInfoBean)
	{

		// 契約台数
		int kensu = Integer.parseInt(cnt) + 1;
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_CNT_01, Integer.toString(kensu));
		// C-CASカード番号
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_SEIZO_NO_01, JFUStrConst.EMPTY);
		// STB-ID
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.STB_ID_01, JFUStrConst.EMPTY);
		// コース選択
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.CHG_PCRS_01, JFUStrConst.EMPTY);
		// 選択コース
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PCRS_01, JFUStrConst.EMPTY);
		// 選択コースコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PCRS_CD_01, JFUStrConst.EMPTY);
		// 選択プランコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.PPLAN_CD_01, JFUStrConst.EMPTY);
		// 契約中コース
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_PCRS_01, JFUStrConst.EMPTY);
		// 契約中コースコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_PCRS_CD_01, JFUStrConst.EMPTY);
		// 契約中プランコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_PPLAN_CD_01, JFUStrConst.EMPTY);
		// 選択機器コース名
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PCRS_01, JFUStrConst.EMPTY);
		// 選択機器コースコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PCRS_CD_01, JFUStrConst.EMPTY);
		// 選択機器プランコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_PPLAN_CD_01, JFUStrConst.EMPTY);
		// 契約中機器コース
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_KIKI_PCRS_01, JFUStrConst.EMPTY);
		// 契約中機器コースコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_KIKI_PCRS_CD_01, JFUStrConst.EMPTY);
		// 契約中機器プランコード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_KIKI_PPLAN_CD_01, JFUStrConst.EMPTY);
		// 機器契約詳細コード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_RSV_DTL_CD_01, JFUStrConst.EMPTY);
		// 契約状態
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.STATUS_01, STATUS_2);
		// 内訳契約詳細コード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.UCWK_RSV_DTL_CD_01, JFUStrConst.EMPTY);
		// 内訳契約状態
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.UCWK_STATUS_01, UCWK_STATUS_2);
		// STB変更
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.CHG_STB_01, JFUStrConst.EMPTY);
		// 契約中ＨＤＤ容量コード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_HDD_CAPA_CD_01, JFUStrConst.EMPTY);
		// 契約中宅内機器型式コード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_01, JFUStrConst.EMPTY);
		// 選択ＨＤＤ容量コード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.HDD_CAPA_CD_01, JFUStrConst.EMPTY);
		// 選択宅内機器型式コード
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.TAKNKIKI_MODEL_CD_01, JFUStrConst.EMPTY);
		// 機器選択リスト表示フラグ
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KIKI_DISP_FLG_01, ZERO);
		// サービス契約内訳番号
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.SVC_KEI_UCWK_NO_01, JFUStrConst.EMPTY);
		// 機器提供サービス契約番号
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KKTK_SVC_KEI_NO_01, JFUStrConst.EMPTY);
		// 機器提供サービス契約番号（B_CAS）
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KKTK_SVC_KEI_NO_BCAS_01, JFUStrConst.EMPTY);
		// 機器提供サービス契約番号（C_CAS）
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.KKTK_SVC_KEI_NO_CCAS_01, JFUStrConst.EMPTY);
		// 世代登録年月日時分秒（サービス契約内訳）
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_PCRS_01, JFUStrConst.EMPTY);
		// 世代登録年月日時分秒（機器提供サービス契約）
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_KIKI_01, JFUStrConst.EMPTY);
		// 世代登録年月日時分秒（機器提供サービス契約_BCAS）
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_KIKI_BCAS_01, JFUStrConst.EMPTY);
		// 世代登録年月日時分秒（機器提供サービス契約_CCAS）
		JFUWebCommon.setDataBeanItemByPath(keiList, FUW01501SFConst.GENE_ADD_DTM_KIKI_CCAS_01, JFUStrConst.EMPTY);

	}

	/**
	 * 機器提供サービス契約一覧（STB)の加工編集処理（FUSV012601SC）
	 * <br>
	 * @param commonInfoBean	共有フォームBean
	 * @param serviceInfoBean	サービス契約番号一覧サービスフォームBean
	 * @param outputMap			サービス検索結果マップ
	 */
	private void editDispMapSC1(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{

		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）機器提供サービス契約（STB)一覧照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC1Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012601SC))
		{
			fusv0126SC1Map = outputMap.get(SC_TITLE_FUSV012601SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC1Map == null || !fusv0126SC1Map.containsKey(MAP_KEY_SC1CBSMSGLIST))
		{
			return;
		}

		// 機器製造番号
		String mainKikiSeizoNo = serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO, X31CWebConst.DATABEAN_GET_VALUE);

		// サービス検索結果：機器提供サービス契約一覧（STB）
		all_stb_list = fusv0126SC1Map.get(MAP_KEY_SC1CBSMSGLIST);
		if (all_stb_list.size() == 0)
		{
			return;
		}

		// 機器提供サービス契約一覧（STB）の件数分Loop
		for (int i = 0; i < all_stb_list.size(); i++)
		{
			// 機器提供サービス契約一覧照会Mapを取得
			HashMap<String, String> cbsMsg = all_stb_list.get(i);

			// 機器製造番号
			String kikiSeizoNo = this.getValue(cbsMsg, MAP_KIKI_SEIZO_NO);

			// 機器提供サービス契約番号
			String kktkSvckeiNo = this.getValue(cbsMsg, MAP_KEY_KKTK_SVC_KEI_NO);
			stb_no_list[i] = kktkSvckeiNo;

			// 機器提供サービス契約（STB） 設定
			stb_all_kei_map.put(kktkSvckeiNo, cbsMsg);

			if (mainKikiSeizoNo.equals(kikiSeizoNo))
			{
				// 前画面から取得した機器製造番号と一致する場合
				// サービスフォームBeanに設定
				serviceInfoBean.sendMessageString(FUW01501SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, kktkSvckeiNo);
			}
		}

		String beforeNo = JFUStrConst.EMPTY;
		String afterNo = JFUStrConst.EMPTY;
		String hozonNo = JFUStrConst.EMPTY;
		for (int stbCnt = 0; stb_no_list[stbCnt] != null; stbCnt++)
		{
			beforeNo = stb_no_list[stbCnt];
			for (int stbCnt2 = stbCnt + 1; stb_no_list[stbCnt2] != null; stbCnt2++)
			{
				afterNo = stb_no_list[stbCnt2];
				if (beforeNo.compareTo(afterNo) > 0)
				{
					// beforeNo より afterNoが大きい場合
					hozonNo = beforeNo;
					stb_no_list[stbCnt] = afterNo;
					stb_no_list[stbCnt2] = hozonNo;
					beforeNo = stb_no_list[stbCnt];
					afterNo = stb_no_list[stbCnt2];
				}

			}
		}

	}

	/**
	 * 機器提供サービス契約一覧（BCAS)の加工編集処理（FUSV012602SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC2(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）機器提供サービス契約（BCAS)一覧照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC2Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012602SC))
		{
			fusv0126SC2Map = outputMap.get(SC_TITLE_FUSV012602SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC2Map == null || !fusv0126SC2Map.containsKey(MAP_KEY_SC2CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：機器提供サービス契約一覧（BCAS）
		all_stb_list_bcas = fusv0126SC2Map.get(MAP_KEY_SC2CBSMSGLIST);
		if (all_stb_list_bcas.size() == 0)
		{
			return;
		}

		// 機器提供サービス契約一覧（BCAS）の件数分Loop
		for (int i = 0; i < all_stb_list_bcas.size(); i++)
		{
			// 機器提供サービス契約一覧照会Mapを取得
			HashMap<String, String> cbsMsg = all_stb_list_bcas.get(i);

			// サービス契約内訳番号
			String svcKeiUcwkNo = this.getValue(cbsMsg, MAP_KEY_SVC_KEI_UCWK_NO);

			// 機器提供サービス契約番号(STB)
			String stbKktkSvckeiNo = JFUStrConst.EMPTY;
			for (int m = 0; m < all_stb_list.size(); m++)
			{
				// 機器提供サービス契約一覧照会Mapを取得
				HashMap<String, String> stbMsg = all_stb_list.get(m);
				// サービス契約内訳番号
				String stbSvcKeiUcwkNo = this.getValue(stbMsg, MAP_KEY_SVC_KEI_UCWK_NO);
				if (stbSvcKeiUcwkNo.equals(svcKeiUcwkNo))
				{
					// 機器提供サービス契約番号
					stbKktkSvckeiNo = this.getValue(stbMsg, MAP_KEY_KKTK_SVC_KEI_NO);
					break;
				}
			}
			// 機器提供サービス契約（B_CAS） 設定
			stb_all_kei_map_bcas.put(stbKktkSvckeiNo, cbsMsg);
		}

	}

	/**
	 * 機器提供サービス契約一覧（CCAS)の加工編集処理（FUSV012603SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC3(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）機器提供サービス契約（CCAS)一覧照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC3Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012603SC))
		{
			fusv0126SC3Map = outputMap.get(SC_TITLE_FUSV012603SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC3Map == null || !fusv0126SC3Map.containsKey(MAP_KEY_SC3CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：機器提供サービス契約一覧（CCAS）
		all_stb_list_ccas = fusv0126SC3Map.get(MAP_KEY_SC3CBSMSGLIST);
		if (all_stb_list_ccas.size() == 0)
		{
			return;
		}

		// 機器提供サービス契約一覧（CCAS）の件数分Loop
		for (int i = 0; i < all_stb_list_ccas.size(); i++)
		{
			// 機器提供サービス契約一覧照会Mapを取得
			HashMap<String, String> cbsMsg = all_stb_list_ccas.get(i);

			// サービス契約内訳番号
			String svcKeiUcwkNo = this.getValue(cbsMsg, MAP_KEY_SVC_KEI_UCWK_NO);

			// 機器提供サービス契約番号(STB)
			String stbKktkSvckeiNo = JFUStrConst.EMPTY;
			for (int m = 0; m < all_stb_list.size(); m++)
			{
				// 機器提供サービス契約一覧照会Mapを取得
				HashMap<String, String> stbMsg = all_stb_list.get(m);
				// サービス契約内訳番号
				String stbSvcKeiUcwkNo = this.getValue(stbMsg, MAP_KEY_SVC_KEI_UCWK_NO);
				if (stbSvcKeiUcwkNo.equals(svcKeiUcwkNo))
				{
					// 機器提供サービス契約番号
					stbKktkSvckeiNo = this.getValue(stbMsg, MAP_KEY_KKTK_SVC_KEI_NO);
					break;
				}
			}

			// 機器提供サービス契約（C_CAS） 設定
			stb_all_kei_map_ccas.put(stbKktkSvckeiNo, cbsMsg);

		}
	}

	/**
	 * 機器提供サービス契約一覧（VONU)の加工編集処理（FUSV012604SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC4(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）機器提供サービス契約（VONU)一覧照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC4Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012604SC))
		{
			fusv0126SC4Map = outputMap.get(SC_TITLE_FUSV012604SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC4Map == null || !fusv0126SC4Map.containsKey(MAP_KEY_SC4CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：機器提供サービス契約一覧（VONU）
		vonu_list = fusv0126SC4Map.get(MAP_KEY_SC4CBSMSGLIST);
		if (vonu_list.size() == 0)
		{
			return;
		}

		// 機器提供サービス契約一覧（VONU）の件数分Loop
		for (int i = 0; i < vonu_list.size(); i++)
		{
			// 機器提供サービス契約一覧照会Mapを取得
			HashMap<String, String> cbsMsg = vonu_list.get(i);
			vonu_map.put(Integer.toString(i), cbsMsg);
		}

	}

	/**
	 * サービス契約一覧の加工編集処理（FUSV012605SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	@SuppressWarnings("unchecked")
	private void editDispMapSC5(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）サービス契約一覧照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC5Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012605SC))
		{
			fusv0126SC5Map = outputMap.get(SC_TITLE_FUSV012605SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC5Map == null || !fusv0126SC5Map.containsKey(MAP_KEY_SC5CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：サービス契約一覧
		keiyaku_list = fusv0126SC5Map.get(MAP_KEY_SC5CBSMSGLIST);
		if (keiyaku_list.size() == 0)
		{
			return;
		}

		// サービス契約一覧一覧照会Mapを取得
		HashMap<String, String> cbsMsg = keiyaku_list.get(0);
		local_kei_main_map.put(RSV_FLG0, cbsMsg);

		// 料金コース取得
		String pcrs = this.getValue(cbsMsg, MAP_KEY_PCRS_CD);
		// 料金コース名取得
		String pcrsNm = this.getValue(cbsMsg, MAP_KEY_PCRS_NM);
		// 料金コースグループコード取得
		String grpCd = this.getValue(cbsMsg, MAP_KEY_PRC_GRP_CD);

		// オーナー契約番号
		serviceInfoBean.sendMessageString(FUW01501SFConst.OWNR_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, this.getValue(cbsMsg, MAP_KEY_OWNR_KEI_NO));

		if (PCRS_CNG_LIST[Integer.parseInt(PCRS06)].equals(pcrs))
		{
			// 契約中コースが地デジの場合
			// 現在契約中のコース名にサービス契約内訳の料金コース名を設定

			// テレビコース名表示切替チェック
			// テレビコース名表示切替からサービス名を取得
			HashMap parentMap = (HashMap)outputMap.get(CC_TITLE_FUSV012604CC);
			String chbfSvcNm = (String)parentMap.get(CHBF_SVC_NM);
			//サービス名がNULLでは無い場合、現在契約中のコース名にテレビコース名表示切替より取得したサービス名を設定
			if (!JFUWebCommon.isNull(chbfSvcNm))
			{
				pcrsNm = chbfSvcNm;
			}
			serviceInfoBean.sendMessageString(FUW01501SFConst.NOW_PCRS_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, pcrsNm);
			// コース種別
			serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_SET_VALUE, PCRS_TYPE02);
			// 変更可能コース
			serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, PCRS06);
			// メールアドレス表示フラグ
			serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG1);
		}
// ANK-4673-00-00 ADD START
		else if (PCRS_CNG_LIST[Integer.parseInt(PCRS13)].equals(pcrs))
		{
			// 契約中コースがCSベーシックの場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.NOW_PCRS_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, COURSE_NM_CS_BAS);
			// コース種別
			serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_SET_VALUE, PCRS_TYPE04);
			// 変更可能コース
			serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, PCRS13);
			// メールアドレス表示フラグ
			serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG1);
		}
		else if (PCRS_CNG_LIST[Integer.parseInt(PCRS14)].equals(pcrs))
		{
			// 契約中コースがCSプレミアムの場合
			serviceInfoBean.sendMessageString(FUW01501SFConst.NOW_PCRS_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, COURSE_NM_CS_PRE);
			// コース種別
			serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_SET_VALUE, PCRS_TYPE04);
			// 変更可能コース
			serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, PCRS14);
			// メールアドレス表示フラグ
			serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG1);
		}
// ANK-4673-00-00 ADD END

		// 料金コースコード
		serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, pcrs);
		// 料金グループコード
		serviceInfoBean.sendMessageString(FUW01501SFConst.PRC_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, grpCd);
		// 世代登録年月日時分秒（サービス契約）
		String geneAddDtm = this.getValue(cbsMsg, MAP_KEY_GENE_ADD_DTM);
		serviceInfoBean.sendMessageString(FUW01501SFConst.GENE_ADD_DTM_KEI, X31CWebConst.DATABEAN_SET_VALUE, geneAddDtm);
		// サービス開始年月日
		String svcStaYmd = this.getValue(cbsMsg, MAP_KEY_SVC_STA_YMD);
		serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_STA_YMD, X31CWebConst.DATABEAN_SET_VALUE, svcStaYmd);

	}

	/**
	 * サービス契約内訳一覧の加工編集処理（FUSV012606SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 * @return HashMap B-CAS不要STB存在有無、旧４ＫＳＴＢ有無フラグ
	 * @throws Exception 
	 */
	private HashMap<String, String> editDispMapSC6(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap) throws Exception
	{
		HashMap<String, String> resutMap = new HashMap<String, String>();
		String old4Kstb = FLG_OFF;
		boolean exists4KSTB = false;
		resutMap.put("exists4KSTB", "0");
		resutMap.put("old4Kstb", old4Kstb);
		
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）サービス契約内訳一覧照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC6Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012606SC))
		{
			fusv0126SC6Map = outputMap.get(SC_TITLE_FUSV012606SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC6Map == null || !fusv0126SC6Map.containsKey(MAP_KEY_SC6CBSMSGLIST))
		{
			return resutMap;
		}

		// サービス検索結果：サービス契約内訳一覧
		pcrs_list = fusv0126SC6Map.get(MAP_KEY_SC6CBSMSGLIST);
		if (pcrs_list.size() == 0)
		{
			return resutMap;
		}

		String kktkSvckeiNo = serviceInfoBean.sendMessageString(FUW01501SFConst.KKTK_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		HashMap<String, String> kikiMap = stb_all_kei_map.get(kktkSvckeiNo);
		String ucwkNo = kikiMap.get(MAP_KEY_SVC_KEI_UCWK_NO);

		boolean normalHd = false;
		boolean smartHd = false;

		// 契約中のSTBに４Kが含まれているかチェック(all_stb_list)
		// ・B-CAS不要情報（業務パラメータ、マスタから取得したB-CAS不要機器の情報。データが存在しない場合は空リスト）
		List<String> bcasMasterList = JFUWebCommon.getWorkParamSplit(this, JFUStrConst.KK_HDD_CAPA_BCASNONE);
		List<String> listOld4K = Arrays.asList(JFUWebCommon.getDispText("FUW01501", "NOTES_4K_STB_HANTEI").split(","));

		int iOld4KStbCnt = 0;
		for (Map<String, String> wkMap : all_stb_list)
		{
			if (bcasMasterList.contains(wkMap.get("hdd_capa_cd")))
			{
				exists4KSTB = true;
			}
			if (listOld4K.contains(wkMap.get("taknkiki_model_cd")))
			{
				// 旧4KのSTB件数
				iOld4KStbCnt = iOld4KStbCnt + 1;
			}
		}
		if (iOld4KStbCnt > 0)
		{
			old4Kstb = FLG_ON;
		}
		
		int smartCourceCount = 0;

		// サービス契約一覧内訳の件数分Loop
		for (int i = 0; i < pcrs_list.size(); i++)
		{
			// サービス契約一覧一覧内訳照会Mapを取得
			HashMap<String, String> cbsMsg = pcrs_list.get(i);
			// 内訳番号取得
			String svcKeiUcwkNo = cbsMsg.get(MAP_KEY_SVC_KEI_UCWK_NO);
			// サービス契約内訳マップに設定
			pcrs_all_kei_map.put(svcKeiUcwkNo, cbsMsg);

			// 料金コースコード
			String uwPcrsCd = cbsMsg.get(MAP_KEY_PCRS_CD);
			if (NEW_PCRS_LIST.contains(uwPcrsCd))
			{
				normalHd = true;
			}
			if (SMT_PCRS_LIST.contains(uwPcrsCd))
			{
				smartHd = true;
				smartCourceCount++;
			}

			if (svcKeiUcwkNo.equals(ucwkNo))
			{

				// 料金コースコード取得
				String pcrsCd = this.getValue(cbsMsg, MAP_KEY_PCRS_CD);
				// 現在契約中のコース名にサービス契約内訳の料金コース名を設定
				// 料金コース名取得
				String pcrsCdNm = this.getValue(cbsMsg, MAP_KEY_PCRS_NM);
				// 現在契約中のコース名にサービス契約内訳の料金コース名を設定
				serviceInfoBean.sendMessageString(FUW01501SFConst.NOW_PCRS_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, pcrsCdNm);

				if (PCRS_CNG_LIST[Integer.parseInt(PCRS00)].equals(pcrsCd) || PCRS_CNG_LIST[Integer.parseInt(PCRS01)].equals(pcrsCd)
						|| PCRS_CNG_LIST[Integer.parseInt(PCRS02)].equals(pcrsCd))
				{
					// コース種別「0：旧コース」
					serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_SET_VALUE, PCRS_TYPE00);
					// メールアドレス表示フラグ
					serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG1);
				}
				else if (NEW_PCRS_LIST.contains(pcrsCd))
				{
					// コース種別「1：新コース」
					serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_SET_VALUE, PCRS_TYPE01);
					// メールアドレス表示フラグ
					serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG0);
				}
				else if (SMT_PCRS_LIST.contains(pcrsCd))
				{
					// コース種別「3：新コース(スマート)」
					serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_SET_VALUE, PCRS_TYPE03);
					// メールアドレス表示フラグ
					serviceInfoBean.sendMessageString(FUW01501SFConst.MLAD_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MLAD_DISP_FLG0);
				}

				for (int plCnt = 0; plCnt < PCRS_CNG_LIST.length; plCnt++)
				{
					if (PCRS_CNG_LIST[plCnt].equals(pcrsCd))
					{
						// 変更可能コース(現在契約中のコースを設定)
						serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(plCnt));
						break;
					}
				}

				// サービスフォームBeanに設定
				serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiUcwkNo);

			}

		}

		if (normalHd && smartHd)
		{
			// 現HDコースと新HDコースが混ざっているためエラー
			DEBUG_LOG.info("----- FUW01501_editDispMapSC6() 現HDコース＆新HDコース 同時契約エラー -----");
			throw new JCCBusinessException(ERROR_CODE_0102);
		}
		resutMap.put("exists4KSTB", ((exists4KSTB == true) ? (FLG_ON) : (FLG_OFF)));
		resutMap.put("old4Kstb", old4Kstb);
		return resutMap;
	}

	/**
	 * 連絡先一覧の加工編集処理（FUSV012607SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC7(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）連絡先一覧照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC7Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012607SC))
		{
			fusv0126SC7Map = outputMap.get(SC_TITLE_FUSV012607SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC7Map == null || !fusv0126SC7Map.containsKey(MAP_KEY_SC7CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：連絡先一覧
		address_list = fusv0126SC7Map.get(MAP_KEY_SC7CBSMSGLIST);
		if (address_list.size() == 0)
		{
			return;
		}

		// 契約者タイプコード
		X31SDataBeanAccess webCustBean = commonInfoBean.getDataBeanArray(JFUWebCommon.GEN_CUST_KEI_INFO).getDataBean(0);
		String keisyaTypeCd = webCustBean.sendMessageString(
				CommonInfoCFConst.KEISHA_TYPE_CD_22, X31CWebConst.DATABEAN_GET_VALUE);

		// クリア処理
		serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
		serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

		// 連絡先一覧の件数分Loop
		for (int i = 0; i < address_list.size(); i++)
		{
			// 連絡先一覧照会Mapを取得
			HashMap<String, String> cbsMsg = address_list.get(i);

			// 連絡先種別コード取得
			String rrksSbtCd = this.getValue(cbsMsg, MAP_KEY_RRKS_SBT_CD);

			if (!JFUStrConst.CD00790_003.equals(this.getValue(cbsMsg, MAP_KEY_RRK_WAY_CD)))
			{
				// 連絡方法コードが電話以外の場合はスキップ
				continue;
			}
			else if (JFUStrConst.CD00036_2.equals(keisyaTypeCd) && !JFUStrConst.CD00268_01.equals(this.getValue(cbsMsg, MAP_KEY_RRKS_CD)))
			{
				// 法人の場合は、連絡先コードが"01"(契約者)以外の場合はスキップ
				continue;
			}

			if (JFUStrConst.CD00254_2.equals(rrksSbtCd))
			{
				// 携帯電話
				String telNo = this.getValue(cbsMsg, MAP_KEY_TELNO);
				// サービスフォームBeanに設定
				serviceInfoBean.sendMessageString(FUW01501SFConst.RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_SET_VALUE, telNo);
				break;
			}
		}

		// ○その他の電話番号を取得
		for (int i = 0; i < address_list.size(); i++)
		{
			// 連絡先一覧照会Mapを取得
			HashMap<String, String> cbsMsg = address_list.get(i);

			// 連絡先種別コード取得
			String rrksSbtCd = this.getValue(cbsMsg, MAP_KEY_RRKS_SBT_CD);

			if (!JFUStrConst.CD00790_003.equals(this.getValue(cbsMsg, MAP_KEY_RRK_WAY_CD)))
			{
				// 連絡方法コードが電話以外の場合はスキップ
				continue;
			}
			else if (JFUStrConst.CD00036_2.equals(keisyaTypeCd) && !JFUStrConst.CD00268_01.equals(this.getValue(cbsMsg, MAP_KEY_RRKS_CD)))
			{
				// 法人の場合は、連絡先コードが"01"(契約者)以外の場合はスキップ
				continue;
			}

			if (JFUStrConst.CD00254_5.equals(rrksSbtCd))
			{
				// その他
				String telNo = this.getValue(cbsMsg, MAP_KEY_TELNO);
				// サービスフォームBeanに設定
				serviceInfoBean.sendMessageString(FUW01501SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_SET_VALUE, telNo);
				break;
			}
		}
	}

	/**
	 * 一時支払金一意照会（出張費）の加工編集処理（FUSV012608SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC8(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）一時支払金一意照会（出張費）SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC8Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012608SC))
		{
			fusv0126SC8Map = outputMap.get(SC_TITLE_FUSV012608SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC8Map == null || !fusv0126SC8Map.containsKey(MAP_KEY_SC8CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：一時支払金一意照会（出張費）
		ArrayList<HashMap<String, String>> itiList = fusv0126SC8Map.get(MAP_KEY_SC8CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return;
		}

		// 一時支払金一意照会（出張費）Mapを取得
		HashMap<String, String> cbsMsg = itiList.get(0);
		// 一時支払料金額取得
		String amnt = this.getValue(cbsMsg, MAP_KEY_TMP_PAY_PRC_AMNT);
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_11_LIST, X31CWebConst.DATABEAN_SET_VALUE, amnt);
	}

	/**
	 * 一時支払金一意照会（交換手数料）の加工編集処理（FUSV012609SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC9(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）一時支払金一意照会（交換手数料）SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC9Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012609SC))
		{
			fusv0126SC9Map = outputMap.get(SC_TITLE_FUSV012609SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC9Map == null || !fusv0126SC9Map.containsKey(MAP_KEY_SC9CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：一時支払金一意照会（交換手数料）
		ArrayList<HashMap<String, String>> itiList = fusv0126SC9Map.get(MAP_KEY_SC9CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return;
		}

		// 一時支払金一意照会（交換手数料）Mapを取得
		HashMap<String, String> cbsMsg = itiList.get(0);
		// 一時支払料金額取得
		String amnt = this.getValue(cbsMsg, MAP_KEY_TMP_PAY_PRC_AMNT);
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_12_LIST, X31CWebConst.DATABEAN_SET_VALUE, amnt);
	}

	/**
	 * 一時支払金一意照会（追加手数料）の加工編集処理（FUSV012610SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC10(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）一時支払金一意照会（追加手数料）SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC10Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012610SC))
		{
			fusv0126SC10Map = outputMap.get(SC_TITLE_FUSV012610SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC10Map == null || !fusv0126SC10Map.containsKey(MAP_KEY_SC10CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：一時支払金一意照会（追加手数料）
		ArrayList<HashMap<String, String>> itiList = fusv0126SC10Map.get(MAP_KEY_SC10CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return;
		}

		// 一時支払金一意照会（追加手数料）Mapを取得
		HashMap<String, String> cbsMsg = itiList.get(0);
		// 一時支払料金額取得
		String amnt = this.getValue(cbsMsg, MAP_KEY_TMP_PAY_PRC_AMNT);
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_13_LIST, X31CWebConst.DATABEAN_SET_VALUE, amnt);
	}

	/**
	 * 一時支払金一意照会（BSPT工事費）の加工編集処理（FUSV012611SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC11(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）一時支払金一意照会（BSPT工事費）SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC11Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012611SC))
		{
			fusv0126SC11Map = outputMap.get(SC_TITLE_FUSV012611SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC11Map == null || !fusv0126SC11Map.containsKey(MAP_KEY_SC11CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：一時支払金一意照会（BSPT工事費）
		ArrayList<HashMap<String, String>> itiList = fusv0126SC11Map.get(MAP_KEY_SC11CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return;
		}

		// 一時支払金一意照会（BSPT工事費）Mapを取得
		HashMap<String, String> cbsMsg = itiList.get(0);
		// 一時支払料金額取得
		String amnt = this.getValue(cbsMsg, MAP_KEY_TMP_PAY_PRC_AMNT);
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_14_LIST, X31CWebConst.DATABEAN_SET_VALUE, amnt);
	}

// ANK-4592-00-00 ADD START
	/**
	 * 一時支払金一意照会（契約事務手数料）の加工編集処理（FUSV012617SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapSC17(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）一時支払金一意照会（契約事務手数料）SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC17Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012617SC))
		{
			fusv0126SC17Map = outputMap.get(SC_TITLE_FUSV012617SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC17Map == null || !fusv0126SC17Map.containsKey(MAP_KEY_SC17CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：一時支払金一意照会（契約事務手数料）
		ArrayList<HashMap<String, String>> itiList = fusv0126SC17Map.get(MAP_KEY_SC17CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return;
		}

		// 一時支払金一意照会（契約事務手数料）Mapを取得
		HashMap<String, String> cbsMsg = itiList.get(0);
		// 一時支払料金額取得
		String amnt = this.getValue(cbsMsg, MAP_KEY_TMP_PAY_PRC_AMNT);
		serviceInfoBean.sendMessageString(FUW01501SFConst.TMP_PAY_15_LIST, X31CWebConst.DATABEAN_SET_VALUE, amnt);
	}
// ANK-4592-00-00 ADD END

	/**
	 * マンション物件の加工編集処理（FUSV012612SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 * @param jkFromKb        住居形態
	 */
	private String editDispMapSC12(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap, String jkFromKb)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）マンション物件SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC12Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012612SC))
		{
			fusv0126SC12Map = outputMap.get(SC_TITLE_FUSV012612SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC12Map == null || !fusv0126SC12Map.containsKey(MAP_KEY_SC12CBSMSGLIST))
		{
			return jkFromKb;
		}

		// サービス検索結果：マンション物件
		ArrayList<HashMap<String, String>> itiList = fusv0126SC12Map.get(MAP_KEY_SC12CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return jkFromKb;
		}

		// マンション物件Mapを取得
		HashMap<String, String> cbsMsg = itiList.get(0);
		// マンション物件コード
		serviceInfoBean.sendMessageString(FUW01501SFConst.MANSION_BUKKEN_CD, X31CWebConst.DATABEAN_SET_VALUE, this.getValue(cbsMsg,
				MAP_KEY_MANSION_BUKKEN_CD));

		// マンション物件コードが002の場合下記を設定
		String mansionCd = this.getValue(cbsMsg, MAP_KEY_MANSION_BUKKEN_CD);
		if (JFUStrConst.CD01228_002.equals(mansionCd))
		{
			jkFromKb = "3";
			KIKI_LIST_CNT = 1;
		}
		else
		{
			// PCRS_CNG_LISTにマンションを設定
			jkFromKb = JK_FORM_MAN;
		}

		return jkFromKb;
	}

	/**
	 * 宅内機器一意照会の加工編集処理（FUSV01260CC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 */
	private void editDispMapCC01(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）宅内機器一意照会CC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126CC01Map = null;
		if (outputMap.containsKey(CC_TITLE_FUSV012601CC))
		{
			fusv0126CC01Map = outputMap.get(CC_TITLE_FUSV012601CC);
		}

		// パラメータ異常ならば終了
		if (fusv0126CC01Map == null || !fusv0126CC01Map.containsKey(MAP_KEY_CC01CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：宅内機器一意照会
		ArrayList<HashMap<String, String>> itiList = fusv0126CC01Map.get(MAP_KEY_CC01CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return;
		}

		for (int stbCnt = 0; stbCnt < itiList.size(); stbCnt++)
		{
			HashMap<String, String> listMap = itiList.get(stbCnt);
			String kikiSeizoNo = listMap.get(MAP_KEY_KIKI_SEIZO_NO);
			String stbId = listMap.get(MAP_KEY_STB_ID);
			stbid_map.put(kikiSeizoNo, stbId);
		}

		return;
	}

	/**
	 * 宅内機器型式一意照会の加工編集処理（FUSV012614C）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 * @return                BSパススルー契約有無
	 */
	private boolean editDispMapSC14(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap)
	{
		// BSパススルー契約有無 「false：BSパススルー非対応機」「true：BSパススルー対応機」を設定
		boolean bspt_kei_flg1 = false;

		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// eo光テレビコース変更申込(初期表示）宅内機器型式一意照会SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC14Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012614SC))
		{
			fusv0126SC14Map = outputMap.get(SC_TITLE_FUSV012614SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC14Map == null || !fusv0126SC14Map.containsKey(MAP_KEY_SC14CBSMSGLIST))
		{
			return bspt_kei_flg1;
		}

		// サービス検索結果：宅内機器型式一意照会
		ArrayList<HashMap<String, String>> itiList = fusv0126SC14Map.get(MAP_KEY_SC14CBSMSGLIST);
		if (itiList == null || itiList.size() == 0)
		{
			return bspt_kei_flg1;
		}

		// 宅内機器型式一意照会Mapを取得
		HashMap<String, String> cbsMsg = itiList.get(0);
		// ＶＯＮＵＢＳパススルー可否
		String vonu_bspt_kh = this.getValue(cbsMsg, MAP_KEY_VONU_BSPT_KH);

		if (BSPT_KEI_FLG_0.equals(vonu_bspt_kh))
		{
			// VONUBSパススルーフラグが否のため、「false：BSパススルー非対応機」を設定
			bspt_kei_flg1 = false;
		}
		else
		{
			// VONUBSパススルーフラグが可のため、「true：BSパススルー対応機」を設定
			bspt_kei_flg1 = true;
		}

		return bspt_kei_flg1;
	}

	/**
	 * 料金コース一覧照会（料金コース月額料金取得用）の加工処理（FUSV012615SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 * @param jkFromKb        住居形態
	 * @return 住居形態
	 */
	private String editDispMapSC15(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap, String jkFromKb)
	{

		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// 料金コース一覧照会明細（eo光テレビ情報取得）の加工処理（FUSV012615SC）SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC15Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012615SC))
		{
			fusv0126SC15Map = outputMap.get(SC_TITLE_FUSV012615SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC15Map == null || !fusv0126SC15Map.containsKey(MAP_KEY_SC15CBSMSGLIST))
		{
			return jkFromKb;
		}

		// サービス検索結果：料金コース一覧照会明細（eo光テレビ情報取得）
		ArrayList<HashMap<String, String>> getPcrsList = fusv0126SC15Map.get(MAP_KEY_SC15CBSMSGLIST);
		if (getPcrsList == null || getPcrsList.size() == 0)
		{
			return jkFromKb;
		}

		// 料金コース情報より料金コース取得
		ArrayList<HashMap<String, String>> itiList = new ArrayList<HashMap<String, String>>();
		for (int i = 0; i < getPcrsList.size(); i++)
		{
			// 料金コースMapを取得
			HashMap<String, String> cbsMsg = getPcrsList.get(i); // 料金コース．料金グループコード
			String prcGrpCd = this.getValue(cbsMsg, MAP_KEY_PRC_GRP_CD);
			String pcrsCd = this.getValue(cbsMsg, MAP_KEY_PCRS_CD);
			if ("11".equals(prcGrpCd))
			{
				for (int p = 0; p < PCRS_CNG_LIST.length; p++)
				{
					if (PCRS_CNG_LIST[p].equals(pcrsCd))
					{
						itiList.add(cbsMsg);
						break;
					}
				}

			}
		}

		if (itiList == null || itiList.size() == 0)
		{
			return jkFromKb;
		}

		// 保存用MAP作成
		HashMap<String, HashMap<String, String>> pcrsMap = new HashMap<String, HashMap<String, String>>();
		// コース情報マップに設定
		HashMap<String, String> courseMap = null;

		// -------------------------------------------------
		// 料金コース格納MAP作成
		// -------------------------------------------------
		// 料金コース一覧照会（料金コース月額料金取得用）の件数分Loop
		for (int i = 0; i < itiList.size(); i++)
		{
			// -------------------------------------------------
			// 料金コース情報取得
			// -------------------------------------------------
			// 料金コースMapを取得
			HashMap<String, String> cbsMsg = itiList.get(i);
			// 料金コースコード
			String pcrsCd = cbsMsg.get(MAP_KEY_PCRS_CD);
			// 料金コース名
			String pcrsNm = this.getValue(cbsMsg, MAP_KEY_PCRS_NM);
			// 基本の料金プラン単位名
			// String pplanKoteiTaniNm = this.getValue(cbsMsg, MAP_KEY_PPLAN_KOTEI_TANI_NM);
			String pplanKoteiTaniNm = JFUStrConst.EMPTY;
			// 追加の料金プラン単位名
			String pplanKoteiTaniNmAdd = JFUStrConst.EMPTY;
			// 基本料金プランコード （基本）
			String pplanCd = JFUStrConst.EMPTY;
			// 追加料金プランコード （ホーム追加）
			String pplanCdAdd = JFUStrConst.EMPTY;
			// 基本プランの料金 （ホーム基本）
			String price = ZERO;
			// 追加プランの料金 （ホーム追加）
			String priceAdd = ZERO;

			// 料金グループコード
			String prcGrpCd = this.getValue(cbsMsg, MAP_KEY_PRC_GRP_CD);
			// TVコースグループコード
			String tvCourseGrpCd = this.getValue(cbsMsg, MAP_KEY_TV_COURSE_GRP_CD);
			// 料金コース種別コード
			String pcrsStbCd = this.getValue(cbsMsg, MAP_KEY_PCRS_SBT_CD);
			// 各料金コースの金額(基本料)を設定する
			if (JK_FORM_HOME.equals(jkFromKb) || JFUStrConst.CD00134_A37.equals(pcrsCd) || JFUStrConst.CD00134_A38.equals(pcrsCd)
					|| JFUStrConst.CD00134_A39.equals(pcrsCd) || JFUStrConst.CD00134_AC0.equals(pcrsCd) || JFUStrConst.CD00134_AC1.equals(pcrsCd))
			{
				// ホーム
				// 基本料金プランコード （ホーム基本）
				pplanCd = this.getValue(cbsMsg, MAP_KEY_PPLAN_CD);
				// 追加料金プランコード （ホーム追加）
				pplanCdAdd = this.getValue(cbsMsg, MAP_KEY_PPLAN_CD_ADD);
				// 基本プランの料金 （ホーム基本）
				price = this.getValue(cbsMsg, MAP_KEY_PRICE);
				// 追加プランの料金 （ホーム追加）
				priceAdd = this.getValue(cbsMsg, MAP_KEY_PRICE_ADD);
				// 基本の料金プラン単位名
				pplanKoteiTaniNm = this.getValue(cbsMsg, MAP_KEY_PPLAN_KOTEI_TANI_NM);
				// 追加の料金プラン単位名
				pplanKoteiTaniNmAdd = this.getValue(cbsMsg, MAP_KEY_PPLAN_TANI_NM_ADD);
			}
			else if (JK_FORM_MAN.equals(jkFromKb))
			{
				// マンション
				// 基本料金プランコード （マンション基本）
				pplanCd = this.getValue(cbsMsg, MAP_KEY_PPLANM_CD);
				// 追加料金プランコード （マンション追加）
				pplanCdAdd = this.getValue(cbsMsg, MAP_KEY_PPLANM_CD_ADD);
				// 基本プランの料金 （マンション基本）
				price = this.getValue(cbsMsg, MAP_KEY_PRICEM);
				// 追加プランの料金 （マンション追加）
				priceAdd = this.getValue(cbsMsg, MAP_KEY_PRICEM_ADD);
				// 基本の料金プラン単位名（マンション基本）
				pplanKoteiTaniNm = this.getValue(cbsMsg, MAP_KEY_PPLAN_KOTEI_TANI_NMM);
				// 追加の料金プラン単位名（マンション追加）
				pplanKoteiTaniNmAdd = this.getValue(cbsMsg, MAP_KEY_PPLAN_TANI_NMM_ADD);
			}
			else
			{
				// メゾン
				// 基本料金プランコード （メゾン基本）
				pplanCd = this.getValue(cbsMsg, MAP_KEY_PPLANMZ_CD);
				// 基本プランの料金 （メゾン基本）
				price = this.getValue(cbsMsg, MAP_KEY_PRICEMZ);
				// 基本の料金プラン単位名（メゾン基本）
				pplanKoteiTaniNm = this.getValue(cbsMsg, MAP_KEY_PPLAN_KOTEI_TANI_NMMZ);
			}

			// -------------------------------------------------
			// 料金コース格納MAPに設定
			// -------------------------------------------------
			courseMap = new HashMap<String, String>();

			// 基本料金の場合
			// コースリスト 料金コースコード
			courseMap.put(FUW01501SFConst.CD_03, pcrsCd);
// ANK-4592-00-00 MOD START
			// CSベーシック、CSプレミアムの場合は、画面表示用のコース名に変更する
			if (JFUStrConst.CD00134_AC0.equals(pcrsCd))
			{
				// コースリスト 料金コース名
				courseMap.put(FUW01501SFConst.NM_03, COURSE_NM_CS_BAS);
			}
			else if (JFUStrConst.CD00134_AC1.equals(pcrsCd))
			{
				// コースリスト 料金コース名
				courseMap.put(FUW01501SFConst.NM_03, COURSE_NM_CS_PRE);
			}
			else
			{
				// コースリスト 料金コース名
				courseMap.put(FUW01501SFConst.NM_03, pcrsNm);
			}
// ANK-4592-00-00 MOD END
			// コースリスト 料金コース名（追加）
			courseMap.put(FUW01501SFConst.NM_ADD_03, "追加" + pcrsNm);
			// コースリスト 料金プランコード（基本）
			courseMap.put(FUW01501SFConst.PLAN_CD_03, pplanCd);
			// コースリスト 料金プランコード（追加）
			courseMap.put(FUW01501SFConst.PLAN_CD_ADD_03, pplanCdAdd);
			// コースリスト 月額料金
			// 月額料金無料の場合
			if (ZERO.equals(price))
			{
				price = JFUStrConst.FREE_LABEL;
				courseMap.put(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_03, JFUStrConst.EMPTY);
			}
			// 月額料金有料の場合
			else
			{
				// コースリスト 料金プラン単位名
				courseMap.put(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_03, JFUStrConst.HALF_SPACE + pplanKoteiTaniNm);
			}
			// 月額料金（追加）無料の場合
			if (ZERO.equals(priceAdd))
			{
				priceAdd = JFUStrConst.FREE_LABEL;
				courseMap.put(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_ADD_03, JFUStrConst.EMPTY);
			}
			// 月額料金（追加）有料の場合
			else
			{
				// コースリスト 料金プラン単位名（追加）
				courseMap.put(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_ADD_03, JFUStrConst.HALF_SPACE + pplanKoteiTaniNmAdd);
			}
			courseMap.put(FUW01501SFConst.PRC_03, price);
			// コースリスト 月額料金（追加）
			courseMap.put(FUW01501SFConst.PRC_ADD_03, priceAdd);
			// コースリスト 料金グループコード
			courseMap.put(FUW01501SFConst.PRC_GRP_CD_03, prcGrpCd);
			// コースリスト ＴＶコースグループコード
			courseMap.put(FUW01501SFConst.TV_COURSE_GRP_CD_03, tvCourseGrpCd);
			// コースリスト 料金コース種別コード
			courseMap.put(FUW01501SFConst.PCRS_SBT_CD_03, pcrsStbCd);

			pcrsMap.put(pcrsCd, courseMap);
		}

		// -------------------------------------------------
		// サービスフォームBeanに設定
		// -------------------------------------------------
		X31SDataBeanAccess courseList = null;
		for (int pCnt = 0; pCnt < PCRS_CNG_LIST.length; pCnt++)
		{
			String plPcrsCd = PCRS_CNG_LIST[pCnt];
			HashMap<String, String> getMap = pcrsMap.get(plPcrsCd);

			// ご利用料金リスト３のレコード作成
			courseList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.RYOKIN + JFUWebCommon.SEP_N_LAST, pCnt);

			if (getMap != null)
			{
				// コースリスト 料金コースコード
				courseList.sendMessageString(FUW01501SFConst.CD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap.get(FUW01501SFConst.CD_03));
				// コースリスト 料金コース名
				courseList.sendMessageString(FUW01501SFConst.NM_03, X31CWebConst.DATABEAN_SET_VALUE, getMap.get(FUW01501SFConst.NM_03));
				// コースリスト 料金プランコード
				courseList.sendMessageString(FUW01501SFConst.PLAN_CD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap.get(FUW01501SFConst.PLAN_CD_03));
				// コースリスト 料金プラン単位名
				courseList.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_03, X31CWebConst.DATABEAN_SET_VALUE, getMap
						.get(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_03));
				// コースリスト 料金プラン単位名（追加）
				courseList.sendMessageString(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_ADD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap
						.get(FUW01501SFConst.PPLAN_KOTEI_TANI_NM_ADD_03));
				// コースリスト 月額料金
				courseList.sendMessageString(FUW01501SFConst.PRC_03, X31CWebConst.DATABEAN_SET_VALUE, getMap.get(FUW01501SFConst.PRC_03));
				// コースリスト 料金コース名（追加）
				courseList.sendMessageString(FUW01501SFConst.NM_ADD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap.get(FUW01501SFConst.NM_ADD_03));
				// コースリスト 料金プランコード（追加）
				courseList.sendMessageString(FUW01501SFConst.PLAN_CD_ADD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap
						.get(FUW01501SFConst.PLAN_CD_ADD_03));
				// コースリスト 料金プラン単位名
				courseList.sendMessageString(FUW01501SFConst.PLAN_CD_ADD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap
						.get(FUW01501SFConst.PLAN_CD_ADD_03));
				// コースリスト 月額料金（追加）
				courseList.sendMessageString(FUW01501SFConst.PRC_ADD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap.get(FUW01501SFConst.PRC_ADD_03));
				// コースリスト 料金グループコード
				courseList.sendMessageString(FUW01501SFConst.PRC_GRP_CD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap
						.get(FUW01501SFConst.PRC_GRP_CD_03));
				// コースリスト ＴＶコースグループコード
				courseList.sendMessageString(FUW01501SFConst.TV_COURSE_GRP_CD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap
						.get(FUW01501SFConst.TV_COURSE_GRP_CD_03));
				// コースリスト 料金コース種別コード
				courseList.sendMessageString(FUW01501SFConst.PCRS_SBT_CD_03, X31CWebConst.DATABEAN_SET_VALUE, getMap
						.get(FUW01501SFConst.PCRS_SBT_CD_03));
			}
		}
		return jkFromKb;
	}

	/**
	 * 料金コース一覧照会（機器の月額料金取得用）の加工処理（FUSV012616SC）
	 * <br/>
	 * サービスIFの検索結果リストを画面表示用の階層構造リストに変換します。
	 *
	 * @param commonInfoBean  共有フォームBean
	 * @param serviceInfoBean サービス契約番号一覧サービスフォームBean
	 * @param outputMap       サービス検索結果マップ
	 * @param stbNameFlg STB名称の表示切替フラグ
	 * @param mapTaknaiKikiCd プロパティから取得した機器情報（KEY:機器の料金コースコード、値：宅内機器型式コード）
	 */
	private void editDispMapSC16(final X31SDataBeanAccess commonInfoBean, final X31SDataBeanAccess serviceInfoBean,
			final HashMap<String, HashMap<String, ArrayList<HashMap<String, String>>>> outputMap, boolean stbNameFlg,
			Map<String, String> mapTaknaiKikiCd)
	{
		// -------------------------------------------------
		// 引数チェック
		// -------------------------------------------------
		// 料金コース一覧照会（料金コース月額料金取得用）の加工処理（FUSV012615SC）SC検索結果取得
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0126SC15Map = null;
		if (outputMap.containsKey(SC_TITLE_FUSV012615SC))
		{
			fusv0126SC15Map = outputMap.get(SC_TITLE_FUSV012615SC);
		}

		// パラメータ異常ならば終了
		if (fusv0126SC15Map == null || !fusv0126SC15Map.containsKey(MAP_KEY_SC15CBSMSGLIST))
		{
			return;
		}

		// サービス検索結果：料金コース一覧照会明細（eo光テレビ情報取得）
		ArrayList<HashMap<String, String>> getPcrsList = fusv0126SC15Map.get(MAP_KEY_SC15CBSMSGLIST);
		if (getPcrsList == null || getPcrsList.size() == 0)
		{
			return;
		}

		// 料金コース情報より機器の料金コース取得
		ArrayList<HashMap<String, String>> itiList = new ArrayList<HashMap<String, String>>();
		for (int i = 0; i < getPcrsList.size(); i++)
		{
			// 料金コースMapを取得
			HashMap<String, String> cbsMsg = getPcrsList.get(i);
			// 機器提供サービスコード取得
			String kktkSvcCd = this.getValue(cbsMsg, MAP_KEY_KKTK_SVC_CD);
			if (JFUStrConst.KK0771_KKTK_SVC_CD_C009.equals(kktkSvcCd))
			{
				itiList.add(cbsMsg);
			}
		}

		// サービス検索結果：料金コース一覧照会（機器の月額料金取得用）
		if (itiList == null || itiList.size() == 0)
		{
			return;
		}

		// -------------------------------------------------
		// 表示順序でソート
		// -------------------------------------------------
		for (int i = 0; i <= itiList.size(); i++)
		{
			for (int j = i + 1; j < itiList.size(); j++)
			{
				// 料金コースMapを取得
				HashMap<String, String> cbsMsg = itiList.get(i);
				String disp = this.getValue(cbsMsg, MAP_KEY_DSP_JUN);
				// 料金コースMapを取得
				HashMap<String, String> cbsMsg2 = itiList.get(j);
				String disp2 = this.getValue(cbsMsg2, MAP_KEY_DSP_JUN);
				if (disp.compareTo(disp2) > 0)
				{
					// dispがdisp2より大きい場合、入れ替え
					itiList.remove(j);
					itiList.add(j, cbsMsg);
					itiList.remove(i);
					itiList.add(i, cbsMsg2);
				}
			}
		}

		// --------------------------------------------------------------------
		// サービスフォームBeanに機器リスト（参照用）宣言　※取得機器全件設定
		// --------------------------------------------------------------------
		X31SDataBeanAccess kikiList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_SAVE_LIST);
		// コースコード
		kikiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		// プランコード
		kikiList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		// 名称
		kikiList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		// ＨＤＤ容量
		kikiList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		// ＨＤＤ容量コード
		kikiList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		// 月額料金
		kikiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, ZERO);
		// グレード
		kikiList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, MAX_GRADE);
		// 表示順序
		kikiList.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, ZERO);
		// 料金プラン単位名
		kikiList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		// 宅内機器型式コード
		kikiList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
		// ＢＣＡＳ不要ＳＴＢフラグ
		kikiList.sendMessageString(FUW01501SFConst.BCAS_FUYO_STB_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);

		// ・B-CAS不要情報（業務パラメータ、マスタから取得したB-CAS不要機器の情報。データが存在しない場合は空リスト）
		List<String> bcasMasterList = JFUWebCommon.getWorkParamSplit(this, JFUStrConst.KK_HDD_CAPA_BCASNONE);

		// ■■■■■料金コース一覧照会（機器の月額料金取得用）の件数分Loop■■■■■
		for (int i = 0; i < itiList.size(); i++)
		{
			// -------------------------------------------------
			// 料金コース情報を取得し、機器リスト（参照用）に設定
			// -------------------------------------------------

			// 料金コースMapを取得
			HashMap<String, String> cbsMsg = itiList.get(i);
			// 料金コースコード
			String cd = cbsMsg.get(MAP_KEY_PCRS_CD);
			kikiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, cd);

			// ■プロパティから"追加、変更時に出荷予定となる宅内機器型式コード"をセット
			String taknaiKikiCd = JFUWebCommon.nvl(mapTaknaiKikiCd.get(cd), JFUStrConst.EMPTY);

			// 料金コース名
			String nm = this.getValue(cbsMsg, MAP_KEY_PCRS_NM);
			// STBの表示名称編集：機器の料金コース名（宅内機器型式コード）
			nm = JFUWebCommon.getDisplayStbName(stbNameFlg, nm, taknaiKikiCd);
			kikiList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, nm);

			// ＨＤＤ容量
			String hddCapaCdNm = this.getValue(cbsMsg, MAP_KEY_HDD_CAPA_CD_NM);
			kikiList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, hddCapaCdNm);

			// ＨＤＤ容量コード
			String hddCapaCd = this.getValue(cbsMsg, MAP_KEY_HDD_CAPA_CD);
			kikiList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, hddCapaCd);

			// 基本料金プランコード
			String pplan = this.getValue(cbsMsg, MAP_KEY_PPLAN_CD);
			kikiList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, pplan);

			// 基本プランの料金
			String prc = this.getValue(cbsMsg, MAP_KEY_PRICE);
			kikiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, prc);

			// 料金コースグレード順位
			String glade = this.getValue(cbsMsg, MAP_KEY_PCRS_GRADE_JUN);
			kikiList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, glade);

			// 表示順序（マスタ設定値を仮番としてセット）
			String disp = this.getValue(cbsMsg, MAP_KEY_DSP_JUN);
			kikiList.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, disp);

			// 料金プラン単位名
			String TaniNm = this.getValue(cbsMsg, MAP_KEY_PPLAN_KOTEI_TANI_NM);
			kikiList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.HALF_SPACE + TaniNm);

			// 宅内機器型式コード
			kikiList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, taknaiKikiCd);

			// ＢＣＡＳ不要ＳＴＢフラグ
			String bcasFuyoStbFlg = getBcasFuyoCd(bcasMasterList, hddCapaCd);
			kikiList.sendMessageString(FUW01501SFConst.BCAS_FUYO_STB_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, bcasFuyoStbFlg);

		}

		// 機器リスト（参照用）件数
		kiki_save_list_cnt = itiList.size() + 1;
	}

	/**
	 * DataBeanをディープコピーします。<br>
	 * （契約情報リストコピー用）<br>
	 * @param srcBean コピー元DataBean
	 * @param destBean コピー先DataBean
	 */
	private void deepCopyDataBean(X31SDataBeanAccess srcBean, X31SDataBeanAccess destBean)
	{

		String[] items = srcBean.getItemNameList();
		for (int i = 0; i < items.length; i++)
		{
			String itemName = items[i];
			String itemId = srcBean.getItemId(itemName);
			if (itemId.indexOf(BEAN_TYPE_LIST) > -1)
			{
				int count = ((Integer)srcBean.sendMessage(itemName, X31CWebConst.DATABEAN_GET_COUNT)).intValue();

				for (int j = 0; j < count; j++)
				{
					Object obj = srcBean.sendMessageObject(itemName, X31CWebConst.DATABEAN_GET_VALUE, j);
					destBean.sendMessageObject(itemName, X31CWebConst.DATABEAN_ADD_VALUE, j, obj);
				}
			}
			else
			{
				Object obj = srcBean.sendMessageObject(itemName, X31CWebConst.DATABEAN_GET_VALUE);
				destBean.sendMessageObject(itemName, X31CWebConst.DATABEAN_SET_VALUE, obj);
			}
		}
	}

	/**
	 * DataBeanをディープコピーします。<br>
	 * （機器リストコピー用）<br>
	 * @param srcBean コピー元DataBean
	 * @param destBean コピー先DataBean
	 */
	private void deepCopyDataBean2(X31SDataBeanAccess srcBean, X31SDataBeanAccess destBean)
	{

		String[] items = srcBean.getItemNameList();
		for (int i = 0; i < items.length; i++)
		{
			String itemName = items[i];
			String itemId = srcBean.getItemId(itemName);
			if (itemId.indexOf(BEAN_TYPE_LIST) > -1)
			{
				int count = ((Integer)srcBean.sendMessage(itemName, X31CWebConst.DATABEAN_GET_COUNT)).intValue();

				for (int j = 0; j < count; j++)
				{
					String obj = srcBean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE, j);
					destBean.sendMessageString(itemName, X31CWebConst.DATABEAN_ADD_VALUE, obj);
				}
			}
			else
			{
				String obj = srcBean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
				destBean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, obj);
			}
		}
	}

	/**
	 * 引数mapから引数keyに該当するvalue値を取得します。
	 * <br/>
	 * @param map Value取得対象のMap
	 * @param key MapからValueを取得するKey
	 * @return 指定されたkeyに対応するValue(nullの場合は空文字)
	 */
	private String getValue(final Map<String, String> map, final String key)
	{
		if (map == null || key == null)
		{
			return JFUStrConst.EMPTY;
		}

		String value = map.get(key);
		if (value == null)
		{
			return JFUStrConst.EMPTY;
		}

		return value;
	}

	/**
	 * 工事案件(eo光テレビ)受付 情報設定<br>
	 * 工事案件(eo光テレビ)受付呼出用のパラメータを設定します。
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception		すべての例外
	 */
	private void setKojiAnkenInfo(X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		// デバッグ用ログ出力
		DEBUG_LOG.info("----- setKojiAnken Start -----");

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray keiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);

		// ------------------------------------------------------
		// サービスフォームBean設定(工事案件(eo光テレビ)受付)
		// ------------------------------------------------------
		// ＳＴＢ追加変更有無フラグ
		String stbCngUmuFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// ＢＳパススルー申込有無
		String bsptMskmFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 電話番号
		String telNo = serviceInfoBean.sendMessageString(FUW01501SFConst.I_DT_RRKS_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
		serviceInfoBean.sendMessageString(FUW01501SFConst.SAVE_KIKI_STC_SK_TELNO, X31CWebConst.DATABEAN_SET_VALUE, telNo);
		// 携帯電話／ＰＨＳ番号
		String ktaiTelNo = serviceInfoBean.sendMessageString(FUW01501SFConst.I_RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
		serviceInfoBean.sendMessageString(FUW01501SFConst.SAVE_RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_SET_VALUE, ktaiTelNo);

		// -----------------------------------------
		// 工事範囲コード
		// -----------------------------------------
		// ■STBおよびV-ONU変更時
		// (ＳＴＢ追加変更有無フラグが"1")かつ(ＢＳパススルー申込有無が"1")
		if (JFUStrConst.CD00002_1.equals(stbCngUmuFlg) && JFUStrConst.CD00002_1.equals(bsptMskmFlg))
		{
			// CD00484 工事範囲コード 230 V-ONU・STB変更
			serviceInfoBean.sendMessageString(FUW01501SFConst.KOJI_SCOPE_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00484_230);

		}
		// ■STB変更時(ＳＴＢ追加変更有無フラグが"1")
		else if (JFUStrConst.CD00002_1.equals(stbCngUmuFlg))
		{
			// CD00484 工事範囲コード 210 STB変更
			serviceInfoBean.sendMessageString(FUW01501SFConst.KOJI_SCOPE_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00484_210);

		}
		// ■V-ONU変更時(ＢＳパススルー申込有無が"1")
		else if (JFUStrConst.CD00002_1.equals(bsptMskmFlg))
		{
			// CD00484 工事範囲コード 220 V-ONU変更
			serviceInfoBean.sendMessageString(FUW01501SFConst.KOJI_SCOPE_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00484_220);
		}

		// -----------------------------------------
		// 工事案件備考
		// -----------------------------------------
		if (JK_FORM_MAN.equals(serviceInfoBean.sendMessageString(FUW01501SFConst.AD_FORM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			setKojiakBiko(serviceInfoBean);
		}

		// ---------------------------------------------
		// 工事案件の呼出有無を判定
		// ---------------------------------------------
		if (!isSetKoujiAnken(serviceInfoBean))
		{
			// デバッグ用ログ出力
			DEBUG_LOG.info("----- setKojiAnken (★コース変更での工事案件の呼出は「無」★)   -----");
			return;
		}

		// -----------------------------------------
		// 機器情報設定
		// -----------------------------------------
		setKojiAnkenKiki(serviceInfoBean, keiList);

		// デバッグ用ログ出力
		DEBUG_LOG.info("----- setKojiAnken End   -----");
	}

	/**
	 * 工事案件(eo光テレビ)受付 機器情報設定
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @param keiList			契約情報リスト
	 * @throws Exception		すべての例外
	 */
	private void setKojiAnkenKiki(X31SDataBeanAccess serviceInfoBean, X31SDataBeanAccessArray keiList) throws Exception
	{

		// コース種別
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);

		// 台数選択
		int mskmStbCnt = 0;
		if (PCRS_TYPE02.equals(pcrsType))
		{
			// 地デジBSの場合
			mskmStbCnt = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			// 地デジBS以外の場合
			mskmStbCnt = keiList.getCount();
		}

		int kojiCnt = 0;

		// 初期化
		for (int cnt = 0; cnt < ITEM_NM_LIST_TAKNKIKI_SBT_CD.length; cnt++)
		{
			// 機器提供サービス契約番号 ← 契約情報リスト.機器提供サービス契約番号
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_KKTK_SVC_KEI_NO[cnt], JFUStrConst.EMPTY);
			// 宅内機器種別コード
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_SBT_CD[cnt], JFUStrConst.EMPTY);
			// 宅内機器異動コード
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_IDO_CD[cnt], JFUStrConst.EMPTY);
			// ＨＤＤ容量コード
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_HDD_CAPA_CD[cnt], JFUStrConst.EMPTY);
			// STB契約TVコースコード ← 契約情報リスト.選択コースコード
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_STB_KEI_TV_CRS_CD[cnt], JFUStrConst.EMPTY);
			// 旧STB＿ID ← 契約情報リスト.ＳＴＢ＿ＩＤ
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_STB_ID[cnt], JFUStrConst.EMPTY);
			// 旧HDD容量コード ← 契約情報リスト.契約中ＨＤＤ容量コード
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_HDD_CAPA_CD[cnt], JFUStrConst.EMPTY);
			// 旧宅内機器型式コード ← 契約情報リスト.契約中宅内機器型式コード
			JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_TAKN_MDL_CD[cnt], JFUStrConst.EMPTY);
		}

		for (int cnt = 0; cnt < mskmStbCnt; cnt++)
		{
			// 契約情報リストより1件取得
			X31SDataBeanAccess keiBean = keiList.getDataBean(cnt);
			String status = keiBean.sendMessageString(FUW01501SFConst.STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);
			String chgStb = keiBean.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_GET_VALUE);

			if (STATUS_0.equals(status) && CHG_STB_1.equals(chgStb))
			{
				// 機器変更の場合
				// ----------------------------------------------
				// 工事案件(eo光テレビ)受付 機器情報に転記
				// ----------------------------------------------
				// ----------------------------------------------
				// STB
				// ----------------------------------------------
				// 機器提供サービス契約番号 ← 契約情報リスト.機器提供サービス契約番号
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_KKTK_SVC_KEI_NO[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.KKTK_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE));
				// 宅内機器種別コード ← CD01262_A0:ＳＴＢ
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_SBT_CD[kojiCnt], JFUStrConst.TKNI_KIKI_SBT_CD_A0);
				// 宅内機器異動コード ← CD00562_02:STB交換
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_IDO_CD[kojiCnt], JFUStrConst.CD00562_02);
				// HDD容量コード ← 契約情報リスト.選択ＨＤＤ容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_HDD_CAPA_CD[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.HDD_CAPA_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
				// STB契約TVコースコード ← 契約情報リスト.選択コースコード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_STB_KEI_TV_CRS_CD[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
				// 旧STB＿ID ← 契約情報リスト.ＳＴＢ＿ＩＤ
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_STB_ID[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.STB_ID_01, X31CWebConst.DATABEAN_GET_VALUE));
				// 旧HDD容量コード ← 契約情報リスト.契約中ＨＤＤ容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_HDD_CAPA_CD[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.KEI_HDD_CAPA_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
				// 旧宅内機器型式コード ← 契約情報リスト.契約中宅内機器型式コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_TAKN_MDL_CD[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
				kojiCnt += 1;

				// ----------------------------------------------
				// BCAS
				// ----------------------------------------------
				// 機器提供サービス契約番号 ← 契約情報リスト.機器提供サービス契約番号
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_KKTK_SVC_KEI_NO[kojiCnt], SPACE);
				// 宅内機器種別コード ← CD01262_B0:BCAS
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_SBT_CD[kojiCnt], JFUStrConst.TKNI_KIKI_SBT_CD_B0);
				// 宅内機器異動コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_IDO_CD[kojiCnt], JFUStrConst.CD00562_09);
				// HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_HDD_CAPA_CD[kojiCnt], SPACE);
				// STB契約TVコースコード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_STB_KEI_TV_CRS_CD[kojiCnt], SPACE);
				// 旧STB＿ID
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_STB_ID[kojiCnt], SPACE);
				// 旧HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_HDD_CAPA_CD[kojiCnt], SPACE);
				// 旧宅内機器型式コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_TAKN_MDL_CD[kojiCnt], SPACE);
				kojiCnt += 1;

				// ----------------------------------------------
				// CCAS
				// ----------------------------------------------
				// 機器提供サービス契約番号
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_KKTK_SVC_KEI_NO[kojiCnt], SPACE);
				// 宅内機器種別コード ← CD01262_C0:CCAS
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_SBT_CD[kojiCnt], JFUStrConst.TKNI_KIKI_SBT_CD_C0);
				// 宅内機器異動コード：交換
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_IDO_CD[kojiCnt], JFUStrConst.CD00562_02);
				// HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_HDD_CAPA_CD[kojiCnt], SPACE);
				// STB契約TVコースコード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_STB_KEI_TV_CRS_CD[kojiCnt], SPACE);
				// 旧STB＿ID
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_STB_ID[kojiCnt], SPACE);
				// 旧HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_HDD_CAPA_CD[kojiCnt], SPACE);
				// 旧宅内機器型式コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_TAKN_MDL_CD[kojiCnt], SPACE);
				kojiCnt += 1;
			}

			if (PCRS_TYPE02.equals(pcrsType))
			{
				// 地デジBSの場合
				// ----------------------------------------------
				// 工事案件(eo光テレビ)受付 機器情報に転記
				// ----------------------------------------------
				// ----------------------------------------------
				// STB
				// ----------------------------------------------
				// 機器提供サービス契約番号 ← 契約情報リスト.機器提供サービス契約番号
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_KKTK_SVC_KEI_NO[kojiCnt], SPACE);
				// 宅内機器種別コード ← CD01262_A0:ＳＴＢ
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_SBT_CD[kojiCnt], JFUStrConst.TKNI_KIKI_SBT_CD_A0);
				// 宅内機器異動コード ← CD00562_01:STB追加
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_IDO_CD[kojiCnt], JFUStrConst.CD00562_01);
				// HDD容量コード ← 契約情報リスト.選択ＨＤＤ容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_HDD_CAPA_CD[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.HDD_CAPA_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
				// STB契約TVコースコード ← 契約情報リスト.選択コースコード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_STB_KEI_TV_CRS_CD[kojiCnt], keiBean.sendMessageString(
						FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
				// 旧STB＿ID ← NULL
				// 旧HDD容量コード ← NULL
				// 旧宅内機器型式コード ← NULL
				kojiCnt += 1;

				// ----------------------------------------------
				// BCAS
				// ----------------------------------------------
				// 機器提供サービス契約番号 ← 契約情報リスト.機器提供サービス契約番号
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_KKTK_SVC_KEI_NO[kojiCnt], SPACE);
				// 宅内機器種別コード ← CD01262_B0:BCAS
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_SBT_CD[kojiCnt], JFUStrConst.TKNI_KIKI_SBT_CD_B0);
				// 宅内機器異動コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_IDO_CD[kojiCnt], JFUStrConst.CD00562_01);
				// HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_HDD_CAPA_CD[kojiCnt], SPACE);
				// STB契約TVコースコード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_STB_KEI_TV_CRS_CD[kojiCnt], SPACE);
				// 旧STB＿ID
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_STB_ID[kojiCnt], SPACE);
				// 旧HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_HDD_CAPA_CD[kojiCnt], SPACE);
				// 旧宅内機器型式コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_TAKN_MDL_CD[kojiCnt], SPACE);
				kojiCnt += 1;

				// ----------------------------------------------
				// CCAS
				// ----------------------------------------------
				// 機器提供サービス契約番号
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_KKTK_SVC_KEI_NO[kojiCnt], SPACE);
				// 宅内機器種別コード ← CD01262_C0:CCAS
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_SBT_CD[kojiCnt], JFUStrConst.TKNI_KIKI_SBT_CD_C0);
				// 宅内機器異動コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_TAKNKIKI_IDO_CD[kojiCnt], JFUStrConst.CD00562_01);
				// HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_HDD_CAPA_CD[kojiCnt], SPACE);
				// STB契約TVコースコード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_STB_KEI_TV_CRS_CD[kojiCnt], SPACE);
				// 旧STB＿ID
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_STB_ID[kojiCnt], SPACE);
				// 旧HDD容量コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_HDD_CAPA_CD[kojiCnt], SPACE);
				// 旧宅内機器型式コード
				JFUWebCommon.setDataBeanItemByPath(serviceInfoBean, ITEM_NM_LIST_OLD_TAKN_MDL_CD[kojiCnt], SPACE);
				kojiCnt += 1;
			}
		}
	}

	/**
	 * 工事案件備考 設定
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception		すべての例外
	 */
	private void setKojiakBiko(X31SDataBeanAccess serviceInfoBean) throws Exception
	{

		StringBuffer kojiakBiko = new StringBuffer();

		// 電話番号
		String telNo = serviceInfoBean.sendMessageString(FUW01501SFConst.I_DT_RRKS_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
		// 携帯電話／ＰＨＳ番号
		String ktaiTelNo = serviceInfoBean.sendMessageString(FUW01501SFConst.I_RRKS_KTAI_TELNO, X31CWebConst.DATABEAN_GET_VALUE);

		// ---------------------------
		// 両方入力
		// ---------------------------
		if ((0 < JFUWebCommon.getLength(telNo)) && (0 < JFUWebCommon.getLength(ktaiTelNo)))
		{
			// ●連絡先：連絡先電話番号：XXXXXX　●連絡先：携帯用電話番号：XXXXXX
			kojiakBiko =
					kojiakBiko.append(KOJIAK_BIKO_PREFIX_TEL).append(telNo).append(JFUStrConst.HALF_SPACE).append(KOJIAK_BIKO_PREFIX_KTAI).append(
							ktaiTelNo);
		}
		// ---------------------------
		// 電話番号入力時
		// ---------------------------
		else if (0 < JFUWebCommon.getLength(telNo))
		{
			// ●連絡先：連絡先電話番号：XXXXXX
			kojiakBiko = kojiakBiko.append(KOJIAK_BIKO_PREFIX_TEL).append(telNo);
		}
		// ---------------------------
		// 携帯番号入力
		// ---------------------------
		else if (0 < JFUWebCommon.getLength(ktaiTelNo))
		{
			// ●連絡先：携帯用電話番号：XXXXXX
			kojiakBiko = kojiakBiko.append(KOJIAK_BIKO_PREFIX_KTAI).append(ktaiTelNo);
		}

		// 工事案件備考
		serviceInfoBean.sendMessageString(FUW01501SFConst.KOJIAK_BIKO, X31CWebConst.DATABEAN_SET_VALUE, kojiakBiko.toString());

	}

	/**
	 * 工事案件情報の設定有無取得<br>
	 * 工事案件情報の設定有無(要否)を判定し、結果を返却します。<br>
	 * また、サービスフォームBean"工事案件有無用"の設定を行います。
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @return booelan 工事案件情報の設定有無を返却
	 * @throws Exception	すべての例外
	 */
	private boolean isSetKoujiAnken(X31SDataBeanAccess serviceInfoBean) throws Exception
	{

		// 工事案件有無用(デフォルト："0":無)
		String scKoujiFlg = JFUStrConst.CD00002_0;

		// ----------------------------------------------
		// サービスフォームBeanからデータ取得
		// ----------------------------------------------
		// コース種別
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		// ＢＳパススルー申込有無
		String bsptMskmFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// ＳＴＢ追加変更有無フラグ
		String stbCngUmuFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// 追加台数
		String addStbCnt = serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE);
		String chgPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);

// ANK-4592-00-00 MOD START
		// 変更後料金コースがCSベーシック、CSプレミアムの場合は工事不要
		if (PCRS_TYPE02.equals(pcrsType) && !PCRS_CS_LIST.contains(chgPcrsCd))
// ANK-4592-00-00 MOD END
		{
			// ----------------------------------------------------------
			// 下記条件を満たす場合は、"1"(有)
			// ----------------------------------------------------------
			// コース種別が"2"(BS・地デジ)
			scKoujiFlg = JFUStrConst.CD00002_1; // 有
		}
		else if ((!PCRS_TYPE02.equals(pcrsType) && Integer.parseInt(addStbCnt) > 0)
				|| STB_CNG_UMU_FLG_1.equals(stbCngUmuFlg) || BSPT_MSKM_FLG_1.equals(bsptMskmFlg))
		{
			// ----------------------------------------------------------
			// 下記条件を満たす場合は、"0"(無)
			// ----------------------------------------------------------
			// 地デジBS以外でSTB追加有り、または、
			// STB変更有り、または、BSパススルー申込有り
			scKoujiFlg = JFUStrConst.CD00002_0;
		}

		// 工事案件有無
		DEBUG_LOG.info("----- ■工事案件有無フラグ：「" + scKoujiFlg + "」 -----");
		serviceInfoBean.sendMessageString(FUW01501SFConst.SC_KOUJI_FLG, X31CWebConst.DATABEAN_SET_VALUE, scKoujiFlg);

		// 呼出有無をbooleanで返却
		return (JFUStrConst.CD00002_1.equals(scKoujiFlg));
	}

	/**
	 * 登録サービス（FUSV0127）呼出用パラメータ設定<br>
	 * ※FUW01501/FUW01502共通処理
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception		すべての例外
	 */
	private void setFUSV0127Parameter(X31SDataBeanAccess serviceInfoBean) throws Exception
	{

		// ----------------------------------------------
		// 判定条件を取得
		// ----------------------------------------------
		// コース種別取得
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		// 料金コース（サービス契約）取得
		String pcrsCdKei = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_CD_KEI, X31CWebConst.DATABEAN_GET_VALUE);
		// 変更後料金コース
		String chgPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);

		// サービス契約のコース変更無し
		boolean chgPcrsNashi = (PCRS_TYPE00.equals(pcrsType) && PCRS_CNG_LIST[Integer.parseInt(PCRS07)].equals(pcrsCdKei))
									|| (PCRS_TYPE01.equals(pcrsType) && PCRS_CNG_LIST[Integer.parseInt(PCRS08)].equals(pcrsCdKei))
									|| (PCRS_TYPE03.equals(pcrsType));

		// 契約台数取得
		int mskmStbCnt = 0;
// ANK-4673-00-00 MOD START
		if (PCRS_TYPE02.equals(pcrsType) || PCRS_TYPE04.equals(pcrsType))
// ANK-4673-00-00 MOD END
		{
			// 地デジBS、CSコースの場合
			mskmStbCnt = Integer.parseInt(serviceInfoBean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			// 地デジBS、CSコース以外の場合
			mskmStbCnt = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST).getCount();
		}

		// ****************************************************************************************************
		// * ＣＣ用データ作成
		// *****************************************************************************************************
		// 当月 - 1日した年月を取得
		String matubi = JFUWebCommon.getEndOfMonthAddOnlineDate(this, -1);
		// 視聴制御CC呼出フラグ
		boolean ctFlg = false;
		if (operateDate.compareTo(matubi) >= 0)
		{
			// オンライン運用日付が当月月末2日以降の場合
			ctFlg = true;
		}

		// コース変更有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// コース変更＆STB変更有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_STB_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// コース変更（地デジ）有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_BS_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// STB変更有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.CC_STB_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// STB追加有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.CC_STB_ADD_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// BSパススルー申込有無
		serviceInfoBean.sendMessageString(FUW01501SFConst.CC_BSPT_ADD_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// 視聴制御ＣＣ呼び出し有無＿ＣＣ用
		serviceInfoBean.sendMessageString(FUW01501SFConst.CC_WCTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// 視聴１ＣＣ実行フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// 視聴２ＣＣ実行フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// 視聴３ＣＣ実行フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// 視聴４ＣＣ実行フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
		// 視聴５ＣＣ実行フラグ
		serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);

		// 異動理由明細
		X31SDataBeanAccess idoDtlList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.IDO_DTL_LIST);
		// 異動理由 異動理由コード
		idoDtlList.sendMessageString(FUW01501SFConst.IDO_RSN_CD_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00846_C1);
		// 申込登録明細
		JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.MSKM_DTL_LIST);
		// 視聴１デジタルティアグループリスト
		JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CT1_DGTIA_GRP_LIST);
		// 視聴１デジタルティアグループリスト
		JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CT2_DGTIA_GRP_LIST);
		// 視聴１デジタルティアグループリスト
		JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CT3_DGTIA_GRP_LIST);
		// 視聴１デジタルティアグループリスト
		JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CT4_DGTIA_GRP_LIST);
		// 視聴１デジタルティアグループリスト
		JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CT5_DGTIA_GRP_LIST);

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray ccKeList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
		X31SDataBeanAccess ucwkPcrsList = null;

		for (int cnt = 0; cnt < mskmStbCnt; cnt++)
		{
			// 契約情報リストより1件取得
			X31SDataBeanAccess keiyakuDataBean = ccKeList.getDataBean(cnt);

			ucwkPcrsList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_UCWK_PCRS_CD + JFUWebCommon.SEP_N_LAST, cnt);

			// 契約情報リスト サービス契約内訳番号
			String svcKeiUcwkNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
			ucwkPcrsList.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO_23, X31CWebConst.DATABEAN_SET_VALUE, svcKeiUcwkNo);

// ANK-4673-00-00 MOD START
			if (PCRS_TYPE02.equals(pcrsType) || PCRS_TYPE04.equals(pcrsType))
// ANK-4673-00-00 MOD END
			{
				// eo光テレビコース変更申込(FUW01501SF) 親契約識別コード
				serviceInfoBean.sendMessageString(FUW01501SFConst.SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00804_01);
				// eo光テレビコース変更申込(FUW01501SF) 料金コースコード
				String keiPcrsNo = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
				ucwkPcrsList.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, keiPcrsNo);
			}
			else
			{
				// eo光テレビコース変更申込(FUW01501SF) 親契約識別コード
				serviceInfoBean.sendMessageString(FUW01501SFConst.SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00804_03);
				// 契約情報リスト 契約中コースコード
				String keiPcrsNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

				// 予約中機器の対応
				if (JFUStrConst.EMPTY.equals(keiPcrsNo))
				{
					// 契約中コースコードが未設定の場合、選択料金コースコードを設定
					keiPcrsNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				}

				ucwkPcrsList.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, keiPcrsNo);
			}

			// 契約情報リスト 選択料金コースコード
			String pcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUStrConst.EMPTY.equals(pcrsCd))
			{
				// コース選択が未設定の場合は、契約中コースを設定
				String keiPcrsNo = serviceInfoBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				ucwkPcrsList.sendMessageString(FUW01501SFConst.PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, keiPcrsNo);
			}
			else
			{
				ucwkPcrsList.sendMessageString(FUW01501SFConst.PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);
			}
		}

// ANK-4673-00-00 MOD START
		if (PCRS_TYPE02.equals(pcrsType) || PCRS_TYPE04.equals(pcrsType))
// ANK-4673-00-00 MOD END
		{
			// ////////////////////////////////////////////////////////////////////
			// 地デジ・ＢＳ→新コース
			// ////////////////////////////////////////////////////////////////////
			DEBUG_LOG.info("----- ■登録サービス（FUSV0127）呼出用パラメータ設定　地デジ・ＢＳ→新コース -----");

//ANK-4592-00-00 MOD START
			// 変更後料金コースがCSベーシック、CSプレミアムの場合は不要
			if (!PCRS_CS_LIST.contains(chgPcrsCd))
			{
				// コース変更（地デジ）有無
				serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_BS_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
			}
//ANK-4592-00-00 MOD END
			// メールコード
			serviceInfoBean.sendMessageString(FUW01501SFConst.MAIL_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MAIL_CD_TV_COURSE_CHG_1);
			// コース変更用リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_PCRS_CNG);
			// コース変更＆ＳＴＢ変更用リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_PCRS_STB_CNG);

			// ＳＴＢ追加用リストを初期化
			X31SDataBeanAccessArray stbAddList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.CCLIST_STB_ADD);
			stbAddList.clearArray();

			// サービスフォームBeanより契約情報リスト取得
			X31SDataBeanAccessArray ccKeiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
			X31SDataBeanAccess bsList = null;

			for (int cnt = 0; cnt < mskmStbCnt; cnt++)
			{
				// 契約情報リストより1件取得
				X31SDataBeanAccess keiyakuDataBean = ccKeiList.getDataBean(cnt);

				// ＳＴＢ追加用リストのレコード作成
				bsList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_STB_ADD + JFUWebCommon.SEP_N_LAST, cnt);

				// eo光テレビコース変更申込(FUW01501SF) サービス契約番号
				String svcKeiNo = serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0161_SVC_KEI_NO_07, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

				// 契約情報リスト 選択コースコード
				String pcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0161_PCRS_CD_07, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);

				// 契約情報リスト 選択プランコード
				String pplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0161_PPLAN_CD_07, X31CWebConst.DATABEAN_SET_VALUE, pplanCd);

				// eo光テレビコース変更申込(FUW01501SF) 請求契約番号
				String seikyKeiNo = serviceInfoBean.sendMessageString(FUW01501SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0161_SEIKY_KEI_NO_07, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNo);

				// 契約情報リスト 選択機器コースコード
				String kikiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0341_PCRS_CD_07, X31CWebConst.DATABEAN_SET_VALUE, kikiPcrsCd);

				// 契約情報リスト 選択機器プランコード
				String kikiPplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0341_PPLAN_CD_07, X31CWebConst.DATABEAN_SET_VALUE, kikiPplanCd);

				// 契約情報リスト 選択ＨＤＤ容量コード
				String hddCapaCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.HDD_CAPA_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0341_HDD_CAPA_CD_07, X31CWebConst.DATABEAN_SET_VALUE, hddCapaCd);

				// eo光テレビコース変更申込(FUW01501SF) サービス契約番号
				bsList.sendMessageString(FUW01501SFConst.KK0341_SVC_KEI_NO_07, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

				// 契約情報リスト サービス契約内訳番号
				String svcKeiUcwkNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0341_SVC_KEI_UCWK_NO_07, X31CWebConst.DATABEAN_SET_VALUE, svcKeiUcwkNo);

				// eo光テレビコース変更申込(FUW01501SF) サービス契約回線内訳番号
				String svcKaisenUcwkNo = serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0341_SVC_KEI_KAISEN_UCWK_NO_07, X31CWebConst.DATABEAN_SET_VALUE, svcKaisenUcwkNo);

				// eo光テレビコース変更申込(FUW01501SF) SYSID
				String sysid = serviceInfoBean.sendMessageString(FUW01501SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE);
				bsList.sendMessageString(FUW01501SFConst.KK0341_SYSID_07, X31CWebConst.DATABEAN_SET_VALUE, sysid);

				// eo光テレビコース変更申込(FUW01501SF) 請求契約番号
				bsList.sendMessageString(FUW01501SFConst.KK0341_SEIKY_KEI_NO_07, X31CWebConst.DATABEAN_SET_VALUE, seikyKeiNo);
			}

		}
		else if (PCRS_TYPE00.equals(pcrsType) && PCRS12.equals(chgPcrsCd))
		{
			// ////////////////////////////////////////////////////////////////////
			// 旧コース→新コース
			// ////////////////////////////////////////////////////////////////////
			DEBUG_LOG.info("----- ■登録サービス（FUSV0127）呼出用パラメータ設定　旧コース→新コース -----");

			// ＢＳパススルー申込有無
			String bsptMskmFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			if (BSPT_MSKM_FLG_1.equals(bsptMskmFlg))
			{
				// BSパススルー申込有無
				serviceInfoBean.sendMessageString(FUW01501SFConst.CC_BSPT_ADD_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
			}

			// コース変更＆STB変更有無
			serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_STB_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
			// コース変更有無
			serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_0);
			// メールコード
			serviceInfoBean.sendMessageString(FUW01501SFConst.MAIL_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.MAIL_CD_TV_COURSE_CHG_2);
			// コース変更用リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_PCRS_CNG);
			// ＳＴＢ追加用リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_STB_ADD);
			// サービスフォームBeanより契約情報リスト取得
			X31SDataBeanAccessArray ccKeiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
			X31SDataBeanAccess psList = null;
			// 視聴制御ＣＣ用カウント
			int ctCnt = 0;
			for (int cnt = 0; cnt < mskmStbCnt; cnt++)
			{
				// 契約情報リストより1件取得
				X31SDataBeanAccess keiyakuDataBean = ccKeiList.getDataBean(cnt);

				// コース変更＆ＳＴＢ変更用リストのレコード作成
				psList =
						JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_PCRS_STB_CNG + JFUWebCommon.SEP_N_LAST,
								cnt);

				// 契約情報リスト 世代登録年月日時分秒（サービス契約内訳）
				String geneAddDtmPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.GENE_ADD_DTM_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0161_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_SET_VALUE, geneAddDtmPcrs);

				// 契約情報リスト サービス契約内訳番号
				String svcKeiNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0161_SVC_KEI_UCWK_NO_06, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

				// 契約情報リスト 選択コースコード
				String pcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0161_PCRS_CD_06, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);

				// 契約情報リスト 選択プランコード
				String pplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0161_PPLAN_CD_06, X31CWebConst.DATABEAN_SET_VALUE, pplanCd);

				// 契約情報リスト 契約中機器コースコード
				String keiKikiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.PRV_PCRS_CD_06, X31CWebConst.DATABEAN_SET_VALUE, keiKikiPcrsCd);

				// 契約情報リスト 選択機器コースコード
				String kikiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				if (SPACE.equals(kikiPcrsCd))
				{
					psList.sendMessageString(FUW01501SFConst.BAC_PCRS_CD_06, X31CWebConst.DATABEAN_SET_VALUE, keiKikiPcrsCd);
				}
				else
				{
					psList.sendMessageString(FUW01501SFConst.BAC_PCRS_CD_06, X31CWebConst.DATABEAN_SET_VALUE, kikiPcrsCd);
				}

				// 契約情報リスト 世代登録年月日時分秒（機器提供サービス契約）
				String geneAddDtmKiki = keiyakuDataBean.sendMessageString(FUW01501SFConst.GENE_ADD_DTM_KIKI_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0341_GENE_ADD_DTM_06, X31CWebConst.DATABEAN_SET_VALUE, geneAddDtmKiki);

				// 契約情報リスト 世代登録年月日時分秒（機器提供サービス契約ＢＣＡＳ）
				String geneAddDtmKikiBcas =
						keiyakuDataBean.sendMessageString(FUW01501SFConst.GENE_ADD_DTM_KIKI_BCAS_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0341_GENE_ADD_DTM_BCAS_06, X31CWebConst.DATABEAN_SET_VALUE, geneAddDtmKikiBcas);

				// 契約情報リスト 世代登録年月日時分秒（機器提供サービス契約ＣＣＡＳ）
				String geneAddDtmKikiCcas =
						keiyakuDataBean.sendMessageString(FUW01501SFConst.GENE_ADD_DTM_KIKI_CCAS_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0341_GENE_ADD_DTM_CCAS_06, X31CWebConst.DATABEAN_SET_VALUE, geneAddDtmKikiCcas);

				// 契約情報リスト 機器提供サービス契約番号
				String kktkSvcKeiNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KKTK_SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0341_KKTK_SVC_KEI_NO_06, X31CWebConst.DATABEAN_SET_VALUE, kktkSvcKeiNo);

				// 契約情報リスト 機器提供サービス契約番号（B_CAS）
				String kktkSvcKeiNoBcas = keiyakuDataBean.sendMessageString(FUW01501SFConst.KKTK_SVC_KEI_NO_BCAS_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0341_KKTK_SVC_KEI_NO_BCAS_06, X31CWebConst.DATABEAN_SET_VALUE, kktkSvcKeiNoBcas);

				// 契約情報リスト 機器提供サービス契約番号（C_CAS）
				String kktkSvcKeiNoCcas = keiyakuDataBean.sendMessageString(FUW01501SFConst.KKTK_SVC_KEI_NO_CCAS_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0341_KKTK_SVC_KEI_NO_CCAS_06, X31CWebConst.DATABEAN_SET_VALUE, kktkSvcKeiNoCcas);

				// 契約情報リスト 選択機器コースコード
				psList.sendMessageString(FUW01501SFConst.KK0341_PCRS_CD_06, X31CWebConst.DATABEAN_SET_VALUE, kikiPcrsCd);

				// 契約情報リスト 選択機器プランコード
				String kikiPplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				psList.sendMessageString(FUW01501SFConst.KK0341_PPLAN_CD_06, X31CWebConst.DATABEAN_SET_VALUE, kikiPplanCd);

				// 契約情報リスト 内訳契約状態
				String ucwkStatus = keiyakuDataBean.sendMessageString(FUW01501SFConst.UCWK_STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);

				// サービス契約内訳予約中レコードがNULL以外の場合、コース変更不可
				if (UCWK_STATUS_1.equals(ucwkStatus))
				{
					// サービス契約が予約中のためエラー
					DEBUG_LOG.info("----- FUW01501_setFUSV0127Parameter() サービス契約内訳予約中エラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
				}

				if (ctFlg)
				{
					// 月末2日以内の場合
					// 契約情報リスト 宅内機器型式コードＳＴＢ
					String taknkikiModelCdStb = keiyakuDataBean.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_STB_01, X31CWebConst.DATABEAN_GET_VALUE);
					// 契約情報リスト 機器製造番号ＳＴＢ
					String kikiSeizoNoStb = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_STB_01, X31CWebConst.DATABEAN_GET_VALUE);
					// 契約情報リスト 機器製造番号ＢＣＡＳ
					String kikiSeizoNoBcas =
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_BCAS_01, X31CWebConst.DATABEAN_GET_VALUE);
					// 機器製造番号ＣＣＡＳ
					String kikiSeizoNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_01, X31CWebConst.DATABEAN_GET_VALUE);

					// 契約情報リスト 契約中コースコード
					String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

					// 契約状態
					String status = keiyakuDataBean.sendMessageString(FUW01501SFConst.STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);
					if (!STATUS_2.equals(status) && !keiPcrsCd.equals(pcrsCd))
					{
						// 追加予約中のSTB以外の場合 かつ　選択コースコードが契約中コースコードと等しくない時
						// 視聴制御ＣＣ呼び出し有無＿ＣＣ用
						serviceInfoBean.sendMessageString(FUW01501SFConst.CC_WCTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
						if (ctCnt == 0)
						{
							// 視聴１ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴１宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴１機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴１視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴１サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴１Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴１機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);

						}
						else if (ctCnt == 1)
						{
							// 視聴２ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴２宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴２機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴２視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴２サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴２Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴２機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						else if (ctCnt == 2)
						{
							// 視聴３ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴３宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴３機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴３視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴３サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴３Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴３機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						else if (ctCnt == 3)
						{
							// 視聴４ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴４宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴４機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴４視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴４サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴４Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴４機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						else if (ctCnt == 4)
						{
							// 視聴５ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴５宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴５機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴５視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴５サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴５Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴５機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						ctCnt += 1;
					}
				}
			}

			// 登録(変更＆追加)情報の設定
			setMskmStbInfo(serviceInfoBean);
		}
		else if (chgPcrsNashi)
		{
			// ////////////////////////////////////////////////////////////////////
			// 旧コース→旧コース
			// 新コース→新コース
			// 新コース(スマート)→新コース(スマート)
			// ////////////////////////////////////////////////////////////////////
			DEBUG_LOG.info("----- ■登録サービス（FUSV0127）呼出用パラメータ設定　同コース間変更 -----");

			// ＢＳパススルー申込有無
			String bsptMskmFlg = serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			if (BSPT_MSKM_FLG_1.equals(bsptMskmFlg))
			{
				// BSパススルー申込有無
				serviceInfoBean.sendMessageString(FUW01501SFConst.CC_BSPT_ADD_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
			}

			// コース変更有無
			serviceInfoBean.sendMessageString(FUW01501SFConst.CC_PCRS_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
			// コース変更＆ＳＴＢ変更用リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_PCRS_STB_CNG);
			// ＳＴＢ追加用リスト
			JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_STB_ADD);
			// サービスフォームBeanより契約情報リスト取得
			X31SDataBeanAccessArray ccKeiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
			X31SDataBeanAccess chList = null;
			// 視聴制御ＣＣ用カウント
			int ctCnt = 0;

			for (int cnt = 0; cnt < mskmStbCnt; cnt++)
			{
				// 契約情報リストより1件取得
				X31SDataBeanAccess keiyakuDataBean = ccKeiList.getDataBean(cnt);

				// コース変更＆ＳＴＢ変更用リストのレコード作成
				chList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_PCRS_CNG + JFUWebCommon.SEP_N_LAST, cnt);

				// 契約情報リスト 内訳契約状態
				String ucwkStatus = keiyakuDataBean.sendMessageString(FUW01501SFConst.UCWK_STATUS_01, X31CWebConst.DATABEAN_GET_VALUE);

				// 契約情報リスト サービス契約内訳番号
				String svcKeiNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
				chList.sendMessageString(FUW01501SFConst.KK0161_SVC_KEI_UCWK_NO_05, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);

				// 契約情報リスト 世代登録年月日時分秒（サービス契約内訳）
				String geneAddDtmPcrs = keiyakuDataBean.sendMessageString(FUW01501SFConst.GENE_ADD_DTM_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);
				chList.sendMessageString(FUW01501SFConst.KK0161_GENE_ADD_DTM_05, X31CWebConst.DATABEAN_SET_VALUE, geneAddDtmPcrs);

				// 契約情報リスト 契約中コースコード
				String keiPcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				chList.sendMessageString(FUW01501SFConst.PRV_PCRS_CD_05, X31CWebConst.DATABEAN_SET_VALUE, keiPcrsCd);

				// 契約情報リスト 契約中プランコード
				String keiPplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				chList.sendMessageString(FUW01501SFConst.PRV_PPLAN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, keiPplanCd);

				// 契約情報リスト 選択コースコード
				String pcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				chList.sendMessageString(FUW01501SFConst.BAC_PCRS_CD_05, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);

				// 契約情報リスト 選択プランコード
				String pplanCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PPLAN_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				chList.sendMessageString(FUW01501SFConst.BAC_PPLAN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, pplanCd);

				if (UCWK_STATUS_2.equals(ucwkStatus))
				{
					// 契約情報リスト 契約中コースコード
					chList.sendMessageString(FUW01501SFConst.PRV_PCRS_CD_05, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);
					// 契約情報リスト 契約中プランコード
					chList.sendMessageString(FUW01501SFConst.PRV_PPLAN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, pplanCd);
				}
				else if (UCWK_STATUS_1.equals(ucwkStatus))
				{
					// サービス契約内訳契約中レコード以外の場合、
					// コース変更用リスト 料金プランコード（変更前）と料金プランコード（変更後）を同じにする
					chList.sendMessageString(FUW01501SFConst.BAC_PPLAN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, keiPplanCd);
				}

				// 契約情報リスト 選択コースコード
				chList.sendMessageString(FUW01501SFConst.KK0161_PCRS_CD_05, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);

				// 契約情報リスト 選択プランコード
				chList.sendMessageString(FUW01501SFConst.KK0161_PPLAN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, pplanCd);

				if (keiPcrsCd.equals(pcrsCd))
				{
					// 契約中コースコードと選択コースコードが同一の場合、プラン変更を行わない
					chList.sendMessageString(FUW01501SFConst.BAC_PPLAN_CD_05, X31CWebConst.DATABEAN_SET_VALUE, keiPplanCd);
				}

				if (ctFlg)
				{
					// 月末2日以内の場合
					// 契約情報リスト 宅内機器型式コードＳＴＢ
					String taknkikiModelCdStb = keiyakuDataBean.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_STB_01, X31CWebConst.DATABEAN_GET_VALUE);
					// 契約情報リスト 機器製造番号ＳＴＢ
					String kikiSeizoNoStb = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_STB_01, X31CWebConst.DATABEAN_GET_VALUE);
					// 契約情報リスト 機器製造番号ＢＣＡＳ
					String kikiSeizoNoBcas =
							keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_BCAS_01, X31CWebConst.DATABEAN_GET_VALUE);
					// 機器製造番号ＣＣＡＳ
					String kikiSeizoNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_SEIZO_NO_01, X31CWebConst.DATABEAN_GET_VALUE);

					if (UCWK_STATUS_0.equals(ucwkStatus) && !keiPcrsCd.equals(pcrsCd))
					{
						// 契約中のSTBの場合 かつ　選択コースコードが契約中コースコードと等しくない時
						// 視聴制御ＣＣ呼び出し有無＿ＣＣ用
						serviceInfoBean.sendMessageString(FUW01501SFConst.CC_WCTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
						if (ctCnt == 0)
						{
							// 視聴１ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴１宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴１機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴１視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴１サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴１Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴１機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT1_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);

						}
						else if (ctCnt == 1)
						{
							// 視聴２ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴２宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴２機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴２視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴２サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴２Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴２機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT2_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						else if (ctCnt == 2)
						{
							// 視聴３ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴３宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴３機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴３視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴３サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴３Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴３機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT3_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						else if (ctCnt == 3)
						{
							// 視聴４ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴４宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴４機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴４視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴４サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴４Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴４機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT4_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						else if (ctCnt == 4)
						{
							// 視聴５ＣＣ実行フラグ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_DO_FLG, X31CWebConst.DATABEAN_SET_VALUE, CC_FLG_1);
							// 視聴５宅内機器型式コードＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_TAKNKIKI_MODEL_CD_STB, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelCdStb);
							// 視聴５機器製造番号ＳＴＢ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_KIKI_SEIZO_NO_STB, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoStb);
							// 視聴５視聴制御依頼処理コード「CD00365_25:サービス契約料金プラン変更」
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_WCTRL_REQ_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE,
									JFUStrConst.CD00365_25);
							// 視聴５サービス契約内訳番号
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_SVC_KEI_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
							// 視聴５Ｃ＿ＣＡＳカードＮｏ（機器製造番号ＣＣＡＳ）
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_CCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNo);
							// 視聴５機器製造番号ＢＣＡＳ
							serviceInfoBean.sendMessageString(FUW01501SFConst.CT5_BCAS_CARD_NO, X31CWebConst.DATABEAN_SET_VALUE, kikiSeizoNoBcas);
						}
						ctCnt += 1;
					}
				}

			}

			// 登録(変更＆追加)情報の設定
			setMskmStbInfo(serviceInfoBean);
		}

		// ////////////////////////////////////////////////////////
		// 工事案件(eo光テレビ)受付 情報設定
		// ////////////////////////////////////////////////////////
		setKojiAnkenInfo(serviceInfoBean);

	}

	/**
	 * 登録サービス（FUSV0223）呼出用パラメータ設定<br>
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception		すべての例外
	 */
	private void setFUSV0223Parameter(X31SDataBeanAccess serviceInfoBean) throws Exception
	{

		// ----------------------------------------------
		// 判定条件を取得
		// ----------------------------------------------
		// コース種別取得
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		// 契約台数取得
		int keiStbCnt = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST).getCount();

		// ****************************************************************************************************
		// * ＣＣ用データ作成
		// *****************************************************************************************************

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray ccKeList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
		X31SDataBeanAccess ucwkPcrsList = null;

		for (int cnt = 0; cnt < keiStbCnt; cnt++)
		{
			// 契約情報リストより1件取得
			X31SDataBeanAccess keiyakuDataBean = ccKeList.getDataBean(cnt);

			// 内訳料金コースコードリストのレコード作成
			ucwkPcrsList =
					JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.CCLIST_UCWK_PCRS_CD + JFUWebCommon.SEP_N_LAST, cnt);

			// 契約情報リスト サービス契約内訳番号
			String svcKeiUcwkNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
			ucwkPcrsList.sendMessageString(FUW01501SFConst.SVC_KEI_UCWK_NO_23, X31CWebConst.DATABEAN_SET_VALUE, svcKeiUcwkNo);

			if (PCRS_TYPE02.equals(pcrsType))
			{
				// eo光テレビコース変更申込(FUW01501SF) 親契約識別コード
				serviceInfoBean.sendMessageString(FUW01501SFConst.SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00804_01);
				// eo光テレビコース変更申込(FUW01501SF) 料金コースコード
				String keiPcrsNo = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
				ucwkPcrsList.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, keiPcrsNo);
			}
			else
			{
				// eo光テレビコース変更申込(FUW01501SF) 親契約識別コード
				serviceInfoBean.sendMessageString(FUW01501SFConst.SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00804_03);
				// 契約情報リスト 契約中コースコード
				String keiPcrsNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				ucwkPcrsList.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, keiPcrsNo);
			}
			// 契約情報リスト 選択コースコード
			String pcrsCd = keiyakuDataBean.sendMessageString(FUW01501SFConst.PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			if (JFUStrConst.EMPTY.equals(pcrsCd))
			{
				// コース選択が未設定の場合は、契約中コースを設定
				String keiPcrsNo = keiyakuDataBean.sendMessageString(FUW01501SFConst.KEI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				ucwkPcrsList.sendMessageString(FUW01501SFConst.PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, keiPcrsNo);
			}
			else
			{
				ucwkPcrsList.sendMessageString(FUW01501SFConst.PCRS_CD_23, X31CWebConst.DATABEAN_SET_VALUE, pcrsCd);
			}
		}
	}

	/**
	 * コース選択判定
	 * スタンダードコースまたはプレミアムコースか確認<br>
	 * @param keiCngPcrs	コース選択
	 * @param keiKeiPcrs	契約中コースコード
	 * @return	判定結果
	 * @throws Exception	すべての例外
	 */
	private boolean isJdgKeiCngPcrs(String keiCngPcrs, String keiKeiPcrs) throws Exception
	{
		boolean isJdg = false;

		// コース選択が設定されておらず、契約中コースが「スタンダード」または「プレミアムＨＤ」または「スマートプレミアム」の場合
		if (SPACE.equals(keiCngPcrs) && (PCRS00.equals(keiKeiPcrs) || PCRS04.equals(keiKeiPcrs) || PCRS10.equals(keiKeiPcrs)))
		{
			isJdg = true;
		}

		// またはコース選択が「スタンダード」または「プレミアムＨＤ」または「スマートプレミアム」の場合
		else if ((PCRS00.equals(keiCngPcrs) || PCRS04.equals(keiCngPcrs) || PCRS10.equals(keiCngPcrs)))
		{
			isJdg = true;
		}

		return isJdg;
	}

	/**
	 * コース選択判定2
	 * バリューコースまたはベーシックコースか確認<br>
	 * @param keiCngPcrs	コース選択
	 * @param keiKeiPcrs	契約中コースコード
	 * @return	判定結果
	 * @throws Exception	すべての例外
	 */
	private boolean isJdgKeiCngPcrs2(String keiCngPcrs, String keiKeiPcrs) throws Exception
	{
		boolean isJdg = false;

		// コース選択が設定されておらず、契約中コースが「バリュー」または「ベーシックＨＤ」または「スマートベーシック」の場合
		if (SPACE.equals(keiCngPcrs) && (PCRS01.equals(keiKeiPcrs) || PCRS03.equals(keiKeiPcrs) || PCRS09.equals(keiKeiPcrs)))
		{
			isJdg = true;
		}

		// またはコース選択が「バリュー」または「ベーシックＨＤ」または「スマートベーシック」の場合
		else if ((PCRS01.equals(keiCngPcrs) || PCRS03.equals(keiCngPcrs) || PCRS09.equals(keiCngPcrs)))
		{
			isJdg = true;
		}

		return isJdg;
	}

	/**
	 * 料金コースコードに紐づくコース選択を取得します
	 * <br>
	 * @param pcrsCd 料金コースコード
	 * @return コース選択
	 */
	private String getChgPcrs(String pcrsCd)
	{
		for (int i = 0; i < PCRS_CNG_LIST.length; i++)
		{
			if (PCRS_CNG_LIST[i].equals(pcrsCd))
			{
				return Integer.toString(i);
			}
		}
		return JFUStrConst.EMPTY;
	}

	/**
	 * 次月開始オプションチャンネル有無チェック
	 * <br>
	 * @param serviceInfoBean サービスフォームBean
	 * @return True：保有STBのいずれかに、次月開始オプションチャンネル有 False:保有STB全てに次月開始オプションチャンネル無
	 */
	private Boolean chkOptionCannel(X31SDataBeanAccess serviceInfoBean)
	{
		X31SDataBeanAccessArray keiList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KEI_LIST);

		for (int i = 0; i < keiList.getCount(); i++)
		{
			X31SDataBeanAccess bean = keiList.getDataBean(i);
			String rsvDtlCd = bean.sendMessageString(FUW01501SFConst.KIKI_RSV_DTL_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

			// 014：次月開始オプション有の場合、Trueを返却
			if (JFUStrConst.CD01167_014.equals(rsvDtlCd))
			{
				return true;
			}
		}

		return false;
	}

	/**
	 * テレビ関連の申し込み可否チェック処理
	 * 
	 * @param serviceFormBean	サービスフォームBean
	 * @return 処理結果
	 * @throws Exception 
	 * */
	@SuppressWarnings("unchecked")
	private void checkTvMskmAvailable(HashMap outputMap) throws Exception
	{
		DEBUG_LOG.info("----- FUW01501 Start checkTvMskmAvailable -----");

		// テレビ関連の申し込み可否チェック処理(申し込めない状態の場合、部品内でthrows)
		JFUWebCommon.checkTvMskmAvailable(this, JFUScreenConst.SCREEN_ID_FUW01501, (HashMap)outputMap.get(SC_TITLE_FUSV012601SC), null);

		DEBUG_LOG.info("----- FUW01501 End checkTvMskmAvailable -----");
	}

	/**
	 * 機器提供サービス契約ステータスチェック
	 * 
	 * @param serviceFormBean	サービスフォームBean
	 * @return 処理結果
	 * @throws Exception 
	 * */
	private boolean enableKktkSvcKeiStat(String kktkSvcKeiStat)
	{
		DEBUG_LOG.info("----- FUW01501 Start enableKktkSvcKeiStat -----");

		// 画面で参照可能な機器提供サービス契約ステータスで無ければ、falseを返却
		if (JFUStrConst.CD00056_910.equals(kktkSvcKeiStat) || JFUStrConst.CD00056_920.equals(kktkSvcKeiStat))
		{
			return false;
		}

		DEBUG_LOG.info("----- FUW01501 End enableKktkSvcKeiStat -----");

		return true;
	}

	/**
	 * 機器機種変更で予約中の場合のチェック(サービス契約単位)
	 * <br>
	 * @param outputMap	
	 */
	@SuppressWarnings("unchecked")
	private void chkKikiMdlChgRsvcv(HashMap outputMap)
	{
		HashMap<String, ArrayList<HashMap>> rsvMap = (HashMap<String, ArrayList<HashMap>>)outputMap.get(CC_TITLE_FUSV012605CC);
		ArrayList<HashMap> rsvList = (ArrayList<HashMap>)rsvMap.get(OUT_IDO_RSV_SVC_KEI_LIST);
		if (rsvList != null && rsvList.size() > 0) {
			// 予約データが存在する場合は、 契約変更手続きエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
		}
	}

	/**
	 * STB用のメール文言を取得する
	 * <br>
	 * @param bean データBean
	 * @return メール文言（STB情報）
	 */
	private String getMailTextStb(X31SDataBeanAccess bean)
	{
		// 申込完了メールの可変文字
		StringBuffer text = new StringBuffer();

		// サービスフォームBeanより契約情報リスト取得
		X31SDataBeanAccessArray keiList = getServiceFormBean().getDataBeanArray(FUW01501SFConst.KEI_LIST);
		// サービスフォームBeanより追加情報リスト取得
		X31SDataBeanAccessArray addList = getServiceFormBean().getDataBeanArray(FUW01501SFConst.ADD_LIST);
		// 追加件数
		int addCnt = Integer.parseInt(bean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE));
		// コース種別
		String pcrsType = bean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3057-00-00 ADD START
		// 変更後料金コース取得
		String cngPcrsCd = bean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3057-00-00 ADD END

// ANK-4592-00-00 ADD START
		// 変更後がCSベーシック、CSプレミアムの場合はCS用のメール文言を取得する
		if (PCRS_CS_LIST.contains(cngPcrsCd))
		{
// ANK-4673-00-00 MOD START
			// 変更元が地デジBSの場合
			if (PCRS_TYPE02.equals(pcrsType))
			{
				return getMailTextCs(bean);
			}
			// 変更元がCSの場合
			else if (PCRS_TYPE04.equals(pcrsType))
			{
				return getMailTextCsToCs(bean);
			}
// ANK-4673-00-00 MOD END
		}
// ANK-4592-00-00 ADD END

		// 最大機器数
		int maxCnt = 0;
		if (PCRS_TYPE02.equals(pcrsType))
		{
			// 地デジBS
			maxCnt = addCnt;
		}
		else if (addCnt > 0)
		{
			// 地デジBS以外で追加機器有り
			maxCnt = keiList.getCount() + addCnt;
		}
		else
		{
			// 地デジBS以外で追加機器無し
			maxCnt = keiList.getCount();
		}

		// メール文言作成
		for (int cnt = 0; cnt < maxCnt; cnt++)
		{
			X31SDataBeanAccess keiyakuDataBean = null;

			if (PCRS_TYPE02.equals(pcrsType))
			{
				// 地デジBS：契約情報リストから情報取得
				keiyakuDataBean =  keiList.getDataBean(cnt);
			}
			else if (cnt < keiList.getCount())
			{
				// 地デジBS以外でループが契約情報リストサイズ内：契約情報リストから情報取得
				keiyakuDataBean =  keiList.getDataBean(cnt);
			}
			else if (addCnt > 0)
			{
				// 地デジBS以外でループが契約情報リストサイズ外：追加情報リストから情報取得
				keiyakuDataBean =  addList.getDataBean(cnt - keiList.getCount());
			}
			else
			{
				// 上記以外
				keiyakuDataBean =  keiList.getDataBean(cnt);
			}

			// 契約情報リストより選択機器コース名取得
			String kikiPrcNm = keiyakuDataBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_01, X31CWebConst.DATABEAN_GET_VALUE);
			// 契約情報リストよりSTB変更取得
			String stbChg = keiyakuDataBean.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_GET_VALUE);

			// STB変更がある場合に可変文字を設定
			if (CHG_STB_1.equals(stbChg))
			{
// ANK-3057-00-00 MOD START
//				text.append(JFUStrConst.SPACE + kikiPrcNm + JFUStrConst.RETURN_CODE);
				text.append(JFUStrConst.SPACE + JFUStrConst.KIGOU_NAKAGURO + kikiPrcNm + JFUStrConst.RETURN_CODE);
// ANK-3057-00-00 MOD END
			}
		}

		DEBUG_LOG.debug("★申込完了メール可変文字：" + text.toString());

		// 可変文字にSTBの接頭辞を設定
		if (text.length() > 0)
		{
// ANK-3057-00-00 MOD START
//			return ML_STB_PREFIX + text.toString() + JFUStrConst.RETURN_CODE;
			if (PCRS_TYPE02.equals(pcrsType) && PCRS12.equals(cngPcrsCd))
			{
				// 地デジBSからの変更
				return ML_STB_PREFIX_CDBS + text.toString();
			}
			else
			{
				// 地デジBSからの変更以外
				return ML_STB_PREFIX_CDBS_OTHER + text.toString();
			}
// ANK-3057-00-00 MOD END
		}

		return JFUStrConst.EMPTY;
	}

// ANK-4592-00-00 ADD START
	/**
	 * CS用のメール文言を取得する
	 * <br>
	 * @param bean データBean
	 * @return メール文言
	 */
	private String getMailTextCs(X31SDataBeanAccess bean)
	{
		// 申込完了メールの可変文字
		StringBuffer text = new StringBuffer();

		// 変更後料金コース取得
		String cngPcrsCd = bean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsNm = "";
		if (PCRS13.equals(cngPcrsCd))
		{
			pcrsNm = COURSE_NM_CS_BAS;
		}
		else if (PCRS14.equals(cngPcrsCd))
		{
			pcrsNm = COURSE_NM_CS_PRE;
		}

		// メール文言作成
		text.append(JFUStrConst.KIGOU_NAKAGURO + pcrsNm + JFUStrConst.RETURN_CODE);

		DEBUG_LOG.debug("★申込完了メール可変文字：" + text.toString());

		// 可変文字に接頭辞を設定
		return ML_PREFIX_CDBS_TOCS + text.toString();
	}
// ANK-4592-00-00 ADD START

// ANK-4673-00-00 ADD START
	/**
	 * CSからCS用のメール文言を取得する
	 * <br>
	 * @param bean データBean
	 * @return メール文言
	 */
	private String getMailTextCsToCs(X31SDataBeanAccess bean)
	{
		// 申込完了メールの可変文字
		StringBuffer text = new StringBuffer();

		// 変更後料金コース取得
		String cngPcrsCd = bean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsNm = "";
		if (PCRS13.equals(cngPcrsCd))
		{
			pcrsNm = COURSE_NM_CS_BAS;
		}
		else if (PCRS14.equals(cngPcrsCd))
		{
			pcrsNm = COURSE_NM_CS_PRE;
		}

		// メール文言作成
		text.append(JFUStrConst.KIGOU_NAKAGURO + pcrsNm + JFUStrConst.RETURN_CODE);

		DEBUG_LOG.debug("★申込完了メール可変文字：" + text.toString());

		// 可変文字に接頭辞を設定
		return ML_PREFIX_CDCS_TOCS + text.toString();
	}
// ANK-4673-00-00 ADD START

	/**
	 * 契約情報追加リスト、機器情報追加リストの設定
	 * <br>
	 * @param serviceInfoBean サービスフォームBean
	 * @param kikiMap 機器情報マップ
	 * @param mansionBknCd マンション物件コード
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void setKeiKikiAddList(X31SDataBeanAccess serviceInfoBean, HashMap kikiMap, String mansionBknCd) throws Exception
	{
		// データタイプBeanの初期化
		serviceInfoBean.getDataBeanArray(FUW01501SFConst.ADD_LIST).clearArray();
		serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST).clearArray();

		// 現在の契約数
		int keiChgCnt = serviceInfoBean.getDataBeanArray(FUW01501SFConst.KIKI_LIST).getCount();

		// 機器リスト（参照用）の取得
		X31SDataBeanAccess kikiSaveInfo = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_SAVE_LIST);

		// STB追加可能数
		int addCnt = 0;
		if (JFUStrConst.CD01228_002.equals(mansionBknCd))
		{
			// メゾンの場合
			addCnt = KIKI_LIST_CNT_MEZON - keiChgCnt;
		}
		else
		{
			// メゾン以外の場合
			addCnt = KIKI_LIST_CNT - keiChgCnt;
		}
		serviceInfoBean.sendMessageString(FUW01501SFConst.STB_ADD_NUM, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(addCnt));

		// ループ：追加可能な契約情報、機器情報リスト件数分
		for (int i = 0; i < addCnt; i++)
		{
			// 契約情報リストを生成
			int keiCfmCnt = (i + 1) + keiChgCnt;

			// 契約登録リスト取得
			X31SDataBeanAccess keiAddInfo
				= JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.ADD_LIST + JFUWebCommon.SEP_N_LAST, i);

			// 契約台数(STB追加欄の「X台目追加」の「X」に使用される)
			keiAddInfo.sendMessageString(FUW01501SFConst.KEI_CNT_01, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(keiCfmCnt));
			// コース選択
			keiAddInfo.sendMessageString(FUW01501SFConst.CHG_PCRS_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			// コース名
			keiAddInfo.sendMessageString(FUW01501SFConst.PCRS_NM_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);
			// 契約状態
			keiAddInfo.sendMessageString(FUW01501SFConst.STATUS_01, X31CWebConst.DATABEAN_SET_VALUE, STATUS_2);
			// 内訳契約状態
			keiAddInfo.sendMessageString(FUW01501SFConst.UCWK_STATUS_01, X31CWebConst.DATABEAN_SET_VALUE, UCWK_STATUS_2);
			// ＳＴＢ変更
			keiAddInfo.sendMessageString(FUW01501SFConst.CHG_STB_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// レコード作成フラグ
			keiAddInfo.sendMessageString(FUW01501SFConst.MAKE_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, "1");
			// 機器選択リスト表示フラグ
			keiAddInfo.sendMessageString(FUW01501SFConst.KIKI_DISP_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, "0"); 

			// 機器情報リストを生成
			X31SDataBeanAccess kikiAddInfo
				= JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW01501SFConst.KIKI_ADD_LIST + JFUWebCommon.SEP_N_LAST, i);

			boolean emptyFlg = false;
			ArrayList kikiList = (ArrayList)kikiMap.get(MAP_KEY_ADD_STB_KIKI_LIST);
			String kikiKensuCnt = serviceInfoBean.sendMessageString(FUW01501SFConst.KIKI_KENSU_CNT, X31CWebConst.DATABEAN_GET_VALUE);

			// ループ：機器リスト格納件数分
			ArrayList tgStbKikiList = new ArrayList();
			HashMap<String, String> chkHddMap = new HashMap<String, String>();
			for (int j = 0; j < Integer.parseInt(kikiKensuCnt); j++)
			{
				String cd = kikiSaveInfo.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				String nm = kikiSaveInfo.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				String pplan = kikiSaveInfo.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				String hddCd = kikiSaveInfo.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				String prc = kikiSaveInfo.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				String glade = kikiSaveInfo.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				String hdd = kikiSaveInfo.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				String tani = kikiSaveInfo.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);
				// 宅内機器型式コード
				String taknikikiModelCd =
						kikiSaveInfo.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, j);

				for (int k = 0; k < kikiList.size(); k++)
				{
					HashMap childMap = (HashMap)kikiList.get(k);
					String stbHddCd = (String)childMap.get(MAP_KEY_HDD_CAPA_CD);
					String disp = (String)childMap.get(MAP_KEY_DSP_JUN);

					if (stbHddCd.equals(hddCd) || (JFUStrConst.EMPTY.equals(hddCd) && !emptyFlg))
					{
						if ((!JFUStrConst.EMPTY.equals(hddCd)) && (JFUWebCommon.isNull(taknikikiModelCd)))
						{
							// プロパティで定義されていない宅内機器型式コードは除外する
							break;
						}
						HashMap tgStbKikiMap = new HashMap();
						tgStbKikiMap.put(MAP_KEY_CD, cd);
						tgStbKikiMap.put(MAP_KEY_NM, nm);
						tgStbKikiMap.put(MAP_KEY_HDDCD, hddCd);
						tgStbKikiMap.put(MAP_KEY_HDD, hdd);
						tgStbKikiMap.put(MAP_KEY_PPLAN, pplan);
						tgStbKikiMap.put(MAP_KEY_PRC, prc);
						tgStbKikiMap.put(MAP_KEY_GLADE, glade);
						tgStbKikiMap.put(MAP_KEY_DISP, disp);	//仮番
						tgStbKikiMap.put(MAP_KEY_TANINM, tani);

						if (JFUStrConst.EMPTY.equals(hddCd) && !emptyFlg)
						{
							// 空(変更なし)の場合は空を設定
							tgStbKikiMap.put(MAP_KEY_TAKNKIKI_MODEL_CD, JFUStrConst.EMPTY);
						}
						else
						{
							// 上記以外は取得値を設定
							tgStbKikiMap.put(MAP_KEY_TAKNKIKI_MODEL_CD, (String)childMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));
						}

						// 空(変更なし)の場合、空フラグをTRUEにし、カウントをマイナスする
						if (JFUStrConst.EMPTY.equals(hddCd))
						{
							emptyFlg = true;
							k--;
							// 表示順を「0」とする
							tgStbKikiMap.put(MAP_KEY_DISP, JFUStrConst.S_ZERO);
						}

						// 対象リストに追加
						tgStbKikiList.add(tgStbKikiMap);

						// 同一HDD容量の情報がマスタに設定されているため、プロパティ設定値を優先する。
						chkHddMap.put(hddCd, (String)childMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));
						///// break;
					}
				}
			}

			// 機器選択リスト並び替え
			Collections.sort(tgStbKikiList, new Comparator()
			{

				/**
				 * 機器選択リスト並び替え
				 * <br>
				 * @param o1 値1
				 * @param o2 値2
				 * @return 比較結果
				 */
				public int compare(Object o1, Object o2)
				{
					HashMap map1 = (HashMap)o1;
					HashMap map2 = (HashMap)o2;
					Integer str1 = Integer.valueOf((String)map1.get(MAP_KEY_DISP));
					Integer str2 = Integer.valueOf((String)map2.get(MAP_KEY_DISP));
					return str1.compareTo(str2);
				}
			});

			// サービスフォーBeanに設定
			for (int k = 0; k < tgStbKikiList.size(); k++)
			{
				HashMap tgStbKikiMap = (HashMap)tgStbKikiList.get(k);

				// 機器リストの設定
				// コースコード
				kikiAddInfo.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_CD)); 

				// 名称
				kikiAddInfo.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						((String)tgStbKikiMap.get(MAP_KEY_NM)).replace(KIKI_COMBO_NOCNG, JFUStrConst.EMPTY));

				// プランコード
				kikiAddInfo.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_PPLAN));
				// 月額料金
				kikiAddInfo.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_PRC));
				// グレード
				kikiAddInfo.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_GLADE));
				// 表示順序
				kikiAddInfo.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_DISP));
				// HDD容量
				kikiAddInfo.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_HDDCD));
				// HDD
				kikiAddInfo.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_HDD));
				// 単価名
				kikiAddInfo.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_TANINM));
				// 宅内機器型式コード
				kikiAddInfo.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));
			}

			// 機器設定数を設定
			kikiAddInfo.sendMessageString(FUW01501SFConst.KIKI_CNT_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(tgStbKikiList.size()));
		}
	}

	/**
	 * 登録情報の設定します。
	 * <br>
	 * @param bean サービスフォームBean
	 * @throws Exception すべての例外
	 */
	private void setMskmStbInfo(X31SDataBeanAccess bean) throws Exception
	{
		// データタイプBeanの初期化
		bean.getDataBeanArray(FUW01501SFConst.CCLIST_STB_MSKM_LIST).clearArray();

		// ＢＳパススルー申込有無
		String bsptMskmFlg = bean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// ＳＴＢ追加変更有無フラグ
		String stbCngUmuFlg = bean.sendMessageString(FUW01501SFConst.STB_CNG_UMU_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 台数選択
		String selDaisu = bean.sendMessageString(FUW01501SFConst.MSKM_STB_CNT, X31CWebConst.DATABEAN_GET_VALUE);
		int daisu = Integer.parseInt(selDaisu);

		// 契約情報取得
		X31SDataBeanAccessArray keiList = bean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
		// 追加リスト
		X31SDataBeanAccessArray addList = bean.getDataBeanArray(FUW01501SFConst.ADD_LIST);

		// 合計台数
		int maxDaisu = 0;
		if (daisu > 0)
		{
			// 追加台数が1台以上の場合
			maxDaisu = keiList.getCount() + daisu;
		}
		else
		{
			// 追加台数が0台の場合
			maxDaisu = keiList.getCount();
		}

		// ループ：契約情報リスト(変更追加)件数分
		int makeCnt = 0;
		for (int i = 0; i < maxDaisu; i++)
		{
			X31SDataBeanAccess stbBean = null;
			if (i < keiList.getCount())
			{
				// 契約情報リストの情報を取得
				stbBean = keiList.getDataBean(i);

				// 選択宅内機器型式コード
				String selKiki = stbBean.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
				// 契約中宅内機器型式コード
				String keiKiki = stbBean.sendMessageString(FUW01501SFConst.KEI_KIKI_PCRS_CD_01, X31CWebConst.DATABEAN_GET_VALUE);

				if (!STB_CNG_UMU_FLG_1.equals(stbCngUmuFlg) && !BSPT_MSKM_FLG_1.equals(bsptMskmFlg)
						&& (JFUWebCommon.isNull(selKiki) || JFUStrConst.CD00002_0.equals(selKiki) || keiKiki.equals(selKiki)))
				{
					// STB追加変更なし、かつ、BSパススルーを申し込まない、かつ、「機器の追加または変更」が無い場合、機器情報を登録しない
					continue;
				}
				if (!JFUWebCommon.isNull(keiKiki) && !JFUWebCommon.isNull(selKiki) && !JFUStrConst.CD00002_0.equals(selKiki)
						&& !keiKiki.equals(selKiki))
				{
					// レコード作成フラグ(変更なので作成フラグは「0」)
					stbBean.sendMessageString(FUW01501SFConst.MAKE_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_0);
				}
			}
			else
			{
				// 追加情報リストの情報を取得
				stbBean = addList.getDataBean((i - keiList.getCount()));
			}

			//コース変更＆ＳＴＢ変更用リストのレコード作成
			X31SDataBeanAccess ccInfo =
					JFUWebCommon.createAndGetDataBeanTypeByPath(bean, FUW01501SFConst.CCLIST_STB_MSKM_LIST + JFUWebCommon.SEP_N_LAST, makeCnt);

			copyValue(stbBean, ccInfo, FUW01501SFConst.SVC_KEI_UCWK_NO_01, FUW01501SFConst.SVC_KEI_UCWK_NO_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.STB_ID_01, FUW01501SFConst.STB_ID_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.UCWK_STATUS_01, FUW01501SFConst.UCWK_STATUS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.STATUS_01, FUW01501SFConst.STATUS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.CHG_STB_01, FUW01501SFConst.CHG_STB_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.MAKE_FLG_01, FUW01501SFConst.MAKE_FLG_26);

			// 変更前情報
			copyValue(stbBean, ccInfo, FUW01501SFConst.KEI_PPLAN_CD_01, FUW01501SFConst.KEI_PPLAN_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KEI_KIKI_PCRS_CD_01, FUW01501SFConst.KEI_KIKI_PCRS_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KEI_KIKI_PPLAN_CD_01, FUW01501SFConst.KEI_KIKI_PPLAN_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KEI_HDD_CAPA_CD_01, FUW01501SFConst.KEI_HDD_CAPA_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_STB_01, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_STB_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_BCAS_01, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_BCAS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_CCAS_01, FUW01501SFConst.KEI_TAKNKIKI_MODEL_CD_CCAS_26);

			// 機器製造番号
			copyValue(stbBean, ccInfo, FUW01501SFConst.KIKI_SEIZO_NO_STB_01, FUW01501SFConst.KEI_KKSEIZO_NO_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KIKI_SEIZO_NO_BCAS_01, FUW01501SFConst.KEI_KKSEIZO_NO_BCAS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KIKI_SEIZO_NO_CCAS_01, FUW01501SFConst.KEI_KKSEIZO_NO_CCAS_26);

			// 変更後情報
			copyValue(stbBean, ccInfo, FUW01501SFConst.PCRS_CD_01, FUW01501SFConst.PCRS_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.PPLAN_CD_01, FUW01501SFConst.PPLAN_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KIKI_PCRS_CD_01, FUW01501SFConst.KIKI_PCRS_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KIKI_PPLAN_CD_01, FUW01501SFConst.KIKI_PPLAN_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.HDD_CAPA_CD_01, FUW01501SFConst.HDD_CAPA_CD_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.TAKNKIKI_MODEL_CD_01, FUW01501SFConst.TAKNKIKI_MODEL_CD_26);

			// 機器提供サービス契約番号
			copyValue(stbBean, ccInfo, FUW01501SFConst.KKTK_SVC_KEI_NO_01, FUW01501SFConst.KKTK_SVC_KEI_NO_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KKTK_SVC_KEI_NO_BCAS_01, FUW01501SFConst.KKTK_SVC_KEI_NO_BCAS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KKTK_SVC_KEI_NO_CCAS_01, FUW01501SFConst.KKTK_SVC_KEI_NO_CCAS_26);

			// 機器変更番号
			copyValue(stbBean, ccInfo, FUW01501SFConst.KK_CHG_NO_01, FUW01501SFConst.KK_CHG_NO_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KK_CHG_NO_BCAS_01, FUW01501SFConst.KK_CHG_NO_BCAS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.KK_CHG_NO_CCAS_01, FUW01501SFConst.KK_CHG_NO_CCAS_26);

			// 世代登録年月日時分秒
			copyValue(stbBean, ccInfo, FUW01501SFConst.GENE_ADD_DTM_PCRS_01, FUW01501SFConst.GENE_ADD_DTM_PCRS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.GENE_ADD_DTM_KIKI_01, FUW01501SFConst.GENE_ADD_DTM_KIKI_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.GENE_ADD_DTM_KIKI_BCAS_01, FUW01501SFConst.GENE_ADD_DTM_KIKI_BCAS_26);
			copyValue(stbBean, ccInfo, FUW01501SFConst.GENE_ADD_DTM_KIKI_CCAS_01, FUW01501SFConst.GENE_ADD_DTM_KIKI_CCAS_26);

			makeCnt++;
		}
	}

	/**
	 * 定義より有効な申込可能機器の一覧を取得します。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @param bcasMasterList B-CAS不要情報（業務パラメータ、マスタから取得したB-CAS不要機器の情報。データが存在しない場合は空）
	 * @param funcCd 機能コード  "1"：変更選択リスト処理、"1"以外：追加選択リスト処理
	 * @return 機器一覧
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void setKikiInfo(X31SDataBeanAccess bean, List<String> bcasMasterList, int funcCd) throws Exception
	{
		// 定義から取得
		Map<String, String> stbKikiMap = JFUWebCommon.getDispItemsAsMap(PATH_STB_KIKI, QUERY_ATTR_NAME);

		/**  2016/09/12 ANK-2985-00-00 add start */
		// キー数
		int itemNum = STB_KIKI_ITEM_LIST.length;
		/**  2016/09/12 ANK-2985-00-00 add end */

		// 各リスト取得
		X31SDataBeanAccessArray keiList = null;
		X31SDataBeanAccessArray kikiHozonList = null;

		
		if (funcCd == 1)
		{
			// 各情報
			keiList = bean.getDataBeanArray(FUW01501SFConst.KEI_LIST);
			kikiHozonList = bean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_LIST);
			bean.getDataBeanArray(FUW01501SFConst.KIKI_LIST).clearArray();
		}
		else
		{
			// 各追加情報
			keiList = bean.getDataBeanArray(FUW01501SFConst.ADD_LIST);
			kikiHozonList = bean.getDataBeanArray(FUW01501SFConst.HOZON_KIKI_ADD_LIST);
			bean.getDataBeanArray(FUW01501SFConst.KIKI_ADD_LIST).clearArray();
		}

		/**  2016/09/12 ANK-2985-00-00 mod start */
		if (stbKikiMap == null || stbKikiMap.size() == 0 || stbKikiMap.size() % itemNum != 0)
		{
			DEBUG_LOG.info("※申込可能機器一覧取得エラー(FUDispDefinition.xml)※");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		/**  2016/09/12 ANK-2985-00-00 mod end */

		// 変更後コース
		String getPcrsCd = JFUStrConst.EMPTY;
		String cngPcrsCd = bean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);

		if (PCRS07.equals(cngPcrsCd))
		{
			// SDコース
			getPcrsCd = JFUStrConst.CD00134_A38;
		}
		else if (PCRS08.equals(cngPcrsCd))
		{
			// HDコース
			getPcrsCd = JFUStrConst.CD00134_A39;
		}
		else if (PCRS12.equals(cngPcrsCd))
		{
			// 新HDコース(HDコースの為、スマートベーシックをデフォルトで設定)
			getPcrsCd = JFUStrConst.CD00134_A86;
		}

		// オンライン運用日取得
		String opeDate = JFUWebCommon.getOpeDate(this, null);

		/**  2016/09/12 ANK-2985-00-00 mod start */
		// 機器設定数＝定義数÷項目数
		int stbCnt = stbKikiMap.size() / itemNum;
		/**  2016/09/12 ANK-2985-00-00 mod end */

		// 有効機器取得
		HashMap tgKikiMap = new HashMap();
		for (int i = 0; i < stbCnt; i++)
		{
			String keyNum = String.valueOf(i + 1);
			String kikiCd = stbKikiMap.get(STB_KIKI_ITEM_LIST[0] + keyNum);
			String staYmd = stbKikiMap.get(STB_KIKI_ITEM_LIST[1] + keyNum);
			String endYmd = stbKikiMap.get(STB_KIKI_ITEM_LIST[2] + keyNum);
			String tgPcrsCd = stbKikiMap.get(STB_KIKI_ITEM_LIST[3] + keyNum);
			String dspJun = stbKikiMap.get(STB_KIKI_ITEM_LIST[4] + keyNum);
			String kikiPcrsCd = stbKikiMap.get(STB_KIKI_ITEM_LIST[5] + keyNum);

			if (!tgPcrsCd.contains(getPcrsCd))
			{
				// 対象料金コースでない場合、対象外
				continue;
			}
			if (!(Integer.parseInt(staYmd) <= Integer.parseInt(opeDate) && Integer.parseInt(endYmd) >= Integer.parseInt(opeDate)))
			{
				// 有効期間でない場合、対象外
				continue;
			}

			// 有効機器情報を設定(宅内機器型式コード,機器の料金コースコード)
			String key = kikiCd + JFUStrConst.COMMA + kikiPcrsCd;
			tgKikiMap.put(key, dspJun);
		}

		// 機器情報を選別
		ArrayList allStbList = new ArrayList();
		for (int j = 0; j < kikiHozonList.getCount(); j++)
		{
			X31SDataBeanAccess subBean = kikiHozonList.getDataBean(j);

			// 機器設定数を取得
			int kikiSetCnt = Integer.parseInt(subBean.sendMessageString(FUW01501SFConst.KIKI_CNT_02, X31CWebConst.DATABEAN_GET_VALUE));

			ArrayList tgStbKikiList = new ArrayList();
			for (int i = 0; i < kikiSetCnt; i++)
			{
				// 料金コース．料金コースコード
				String val1 = subBean.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金コース．料金コース名
				String val2 = subBean.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金コース．機器リスト ＨＤＤ容量
				String val3 = subBean.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金コース．機器リスト ＨＤＤ容量コード
				String val4 = subBean.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金プラン固定単価．料金プランコード
				String val5 = subBean.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金プラン固定単価．料金プラン固定金額
				String val6 = subBean.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金コース．料金コースグレード順位
				String val7 = subBean.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金コース．表示順序
				//String val8 = subBean.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 料金プラン固定単価．料金プラン単位名
				String val9 = subBean.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 宅内機器型式コード
				String val10 = subBean.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i);

				String checkKey = val10 + JFUStrConst.COMMA + val1;
				if (!JFUWebCommon.isNull(val10) && tgKikiMap.containsKey(checkKey))
				{
					HashMap tgStbKikiMap = new HashMap();
					tgStbKikiMap.put(MAP_KEY_CD, val1);
					tgStbKikiMap.put(MAP_KEY_NM, val2);
					tgStbKikiMap.put(MAP_KEY_HDD, val3);
					tgStbKikiMap.put(MAP_KEY_HDDCD, val4);
					tgStbKikiMap.put(MAP_KEY_PPLAN, val5);
					tgStbKikiMap.put(MAP_KEY_PRC, val6);
					tgStbKikiMap.put(MAP_KEY_GLADE, val7);
					tgStbKikiMap.put(MAP_KEY_DISP, (String)tgKikiMap.get(checkKey));
					tgStbKikiMap.put(MAP_KEY_TANINM, val9);
					tgStbKikiMap.put(MAP_KEY_TAKNKIKI_MODEL_CD, val10);
					tgStbKikiList.add(tgStbKikiMap);
				}
			}

			// 機器選択リスト並び替え
			Collections.sort(tgStbKikiList, new Comparator()
			{

				/**
				 * 機器選択リスト並び替え
				 * <br>
				 * @param o1 値1
				 * @param o2 値2
				 * @return 比較結果
				 */
				public int compare(Object o1, Object o2)
				{
					HashMap map1 = (HashMap)o1;
					HashMap map2 = (HashMap)o2;
					Integer str1 = Integer.valueOf((String)map1.get(MAP_KEY_DISP));
					Integer str2 = Integer.valueOf((String)map2.get(MAP_KEY_DISP));
					return str1.compareTo(str2);
				}
			});

			// 全STBリストに格納
			allStbList.add(tgStbKikiList);
		}

		// データBeanに設定
		for (int i = 0; i < kikiHozonList.getCount(); i++)
		{
			X31SDataBeanAccess kikiList = null;
			X31SDataBeanAccess keiListSub = keiList.getDataBean(i);

			if (funcCd == 1)
			{
				// 機器情報
				kikiList = JFUWebCommon.createAndGetDataBeanTypeByPath(bean, FUW01501SFConst.KIKI_LIST + JFUWebCommon.SEP_N_LAST, i);
			}
			else
			{
				// 追加機器情報
				kikiList = JFUWebCommon.createAndGetDataBeanTypeByPath(bean, FUW01501SFConst.KIKI_ADD_LIST + JFUWebCommon.SEP_N_LAST, i);
			}

			// 機器情報を設定
			ArrayList tgStbKikiList = (ArrayList)allStbList.get(i);
			for (int j = 0; j < tgStbKikiList.size(); j++)
			{
				HashMap tgStbKikiMap = (HashMap)tgStbKikiList.get(j);

				if (j == 0)
				{
					// 選択リストの1番目は空情報を設定
					// 料金コース．料金コースコード
					kikiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金コース．料金コース名
					kikiList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金コース．機器リスト ＨＤＤ容量
					kikiList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金コース．機器リスト ＨＤＤ容量コード
					kikiList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金プラン固定単価．料金プランコード
					kikiList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金プラン固定単価．料金プラン固定金額
					kikiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金コース．料金コースグレード順位
					kikiList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金コース．表示順序
					kikiList.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 料金プラン固定単価．料金プラン単位名
					kikiList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
					// 宅内機器型式コード
					kikiList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
				}

				// 料金コース．料金コースコード
				kikiList.sendMessageString(FUW01501SFConst.CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_CD));
				// 料金コース．料金コース名
				kikiList.sendMessageString(FUW01501SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_NM));
				// 料金コース．機器リスト ＨＤＤ容量
				kikiList.sendMessageString(FUW01501SFConst.HDD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_HDD));
				// 料金コース．機器リスト ＨＤＤ容量コード
				kikiList.sendMessageString(FUW01501SFConst.HDD_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_HDDCD));
				// 料金プラン固定単価．料金プランコード
				kikiList.sendMessageString(FUW01501SFConst.PPLAN_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_PPLAN));
				// 料金プラン固定単価．料金プラン固定金額
				kikiList.sendMessageString(FUW01501SFConst.PRC_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_PRC));
				// 料金コース．料金コースグレード順位
				kikiList.sendMessageString(FUW01501SFConst.GLADE_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_GLADE));
				// 料金コース．表示順序
				kikiList.sendMessageString(FUW01501SFConst.DISP_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_DISP));
				// 料金プラン固定単価．料金プラン単位名
				kikiList.sendMessageString(FUW01501SFConst.TANI_NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, (String)tgStbKikiMap.get(MAP_KEY_TANINM));
				// 宅内機器型式コード
				kikiList.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE,
						(String)tgStbKikiMap.get(MAP_KEY_TAKNKIKI_MODEL_CD));
			}

			// 変更しない表示フラグ：「表示」を設定
			kikiList.sendMessageString(FUW01501SFConst.DSP_NO_CHG_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00003_1);

			// 機器表示フラグを更新
			if (tgStbKikiList != null && tgStbKikiList.size() > 0)
			{
				// 表示
				keiListSub.sendMessageString(FUW01501SFConst.KIKI_DISP_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, KIKI_DISP_FLG_0);
				bean.sendMessageString(FUW01501SFConst.STB_CNG_FLG, X31CWebConst.DATABEAN_SET_VALUE, STB_CNG_FLG_1);
			}
			else
			{
				// 非表示
				keiListSub.sendMessageString(FUW01501SFConst.KIKI_DISP_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, KIKI_DISP_FLG_1);
			}
		}
	}

	/**
	 * コピー元DataBean項目をコピー先DataBeanへコピーします
	 * <br>
	 * @param srcBean コピー元DataBean
	 * @param destBean コピー先DataBean
	 * @param srcName コピー元項目名
	 * @param destName コピー先項目名
	 */
	private void copyValue(X31SDataBeanAccess srcBean, X31SDataBeanAccess destBean, String srcName, String destName)
	{
		// 値取得
		String value = srcBean.sendMessageString(srcName, X31CWebConst.DATABEAN_GET_VALUE);
		// データBeanに設定
		destBean.sendMessageString(destName, X31CWebConst.DATABEAN_SET_VALUE, value);
	}


	/**  2016/09/12 ANK-2985-00-00 add start */

	/**
	 * 機器料金コードが持つ契約内容通知書用フラグを取得します。
	 * 
	 * <br>
	 * @param serviceInfoBean サービスフォームBean
	 * @return 契約内容通知書マッピング可否
	 * @throws Exception 
	 */
	private boolean getKikipcrsKnytcsflg(X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		// ■定義から機器情報取得
		Map<String, String> stbKikiMap = null;

		stbKikiMap = JFUWebCommon.getDispItemsAsMap(PATH_STB_KIKI, QUERY_ATTR_NAME);

		// キー数
		int itemNum = STB_KIKI_ITEM_LIST.length;

		if (stbKikiMap == null || stbKikiMap.size() == 0 || stbKikiMap.size() % itemNum != 0)
		{
			DEBUG_LOG.info("※契約内容通知書用フラグ取得エラー(FUDispDefinition.xml)※");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// コース種別取得
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);

		X31SDataBeanAccessArray stbMskmList = null;
		if (PCRS_TYPE02.equals(pcrsType))
		{
			// ＳＴＢ申込情報登録用リスト
			stbMskmList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.CCLIST_STB_ADD);
		}
		else
		{
			// ＳＴＢ申込情報登録用リスト
			stbMskmList = serviceInfoBean.getDataBeanArray(FUW01501SFConst.CCLIST_STB_MSKM_LIST);
		}

		// ループ数
		int loopNum = stbKikiMap.size() / itemNum;

		// ＳＴＢ申込情報登録用リスト分処理
		for (int j = 0; j < stbMskmList.getCount(); j++)
		{

			X31SDataBeanAccess stbMskmInfo = stbMskmList.getDataBean(j);

			String chgStb = "";
			if (PCRS_TYPE02.equals(pcrsType))
			{
				chgStb = STB_CNG_UMU_FLG_1;
			}
			else
			{
				chgStb = (String)stbMskmInfo.sendMessageString(FUW01501SFConst.CHG_STB_26, X31CWebConst.DATABEAN_GET_VALUE);
			}

			// ＳＴＢ申込情報登録用リスト.ＳＴＢ変更="1"：変更有の場合
			if (STB_CNG_UMU_FLG_1.equals(chgStb))
			{
				String trkKikiPcrsCd = "";
				if (PCRS_TYPE02.equals(pcrsType))
				{
					// STB追加用リスト.料金コースコード（機器）取得
					trkKikiPcrsCd = (String)stbMskmInfo.sendMessageString(FUW01501SFConst.KK0341_PCRS_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
				}
				else
				{
					// ＳＴＢ申込情報登録用リスト.変更後機器料金コースコード取得
					trkKikiPcrsCd = (String)stbMskmInfo.sendMessageString(FUW01501SFConst.KIKI_PCRS_CD_26, X31CWebConst.DATABEAN_GET_VALUE);
				}

				for (int i = 0; i < loopNum; i++)
				{
					String keyNum = String.valueOf(i + 1);
					String kikiPcrsCd = stbKikiMap.get(STB_KIKI_ITEM_LIST[5] + keyNum);
					String knytcsFlg = stbKikiMap.get(STB_KIKI_ITEM_LIST[6] + keyNum);

					if (kikiPcrsCd.equals(trkKikiPcrsCd))
					{
						if (KKPCRS_KNYCTS_LIST_FLG_KA.equals(knytcsFlg))
						{
							return true;
						}
					}
				}
			}
		}

		return false;
	}

	/**  2016/09/12 ANK-2985-00-00 add end */

	/**
	 * ＶＯＮＵ4Ｋ−ＳＴＢ登録可否
	 * 
	 * <br>
	 * @param serviceInfoBean サービスフォームBean
	 * @return "1"：4KSTB登録可能、"0"：4KSTB登録不可
	 */
	private String getVOnu4KStbChk(X31SDataBeanAccess serviceInfoBean)
	{

		String ad_form_flg = serviceInfoBean.sendMessageString(FUW01501SFConst.AD_FORM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String key_tk_hoshiki_kei_no = serviceInfoBean.sendMessageString(FUW01501SFConst.TK_HOSHIKI_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);

		String key_taknkiki_model_cd_vonu = serviceInfoBean.sendMessageString(FUW01501SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (JK_FORM_MEZON.equals(ad_form_flg))
		{
			key_tk_hoshiki_kei_no = JFUStrConst.EMPTY;
		}
		else if (JK_FORM_MAN.equals(ad_form_flg))
		{
			key_taknkiki_model_cd_vonu = JFUStrConst.EMPTY;
		}
		String vOnucheck = JFUWebCommon.vOnu4KStbChk(this, key_tk_hoshiki_kei_no, key_taknkiki_model_cd_vonu, false);
		return vOnucheck;
	}

	/**
	 * ＢＣＡＳ不要ＳＴＢフラグを取得
	 * 
	 * <br>
	 * @param bcasMasterList B-CAS不要情報（業務パラメータ、マスタから取得したB-CAS不要機器の情報。データが存在しない場合は空）
	 * @param hdd_capa_cd ＨＤＤ容量コード
	 * @return ＢＣＡＳ不要ＳＴＢフラグ
	 */
	private String getBcasFuyoCd(List<String> bcasMasterList, String hdd_capa_cd)
	{
		String bcasfuyo = BCAS_NEED_STB;
		if (bcasMasterList.contains(hdd_capa_cd))
		{
			bcasfuyo = BCAS_FUYO_STB;
		}
		return bcasfuyo;
	}

	/**
	 * BSパススルー 割引サービスコード取得
	 * 
	 * <br>
	 * @param serviceInfoBean サービスフォームBean
	 * @return BSパススルー 割引サービスコード
	 * @throws Exception 
	 */
	private String getBsptWribSvcCd(X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		String bsptWribSvcCd = JFUStrConst.EMPTY;
		if (isBsptMuryo(serviceInfoBean))
		{
			// 変更後コースが新HDの場合に対象とする。（現状、当画面でBSパススルー申込可能な場合は全て無料）
			bsptWribSvcCd = JFUWebCommon.getBsptWribSvcCd();
		}

		return bsptWribSvcCd;

	}

	/**
	 * BSパススルー 無料判定</br>
	 * ※他条件も考慮する必要あり
	 *   前提条件：ホーム、メゾン、BSパススルー申込可能であること
	 * <br>
	 * @param serviceInfoBean サービスフォームBean
	 * @return true:無料、false:有料 又は BSパススルー申込不可
	 */
	private boolean isBsptMuryo(X31SDataBeanAccess serviceInfoBean)
	{
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		if (PCRS_TYPE02.equals(pcrsType))
		{
			// 契約中コースが地デジの場合は対象外
			return false;
		}
		if (isChangeToNewHd(serviceInfoBean))
		{
			// 新HDコースへ変更する場合
			return true;
		}
		return false;
	}

	/**
	 * BSパススルーの画面表示フラグの再設定
	 * 
	 * ※「BSパススルー申込権限有り」かつ「変更前が地デジ以外」かつ「変更後が新HDコース」の場合、BSパススルー申込可能
	 * 
	 * <br>
	 * @param serviceInfoBean
	 */
	private void setBsptDspFlgCtrl(X31SDataBeanAccess serviceInfoBean)
	{
		String bspassMskmAuth = serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_MSKM_AUTH, X31CWebConst.DATABEAN_GET_VALUE);
		String pcrsType = serviceInfoBean.sendMessageString(FUW01501SFConst.PCRS_TYPE, X31CWebConst.DATABEAN_GET_VALUE);

		if (BSPT_MSKM_AUTH_1.equals(bspassMskmAuth) && (!PCRS_TYPE02.equals(pcrsType)) && isChangeToNewHd(serviceInfoBean))
		{
			// BSパススルー申込可能
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG1);
			// 申し込むボタン初期化
			serviceInfoBean.sendMessageBoolean(FUW01501SFConst.CHKBOX_BSPASS, X31CWebConst.DATABEAN_SET_VALUE, true);
			// BSパススルー申込有無　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_FLG_1);
		}
		else
		{
			// BSパススルー申込不可
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPASS_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPASS_DISP_FLG0);
			// 申し込むボタン初期化
			serviceInfoBean.sendMessageBoolean(FUW01501SFConst.CHKBOX_BSPASS, X31CWebConst.DATABEAN_SET_VALUE, false);
			// BSパススルー申込有無　設定
			serviceInfoBean.sendMessageString(FUW01501SFConst.BSPT_MSKM_FLG, X31CWebConst.DATABEAN_SET_VALUE, BSPT_MSKM_FLG_0);
		}

	}

	/**
	 * 新HDへの変更か判定を行う。
	 * 
	 * <br>
	 * @param serviceInfoBean
	 * @param serviceInfoBean サービスフォームBean
	 * @return true:新HDへの変更、false：その他
	 */
	private boolean isChangeToNewHd(X31SDataBeanAccess serviceInfoBean)
	{
		// 変更後料金コース
		String chgPcrsCd = serviceInfoBean.sendMessageString(FUW01501SFConst.CHG_PCRS_CD, X31CWebConst.DATABEAN_GET_VALUE);
		if (PCRS12.equals(chgPcrsCd))
		{
			// 新HDコースへ変更する場合
			return true;
		}
		return false;
	}

	/**
	 * BSパススルー工事費CP妥当性チェック
	 * @param outputMap アウトマップ
	 * @param serviceInfoBean サービスフォームBean
	 * @param bl ビューロジックのインスタンス
	 * @param fixedText サービスメッセージ
	 * @return 結果マップ
	 */
	@SuppressWarnings("unchecked")
	private void checkBsptWrib(HashMap outputMap, X31SDataBeanAccess serviceInfoBean, X31BWebBusinessLogic bl, String fixedText)
	{
		Map<String, String> cmpMap = JFUWebCommon.getTvBsptWribSvc(bl, outputMap, fixedText);
		if (JFUWebCommon.OUT_PARAM_WRIB_STS_FLG_ERR.equals(cmpMap.get(JFUWebCommon.OUT_PARAM_WRIB_STS_FLG)))
		{
			String sysId = serviceInfoBean.sendMessageString(FUW01501SFConst.SYSID , X31CWebConst.DATABEAN_GET_VALUE);
			String svcKeiNo = serviceInfoBean.sendMessageString(FUW01501SFConst.SVC_KEI_NO , X31CWebConst.DATABEAN_GET_VALUE);
			String wribSvcCd = cmpMap.get(JFUWebCommon.OUT_PARAM_WRIB_SVC_CD);
			String message = "■■■ FUW01501_checkBsptWrib 割引サービスマスタの受付開始年月日時分、受付終了年月日時分が範囲外になっています。（処理を続行します）  ■■■" 
				+ "(SYSID=" + sysId + "、"
				+ "サービス契約番号=" + svcKeiNo + "、"
				+ "割引サービスコード=" + wribSvcCd + ")";
			JSYwebLog.println(JSYwebLog.EXECUTION, getClass(), message, "CS0003I", null, null);
		}
	}

	/**
	 * 運用日付(OPEDATE)の設定です。
	 *
	 * 共通フォームBean.フロント共有情報.フロント運用日付に運用日付(OPEDATE)を設定。
	 *
	 * @param commonInfoBean 共通フォームBean
	 * @param opeDate 運用日付(OPEDATE)
	 */
	private void setFuOpedate(X31SDataBeanAccess commonInfoBean, String opeDate)
	{
		//=====================================================================
		// 運用日付の設定
		//=====================================================================
		// 共通フォームBean.フロント共有情報
		X31SDataBeanAccess frontInfo = commonInfoBean.getDataBeanArray(CommonInfoCFConst.FRONT_COMMON_INFO).getDataBean(0);
		// フロント共有情報.フロント運用日付を設定します。
		frontInfo.sendMessageString(CommonInfoCFConst.FU_OPEDATE_05, X31CWebConst.DATABEAN_SET_VALUE, opeDate);

	}

//ANK-4669-00-00 ADD START
	/**
	 * コメント（時限式）表示判定処理
	 * <br>
	 * @param setCommentList コメント　テキスト格納リスト
	 * @param setCommentSkbtList コメント　識別子格納リスト
	 * @param commentMongonList 時限式コメント格納リスト
	 * @param commentYmdList 時限式コメント表示終了日格納リスト
	 * @return コメント表示終了日付が運用日付を超えていない場合、コメントに文言を追加し返却。
	 * @throws Exception 
	 */
	private void commentEndymd(List<String> setCommentList, List<String> setCommentSkbtList, List<String> commentMongonList, List<String> commentYmdList) throws Exception
	{
		//時限式コメント格納リスト数分繰り返し処理を行う
		for(int i = 0; i < commentMongonList.size(); i++){
			
			//時限式コメントを取得
			String Commentmongon = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, commentMongonList.get(i));
			//時限式コメントがnullでない場合
			if (!JFUWebCommon.isNull(Commentmongon))
			{
				//時限式コメント表示終了日を取得
				String CommentnEndymd = JFUWebCommon.getDispText(JFUScreenConst.SCREEN_ID_FUW01501, commentYmdList.get(i));
				//時限式コメント表示終了日の指定がない(null)もしくは、表示終了日付より運用日付が超過していない場合、コメント　テキストに時限式コメントを追加
				if (JFUWebCommon.isNull(CommentnEndymd) || Integer.parseInt(JFUWebCommon.getOpeDate(this, null)) <= Integer.parseInt(CommentnEndymd))
				{
					setCommentSkbtList.add("commentYmdIdNm" + String.valueOf(i));
					setCommentList.add(Commentmongon);
				}
			}
		}
	}

	/**
	 * 変更申込確認画面にのみ表示する、時限式コメントのリスト格納処理
	 * <br>
	 * @param commentMongonList 時限式コメント格納リスト
	 * @param commentYmdList 時限式コメント表示終了日格納リスト 
	 * @return コメント表示終了日付が運用日付を超えていない場合、コメントに文言を追加し返却。
	 * @throws Exception 
	 */
	private void setCommentListCfmEndymd(List<String> commentMongonList, List<String> commentYmdList) throws Exception
	{
		//=====================================================================
		//時限式表示判定対象のコメント文言とコメント終了日付を設定
		//=====================================================================
		//価格改定のコメントの文言
		commentMongonList.add(KAKAKU_KAITEI_COMMENT);
		//価格改定の表示終了日付
		commentYmdList.add(KAKAKU_KAITEI_COMMENT_ENDYMD);
	}
//ANK-4669-00-00 ADD END

//ANK-4673-00-00 ADD START
	/**
	 * ＣＳコース制御処理<br/>
\	 * 
	 * @param commonInfoBean 
	 * @throws Exception
	 */
	private void checkTvCsCS(X31SDataBeanAccess commonInfoBean) throws Exception
	{
		if (!(JFUWebCommon.isTvCsCschgSptvRnkStatAnyOk(commonInfoBean)))
		{
			// 全ＣＣＡＳのスカパー連携が有効なステータスか判定
			DEBUG_LOG.info("■■■FUW01503 コース変更確認画面：TVCSコース変更状態エラー■■■");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}
	}
//ANK-4673-00-00 ADD START

}