/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：FUW07101SFLogic
*   ソースファイル名：FUW07101SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*    各種通信機器申込画面サービスフォームBeanビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/01/23   FJ）川端    新規作成
*   v3.00       2012/05/14   FJ）谷本    【ANK-0116-00-00】ネット・オプションサービスの事務手数料、および機器返送費用の変更対応
*   v4.00       2012/07/09   FJ）高浜    【ANK-0381-00-00】 ＩＰｖ６無料文言不備 料金表の表示修正　販売の場合の送料を削除
*   v4.00       2012/07/19   FJ）美濃原  販売の送料無料のため、メール文の送料編集を削除（補足：レンタル 送料無料）
*   v4.00       2012/08/31   FJ）中谷    【ANK-0548-00-00】ルータ機器の解約新規対応（約款準拠対応）
*   v4.00       2012/10/16   FJ）西村    【ANK-1223-00-00】 進捗補足事項編集対応
*   v4.00       2012/10/16   FJ）西村    【ANK-1199-00-00】 申込書明細番号の自動発番について
*   v4.00       2012/10/22   FJ）西川    【IT2-2012-0001746】締結時のご契約状態エラー対応ついて
*   v4.00       2012/12/08   FJ) 大島    【IT2-2012-0001999】異動区分は「00026:機器契約変更」を設定するように対応
*   v5.00       2013/01/10   FJ）中谷    【ANK-1338-00-00】無線ギガルータ枯渇対応
*   v5.00       2013/01/17   FJ) 瀧澤    【ST2-2013-0000179】PLCが1台のみでも登録できてしまう現象に対応
*   v5.00       2013/02/25   FJ) 瀧澤    【ST1-2013-0000416】機器の最大契約台数の定義をプロパティファイルから取得する様に修正
*   v5.00       2013/02/27   FJ) 瀧澤    【ST1-2013-0000429】機器提供サービス契約に予約中のデータがある場合のエラー画面を修正、異動理由コードの修正
*   v5.00       2013/02/27   FJ) 井口    【ANK-1399-00-00】フロントＳ文言確認修正対応
*   v5.00       2013/03/04   FJ）中谷    【IT-2013-0000424】メール文言見直し
*   v5.00       2013/04/16   FJ）瀧澤    【OT指摘 No.1182】買取指定時のエラー処理、ルータ・PLC以外指定時のエラー処理追加
*   v5.00       2013/10/25   FJ）中谷    【OM-2013-0003633】メール送信先の不具合対応
*   v7.00       2013/11/25   FJ）谷本    【ANK-1578-00-00】多機能ルーター（機器追加）
*   v7.00       2014/01/18   FJ）谷本    【TAI-2014-0000004】多機能ルーター予約中チェック
*   v8.00       2014/01/27   FJ) 文元    【ANK-1589-00-00】消費増税に伴う料金施策
*   v8.00       2014/05/03   FJ）中谷    【OM-2014-0001761】ルーター文言不具合対応
*   v9.00       2014/05/20   FJ）西山    【ANK-2057-00-00】eo多機能ルーターによる複数通話対応
*   v9.00       2014/06/14   FJ）清水    【ANK-2038-00-00】【ＮＯ．１３８９】多機能ＲＴ対応・コース変更時、引越し時の事務手数料無料化
*   v20.00      2016/01/05   FJ）岡井    【ANK-2612-00-00】10Gコース導入対応
*   v25.00      2016/06/01   FJ）田口    【ANK-2776-00-00】PLC新規受付終了対応
*	v26.00.00	2016/05/31	 FJ) 張本	 【ANK-2687-00-00】プレミアムサポート施策
*   v29.00.00   2017/03/09   FJ) 澤田    【OM-2017-0000098】eo光多機能ルーター保有状態の文言対応
*	v32.00		2017/04/13   FJ) 横山    【ANK-3149-00-00】新セキュリティパック導入
*   v32.00      2017/05/01   FJ) 岡井    【ANK-3149-00-00】新セキュリティパック導入
*   v32.00.01   2017/05/26   FJ) 謝      【ANK-3057-00-00】自動送信メールの文面変更
*   v35.00      2017/12/19	 FJ) 美濃原  【ANK-3303-00-00】【eoプレミアムクラブ】セキュリティパック100円引×1年間
*   v37.00      2018/04/18	 FJ) 張本    【ANK-3345-00-00】BBR申込時自動返信メール文面変更
*   v39.00      2018/09/25   FJ) 大島    【ANK-3421-00-00】【eo顧客S】メール文面の見直し対応
*   v40.00      2018/11/07   FJ）張本    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*   v41.00      2019/01/28   FJ）大島    【ANK-3529-00-00】無線LAN中継機
*   v41.01      2019/04/24   FJ）張本    【ANK-3657-00-00】【10G対応】各種通信機器申込画面への固定文言追加
*   v49.00      2020/03/24   FJ）吉田    【OM-2019-0000912】住所変更中工事取消状態で、フロントから多機能ルーターが契約できる
*   v50.00      2020/06/25   FJ) 大島    【ANK-3825-00-00】メッシュWiFi導入対応
*   v50.00      2020/08/27   FJ) 大島    【ANK-3805-00-00】無線ルーター機能無料マンション対応
*   v52.00      2021/01/22   FJ）張本    【ANK-3987-00-00】Netflix導入対応（STEP2）
*   v53.00      2021/03/26   FJ) 美濃原  【ANK-4009-00-00】CX戦略WG方針対応
*   v54.00      2021/08/13   FJ）美濃原  【ANK-4115-00-00】SMPのプレクラマイページからの遷移仕様変更
*   v60.00      2022/06/20   FJ）美濃原  【ANK-4244-00-00】【eo定期】MT既設賃貸対応
*   v66.0.0     2023/01/31   FJ) 美濃原  【ANK-4307-00-00】【eo定期】プレミアムクラブリニューアル対応
*   v61.00      2023/04/04   FJ) 張本    【ANK-4315-00-00】【eo定期】eoホームゲートウェイ導入対応
*   v61.01      2023/09/29   FJ) 張本    【ANK-4315-17-00】【eoホームゲートウェイ導入対応】フロントの文言＆URL変更
*   v73.00      2024/07/23   FJ) 浅井    【ANK-4427-00-00】NTT卸対応
*   v72.00      2024/11/15   FJ) 福山    【ANK-4591-00-00】ストリーミングメディアプレーヤー最終売り止め対応
*   v74.00      2025/01/29   FJ) 西川    【ANK-4675-00-00】無線LAN中継機在庫枯渇に伴うフロントWeb申込画面での受付停止
*   v73.01      2025/02/14   FJ) 浅井    【ANK-4427-00-00】NTT卸対応
*   v75.00      2025/05/20   FJ）浅井    【ANK-4691-00-00】eo無線LAN中継機の機種変更
**********************************************************************/
package eo.web.webview.FUW07101SF;

import static eo.common.constant.JPCModelConstant.FUNC_CD_1;
import static eo.common.constant.JPCModelConstant.FUNC_CD_2;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
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.X31SWebLog;
import com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JPCUtilCommon;
import eo.common.util.JZMAdOutputEdit;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JFUEoPremiumClubDsp;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0133_FUSV0133OPDBMapper;
import eo.web.webview.mapping.FUSV0134_FUSV0134OPDBMapper;
import eo.web.webview.mapping.FUSV0376_FUSV0376OPDBMapper;

/**
 * 各種通信機器申込画面サービスフォームBeanビューロジック
 * <BR>
 * @author 富士通
 */
@SuppressWarnings( { "serial", "unchecked" })
public class FUW07101SFLogic extends JCCWebBusinessLogic
{

	/** ゼロ */
	private static final String ZERO = "0";

	/** お申し込み台数初期値(1) */
	private static final String MSKM_CNT_INIT_VALUE = "1";

	/** ＯＰＭＳルータ種類 新無線ルータ(11g・100M用)*/
	private static final String OPMS_ROUTER_KIND_CD_4 = JFUStrConst.CD01152_4;
	/** ＯＰＭＳルータ種類 新無線ルータ(11g・100M用)*/
	private static final String OPMS_ROUTER_KIND_CD_5 = JFUStrConst.CD01152_5;
	/** ＯＰＭＳルータ種類 新無線ルータ(11n・ギガ用)*/
	private static final String OPMS_ROUTER_KIND_CD_6 = JFUStrConst.CD01152_6;

	/** 取得クエリ */
	private static final String QUERY_WLR_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='WLR']";
	/** 取得クエリ */
	private static final String QUERY_MESHWIFI_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='MESHWIFI']";
	
	/** [料金情報]プロパティファイル取得クエリ */
	private static final String QUERY_DISPCTL_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='PRC_INFO_TABLE']";
	/** [料金情報]プロパティファイル取得属性名 */
	private static final String QUERY_ATTR_NAME = "id";

	/** 画面表示定義取得キー【料金情報ラベル】【料金情報ラベル】月額料金(レンタル)：タイトル */
	private static final String TITLE_LABEL_0 = "TITLE_LABEL_0";

	/** 画面表示定義取得キー【料金情報ラベル】月額料金(レンタル)：月額料金 */
	private static final String COL_LABEL_0_0 = "COL_LABEL_0_0";

	/** 画面表示定義取得キー【料金情報ラベル】月額料金(販売)：タイトル */
	private static final String TITLE_LABEL_1 = "TITLE_LABEL_1";

	/** 画面表示定義取得キー【料金情報ラベル】月額料金(販売)：本体 */
	private static final String COL_LABEL_1_0 = "COL_LABEL_1_0";

	/** 画面表示定義取得キー【料金情報スタイル】月額料金(レンタル/販売)：タイトル */
	private static final String TITLE_STYLE_0 = "TITLE_STYLE_0";

	/** 画面表示定義取得キー【料金情報スタイル】月額料金(レンタル/販売)：左値・右値(デフォルト値) */
	private static final String COL_STYLE_0 = "COL_STYLE_0";

	/** 「提供方法」:"01"（買取） */
	private static final String TK_WAY_KAITORI = JFUStrConst.CD00212_01;

	/** 「提供方法」:"02"（レンタル） */
	private static final String TK_WAY_RENT = JFUStrConst.CD00212_02;

	/** 「ルータ保持フラグ」:"1"（保持） */
	private static final String ROUTER_HOJI_FLG_HOJI = "1";

	/** 「ルータ保持フラグ」:"0"（非保持） */
	private static final String ROUTER_HOJI_FLG_HIHOJI = "0";

	/** 「契約状態フラグ」:"1"（サービス提供中） */
	private static final String KEISTAT_FLG_1 = "1";

	/** [提供方法]プロパティファイル取得クエリ */
	private static final String QUERY_TK_WAY_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPTEXT[@groupid='TK_WAY']";

	/** 画面表示文言取得キー(提供方法(買取) ) */
	private static final String KEY_TK_WAY_KAITORI = "tk_way_kaitori";

	/** 画面表示文言取得キー(提供方法(レンタル) ) */
	private static final String KEY_TK_WAY_RENT = "tk_way_rent";

	/** [最小機器提供サービス数]プロパティファイル取得クエリ */
	private static final String QUERY_MIN_KKTK_SVC_CNT_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='MIN_KKTK_SVC_CNT']";

	/** [最大機器提供サービス数]プロパティファイル取得クエリ */
	private static final String QUERY_MAX_KKTK_SVC_CNT_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='MAX_KKTK_SVC_CNT']";

	/** [新規契約時の上限数]プロパティファイル取得クエリ */
	private static final String QUERY_MAX_NEWADD_KKTK_SVC_CNT_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='MAX_NEWADD_KKTK_SVC_CNT']";

	/** 申込機器区分:"1"（ルータ） */
	private static final String MSKM_KIKI_DIV_ROUTER = "1";

	/** 申込機器区分:"2"（無線LAN中継器） */
	private static final String MSKM_KIKI_DIV_OTHER = "2";

// ANK-3825-00-00 ADD START
	/** 申込機器区分:"3"（メッシュwifi） */
	private static final String MSKM_KIKI_DIV_MESHWIFI = "3";
// ANK-3825-00-00 ADD START

	/** 申込機器区分:"4"（IP-STB） */
	private static final String MSKM_KIKI_DIV_IPSTB = "4";

	/** 型番号判定文字列:ルータ */
	private static final String MODEL_NO_JDG_CHR_EORT = "*EORT*";

	/** [型番号判定文字列:PLC]プロパティファイル取得クエリ */
	private static final String QUERY_MODEL_NO_PLC_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='MODEL_NO']";

	/** 型番号指定ID:PLC */
	private static final String MODEL_PLC = "PLC";
// ANK-3529-00-00 ADD START
	/** 型番号指定ID:無線LAN中継機 */
	private static final String MODEL_WIRELESS_LAN = "WIRELESS_LAN";
// ANK-3529-00-00 ADD END
// ANK-3825-00-00 ADD START
	/** 型番号指定ID:メッシュwifi */
	private static final String MODEL_MESH_WIFI = "MESH_WIFI";
// ANK-3825-00-00 ADD END

	/** 型番号判定文字列:IP-STB */
	private static final String MODEL_SMP = "IP_STB";

	/** [型番号判定文字列:IP-STB]プロパティファイル取得クエリ */
	private static final String QUERY_MODEL_NO_IPSTB_PATH = "DISPSETTING/SETTING[@screenId='#']/DISPTEXT[@groupid='IPSTB_MODEL_NO']";

	/** サービスID : 各種通信機器申込(初期表示) */
	private static final String SVC_ID_INIT = "FUSV0133";

	/** サービスID : 各種通信機器申込(申し込む) */
	private static final String SVC_ID_MSKM = "FUSV0134";
// ANK-4432-00-00 ADD START
	/** サービスID : 宅内機器型式コード取得 */
	private static final String SVC_ID_TAKNKIKI_MODEL_CODE = "FUSV0376";
// ANK-4432-00-00 ADD END
	/** 合計費用単位（メール用） */
	private static final String GOKEI_HI_TANI = "円";

	/** 月額単位（メール用） */
	private static final String GTGK_HI_TANI = "円/月";

	/** 単位（台） */
	private static final String DAI_TANI = "台";

	/** 単位（セット） */
	private static final String SET_TANI = "セット";

	/** 単位（円） */
	private static final String EN_SET_TANI = "円/セット";

	/** セット品区分:セット商品 */
	private static final String SETHIN_DIV_SET = "1";

	/** セット品区分:個別商品 */
	private static final String SETHIN_DIV_KOBET = "0";

	/** ルーター文言取得タグ属性(各種通信機器) */
	private static final String TAG_ATTR_VALUE_KIKI = "tsushin_kk_mskm";

	/** 各種通信機器申込（初期表示）マップ */
	private static final String SC_TITLE_FUSV013301CC = "FUSV013301CC";

	/** テンプレートID(機器提供サービス契約料金コース変更) */
	private static final String TEMPLATE_ID_SVC_KEI_KKTK_UPD = "EKK0341C160";
	/** テンプレートID(機器提供サービス契約登録) */
	private static final String TEMPLATE_ID_SVC_KEI_KKTK_TRK = "EKK0341D010";

	/** Mapキー：サービス契約一覧照会（各種通信機器情報取得）明細 */
	private static final String MAP_KEY_EKK0341B512CBSMSG1LIST = "EKK0341B512CBSMsg1List";

	/** Mapキー：機器オプションサービス契約一覧照会（フロント） */
	private static final String MAP_KEY_EKK2811B503CBSMSG1LIST = "EKK2811B503CBSMsg1List";

	/** Mapキー：工事案件一覧照会明細 */
	private static final String MAP_KEY_EKU0011B010CBSMsg1LIST = "EKU0011B010CBSMsg1List";

	// OM-2019-0000912 ADD START
	/** Mapキー：住所変更明細一覧照会 */
	private static final String MAP_KEY_EKK2101B001CBSMsg1LIST = "EKK2101B001CBSMsg1List";
	// OM-2019-0000912 ADD END

	/** Mapキー：サービス契約一覧照会（各種通信機器情報取得）明細 */
	private static final String MAP_KEY_EKK0081B520CBSMsg1LIST = "EKK0081B520CBSMsg1List";

	/** Mapキー：宅内機器型式一意照会明細 */
	private static final String MAP_KEY_EZM0411A010CBSMsg1LIST = "tkkiki_mdl_list";

	/** Mapキー：料金プラン一覧照会 */
	private static final String MAP_KEY_EKK0591B003CBSMsg1LIST = "pplan_list";

	/** Mapキー：料金プラン固定単価（オプション申込料金）明細 */
	private static final String MAP_KEY_EKK0601B001CBSMsg1LIST = "pplan_kttanka_list";

	/** Mapキー：料金コース_機器提供サービス一意照会明細 */
	private static final String MAP_KEY_EKK0801A010CBSMsg1LIST = "pcrs_kktksvc_list";

	/** Mapキー：セット品区分 */
	private static final String MAP_SETHN_DIV = "sethn_div";

	/** Mapキー：宅内機器型式名 */
	private static final String MODEL_NM = "taknkiki_model_nm";

	/** Mapキー：契約状態フラグ  */
	private static final String MAP_KEY_STATUS_FLG = "status_flg";

	/** Mapキー：機器提供サービスコード  */
	private static final String MAP_KEY_KKTK_SVC_CD = "kktk_svc_cd";

	/** Mapキー：ルーター速度種別コード  */
	private static final String MAP_ROUTER_SPEED_SBT_CD = "router_speed_sbt_cd";

	/** Mapキー：修理交換グループ種別コード  */
	private static final String MAP_SHURI_KOKAN_GRP_SBT_CD = "shuri_kokan_grp_sbt_cd";
	
	/** アイテム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";

	/** メール明細コード FUD1000057*/
	private static final String MAIL_DTL_CD_FUD1000057 = "FUD1000057";

	/** メール明細コード FUD1000058*/
	private static final String MAIL_DTL_CD_FUD1000058 = "FUD1000058";

	/** 登録機器情報設定フラグ （個別商品・初期設定）*/
	private static final String ADD_KIKI_FLG_KOBET = "1";

	/** 登録機器情報設定フラグ （セット品・初期設定）*/
	private static final String ADD_KIKI_FLG_SET = "2";

	/** 登録機器情報設定フラグ （更新）*/
	private static final String ADD_KIKI_FLG_UPD = "3";

	/** サービスユースケースID：各種通信機器申込(申し込む) */
	private static final String SVC_USECASE_ID_FUSV0134 = "FUSV0134";

	/** プロパティファイル取得文字列（グループID指定）ルーター機能リスト情報 */
	private static final String ROUTER_KINO = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPTEXT[@groupid='ROUTER_KINO']";

	/** 料金プラン固定単価（オプション申込料金）一覧照会.料金プラン固定単価（オプション申込料金）明細 */
	private static final String EKK0601B001_LIST = "EKK0601B001CBSMsg1List";
	/** 料金プラン固定単価（オプション申込料金）一覧照会 */
	private static final String SC_TITLE_FUSV013301 = "FUSV013301SC";
	/** 料金プラン固定金額 */
	private static final String PPLAN_KOTEI_AMNT = "pplan_kotei_amnt";
	/** 料金プラン固定単位コード名 */
	private static final String PPLAN_KOTEI_TANI_CD_NM = "pplan_kotei_tani_cd_nm";

	/** 初期費用一覧照会CC */
	private static final String CC_TITLE_FUSV013301 = "FUSV013301CC";
	/** 初期費用一覧照会CC */
	private static final String CC_TITLE_FUSV013307 = "FUSV013307CC";

// ANK-3057-00-00 MOD START
//	/** メール本文文言（多機能ルーター保有時） */
//	private static final String MAIL_WARD_TAKINOU_DAISU = "<<お申し込みルーター機能≫" + JFUStrConst.RETURN_CODE + JFUStrConst.SPACE + JFUStrConst.SPACE;
//	/** メール本文文言（ＰＣＬ申込 または、多機能ルーター未保有時） */
//	private static final String MAIL_WARD_SONOTA_DAISU = "<<お申し込み台数≫" + JFUStrConst.RETURN_CODE + JFUStrConst.SPACE + JFUStrConst.SPACE;
	/** メール本文文言（多機能ルーター保有時） */
	private static final String MAIL_WARD_TAKINOU_DAISU = JFUStrConst.SPACE + JFUStrConst.SPACE;
	/** メール本文文言（ＰＣＬ申込 または、多機能ルーター未保有時） */
	private static final String MAIL_WARD_SONOTA_DAISU = "■お申し込み台数" + JFUStrConst.RETURN_CODE + JFUStrConst.SPACE + JFUStrConst.SPACE;
// ANK-3057-00-00 MOD END

	/** 料金表(初期費用タイトル 事務手数料) */
	private static final String PRC_INIT_COLUMN_JIMUTE = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@id='JIMUTE']";
	/** 料金表(初期費用タイトル ONU交換工事費) */
	private static final String PRC_INIT_COLUMN_KOJIHI = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@id='KOJIHI']";

	/** 料金コースコード */
	private static final String PCRS_CD = "pcrs_cd";

	/** 宅内機器種別コード */
	private static final String TAKNKIKI_SBT_CD = "taknkiki_sbt_cd";
	
	/** 事務手数料有無マップ */
	private static final String SC_TITLE_FUSV013303CC = "FUSV013303CC";
	
	/** 項目：事務手数料有無 */
	private static final String JMTE_UM = "jmte_um";

	/** ルーター 画面 ルーター機能リスト.選択値 無線 */
	private static final String DSP_ROOTER_MUSEN = "0";

	/** ルーター速度種別コード 10ギガ */
	private static final String ROUTER_SPEED_SBT_CD_30 = "30";
	/** 保有多機能ルータ種別 低速多機能ルータ */
	private static final String OWN_TKN_RT_KIND_0 = "0";

// ANK-3529-00-00 ADD START
	private static final String PRC_INFO_AREA_TITLE_INITIAL = "初期費用";
	/** クラス名 初期費用 */
	private static final String INITIAL_COST = "initial_cost";
	/** 初期費用 スタイルクラス２ */
	private static final String INIT_SYLE_CLASS_SEC = "default_price_area_col01:default_price_area_col02";
// ANK-3529-00-00 ADD END

	/** 無線ルータ無料、無線LAN中継機無料の割引サービスコード */
	private static final String QUERY_MRT_MLAN_MURYO_WRIB_SVC_CD_PATH = "DISPSETTING/SETTING[@screenId='FUW07101']/DISPCTL[@groupid='MRYO_WRIB_SVC_CD']";

	/** 有効な「サービス契約ステータス」(100:サービス提供中、030：締結済、020：照査済) */
	private static final List<String> SVC_KEI_STA_YUKO = Arrays.asList(JFUStrConst.CD00037_100, JFUStrConst.CD00037_030, JFUStrConst.CD00037_020);

	/** 申込可能最大数の判定（新規申込上限数）「サービス契約ステータス」(010：受付済、020：照査済、030：締結済) （注：現状、受付済は当画面での申込不可） */
	private static final List<String> SVC_KEI_STA_NEWADD = Arrays.asList(JFUStrConst.CD00037_010, JFUStrConst.CD00037_020, JFUStrConst.CD00037_030);

	/** ネットのサービス契約ステータス */
	private static final String TEMPDATA_SVC_KEI_STAT = "svc_kei_stat";
	/** 多機能ルーターの機器提供サービス契約ステータス */
	private static final String TEMP_TAKINO_KKTK_SVC_STAT = "kktk_svc_cd";
	/** 多機能ルーターの宅内機器型式コード */
	private static final String TEMP_TAKINO_TAKNKIKI_MODEL_CD = "taknkiki_model_cd";

	/** 無線ルーター無料の工事種別 ：「多機能ルーター（無線ルーター機能）のみ無料」「多機能ルーター（無線ルーター機能）と無線LAN中継機両方無料」 */
	private static final List<String> KOJI_SBT_MUSEN_RT_MURYO = Arrays.asList(JFUStrConst.KOJI_SBT_019, JFUStrConst.KOJI_SBT_020);

	/** あり "1" */
	private static final String FLG_ON = "1";

	/**
	 * 初期処理
	 * <br>
	 * @return	処理結果
	 * @throws Exception	例外
	 */
	public boolean init() throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 初期処理(init) START ★");

		// ****************************************************************************************************
		// *初期設定
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBean宣言
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 当機能でのみ使用するワーク
		HashMap<String, String> tempData = new HashMap<String, String>();

		// ----------------------------------------------
		// 共有フォームBean情報の取得
		// ----------------------------------------------
		setCommonInfoBeanToSvcFormBean(serviceInfoBean, commonInfoBean);

		// ----------------------------------------------
		// サービス呼出処理
		// ----------------------------------------------
		callSvcFUSV0133(serviceInfoBean, commonInfoBean, outputMap);

		// ----------------------------------------------
		// サービスフォームBean設定
		// ----------------------------------------------
		setSvcFormBean(serviceInfoBean, outputMap, tempData);

		// ----------------------------------------------
		// 申込台数リスト設定(コンボボックス用)
		// ----------------------------------------------
		setMskmSbtList(serviceInfoBean, outputMap, tempData);

		// ----------------------------------------------
		// ルーター機能リスト設定(コンボボックス用)
		// ----------------------------------------------
		setRouterKinoList(serviceInfoBean, outputMap);

		// 料金表表示現在日設定処理
		JFUWebCommon.setPrcDspNowDay(this);

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(各種通信機器申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW07101);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW07101);

		X31SWebLog.DEBUG_LOG.debug("★ 初期処理(init) END ★");

		return true;

	}

	/**
	 * サービス呼出処理（FUSV0133_各種通信機器申込(初期表示)）
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commonInfoBean	共有フォームBean
	 * @param outputMap SIFアウトプット
	 * @throws Exception		すべての例外
	 */
	private void callSvcFUSV0133(X31SDataBeanAccess bean, X31SDataBeanAccess commonInfoBean, HashMap<String, Object> outputMap) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ サービス呼出処理（FUSV0133_各種通信機器申込(初期表示)）(callSvcFUSV0133) START ★");

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = { bean, this.getCommonInfoBean() };

		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_ID_INIT);

		// 設定値格納用マップを生成。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();

		// DataBean-BPマッピング
		FUSV0133_FUSV0133OPDBMapper mapper = new FUSV0133_FUSV0133OPDBMapper();

		// サービスの入力値設定
		// 各種通信機器申込み照会コモンコンポーネント部品上りマッピング
		mapper.setFUSV013301CC(paramBean, inputMap, FUNC_CD_1);
		// 機器提供サービス契約一覧照会(各種通信機器情報取得)
		mapper.setFUSV013302CC(paramBean, inputMap);
		// 事務手数料判定
		mapper.setFUSV013303CC(paramBean, inputMap);
		// ＯＮＵ交換工事判定判定
		mapper.setFUSV013304CC(paramBean, inputMap);
		// ローゼット化設置済案件判定
		mapper.setFUSV013305CC(paramBean, inputMap);
		// サービスIF結果データ移送
		mapper.setFUSV013306CC(paramBean, inputMap);
		// 初期費用一覧照会
		mapper.setFUSV013307CC(paramBean, inputMap, FUNC_CD_1);

		// 遷移元がプレミアムクラブ（マイページ）でＳＭＰ申込の場合、割引サービスの情報検索を行う。
		boolean executeSmpWaribCheck = false;
		X31SDataBeanAccess ssoInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SSO_INFO).getDataBean(0);
		String kk_eotrn_ptn = JFUWebCommon.getDataBeanItemByPath(ssoInfo, CommonInfoCFConst.KK_EOTRN_PTN_21);
// ANK-4591-00-00 MOD START
		// オンライン運用日付
		String strOpeDate = JFUWebCommon.getOpeDate(this, null);
		
		// ストリーミングメディアプレイヤー項目の蓋閉じを実施するか判定
		boolean isDisplaySMP = JFUWebCommon.isAnk4591DisplaySMP(strOpeDate);
		
		// 申し込み機器がストリーミングメディアプレーヤーの場合
		if (MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// 運用日がストリーミングメディアプレーヤー最終日と同日又はそれ以降の場合は共通エラー
			if (!isDisplaySMP)
			{
				X31SWebLog.DEBUG_LOG.debug("契約状態エラー（申し込み機器：ストリーミングメディアプレーヤー）");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
		}
// ANK-4591-00-00 MOD END

// ANK-4691-00-00 MOD START
// ANK-4675-00-00 MOD START
//		// 申し込み機器が無線LAN中継機の場合
//		if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
//		{	
//			X31SWebLog.DEBUG_LOG.debug("eo光無線ギガルーター枯渇エラー（申し込み機器：無線LAN中継機）");
//			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0118);
//		}
// ANK-4675-00-00 MOD END

		// eo無線LAN中継機の項目の蓋閉じを実施するか判定
		boolean isDisplayMLAN = JFUWebCommon.isAnk4691DisplayMLAN(strOpeDate);

		// 申し込み機器が無線LAN中継機の場合
		if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// 運用日がeo無線LAN中継機の変更日以前の場合は共通エラー
			if (!isDisplayMLAN)
			{
				X31SWebLog.DEBUG_LOG.debug("eo光無線ギガルーター枯渇エラー（申し込み機器：無線LAN中継機）");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0118);
			}
		}
// ANK-4691-00-00 MOD END

		if (JFUStrConst.KK_EOTRN_PTN_PRECLUB.equals(kk_eotrn_ptn)
				&& MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			executeSmpWaribCheck = true;
			// 割引サービス契約一覧照会
			mapper.setFUSV013301SC(paramBean, inputMap);
		}

		try
		{
			// サービス呼出
			invokeService(paramMap, inputMap, outputMap);
			mapper.getFUSV013301CC(paramBean, outputMap);
			// 機器提供サービス契約一覧照会(各種通信機器情報取得)
			mapper.getFUSV013302CC(paramBean, outputMap 
					, MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)));

		}
		// 業務エラー例外（JCCWebServiceException）が発生している場合
		catch (JCCWebServiceException jwse)
		{
			X31CMessageResult msgRes = jwse.getMessageList();

			for (X31CMessageMoreInfo moreInfo : Arrays.asList(msgRes.getMessageMoreInfoList()))
			{
				// 利用サービスエラー
				if (String.valueOf(JPCModelConstant.RELATION_ERR).equals(moreInfo.getStatus())
						&& JFUStrConst.RELATION_CHECK_TEMPLATE_ID_SVC_KEI.equals(moreInfo.getTemplateId())
						&& JFUStrConst.RELATION_CHECK_ITEM_SVC_KEI.equals(moreInfo.getItemId())
						&& JFUStrConst.RELATION_CHECK_ITEM_CHECK_ERR.equals(moreInfo.getItemCheckErr()))
				{
					X31SWebLog.DEBUG_LOG.debug("共通関連チェック【利用サービスエラー】");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0101);
				}

				// ステータスエラー（多機能ルーター申込処理）
				if (String.valueOf(JPCModelConstant.RELATION_ERR).equals(moreInfo.getStatus()) && "EKK2811B503".equals(moreInfo.getTemplateId())
						&& "key_svc_kei_kaisen_ucwk_no".equals(moreInfo.getItemId())
						&& JFUStrConst.RELATION_CHECK_ITEM_CHECK_ERR.equals(moreInfo.getItemCheckErr()))
				{
					// 照査済、締結済、サービス提供中、変更中以外はエラー
					//（例：現状、２番号申込での多機能への交換では"受付済"となる）
					X31SWebLog.DEBUG_LOG.debug("予約中エラー（多機能ルーター）");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
				}

			}

			// 上記以外はシステムエラー
			X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() サービス実行エラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// ■遷移元がプレミアムクラブ（マイページ）でＳＭＰの施策が適用中か判定を行う。
		if (executeSmpWaribCheck)
		{
			List<String> groupSisakCd = getPropList(JFUEoPremiumClubDsp.QUERY_PATH_WRIB_CHK_SMP, JFUEoPremiumClubDsp.QUERY_CHECK_1);
			if (mapper.isUsedWaribiki(outputMap, groupSisakCd))
			{
				// 遷移元がプレミアムクラブ（マイページ）でＳＭＰの施策が適用中の場合は、共通画面エラー
				X31SWebLog.DEBUG_LOG.info("----- 遷移元がプレミアムクラブ（マイページ）で施策が適用中の場合は、共通画面エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0603);
			}
		}

		X31SWebLog.DEBUG_LOG.debug("★ サービス呼出処理（FUSV0133_各種通信機器申込(初期表示)）(callSvcFUSV0133) END ★");

	}

	/**
	 * サービスフォームBean設定
	 * <br>
	 * @param bean					サービスフォームBean
	 * @param outputMap SIFアウトプット
	 * @throws Exception			すべての例外
	 */
	private void setSvcFormBean(X31SDataBeanAccess bean, HashMap<String, Object> outputMap, HashMap<String, String> tempData) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ サービスフォームBean設定（setSvcFormBean） START ★");

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		String pplanKoteiAmnt = ZERO; // ローカル変数.料金
		String taknkikiModelNm = JFUStrConst.EMPTY;
		String routerHojiFlg = ROUTER_HOJI_FLG_HIHOJI;
		String hmpinKktkSvcKeiNo = JFUStrConst.EMPTY;
		String hmpinSvcKeiNo = JFUStrConst.EMPTY;
		String geneAddDtm = JFUStrConst.EMPTY;
		String pcrsKktksvcListModelCd = JFUStrConst.EMPTY;
		String taknkikiSethinModelCd = JFUStrConst.EMPTY;

		HashMap<String, ArrayList<HashMap<String, String>>> fusv0133CC1Map = null;
		int kei_kiki_cnt = 0;
		String shuriKokanGrpSbtCd = JFUStrConst.EMPTY;
		String routerSpeedSbt = JFUStrConst.EMPTY;
		String kikiSoryoUm = JFUStrConst.EMPTY;

		String sethnDiv = JFUStrConst.EMPTY;

		HashMap<String, String> routermongoninfo = new HashMap<String, String>();

		if (outputMap.containsKey(SC_TITLE_FUSV013301CC))
		{
			fusv0133CC1Map = (HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get(SC_TITLE_FUSV013301CC);
		}

		if (fusv0133CC1Map == null)
		{
			X31SWebLog.DEBUG_LOG.debug("【各種通信機器申込（初期表示）マップ情報 未設定エラー】");
			// システムエラーをスロー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		if (SETHIN_DIV_KOBET.equals(fusv0133CC1Map.get(MAP_SETHN_DIV)))
		{
			sethnDiv = SETHIN_DIV_KOBET;
		}
		else
		{
			sethnDiv = SETHIN_DIV_SET;
		}

		// 機器提供サービス契約一覧照会（各種通信機器情報取得）明細
		// パラメータ異常ならば終了
		ArrayList<HashMap<String, String>> allKikiList = null;
		if (fusv0133CC1Map == null || !fusv0133CC1Map.containsKey(MAP_KEY_EKK0341B512CBSMSG1LIST))
		{
			allKikiList = new ArrayList<HashMap<String, String>>();
		}
		else
		{
			allKikiList = fusv0133CC1Map.get(MAP_KEY_EKK0341B512CBSMSG1LIST);
		}

		// 機器オプションサービス契約一覧照会（フロント）明細
		// ※多機能ルーターの情報取得
		ArrayList<HashMap<String, String>> takinoList = new ArrayList<HashMap<String, String>>();
		if (fusv0133CC1Map != null && fusv0133CC1Map.containsKey(MAP_KEY_EKK2811B503CBSMSG1LIST))
		{
			takinoList = fusv0133CC1Map.get(MAP_KEY_EKK2811B503CBSMSG1LIST);
			if (takinoList != null && takinoList.size() > 0)
			{
				HashMap<String, String> childMap = takinoList.get(0);
				String kktkSvcKeiStat = childMap.get("kktk_svc_kei_stat");
				String taknkiki_model_cd = childMap.get("taknkiki_model_cd");
				tempData.put(TEMP_TAKINO_KKTK_SVC_STAT, kktkSvcKeiStat);
				tempData.put(TEMP_TAKINO_TAKNKIKI_MODEL_CD, taknkiki_model_cd);
			}
		}

		ArrayList<HashMap<String, String>> kojiakList = null;
		if (fusv0133CC1Map == null || !fusv0133CC1Map.containsKey(MAP_KEY_EKU0011B010CBSMsg1LIST))
		{
			kojiakList = new ArrayList<HashMap<String, String>>();
		}
		else
		{
			// 工事案件一覧照会明細
			kojiakList = fusv0133CC1Map.get(MAP_KEY_EKU0011B010CBSMsg1LIST);
		}

		// ■未完了工事の有無のチェック
		for (int n = 0; n < kojiakList.size(); n++)
		{
			if (!checkMifinKj(kojiakList.get(n)))
			{
				// 未完了の工事が存在しているためエラー
				X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() 未完了の工事が存在しているためエラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
			}
		}

		// OM-2019-0000912 ADD START
		// 住所変更明細一覧照会明細
		ArrayList<HashMap<String, String>> adchgDtlList = fusv0133CC1Map.get(MAP_KEY_EKK2101B001CBSMsg1LIST);
		
		// 住所変更中チェック
		if(adchgDtlList != null && adchgDtlList.size() > 0)
		{
			HashMap<String, String> adchgDtlMap = adchgDtlList.get(0);
			
			// 元回線工事案件番号
			String motoKojiak_no = "";
			// 先回線工事案件番号
			String sakiKojiak_no = "";
			
			if (adchgDtlMap.get("chbf_skbt_no") != null)
			{
				motoKojiak_no = adchgDtlMap.get("chbf_skbt_no");
			}
			if (adchgDtlMap.get("chaf_skbt_no") != null)
			{
				sakiKojiak_no = adchgDtlMap.get("chaf_skbt_no");
			}
			
			// 住所変更中工事案件チェック
			// 工事案件リストを回して住変明細の工事案件と当たるものを探す
			for (int n = 0; n < kojiakList.size(); n++)
			{
				String kojiak_no = kojiakList.get(n).get("kojiak_no");
				// 住所明細の工事案件と当たった場合（元）
				if(kojiak_no.equals(motoKojiak_no))
				{
					// 工事案件ステータスが取消済(900)か確認する
					if (!checkAdchgKojiakCancel(kojiakList.get(n)))
					{
						// 住所変更中のレコードが存在しているためエラー
						X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() 住所変更中のレコードが存在しているためエラー -----");
						throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
					}
				}
				// 住所明細の工事案件と当たった場合（先）
				if(kojiak_no.equals(sakiKojiak_no))
				{
					// 工事案件ステータスが取消済(900)か確認する
					if (!checkAdchgKojiakCancel(kojiakList.get(n)))
					{
						// 住所変更中のレコードが存在しているためエラー
						X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() 住所変更中のレコードが存在しているためエラー -----");
						throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
					}
				}
			}
		}
		// OM-2019-0000912 ADD END

		// サービス契約一覧照会（各種通信機器情報取得）明細
		// パラメータ異常ならば終了
		if (fusv0133CC1Map == null || !fusv0133CC1Map.containsKey(MAP_KEY_EKK0081B520CBSMsg1LIST))
		{
			// サービス契約に契約中レコードが存在しないためエラー
			X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() サービス契約に契約中レコードが存在しないためエラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}
		ArrayList<HashMap<String, String>> svcKeilist = fusv0133CC1Map.get(MAP_KEY_EKK0081B520CBSMsg1LIST);

		// サービス契約のチェック
		String svcKeiStat = JFUStrConst.EMPTY;
		for (int o = 0; o < svcKeilist.size(); o++)
		{
			if (!(SVC_KEI_STA_YUKO.contains(svcKeilist.get(o).get("svc_kei_stat"))))
			{
				// サービス契約ステータスが有効でないためエラー
				X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() サービス契約ステータスが有効でないためエラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
			svcKeiStat = svcKeilist.get(o).get("svc_kei_stat");
			tempData.put(TEMPDATA_SVC_KEI_STAT, svcKeiStat);
		}
		// 申込可能最大数の設定
		String mskPsbMaxCnt = getMskPsbMaxCnt(bean, svcKeiStat);
		bean.sendMessageString(FUW07101SFConst.MSKM_PSB_MAX_CNT, X31CWebConst.DATABEAN_SET_VALUE, mskPsbMaxCnt);

		//OM-2017-0000098 ADD START
		// --------------------------------------------------
		// 保有多機能ルーター機能種別 存在フラグ
		// --------------------------------------------------
		boolean ownTaknRouterFlag = false;
		if (fusv0133CC1Map.containsKey("ownTaknRouterFlag"))
		{
			ownTaknRouterFlag = (Boolean)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("ownTaknRouterFlag");
		}
		//OM-2017-0000098 ADD END
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.OWN_TAKN_RT_FLG, (ownTaknRouterFlag ? "1" : "0"));

		// --------------------------------------------------
		// ファミリーパック申込有無
		// --------------------------------------------------
		String famipaMskmUmu = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("famipaMskmUmu");
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.FAMIPA_MSKM_UMU, famipaMskmUmu);

		// --------------------------------------------------
		// 保有多機能ルーター機能種別（1：無線ルーター機能、2：有線ルーター機能、0：5ギガ10ギガで低速多機能ルータ）
		// --------------------------------------------------
		String ownTknRouterKind = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("ownTknRouterKind");
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.OWN_TKN_ROUTER_KIND, ownTknRouterKind);

		// --------------------------------------------------
		// 返品機器提供サービス契約番号（ＶＡ）の設定（多機能申込時に返却処理が必要なＶＡ機器の機器提供サービス契約番号）
		// --------------------------------------------------
		String hmpinKktkSvcKeiNoVa = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("hmpinKktkSvcKeiNoVa");
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.HMPIN_KKTK_SVC_KEI_NO_VA, hmpinKktkSvcKeiNoVa);

		// --------------------------------------------------
		// 返品機器提供サービス契約番号（ＢＢＲ）の設定（多機能申込時に返却処理が必要なルーターの機器提供サービス契約番号）
		// --------------------------------------------------
		String hmpinKktkSvcKeiNoBbr = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("hmpinKktkSvcKeiNoBbr");
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.HMPIN_KKTK_SVC_KEI_NO_BBR, hmpinKktkSvcKeiNoBbr);

		// 宅内機器型式一意照会明細（マスタ）
		ArrayList<HashMap<String, String>> tkkikiMdlList = fusv0133CC1Map.get(MAP_KEY_EZM0411A010CBSMsg1LIST);

		// 料金プラン固定単価（オプション申込料金）明細（マスタ）
		ArrayList<HashMap<String, String>> pplanKttankaList = fusv0133CC1Map.get(MAP_KEY_EKK0601B001CBSMsg1LIST);

		// 料金コース_機器提供サービス一意照会明細（マスタ）
		ArrayList<HashMap<String, String>> pcrsKktkSvcKeiList = fusv0133CC1Map.get(MAP_KEY_EKK0801A010CBSMsg1LIST);

		// 提供方式コード
		String tkHoshikiCd = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("tk_hoshiki_cd");
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TK_HOSHIKI_CD, tkHoshikiCd);

		// 提供方式パターンコード
		String tkHoshikiPatternCd = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("tk_hoshiki_pattern_cd");
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TK_HOSHIKI_PATTERN_CD, tkHoshikiPatternCd);

		int allKikiListCnt = allKikiList.size();

		// ルーター
		if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// 保有機器の料金コースコード
			bean.sendMessageString(FUW07101SFConst.OWN_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.EMPTY);

			// BBR
			//OM-2017-0000098 MOD START
			//if (JFUWebCommon.isNull(ownTknRouterKind))
			if (JFUWebCommon.isNull(ownTknRouterKind) && ownTaknRouterFlag == false)
			//OM-2017-0000098 MOD END	
			{
				if (allKikiListCnt > 0)
				{
					for (HashMap<String, String> childMap : allKikiList)
					{
						// 宅内機器種別コード
						String taknkikiSbtCd = childMap.get(TAKNKIKI_SBT_CD);
						// 料金コースコード
						String pcrsCdOwn = childMap.get(PCRS_CD);

						// BBR、または、多機能ルーターの場合
						if (JFUStrConst.CD01262_F0.equals(taknkikiSbtCd))
						{
							// 保有機器の料金コースコード
							bean.sendMessageString(FUW07101SFConst.OWN_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, pcrsCdOwn);
						}
					}
				}
			}
			// 多機能ルーター
			else
			{
				// 保有機器の料金コースコード
				bean.sendMessageString(FUW07101SFConst.OWN_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_C94);
			}
		}
		// PLC
		else
		{
			// 保有機器の料金コースコード
			bean.sendMessageString(FUW07101SFConst.OWN_PCRS_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00134_C26);
		}

		// 【補足】申込対象の機器で、保持している機器のステータスが"サービス提供中"になるまで、申込は不可（多機能を除く）。
		//  ・20210428時点では、申請中情報が未連携（eo顧客DBに割引サービスが反映されていない）の考慮はされていない。
		//    多機能ルーターのチケットについては、運用対応となっている。
		if (SETHIN_DIV_KOBET.equals(sethnDiv))
		{
			X31SWebLog.DEBUG_LOG.debug("★ 個別商品登録 ★");
// ANK-3529-00-00 ADD START
			kikiSoryoUm = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("kikiSoryoUm");
// ANK-3529-00-00 ADD END
			// 多機能ルーターの場合
			if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				hmpinSvcKeiNo = "";
				hmpinKktkSvcKeiNo = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.HMPIN_KKTK_SVC_KEI_NO_BBR);
				pcrsKktksvcListModelCd = "";
				taknkikiModelNm = this.getValue(tkkikiMdlList.get(0), MODEL_NM); // ローカル変数.お申し込み通信機器
				shuriKokanGrpSbtCd = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("shuriKokanGrpSbtCd");
				routerSpeedSbt = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013301CC)).get("routerSpeedSbtCd");
				boolean VaOrRtError = false;
				for (int j = 0; j < pcrsKktkSvcKeiList.size(); j++)
				{
					for (int i = 0; i < allKikiListCnt; i++)
					{
						//allKikiListCntには、サービス契約番号キーで取得できるものしか入っていない
						HashMap<String, String> allKikiListDtlMap = allKikiList.get(i);
						String kktkSvcCd = this.getValue(allKikiListDtlMap, MAP_KEY_KKTK_SVC_CD);

						if (JFUStrConst.CD00132_C004.equals(kktkSvcCd) || JFUStrConst.CD00132_C014.equals(kktkSvcCd))
						{
							// ＶＡ機器、ルーター
							if (!KEISTAT_FLG_1.equals(this.getValue(allKikiListDtlMap, MAP_KEY_STATUS_FLG)))
							{
								// 登録しようとする機器が予約中（サービス提供中でない 又は 異動予約あり）のためエラー
								VaOrRtError = true;
							}
						}
					}
				}
				if ((!ownTaknRouterFlag) && (VaOrRtError))
				{
					// ■「多機能機器を持っていない」＆「ＶＡ機器、ルーター機器がサービス提供中でない」場合は対象外とする。この条件の可能性はほぼないはず。
					//   補足）新規申込では多機能ルーターが出荷されるはず。ＶＡ機器に対してのキャンセル、締結済の解約処理は当機能では行っていないのでエラーとする。
					// 但し、多機能機器が存在する場合、無線・有線の相互切替は可能にする。
					X31SWebLog.DEBUG_LOG.debug("予約中エラー（多機能関連：ＶＡ機器、ルーター）");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
				}
			}
			else
			{
				for (int j = 0; j < pcrsKktkSvcKeiList.size(); j++)
				{
					// 登録しようとしている宅内機器型式コードを取得
					pcrsKktksvcListModelCd = pcrsKktkSvcKeiList.get(j).get("taknkiki_model_cd");

					boolean bWireLessLan = false;	// 無線LAN中継機が既に契約中
					boolean bMeshWiFiKei = false; // Mesh-WiFiが既に契約中
					for (int i = 0; i < allKikiListCnt; i++)
					{
						HashMap<String, String> allKikiListDtlMap = allKikiList.get(i);

						if (!KEISTAT_FLG_1.equals(this.getValue(allKikiListDtlMap, MAP_KEY_STATUS_FLG)))
						{
// ANK-3825-00-00 ADD START
							if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
							{
								if (JFUStrConst.KK0771_KKTK_SVC_CD_C015.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd"))
										&& JFUStrConst.CD00134_CA1.equals(this.getValue(allKikiListDtlMap, "pcrs_cd"))
										&& JFUStrConst.CD00565_PCA101.equals(this.getValue(allKikiListDtlMap, "pplan_cd")))
								{
									// 登録しようとする機器が予約中のためエラー
									X31SWebLog.DEBUG_LOG.debug("予約中エラー（無線LAN中継機申込）");
									throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0203);
								}
							} else if (MSKM_KIKI_DIV_MESHWIFI.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
							{
								// 「サービス提供中」未満のメッシュwifiが存在する場合は追加申込不可
								if (JFUStrConst.KK0771_KKTK_SVC_CD_C015.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd"))
										&& JFUStrConst.CD00134_CA2.equals(this.getValue(allKikiListDtlMap, "pcrs_cd"))
										&& JFUStrConst.CD00565_PCA201.equals(this.getValue(allKikiListDtlMap, "pplan_cd")))
								{
									// 登録しようとする機器が予約中のためエラー
									X31SWebLog.DEBUG_LOG.debug("予約中エラー（メッシュWi-Fi申込）");
									throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0203);
								}
							}
							else if (MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
							{
								// 「サービス提供中」未満のストリーミングメディアプレーヤーが存在する場合は追加申込不可
								if (JFUStrConst.KK0771_KKTK_SVC_CD_C023.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd"))
										&& JFUStrConst.CD00134_CA3.equals(this.getValue(allKikiListDtlMap, "pcrs_cd"))
										&& JFUStrConst.CD00565_PCA301.equals(this.getValue(allKikiListDtlMap, "pplan_cd")))
								{
									// 登録しようとする機器が予約中のためエラー
									X31SWebLog.DEBUG_LOG.debug("予約中エラー（ストリーミングメディアプレーヤー申込）");
									throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0203);
								}
							}
// ANK-3825-00-00 ADD END
						}

						if (pcrsKktkSvcKeiList.get(j).get("kktk_svc_cd").equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd")))
						{
							// 機器提供サービスコードがC014(BBR)で新無線の場合、契約機器台数として加算
							if (JFUStrConst.KK0771_KKTK_SVC_CD_C024.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd"))
									&& (OPMS_ROUTER_KIND_CD_4.equals(this.getValue(allKikiListDtlMap, "opms_router_kind_cd"))
											|| OPMS_ROUTER_KIND_CD_5.equals(this.getValue(allKikiListDtlMap, "opms_router_kind_cd")) || OPMS_ROUTER_KIND_CD_6
											.equals(this.getValue(allKikiListDtlMap, "opms_router_kind_cd"))))
							{
								kei_kiki_cnt++;
							}
							// 機器提供サービスコードがC014(BBR)の場合、ルータ保持フラグ、世代登録年月日時分秒、異動区分をセット
							else if (JFUStrConst.KK0771_KKTK_SVC_CD_C014.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd")))
							{
								routerHojiFlg = ROUTER_HOJI_FLG_HOJI;
								geneAddDtm = this.getValue(allKikiListDtlMap, "gene_add_dtm");

								// ----------------------------------------------
								// ルータ表示文言用情報セット
								// ----------------------------------------------
								X31SWebLog.DEBUG_LOG.debug("★ ルータ表示文言用情報セット(setRouterMongonInfo) START ★");

								if (JFUStrConst.KK0771_KKTK_SVC_CD_C024.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd")))
								{
									if (TK_WAY_RENT.equals(allKikiListDtlMap.get("kktk_sbt_cd")))
									{
										routermongoninfo.put("shuri_kokan_grp_sbt_cd", this.getValue(allKikiListDtlMap, "shuri_kokan_grp_sbt_cd"));
										routermongoninfo.put("router_speed_sbt", this.getValue(allKikiListDtlMap, MAP_ROUTER_SPEED_SBT_CD));
										routermongoninfo.put("hmpin_kktk_svc_kei_no", this.getValue(allKikiListDtlMap, "kktk_svc_kei_no"));
									}
									else
									{
										routermongoninfo.put("shuri_kokan_grp_sbt_cd", JFUStrConst.CD01279_80);
										routermongoninfo.put("router_speed_sbt", this.getValue(allKikiListDtlMap, JFUStrConst.EMPTY));
										routermongoninfo.put("hmpin_kktk_svc_kei_no", this.getValue(allKikiListDtlMap, JFUStrConst.EMPTY));
									}
								}
								else if (JFUStrConst.KK0771_KKTK_SVC_CD_C015.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd")))
								{
									if (JFUStrConst.EMPTY.equals(shuriKokanGrpSbtCd))
									{
										routermongoninfo.put("shuri_kokan_grp_sbt_cd", this.getValue(allKikiListDtlMap, "shuri_kokan_grp_sbt_cd"));
										routermongoninfo.put("router_speed_sbt", this.getValue(allKikiListDtlMap, MAP_ROUTER_SPEED_SBT_CD));
									}
								}

								X31SWebLog.DEBUG_LOG.debug("★ ルータ表示文言用情報セット(setRouterMongonInfo) END ★");

								shuriKokanGrpSbtCd = routermongoninfo.get("shuri_kokan_grp_sbt_cd");
								routerSpeedSbt = routermongoninfo.get("router_speed_sbt");
								hmpinKktkSvcKeiNo = routermongoninfo.get("hmpin_kktk_svc_kei_no");

							}
							// 機器提供サービスコードがC015(PLC)の場合、契約機器台数として加算、修理交換グループコード、ルータ速度種別をセット
							else if (JFUStrConst.KK0771_KKTK_SVC_CD_C015.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd"))
									&& JFUStrConst.CD00134_CA1.equals(this.getValue(allKikiListDtlMap, "pcrs_cd"))
									&& JFUStrConst.CD00565_PCA101.equals(this.getValue(allKikiListDtlMap, "pplan_cd")))
							{
// ANK-3825-00-00 MOD START
								bWireLessLan = true;
								if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
								{
									kei_kiki_cnt++;
									if (JFUStrConst.EMPTY.equals(shuriKokanGrpSbtCd))
									{
										shuriKokanGrpSbtCd = this.getValue(allKikiListDtlMap, "shuri_kokan_grp_sbt_cd");
										routerSpeedSbt = this.getValue(allKikiListDtlMap, MAP_ROUTER_SPEED_SBT_CD);
									}
								}
							// メッシュwifi用の件数カウント
							} else if (JFUStrConst.KK0771_KKTK_SVC_CD_C015.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd"))
									&& JFUStrConst.CD00134_CA2.equals(this.getValue(allKikiListDtlMap, "pcrs_cd"))
									&& JFUStrConst.CD00565_PCA201.equals(this.getValue(allKikiListDtlMap, "pplan_cd")))
							{
								bMeshWiFiKei = true;
								if (MSKM_KIKI_DIV_MESHWIFI.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
								{
									kei_kiki_cnt++;
								}
							// ストリーミングメディアプレーヤー用の件数カウント
							} else if (JFUStrConst.KK0771_KKTK_SVC_CD_C023.equals(this.getValue(allKikiListDtlMap, "kktk_svc_cd"))
									&& JFUStrConst.CD00134_CA3.equals(this.getValue(allKikiListDtlMap, "pcrs_cd"))
									&& JFUStrConst.CD00565_PCA301.equals(this.getValue(allKikiListDtlMap, "pplan_cd")))
							{
								if (MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
								{
									kei_kiki_cnt++;
								}
							}
						
						}
					}
					taknkikiModelNm = this.getValue(tkkikiMdlList.get(0), MODEL_NM); // ローカル変数.お申し込み通信機器
					pplanKoteiAmnt = this.getValue(pplanKttankaList.get(0), "pplan_kotei_amnt"); // ローカル変数.料金
					// 最大機器提供サービス数を取得する
					int max_kktk_svc_cnt = Integer.parseInt(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_PSB_MAX_CNT));
// ANK-3825-00-00 MOD END

					// 最大機器提供サービス数チェック
					if (kei_kiki_cnt + 1 > max_kktk_svc_cnt)
					{
						// これ以上申込機器が申し込めないためエラー
						X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() これ以上申込機器が申し込めないためエラー -----");
						throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0105);
					}
					if (SVC_KEI_STA_NEWADD.contains(svcKeiStat))
					{
						// 新規扱いの場合
						String mskmKikiDiv = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV);
						if ((MSKM_KIKI_DIV_OTHER.equals(mskmKikiDiv) && bMeshWiFiKei) 
								|| (MSKM_KIKI_DIV_MESHWIFI.equals(mskmKikiDiv) && bWireLessLan))
						{
							X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0133() 新規扱いの場合、無線LAN中継機、メッシュWi-Fiの両方申込は不可 -----");
							throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
						}
					}
				}
			}
			// ----------------------------------------------
			// 登録機器情報設定（個別品用）
			// ----------------------------------------------
			setKktkSvkeiAddInfo(bean, commonInfoBean, ADD_KIKI_FLG_KOBET, hmpinSvcKeiNo, hmpinKktkSvcKeiNo, geneAddDtm, pcrsKktksvcListModelCd,
					outputMap, sethnDiv);
		}

		// 利用中台数 kei_kiki_cnt
		bean.sendMessageString(FUW07101SFConst.KEI_KIKI_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(kei_kiki_cnt));

		// お申し込み通信機器 mskm_tushin_kiki
		bean.sendMessageString(FUW07101SFConst.MSKM_TUSHIN_KIKI, X31CWebConst.DATABEAN_SET_VALUE, taknkikiModelNm);

		// セット品区分 sethin_div
		bean.sendMessageString(FUW07101SFConst.SETHIN_DIV, X31CWebConst.DATABEAN_SET_VALUE, sethnDiv);

		// 無線LAN中継器の場合
		if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// 修理交換グループ種別コード shuri_kokan_grp_sbt_cd
			bean.sendMessageString(FUW07101SFConst.SHURI_KOKAN_GRP_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, this.getValue(tkkikiMdlList.get(0),
					MAP_SHURI_KOKAN_GRP_SBT_CD));
		}
		// ルーターの場合
		else
		{
			// 修理交換グループ種別コード （宅内機器型式マスタの種類交換グループ種別コード：shuri_kokan_grp_sbt_cd）
			bean.sendMessageString(FUW07101SFConst.SHURI_KOKAN_GRP_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, shuriKokanGrpSbtCd);
		}

		// ルーター速度種別コード （上記設定値 又は 宅内機器型式マスタのルーター速度種別コード：router_speed_sbt_cd）
		bean.sendMessageString(FUW07101SFConst.ROUTER_SPEED_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, routerSpeedSbt);

		// お申し込み台数 mskm_cnt ← 固定値”1”
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MSKM_CNT, MSKM_CNT_INIT_VALUE);

		// ルータ保持フラグ router_hoji_flg
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.ROUTER_HOJI_FLG, routerHojiFlg);

		// 返品機器提供サービス契約番号 hmpin_kktk_svc_kei_no_list
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.HMPIN_KKTK_SVC_KEI_NO_LIST, hmpinKktkSvcKeiNo);

		// 宅内機器セット品型コード taknkiki_sethin_model_cd
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TAKNKIKI_SETHIN_MODEL_CD, taknkikiSethinModelCd);

		// 異動区分 ido_div
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.IDO_DIV, JFUStrConst.CD00576_00026);

		// 機器送料有無 kiki_soryo_um
		bean.sendMessageString(FUW07101SFConst.KIKI_SORYO_UM, X31CWebConst.DATABEAN_SET_VALUE, kikiSoryoUm);
		// ■工事案件番号（工事会社配送 又は 有線無線切替で工事案件対象宅内機器の更新が必要な場合に設定）
		HashMap jmteInfoMap = (HashMap)outputMap.get(SC_TITLE_FUSV013303CC);
		String kojiakNo = (String)jmteInfoMap.get("kojiak_no");
		if (JFUWebCommon.isNull(kojiakNo))
		{
			String takino_kirikae_kojiak_no = (String)jmteInfoMap.get("takino_kirikae_kojiak_no");
			if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)) && ownTaknRouterFlag)
			{
				kojiakNo = takino_kirikae_kojiak_no;
			}
		}
		bean.sendMessageString(FUW07101SFConst.KOJIAK_NO, X31CWebConst.DATABEAN_SET_VALUE, kojiakNo);
		// 配送方法コード
		String haisoWayCd = (String)jmteInfoMap.get("haiso_way_cd");

// ANK-4427-00-00 MOD START
//		bean.sendMessageString(FUW07101SFConst.HAISO_WAY_CD, X31CWebConst.DATABEAN_SET_VALUE, haisoWayCd);
		X31SDataBeanAccess genSvcKeiInfoList = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);
		String nttOrsDiv = JFUWebCommon.getDataBeanItemByPath(genSvcKeiInfoList, CommonInfoCFConst.NTTORS_DIV_23);
		// NTT卸の場合
		if (!JFUWebCommon.isNull(nttOrsDiv))
		{
			// 工事案件番号を設定しない
			bean.sendMessageString(FUW07101SFConst.KOJIAK_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
			// 配送方法をお客様直送とする
			bean.sendMessageString(FUW07101SFConst.HAISO_WAY_CD, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD01148_1);
		}
		else
		{
			bean.sendMessageString(FUW07101SFConst.HAISO_WAY_CD, X31CWebConst.DATABEAN_SET_VALUE, haisoWayCd);
		}
// ANK-4427-00-00 MOD END

		// 保有サービス契約ステータス
		String svc_kei_stat = JFUWebCommon.nvl(tempData.get(TEMPDATA_SVC_KEI_STAT), JFUStrConst.EMPTY);
		bean.sendMessageString(FUW07101SFConst.OWN_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, svc_kei_stat);
		// 保有機器提供サービス契約ステータス
		String kktk_svc_stat = JFUWebCommon.nvl(tempData.get(TEMP_TAKINO_KKTK_SVC_STAT), JFUStrConst.EMPTY);
		bean.sendMessageString(FUW07101SFConst.OWN_KKTK_SVC_KEI_STAT, X31CWebConst.DATABEAN_SET_VALUE, kktk_svc_stat);
		// 保有宅内機器型式コード
		String taknkiki_model_cd = JFUWebCommon.nvl(tempData.get(TEMP_TAKINO_TAKNKIKI_MODEL_CD), JFUStrConst.EMPTY);
		bean.sendMessageString(FUW07101SFConst.OWN_TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_SET_VALUE, taknkiki_model_cd);
		// ■工事会社配送時に使用する機器送付先情報
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_nm"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_KANA, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_kana"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_ad_cd"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_PCD, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_pcd"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_state_nm"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_city_nm"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_oaztsu_nm"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_azcho_nm"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_bnchigo"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_adrttm"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_adrrm"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_telno"));
		bean.sendMessageString(FUW07101SFConst.KIKI_SOHUS_KSH_AD_SAI_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)jmteInfoMap.get("kiki_sohus_ksh_ad_sai_flg"));

		// ----------------------------------------------
		// 料金表情報の設定
		// ----------------------------------------------
// ANK-3825-00-00 MOD START
		if (!isMskmKikiRt(bean))
// ANK-3825-00-00 MOD END
		{
// ANK-3529-00-00 ADD START
			String initialTanka = kikiSoryoEdit(bean, outputMap);
// ANK-3529-00-00 ADD END
			setPrcInfoArea(bean, pplanKoteiAmnt, pplanKttankaList, sethnDiv, initialTanka);
		}
		else
		{
			// 多機能ルーター申込の場合
			// 選択オプションデータ作成
			createOptioinData(bean, outputMap);
			// ONU交換工事費
			String initialTanka = kokanKojihiEdit(bean, outputMap);

			// ●料金表マッピング
			if (JFUStrConst.EMPTY.equals(initialTanka))
			{
				JFUWebCommon.setPrcInfoArea(bean, outputMap, SC_TITLE_FUSV013301, CC_TITLE_FUSV013301, JFUScreenConst.SCREEN_ID_FUW07101);
			}
			// ●料金表マッピング（ONU交換工事費）
			else
			{
				JFUWebCommon.setPrcInfoArea(bean, outputMap, SC_TITLE_FUSV013301, CC_TITLE_FUSV013307, JFUScreenConst.SCREEN_ID_FUW07101);
			}
		}

		// ルーター文言取得
		getRouterMsgMap(bean, JFUStrConst.ROUTER_MSG_IDX_0);

		X31SWebLog.DEBUG_LOG.debug("★ サービスフォームBean設定（setSvcFormBean） END ★");

	}

	/**
	 * 料金表および追加容量リストを作成します。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @throws Exception
	 */
	private void createOptioinData(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{

		// ●固定単価
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0133CC1Map =
				(HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get(SC_TITLE_FUSV013301CC);

		ArrayList<HashMap<String, String>> pplan_kttanka_list = fusv0133CC1Map.get("pplan_kttanka_tkn_list");
// ANK-3805-00-00 ADD START
		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客契約情報.サービス契約情報
		// -------------------------------------------------
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess svcKeiInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);
// ANK-3805-00-00 ADD END

		List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
		for (HashMap<String, String> dataMap : pplan_kttanka_list)
		{
			// 料金表データ作成（後続のJFUWebCommon.setPrcInfoArea()メソッドで使用）
			Map<String, Object> childMap = new HashMap<String, Object>();
			// 料金プラン固定料金
			String pplanKoteiAmnt = dataMap.get(PPLAN_KOTEI_AMNT);
// ANK-3805-00-00 ADD START
			if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				// 無線機能無料マンションまたは無線LAN中継機無料マンションの場合は、多機能ルーター月額料金0円
				if (JFUStrConst.KOJI_SBT_019.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23))
						|| JFUStrConst.KOJI_SBT_020.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23)))
				{
					pplanKoteiAmnt = ZERO;
				}
			}
// ANK-3805-00-00 ADD END
			// ファミリーパック申込有無
			String famipaMskmUmu = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.FAMIPA_MSKM_UMU);

			// 金額が０円かファミリーパック申込済みの場合は、無料表示を行う。
			if (ZERO.equals(pplanKoteiAmnt) || JFUStrConst.CD00002_1.equals(famipaMskmUmu))
			{
				pplanKoteiAmnt = JFUStrConst.FREE_LABEL;
			}
			childMap.put(PPLAN_KOTEI_AMNT, pplanKoteiAmnt);
			// 料金プラン固定単位コード名
			childMap.put(PPLAN_KOTEI_TANI_CD_NM, dataMap.get(PPLAN_KOTEI_TANI_CD_NM));

			dataList.add(childMap);
		}

		// 料金表データ作成（後続のJFUWebCommon.setPrcInfoArea()メソッドで使用）
		Map<String, Object> dataMap = new HashMap<String, Object>();
		dataMap.put(EKK0601B001_LIST, dataList);

		outputMap.put(SC_TITLE_FUSV013301, dataMap);

		// ●初期費用
		// 名称の変更
		ArrayList<HashMap<String, String>> eKK0721A010List = fusv0133CC1Map.get("EKK0721A010CBSMsg1List");
		if (!JFUWebCommon.isNull(eKK0721A010List))
		{
			HashMap<String, String> ekk0721A010Map = eKK0721A010List.get(0);
			ekk0721A010Map.put("tmp_pay_prc_nm", JFUWebCommon.getDispItem(PRC_INIT_COLUMN_JIMUTE));
		}
		
		// 事務手数料有無
		String jmteUm = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013303CC)).get(JMTE_UM);
		if (JFUStrConst.CD00002_0.equals(jmteUm)) 
		{
			// 料金表の初期費用（事務手数料）を削除する
			fusv0133CC1Map.put("EKK0721A010CBSMsg1List", null);
			// 機器送料有無に"0"（無）を設定
			bean.sendMessageString(FUW07101SFConst.KIKI_SORYO_UM, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_0);
		}
	}

	/**
	 * 申込台数リスト設定(コンボボックス用) 
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param outputMap SIFアウトプット
	 * @throws Exception	すべての例外
	 */
	private void setMskmSbtList(X31SDataBeanAccess bean, HashMap<String, Object> outputMap, HashMap<String, String> tempData) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★申込台数リスト設定(コンボボックス用)（setMskmSbtList） START ★");

		HashMap<String, ArrayList<HashMap<String, String>>> fusv0133CC1Map = null;

		if (outputMap.containsKey(SC_TITLE_FUSV013301CC))
		{
			fusv0133CC1Map = (HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get(SC_TITLE_FUSV013301CC);
		}

		// パラメータ異常ならば終了
		if (fusv0133CC1Map == null || !fusv0133CC1Map.containsKey(MAP_KEY_EKK0801A010CBSMsg1LIST))
		{
			// サービス契約に契約中レコードが存在しないためエラー
			X31SWebLog.DEBUG_LOG.info("----- FUW07101_setMskmSbtList() サービス契約に契約中レコードが存在しないためエラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}

		X31SDataBeanAccess mskmSbtList = JFUWebCommon.createAndGetDataBeanTypeByPath(bean, FUW07101SFConst.MSKM_SBT_LIST);
		// 申込台数リスト選択値
		mskmSbtList.sendMessageString(FUW07101SFConst.SELECT_CD_02, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);

		int keikktkcnt = 0;
		// 最大機器提供サービス数
		int max_kktk_svc_cnt = 0;
		// 最小機器提供サービス数
		int min_kktk_svc_cnt = 0;

		if (SETHIN_DIV_KOBET.equals(fusv0133CC1Map.get(MAP_SETHN_DIV)))
		{
			keikktkcnt = Integer.parseInt(bean.sendMessageString(FUW07101SFConst.KEI_KIKI_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			// 最大機器提供サービス数を取得する
			max_kktk_svc_cnt = Integer.parseInt(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_PSB_MAX_CNT));
			// フロント用定義ファイルを取得する
			Map<String, String> dispDefMapMinKkCnt = JFUWebCommon.getDispItemsAsMap(QUERY_MIN_KKTK_SVC_CNT_PATH, QUERY_ATTR_NAME);
			// 最小機器提供サービス数を設定する
//			min_kktk_svc_cnt = Integer.parseInt(dispDefMapMinKkCnt.get(pcrs_kktksvc_list_dtl.get("kktk_svc_cd")));
			min_kktk_svc_cnt = Integer.parseInt(dispDefMapMinKkCnt.get(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)));
			// メッシュwifiの場合、現在所持する機器数から申込可能台数を決定する
			if (JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV).equals(MSKM_KIKI_DIV_MESHWIFI))
			{
				if (keikktkcnt == 0)
				{
					min_kktk_svc_cnt = 2;
				} else if (keikktkcnt == 1)
				{
					// 機器数が1台はありえないので「契約状態エラー(0102)」
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
				}
			}
// ANK-3825-00-00 MOD END

			if (keikktkcnt > 0)
			{
				// 対象の機器の所持数が1台以上の場合、最小機器提供サービス数に1を設定
				min_kktk_svc_cnt = 1;
			}

			for (int i = min_kktk_svc_cnt; i < (max_kktk_svc_cnt - keikktkcnt + 1); i++)
			{
				// 申込台数名リスト
				mskmSbtList.sendMessageString(FUW07101SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, i + DAI_TANI);
				// 申込台数値リスト
				mskmSbtList.sendMessageString(FUW07101SFConst.VAL_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i));
			}
		}
		else
		{
			// 申込台数名リスト
			mskmSbtList.sendMessageString(FUW07101SFConst.NM_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, "1" + SET_TANI);
			// 申込台数値リスト
			mskmSbtList.sendMessageString(FUW07101SFConst.VAL_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, "1");
		}

		X31SWebLog.DEBUG_LOG.debug("★申込台数リスト設定(コンボボックス用)（setMskmSbtList） END ★");

	}

	/**
	 * ルーター機能リスト設定(コンボボックス用) 
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param outputMap SIFアウトプット
	 * @throws Exception	すべての例外
	 */
	private void setRouterKinoList(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ルーター機能リスト設定(コンボボックス用)（setRouterKinoList） START ★");

		// 申込区分
		String mskmKikiDib = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV);
		// ファミリーパック申込有無
		String famipaMskmUmu = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.FAMIPA_MSKM_UMU);
		// 保有多機能ルーター機能種別
		String ownTknRouterKind = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_TKN_ROUTER_KIND);

		// 申込機器区分がその他の場合リターン
		if (MSKM_KIKI_DIV_OTHER.equals(mskmKikiDib))
		{
			return;
		}

		// ファミパ有で多機能ルーターの無線機能を持っている場合は、エラーにする
		if (JFUStrConst.CD00002_1.equals(famipaMskmUmu) && "1".equals(ownTknRouterKind))
		{
			// 交換できる機器が存在しないためエラー
			X31SWebLog.DEBUG_LOG.info("----- FUW07101_setRouterKinoList() 交換できる機器が存在しないためエラー -----");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0109);
		}

		// ルーター機能リスト情報取得
		Map<String, String> routerKinoMap = JFUWebCommon.getDispItemsAsMap(ROUTER_KINO, QUERY_ATTR_NAME);
		// ルーター機能リスト
		X31SDataBeanAccessArray routerKinoListArray = bean.getDataBeanArray(FUW07101SFConst.ROUTER_KINO_LIST);
		routerKinoListArray.clearArray();
		X31SDataBeanAccess routerKinoList = routerKinoListArray.addDataBean();

		// 多機能ルーター申込の場合
		for (String id : routerKinoMap.keySet())
		{
			// ルーター機能リスト
			routerKinoList.sendMessageString(FUW07101SFConst.ROUTER_KINO_LIST_17, X31CWebConst.DATABEAN_ADD_VALUE, routerKinoMap.get(id));
		}

		// 初期値設定
		// ルーター機能名を設定
		X31SDataBeanAccess routerKinoBean = bean.getDataBeanArray(FUW07101SFConst.ROUTER_KINO_LIST).getDataBean(0);
		String indexStr = "0";
		if (JFUStrConst.CD00002_1.equals(famipaMskmUmu))
		{
			// ファミパ有の場合、無線ルーター機能固定
			indexStr = "0";
		}
		else
		{
			if ("1".equals(ownTknRouterKind))
			{
				// 保有多機能ルーターが、無線ルーターの場合、有線ルーター機能固定
				indexStr = "1";
			}
			else if ("2".equals(ownTknRouterKind))
			{
				// 保有多機能ルーターが、有線ルーターの場合、無線ルーター機能固定
				indexStr = "0";
			}
		}
		routerKinoBean.sendMessageString(FUW07101SFConst.ROUTER_KINO_SELECT_17, X31CWebConst.DATABEAN_SET_VALUE, indexStr);

		// ルーター機能名設定
		setRouterKino(bean);

		X31SWebLog.DEBUG_LOG.debug("★ルーター機能リスト設定(コンボボックス用)（setRouterKinoList） END ★");

	}

	/**
	 * 共有フォームBean情報の取得(サービスフォームBeanに設定)
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commonInfoBean	共有フォームBean
	 * @throws Exception		すべての例外
	 */
	private void setCommonInfoBeanToSvcFormBean(X31SDataBeanAccess bean, X31SDataBeanAccess commonInfoBean) throws Exception
	{

		X31SWebLog.DEBUG_LOG.debug("★共有フォームBean情報の取得(サービスフォームBeanに設定)（setCommonInfoBeanToSvcFormBean） START ★");

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.SSO情報
		// -------------------------------------------------
		X31SDataBeanAccess ssoInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SSO_INFO).getDataBean(0);
		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客契約情報.サービス契約情報
		// -------------------------------------------------
		X31SDataBeanAccess svcKeiInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);

		setSsoInfo(bean, ssoInfo, svcKeiInfo);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客契約情報
		// -------------------------------------------------
		X31SDataBeanAccess genCustKeiInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.GEN_CUST_KEI_INFO).getDataBean(0);
		setGenCustKeiInfo(bean, genCustKeiInfo);

		setSvcKeiInfo(bean, svcKeiInfo);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客契約情報.サービス契約情報.サービス契約回線内訳情報
		// -------------------------------------------------
		X31SDataBeanAccess svcKeiKaisenUcwkInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO).getDataBean(0);
		setSvcKeiKaisenUcwkInfo(bean, svcKeiKaisenUcwkInfo);

		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客契約情報.請求契約情報
		// -------------------------------------------------
		X31SDataBeanAccess seikyKeiInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SEIKY_KEI_INFO).getDataBean(0);
		setSeikyKeiInfo(bean, seikyKeiInfo);

		// -------------------------------------
		// 住所 keisha_ad
		// -------------------------------------
		// 住所出力編集処理部品にて結合（パターン01）
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KEISHA_AD, JZMAdOutputEdit.getPtn01(JFUWebCommon.getDataBeanItemByPath(
				genCustKeiInfo, CommonInfoCFConst.KEISHA_STATE_NM_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo,
				CommonInfoCFConst.KEISHA_CITY_NM_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.KEISHA_OAZTSU_NM_22),
				JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.KEISHA_AZCHO_NM_22), JFUWebCommon.getDataBeanItemByPath(
						genCustKeiInfo, CommonInfoCFConst.KEISHA_BNCHIGO_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo,
						CommonInfoCFConst.KEISHA_ADRTTM_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.KEISHA_ADRRM_22)));

		// サービス契約回線内訳情報Bean
		X31SDataBeanAccess svcKeiKaisenUcwkInfoBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.SVC_KEI_KAISEN_UCWK_INFO);
		bean.sendMessageString(FUW07101SFConst.SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiKaisenUcwkInfoBean.sendMessageString(
				CommonInfoCFConst.SVC_KEI_KAISEN_UCWK_NO_26, X31CWebConst.DATABEAN_GET_VALUE));

		X31SWebLog.DEBUG_LOG.debug("★共有フォームBean情報の取得(サービスフォームBeanに設定)（setCommonInfoBeanToSvcFormBean） END ★");

	}

	/**
	 * SSO情報をサービスフォームBeanに設定します。
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param ssoInfo		共有フォームBean.WEB変更情報.SSO情報
	 * @throws Exception	すべての例外
	 */
	private void setSsoInfo(X31SDataBeanAccess bean, X31SDataBeanAccess ssoInfo,X31SDataBeanAccess svcKeiInfo) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★SSO情報をサービスフォームBeanに設定（setSsoInfo） START ★");

		// ----------------------------------------------
		// 画面定義情報の取得
		// ----------------------------------------------
		// 画面表示文言_提供方法
		Map<String, String> dispDefMap = JFUWebCommon.getDispItemsAsMap(QUERY_TK_WAY_PATH, QUERY_ATTR_NAME);

		// --------------------------------------------------------------------------------------------------------------------
		// 21 ＳＳＯ情報 sso_info
		// --------------------------------------------------------------------------------------------------------------------
		// 提供方法 tk_way
		String tk_way = JFUWebCommon.getDataBeanItemByPath(ssoInfo, CommonInfoCFConst.TK_WAY_21);

		// -------------------------------------
		// 提供方法 tk_way  機器提供種別コード kktk_sbt_cd
		// -------------------------------------
		// 「提供方法」が"01"（買取）の場合
		if (TK_WAY_KAITORI.equals(tk_way))
		{
			// "販売"
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TK_WAY, dispDefMap.get(KEY_TK_WAY_KAITORI));
			// "01"（機器提供種別コード 買取）
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KKTK_SBT_CD, JFUStrConst.CD00212_01);
//			// 買取の機能の蓋閉め
//			// 業務共通例外クラス："0120"（申し込み受付不可エラー）
//			X31SWebLog.DEBUG_LOG.info("----- 提供条件に買取の指定 申し込み受付不可エラー -----");
//			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0120);
		}
		// 「提供方法」が"02"（レンタル）の場合
		else if (TK_WAY_RENT.equals(tk_way))
		{
			// "レンタル"
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TK_WAY, dispDefMap.get(KEY_TK_WAY_RENT));
			// "02"（機器提供種別コード レンタル）
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KKTK_SBT_CD, JFUStrConst.CD00212_02);
		}

		// 型番号 model_no
		String model_no = JFUWebCommon.getDataBeanItemByPath(ssoInfo, CommonInfoCFConst.MODEL_NO_21);

// ANK-4427-00-00 ADD START
		String nttOrsDiv = JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.NTTORS_DIV_23);
		// NTT卸の場合、メッシュWi-FI以外は不可とする
		if (!JFUWebCommon.isNull(nttOrsDiv))
		{
			if(!"MESHWIFI".equals(model_no)) {
				// メッシュWi-Fi以外の場合は、申し込み受付不可エラーとする
				// 業務共通例外クラス："0120"（申し込み受付不可エラー）
				X31SWebLog.DEBUG_LOG.info("----- 型番号にメッシュWi-Fi以外を指定 申し込み受付不可エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0120);
			}
		}
// ANK-4427-00-00 ADD END

// ANK-4432-00-00 ADD START
		// 料金グループコード
		String prcGrpCd = JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.PRC_GRP_CD_23);
		
		// サービスタイプ識別コード
		String keySvcTypeSkbtCd = null;
		if("02".equals(prcGrpCd))
		{
			// ホーム
			keySvcTypeSkbtCd = "HF";
		}else if("03".equals(prcGrpCd))
		{
			// メゾン
			keySvcTypeSkbtCd = "MZ";
		}else if("04".equals(prcGrpCd))
		{
			// マンション
			keySvcTypeSkbtCd = "MF";
		};
		
		// 型番号が無線LAN中継器の場合
		if("WLR".equals(model_no))
		{
			// 無線LAN中継器宅内機器型式コード特定用オブジェクト
			Map<String, String> dispDefMapModelWlr = JFUWebCommon.getDispItemsAsMap(QUERY_WLR_PATH, QUERY_ATTR_NAME);
			// サービス呼び出し処理
			String wlr = callSvcFUSV0376(keySvcTypeSkbtCd, dispDefMapModelWlr);
			// 宅内機器型式コード taknkiki_model_cd
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TAKNKIKI_MODEL_CD, wlr);
		// 型番号がメッシュWi-Fiの場合
		}else if("MESHWIFI".equals(model_no))
		{
			// メッシュWi-Fi宅内機器型式コード特定用オブジェクト
			Map<String, String> dispDefMapModelMeshwifi = JFUWebCommon.getDispItemsAsMap(QUERY_MESHWIFI_PATH, QUERY_ATTR_NAME);
			// サービス呼び出し処理
			String meshwifi = callSvcFUSV0376(keySvcTypeSkbtCd, dispDefMapModelMeshwifi);
			// 宅内機器型式コード taknkiki_model_cd
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TAKNKIKI_MODEL_CD, meshwifi);
		}else{
			// 宅内機器型式コード taknkiki_model_cd
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TAKNKIKI_MODEL_CD, model_no);
		}
// ANK-4432-00-00 ADD END

		// -------------------------------------
		// 申込機器区分 mskm_kiki_div
		// -------------------------------------
		// 型番号が”*EORT*”の場合
		if (MODEL_NO_JDG_CHR_EORT.equals(model_no))
		{
			// ”1”（ルータ）
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV, MSKM_KIKI_DIV_ROUTER);
		}
		// それ以外
		else
		{
			// PLC用の型番号を取得する
			Map<String, String> dispDefMapModel = JFUWebCommon.getDispItemsAsMap(QUERY_MODEL_NO_PLC_PATH, QUERY_ATTR_NAME);
			// メッシュwifiの型番号を取得する
			// 最小機器提供サービス数を設定する
			String plcModel = dispDefMapModel.get(MODEL_PLC);
			if (plcModel.equals(model_no))
			{
// ANK-2776-00-00 MOD START
//				// ”2”（その他）
//				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV, MSKM_KIKI_DIV_OTHER);
				X31SWebLog.DEBUG_LOG.info("----- 型番号にPLCを指定 新規申し込み受付不可エラー -----");
				// 型番号が"BB-HPL11"(PLC)の場合に共通エラー画面に遷移する
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0011);
// ANK-2776-00-00 MOD END
			}
			else
			{
// ANK-3529-00-00 ADD START
				// 無線LAN中継機申し込みの場合
// ANK-4432-00-00 MOD START
				//String wirelessLanModel = dispDefMapModel.get(MODEL_WIRELESS_LAN);
// ANK-4432-00-00 MOD END
// ANK-3825-00-00 ADD START
				// メッシュwifi申込の場合
// ANK-4432-00-00 MOD START
				//String meshwifiModel = dispDefMapModel.get(MODEL_MESH_WIFI);
// ANK-4432-00-00 MOD END
// ANK-3825-00-00 ADD END
				// IP-STB用の型番号を取得する
				String smpModel = dispDefMapModel.get(MODEL_SMP);
// ANK-4432-00-00 MOD START
				if ("WLR".equals(model_no))
// ANK-4432-00-00 MOD END
				{
					// ”2”（無線LAN中継器）
					JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV, MSKM_KIKI_DIV_OTHER);
				}
// ANK-3825-00-00 ADD START
// ANK-4432-00-00 MOD START
				else if ("MESHWIFI".equals(model_no))
// ANK-4432-00-00 MOD END
				{
					// ”3”（メッシュwifi）
					JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV, MSKM_KIKI_DIV_MESHWIFI);
				}
				else if (smpModel.equals(model_no))
				{
					
					// ”4”（IP-STB）
					JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV, MSKM_KIKI_DIV_IPSTB);
					// 型番選択リストの設定
					setModelSelectList(bean);
				}
				else
				{
// ANK-3529-00-00 ADD END
				// 型番号がPLCでもない場合は、申し込み受付不可エラーとする
				// 業務共通例外クラス："0120"（申し込み受付不可エラー）
				X31SWebLog.DEBUG_LOG.info("----- 型番号にルータ、PLC以外を指定 申し込み受付不可エラー -----");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0120);
				}
			}
		}

		X31SWebLog.DEBUG_LOG.debug("★SSO情報をサービスフォームBeanに設定（setSsoInfo） END ★");

	}

// ANK-4432-00-00 ADD START
	/**
	 * サービス呼出処理（FUSV0376_宅内機器型式コード取得）
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commonInfoBean	共有フォームBean
	 * @param func_cd			機能コード
	 * @throws Exception		すべての例外
	 */
	private String callSvcFUSV0376(String keySvcTypeSkbtCd, Map<String, String> dispDefMap) throws Exception
	{

		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_ID_TAKNKIKI_MODEL_CODE);

		// 設定値格納用マップを生成。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// DataBean-BPマッピング
		FUSV0376_FUSV0376OPDBMapper mapper = new FUSV0376_FUSV0376OPDBMapper();

		// サービスの入力値設定
		// 各種通信機器申込（申し込む）作業項目マップ01上りマッピング
		// 各種通信機器申込み登録コモンコンポーネント部品上りマッピング
		mapper.setFUSV037601CC(inputMap, keySvcTypeSkbtCd, dispDefMap);
		String modelNo = null;
		
		try
		{
			// サービス呼出
			invokeService(paramMap, inputMap, outputMap);
			// 宅内機器型式コード照会
			modelNo = mapper.getFUSV037601CC(outputMap);
		}
		// 業務エラー例外（JCCWebServiceException）が発生している場合
		catch (JCCWebServiceException se)
		{
			X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0376() サービス実行エラー -----");
			checkInsertErr(se);
		}
		
		if(modelNo == null){
			X31SWebLog.DEBUG_LOG.debug("【宅内機器型式コード照会マップ情報 未設定エラー】");
			// システムエラーをスロー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		};
		
		return modelNo;
	}
// ANK-4432-00-00 ADD END

	/**
	 * 現顧客契約情報をサービスフォームBeanに設定します。
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param genCustKeiInfo	共有フォームBean.WEB変更情報.現顧客契約情報
	 * @throws Exception		すべての例外
	 */
	private void setGenCustKeiInfo(X31SDataBeanAccess bean, X31SDataBeanAccess genCustKeiInfo) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★現顧客契約情報をサービスフォームBeanに設定（setGenCustKeiInfo） START ★");

		// --------------------------------------------------------------------------------------------------------------------
		// 22 現顧客契約情報 gen_cust_kei_info
		// --------------------------------------------------------------------------------------------------------------------
		// SYSID sysid
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.SYSID, JFUWebCommon
				.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.SYSID_22));
		// お客様名 cust_nm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KEISHA_NM, JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo,
				CommonInfoCFConst.CUST_NM_22));
		// お客様名カナ cust_kana
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.CUST_KANA, JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo,
				CommonInfoCFConst.CUST_KANA_22));
		// 契約者郵便番号 keisha_pcd
		String keisha_pcd = JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.KEISHA_PCD_22);
		// ※ハイフン編集して画面表示用の「郵便番号」に設定（"〒"はJSPに記載）
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.PCD, JFUWebCommon.hyhunPcd(keisha_pcd));

		// 電話番号 telno
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KEISHA_TELNO, JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo,
				CommonInfoCFConst.TELNO_22));

		// -------------------------------------
		// 住所 keisha_ad
		// -------------------------------------
		// 住所出力編集処理部品にて結合（パターン01）
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KEISHA_AD, JZMAdOutputEdit.getPtn01(JFUWebCommon.getDataBeanItemByPath(
				genCustKeiInfo, CommonInfoCFConst.KEISHA_STATE_NM_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo,
				CommonInfoCFConst.KEISHA_CITY_NM_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.KEISHA_OAZTSU_NM_22),
				JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.KEISHA_AZCHO_NM_22), JFUWebCommon.getDataBeanItemByPath(
						genCustKeiInfo, CommonInfoCFConst.KEISHA_BNCHIGO_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo,
						CommonInfoCFConst.KEISHA_ADRTTM_22), JFUWebCommon.getDataBeanItemByPath(genCustKeiInfo, CommonInfoCFConst.KEISHA_ADRRM_22)));

		X31SWebLog.DEBUG_LOG.debug("★現顧客契約情報をサービスフォームBeanに設定（setGenCustKeiInfo） END ★");

	}

	/**
	 * サービス契約情報をサービスフォームBeanに設定します。
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param svcKeiInfo	共有フォームBean.WEB変更情報.現顧客契約情報.サービス契約情報
	 * @throws Exception	すべての例外
	 */
	private void setSvcKeiInfo(X31SDataBeanAccess bean, X31SDataBeanAccess svcKeiInfo) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★サービス契約情報をサービスフォームBeanに設定（setSvcKeiInfo） START ★");

		// --------------------------------------------------------------------------------------------------------------------
		// 23 サービス契約情報 svc_kei_info
		// --------------------------------------------------------------------------------------------------------------------
		// サービス契約番号 svc_kei_no
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.SVC_KEI_NO, JFUWebCommon.getDataBeanItemByPath(svcKeiInfo,
				CommonInfoCFConst.SVC_KEI_NO_23));
		// 最終更新年月日時分秒 last_upd_dtm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.LAST_UPD_DTM_KEI, JFUWebCommon.getDataBeanItemByPath(svcKeiInfo,
				CommonInfoCFConst.LAST_UPD_DTM_23));
		// 提供方式契約番号 tk_hoshiki_kei_no
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TK_HOSHIKI_KEI_NO, JFUWebCommon.getDataBeanItemByPath(svcKeiInfo,
				CommonInfoCFConst.TK_HOSHIKI_KEI_NO_23));

		X31SWebLog.DEBUG_LOG.debug("★サービス契約情報をサービスフォームBeanに設定（setSvcKeiInfo） END ★");

	}

	/**
	 * サービス契約回線内訳情報をサービスフォームBeanに設定します。
	 * <br>
	 * @param bean					サービスフォームBean
	 * @param svcKeiKaisenUcwkInfo	共有フォームBean.WEB変更情報.現顧客契約情報.サービス契約情報.サービス契約回線内訳情報
	 * @throws Exception			すべての例外
	 */
	private void setSvcKeiKaisenUcwkInfo(X31SDataBeanAccess bean, X31SDataBeanAccess svcKeiKaisenUcwkInfo) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★サービス契約回線内訳情報をサービスフォームBeanに設定（setSvcKeiKaisenUcwkInfo） START ★");

		// --------------------------------------------------------------------------------------------------------------------
		// 26 サービス契約回線内訳情報 svc_kei_kaisen_ucwk_info
		// --------------------------------------------------------------------------------------------------------------------

		// 回線場所住所未確定フラグ kisn_plc_ad_mi_fix_flg
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KISN_PLC_AD_MI_FIX_FLG, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KISN_PLC_AD_MI_FIX_FLG_26));
		// 回線場所＿契約者住所差異フラグ kaisen_plc_ksh_ad_sai_flg
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLC_KSH_AD_SAI_FLG, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLC_KSH_AD_SAI_FLG_26));
		// マンション物件番号 mansion_bukken_no
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MANSION_BUKKEN_NO, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.MANSION_BUKKEN_NO_26));
		// 回線場所電話番号 kaisen_place_telno
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_TELNO, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_TELNO_26));
		// 回線場所住所コード kaisen_place_ad_cd
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_AD_CD, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_AD_CD_26));
		// 回線場所郵便番号 kaisen_place_pcd
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_PCD, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_PCD_26));
		// 回線場所都道府県名 kaisen_place_state_nm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_STATE_NM, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_STATE_NM_26));
		// 回線場所市区町村名 kaisen_place_city_nm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_CITY_NM, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_CITY_NM_26));
		// 回線場所大字通称名 kaisen_place_oaztsu_nm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_OAZTSU_NM, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_OAZTSU_NM_26));
		// 回線場所字丁目名 kaisen_place_azcho_nm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_AZCHO_NM, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_AZCHO_NM_26));
		// 回線場所番地号 kaisen_place_bnchigo
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_BNCHIGO, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_BNCHIGO_26));
		// 回線場所住所補記・建物名 kaisen_place_adrttm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_ADRTTM, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_ADRTTM_26));
		// 回線場所住所補記・部屋番号 kaisen_place_adrrm
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KAISEN_PLACE_ADRRM, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KAISEN_PLACE_ADRRM_26));
		// 回線場所区画整理中フラグ kisn_plc_kkk_seiri_chu_flg
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.KISN_PLC_KKK_SEIRI_CHU_FLG, JFUWebCommon.getDataBeanItemByPath(svcKeiKaisenUcwkInfo,
				CommonInfoCFConst.KISN_PLC_KKK_SEIRI_CHU_FLG_26));

		X31SWebLog.DEBUG_LOG.debug("★サービス契約回線内訳情報をサービスフォームBeanに設定（setSvcKeiKaisenUcwkInfo） END ★");

	}

	/**
	 * 請求契約情報をサービスフォームBeanに設定します。
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param seikyKeiInfo		共有フォームBean.WEB変更情報.現顧客契約情報.サービス契約情報.サービス契約回線内訳情報
	 * @throws Exception		すべての例外
	 */
	private void setSeikyKeiInfo(X31SDataBeanAccess bean, X31SDataBeanAccess seikyKeiInfo) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★請求契約情報をサービスフォームBeanに設定（setSeikyKeiInfo） START ★");

		// --------------------------------------------------------------------------------------------------------------------
		// 32 請求契約情報 seiky_kei_info
		// --------------------------------------------------------------------------------------------------------------------
		// 請求契約番号 seiky_kei_no
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.SEIKY_KEI_NO, JFUWebCommon.getDataBeanItemByPath(seikyKeiInfo,
				CommonInfoCFConst.SEIKY_KEI_NO_32));

		X31SWebLog.DEBUG_LOG.debug("★請求契約情報をサービスフォームBeanに設定（setSeikyKeiInfo） END ★");

	}

	/**
	 * 料金表情報の設定
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param prc			料金
	 * @param pplan_kttanka_list	料金情報
	 * @param sethn_div		セット品区分
	 * @throws Exception	すべての例外
	 */
	private void setPrcInfoArea(X31SDataBeanAccess bean, String prc, ArrayList<HashMap<String, String>> pplan_kttanka_list, String sethn_div, String initialTanka)
			throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★料金表情報の設定（setPrcInfoArea） START ★");

		// 機器提供種別コード="01"(買取)の場合
		if (JFUStrConst.CD00212_01.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.KKTK_SBT_CD)))
		{
			// 【料金表の表示】 ■買取Ver■
			setPrcInfoAreaKaitori(bean, prc, pplan_kttanka_list, sethn_div, initialTanka);
		}
		// 機器提供種別コード="02"(レンタル)の場合
		else if (JFUStrConst.CD00212_02.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.KKTK_SBT_CD)))
		{
			// 【料金表の表示】 ■レンタルVer■
			setPrcInfoAreaRent(bean, prc, pplan_kttanka_list, sethn_div, initialTanka);
		}

		X31SWebLog.DEBUG_LOG.debug("★料金表情報の設定（setPrcInfoArea） END ★");

	}

	/**
	 * 料金表情報の設定【買取Ver】
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param mainpPrc		本体料金
	 * @param pplan_kttanka_list	料金情報
	 * @param sethn_div		セット品区分
	 * @throws Exception	すべての例外
	 */
	private void setPrcInfoAreaKaitori(X31SDataBeanAccess bean, String mainpPrc, ArrayList<HashMap<String, String>> pplan_kttanka_list,
			String sethn_div, String initialTanka) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★料金表情報の設定【買取Ver】（setPrcInfoAreaKaitori） START ★");

		// ----------------------------------------------
		// 【料金表の表示】 ■販売Ver■
		// ┏━━━━━━━━━━━━━━┓
		// ┃価格(税込み)                ┃
		// ┣━━━━━┳━━━━━━━━┫
		// ┃本体      ┃     9,999 円/台┃	←(mainpPrc)
		// ┗━━━━━┻━━━━━━━━┛
		// ----------------------------------------------

		// ----------------------------------------------
		// 画面定義情報の取得
		// ----------------------------------------------
		// 料金表プロパティ情報取得
		Map<String, String> dispDefMap = JFUWebCommon.getDispItemsAsMap(QUERY_DISPCTL_PATH, QUERY_ATTR_NAME);

		String mainpPrcTaniCdNm = JFUStrConst.EMPTY;

		// 金額単位
		if (SETHIN_DIV_SET.equals(sethn_div))
		{
			mainpPrcTaniCdNm = EN_SET_TANI;
		}
		else
		{
			mainpPrcTaniCdNm = pplan_kttanka_list.get(0).get("pplan_kotei_tani_cd_nm");
		}

		// ▼金額・単位の取得(カンマ編集込み)
		// 本体料金 ←「本体料金 ＋ 金額単位」
		String prcInfoMainpPrc = JFUWebCommon.formatNumber(mainpPrc) + JFUStrConst.HALF_SPACE + mainpPrcTaniCdNm;

		// テーブルタイトルエリア表示用リスト
		List<String> setTableTitleList = new ArrayList<String>(1);
		setTableTitleList.add(dispDefMap.get(TITLE_LABEL_1)); // 価格(税込み)
		setTableTitleList.add(PRC_INFO_AREA_TITLE_INITIAL); // 初期費用

		// テーブルスタイルクラス１リスト
		// →テーブルヘッダのスタイルを指定
		List<String> setTableStyleClass1List = new ArrayList<String>(1);
		setTableStyleClass1List.add(dispDefMap.get(TITLE_STYLE_0)); // 月額料金スタイル
		setTableStyleClass1List.add(INITIAL_COST);	// 初期費用用

		// テーブルスタイルクラス２リスト
		// →テーブル明細行(左値・右値)のスタイルを指定
		List<String> setTableStyleClass2List = new ArrayList<String>(1);
		setTableStyleClass2List.add(dispDefMap.get(COL_STYLE_0)); // 月額料金スタイル
		setTableStyleClass2List.add(INIT_SYLE_CLASS_SEC);	// 初期費用用

		// ▼ユニバーサルサービス料テーブルの設定
		// テーブル左値リスト1 (料金名)
		List<String> setTableLeftValueList1 = new ArrayList<String>(2);
		setTableLeftValueList1.add(dispDefMap.get(COL_LABEL_1_0)); // 本体

		// テーブル右値リスト1 (料金額)
		List<String> setTableRightValueList1 = new ArrayList<String>(2);

		if (prcInfoMainpPrc.startsWith(ZERO))
		{
			// 「0」で始まっている場合は「無料」をセット
			setTableRightValueList1.add(JFUStrConst.FREE_LABEL);
		}
		else
		{
			setTableRightValueList1.add(prcInfoMainpPrc); // 本体
		}

		// テーブル値識別子エリア表示用リスト1(未使用)
		List<String> setTableValueSkbtList1 = new ArrayList<String>(0);

		// ********************************************************************************************************************
		// ●初期費用
		// ********************************************************************************************************************
		List<String> setTableValueSkbtList2 = new ArrayList<String>();
		List<String> setTableLeftValueList2 = new ArrayList<String>();
		List<String> setTableRightValueList2 = new ArrayList<String>();
		if (!JFUStrConst.EMPTY.equals(initialTanka))
		{
			int prc = Integer.parseInt(initialTanka);
			// 識別ID
			setTableValueSkbtList2.add("inital_title");
			// 左値：名称
			setTableLeftValueList2.add(JFUWebCommon.getDispItem(PRC_INIT_COLUMN_JIMUTE));

			// 右値：金額＋単位
			// 初期費用の単位は「円/台」
			setTableRightValueList2.add(JPCUtilCommon.formatNumber(Integer.toString(prc)) + JFUStrConst.HALF_SPACE + mainpPrcTaniCdNm);
		}

		// ■テーブルの値、左値、右値の各リストを格納するマップ
		// ・KEY＝「タイトル名＋タイトル番号(0から始まる連番)＋テーブル左値リスト設定キー」
		// ・KEY＝「タイトル名＋タイトル番号(0から始まる連番)＋テーブル右値リスト設定キー」
		// ・KEY＝「タイトル名＋タイトル番号(0から始まる連番)＋テーブル値識別リスト設定キー」
		Map<String, List<String>> tableValueMap = new LinkedHashMap<String, List<String>>(3);

		// ▼月額料金(販売)
		tableValueMap.put(dispDefMap.get(TITLE_LABEL_1) + String.valueOf(0) + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList1);
		tableValueMap.put(dispDefMap.get(TITLE_LABEL_1) + String.valueOf(0) + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList1);
		tableValueMap.put(dispDefMap.get(TITLE_LABEL_1) + String.valueOf(0) + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList1);

		// 初期費用情報
		if (setTableValueSkbtList2.size() > 0)
		{
			tableValueMap.put(PRC_INFO_AREA_TITLE_INITIAL + 1 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList2);
			tableValueMap.put(PRC_INFO_AREA_TITLE_INITIAL + 1 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList2);
			tableValueMap.put(PRC_INFO_AREA_TITLE_INITIAL + 1 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList2);
		}

		// ----------------------------------------------
		// 料金情報エリアリストBean設定(共通メソッド)
		// ----------------------------------------------
		X31SDataBeanAccessArray prcInfoAreaListArray = bean.getDataBeanArray(JFUStrConst.PRC_INFO_PRC_INFO_AREA_LIST);
		X31SDataBeanAccess titleListArrayAccess = prcInfoAreaListArray.addDataBean();

		// コメントエリア表示用リスト設定(未使用)
		JFUWebCommon.setCommentList(titleListArrayAccess, new ArrayList<String>(0), new ArrayList<String>(0));
		// 備考エリア表示用リスト設定(未使用)
		JFUWebCommon.setBikoList(titleListArrayAccess, new ArrayList<String>(0), new ArrayList<String>(0));
		// テーブルタイトル識別子リスト(未使用)
		List<String> setTableTitleSkbtList = new ArrayList<String>(0);

		// テーブルタイトルエリア表示用リスト設定
		JFUWebCommon.setTableTitleList(titleListArrayAccess, setTableTitleSkbtList, setTableTitleList, setTableStyleClass1List,
				setTableStyleClass2List, tableValueMap);

		// ----------------------------------------------
		// サービスフォームBeanに料金情報設定(メール用)
		// ----------------------------------------------
		// 料金 prc ←「本体料金」
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.PRC, mainpPrc);
		// 料金単位 prc_tani
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.PRC_TANI, GOKEI_HI_TANI);

		X31SWebLog.DEBUG_LOG.debug("★料金表情報の設定【買取Ver】（setPrcInfoAreaKaitori） END ★");

	}

	/**
	 * 料金表情報の設定【レンタルVer】
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param gtgkPrc		月額料金
	 * @param pplan_kttanka_list	料金情報
	 * @param sethn_div		セット品区分
	 * @throws Exception	すべての例外
	 */
	private void setPrcInfoAreaRent(X31SDataBeanAccess bean, String gtgkPrc, ArrayList<HashMap<String, String>> pplan_kttanka_list, String sethn_div, String initialTanka)
			throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★料金表情報の設定【レンタル】（setPrcInfoAreaRent） START ★");

		// ----------------------------------------------
		// 【料金表の表示】 ■レンタルVer■
		// ┏━━━━━━━━━━━━━━┓
		// ┃価格(税込み)                ┃
		// ┣━━━━━┳━━━━━━━━┫
		// ┃月額料金  ┃     9,999 円/台┃←(gtgkPrc)
		// ┗━━━━━┻━━━━━━━━┛
		// ----------------------------------------------

		// ----------------------------------------------
		// 画面定義情報の取得
		// ----------------------------------------------
		// 料金表プロパティ情報取得
		Map<String, String> dispDefMap = JFUWebCommon.getDispItemsAsMap(QUERY_DISPCTL_PATH, QUERY_ATTR_NAME);

		String gtgkPrcTaniCdNm = JFUStrConst.EMPTY;
		// 金額単位
		if (SETHIN_DIV_SET.equals(sethn_div))
		{
			gtgkPrcTaniCdNm = EN_SET_TANI;
		}
		else
		{
			gtgkPrcTaniCdNm = pplan_kttanka_list.get(0).get("pplan_kotei_tani_cd_nm");
		}

// ANK-3805-00-00 ADD START
		// -------------------------------------------------
		// 共有フォームBean.WEB変更情報.現顧客契約情報.サービス契約情報
		// -------------------------------------------------
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess svcKeiInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);
		if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// 無線機能無料マンションまたは無線LAN中継機無料マンションの場合は、多機能ルーター月額料金0円
			if (JFUStrConst.KOJI_SBT_019.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23))
					|| JFUStrConst.KOJI_SBT_020.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23)))
			{
				gtgkPrc = ZERO;
			}
		}
		else if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// 無線LAN中継機無料マンションの場合は、無線LAN中継機月額料金0円
			if (JFUStrConst.KOJI_SBT_020.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23)))
			{
				if (ZERO.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.KEI_KIKI_CNT)))
				{
					gtgkPrc = ZERO;
				}
			}
		}
// ANK-3805-00-00 ADD END

		// ▼金額・単位の取得(カンマ編集込み)
		// 月額料金 ←「ローカル変数.月額料金 ＋ 料金プラン固定単位コード名」
		String prcInfoGtgkPrc = JFUWebCommon.formatNumber(gtgkPrc) + JFUStrConst.HALF_SPACE + gtgkPrcTaniCdNm;

		// テーブルタイトルエリア表示用リスト
		List<String> setTableTitleList = new ArrayList<String>(1);
		setTableTitleList.add(dispDefMap.get(TITLE_LABEL_0)); // 価格(税込み)
		setTableTitleList.add(PRC_INFO_AREA_TITLE_INITIAL); // 初期費用

		// テーブルスタイルクラス１リスト
		// →テーブルヘッダのスタイルを指定
		List<String> setTableStyleClass1List = new ArrayList<String>(1);
		setTableStyleClass1List.add(dispDefMap.get(TITLE_STYLE_0)); // 月額料金スタイル
		setTableStyleClass1List.add(INITIAL_COST);	// 初期費用用

		// テーブルスタイルクラス２リスト
		// →テーブル明細行(左値・右値)のスタイルを指定
		List<String> setTableStyleClass2List = new ArrayList<String>(1);
		setTableStyleClass2List.add(dispDefMap.get(COL_STYLE_0)); // 月額料金スタイル
		setTableStyleClass2List.add(INIT_SYLE_CLASS_SEC);	// 初期費用用

		// ▼月額料金テーブルの設定
		// テーブル左値リスト0 (料金名)
		List<String> setTableLeftValueList0 = new ArrayList<String>(1);
		setTableLeftValueList0.add(dispDefMap.get(COL_LABEL_0_0)); // 月額料金

		// テーブル右値リスト0 (料金額)
		List<String> setTableRightValueList0 = new ArrayList<String>(1);

		if (prcInfoGtgkPrc.startsWith(ZERO))
		{
			// 「0」で始まっている場合は「無料」をセット
			setTableRightValueList0.add(JFUStrConst.FREE_LABEL);
		}
		else
		{
			setTableRightValueList0.add(prcInfoGtgkPrc); // 月額料金
		}

		// ********************************************************************************************************************
		// ●初期費用
		// ********************************************************************************************************************
		List<String> setTableValueSkbtList1 = new ArrayList<String>();
		List<String> setTableLeftValueList1 = new ArrayList<String>();
		List<String> setTableRightValueList1 = new ArrayList<String>();


		if (!JFUStrConst.EMPTY.equals(initialTanka))
		{
			int prc = Integer.parseInt(initialTanka);
			// 識別ID
			setTableValueSkbtList1.add("inital_title");
			// 左値：名称
			setTableLeftValueList1.add(JFUWebCommon.getDispItem(PRC_INIT_COLUMN_JIMUTE));

			// 右値：金額＋単位
			if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				setTableRightValueList1.add(JPCUtilCommon.formatNumber(Integer.toString(prc)) + gtgkPrcTaniCdNm);
			} else if (MSKM_KIKI_DIV_MESHWIFI.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				// メッシュwifiの場合は初期費用の単位は「円」
				setTableRightValueList1.add(JPCUtilCommon.formatNumber(Integer.toString(prc)) + JFUStrConst.YEN);
			}
		}
		// テーブル値識別子エリア表示用リスト0(未使用)
		List<String> setTableValueSkbtList0 = new ArrayList<String>(0);

		// ■テーブルの値、左値、右値の各リストを格納するマップ
		// ・KEY＝「タイトル名＋タイトル番号(0から始まる連番)＋テーブル左値リスト設定キー」
		// ・KEY＝「タイトル名＋タイトル番号(0から始まる連番)＋テーブル右値リスト設定キー」
		// ・KEY＝「タイトル名＋タイトル番号(0から始まる連番)＋テーブル値識別リスト設定キー」
		Map<String, List<String>> tableValueMap = new LinkedHashMap<String, List<String>>();

		// ▼月額料金
		tableValueMap.put(dispDefMap.get(TITLE_LABEL_0) + String.valueOf(0) + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList0);
		tableValueMap.put(dispDefMap.get(TITLE_LABEL_0) + String.valueOf(0) + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList0);
		tableValueMap.put(dispDefMap.get(TITLE_LABEL_0) + String.valueOf(0) + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList0);

		// 初期費用情報
		if (setTableValueSkbtList1.size() > 0)
		{
			tableValueMap.put(PRC_INFO_AREA_TITLE_INITIAL + 1 + JFUStrConst.KEY_TABLE_VALUE_SKBT_LIST, setTableValueSkbtList1);
			tableValueMap.put(PRC_INFO_AREA_TITLE_INITIAL + 1 + JFUStrConst.KEY_TABLE_LEFT_VALUE_LIST, setTableLeftValueList1);
			tableValueMap.put(PRC_INFO_AREA_TITLE_INITIAL + 1 + JFUStrConst.KEY_TABLE_RIGHT_VALUE_LIST, setTableRightValueList1);
		}

		// ----------------------------------------------
		// 料金情報エリアリストBean設定(共通メソッド)
		// ----------------------------------------------
		X31SDataBeanAccessArray prcInfoAreaListArray = bean.getDataBeanArray(JFUStrConst.PRC_INFO_PRC_INFO_AREA_LIST);
		X31SDataBeanAccess titleListArrayAccess = prcInfoAreaListArray.addDataBean();

		// コメントエリア表示用リスト設定(未使用)
		JFUWebCommon.setCommentList(titleListArrayAccess, new ArrayList<String>(0), new ArrayList<String>(0));
		// 備考エリア表示用リスト設定(未使用)
		JFUWebCommon.setBikoList(titleListArrayAccess, new ArrayList<String>(0), new ArrayList<String>(0));
		// テーブルタイトル識別子リスト(未使用)
		List<String> setTableTitleSkbtList = new ArrayList<String>(0);

		// テーブルタイトルエリア表示用リスト設定
		JFUWebCommon.setTableTitleList(titleListArrayAccess, setTableTitleSkbtList, setTableTitleList, setTableStyleClass1List,
				setTableStyleClass2List, tableValueMap);

		// ----------------------------------------------
		// サービスフォームBeanに料金情報設定(メール用)
		// ----------------------------------------------
		// 料金 prc ←「月額料金」
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.PRC, gtgkPrc);
		// 料金単位 prc_tani ←「料金プラン固定単位コード名」
// ANK-3825-00-00 MOD START
		if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.PRC_TANI, GTGK_HI_TANI);
		} else if (MSKM_KIKI_DIV_MESHWIFI.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// メッシュwifiの場合は初期費用の単位は「円」
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.PRC_TANI, JFUStrConst.YEN);
		}
// ANK-3825-00-00 MOD END

		X31SWebLog.DEBUG_LOG.debug("★料金表情報の設定【レンタル】（setPrcInfoAreaRent） END ★");

	}

	/**
	 * 戻るボタン押下処理
	 * <br>
	 * @return	処理結果
	 * @throws Exception	例外
	 */
	public boolean back() throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 戻るボタン押下処理（back） START ★");

		// ****************************************************************************************************
		// *初期設定
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(各種通信機器申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW07101);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW07101);

		X31SWebLog.DEBUG_LOG.debug("★ 戻るボタン押下処理（back） END ★");

		return true;

	}

	/**
	 * 確認処理
	 * <br>
	 * @return	処理結果
	 * @throws Exception	例外
	 */
	public boolean cfm() throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 確認処理（cfm） START ★");

		// ****************************************************************************************************
		// *初期設定
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBean宣言
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// ----------------------------------------------
		// ルータ専用メッセージの設定
		// ----------------------------------------------
		// ルーター文言取得
		getRouterMsgMap(serviceInfoBean, JFUStrConst.ROUTER_MSG_IDX_1);

		// ----------------------------------------------
		// お申し込み台数設定
		// ----------------------------------------------
		setMskmCnt(serviceInfoBean);

		// ----------------------------------------------
		// ルーター機能設定
		// ----------------------------------------------
		setRouterKino(serviceInfoBean);

		// ----------------------------------------------
		// 型番選択値の設定
		// ----------------------------------------------
		setModelSelectCd(serviceInfoBean);

		// ----------------------------------------------
		// 登録サービス（FUSV034）呼出用パラメータ設定
		// ----------------------------------------------
		setFUSV0134Parameter(serviceInfoBean);

		// ----------------------------------------------
		// メール情報設定
		// ----------------------------------------------
		setMailInfo(serviceInfoBean, commonInfoBean);

		// ----------------------------------------------
		// 登録機器情報設定
		// ----------------------------------------------
		setKktkSvkeiAddInfo(serviceInfoBean, commonInfoBean, ADD_KIKI_FLG_UPD, JFUStrConst.EMPTY, JFUStrConst.EMPTY, JFUStrConst.EMPTY,
				JFUStrConst.EMPTY, new HashMap<String, Object>(), JFUStrConst.EMPTY);

		// ----------------------------------------------
		// サービス呼出処理
		// ----------------------------------------------
		callSvcFUSV0134(serviceInfoBean, commonInfoBean, FUNC_CD_2);

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(各種通信機器申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW07102);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW07102);

		X31SWebLog.DEBUG_LOG.debug("★ 確認処理（cfm） END ★");

		return true;

	}

	/**
	 * メール情報設定
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commonInfoBean	共有フォームBean
	 * @throws Exception		すべての例外
	 */
	private void setMailInfo(X31SDataBeanAccess bean, X31SDataBeanAccess commonInfoBean) throws Exception
	{

		X31SWebLog.DEBUG_LOG.debug("★ メール情報設定(setMailInfo) START ★");

		// 料金コース＿機器提供サービス一覧照会明細リスト
		X31SDataBeanAccessArray pcrsKktkSvcList = bean.getDataBeanArray(FUW07101SFConst.PCRS_KKTKSVC_LIST);

		// -----------------------------------------------------------------------------------------------------------------------------
		// 送信先リスト mlad_list
		// -----------------------------------------------------------------------------------------------------------------------------
		// 送信先メールアドレス mlad ← 共有フォームBean.現顧客契約情報「連絡先自宅メールアドレス」
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MLAD_LIST + JFUWebCommon.SEP_0 + FUW07101SFConst.MLAD_03, JFUWebCommon
				.getDataBeanItemByPath(JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.GEN_CUST_KEI_INFO),
						CommonInfoCFConst.RRKS_HOME_MLAD_22));

		// -----------------------------------------------------------------------------------------------------------------------------
		// 非定型文字列リスト text_htk_ckam_moji_list
		// -----------------------------------------------------------------------------------------------------------------------------
		X31SDataBeanAccessArray textHtkCkamMojiList = bean.getDataBeanArray(FUW07101SFConst.TEXT_HTK_CKAM_MOJI_LIST);
		textHtkCkamMojiList.clearArray();

		// ---------------------------------------
		// サービスフォームBean情報の取得
		// ---------------------------------------
		// 料金 prc
		String prc = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.PRC);
		// 料金単位 prc_tani
		String prc_tani = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.PRC_TANI);

		// 機器提供種別コード kktk_sbt_cd
		String kktk_sbt_cd = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.KKTK_SBT_CD);
		// -----------------------------------------------------------------------------------------------------------------------------
		// 本文非定型置換文字 text_htk_ckam_moji の設定
		// =======================================
		// 共通
		// =======================================
		// [0]契約者名義 keisha_nm
		setCkamMoji(textHtkCkamMojiList, JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.KEISHA_NM));

		if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// [1]お申し込み通信機器 mskm_tushin_kiki (本文表示用)
			setCkamMoji(textHtkCkamMojiList, JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_TUSHIN_KIKI));
			// [2]お申し込み通信機器 mskm_tushin_kiki（お申し込み内容表示用）
			setCkamMoji(textHtkCkamMojiList, JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_TUSHIN_KIKI));
		}
		// [1]お申し込み台数（ルーター）[3]お申し込み台数（その他）
		String mskm_cnt = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_CNT);
		// 保有多機能ルーター機能種別
		String ownTknRouterKind = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_TKN_ROUTER_KIND);
		// 保有ルーター料金コース
		String ownPcrsCd = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_PCRS_CD);

		if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// 多機能ルータ保有の場合
			if (JFUStrConst.CD00134_C94.equals(ownPcrsCd) || JFUStrConst.CD00134_CA8.equals(ownPcrsCd))
			{
				if (OWN_TKN_RT_KIND_0.equals(ownTknRouterKind))
				{
					// 低速多機能ルーター保有時
					// [1]お申し込み通信機器
					setCkamMoji(textHtkCkamMojiList, JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_TUSHIN_KIKI));
					// [2]お申し込み台数
					setCkamMoji(textHtkCkamMojiList, MAIL_WARD_SONOTA_DAISU + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_CNT));
				}
				else
				{
					// 多機能ルーター保有時
					setCkamMoji(textHtkCkamMojiList, MAIL_WARD_TAKINOU_DAISU + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.ROUTER_KINO_NM));
				}
			}
			else
			{
				// 多機能ルーター保有時以外
				// [1]お申し込み通信機器
				setCkamMoji(textHtkCkamMojiList, JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_TUSHIN_KIKI));
				// [2]お申し込み台数
				setCkamMoji(textHtkCkamMojiList, MAIL_WARD_SONOTA_DAISU + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_CNT));
			}
		}
		else
		{
			// 多機能ルーター以外
			setCkamMoji(textHtkCkamMojiList, MAIL_WARD_SONOTA_DAISU + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_CNT));
		}

		if (TK_WAY_RENT.equals(kktk_sbt_cd))
		{
			// =======================================
			// レンタル
			// =======================================

			// -----------------------------------------------------------------------------------------------------------------------------
			// メール明細リスト mail_dtl_list
			// -----------------------------------------------------------------------------------------------------------------------------
// ANK-3057-00-00 MOD START
//			// ルーター速度種別コード router_speed_sbt_cd
//			String pcrsCd = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_PCRS_CD);
//			// ルーター速度種別コード router_speed_sbt_cd
//			String routerSpeedSbtCd = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.ROUTER_SPEED_SBT_CD);
//
//			// メール明細コード取得
//			List<Map<String, String>> routerMsgList =
//					JFUWebCommon.getRouterMessage(TAG_ATTR_VALUE_KIKI, pcrsCd, routerSpeedSbtCd, JFUStrConst.CD00002_0, getVaAdapterUm(bean));
//			Map<String, String> routerMsgMap = routerMsgList.get(JFUStrConst.ROUTER_MSG_IDX_2);
//
//			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_DTL_LIST + JFUWebCommon.SEP_0 + FUW07101SFConst.MAIL_DTL_CD_06,
//					routerMsgMap.get(JFUStrConst.ROUTER_MSG_MAP_KEY_MAIL_DTL_CD));
// ANK-3421-00-00 MOD START
//			// 多機能ルーター保有時以外
//			if (!JFUStrConst.CD01279_G0.equals(repairChangeGroupCd))
//			{
//				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_DTL_LIST + JFUWebCommon.SEP_0 + FUW07101SFConst.MAIL_DTL_CD_06,
//						MAIL_DTL_CD_FUD1000078);
//			}
// ANK-3421-00-00 MOD END
// ANK-3057-00-00 MOD END
			// -----------------------------------------------------------------------------------------------------------------------------

			// メールコード mail_cd
			// その他機器の場合
			if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_OTHER);
			}
			// ルーターの場合
// ANK-3825-00-00 MOD START
			else if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
// ANK-3825-00-00 MOD END
			{
				String svcKeiStat = bean.sendMessageString(FUW07101SFConst.OWN_SVC_KEI_STAT, X31CWebConst.DATABEAN_GET_VALUE);
				String kktk_svc_kei_stat = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_KKTK_SVC_KEI_STAT);
				if (JFUStrConst.CD00037_020.equals(svcKeiStat) || JFUStrConst.CD00056_020.equals(kktk_svc_kei_stat))
				{
					// ■サービス契約が照査済 又は 機器提供サービス契約が照査済の場合
					if (JFUStrConst.CD00134_C94.equals(ownPcrsCd) || JFUStrConst.CD00134_CA8.equals(ownPcrsCd))
					{
						// 多機能ルータ保有の場合
						JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_KIRIKAE_SYOSA);
					}
					else
					{
						// 多機能ルーター保有時以外
						JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_RENT_SYOSA);
					}
				}
				else
				{
					// ■サービス契約が照査済以外の場合
					// 多機能ルータ保有の場合
					if (JFUStrConst.CD00134_C94.equals(ownPcrsCd) || JFUStrConst.CD00134_CA8.equals(ownPcrsCd))
					{
						if (OWN_TKN_RT_KIND_0.equals(ownTknRouterKind))
						{
							// 低速多機能ルーター保有時 ※メールコード FUM1000033はJFUStrConstに移すこと
							JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, "FUM1000033");
						}
						else
						{
							// 多機能ルーター保有時
							JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_TKNHOYU);
						}
					}
					else
					{
						// 多機能ルーター保有時以外
						JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_RENT);
					}
				}
			}
// ANK-3825-00-00 ADD START
			else if (MSKM_KIKI_DIV_MESHWIFI.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_MESHWIFI);
// ANK-3825-00-00 ADD END
			}
// ANK-4427-00-00 MOD START
//			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_DTL_LIST + JFUWebCommon.SEP_0 + FUW07101SFConst.MAIL_DTL_CD_06,
//					JFUStrConst.MAIL_DTL_CD_FUD1000059);
			if (MSKM_KIKI_DIV_MESHWIFI.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_DTL_LIST + JFUWebCommon.SEP_0 + FUW07101SFConst.MAIL_DTL_CD_06,
					JFUStrConst.MAIL_DTL_CD_FUD1000087);
			}
			else
			{
				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_DTL_LIST + JFUWebCommon.SEP_0 + FUW07101SFConst.MAIL_DTL_CD_06,
					JFUStrConst.MAIL_DTL_CD_FUD1000059);
			}
// ANK-4427-00-00 MOD END
// ANK-3421-00-00 ADD END
		}
		// =======================================
		// 買取
		// =======================================
		else if (TK_WAY_KAITORI.equals(kktk_sbt_cd))
		{
			// -----------------------------------------------------------------------------------------------------------------------------
			// 本文非定型置換文字 text_htk_ckam_moji の設定
			// 料金計算 ________________________________________________________________________________________

			if (!MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				// 本体料金(料金 prc × お申し込み台数 mskm_cnt)
				String mainp_prc = (new BigDecimal(prc).multiply(new BigDecimal(mskm_cnt))).toPlainString();
				// __________________________________________________________________________________________________
	
				// [4]合計金額(本体料金(計算後)＋"円"（固定)） 注）送料無し
				setCkamMoji(textHtkCkamMojiList, JFUWebCommon.formatNumber(mainp_prc) + JFUStrConst.HALF_SPACE + GOKEI_HI_TANI);
				// [5]本体料金(計算後) ＋ 料金単位 prc_tani
				setCkamMoji(textHtkCkamMojiList, JFUWebCommon.formatNumber(mainp_prc) + JFUStrConst.HALF_SPACE + prc_tani);
				// -----------------------------------------------------------------------------------------------------------------------------
			}

			String mail_dtl_cd = MAIL_DTL_CD_FUD1000058;
			// 料金コース_機器提供サービス一意照会明細
			for (int i = 0; i < pcrsKktkSvcList.getCount(); i++)
			{
				// 料金コース＿機器提供サービス一覧照会明細リスト明細
				X31SDataBeanAccess pcrsKktkSvcListDtl = pcrsKktkSvcList.getDataBean(i);
				if (JFUStrConst.KK0771_KKTK_SVC_CD_C014
						.equals(JFUWebCommon.getDataBeanItemByPath(pcrsKktkSvcListDtl, FUW07101SFConst.KKTK_SVC_CD_16)))
				{
					mail_dtl_cd = MAIL_DTL_CD_FUD1000057;
				}
			}
			if (MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				mail_dtl_cd = JFUStrConst.MAIL_DTL_CD_FUD1000059;
			}

			// -----------------------------------------------------------------------------------------------------------------------------
			// メール明細リスト mail_dtl_list
			// -----------------------------------------------------------------------------------------------------------------------------
			// メール明細コード mail_dtl_cd ← FURouterMessageDefinition.xmlで定義した文字列
			JFUWebCommon
					.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_DTL_LIST + JFUWebCommon.SEP_0 + FUW07101SFConst.MAIL_DTL_CD_06, mail_dtl_cd);
			// -----------------------------------------------------------------------------------------------------------------------------

			// メールコード mail_cd
			if (MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
			{
				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_IPSTB);
			}
			else
			{
				JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MAIL_CD, JFUStrConst.MAIL_CD_TSKK_MSKM_HAMBAI);
			}
		}

		X31SWebLog.DEBUG_LOG.debug("★ メール情報設定後Bean ★");
		com.fujitsu.futurity.common.JSYwebLog.println(com.fujitsu.futurity.common.JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null,
				null);

		X31SWebLog.DEBUG_LOG.debug("★ メール情報設定(setMailInfo) END ★");

	}

	/**
	 * 非定型文字列リストBeanを追加し、本文非定型置換文字に引数の文字列を設定します。
	 * <br>
	 * @param textHtkCkamMojiList	定型文字列リストアクセサ
	 * @param ckam_moji				置換文字
	 * @throws Exception			すべての例外
	 */
	private void setCkamMoji(X31SDataBeanAccessArray textHtkCkamMojiList, String ckam_moji) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 非定型文字列リストBeanを追加し、本文非定型置換文字に引数の文字列を設定(setCkamMoji) START ★");

		// 非定型文字列リスト text_htk_ckam_moji_list
		X31SDataBeanAccess textHtkCkamMojiBean = textHtkCkamMojiList.addDataBean();
		// 本文非定型置換文字 text_htk_ckam_moji
		JFUWebCommon.setDataBeanItemByPath(textHtkCkamMojiBean, FUW07101SFConst.TEXT_HTK_CKAM_MOJI_04, ckam_moji);

		X31SWebLog.DEBUG_LOG.debug("★ 非定型文字列リストBeanを追加し、本文非定型置換文字に引数の文字列を設定(setCkamMoji) END ★");

	}

	/**
	 * お申し込み台数設定
	 * <br>
	 * 画面で選択されたコンボボックスのインデックスから台数を取得し、お申し込み台数、および表示用お申し込み台数に設定します。
	 * <br>
	 * @param bean			サービスフォームBean
	 * @throws Exception	すべての例外
	 */
	private void setMskmCnt(X31SDataBeanAccess bean) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ お申し込み台数設定(setMskmCnt) START ★");

		// 申込台数リスト
		X31SDataBeanAccess mskmSbtList = bean.getDataBeanArray(FUW07101SFConst.MSKM_SBT_LIST).getDataBean(0);

		// 画面選択値インデックス取得
		String indexStr = JFUWebCommon.getDataBeanItemByPath(mskmSbtList, FUW07101SFConst.SELECT_CD_02);
		// 申込台数名リストから、選択された台数名を取得
		String nmValue = mskmSbtList.sendMessageString(FUW07101SFConst.NM_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, Integer.valueOf(indexStr));
		// 申込台数値リストから、選択された台数を取得
		String cdValue = mskmSbtList.sendMessageString(FUW07101SFConst.VAL_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, Integer.valueOf(indexStr));

		// 表示用お申し込み台数設定
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.DSP_MSKM_CNT, nmValue);
		// お申し込み台数設定
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.MSKM_CNT, cdValue);

		X31SWebLog.DEBUG_LOG.debug("★ お申し込み台数設定(setMskmCnt) END ★");

	}

	/**
	 * ルーター機能設定
	 * <br>
	 * 画面で選択されたコンボボックスのインデックスから台数を取得し、お申し込み台数、および表示用お申し込み台数に設定します。
	 * <br>
	 * @param bean			サービスフォームBean
	 * @throws Exception	すべての例外
	 */
	private void setRouterKino(X31SDataBeanAccess bean) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ ルーター機能設定(setRouterKino) START ★");

		// 申込区分
		String mskmKikiDib = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV);
		// 申込機器区分がその他の場合リターン
		if (MSKM_KIKI_DIV_OTHER.equals(mskmKikiDib))
		{
			return;
		}

		// ルーター機能リスト
		X31SDataBeanAccess routerKinoList = bean.getDataBeanArray(FUW07101SFConst.ROUTER_KINO_LIST).getDataBean(0);

		// 画面選択値インデックス取得
		String indexStr = JFUWebCommon.getDataBeanItemByPath(routerKinoList, FUW07101SFConst.ROUTER_KINO_SELECT_17);
		// ルーター機能リストから、選択されたルーター機能名を取得
		String routerKinoName =
				routerKinoList.sendMessageString(FUW07101SFConst.ROUTER_KINO_LIST_17, X31CWebConst.DATABEAN_GET_VALUE, Integer.valueOf(indexStr));

		// ルーター機能名を設定
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.ROUTER_KINO_NM, routerKinoName);

		X31SWebLog.DEBUG_LOG.debug("★ ルーター機能設定(setRouterKino) END ★");

	}

	/**
	 * 機器提供サービス契約登録情報設定
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commonInfoBean	共有フォームBean
	 * @param flg				登録機器情報設定フラグ
	 * @param hmpin_svc_kei_no	サービス契約番号
	 * @param hmpin_kktk_svc_kei_no		機器提供サービス契約番号
	 * @param gene_add_dtm	世代登録年月日時分秒
	 * @param pcrsKktksvcListModelCd	宅内機器型式コード
	 * @param outputMap SIFアウトプット
	 * @param sethn_div		セット品区分
	 * @throws Exception		すべての例外
	 */
	private void setKktkSvkeiAddInfo(X31SDataBeanAccess bean, X31SDataBeanAccess commonInfoBean, String flg, String hmpin_svc_kei_no,
			String hmpin_kktk_svc_kei_no, String gene_add_dtm, String pcrsKktksvcListModelCd, HashMap<String, Object> outputMap, String sethn_div)
			throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 機器提供サービス契約登録情報設定(setKktkSvkeiAddInfo) START ★");

		HashMap<String, ArrayList<HashMap<String, String>>> fusv0133CC1Map = null;
		ArrayList<HashMap<String, String>> tkkiki_mdl_list = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, String>> pplan_list = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, String>> pcrs_kktksvc_list = new ArrayList<HashMap<String, String>>();

		if (outputMap.containsKey(SC_TITLE_FUSV013301CC))
		{
			fusv0133CC1Map = (HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get(SC_TITLE_FUSV013301CC);
		}

		if (ADD_KIKI_FLG_KOBET.equals(flg) || ADD_KIKI_FLG_SET.equals(flg))
		{
			if (fusv0133CC1Map == null)
			{
				X31SWebLog.DEBUG_LOG.debug("【各種通信機器申込（初期表示）マップ情報 未設定エラー】");
				// システムエラーをスロー
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}

			// 宅内機器型式一意照会明細
			tkkiki_mdl_list = fusv0133CC1Map.get(MAP_KEY_EZM0411A010CBSMsg1LIST);

			// 料金プラン一覧照会明細
			pplan_list = fusv0133CC1Map.get(MAP_KEY_EKK0591B003CBSMsg1LIST);

			// 料金コース_機器提供サービス一意照会明細
			pcrs_kktksvc_list = fusv0133CC1Map.get(MAP_KEY_EKK0801A010CBSMsg1LIST);

		}
		// -----------------------------------------------------------------------------------------------------------------------------
		// 登録機器リスト add_kiki_list
		// -----------------------------------------------------------------------------------------------------------------------------

		if (ADD_KIKI_FLG_KOBET.equals(flg))
		{
			// 機器提供料金プラン別機器型式候補リスト
			X31SDataBeanAccessArray kktkPplanBetuKikiMdlList = bean.getDataBeanArray(FUW07101SFConst.KKTK_PPLAN_BETU_KIKI_MDL_LIST);
			// 機器提供料金プラン別機器型式候補リスト明細
			X31SDataBeanAccess kktkPplanBetuKikiMdlListDtl = kktkPplanBetuKikiMdlList.getDataBean(0);

			// 料金コース_機器提供サービス一意照会明細
			HashMap<String, String> pcrsKktksvcListDtl = pcrs_kktksvc_list.get(0);

			// 宅内機器型式リスト明細
			HashMap<String, String> tkkikiMdlListDtl = tkkiki_mdl_list.get(0);

			X31SDataBeanAccessArray add_kiki_list = bean.getDataBeanArray(FUW07101SFConst.ADD_KIKI_LIST);
			X31SDataBeanAccess genSvcKeiInfoList = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);

			String kk0341_prc_grp_cd = genSvcKeiInfoList.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE);

			String kk0341_pcrs_cd = JFUWebCommon.getDataBeanItemByPath(kktkPplanBetuKikiMdlListDtl, FUW07101SFConst.PCRS_CD_01);

			String kk0341_pplan_cd = JFUStrConst.EMPTY;

			for (int i = 0; i < pplan_list.size(); i++)
			{
				if (kk0341_pcrs_cd.equals(pplan_list.get(i).get("pcrs_cd")))
				{
					kk0341_pplan_cd = pplan_list.get(i).get("pplan_cd");
				}
			}

			String kk0341_kktk_svc_cd = pcrsKktksvcListDtl.get("kktk_svc_cd");

			String kk0341_taknkiki_model_cd = JFUWebCommon.getDataBeanItemByPath(kktkPplanBetuKikiMdlListDtl, FUW07101SFConst.TAKNKIKI_MODEL_CD);

			String kk0341_svc_kei_no = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.SVC_KEI_NO);

			String kk0341_sysid = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.SYSID);

			String kk0341_seiky_kei_no = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.SEIKY_KEI_NO);

			String kk0341_taknkiki_sethin_model_cd = JFUStrConst.EMPTY;

			String kk0341_taknkiki_sbt_cd = tkkikiMdlListDtl.get("taknkiki_sbt_cd");

			String kk0341_hmpin_kiki_svc_kei_no = JFUStrConst.EMPTY;

			if (JFUStrConst.KK0771_KKTK_SVC_CD_C024.equals(kk0341_kktk_svc_cd) && hmpin_kktk_svc_kei_no != null
					&& !JFUStrConst.EMPTY.equals(hmpin_kktk_svc_kei_no))
			{
				kk0341_hmpin_kiki_svc_kei_no = hmpin_kktk_svc_kei_no;
			}

			// 登録機器リスト add_kiki_list
			X31SDataBeanAccess kktkSvkeiAddListBean = add_kiki_list.addDataBean();
			// 料金グループコード kk0341_prc_grp_cd
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_PRC_GRP_CD_08, kk0341_prc_grp_cd);
			// 料金コースコード kk0341_pcrs_cd
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_PCRS_CD_08, kk0341_pcrs_cd);
			// 料金プランコード kk0341_pplan_cd
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_PPLAN_CD_08, kk0341_pplan_cd);
			// 機器提供サービスコード kk0341_kktk_svc_cd
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_KKTK_SVC_CD_08, kk0341_kktk_svc_cd);
			// 宅内機器型式コード kk0341_taknkiki_model_cd
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_TAKNKIKI_MODEL_CD_08, kk0341_taknkiki_model_cd);
			// サービス契約番号 kk0341_svc_kei_no
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_SVC_KEI_NO_08, kk0341_svc_kei_no);
			// SYSID kk0341_sysid
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_SYSID_08, kk0341_sysid);
			// 請求契約番号 kk0341_seiky_kei_no
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_SEIKY_KEI_NO_08, kk0341_seiky_kei_no);
			// 宅内機器セット品型コード kk0341_taknkiki_sethin_model_cd
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_TAKNKIKI_SETHIN_MODEL_CD_08,
					kk0341_taknkiki_sethin_model_cd);
			// 宅内機器種別コード kk0341_taknkiki_sbt_cd
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_TAKNKIKI_SBT_CD_08, kk0341_taknkiki_sbt_cd);

			// 異動区分 ido_div 
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.IDO_DIV_08, JFUStrConst.CD00576_00026);

			// 返品機器提供サービス契約番号 hempin_kktk_svc_kei_no
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.HEMPIN_KKTK_SVC_KEI_NO_08, kk0341_hmpin_kiki_svc_kei_no);
			// セット品数量 sethn_cnt
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.SETHN_CNT_08, "1");

			// 機器提供サービス契約番号
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_KKTK_SVC_KEI_NO_08, hmpin_kktk_svc_kei_no);

			// 世代登録年月日時分秒（機器）
			JFUWebCommon.setDataBeanItemByPath(kktkSvkeiAddListBean, FUW07101SFConst.KK0341_GENE_ADD_DTM_08, gene_add_dtm);

		}
		else if (ADD_KIKI_FLG_UPD.equals(flg))
		{
			X31SDataBeanAccessArray addKikiList = bean.getDataBeanArray(FUW07101SFConst.ADD_KIKI_LIST);

			String mskm_cnt = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_CNT);
			String model_cd = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.TAKNKIKI_MODEL_CD);

			for (int i = 0; i < addKikiList.getCount(); i++)
			{
				X31SDataBeanAccess addKikiListDataBean = addKikiList.getDataBean(i);

				// 申込数量 cnt
				JFUWebCommon.setDataBeanItemByPath(addKikiListDataBean, FUW07101SFConst.CNT_08, mskm_cnt);
				// 宅内機器型式コード
				if (MSKM_KIKI_DIV_IPSTB.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
				{
					JFUWebCommon.setDataBeanItemByPath(addKikiListDataBean, FUW07101SFConst.KK0341_TAKNKIKI_SBT_CD_08, model_cd);
				}
			}
		}

		X31SWebLog.DEBUG_LOG.debug("★ 機器提供サービス契約登録情報設定(setKktkSvkeiAddInfo) END ★");

	}

	/**
	 * 登録処理
	 * <br>
	 * @return	処理結果
	 * @throws Exception	例外
	 */
	public boolean mskm() throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 登録処理(mskm) START ★");

		// ****************************************************************************************************
		// *初期設定
		// *****************************************************************************************************
		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBean宣言
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// 利用可能サービスチェック
		JFUWebCommon.checkCommonRelation(this, SVC_USECASE_ID_FUSV0134);

		// ルーター文言取得
		getRouterMsgMap(serviceInfoBean, JFUStrConst.ROUTER_MSG_IDX_2);

		// ----------------------------------------------
		// サービス呼出処理
		// ----------------------------------------------

		callSvcFUSV0134(serviceInfoBean, commonInfoBean, FUNC_CD_1);

		// ****************************************************************************************************
		// * 遷移先画面情報の設定(各種通信機器申込画面へ遷移)
		// *****************************************************************************************************
		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW07103);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW07103);

		X31SWebLog.DEBUG_LOG.debug("★ 登録処理(mskm) END ★");

		return true;

	}

	/**
	 * 引数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;
	}

	/**
	 * 料金コースコードに紐づくコース選択を取得します
	 * <br>
	 * @param kojiak_list_dtl 工事案件
	 * @return true：処理対象、false：処理対象外
	 */
	private Boolean checkMifinKj(HashMap<String, String> kojiak_list_dtl)
	{
		X31SWebLog.DEBUG_LOG.debug("★ 料金コースコードに紐づくコース選択を取得(checkMifinKj) START ★");

		// 工事案件種別コード
		String kojiak_sbt_cd = kojiak_list_dtl.get("kojiak_sbt_cd");
		// 工事案件ステータス
		String kojiak_stat = kojiak_list_dtl.get("kojiak_stat");

		int kojiak_sbt_cd_flg = 0;
		int kojiak_stat_flg = 0;

		//■工事案件種別コード判定
		if (JFUStrConst.CD00577_001.equals(kojiak_sbt_cd))
		{ // 新設
			kojiak_sbt_cd_flg = 1;
		}
		else if (JFUStrConst.CD00577_002.equals(kojiak_sbt_cd))
		{ // 撤去(解約)
			kojiak_sbt_cd_flg = 1;
		}
		else if (JFUStrConst.CD00577_003.equals(kojiak_sbt_cd))
		{ // 住変(新設)
			kojiak_sbt_cd_flg = 1;
		}
		else if (JFUStrConst.CD00577_004.equals(kojiak_sbt_cd))
		{ // 住変(撤去)
			kojiak_sbt_cd_flg = 1;
		}
		else if (JFUStrConst.CD00577_009.equals(kojiak_sbt_cd))
		{ // プラン変更（収容替）
			kojiak_sbt_cd_flg = 1;
		}
		else if (JFUStrConst.CD00577_012.equals(kojiak_sbt_cd))
		{ // 面開発
			kojiak_sbt_cd_flg = 1;
		}
		else if (JFUStrConst.CD00577_015.equals(kojiak_sbt_cd))
		{ // ONU交換工事
			kojiak_sbt_cd_flg = 1;
		}

		//■工事案件ステータス判定
		if (JFUStrConst.CD00474_140.equals(kojiak_stat))
		{ // 依頼済：「新設」は処理対象、それ以外は対象外。
			kojiak_stat_flg = ((JFUStrConst.CD00577_001.equals(kojiak_sbt_cd)) ? 0 : 1);
		}
		else if (JFUStrConst.CD00474_150.equals(kojiak_stat))
		{ // 宅内調査完了済：「新設」は処理対象、それ以外は対象外。
			kojiak_stat_flg = ((JFUStrConst.CD00577_001.equals(kojiak_sbt_cd)) ? 0 : 1);
		}
		else if (JFUStrConst.CD00474_160.equals(kojiak_stat))
		{ // 工事会社決定済
			kojiak_stat_flg = 1;
		}
		else if (JFUStrConst.CD00474_170.equals(kojiak_stat))
		{ // 宅内機器予定登録済
			kojiak_stat_flg = 1;
		}
		else if (JFUStrConst.CD00474_180.equals(kojiak_stat))
		{ // 仮鍵開発行依頼済
			kojiak_stat_flg = 1;
		}
		else if (JFUStrConst.CD00474_130.equals(kojiak_stat))
		{ // 受付済
			if (JFUStrConst.CD00577_002.equals(kojiak_sbt_cd) || JFUStrConst.CD00577_004.equals(kojiak_sbt_cd)
					|| JFUStrConst.CD00577_009.equals(kojiak_sbt_cd) || JFUStrConst.CD00577_015.equals(kojiak_sbt_cd))
			{
				kojiak_stat_flg = 1;
			}
		}

		if (kojiak_stat_flg == 1 && kojiak_sbt_cd_flg == 1)
		{
			X31SWebLog.DEBUG_LOG.debug("★ 料金コースコードに紐づくコース選択を取得(checkMifinKj) false END ★");
			return false;
		}
		else
		{
			X31SWebLog.DEBUG_LOG.debug("★ 料金コースコードに紐づくコース選択を取得(checkMifinKj) true END ★");
			return true;
		}
	}

	// OM-2019-0000912 ADD START
	/**
	 * 住変中の工事案件が取消済かチェック
	 * <br>
	 * @param kojiak_list_dtl 工事案件
	 * @return コース選択
	 */
	private Boolean checkAdchgKojiakCancel(HashMap<String, String> kojiak_list_dtl)
	{
		X31SWebLog.DEBUG_LOG.debug("★ 住変中の工事案件が取消済かチェック(checkAdchgKojiakCancel) START ★");
		

		// 工事案件ステータス
		String kojiak_stat = kojiak_list_dtl.get("kojiak_stat");

		int kojiak_stat_flg = 0;

		if (JFUStrConst.CD00474_900.equals(kojiak_stat))
		{ // 取消済
			kojiak_stat_flg = 1;
		}

		if (kojiak_stat_flg == 1)
		{
			X31SWebLog.DEBUG_LOG.debug("★ 住変中の工事案件が取消済かチェック(checkAdchgKojiakCancel) false END ★");
			return false;
		}
		else
		{
			X31SWebLog.DEBUG_LOG.debug("★ 住変中の工事案件が取消済かチェック(checkAdchgKojiakCancel) true END ★");
			return true;
		}
	}
	// OM-2019-0000912 ADD END
	
	/**
	 * サービス呼出処理（FUSV0134_各種通信機器申込(申し込む)）
	 * <br>
	 * @param bean				サービスフォームBean
	 * @param commonInfoBean	共有フォームBean
	 * @param func_cd			機能コード
	 * @throws Exception		すべての例外
	 */
	private void callSvcFUSV0134(X31SDataBeanAccess bean, X31SDataBeanAccess commonInfoBean, String func_cd) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ サービス呼出処理（FUSV0134_各種通信機器申込(申し込む)）(callSvcFUSV0134) START ★");

		String opeDate = JFUWebCommon.getOpeDate(this, null);

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = { bean, commonInfoBean };

		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_ID_MSKM);

		// 設定値格納用マップを生成。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// DataBean-BPマッピング
		FUSV0134_FUSV0134OPDBMapper mapper = new FUSV0134_FUSV0134OPDBMapper();

		// サービスの入力値設定
		// 各種通信機器申込（申し込む）作業項目マップ01上りマッピング
		// 各種通信機器申込み登録コモンコンポーネント部品上りマッピング
		mapper.setFUSV013401CC(paramBean, inputMap, func_cd);
		// eoプレミアムクラブ施策申請条件一覧照会コモンコンポーネント部品上りマッピング
		boolean rooterPrcSisak = rooterPrcSisak(bean);
		mapper.setFUSV013406CC(paramBean, inputMap, func_cd, rooterPrcSisak);
		// 割引サービス契約一覧照会（サービス契約番号）コモンコンポーネント部品上りマッピング
		mapper.setFUSV013406SC(paramBean, inputMap, func_cd);
		// チケット利用申請依頼コモンコンポーネント部品上りマッピング
		mapper.setFUSV013407CC(paramBean, inputMap, func_cd);
		// ファミリーパック誘導要否判定CC
		/** 2017/04/13 ANK-3149-00-00 mod start */
		mapper.setFUSV013408CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2, isMusenRooter(bean));
		/** 2017/04/13 ANK-3149-00-00 mod end */
		if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV))
				|| MSKM_KIKI_DIV_MESHWIFI.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			mapper.setFUSV013409CC(paramBean, inputMap, func_cd);
		}

		X31SDataBeanAccess svcKeiInfo = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);
		Map<String, String> mrtMlanMuryoWribSvcCdMap = JFUWebCommon.getDispItemsAsMap(QUERY_MRT_MLAN_MURYO_WRIB_SVC_CD_PATH, QUERY_ATTR_NAME);

		if (mrtMlanMuryoWribSvcCdMap != null)
		{
			String wribSvcCd = mrtMlanMuryoWribSvcCdMap.get(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV));

			if (!JFUWebCommon.isNull(wribSvcCd))
			{
				if (isMusenRooter(bean))
				{
					// 無線ルータの申し込み、変更がある場合

					if (JFUStrConst.KOJI_SBT_019.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23))
							|| JFUStrConst.KOJI_SBT_020.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23)))
					{
						// 無線機能無料マンションの場合

						// 「＜集営案件＞無線ルーター利用料永年無料(W40000100)」
						mapper.setFUSV013410CC(paramBean, inputMap, func_cd, wribSvcCd);
					}
				}
				else if (MSKM_KIKI_DIV_OTHER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
				{
					// eo無線LAN中継器の申し込みがある場合

					if (JFUStrConst.KOJI_SBT_020.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.KOJI_SBT_23)))
					{
						// 無線LAN中継機無料マンションの場合

						// 「<集営案件>eo無線LAN中継器利用料割引(W40000115)」
						mapper.setFUSV013410CC(paramBean, inputMap, func_cd, wribSvcCd);
					}
				}
			}
		}

		try
		{
			// サービス呼出
			invokeService(paramMap, inputMap, outputMap);
			// eoプレミアムクラブ施策申請条件一覧照会
			mapper.getPremiumClubList(paramBean, outputMap, func_cd, opeDate);

			// ファミリーパック誘導要否判定CC
			/** 2017/04/13 ANK-3149-00-00 del start */
			//mapper.getFUSV013408CC(bean, outputMap);
			/** 2017/04/13 ANK-3149-00-00 del end */

		}
		// 業務エラー例外（JCCWebServiceException）が発生している場合
		catch (JCCWebServiceException se)
		{
			X31SWebLog.DEBUG_LOG.info("----- FUW07101_callSvcFUSV0134() サービス実行エラー -----");
			checkInsertErr(se);
		}

		X31SWebLog.DEBUG_LOG.debug("★ サービス呼出処理（FUSV0134_各種通信機器申込(申し込む)）(callSvcFUSV0134) END ★");

	}

	/**
	 * ルーター申込か判定
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @return true時、ルーター申込
	 */
	private boolean isMskmKikiRt(X31SDataBeanAccess bean)
	{
		return MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV));
	}

	/**
	 * 無線ルーター申込か判定
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @return true時、無線ルーター
	 */
	private boolean isMusenRooter(X31SDataBeanAccess bean)
	{
		// 申込機器区分がルータ
		if (MSKM_KIKI_DIV_ROUTER.equals(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV)))
		{
			// ルーター機能リスト
			X31SDataBeanAccess routerKinoList = bean.getDataBeanArray(FUW07101SFConst.ROUTER_KINO_LIST).getDataBean(0);
			String indexStr = JFUWebCommon.getDataBeanItemByPath(routerKinoList, FUW07101SFConst.ROUTER_KINO_SELECT_17);
			if (DSP_ROOTER_MUSEN.equals(indexStr))
			{
				return true;
			}
		}
		return false;
	}

	/**
	 * 登録サービス（FUSV0134）呼出用パラメータ設定<br>
	 * ※FUW07101/FUW07102共通処理
	 * <br>
	 * @param serviceInfoBean	サービスフォームBean
	 * @throws Exception		すべての例外
	 */
	private void setFUSV0134Parameter(X31SDataBeanAccess serviceInfoBean) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 登録サービス（FUSV0134）呼出用パラメータ設定(setFUSV0134Parameter) START ★");

		// 異動理由明細
		X31SDataBeanAccess idoDtlList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW07101SFConst.IDO_DTL_LIST);
		idoDtlList.sendMessageString(FUW07101SFConst.IDO_RSN_CD_15, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00846_56);

		// 申込登録明細
		X31SDataBeanAccess mskmDtlList = JFUWebCommon.createAndGetDataBeanTypeByPath(serviceInfoBean, FUW07101SFConst.MSKM_DTL_LIST);
		// 申込登録明細 申込形態コード
		mskmDtlList.sendMessageString(FUW07101SFConst.MSKM_FORM_CD_14, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00591_01);

		X31SWebLog.DEBUG_LOG.debug("★ 登録サービス（FUSV0134）呼出用パラメータ設定(setFUSV0134Parameter) END ★");

	}

	/**
	*  登録時のエラー内容判定
	* <br>
	* @param se
	* @return 処理結果
	*/

	/********************************************************************************************************
	*  登録時のエラー内容判定
	* @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が"EKK0341C160"(機器提供サービス契約料金コース変更)かつエラーフラグが"EA"の場合
			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"（お客様情報変更エラー）
					X31SWebLog.DEBUG_LOG.info("----- FUW07101_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"（契約状態エラー）
					X31SWebLog.DEBUG_LOG.info("----- FUW07101_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"（お客様情報変更エラー）
					X31SWebLog.DEBUG_LOG.info("----- FUW07101_checkInserErr() 機器提供サービス契約登録EDエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}
			// テンプレートIDが"EKK0341D010"(機器提供サービス契約登録)、かつエラーフラグが"EA"の場合
			else if (TEMPLATE_ID_SVC_KEI_KKTK_TRK.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
			{
				// アイテムIDが"upd_dtm_df"(更新年月日時分秒(更新前))の場合
				if (ITEM_ID_UPD_DTM_DF.equals(itemid))
				{
					// 業務共通例外クラス："0201"（お客様情報変更エラー）
					X31SWebLog.DEBUG_LOG.info("----- FUW07101_checkInserErr() サービス契約料金プラン変更EAエラー -----");
					throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
				}
			}

		}

		// 業務共通例外クラス："0002"（システムエラー）
		X31SWebLog.DEBUG_LOG.info("----- FUW07101_checkInserErr() システムエラー -----");
		throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);

	}

	/**
	 *  VAアダプター有無
	 * <br>
	 * @param serviceInfoBean サービスFormビーン
	 * @return 有無
	 */
	private String getVaAdapterUm(X31SDataBeanAccess serviceInfoBean)
	{
		// サービスビーンの設定
		String mskmKikiDiv = JFUWebCommon.getDataBeanItemByPath(serviceInfoBean, FUW07101SFConst.MSKM_KIKI_DIV);
		String hmpinKktkSvcKeiNoVa = JFUWebCommon.getDataBeanItemByPath(serviceInfoBean, FUW07101SFConst.HMPIN_KKTK_SVC_KEI_NO_VA);

		String vaAdapterUm = JFUStrConst.EMPTY;

		if (MSKM_KIKI_DIV_ROUTER.equals(mskmKikiDiv))
		{
			if (!JFUWebCommon.isNull(hmpinKktkSvcKeiNoVa))
			{
				vaAdapterUm = JFUStrConst.CD00002_1; // "1":有
			}
			else
			{
				vaAdapterUm = JFUStrConst.CD00002_0; // "0":無
			}
		}
		return vaAdapterUm;
	}

	/**
	 * プロパティファイルからlist形式で設定値を取得します。
	 * 
	 * <br>
	 * @param query プロパティKey
	 * @param attrName プロパティ属性名
	 * @return 設定値
	 * @throws Exception
	 */
	private List<String> getPropList(String query, String attrName) throws Exception
	{

		String val = JFUWebCommon.getDispItemsAsMap(query, QUERY_ATTR_NAME).get(attrName);
		List<String> groupList = new ArrayList<String>();
		if (val != null && !JFUStrConst.EMPTY.equals(val))
		{
			String[] groupL = val.split(JFUStrConst.COMMA, 0);
			groupList = Arrays.asList(groupL);
		}
		return groupList;

	}

	/**
	 * 多機能ルーター（無線）月額費用割引の施策が使用可能か判定を行います。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @return true時、月額費用割引の施策使用可能
	 */
	private boolean rooterPrcSisak(X31SDataBeanAccess bean)
	{
		// 「ファミリーパック契約無 かつ 無線申込(*1)」の場合は、パラメータ設定「(2)月額費用割引（E003）」を行う。
		boolean isMusen = isMusenRooter(bean);
		String famipaUmu = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.FAMIPA_MSKM_UMU);

		X31SWebLog.DEBUG_LOG.debug("■★ ファミリーパック申込有無（FAMIPA_MSKM_UMU） ★■" + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.FAMIPA_MSKM_UMU));
		X31SWebLog.DEBUG_LOG.debug("■★ 機器送料有無（KIKI_SORYO_UM） ★■" + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.KIKI_SORYO_UM));
		X31SWebLog.DEBUG_LOG.debug("■★ 料金（PRC） ★■" + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.PRC));
		X31SWebLog.DEBUG_LOG.debug("■★ 送料（SORYO） ★■" + JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.SORYO));
// ANK-3529-00-00 ADD START
		// 無線LAN中継機またはメッシュwifiの場合はパラメータ設定「(2)月額費用割引（E004）」を行う
		if (!isMskmKikiRt(bean))
		{
			return true;
		}
// ANK-3529-00-00 ADD END
		if (!isMusen)
		{
			// 無線ルーター申込でない場合
			return false;
		}
		if (JFUStrConst.CD00002_1.equals(famipaUmu))
		{
			// ファミリーパック契約有の場合
			return false;
		}
		return true;
	}

	/**
	 * ルーター文言マップを返却します。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @param msgIdx 取得する配列番号
	 * @throws Exception 
	 */
	private void getRouterMsgMap(X31SDataBeanAccess bean, int msgIdx) throws Exception
	{
		List<Map<String, String>> routerMsgList = new ArrayList<Map<String, String>>();

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess genSvcKeiInfoList = commonInfoBean.getDataBeanArray(JFUWebCommon.SVC_KEI_INFO).getDataBean(0);
		String prc_grp_cd = genSvcKeiInfoList.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, X31CWebConst.DATABEAN_GET_VALUE);
		String koji_sbt = genSvcKeiInfoList.sendMessageString(CommonInfoCFConst.KOJI_SBT_23, X31CWebConst.DATABEAN_GET_VALUE);

		String svc_kei_stat = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_SVC_KEI_STAT);
		String tk_hoshiki_cd = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.TK_HOSHIKI_CD);
		String tk_hoshiki_pattern_cd = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.TK_HOSHIKI_PATTERN_CD);

		String kktk_svc_kei_stat = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_KKTK_SVC_KEI_STAT);
		String mskmKikiDib = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV);
		String own_takn_rt_flg = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_TAKN_RT_FLG);
		String ownTknRouterKind = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.OWN_TKN_ROUTER_KIND);

		X31SWebLog.DEBUG_LOG.debug("■■■■■ルーター文言判定 " + " prc_grp_cd[" + prc_grp_cd + "]" + " koji_sbt[" + koji_sbt + "]" + " svc_kei_stat["
				+ svc_kei_stat + "]" + " tk_hoshiki_cd[" + tk_hoshiki_cd + "]" + " tk_hoshiki_pattern_cd[" + tk_hoshiki_pattern_cd + "]"
				+ " own_takn_rt_flg[" + own_takn_rt_flg + "]"  + " mskmKikiDib[" + mskmKikiDib + "]"+ " kktk_svc_kei_stat[" + kktk_svc_kei_stat + "]");

		// ■注記文言送付先表示フラグ
		//「ネット契約状態:照査済」かつ 「種別がホームタイプまたはメゾンタイプまたはマンションタイプ光配線)」の場合、非表示とする
		// ※マンションタイプ光配線は、光コンセント、お客様直送（ＭＡＮＭＯＳ管理）を含まない。
		// ※この表示条件変更は機器の種類問わず全てが対象
		// ※多機能ルーターの有線無線切替の場合は表示対象外とする
		String chukiSofusakiDspFlg = JFUStrConst.EMPTY;	//『商品お届け先住所は、ご契約ご住所となります。』
		// ■ルーター文言表示フラグ
		String rooterMsgDspFlg = JFUStrConst.EMPTY;
		// ■ルータ専用メッセージ
		String rooterMsg = JFUStrConst.EMPTY;

		if (MSKM_KIKI_DIV_ROUTER.equals(mskmKikiDib) && (FLG_ON.equals(own_takn_rt_flg)) && (!OWN_TKN_RT_KIND_0.equals(ownTknRouterKind)))
		{
			// ■ルーターの有線無線切替（機器オプションのみの切替）
			chukiSofusakiDspFlg = JFUStrConst.EMPTY;
			if (JFUStrConst.CD00037_020.equals(svc_kei_stat) || JFUStrConst.CD00056_020.equals(kktk_svc_kei_stat))
			{
				// サービス契約が照査済 又は 機器提供サービス契約が照査済の場合
				if (KOJI_SBT_MUSEN_RT_MURYO.contains(koji_sbt))
				{
					// 多機能ルーターの無線機能が無料
					rooterMsgDspFlg = FLG_ON;
				}
				// 開通前の新設工事中の場合
				if(!JFUWebCommon.isNull(bean.sendMessageString(FUW07101SFConst.KOJIAK_NO, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					routerMsgList =
						JFUWebCommon.getRouterMessage(TAG_ATTR_VALUE_KIKI, JFUStrConst.EMPTY, "koji", JFUStrConst.EMPTY, JFUStrConst.EMPTY,
								JFUStrConst.EMPTY);
					rooterMsg = getResultRooterMsg(routerMsgList, msgIdx);
					// 多機能ルーターの文言表示
					rooterMsgDspFlg = FLG_ON;
				}
			}
			else
			{
				routerMsgList = getRouterMessage();
				rooterMsg = getResultRooterMsg(routerMsgList, msgIdx);
				if (JFUWebCommon.isNull(rooterMsg))
				{
					// 締結済以降は型番は決定しているはずだが、有線無線切替のメッセージのみ設定を行う。
					routerMsgList =
							JFUWebCommon.getRouterMessage(TAG_ATTR_VALUE_KIKI, "mdl_mi_fix", "switch", JFUStrConst.EMPTY, JFUStrConst.EMPTY,
									JFUStrConst.EMPTY);
					rooterMsg = getResultRooterMsg(routerMsgList, msgIdx);
				}
				if (!JFUWebCommon.isNull(rooterMsg))
				{
					rooterMsgDspFlg = FLG_ON;
				}
			}
		}
		else if (JFUStrConst.CD00037_020.equals(svc_kei_stat))
		{
			// ■サービス契約が照査済の場合
			chukiSofusakiDspFlg = FLG_ON;
			if (JFUStrConst.CD00133_04.equals(prc_grp_cd))
			{
				String haiso_way_cd = bean.sendMessageString(FUW07101SFConst.HAISO_WAY_CD, X31CWebConst.DATABEAN_GET_VALUE);
				// マンションの場合
				if (JFUStrConst.TK_HOSHIKI_HIKARI_HAISEN.equals(tk_hoshiki_cd) && (!JFUStrConst.CD01213_51.equals(tk_hoshiki_pattern_cd))
						&& (!JFUStrConst.CD01148_1.equals(haiso_way_cd)))
				{
					// 光配線（光コンセント、お客様直送（ＭＡＮＭＯＳ管理）を含まない）
					chukiSofusakiDspFlg = JFUStrConst.EMPTY;
				}
			}
			else
			{
				// ホーム・メゾンの場合
				chukiSofusakiDspFlg = JFUStrConst.EMPTY;
			}

// ANK-4427-00-00 ADD START
			String nttOrsDiv = JFUWebCommon.getDataBeanItemByPath(genSvcKeiInfoList, CommonInfoCFConst.NTTORS_DIV_23);
			// NTT卸の場合、お客様直送とする
			if (!JFUWebCommon.isNull(nttOrsDiv))
			{
				chukiSofusakiDspFlg = FLG_ON;
			}
// ANK-4427-00-00 ADD END

			if (MSKM_KIKI_DIV_ROUTER.equals(mskmKikiDib))
			{
				if (KOJI_SBT_MUSEN_RT_MURYO.contains(koji_sbt))
				{
					// 多機能ルーターの無線機能が無料
					rooterMsgDspFlg = FLG_ON;
				}
			}
			// 開通前の新設工事中の場合
			if(!JFUWebCommon.isNull(bean.sendMessageString(FUW07101SFConst.KOJIAK_NO, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				routerMsgList =
					JFUWebCommon.getRouterMessage(TAG_ATTR_VALUE_KIKI, JFUStrConst.EMPTY, "koji", JFUStrConst.EMPTY, JFUStrConst.EMPTY,
							JFUStrConst.EMPTY);
				rooterMsg = getResultRooterMsg(routerMsgList, msgIdx);
				// 多機能ルーターの文言表示
				rooterMsgDspFlg = FLG_ON;
			}
		}
		else
		{
			// ■上記以外の場合
			chukiSofusakiDspFlg = FLG_ON;
			routerMsgList = getRouterMessage();
			rooterMsg = getResultRooterMsg(routerMsgList, msgIdx);
			if (MSKM_KIKI_DIV_IPSTB.equals(mskmKikiDib))
			{
				// ストリーミングメディアプレーヤー 
				rooterMsgDspFlg = FLG_ON;
			}
			else if (!JFUWebCommon.isNull(rooterMsg))
			{
				rooterMsgDspFlg = FLG_ON;
			}
		}

		// ■注記文言送付先表示フラグ
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.CHUKI_SOFUSAKI_DSP_FLG, chukiSofusakiDspFlg);
		// ■ルーター文言表示フラグ
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.ROOTER_MSG_DSP_FLG, rooterMsgDspFlg);
		// ■ルータ専用メッセージ
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.BBR_MSG, rooterMsg);

	}

	/**
	 * ルーター文言リストを返却します。
	 * <br>
	 * @return ルータ文言リスト
	 * @throws Exception 
	 */
	private List<Map<String, String>> getRouterMessage() throws Exception
	{
		// サービスフォームBean宣言
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// ----------------------------------------------
		// ルータ専用メッセージの設定
		// ----------------------------------------------
		// ルータ専用メッセージ bbr_msg
		// 料金コースコード
		String pcrsCd = JFUWebCommon.getDataBeanItemByPath(serviceInfoBean, FUW07101SFConst.OWN_PCRS_CD);
		// ルーター速度種別コード router_speed_sbt_cd
		String routerSpeedSbtCd = JFUWebCommon.getDataBeanItemByPath(serviceInfoBean, FUW07101SFConst.ROUTER_SPEED_SBT_CD);
		// 保有多機能ルーター機能種別
		String ownTknRouterKind = JFUWebCommon.getDataBeanItemByPath(serviceInfoBean, FUW07101SFConst.OWN_TKN_ROUTER_KIND);

		// 多機能ルータで機器交換あり（低速多機能ルータ保有）の場合
		if (OWN_TKN_RT_KIND_0.equals(ownTknRouterKind))
		{
			// ルータ速度種別 10ギガ
			return JFUWebCommon.getRouterMessage(TAG_ATTR_VALUE_KIKI, pcrsCd, ROUTER_SPEED_SBT_CD_30, routerSpeedSbtCd, JFUStrConst.CD00002_0,
					getVaAdapterUm(serviceInfoBean));
		}
		// 上記以外
		else
		{
			return JFUWebCommon.getRouterMessage(TAG_ATTR_VALUE_KIKI, pcrsCd, routerSpeedSbtCd, routerSpeedSbtCd, JFUStrConst.CD00002_0,
					getVaAdapterUm(serviceInfoBean));
		}
	}
// ANK-3529-00-00 ADD START
	/**
	 * 機器送料欄の表示判定
	 * 
	 * @param bean
	 * @param outputMap
	 * @throws Exception 
	 * 
	 */
	private String kikiSoryoEdit(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		// ●固定単価
		String initialTanka = JFUStrConst.EMPTY;
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0133CC1Map =
				(HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get(SC_TITLE_FUSV013301CC);

		// ●初期費用
//		if (!JFUWebCommon.isNull(eKK0721A010List))
//		{
//			HashMap<String, String> ekk0721A010Map = eKK0721A010List.get(0);
//			ekk0721A010Map.put("tmp_pay_prc_nm", JFUWebCommon.getDispItem(PRC_INIT_COLUMN_JIMUTE));
//		}
		
		// 事務手数料有無
		// （IP-STBの手数料判定はCCにて実行）
		String jmteUm = (String)((HashMap)outputMap.get(SC_TITLE_FUSV013303CC)).get(JMTE_UM);
		if (JFUStrConst.CD00002_0.equals(jmteUm))
		{
			// 料金表の初期費用（事務手数料）を削除する
			fusv0133CC1Map.put("EKK0721A010CBSMsg1List", null);
			// 機器送料有無に"0"（無）を設定
			bean.sendMessageString(FUW07101SFConst.KIKI_SORYO_UM, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD00002_0);
		}

		// ●初期費用
		ArrayList<HashMap<String, String>> eKK0721A010List = fusv0133CC1Map.get("EKK0721A010CBSMsg1List");
		if (null != eKK0721A010List)
		{
			// 明細リストから項目マップを取得
			HashMap<String, String> childMap = eKK0721A010List.get(0);
			initialTanka = (String)childMap.get("tmp_pay_prc_amnt");
		}
		return initialTanka;
	}
// ANK-3529-00-00 ADD END

	/**
	 * 型番選択値の設定
	 * <br>
	 * 画面で選択されたコンボボックスのインデックスから型番を取得し、宅内機器型式コードに設定します。
	 * <br>
	 * @param bean			サービスフォームBean
	 * @throws Exception	すべての例外
	 */
	private void setModelSelectCd(X31SDataBeanAccess bean) throws Exception
	{
		X31SWebLog.DEBUG_LOG.debug("★ 型番選択設定(setModelSelectCd) START ★");

		// 申込区分
		String mskmKikiDib = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV);
		// 申込機器区分がIP-STB以外の場合リターン
		if (!MSKM_KIKI_DIV_IPSTB.equals(mskmKikiDib))
		{
			return;
		}

		// 画面選択値インデックス取得
		String indexStr = JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MODEL_CD_SELECT);
		// 型番選択リストから、選択された型番選択名を取得
		String modelCd =
			bean.sendMessageString(FUW07101SFConst.MODEL_CD_LIST, X31CWebConst.DATABEAN_GET_VALUE, Integer.valueOf(indexStr));

		// 型番選択名を設定
		JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TAKNKIKI_MODEL_CD, modelCd);

		X31SWebLog.DEBUG_LOG.debug("★ 型番選択設定(setModelSelectCd) END ★");

	}

	/**
	 * 型番選択リストの設定
	 * <br>
	 * @param bean			サービスフォームBean
	 * @throws Exception	すべての例外
	 */
	private void setModelSelectList(X31SDataBeanAccess bean) throws Exception
	{
		// IP-STB用の型番号を取得する
		Map<String, String> dispDefMapModelNo = JFUWebCommon.getDispItemsAsMap(QUERY_MODEL_NO_IPSTB_PATH, QUERY_ATTR_NAME);

		// 型番選択リスト
		for (int i = 1; dispDefMapModelNo.get(String.valueOf(i)) != null; i++)
		{
			String modelNo = dispDefMapModelNo.get(String.valueOf(i));
			// 型番リストに追加
			bean.sendMessageString(FUW07101SFConst.MODEL_CD_LIST, X31CWebConst.DATABEAN_ADD_VALUE, modelNo);
			// 型番に初期値を設定
			JFUWebCommon.setDataBeanItemByPath(bean, FUW07101SFConst.TAKNKIKI_MODEL_CD, modelNo);
		}
	}

	/**
	 * 申込上限数を取得する
	 * 
	 * <br>
	 * @param bean			サービスフォームBean
	 * @param svcKeiStat	サービス契約ステータス
	 * @return 申込上限数
	 * @throws Exception
	 */
	private String getMskPsbMaxCnt(X31SDataBeanAccess bean, String svcKeiStat) throws Exception
	{
		// フロント用定義ファイルを取得する
		String path = JFUStrConst.EMPTY;

		if (SVC_KEI_STA_NEWADD.contains(svcKeiStat))
		{
			// 新規申込上限数
			path = QUERY_MAX_NEWADD_KKTK_SVC_CNT_PATH;
		}
		else
		{
			// 上限数
			path = QUERY_MAX_KKTK_SVC_CNT_PATH;
		}
		Map<String, String> dispDefMap = JFUWebCommon.getDispItemsAsMap(path, QUERY_ATTR_NAME);
		// 最大機器提供サービス数を取得する

		String max_kktk_svc_cnt = dispDefMap.get(JFUWebCommon.getDataBeanItemByPath(bean, FUW07101SFConst.MSKM_KIKI_DIV));
		return max_kktk_svc_cnt;
	}

	/**
	 * ルーター文言リストの結果から文言を取得します。
	 * 
	 * <br>
	 * @param routerMsgList ルータ文言リスト
	 * @param msgIdx メッセージ取得index
	 * @return ルーター文言
	 */
	private String getResultRooterMsg(List<Map<String, String>> routerMsgList, int msgIdx)
	{
		String rooterMsg = JFUStrConst.EMPTY;
		if ((routerMsgList != null) && (routerMsgList.size() > 0))
		{
			Map<String, String> routerMsgMap = routerMsgList.get(msgIdx);
			// ■ルーター文言表示フラグ
			if ((routerMsgMap != null) && (routerMsgMap.size() > 0))
			{
				rooterMsg = routerMsgMap.get(JFUStrConst.ROUTER_MSG_MAP_KEY_ROUTER_MSG);
			}
		}
		return JFUWebCommon.nvl(rooterMsg, JFUStrConst.EMPTY);
	}

	/**
	 * ONU交換工事費の表示判定
	 * 
	 * @param bean
	 * @param outputMap
	 * @throws Exception 
	 * 
	 */
	private String kokanKojihiEdit(X31SDataBeanAccess bean, HashMap<String, Object> outputMap) throws Exception
	{
		// ●固定単価
		String initialTanka = JFUStrConst.EMPTY;
		HashMap<String, ArrayList<HashMap<String, String>>> fusv0133CC1Map =
				(HashMap<String, ArrayList<HashMap<String, String>>>)outputMap.get(CC_TITLE_FUSV013307);

		// ●初期費用
		ArrayList<HashMap<String, String>> eKK0721A010List = fusv0133CC1Map.get("EKK0721A010CBSMsg1List");
		if (null != eKK0721A010List)
		{
			// 明細リストから項目マップを取得
			HashMap<String, String> childMap = eKK0721A010List.get(0);
			initialTanka = (String)childMap.get("tmp_pay_prc_amnt");
			childMap.put("tmp_pay_prc_nm", JFUWebCommon.getDispItem(PRC_INIT_COLUMN_KOJIHI));
		}

		return initialTanka;
	}
}
