/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUGetVariTsushinKikiMskmCC
*   ソースファイル名：JFUGetVariTsushinKikiMskmCC.java
*   作成者          ：富士通
*   日付            ：2011年02月04日
*＜機能概要＞
*   各種通信機器申込み照会コンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/02/04   FJ）川端    新規作成
*   v4.00       2012/11/15   FJ）美濃原  変更【ANK-1224-00-00】 機器の料金コース追加等について
*   v7.00       2013/11/25   FJ）谷本    変更【ANK-1578-00-00】多機能ルーター（機器追加）
*   v7.00       2014/01/18   FJ）谷本    変更【TAI-2014-0000004】ANK-1578の強化試験(多機能ルーター予約中チェック)
*   v7.00       2014/01/24   FJ）中谷    変更【TAI-2014-0000004】ANK-1578の強化試験(性能改善)
*   v9.00       2014/06/18   FJ) 清水    変更【ANK-2038-00-00】多機能ＲＴ対応・コース変更時、引越し時の事務手数料無料化
*  v29.00       2017/03/09   FJ) 澤田    変更【OM-2017-0000098】eo光多機能ルーター保有状態の文言対応
*  v40.00       2018/11/07   FJ）張本    変更【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*  v41.00       2019/01/31   FJ）大島    変更【ANK-3529-00-00】無線LAN中継機
*  v49.00       2020/03/24   FJ）吉田    変更【OM-2019-0000912】住所変更中工事取消状態で、フロントから多機能ルーターが契約できる
*  v51.00       2020/11/12   FJ）張本    変更【ANK-3949-00-00】Netflix導入対応（STEP1）
*  v52.00       2021/01/22   FJ) 張本    変更【ANK-3987-00-00】Netflix導入対応（STEP2）
*  v53.00       2021/03/26   FJ) 美濃原  変更【ANK-4009-00-00】CX戦略WG方針対応
*  v55.00       2021/10/06   FJ) 西川    変更【ANK-4146-00-00】【eo定期】多機能ルーター枯渇対応 STEP2
*  v63.00       2023/01/05   FJ) 張本    変更【OM-2022-0001108】機器交換時の配送判定不具合
*  v61.00       2023/04/03   FJ) 張本    変更【ANK-4315-00-00】【eo定期】eo光ホームゲートウェイ導入対応
*  v61.01       2023/11/09   FJ) 張本    変更【ST-2023-0000015】ホームゲートウェイ付替え時のプレクラ障害対応
*  v68.00       2023/11/27   FJ) 張本    変更【ANK-4516-00-00】【eo】HGW交換不可フラグ設定機能の追加
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JPCDateUtil;
import eo.ejb.cbs.cbsmsg.EDK0271B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B520CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B520CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0241B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0241B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0241B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0241B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B512CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591B003CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0591B003CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0601B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0721A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0791A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0791A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0801A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0891A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0891A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0891B502CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0891B502CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1091B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1621A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1621A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1861B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2091B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2101B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2811B503CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2811B503CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKU0011B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKU0011B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0411A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0411A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0441B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0441B010CBSMsg1List;

/**
 * 各種通信機器申込み照会コンポーネント部品
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUGetVariTsushinKikiMskmCC extends JFUBaseCC
{
	/** 保有ルーターコード */
	private static final String MAP_KEY_HOYU_ROUTER_CD = "hoyu_router_cd";
	/** 宅内機器種別コード */
	private static final String MAP_KEY_TAKNKIKI_SBT_CD = "taknkiki_sbt_cd";
	/** 申込機器区分 */
	private static final String MAP_KEY_MSKM_KIKI_DIV = "mskm_kiki_div";
	/** 料金コースコード */
	private static final String MAP_KEY_PCRS_CD = "pcrs_cd";
	/** 料金グループコード */
	private static final String MAP_KEY_KEY_PRC_GRP_CD = "key_prc_grp_cd";
	/** 申込機器区分(1:ルーター) */
	private static final String MSKM_KIKI_DIV_1 = "1";
	/** 宅内型式コード(多機能ルーター仮) */
	private static final String KIKI_TKRT_EORT100F1 = "EORT100F1";
	/** 宅内型式コード(ホームゲートウェイ仮) */
	private static final String KIKI_TKRT_EOGW100S = "EOGW100S";
	/** 一時支払料金番号（事務手数料（多機能）） */
	private static final String MAP_KEY_TMP_PAY_PRC_NO = "key_tmp_pay_prc_no";
	/** 一時支払料金番号（事務手数料（HGW）） */
	private static final String MAP_KEY_TMP_PAY_PRC_NO_HGW = "key_tmp_pay_prc_no_hgw";
	/** SYSID */
	private static final String MAP_KEY_SYSID = "sys_id";
	/** サービス契約回線内訳番号 */
	private static final String MAP_KEY_SVC_KEI_KAISEN_UCWK_NO = "svc_kei_kaisen_ucwk_no";
	
	/** 異動年月日時分秒 */
	private static final String MAP_IDO_DTM = "ido_dtm";
	
	/** 提供方式契約番号 */
	private static final String MAP_TK_HOSHIKI_KEI_NO = "tk_hoshiki_kei_no";
	/** 提供方式コード */
	private static final String MAP_TK_HOSHIKI_CD = "tk_hoshiki_cd";
	/** 提供方式パターンコード */
	private static final String MAP_TK_HOSHIKI_PATTERN_CD = "tk_hoshiki_pattern_cd";
	
	/** 申込明細番号 */
	private static final String MAP_MSKM_DTL_NO = "mskm_dtl_no";
	
	/** 申込年月日 */
	private static final String MSKM_YMD = "mskm_ymd";
	
	/** エラーメッセージ：■ */
	private static final String ERR_MSG_SQUARE = " ■■■";
	/** エラーメッセージ4 */
	private static final String ERR_MSG_4 = "■■■ マンションの詳細チェックエラー マンション通信設備コード:";
	/** エラーメッセージ(IP払出コード) */
	private static final String ERR_MSG_IP_HRADSI_CD = " IP払出コード:";
	/** エラー項目キー(利用サービスエラー) */
	private static final String ENABLED_SVC_ERR = JFUStrConst.RELATION_CHECK_ITEM_SVC_KEI + "_err";

	/* ■□ 機器提供サービス契約一覧照会（各種通信機器情報取得）SC ■□ */
	/** テンプレートID(機器提供サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_KKTK_SVKEI_LIST_SHOKAI = "EKK0341B512";
	/** テンプレートID(明細)(機器提供サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_DETAIL_KKTK_SVKEI_LIST_SHOKAI = "EKK0341B512CBSMsg1List";
	/** IN項目リスト(機器提供サービス契約一覧照会（各種通信機器情報取得）) */
	private static final List<String> IN_COLUMN_LIST_KKTK_SVKEI_LIST_SHOKAI =
			Arrays.asList(EKK0341B512CBSMsg.KEY_SVC_KEI_NO, EKK0341B512CBSMsg.MAX_SEARCH_NUM, EKK0341B512CBSMsg.DISPLAY_NUM,
					EKK0341B512CBSMsg.DISPLAY_PAGE_NUM, EKK0341B512CBSMsg.SEARCH_TYPE, EKK0341B512CBSMsg.TOTAL_PAGE_NUM);

	/* ■□ 工事案件一覧照会SC ■□ */
	/** テンプレートID(工事案件一覧照会) */
	private static final String TEMPLATE_ID_KJAK_LIST_SHOKAI = "EKU0011B010";
	/** テンプレートID(明細)(工事案件一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_KJAK_LIST_SHOKAI = "EKU0011B010CBSMsg1List";
	/** IN項目リスト(工事案件一覧照会) */
	private static final List<String> IN_COLUMN_LIST_KJAK_LIST_SHOKAI =
			Arrays.asList(EKU0011B010CBSMsg.KEY_KOJIAK_NO_SVC_KEI_NO, EKU0011B010CBSMsg.MAX_SEARCH_NUM, EKU0011B010CBSMsg.DISPLAY_NUM,
					EKU0011B010CBSMsg.DISPLAY_PAGE_NUM, EKU0011B010CBSMsg.SEARCH_TYPE, EKU0011B010CBSMsg.TOTAL_PAGE_NUM);
	/** SC実行結果取得キー(工事案件一覧照会明細一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_KJAK_LIST_SHOKAI = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_KJAK_LIST_SHOKAI + TEMP_TEMPLATE_PRIFIX_SEP + "1";

// OM-2019-0000912 ADD START
	/* ■□ 住所変更中住所変更明細一覧照会２SC ■□ */
	/** テンプレートID(住所変更中住所変更明細一覧照会２) */
	private static final String TEMPLATE_ID_ADCHG_NOW_ADCHG_LIST_SHOKAI = "EKK2101B501";
	/** テンプレートID(明細)(住所変更中住所変更明細一覧照会２) */
	private static final String TEMPLATE_ID_DETAIL_ADCHG_NOW_ADCHG_LIST_SHOKAI = "EKK2101B501CBSMsg1List";
	/** IN項目リスト(住所変更中住所変更明細一覧照会２) */
	private static final List<String> IN_COLUMN_LIST_ADCHG_NOW_ADCHG_LIST_SHOKAI =
			Arrays.asList(EKK2101B501CBSMsg.KEY_SVC_KEI_NO, EKK2101B501CBSMsg.MAX_SEARCH_NUM, EKK2101B501CBSMsg.DISPLAY_NUM,
					EKK2101B501CBSMsg.DISPLAY_PAGE_NUM, EKK2101B501CBSMsg.SEARCH_TYPE, EKK2091B501CBSMsg.TOTAL_PAGE_NUM);
	/** SC実行結果取得キー(住所変更中住所変更明細一覧照会２) */
	private static final String TEMP_TEMPLATE_KEY_EKK2101B501 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_ADCHG_NOW_ADCHG_LIST_SHOKAI + TEMP_TEMPLATE_PRIFIX_SEP + "1";
	
	/* ■□ 住所変更明細一覧照会SC ■□ */
	/** テンプレートID(住所変更明細一覧照会SC) */
	private static final String TEMPLATE_ID_ADCHG_DTL_LIST_SHOKAI = "EKK2101B001";
	/** テンプレートID(明細)(住所変更明細一覧照会SC) */
	private static final String TEMPLATE_ID_DETAIL_ADCHG_DTL_LIST_SHOKAI = "EKK2101B001CBSMsg1List";
	/** IN項目リスト(住所変更明細一覧照会SC) */
	private static final List<String> IN_COLUMN_LIST_ADCHG_DTL_LIST_SHOKAI =
			Arrays.asList(EKK2101B001CBSMsg.KEY_ADCHG_NO, EKK2101B001CBSMsg.KEY_ADCHG_DTL_SBT_CD, EKK2101B001CBSMsg.MAX_SEARCH_NUM, EKK2101B001CBSMsg.DISPLAY_NUM,
					EKK2101B001CBSMsg.DISPLAY_PAGE_NUM, EKK2101B001CBSMsg.SEARCH_TYPE, EKK2101B001CBSMsg.TOTAL_PAGE_NUM);
// OM-2019-0000912 ADD END

	/* ■□ サービス契約一覧照会（各種通信機器情報取得）SC ■□ */
	/** テンプレートID(サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_SVKEI_LIST_SHOKAI = "EKK0081B520";
	/** テンプレートID(明細)(サービス契約一覧照会（各種通信機器情報取得）) */
	private static final String TEMPLATE_ID_DETAIL_SVKEI_LIST_SHOKAI = "EKK0081B520CBSMsg1List";
	/** IN項目リスト(サービス契約一覧照会（各種通信機器情報取得）) */
	private static final List<String> IN_COLUMN_LIST_SVKEI_LIST_SHOKAI =
			Arrays.asList(EKK0081B520CBSMsg.KEY_SVC_KEI_NO, EKK0081B520CBSMsg.MAX_SEARCH_NUM, EKK0081B520CBSMsg.DISPLAY_NUM,
					EKK0081B520CBSMsg.DISPLAY_PAGE_NUM, EKK0081B520CBSMsg.SEARCH_TYPE, EKK0081B520CBSMsg.TOTAL_PAGE_NUM);
	
	/* ■□ 提供方式契約一意照会SC ■□ */
	/** テンプレートID(提供方式契約一意照会) */
	private static final String TEMPLATE_ID_TK_HOSHIKI_KEI = "EKK0891A010";
	/** テンプレートID(提供方式契約一意照会明細) */
	private static final String TEMPLATE_ID_TK_HOSHIKI_KEI_DETAIL = EKK0891A010CBSMsg.EKK0891A010CBSMSG1LIST;
	/** IN項目リスト(提供方式契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_TK_HOSHIKI_KEI  = Arrays.asList(EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO);
	/** 関連チェックエラー項目(提供方式契約一意照会) */
	private static final String ERROR_COLUMN_TK_HOSHIKI_KEI  = EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO_ERR;
	/** SC実行結果取得キー(提供方式契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_TK_HOSHIKI_KEI  = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_TK_HOSHIKI_KEI + TEMP_TEMPLATE_PRIFIX_SEP + "1";
	
	/* ■□ 申込明細一意照会SC ■□ */
	/** テンプレートID(申込明細一意照会) */
	private static final String TEMPLATE_ID_MSKM_DTL = "EKK0021A010";
	/** テンプレートID(申込明細一意照会明細) */
	private static final String TEMPLATE_ID_MSKM_DTL_DETAIL = EKK0021A010CBSMsg.EKK0021A010CBSMSG1LIST;
	/** IN項目リスト(申込明細一意照会) */
	private static final List<String> IN_COLUMN_LIST_MSKM_DTL = Arrays.asList(EKK0021A010CBSMsg.KEY_MSKM_DTL_NO);
	/** 関連チェックエラー項目(申込明細一意照会) */
	private static final String ERROR_COLUMN_MSKM_DTL  = EKK0021A010CBSMsg.KEY_MSKM_DTL_NO_ERR;
	/** SC実行結果取得キー(申込明細一意照会) */
	private static final String TEMP_TEMPLATE_KEY_MSKM_DTL  = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_MSKM_DTL + TEMP_TEMPLATE_PRIFIX_SEP + "1";
	
	/* ■□ 進捗一覧照会SC ■□ */
	/** テンプレートID(進捗一覧照会) */
	private static final String TEMPLATE_ID_PRG_LIST_SHOKAI  = "EKK1091B002";
	/** テンプレートID(明細)(進捗一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_PRG_LIST_SHOKAI = EKK1091B002CBSMsg.EKK1091B002CBSMSG1LIST;
	/** IN項目リスト(進捗一覧照会) */
 	private static final List<String> IN_COLUMN_LIST_PRG_LIST_SHOKAI = 
 			Arrays.asList(EKK1091B002CBSMsg.KEY_SVC_KEI_NO, EKK1091B002CBSMsg.KEY_IDO_DIV, 
 					EKK1091B002CBSMsg.KEY_SORT_ITEM_NO, EKK1091B002CBSMsg.KEY_SORT_KBN);
	/** SC実行結果取得キー(進捗一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_PRG_LIST_SHOKAI = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_PRG_LIST_SHOKAI + TEMP_TEMPLATE_PRIFIX_SEP + "1";
	
	/* ■□ セット品構成一覧照会SC ■□ */
	/** テンプレートID(セット品構成一覧照会) */
	private static final String TEMPLATE_ID_SETHIN_KOUSEI_LIST_SHOKAI = "EZM0441B010";
	/** テンプレートID(明細)(セット品構成一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_SETHIN_KOUSEI_LIST_SHOKAI = "EZM0441B010CBSMsg1List";
	/** IN項目リスト(セット品構成一覧照会) */
	private static final List<String> IN_COLUMN_LIST_SETHIN_KOUSEI_LIST_SHOKAI = Arrays.asList(EZM0441B010CBSMsg.KEY_TAKNKIKI_SETHIN_MODEL_CD);

	/* ■□ 宅内機器セット品型一覧照会SC ■□ */
	/** テンプレートID(セット品構成一覧照会) */
	private static final String TEMPLATE_ID_TKKIKI_SETHINMDL_LIST_SHOKAI = "EDK0271B010";
	/** テンプレートID(明細)(セット品構成一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_TKKIKI_SETHINMDL_LIST_SHOKAI = "EDK0271B010CBSMsg1List";
	/** IN項目リスト(セット品構成一覧照会) */
	private static final List<String> IN_COLUMN_LIST_TKKIKI_SETHINMDL_LIST_SHOKAI = Arrays.asList(EDK0271B010CBSMsg.KEY_TAKNKIKI_SETHIN_MODEL_CD);

	/* ■□ 宅内機器型式／付属品型式一覧照会（宅内機器型式一意照会）SC ■□ */
	/** テンプレートID(宅内機器型式／付属品型式一覧照会（宅内機器型式一意照会）) */
	private static final String TEMPLATE_ID_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI = "EZM0411A010";
	/** テンプレートID(明細)(宅内機器型式／付属品型式一覧照会（宅内機器型式一意照会）) */
	private static final String TEMPLATE_ID_DETAIL_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI = "EZM0411A010CBSMsg1List";
	/** IN項目リスト(宅内機器型式／付属品型式一覧照会（宅内機器型式一意照会）) */
	private static final List<String> IN_COLUMN_LIST_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI = Arrays.asList(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD);

	/* ■□ 機器型式対象料金コース一意照会SC ■□ */
	/** テンプレートID(機器型式対象料金コース一意照会) */
	private static final String TEMPLATE_ID_KIKIMDL_TG_PCRS_SHOKAI = "EKK1621A010";
	/** テンプレートID(明細)(機器型式対象料金コース一意照会) */
	private static final String TEMPLATE_ID_DETAIL_KIKIMDL_TG_PCRS_SHOKAI = "EKK1621A010CBSMsg1List";
	/** IN項目リスト(機器型式対象料金コース一意照会) */
	private static final List<String> IN_COLUMN_LIST_KIKIMDL_TG_PCRS_SHOKAI =
			Arrays.asList(EKK1621A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, EKK1621A010CBSMsg.KEY_KKTK_SBT_CD, EKK1621A010CBSMsg.KEY_HAMBAI_SBT_CD);

	/* ■□ 料金プラン一覧照会SC ■□ */
	/** テンプレートID(料金プラン一覧照会) */
	private static final String TEMPLATE_ID_PPLAN_LIST_SHOKAI = "EKK0591B003";
	/** テンプレートID(明細)(料金プラン一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_PPLAN_LIST_SHOKAI = "EKK0591B003CBSMsg1List";
	/** IN項目リスト(料金プラン一覧照会) */
	private static final List<String> IN_COLUMN_LIST_PPLAN_LIST_SHOKAI = Arrays.asList(EKK0591B003CBSMsg.KEY_PCRS_CD);

	/* ■□ 料金プラン固定単価（オプション申込料金）一覧照会SC ■□ */
	/** テンプレートID(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final String TEMPLATE_ID_PPLAN_KTTANKA_OP_LIST_SHOKAI = "EKK0601B001";
	/** テンプレートID(明細)(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final String TEMPLATE_ID_DETAIL_PPLAN_KTTANKA_OP_LIST_SHOKAI = "EKK0601B001CBSMsg1List";
	/** IN項目リスト(料金プラン固定単価（オプション申込料金）一覧照会) */
	private static final List<String> IN_COLUMN_LIST_PPLAN_KTTANKA_OP_LIST_SHOKAI =
			Arrays.asList(EKK0601B001CBSMsg.KEY_PCRS_CD, EKK0601B001CBSMsg.KEY_PPLAN_CD, EKK0601B001CBSMsg.MAX_SEARCH_NUM,
					EKK0601B001CBSMsg.DISPLAY_NUM, EKK0601B001CBSMsg.DISPLAY_PAGE_NUM, EKK0601B001CBSMsg.SEARCH_TYPE,
					EKK0601B001CBSMsg.TOTAL_PAGE_NUM);
	/** SC実行結果取得キー(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMP_TEMPLATE_KEY_PPLAN_KTTANKA_OP_LIST_SHOKAI =
			TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_PPLAN_KTTANKA_OP_LIST_SHOKAI + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 料金コース一意照会SC ■□ */
	/** テンプレートID(料金コース一意照会) */
	private static final String TEMPLATE_ID_PCRS_SHOKAI = "EKK0791A010";
	/** テンプレートID(明細)(料金コース一意照会) */
	private static final String TEMPLATE_ID_DETAIL_PCRS_SHOKAI = "EKK0791A010CBSMsg1List";
	/** IN項目リスト(料金コース一意照会) */
	private static final List<String> IN_COLUMN_LIST_PCRS_SHOKAI =
			Arrays.asList(EKK0791A010CBSMsg.KEY_PCRS_CD, EKK0791A010CBSMsg.KEY_GENE_ADD_DTM, EKK0791A010CBSMsg.KEY_RSV_APLY_YMD);

	/* ■□ 料金コース_機器提供サービス一意照会SC ■□ マスタ */
	/** テンプレートID(料金コース_機器提供サービス一意照会) */
	private static final String TEMPLATE_ID_PCRS_KKTK_SVC_SHOKAI = "EKK0801A010";
	/** テンプレートID(明細)(料金コース_機器提供サービス一意照会) */
	private static final String TEMPLATE_ID_DETAIL_PCRS_KKTK_SVC_SHOKAI = "EKK0801A010CBSMsg1List";
	/** IN項目リスト(料金コース_機器提供サービス一意照会) */
	private static final List<String> IN_COLUMN_LIST_PCRS_KKTK_SVC_SHOKAI =
			Arrays.asList(EKK0801A010CBSMsg.KEY_PCRS_CD, EKK0801A010CBSMsg.KEY_KKTK_SVC_CD, EKK0801A010CBSMsg.KEY_GENE_ADD_DTM,
					EKK0801A010CBSMsg.KEY_RSV_APLY_YMD);

	/* ■□ 提供方式契約一覧照会(サービス契約番号) ■□ */
	/** テンプレートID(提供方式契約一覧照会(サービス契約番号)) */
	private static final String TEMPLATE_ID_TK_HSK_KEI = "EKK0891B502";
	/** テンプレートID(提供方式契約一覧照会(サービス契約番号)明細) */
	private static final String TEMPLATE_ID_TK_HSK_KEI_DETAIL = EKK0891B502CBSMsg.EKK0891B502CBSMSG1LIST;
	/** IN項目リスト(提供方式契約一覧照会(サービス契約番号)) */
	private static final List<String> IN_COLUMN_LIST_TK_HSK_KEI = Arrays.asList(EKK0891B502CBSMsg.KEY_SVC_KEI_NO);
	/** 関連チェックエラー項目(提供方式契約一覧照会(サービス契約番号)) */
	private static final String ERROR_COLUMN_TK_HSK_KEI = EKK0891B502CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(提供方式契約一覧照会(サービス契約番号)) */
	private static final String TEMP_TEMPLATE_KEY_TK_HSK_KEI = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_TK_HSK_KEI + TEMP_TEMPLATE_PRIFIX_SEP + "1";

	/* ■□ 機器オプションサービス契約一覧照会（フロント）SC ■□ */
	/** テンプレートID(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI = "EKK2811B503";
	/** テンプレートID(明細)(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMPLATE_ID_DETAIL_KKOP_SVKEI_LIST_SHOKAI = EKK2811B503CBSMsg.EKK2811B503CBSMSG1LIST;
	/** IN項目リスト(機器オプションサービス契約一覧照会（フロント）) */
	private static final List<String> IN_COLUMN_LIST_KKOP_SVKEI_LIST_SHOKAI =
			Arrays.asList(EKK2811B503CBSMsg.KEY_SYSID, EKK2811B503CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, EKK2811B503CBSMsg.KEY_TAKNKIKI_SBT_CD);
	/** 関連チェックエラー項目(機器オプションサービス契約一覧照会（フロント）) */
	private static final String ERROR_COLUMN_KKOP_SVKEI_LIST_SHOKAI = EKK2811B503CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR;
	/** SC実行結果取得キー(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMP_TEMPLATE_KEY_KKOP_SVKEI_LIST_SHOKAI =
			TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス契約一覧照会（割引サービス指定）SC ■□ */
	/** テンプレートID(割引サービス契約一覧照会（割引サービス指定）) */
	private static final String TEMPLATE_ID_WRIB_SVKEI_LIST_SHOKAI = "EKK0451B010";
	/** テンプレートID(明細)(割引サービス契約一覧照会（割引サービス指定）) */
	private static final String TEMPLATE_ID_DETAIL_WRIB_SVKEI_LIST_SHOKAI = EKK0451B010CBSMsg.EKK0451B010CBSMSG1LIST;
	/** IN項目リスト(割引サービス契約一覧照会（割引サービス指定）) */
	private static final List<String> IN_COLUMN_LIST_WRIB_SVKEI_LIST_SHOKAI =
			Arrays.asList(EKK0451B010CBSMsg.KEY_SVC_KEI_NO, EKK0451B010CBSMsg.KEY_WRIB_SVC_CD);
	/** SC実行結果取得キー(割引サービス契約一覧照会（割引サービス指定）) */
	private static final String TEMP_TEMPLATE_KEY_WRIB_SVKEI_LIST_SHOKAI =
			TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_WRIB_SVKEI_LIST_SHOKAI + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK0241B002_回線対象サービス契約一覧照会SC ■□ */
	/** テンプレートID(回線対象サービス契約一覧照会) */
	private static final String TEMPLATE_ID_EKK0241B002 = "EKK0241B002";
	/** テンプレートID(回線対象サービス契約一覧照会明細) */
	private static final String TEMPLATE_ID_EKK0241B002_DETAIL = EKK0241B002CBSMsg.EKK0241B002CBSMSG1LIST;
	/** IN項目リスト(回線対象サービス契約一覧照会) */
	private static final List<String> ITEM_NM_LIST_EKK0241B002 = Arrays.asList(EKK0241B002CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO);
	/** SC実行結果取得キー(回線対象サービス契約一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK0241B002 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0241B002 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK0341B002_機器提供サービス契約一覧照会（サービス契約番号）SC ■□ */
	/** テンプレートID(機器提供サービス契約一覧照会（サービス契約番号）) */
	private static final String TEMPLATE_ID_EKK0341B002 = "EKK0341B002";
	/** テンプレートID(機器提供サービス契約一覧照会（サービス契約番号）明細) */
	private static final String TEMPLATE_ID_EKK0341B002_DETAIL = EKK0341B002CBSMsg.EKK0341B002CBSMSG1LIST;
	/** IN項目リスト(機器提供サービス契約一覧照会（サービス契約番号）) */
	private static final List<String> ITEM_NM_LIST_EKK0341B002 =
			Arrays.asList(EKK0341B002CBSMsg.KEY_SVC_KEI_NO, EKK0341B002CBSMsg.KEY_KKTK_SVC_CD, EKK0341B002CBSMsg.KEY_KKTK_SVC_KEI_NO,
					EKK0341B002CBSMsg.KEY_SORT_KBN);
	/** SC実行結果取得キー(機器提供サービス契約一覧照会（サービス契約番号）) */
	private static final String TEMP_TEMPLATE_KEY_EKK0341B002 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0341B002 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EZM0411A010_宅内機器型式一意照会SC ■□ */
	/** テンプレートID(宅内機器型式一意照会) */
	private static final String TEMPLATE_ID_EZM0411A010 = "EZM0411A010";
	/** テンプレートID(宅内機器型式一意照会明細) */
	private static final String TEMPLATE_ID_EZM0411A010_DETAIL = EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST;
	/** IN項目リスト(宅内機器型式一意照会) */
	private static final List<String> ITEM_NM_LIST_EZM0411A010 = Arrays.asList(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD);
	/** SC実行結果取得キー(宅内機器型式一意照会) */
	private static final String TEMP_TEMPLATE_KEY_EZM0411A010 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EZM0411A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ サービス契約一意照会SC ■□ */
	/** テンプレートID(サービス契約一意照会) */
	private static final String TEMPLATE_ID_EKK0081A010 = "EKK0081A010";
	/** テンプレートID(サービス契約一意照会明細) */
	private static final String TEMPLATE_ID_EKK0081A010_DETAIL = EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST;
	/** IN項目リスト(サービス契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_EKK0081A010 =
			Arrays.asList(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, EKK0081A010CBSMsg.KEY_GENE_ADD_DTM, EKK0081A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(サービス契約一意照会) */
	private static final String ERROR_COLUMN_EKK0081A010 = EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(サービス契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK0081A010 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0081A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK0721A010_一時支払料金一意照会SC ■□ */
	/** テンプレートID(宅内機器型式一意照会) */
	private static final String TEMPLATE_ID_EKK0721A010 = "EKK0721A010";
	/** テンプレートID(宅内機器型式一意照会明細) */
	private static final String TEMPLATE_ID_EKK0721A010_DETAIL = EKK0721A010CBSMsg.EKK0721A010CBSMSG1LIST;
	/** IN項目リスト(宅内機器型式一意照会) */
	private static final List<String> ITEM_NM_LIST_EKK0721A010 = Arrays.asList(EKK0721A010CBSMsg.KEY_TMP_PAY_PRC_NO);

	/* ■□ 同一利用場所サービス契約一覧照会SC ■□ */
	/** テンプレートID(同一利用場所サービス契約一覧照会) */
	private static final String TEMPLATE_ID_EKK0081B011 = "EKK0081B011";
	/** テンプレートID(同一利用場所サービス契約一覧照会) */
	private static final String TEMPLATE_ID_EKK0081B011_DETAIL = EKK0081B011CBSMsg.EKK0081B011CBSMSG1LIST;
	/** IN項目リスト(同一利用場所サービス契約一覧照会) */
	private static final List<String> IN_COLUMN_LIST_EKK0081B011 =
			Arrays.asList(EKK0081B011CBSMsg.KEY_SYSID, EKK0081B011CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO);
	/** 関連チェックエラー項目(同一利用場所サービス契約一覧照会) */
	private static final String ERROR_COLUMN_EKK0081B011 = EKK0081B011CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(同一利用場所サービス契約一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK0081B011 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0081B011 + TEMP_TEMPLATE_PRIFIX_SEP + "1";

	/* ■□ 異動予約一覧照会SC ■□ */
	/** テンプレートID(異動予約一覧照会) */
	private static final String TEMPLATE_ID_3 = "EKK1681B001";
	/** テンプレートID(異動予約一覧照会明細) */
	private static final String TEMPLATE_ID_3_DETAIL = EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST;
	/** IN項目リスト(異動予約一覧照会) */
	private static final List<String> IN_COLUMN_LIST_3 =
			Arrays.asList(EKK1681B001CBSMsg.KEY_IDO_DIV, EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, EKK1681B001CBSMsg.KEY_RSV_APLY_YMD,
					EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, EKK1681B001CBSMsg.KEY_MSKM_DTL_NO, EKK1681B001CBSMsg.KEY_SYSID,
					EKK1681B001CBSMsg.KEY_SEIKY_KEI_NO, EKK1681B001CBSMsg.KEY_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_SVC_KEI_UCWK_NO,
					EKK1681B001CBSMsg.KEY_OP_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_SBOP_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_KKTK_SVC_KEI_NO,
					EKK1681B001CBSMsg.KEY_WRIB_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, EKK1681B001CBSMsg.KEY_HEIGO_SK_SYSID,
					EKK1681B001CBSMsg.KEY_BUNKATSU_SK_SYSID, EKK1681B001CBSMsg.KEY_HEIGO_SK_SEIKY_KEI_NO,
					EKK1681B001CBSMsg.KEY_BUNKATSU_SK_SEIKY_KEI_NO, EKK1681B001CBSMsg.KEY_KOJIAK_NO, EKK1681B001CBSMsg.KEY_OP_HKTGI_SK_SVC_KEI_NO,
					EKK1681B001CBSMsg.KEY_SORT_ITEM_NO, EKK1681B001CBSMsg.KEY_SORT_KBN);
	/** 関連チェックエラー項目(異動予約一覧照会) */
	private static final String ERROR_COLUMN_3 = "pcrs_chg_incomp_err";
	/** SC実行結果取得キー(異動予約一覧照会)(プラン変更中チェック) */
	private static final String TEMP_TEMPLATE_KEY_3_1 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_3 + TEMP_TEMPLATE_PRIFIX_SEP + "1";

	/* ■□ EKK0241B001_サービス契約回線内訳一覧照会SC ■□ */
	/** テンプレートID(EKK0241B001_サービス契約回線内訳一覧照会)) */
	private static final String TEMPLATE_ID_EKK0241B001 = "EKK0241B001";
	/** テンプレートID(明細)(EKK0241B001_サービス契約回線内訳一覧照会)) */
	private static final String TEMPLATE_ID_DETAIL_EKK0241B001 = EKK0241B001CBSMsg.EKK0241B001CBSMSG1LIST;
	/** IN項目リスト(EKK0241B001_サービス契約回線内訳一覧照会)) */
	private static final List<String> IN_COLUMN_LIST_EKK0241B001 = Arrays.asList(EKK0241B001CBSMsg.KEY_SVC_KEI_NO);
	/** SC実行結果取得キー(EKK0241B001_サービス契約回線内訳一覧照会)) */
	private static final String TEMP_TEMPLATE_KEY_EKK0241B001 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0241B001 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約一覧照会（フロント）SC ■□ */
	/** テンプレートID(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMPLATE_ID_EKK2811B503 = "EKK2811B503";
	/** テンプレートID(明細)(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMPLATE_ID_DETAIL_EKK2811B503 = EKK2811B503CBSMsg.EKK2811B503CBSMSG1LIST;
	/** IN項目リスト(機器オプションサービス契約一覧照会（フロント）) */
	private static final List<String> IN_COLUMN_LIST_EKK2811B503 =
			Arrays.asList(EKK2811B503CBSMsg.KEY_SYSID, EKK2811B503CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, EKK2811B503CBSMsg.KEY_TAKNKIKI_SBT_CD);
	/** SC実行結果取得キー(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMP_TEMPLATE_KEY_EKK2811B503 =
			TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK2811B503 + TEMP_TEMPLATE_PRIFIX_SEP + "1";

	/** ＫＥＹ＿サービス契約番号 */
	protected static final String KEY_SVC_KEI_NO = "key_svc_kei_no";
	/** ＫＥＹ＿宅内機器型式コード */
	protected static final String TAKNKIKI_MODEL_CD = "key_taknkiki_model_cd";
	/** ＫＥＹ＿CX案件切替フラグ（蓋開け）※蓋開後は常に"1" */
	protected static final String KEY_CX_HANTEI_FLG = "cx_hantei_flg";
	/** セット品区分 */
	protected static final String SETHN_DIV = "sethn_div";
	/** 機器提供種別コード */
	protected static final String KKTK_SBT_CD = "key_kktk_sbt_cd";

	/** 料金プラン固定単価（オプション申込料金）一覧明細 */
	protected static final String PPLAN_KTTANKA_LIST = "pplan_kttanka_list";
	/** 料金コース_機器提供サービス一意照会明細 */
	protected static final String PCRS_KKTKSVC_LIST = "pcrs_kktksvc_list";

	/** セット品区分 セット品*/
	protected static final String SETHN_DIV_1 = "1";

	/** セット品区分 個別商品*/
	protected static final String SETHN_DIV_0 = "0";

	/** 標準型式フラグ 1:標準*/
	protected static final String STDARD_MODEL_FLG_1 = "1";

	/** 宅内機器型式抽出条件種別コード 料金グループ*/
	protected static final String TKMDL_CHSHT_JOKEN_SBT_CD_10 = "10";

	/** 宅内機器型式抽出条件種別コード 料金コース*/
	protected static final String TKMDL_CHSHT_JOKEN_SBT_CD_20 = "20";

	/** ルーター速度種別コード 10ギガ */
	private static final String ROUTER_SPEED_SBT_CD_30 = "30";
	/** 保有多機能ルータ種別 低速多機能ルータ */
	private static final String OWN_TKN_RT_KIND_0 = "0";

	/** 工事スキップ チェック結果 */
	private static final String RZT_CHK_RESULT = "rzt_chk_result";
	/** ＯＮＵ交換工事 チェック結果 */
	private static final String ONU_CHK_RESULT = "onu_chk_result";
	/** ＯＮＵ配送方法コード */
	private static final String ONU_HAISO_WAY = "onu_haiso_way";

	/** リスト先頭*/
	protected static final int LIST_TOP = 0;

	/** 無効なサービス契約ステータス */
	private static final List<String> SVC_KEI_STAT_MUKO = Arrays.asList(JFUStrConst.CD00037_910, JFUStrConst.CD00037_920);
	/** 無効な機器提供サービス契約ステータス */
	private static final List<String> KKTK_SVC_KEI_STAT_MUKO = Arrays.asList(JFUStrConst.CD00056_910, JFUStrConst.CD00056_920);
	/** 無効な機器オプションサービス契約ステータス */
	private static final List<String> KKOP_SVC_KEI_STAT_MUKO = Arrays.asList(JFUStrConst.CD01616_910, JFUStrConst.CD01616_920);
	/** 異動年月日時分秒 */
	private static final String IDO_DTM = "ido_dtm";

	/** 機器提供サービス契約ステータス（照査済（020）締結済（030）サービス提供中（100））*/
	private static final List<String> KIKI_SVC_KEI_STAT_YUKOU =
			Arrays.asList(JFUStrConst.CD00056_020, JFUStrConst.CD00056_030, JFUStrConst.CD00056_100);

	/** 機器オプションサービス契約ステータス（照査済（020）締結済（030）サービス提供中（100））*/
	private static final List<String> KIKI_OPT_SVC_KEI_STAT_YUKOU =
			Arrays.asList(JFUStrConst.CD01616_020, JFUStrConst.CD01616_030, JFUStrConst.CD01616_100);

	/** 未完了工事案件ステータス (120：登録済、130：受付済、140：依頼済、150：宅内調査完了済) */
	private static final List<String> MI_KOJI_STAT = Arrays.asList(JFUStrConst.CD00474_120, JFUStrConst.CD00474_130, JFUStrConst.CD00474_140, JFUStrConst.CD00474_150);

	/** 工事受付契機異動区分 (00001：新規申込、00002：サービス追加) */
	private static final List<String> KOJI_UK_OPTNTY_IDO =
			Arrays.asList(JFUStrConst.KU0011_KJ_OP_IDO_DIV_00001, JFUStrConst.KU0011_KJ_OP_IDO_DIV_00002);

	/** あり "1" */
	private static final String FLG_ON = "1";

	/** チェック用パラメータ */
	private static final String WK_CHECK = "WK_JFUGetVariCC";

	/**
	 * 各種通信機器申込み照会コモンコンポーネント部品実行処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	public IRequestParameterReadWrite getVariTsushinKikiMskm(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws Exception
	{

		HashMap SethinKikiworkMapLst = new HashMap();
		ArrayList MskmKikiworkMapLst = new ArrayList();

		HashMap inMap = (HashMap)param.getData(fixedText);
		inMap.put("pplan_kttanka_list", new ArrayList());
		inMap.put("pcrs_kktksvc_list", new ArrayList());
		inMap.put("kktk_pplan_betu_kiki_mdl_list", new ArrayList());
		inMap.put("tkkiki_mdl_list", new ArrayList());
		inMap.put("pplan_list", new ArrayList());
		inMap.put("pplan_kttanka_tkn_list", new ArrayList());

		// ＫＥＹ＿サービス契約番号 
		String keySvcKeiNo = (String)inMap.get(KEY_SVC_KEI_NO);
		// ＫＥＹ＿料金グループコード
		String keyPrcGrpCd = (String)inMap.get(MAP_KEY_KEY_PRC_GRP_CD);
		// 申込機器区分
		String mskmKikiDiv = (String)inMap.get(MAP_KEY_MSKM_KIKI_DIV);
		// SYSID
		String sysId = (String)inMap.get(MAP_KEY_SYSID);
		// サービス契約回線内訳番号 
		String svcKeiKaisenUcwkNo = (String)inMap.get(MAP_KEY_SVC_KEI_KAISEN_UCWK_NO);
		
		// 提供方式契約番号
		String inMaptkHoshikiKeiNo = (String)inMap.get(MAP_TK_HOSHIKI_KEI_NO);
		
		// 申込明細番号
		String inMapMskmDtlNo = (String)inMap.get(MAP_MSKM_DTL_NO);
		
		// ※チェック用パラメータ
		HashMap wkMap = (HashMap)param.getData(WK_CHECK);
		if (wkMap == null)
		{
			wkMap = new HashMap();
			param.setData(WK_CHECK, wkMap); //作業用エリア初期化
		}
		wkMap.put(MAP_KEY_SYSID, (String)inMap.get(MAP_KEY_SYSID));
		wkMap.put(KEY_SVC_KEI_NO, (String)inMap.get(KEY_SVC_KEI_NO));
		wkMap.put(MAP_KEY_SVC_KEI_KAISEN_UCWK_NO, (String)inMap.get(MAP_KEY_SVC_KEI_KAISEN_UCWK_NO));

		// マンション、且つ、ルーター申込の場合
		if (JFUStrConst.CD00133_04.equals(keyPrcGrpCd) && MSKM_KIKI_DIV_1.equals(mskmKikiDiv))
		{
			// ●提供方式契約一覧照会(サービス契約番号)
			// 上りマッピング
			setInMapTkHoshikiKei(param, fixedText, keySvcKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_TK_HSK_KEI, TEMPLATE_ID_TK_HSK_KEI_DETAIL, IN_COLUMN_LIST_TK_HSK_KEI,
					ERROR_COLUMN_TK_HSK_KEI);

			// 提供方式契約一覧照会結果の明細取得
			HashMap<String, String> tkHoshikiKeiMap =
					getTemplateListMap((HashMap)param.getData(fixedText), TEMP_TEMPLATE_KEY_TK_HSK_KEI, TEMPLATE_ID_TK_HSK_KEI_DETAIL,
							JFUStrConst.I_ZERO);
			// マンション通信設備コード
			String mansTushinEquipCd = tkHoshikiKeiMap.get(EKK0891B502CBSMsg1List.MANS_TUSHIN_EQUIP_CD);
			// IP払出コード
			String ipHradsiCd = tkHoshikiKeiMap.get(EKK0891B502CBSMsg1List.IP_HRADSI_CD);

			// 光配線以外の場合
			if (!JFUStrConst.CD01265_03.equals(mansTushinEquipCd))
			{
				// プライベートの場合
				if (JFUStrConst.CD01264_01.equals(ipHradsiCd))
				{
					JFUBPCommon.printBpDebugLog(this.getClass(), ERR_MSG_4 + mansTushinEquipCd + ERR_MSG_IP_HRADSI_CD + ipHradsiCd + ERR_MSG_SQUARE);
					setRelationErrorInfo(param, JFUStrConst.RELATION_CHECK_TEMPLATE_ID_SVC_KEI, ENABLED_SVC_ERR, fixedText);
					throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
							.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
				}
			}
		}
		
		// ●提供方式契約一意照会
		if (!JFUBPCommon.isNull(inMaptkHoshikiKeiNo))
		{
			initData(param, fixedText, IN_COLUMN_LIST_TK_HOSHIKI_KEI );
			// 上りマッピング
			setInMapKaisenUseKeiNoSearch(param, fixedText, inMaptkHoshikiKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_TK_HOSHIKI_KEI, TEMPLATE_ID_TK_HOSHIKI_KEI_DETAIL, IN_COLUMN_LIST_TK_HOSHIKI_KEI , ERROR_COLUMN_TK_HOSHIKI_KEI );
			// 提供方式コード
			String tkHoshikiCd =
					getTemplateListValue(inMap, TEMP_TEMPLATE_KEY_TK_HOSHIKI_KEI , TEMPLATE_ID_TK_HOSHIKI_KEI_DETAIL, EKK0891A010CBSMsg1List.TK_HOSHIKI_CD, 0);
			// 提供方式パターンコード
			String tkHoshikiPatternCd =
					getTemplateListValue(inMap, TEMP_TEMPLATE_KEY_TK_HOSHIKI_KEI, TEMPLATE_ID_TK_HOSHIKI_KEI_DETAIL,
							EKK0891A010CBSMsg1List.TK_HOSHIKI_PATTERN_CD, 0);
			// 出力マップ設定
			setOutTkHoshikiKeiNo(param, fixedText, tkHoshikiCd, tkHoshikiPatternCd);
		}
		
		// ●申込明細一意照会
		if (!JFUBPCommon.isNull(inMapMskmDtlNo))
		{
			initData(param, fixedText, IN_COLUMN_LIST_MSKM_DTL );
			// 上りマッピング
			setInMskmYmdSearch(param, fixedText, inMapMskmDtlNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_MSKM_DTL, TEMPLATE_ID_MSKM_DTL_DETAIL, IN_COLUMN_LIST_MSKM_DTL , ERROR_COLUMN_MSKM_DTL );
			// 申込日
			String mskmYmd =
					getTemplateListValue(inMap, TEMP_TEMPLATE_KEY_MSKM_DTL , TEMPLATE_ID_MSKM_DTL_DETAIL, EKK0021A010CBSMsg1List.MSKM_YMD , 0);
			// 出力マップ設定
			setOuMskmYmd(param, fixedText, mskmYmd);
		}
		
		// ●同一利用場所サービス契約一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_EKK0081B011);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// 上りマッピング
		setInMapGetTelSvcKeiInfo(param, fixedText, sysId, svcKeiKaisenUcwkNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0081B011, TEMPLATE_ID_EKK0081B011_DETAIL, IN_COLUMN_LIST_EKK0081B011,
				ERROR_COLUMN_EKK0081B011);

		// 電話契約のサービス契約番号取得
		String svcKeiNoTel = BLANK;
		// ネットのサービス契約ステータス
		String svcKeiStatNet = BLANK;

		List<HashMap> svcKeiList = getTemplateList(inMap, TEMP_TEMPLATE_KEY_EKK0081B011, TEMPLATE_ID_EKK0081B011_DETAIL);

		for (HashMap svcKeiMap : svcKeiList)
		{
			String svcCd = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_CD);
			String prcGrpCd = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.PRC_GRP_CD);
			String svcKeiStat = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_STAT);

			// 料金グループコードが「10」、ステータスが「910,920」以外
			if (JFUStrConst.CD00133_10.equals(prcGrpCd) && !JFUStrConst.CD00037_910.equals(svcKeiStat) && !JFUStrConst.CD00037_920.equals(svcKeiStat))
			{
				svcKeiNoTel = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_NO);
			}
			// ネットのサービス契約ステータス取得
			if (JFUStrConst.CD00130_01.equals(svcCd))
			{
				svcKeiStatNet = svcKeiStat;
			}
		}
		
		// ●進捗一覧照会
		// 上りマッピング
		setInPrgListShokai(param, fixedText, keySvcKeiNo);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_PRG_LIST_SHOKAI, TEMPLATE_ID_DETAIL_PRG_LIST_SHOKAI, IN_COLUMN_LIST_PRG_LIST_SHOKAI, BLANK);
		
		List<HashMap> prgList = getTemplateList(inMap, TEMP_TEMPLATE_KEY_PRG_LIST_SHOKAI, TEMPLATE_ID_DETAIL_PRG_LIST_SHOKAI);
		
		// 出力マップ設定
		setOutPrgListShokai(param, fixedText, prgList);
		
		// ●機器提供サービス契約一覧照会（各種通信機器情報取得）ルーター、ＶＡ機器など  ※サービス契約回線内訳番号に紐づくＯＮＵ機器、多機能ルーターを除く。
		// 上りマッピング
		setInKktkSvkeiListShokai(param, fixedText, keySvcKeiNo, svcKeiNoTel);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_KKTK_SVKEI_LIST_SHOKAI, TEMPLATE_ID_DETAIL_KKTK_SVKEI_LIST_SHOKAI,
				IN_COLUMN_LIST_KKTK_SVKEI_LIST_SHOKAI, BLANK);

		// ●工事案件一覧照会
		// 上りマッピング
		setInKjakListShokai(param, fixedText, keySvcKeiNo);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_KJAK_LIST_SHOKAI, TEMPLATE_ID_DETAIL_KJAK_LIST_SHOKAI, IN_COLUMN_LIST_KJAK_LIST_SHOKAI, BLANK);

		List<HashMap> kojiakList = getTemplateList(inMap, TEMP_TEMPLATE_KEY_KJAK_LIST_SHOKAI, TEMPLATE_ID_DETAIL_KJAK_LIST_SHOKAI);

		for (int i = 0; i < kojiakList.size(); i++)
		{
			HashMap kojiakDtlMap = kojiakList.get(i);
			String kojiakSbt = (String)kojiakDtlMap.get(EKU0011B010CBSMsg1List.KOJIAK_SBT_CD);
			String kojiakStat = (String)kojiakDtlMap.get(EKU0011B010CBSMsg1List.KOJIAK_STAT);
			String kojiUkOptntyIdoDiv = (String)kojiakDtlMap.get(EKU0011B010CBSMsg1List.KOJI_UK_OPTNTY_IDO_DIV);

			if (JFUStrConst.CD00577_001.equals(kojiakSbt) && KOJI_UK_OPTNTY_IDO.contains(kojiUkOptntyIdoDiv))
			{
				// 新設工事（新規申込、サービス追加）の場合
				if (MI_KOJI_STAT.contains(kojiakStat))
				{
					// 新設工事仕掛中はONU交換工事なし
					if (JFUStrConst.CD00003_1.equals(inMap.get(ONU_CHK_RESULT)))
					{
						if (checkTaknRouterMskm(inMap))
						{
							inMap.put(ONU_HAISO_WAY, JFUStrConst.CD00002_0);
							inMap.put(ONU_CHK_RESULT, JFUStrConst.CD00003_0);
						}
					}
					// 新設工事未完了
					continue;
				}
			}
			// 提供中以外の場合エラー
			if (!JFUStrConst.CD00037_100.equals(svcKeiStatNet))
			{
				// 予約中エラー
				setRelationErrorInfo(param, TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI, ERROR_COLUMN_KKOP_SVKEI_LIST_SHOKAI, fixedText);
				throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
						.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
			}
		}

		// OM-2019-0000912 ADD START
		// ●住所変更中住所変更明細一覧照会２
		setInAdchgNowAdchgListShokai(param, fixedText, keySvcKeiNo);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_ADCHG_NOW_ADCHG_LIST_SHOKAI, TEMPLATE_ID_DETAIL_ADCHG_NOW_ADCHG_LIST_SHOKAI, IN_COLUMN_LIST_ADCHG_NOW_ADCHG_LIST_SHOKAI, BLANK);

		// 住変中の住所変更番号を取得
		String adchgNo = BLANK;
		
		List<HashMap> adchgDtlList = getTemplateList(inMap, TEMP_TEMPLATE_KEY_EKK2101B501, TEMPLATE_ID_DETAIL_ADCHG_NOW_ADCHG_LIST_SHOKAI);

		if(adchgDtlList != null && adchgDtlList.size() > 0)
		{
			HashMap adchgDtlMap = adchgDtlList.get(0);
			adchgNo = (String)adchgDtlMap.get(EKK2101B501CBSMsg1List.ADCHG_NO);
		}
		
		if(adchgNo != null &&!BLANK.equals(adchgNo))
		{
			// ●住所変更明細一覧照会
			setInAdchgDtlListShokai(param, fixedText, adchgNo, JFUStrConst.CD01241_06);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_ADCHG_DTL_LIST_SHOKAI, TEMPLATE_ID_DETAIL_ADCHG_DTL_LIST_SHOKAI, IN_COLUMN_LIST_ADCHG_DTL_LIST_SHOKAI, BLANK);
		}
		// OM-2019-0000912 ADD END

		// ○サービス契約に紐づくサービス契約状態（異動予約：コース変更、機器情報）を取得する
		// ●サービス契約一覧照会（各種通信機器情報取得）
		// 上りマッピング
		setInSvkeiListShokai(param, fixedText, keySvcKeiNo);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_SVKEI_LIST_SHOKAI, TEMPLATE_ID_DETAIL_SVKEI_LIST_SHOKAI, IN_COLUMN_LIST_SVKEI_LIST_SHOKAI,
				BLANK);
		
		if ("1".equals(inMap.get("mskm_kiki_div")))
		{
			// 多機能ルーターデータ取得
			getTknRouterDate(handle, param, fixedText, svcKeiStatNet);
		}
// ANK-3529-00-00 ADD START
		else
		{
			// ●サービス契約一意照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_EKK0081A010);
			// 上りマッピング
			setInMapSvcKeiUniqueSearch(param, fixedText, keySvcKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0081A010, TEMPLATE_ID_EKK0081A010_DETAIL, IN_COLUMN_LIST_EKK0081A010,
					ERROR_COLUMN_EKK0081A010);
			// サービス開始年月日
			String svcStaYmd =
					getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0081A010), TEMPLATE_ID_EKK0081A010_DETAIL,
							EKK0081A010CBSMsg1List.SVC_STA_YMD, JFUStrConst.I_ZERO);
			String kikiSoryoUm = getKikiSoryoUm(svcStaYmd, false, JFUStrConst.CD00002_0);

			// ●ストリーミングメディアプレーヤーの場合、機器送料有無＝"1"有にする。
			if ("4".equals(inMap.get("mskm_kiki_div")))
			{
				kikiSoryoUm = JFUStrConst.CD00002_1;
			}
			
			// ●機器送料有無＝"1"有の場合に、一時支払料金マスターから契約事務手数料を取得する。
			if (JFUStrConst.CD00002_1.equals(kikiSoryoUm))
			{
				// ● EKK0721A010_一時支払料金一意照会
				// 上りマッピング
				setInMapEKK0721A010(param, fixedText, (String)inMap.get(MAP_KEY_TMP_PAY_PRC_NO));
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0721A010, TEMPLATE_ID_EKK0721A010_DETAIL, ITEM_NM_LIST_EKK0721A010, BLANK);
			}
			inMap.put("kikiSoryoUm", kikiSoryoUm);
		}
// ANK-3529-00-00 ADD END

		//FUSV0133WORK01の申込機器区分の判定
		if ("1".equals(inMap.get("mskm_kiki_div")))
		{
			// ○宅内機器型式コードが未決定の場合（ルーター）

			// ●宅内機器型式取得 EKK1861B501 サービス別宅内機器型式候補一覧照会（抽出条件種別）
			// 上りマッピング
			setInSvbetuTkkikimdlListShokai(param, fixedText);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);

			List<HashMap> resultlist = JFUBPCommon.getTaknkiki(handle, param, fixedText);

			// 下りマッピング
			setOutSvbetuTkkikimdlListShokai(param, fixedText, resultlist);

		}

		//○取得した宅内機器型式コードがセット品の場合は、個別の宅内機器型式コードを取得する
		// ●セット品構成一覧照会
		// 上りマッピング
		setInSethinKouseiListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_SETHIN_KOUSEI_LIST_SHOKAI, TEMPLATE_ID_DETAIL_SETHIN_KOUSEI_LIST_SHOKAI,
				IN_COLUMN_LIST_SETHIN_KOUSEI_LIST_SHOKAI, BLANK);

		ArrayList<Object> workLst_SethinKouseiList = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_SETHIN_KOUSEI_LIST_SHOKAI);

		if (workLst_SethinKouseiList == null)
		{
			workLst_SethinKouseiList = new ArrayList();
		}

		//○宅内機器型式コード決定後
		//セット品構成一覧照会の明細行が1件以上あるかの判定
		if (0 < workLst_SethinKouseiList.size())
		{

			// ●宅内機器セット品型一覧照会
			// 上りマッピング
			setInTkkikiSethinmdlListShokai(param, fixedText);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_TKKIKI_SETHINMDL_LIST_SHOKAI, TEMPLATE_ID_DETAIL_TKKIKI_SETHINMDL_LIST_SHOKAI,
					IN_COLUMN_LIST_TKKIKI_SETHINMDL_LIST_SHOKAI, BLANK);
			// 下りマッピング
			setOutTkkikiSethinmdlListShokai(param, fixedText);

			// セット品用パラメータ設定
			for (int i = 0; i < workLst_SethinKouseiList.size(); i++)
			{
				SethinKikiworkMapLst = (HashMap)workLst_SethinKouseiList.get(i);
				// 宅内機器型式コード
				MskmKikiworkMapLst.add(SethinKikiworkMapLst.get(EZM0441B010CBSMsg1List.TAKNKIKI_MODEL_CD));
			}
			inMap.put(SETHN_DIV, SETHN_DIV_1);
		}
		else
		{

			// 多機能ルーター申込かをチェック
			if (checkTaknRouterMskm(inMap))
			{
				// 単価を取得
				getPplanKttanka(handle, param, fixedText);

				// ＯＮＵ交換工事可の場合はＨＧＷを設定
				if (!JFUBPCommon.isNull(inMap.get(ONU_HAISO_WAY)) && JFUStrConst.CD00037_100.equals(svcKeiStatNet))
				{
					MskmKikiworkMapLst.add(KIKI_TKRT_EOGW100S);
				}
				else
				{
					MskmKikiworkMapLst.add(KIKI_TKRT_EORT100F1);
				}

			}
			else
			{
				MskmKikiworkMapLst.add(inMap.get(TAKNKIKI_MODEL_CD));
			}
			inMap.put(SETHN_DIV, SETHN_DIV_0);

		}

		int mskmKikiCnt = MskmKikiworkMapLst.size();
		for (int i = 0; i < mskmKikiCnt; i++)
		{

			String keyTaknikikiModelCd = (String)MskmKikiworkMapLst.get(i);

			// ●宅内機器型式／付属品型式一覧照会（宅内機器型式一意照会）
			// 上りマッピング
			setInTkkikiHuzokuhinMdlListShokai(param, fixedText, keyTaknikikiModelCd);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI, TEMPLATE_ID_DETAIL_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI,
					IN_COLUMN_LIST_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI, BLANK);
			// 下りマッピング
			setOutTkkikiHuzokuhinMdlListShokai(param, fixedText);

			// ＯＮＵ交換工事可の場合はＨＧＷを設定
			if (!JFUBPCommon.isNull(inMap.get(ONU_HAISO_WAY)))
			{
				inMap.put("tkkiki_mdl_list", new ArrayList());
				// ●宅内機器型式／付属品型式一覧照会（宅内機器型式一意照会）
				// 上りマッピング
				setInTkkikiHuzokuhinMdlListShokai(param, fixedText, KIKI_TKRT_EOGW100S);
				//検索エラーなし設定
				ignoreSearchError(param, fixedText);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI, TEMPLATE_ID_DETAIL_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI,
						IN_COLUMN_LIST_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI, BLANK);
				// 下りマッピング
				setOutTkkikiHuzokuhinMdlListShokai(param, fixedText);
			}

			// ●機器型式対象料金コース一意照会
			// 上りマッピング
			setInKikimdlTgPcrsShokai(param, fixedText, keyTaknikikiModelCd);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_KIKIMDL_TG_PCRS_SHOKAI, TEMPLATE_ID_DETAIL_KIKIMDL_TG_PCRS_SHOKAI,
					IN_COLUMN_LIST_KIKIMDL_TG_PCRS_SHOKAI, BLANK);
			// 下りマッピング
			setOutKikimdlTgPcrsShokai(param, fixedText);

			// ●料金プラン一覧照会
			// 上りマッピング
			setInPplanListShokai(param, fixedText);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_PPLAN_LIST_SHOKAI, TEMPLATE_ID_DETAIL_PPLAN_LIST_SHOKAI,
					IN_COLUMN_LIST_PPLAN_LIST_SHOKAI, BLANK);
			// 下りマッピング
			setOutPplanListShokai(param, fixedText);

			// ●料金プラン固定単価（オプション申込料金）一覧照会
			// 上りマッピング
			setInPplanKttankaOpListShokai(param, fixedText);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_PPLAN_KTTANKA_OP_LIST_SHOKAI, TEMPLATE_ID_DETAIL_PPLAN_KTTANKA_OP_LIST_SHOKAI,
					IN_COLUMN_LIST_PPLAN_KTTANKA_OP_LIST_SHOKAI, BLANK);
			// 下りマッピング
			setOutPplanKttankaOpListShokai(param, fixedText, keyTaknikikiModelCd);

			// ●料金コース一意照会
			// 上りマッピング
			setInPcrsShokai(param, fixedText);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_PCRS_SHOKAI, TEMPLATE_ID_DETAIL_PCRS_SHOKAI, IN_COLUMN_LIST_PCRS_SHOKAI, BLANK);

			// ●料金コース_機器提供サービス一意照会
			// 上りマッピング
			setInPcrsKktkSvcShokai(param, fixedText);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_PCRS_KKTK_SVC_SHOKAI, TEMPLATE_ID_DETAIL_PCRS_KKTK_SVC_SHOKAI,
					IN_COLUMN_LIST_PCRS_KKTK_SVC_SHOKAI, BLANK);
			// 下りマッピング
			setOutPcrsKktkSvcShokai(param, fixedText, keyTaknikikiModelCd);

		}

		// ●宅内機器型式コードをリストに設定
		ArrayList<Object> workLst_PplanKttankaList = (ArrayList<Object>)inMap.get(PPLAN_KTTANKA_LIST);
		ArrayList<Object> workLst_PcrsKktksvcList = (ArrayList<Object>)inMap.get(PCRS_KKTKSVC_LIST);

		for (int i = 0; i < workLst_PplanKttankaList.size(); i++)
		{
			String keyTaknikikiModelCd = (String)MskmKikiworkMapLst.get(i);
			HashMap<String, Object> PplanKttankaList = (HashMap<String, Object>)workLst_PplanKttankaList.get(i);
			HashMap<String, Object> PcrsKktksvcList = (HashMap<String, Object>)workLst_PcrsKktksvcList.get(i);

			PplanKttankaList.put("taknkiki_model_cd", keyTaknikikiModelCd);
			PcrsKktksvcList.put("taknkiki_model_cd", keyTaknikikiModelCd);

		}

		return param;
	}
	
	/**
	 * 上りマッピング項目設定(申込明細一意照会）
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param inMapMskmDtlNo 申込明細番号
	 * @throws RequestParameterException
	 */
	private void setInMskmYmdSearch(IRequestParameterReadWrite param, String fixedText, String inMapMskmDtlNo) throws RequestParameterException
	{
		// 機能コード設定(2:申込明細一意照会)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿申込明細番号
		inMap.put(EKK0021A010CBSMsg.KEY_MSKM_DTL_NO, inMapMskmDtlNo);
	}
	
	/**
	 * 出力マップ設定項目設定(申込明細番号)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param tkHoshikiKeiCd
	 * @throws RequestParameterException 
	 * @throws RequestParameterException
	 */
	private void setOuMskmYmd(IRequestParameterReadWrite param, String fixedText, String mskmYmd) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		inMap.put(MSKM_YMD, mskmYmd);
	}

	/**
	 * 出力マップ設定項目設定(提供方式契約コード)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param tkHoshikiKeiCd 提供方式契約番号
	 * @param tkHoshikiPatternCd 提供方式パターンコード
	 * @throws RequestParameterException
	 */
	private void setOutTkHoshikiKeiNo(IRequestParameterReadWrite param, String fixedText, String tkHoshikiKeiCd, String tkHoshikiPatternCd) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		inMap.put(MAP_TK_HOSHIKI_CD, tkHoshikiKeiCd);
		inMap.put(MAP_TK_HOSHIKI_PATTERN_CD, tkHoshikiPatternCd);
	}

	/**
	 * 上りマッピング項目設定(提供方式契約一意照会）
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param tkHoshikiKeiNo 提供方式契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapKaisenUseKeiNoSearch(IRequestParameterReadWrite param, String fixedText, String inMaptkHoshikiKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1:提供方式契約一意照会)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿提供方式契約番号
		inMap.put(EKK0891A010CBSMsg.KEY_TK_HOSHIKI_KEI_NO, inMaptkHoshikiKeiNo);
	}
	
	/**
	 * 出力マップ設定項目設定(異動年月日時分秒)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param prgList prgList
	 * @throws RequestParameterException
	 */
	private void setOutPrgListShokai(IRequestParameterReadWrite param, String fixedText, List<HashMap> prgList) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		if (!(prgList == null) && (prgList.size() > 0)) 
		{
			inMap.put(MAP_IDO_DTM, prgList.get(LIST_TOP).get(IDO_DTM));
		}
	}
	
	/**
	 * 多機能ルーターデータ取得処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiStatNet サービス契約ステータス
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	private void getTknRouterDate(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String svcKeiStatNet) throws Exception
	{
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号 
		String keySvcKeiNo = (String)inMap.get(KEY_SVC_KEI_NO);
		// ＫＥＹ＿CX案件切替フラグ（蓋開け）※蓋開後は常に"1" 
		String cx_hantei_flg = (String)inMap.get(KEY_CX_HANTEI_FLG);

		// 〇宅内機器型式コード
		String taknkikiModelCd = "";

		// ●機器オプションサービス契約一覧照会（フロント）
		initData(param, fixedText, IN_COLUMN_LIST_KKOP_SVKEI_LIST_SHOKAI);
		// 上りマッピング
		setInKkopSvkeiListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI, TEMPLATE_ID_DETAIL_KKOP_SVKEI_LIST_SHOKAI,
				IN_COLUMN_LIST_KKOP_SVKEI_LIST_SHOKAI, BLANK);
		// 〇保有多機能ルーター機能種別の返却
		boolean ownTaknRouterFlag = false;
		String ownTknRouterKind = JFUStrConst.EMPTY;
		String kkop_svc_kei_stat_err = JFUStrConst.EMPTY;

		HashMap<String, String> takinoMap = new HashMap<String, String>();
		for (HashMap dataMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOP_SVKEI_LIST_SHOKAI),
				TEMPLATE_ID_DETAIL_KKOP_SVKEI_LIST_SHOKAI))
		{
			String kkopSvcKeiStat = (String)dataMap.get(EKK2811B503CBSMsg1List.KKOP_SVC_KEI_STAT);
			String pplanCd = (String)dataMap.get(EKK2811B503CBSMsg1List.PPLAN_CD);
			String kkop_svc_cd = (String)dataMap.get(EKK2811B503CBSMsg1List.KKOP_SVC_CD);
			if (KKOP_SVC_KEI_STAT_MUKO.contains(kkopSvcKeiStat))
			{
				continue;
			}
			// 有線ルーター機能
			if (JFUStrConst.CD00565_PG0101.equals(pplanCd))
			{
				ownTknRouterKind = "2"; // 有線ルーター機能
			}
			// 無線ルーター機能
			else if (JFUStrConst.CD00565_PG0201.equals(pplanCd))
			{
				ownTknRouterKind = "1"; // 無線ルーター機能
			}
			taknkikiModelCd = (String)dataMap.get(EKK2811B503CBSMsg1List.TAKNKIKI_MODEL_CD);

			String kktk_svc_kei_no = (String)dataMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_KEI_NO);
			String kktkSvcKeiStat = (String)dataMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_KEI_STAT);
			String kiki_seizo_no = (String)dataMap.get(EKK2811B503CBSMsg1List.KIKI_SEIZO_NO);
			String kktk_svc_cd = (String)dataMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_CD);
			if (FLG_ON.equals(cx_hantei_flg) && !JFUStrConst.CD00056_100.equals(svcKeiStatNet))
			{
				// CX案件切替フラグ（蓋開け）
				// ステータスチェックエラー(照査済、締結済、サービス提供中以外はエラー）
				if (!KIKI_SVC_KEI_STAT_YUKOU.contains(kktkSvcKeiStat) || !KIKI_OPT_SVC_KEI_STAT_YUKOU.contains(kkopSvcKeiStat))
				{
					// ステータスエラー（※「多機能低速→10G多機能に交換中」は 低速は"変更中"、10G多機能は"照査済"。）
					debugLog("■■■ 多機能のステータスチェックエラー ■■■");
					setRelationErrorInfo(param, TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI, ERROR_COLUMN_KKOP_SVKEI_LIST_SHOKAI, fixedText);
					throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
							.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
				}
			}
			else
			{
				// 予約中（100以外)の場合エラー
				if (!JFUStrConst.CD00056_100.equals(kktkSvcKeiStat) || !JFUStrConst.CD01616_100.equals(kkopSvcKeiStat))
				{
					// 予約中エラー
					setRelationErrorInfo(param, TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI, ERROR_COLUMN_KKOP_SVKEI_LIST_SHOKAI, fixedText);
					throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
							.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
				}
			}

			// 多機能ルーター保有時は、true
			debugLog("■■■■■ " + "機器提供サービス契約番号[" + kktk_svc_kei_no + "] 機器提供サービス契約ステータス[" + kktkSvcKeiStat + "] ■■■■■");
			ownTaknRouterFlag = true;
			takinoMap.put("kktk_svc_kei_stat", kktkSvcKeiStat);
			takinoMap.put(kkop_svc_cd, kkop_svc_cd);
			if (!JFUStrConst.CD01616_100.equals(kkopSvcKeiStat))
			{
				kkop_svc_kei_stat_err = FLG_ON;
			}
			takinoMap.put("kiki_seizo_no", kiki_seizo_no);

			// ホームゲートウェイ保有はONU交換工事なし
			if (JFUStrConst.CD00132_C025.equals(kktk_svc_cd))
			{
				inMap.put(ONU_HAISO_WAY, JFUStrConst.CD00002_0);
				inMap.put(ONU_CHK_RESULT, JFUStrConst.CD00003_0);
			}
		}
		takinoMap.put("kkop_svc_kei_stat_err", kkop_svc_kei_stat_err);

		// ■現在有効な回線以外で、多機能が申込中の場合はエラー（例：自回線ではなく引越先の他回線で、サービス契約番号が同じもの。）
		if (FLG_ON.equals(cx_hantei_flg))
		{
			// CX案件切替フラグ（蓋開け）
			if (isTakinoTakaisenErr(handle, param, WK_CHECK, ownTaknRouterFlag))
			{
				debugLog("■■■ 他回線多機能申込中エラー ■■■");
				setRelationErrorInfo(param, TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI, ERROR_COLUMN_KKOP_SVKEI_LIST_SHOKAI, fixedText);
				throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
						.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
			}
		}

		inMap.put("ownTknRouterKind", ownTknRouterKind);
		//OM-2017-0000098 ADD START
		inMap.put("ownTaknRouterFlag", ownTaknRouterFlag);
		//OM-2017-0000098 ADD END
		// ●割引サービス契約一覧照会（割引サービス指定）
		// 上りマッピング
		setInWribSvkeiListShokai(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_WRIB_SVKEI_LIST_SHOKAI, TEMPLATE_ID_DETAIL_WRIB_SVKEI_LIST_SHOKAI,
				IN_COLUMN_LIST_WRIB_SVKEI_LIST_SHOKAI, BLANK);
		// 〇ファミリーパック申込有無
		String famipaMskmUmu = JFUStrConst.CD00002_0; // "0"：無
		if (isExistsTemplateDetail(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_WRIB_SVKEI_LIST_SHOKAI),
				TEMPLATE_ID_DETAIL_WRIB_SVKEI_LIST_SHOKAI))
		{
			// 割引サービス契約ステータス
			famipaMskmUmu = JFUStrConst.CD00002_1; // "1"：有
		}
		inMap.put("famipaMskmUmu", famipaMskmUmu);

		// ● EKK0341B002_機器提供サービス契約一覧照会（サービス契約番号）※ルーター取得用
		String hmpinKktkSvcKeiNoBbr = "";
		// 上りマッピング
		setInMapEKK0341B002(param, fixedText, keySvcKeiNo, JFUStrConst.KK0771_KKTK_SVC_CD_C014);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0341B002, TEMPLATE_ID_EKK0341B002_DETAIL, ITEM_NM_LIST_EKK0341B002, BLANK);

		for (HashMap dataMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0341B002), TEMPLATE_ID_EKK0341B002_DETAIL))
		{
			// 機器提供サービス契約ステータス
			String kktkSvcKeiStat = (String)dataMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT);

			// 無効な機器提供サービス契約ステータス（サービス契約ステータス＝"910"（解約）、"920"（キャンセル）以外）の場合スキップ
			if (KKTK_SVC_KEI_STAT_MUKO.contains(kktkSvcKeiStat))
			{
				continue;
			}
			// 返品機器提供サービス契約番号（ＢＢＲ）を返却
			hmpinKktkSvcKeiNoBbr = (String)dataMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
			// 機器提供サービスコードがBBR
			if (!JFUBPCommon.isNull((String)dataMap.get(EKK0341B002CBSMsg1List.TAKNKIKI_MODEL_CD)))
			{
				// 宅内機器型式コード
				taknkikiModelCd = (String)dataMap.get(EKK0341B002CBSMsg1List.TAKNKIKI_MODEL_CD);
			}
		}
		inMap.put("hmpinKktkSvcKeiNoBbr", hmpinKktkSvcKeiNoBbr);

		String routerSpeedSbtCd = "";
		String shuriKokanGrpSbtCd = "";
		if (!JFUBPCommon.isNull(taknkikiModelCd))
		{
			// ● EZM0411A010_宅内機器型式一意照会※ルーター取得用
			// 上りマッピング
			setInMapEZM0411A010(param, fixedText, taknkikiModelCd);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EZM0411A010, TEMPLATE_ID_EZM0411A010_DETAIL, ITEM_NM_LIST_EZM0411A010, BLANK);
			// ルーター速度種別コード
			routerSpeedSbtCd =
					getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EZM0411A010), TEMPLATE_ID_EZM0411A010_DETAIL,
							EZM0411A010CBSMsg1List.ROUTER_SPEED_SBT_CD, 0);
			// 種類交換グループ種別コード
			shuriKokanGrpSbtCd =
					getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EZM0411A010), TEMPLATE_ID_EZM0411A010_DETAIL,
							EZM0411A010CBSMsg1List.SHURI_KOKAN_GRP_SBT_CD, 0);

		}
		inMap.put("rooter_taknkikiModelCd", taknkikiModelCd);
		inMap.put("routerSpeedSbtCd", routerSpeedSbtCd);
		inMap.put("shuriKokanGrpSbtCd", shuriKokanGrpSbtCd);

		// 保有ルーターが多機能ルーター以外の場合のみ電話（ＶＡ）の返品が発生する。
		// （ＶＡ機能の場合も含む）
		String hmpinKktkSvcKeiNoVa = "";
		if (!ownTaknRouterFlag)
		{
			// ●回線対象サービス契約一覧照会
			// ● EKK0241B002_回線対象サービス契約一覧照会
			// 上りマッピング
			setInMapEKK0241B002(param, fixedText);
			// 検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0241B002, TEMPLATE_ID_EKK0241B002_DETAIL, ITEM_NM_LIST_EKK0241B002, BLANK);
			// 〇返品機器提供サービス契約番号（ＶＡ）の返却
			// 電話のサービス契約番号を取得
			String telSvcKeiNo = "";
			for (HashMap dataMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0241B002), TEMPLATE_ID_EKK0241B002_DETAIL))
			{
				// サービスコード
				String svcCd = (String)dataMap.get(EKK0241B002CBSMsg1List.SVC_CD);
				// サービス契約ステータス
				String svcKeiStat = (String)dataMap.get(EKK0241B002CBSMsg1List.SVC_KEI_STAT);

				// サービスコード＝"02"（電話サービス）かつ 無効なサービス契約ステータス以外（サービス契約ステータス＝"910"（解約）、"920"（キャンセル）以外）
				if (JFUStrConst.CD00130_02.equals(svcCd) && !SVC_KEI_STAT_MUKO.contains(svcKeiStat))
				{
					telSvcKeiNo = (String)dataMap.get(EKK0241B002CBSMsg1List.SVC_KEI_NO);
				}
			}
			// 電話の機器提供サービス番号を取得
			if (!JFUBPCommon.isNull(telSvcKeiNo))
			{
				// ● EKK0341B002_機器提供サービス契約一覧照会（サービス契約番号）※ＶＡ取得用
				// 上りマッピング
				setInMapEKK0341B002(param, fixedText, telSvcKeiNo, JFUStrConst.KK0771_KKTK_SVC_CD_C004);
				//検索エラーなし設定
				ignoreSearchError(param, fixedText);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0341B002, TEMPLATE_ID_EKK0341B002_DETAIL, ITEM_NM_LIST_EKK0341B002, BLANK);

				for (HashMap dataMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0341B002),
						TEMPLATE_ID_EKK0341B002_DETAIL))
				{
					// 機器提供サービス契約ステータス
					String kktkSvcKeiStat = (String)dataMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT);
					// 機器提供サービスコード
					String kktkSvcCd = (String)dataMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_CD);

					// 無効な機器提供サービス契約ステータス以外（サービス契約ステータス＝"910"（解約）、"920"（キャンセル）以外）且つ 機器提供サービスコードがVA
					if (!KKTK_SVC_KEI_STAT_MUKO.contains(kktkSvcKeiStat) && JFUStrConst.CD00132_C004.equals(kktkSvcCd))
					{
						// 返品機器提供サービス契約番号（ＶＡ）を返却
						hmpinKktkSvcKeiNoVa = (String)dataMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
					}
				}
			}
		}
		inMap.put("hmpinKktkSvcKeiNoVa", hmpinKktkSvcKeiNoVa);

		// ■手数料を取得する（多機能ルーターの出荷＋サービス開始日の翌々日以降の場合）

		// ●サービス契約一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_EKK0081A010);
		// 上りマッピング
		setInMapSvcKeiUniqueSearch(param, fixedText, keySvcKeiNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0081A010, TEMPLATE_ID_EKK0081A010_DETAIL, IN_COLUMN_LIST_EKK0081A010,
				ERROR_COLUMN_EKK0081A010);
		// サービス開始年月日
		String svcStaYmd =
				getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0081A010), TEMPLATE_ID_EKK0081A010_DETAIL,
						EKK0081A010CBSMsg1List.SVC_STA_YMD, JFUStrConst.I_ZERO);
		// 料金コース
		String nowPcrsCd =
				getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0081A010), TEMPLATE_ID_EKK0081A010_DETAIL,
						EKK0081A010CBSMsg1List.PCRS_CD, JFUStrConst.I_ZERO);

		// ●判定
		String kikiSoryoUm = getKikiSoryoUm(svcStaYmd, ownTaknRouterFlag, famipaMskmUmu);

		// ●異動予約一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_3);
		// 上りマッピング
		setInMapIdoRsvSearch(param, fixedText, keySvcKeiNo, JFUStrConst.CD00576_00009, JFUStrConst.CD01167_003);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_3, TEMPLATE_ID_3_DETAIL, IN_COLUMN_LIST_3, ERROR_COLUMN_3);
		List<HashMap> idoRsvListPcrs = getTemplateList(inMap, TEMP_TEMPLATE_KEY_3_1, TEMPLATE_ID_3_DETAIL);

		for (HashMap idoRsvMap : idoRsvListPcrs)
		{
			String idoRsvStatCd = (String)idoRsvMap.get(EKK1681B001CBSMsg1List.IDO_RSV_STAT_CD);
			// 予約手続き中、または、未反映
			if (JFUStrConst.CD01168_00.equals(idoRsvStatCd) || JFUStrConst.CD01168_03.equals(idoRsvStatCd))
			{
				nowPcrsCd = (String)idoRsvMap.get(EKK1681B001CBSMsg1List.NEW_PCRS_CD);
			}
		}

		// 5ギガ10ギガで低速多機能ルータの場合
		if (JFUStrConst.PCRS_CD_5G10G.contains(nowPcrsCd))
		{
			if (FLG_ON.equals(cx_hantei_flg))
			{
				// CX案件切替フラグ（蓋開け）
				// 「10G多機能」、型未確定の場合は、有線・無線切替。
				if (ownTaknRouterFlag && !ROUTER_SPEED_SBT_CD_30.equals(routerSpeedSbtCd) && (!JFUBPCommon.isNull(taknkikiModelCd)))
				{
					// 低速多機能の場合
					String kktk_svc_kei_stat = takinoMap.get("kktk_svc_kei_stat");
					boolean rtKino = (JFUStrConst.KK2801_KKOP_SVC_CD_G01.equals(takinoMap.get(JFUStrConst.KK2801_KKOP_SVC_CD_G01)) ? true : false); //ルーター機能
					boolean vaKino = (JFUStrConst.KK2801_KKOP_SVC_CD_G02.equals(takinoMap.get(JFUStrConst.KK2801_KKOP_SVC_CD_G02)) ? true : false); //ＶＡ機能
					String kkop_err = takinoMap.get("kkop_svc_kei_stat_err"); //機器オプション サービス提供中以外
					if ((rtKino == false) && (vaKino))
					{
						// ■ＶＡ機能のみ
						if (JFUStrConst.CD00056_100.equals(kktk_svc_kei_stat) && (!FLG_ON.equals(kkop_err)))
						{
							// ■「機器提供サービス契約ステータス＝サービス提供中」かつ「機器オプションサービス契約ステータス＝サービス提供中」は、"１０ギガ多機能交換"。
							// 機器送料有無
							kikiSoryoUm = getKikiSoryoUm(svcStaYmd, false, famipaMskmUmu);
							// 低速多機能ルータ
							inMap.put("ownTknRouterKind", OWN_TKN_RT_KIND_0);
						}
						else
						{
							// ■出荷済
							// 5ギガ10ギガで低速多機能ルータのとき共通画面エラー
							// （※補足「多機能低速→10G多機能に交換」処理後は 低速は"変更中"、10G多機能は"照査済"となる。）
							debugLog("■■■ １０ギガ多機能交換エラー ■■■ kktk_svc_kei_stat[" + kktk_svc_kei_stat + "] kkop_err[" + kkop_err + "] taknkikiModelCd["
									+ taknkikiModelCd + "]");
							setRelationErrorInfo(param, TEMPLATE_ID_KKOP_SVKEI_LIST_SHOKAI, ERROR_COLUMN_KKOP_SVKEI_LIST_SHOKAI, fixedText);
							throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
									.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
						}
					}
				}
			}
			else
			{
				if (ownTaknRouterFlag && !ROUTER_SPEED_SBT_CD_30.equals(routerSpeedSbtCd))
				{
					// 機器送料有無
					kikiSoryoUm = getKikiSoryoUm(svcStaYmd, false, famipaMskmUmu);
					// 低速多機能ルータ
					inMap.put("ownTknRouterKind", OWN_TKN_RT_KIND_0);
				}
			}
		}

		// ＯＮＵ交換工事可の場合はＨＧＷを設定
		if (JFUStrConst.CD00003_1.equals(inMap.get(ONU_CHK_RESULT)))
		{
			// 多機能保有なし、または低速多機能ルーター
			if (!ownTaknRouterFlag || OWN_TKN_RT_KIND_0.equals(inMap.get("ownTknRouterKind")))
			{
				// 契約事務手数料（ｅｏホームゲートウェイ追加／交換）
				inMap.put(MAP_KEY_TMP_PAY_PRC_NO, (String)inMap.get(MAP_KEY_TMP_PAY_PRC_NO_HGW));

				// 工事スキップ＝"1"可
				if (JFUStrConst.CD00003_1.equals(inMap.get(RZT_CHK_RESULT)))
				{
					// ＯＮＵ配送方法（お客様直送）
					inMap.put(ONU_HAISO_WAY, JFUStrConst.CD01148_1);
				}
				// 工事スキップ≠"1"可
				else
				{
					// ＯＮＵ配送方法（工事会社配送）
					inMap.put(ONU_HAISO_WAY, JFUStrConst.CD01148_2);
					// 事務手数料なし
					kikiSoryoUm = JFUStrConst.EMPTY;
				}
			}
		}

		// ●機器送料有無＝"1"有の場合に、一時支払料金マスターから契約事務手数料を取得する。
		if (JFUStrConst.CD00002_1.equals(kikiSoryoUm))
		{
			// ● EKK0721A010_一時支払料金一意照会
			// 上りマッピング
			setInMapEKK0721A010(param, fixedText, (String)inMap.get(MAP_KEY_TMP_PAY_PRC_NO));
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0721A010, TEMPLATE_ID_EKK0721A010_DETAIL, ITEM_NM_LIST_EKK0721A010, BLANK);
		}
		inMap.put("kikiSoryoUm", kikiSoryoUm);

	}

	/**
	 * 機器送料有無判定
	 * 
	 * <br>
	 * @param svcStaYmd サービス開始年月日
	 * @param ownTaknRouterFlag 多機能ルーター保有フラグ
	 * @param famipaMskmUmu ファミリーパック申込有無
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	private String getKikiSoryoUm(String svcStaYmd, boolean ownTaknRouterFlag, String famipaMskmUmu) throws Exception
	{
		// 機器送料有無
		String kikiSoryoUm = JFUStrConst.CD00002_0; // "0"：無

		// サービス開始年月日がＮＵＬＬ又は多機能ルーター保有済又はファミリーパック申込がある場合は機器送料は無料。
		if (JFUBPCommon.isNull(svcStaYmd) || ownTaknRouterFlag || JFUStrConst.CD00002_1.equals(famipaMskmUmu))
		{
			return kikiSoryoUm;
		}

		// ２ヶ月後を取得(無料期間の最終日）
		String svcStaYmdYukoEnd = JFUBPCommon.addMonth(svcStaYmd, 2);
// ANK-3529-00-00 ADD START
		// 月末日を取得する
		svcStaYmdYukoEnd = svcStaYmdYukoEnd.substring(0, 6) + JPCDateUtil.getEndOfMonth(svcStaYmdYukoEnd);
// ANK-3529-00-00 ADD END

		// 運用日付取得
		String opeDate = JFUBPCommon.getOpeDate(null);

		// 運用日が無料期間内であれば機器送料は無料。
		if (Integer.parseInt(svcStaYmd) <= Integer.parseInt(opeDate) && Integer.parseInt(opeDate) <= Integer.parseInt(svcStaYmdYukoEnd))
		{
			kikiSoryoUm = JFUStrConst.CD00002_0; // "0"：無
		}
		else
		{
			kikiSoryoUm = JFUStrConst.CD00002_1; // "1"：有
		}

		return kikiSoryoUm;

	}

	/**
	 * 上りマッピング項目設定(サービス契約一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapSvcKeiUniqueSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約一覧照会（各種通信機器情報取得）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNoNet ネットのサービス契約番号
	 * @param svcKeiNoTel 電話のサービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInKktkSvkeiListShokai(IRequestParameterReadWrite param, String fixedText, String svcKeiNoNet, String svcKeiNoTel)
			throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		if (JFUBPCommon.isNull(svcKeiNoTel))
		{
			// ＫＥＹ＿サービス契約番号
			inMap.put(EKK0341B512CBSMsg.KEY_SVC_KEI_NO, svcKeiNoNet);
		}
		else
		{
			StringBuffer svcKeiNoSb = new StringBuffer();

			svcKeiNoSb.append(svcKeiNoNet).append(JFUStrConst.COMMA).append(svcKeiNoTel);

			// ＫＥＹ＿サービス契約番号
			inMap.put(EKK0341B512CBSMsg.KEY_SVC_KEI_NO, svcKeiNoSb.toString());
		}

		// 最大検索件数
		inMap.put(EKK0341B512CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK0341B512CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK0341B512CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK0341B512CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK0341B512CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
	}

	/**
	 * 上りマッピング項目設定(工事案件一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keySvcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInKjakListShokai(IRequestParameterReadWrite param, String fixedText, String keySvcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1:サービス契約番号)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// ＫＥＹ＿工事案件番号サービス契約番号
		inMap.put(EKU0011B010CBSMsg.KEY_KOJIAK_NO_SVC_KEI_NO, keySvcKeiNo);
		// 最大検索件数
		inMap.put(EKU0011B010CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKU0011B010CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKU0011B010CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKU0011B010CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKU0011B010CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);

	}

	/**
	 * 上りマッピング項目設定(サービス契約一覧照会（各種通信機器情報取得）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keySvcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInSvkeiListShokai(IRequestParameterReadWrite param, String fixedText, String keySvcKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0081B520CBSMsg.KEY_SVC_KEI_NO, keySvcKeiNo);
		// 最大検索件数
		inMap.put(EKK0081B520CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK0081B520CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK0081B520CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK0081B520CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK0081B520CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);

	}

	/**
	 * 上りマッピング項目設定(進捗一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keySvcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInPrgListShokai(IRequestParameterReadWrite param, String fixedText, String keySvcKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		
		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);
		
		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK1091B002CBSMsg.KEY_SVC_KEI_NO, keySvcKeiNo);
		// ＫＥＹ＿異動区分
		inMap.put(EKK1091B002CBSMsg.KEY_IDO_DIV, JFUStrConst.CD00576_00009);
		// ＫＥＹ＿ソート項目
		inMap.put(EKK1091B002CBSMsg.KEY_SORT_ITEM_NO, "2"); // "2"(異動年月日時分秒)
		// ＫＥＹ＿ソート順
		inMap.put(EKK1091B002CBSMsg.KEY_SORT_KBN, "0");     // "1"以外(降順)
		// 最大検索件数
		inMap.put(EKK1091B002CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK1091B002CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK1091B002CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK1091B002CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK1091B002CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		
	}
	
	/**
	 * 上りマッピング項目設定(サービス別宅内機器型式候補一覧照会（抽出条件種別）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInSvbetuTkkikimdlListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		ArrayList<Object> workLst_EKK0081B520 = (ArrayList<Object>)inMap.get("EKK0081B520CBSMsg1List");
		HashMap<String, Object> workMap_EKK0081B520 = (HashMap<String, Object>)workLst_EKK0081B520.get(LIST_TOP);

		// ＫＥＹ＿料金コースコード <-- サービス契約.料金コースコード
		inMap.put(MAP_KEY_PCRS_CD, workMap_EKK0081B520.get(EKK0081B520CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿宅内機器種別コード <-- 宅内機器種別コード ルーター
		inMap.put(MAP_KEY_TAKNKIKI_SBT_CD, JFUStrConst.CD01262_F0);
		// ＫＥＹ＿保有ルーターコード <-- 保有ルーターコード 新無線、新無線ギガ、新無線10ギガ
		inMap.put(MAP_KEY_HOYU_ROUTER_CD, JFUStrConst.CD01313_04 + "," + JFUStrConst.CD01313_05 + "," + JFUStrConst.CD01313_06);

	}
	
	/**
	 * 下りマッピング項目設定(サービス別宅内機器型式候補一覧照会（抽出条件種別）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param resultlist EKK1861B501 サービス別宅内機器型式候補一覧照会（抽出条件種別）
	 * @throws RequestParameterException
	 */
	private void setOutSvbetuTkkikimdlListShokai(IRequestParameterReadWrite param, String fixedText, List<HashMap> resultlist)
			throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, Object> workMap_EKK1861B501 = (HashMap<String, Object>)resultlist.get(LIST_TOP);

		// 宅内機器型式コード(返却値は１件のみ)
		inMap.put(TAKNKIKI_MODEL_CD, workMap_EKK1861B501.get(EKK1861B501CBSMsg1List.TAKNKIKI_MODEL_CD));

	}

	/**
	 * 上りマッピング項目設定(セット品構成一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInSethinKouseiListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿宅内機器セット品型コード
		inMap.put(EZM0441B010CBSMsg.KEY_TAKNKIKI_SETHIN_MODEL_CD, inMap.get(TAKNKIKI_MODEL_CD));

	}

	/**
	 * 上りマッピング項目設定(宅内機器セット品型一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInTkkikiSethinmdlListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿宅内機器セット品型コード
		inMap.put(EDK0271B010CBSMsg.KEY_TAKNKIKI_SETHIN_MODEL_CD, inMap.get(TAKNKIKI_MODEL_CD));

	}

	/**
	 * 下りマッピング項目設定(宅内機器セット品型一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setOutTkkikiSethinmdlListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		inMap.put(SETHN_DIV, SETHN_DIV_0);

	}

	/**
	 * 上りマッピング項目設定(宅内機器型式／付属品型式一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setInTkkikiHuzokuhinMdlListShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿宅内機器セット品型コード
		inMap.put(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, keyTaknikikiModelCd);

	}

	/**
	 * 下りマッピング項目設定(宅内機器型式／付属品型式一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setOutTkkikiHuzokuhinMdlListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLst_EZM0411A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_TKKIKI_HUZOKUHIN_MDL_LIST_SHOKAI);
		HashMap<String, Object> workMap_EZM0411A010 = (HashMap<String, Object>)workLst_EZM0411A010.get(LIST_TOP);

		ArrayList<Object> tkkiki_mdl_list = (ArrayList<Object>)inMap.get("tkkiki_mdl_list");
		tkkiki_mdl_list.add(workMap_EZM0411A010);

	}

	/**
	 * 上りマッピング項目設定(機器型式対象料金コース一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setInKikimdlTgPcrsShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード設定(1:PK指定でレコードの照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿宅内機器型式コード
		inMap.put(EKK1621A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, keyTaknikikiModelCd);
		// ＫＥＹ＿機器提供種別コード
		inMap.put(EKK1621A010CBSMsg.KEY_KKTK_SBT_CD, inMap.get(KKTK_SBT_CD));
		// ＫＥＹ＿販売種別コード
		inMap.put(EKK1621A010CBSMsg.KEY_HAMBAI_SBT_CD, JFUStrConst.CD00348_10);
	}

	/**
	 * 下りマッピング項目設定(機器型式対象料金コース一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setOutKikimdlTgPcrsShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{

		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLst_EKK1621A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_KIKIMDL_TG_PCRS_SHOKAI);
		HashMap<String, Object> workMap_EKK1621A010 = (HashMap<String, Object>)workLst_EKK1621A010.get(LIST_TOP);

		ArrayList<Object> kktk_pplan_betu_kiki_mdl_list = (ArrayList<Object>)inMap.get("kktk_pplan_betu_kiki_mdl_list");
		kktk_pplan_betu_kiki_mdl_list.add(workMap_EKK1621A010);

	}

	/**
	 * 上りマッピング項目設定(料金プラン一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInPplanListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLst_EKK1621A010 = (ArrayList<Object>)inMap.get("EKK1621A010CBSMsg1List");
		HashMap<String, Object> workMap_EKK1621A010 = (HashMap<String, Object>)workLst_EKK1621A010.get(LIST_TOP);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0591A010CBSMsg.KEY_PCRS_CD, workMap_EKK1621A010.get(EKK1621A010CBSMsg1List.PCRS_CD));

	}

	/**
	* 下りマッピング項目設定(料金プラン一覧照会)
	* 
	* <br>
	* @param param リクエストパラメータ
	* @param fixedText サービスメッセージ
	* @throws RequestParameterException
	*/
	private void setOutPplanListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLst_EKK0591B003 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_PPLAN_LIST_SHOKAI);
		HashMap<String, Object> workMap_EKK0591B003 = (HashMap<String, Object>)workLst_EKK0591B003.get(LIST_TOP);

		ArrayList<Object> pplan_list = (ArrayList<Object>)inMap.get("pplan_list");
		pplan_list.add(workMap_EKK0591B003);

	}

	/**
	 * 上りマッピング項目設定(料金プラン固定単価（オプション申込料金）一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInPplanKttankaOpListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLst_EKK0591B003 = (ArrayList<Object>)inMap.get("EKK0591B003CBSMsg1List");
		HashMap<String, Object> workMap_EKK0591B003 = (HashMap<String, Object>)workLst_EKK0591B003.get(LIST_TOP);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0601B001CBSMsg.KEY_PCRS_CD, workMap_EKK0591B003.get(EKK0591B003CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿料金プランコード
		inMap.put(EKK0601B001CBSMsg.KEY_PPLAN_CD, workMap_EKK0591B003.get(EKK0591B003CBSMsg1List.PPLAN_CD));

		// 最大検索件数
		inMap.put(EKK0601B001CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK0601B001CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK0601B001CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK0601B001CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK0601B001CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);

	}

	/**
	 * 下りマッピング項目設定(料金プラン固定単価（オプション申込料金）一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setOutPplanKttankaOpListShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLst_EKK0601B001 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_PPLAN_KTTANKA_OP_LIST_SHOKAI);
		HashMap<String, Object> workMap_EKK0601B001 = (HashMap<String, Object>)workLst_EKK0601B001.get(LIST_TOP);

		ArrayList<Object> pplan_kttanka_list = (ArrayList<Object>)inMap.get("pplan_kttanka_list");
		pplan_kttanka_list.add(workMap_EKK0601B001);

	}

	/**
	 * 上りマッピング項目設定(料金コース一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInPcrsShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// ユーザデータ取得
		ArrayList<Object> workLst_EKK0591B003 = (ArrayList<Object>)inMap.get("EKK0591B003CBSMsg1List");
		HashMap<String, Object> workMap_EKK0591B003 = (HashMap<String, Object>)workLst_EKK0591B003.get(LIST_TOP);

		// 機能コード設定(2:カレントレコードの照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0791A010CBSMsg.KEY_PCRS_CD, workMap_EKK0591B003.get(EKK0591B003CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿世代登録年月日時分秒
		inMap.put(EKK0791A010CBSMsg.KEY_GENE_ADD_DTM, "");
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0791A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(料金コース_機器提供サービス一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param cnt カウント
	 * @throws RequestParameterException
	 */
	private void setInPcrsKktkSvcShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// ユーザデータ取得
		ArrayList<Object> workLst_EKK0791A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_PCRS_SHOKAI);
		HashMap<String, Object> workMap_EKK0791A010 = (HashMap<String, Object>)workLst_EKK0791A010.get(LIST_TOP);

		ArrayList<Object> workLst_EKK0081B520 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_SVKEI_LIST_SHOKAI);
		HashMap<String, Object> workMap_EKK0081B520 = (HashMap<String, Object>)workLst_EKK0081B520.get(LIST_TOP);

		// 機能コード設定(2:カレントレコードの照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0801A010CBSMsg.KEY_PCRS_CD, workMap_EKK0081B520.get(EKK0081B520CBSMsg1List.PCRS_CD));
		// ＫＥＹ＿機器提供サービスコード
		inMap.put(EKK0801A010CBSMsg.KEY_KKTK_SVC_CD, workMap_EKK0791A010.get(EKK0791A010CBSMsg1List.KKTK_SVC_CD));
		// ＫＥＹ＿世代登録年月日時分秒
		inMap.put(EKK0801A010CBSMsg.KEY_GENE_ADD_DTM, "");
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0801A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * 下りマッピング項目設定(料金コース_機器提供サービス一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param i カウント
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setOutPcrsKktkSvcShokai(IRequestParameterReadWrite param, String fixedText, String keyTaknikikiModelCd)
			throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		ArrayList<Object> workLst_EKK0801A010 = (ArrayList<Object>)inMap.get(TEMPLATE_ID_DETAIL_PCRS_KKTK_SVC_SHOKAI);
		HashMap<String, Object> workMap_EKK0801A010 = (HashMap<String, Object>)workLst_EKK0801A010.get(LIST_TOP);

		ArrayList<Object> pcrs_kktksvc_list = (ArrayList<Object>)inMap.get("pcrs_kktksvc_list");
		pcrs_kktksvc_list.add(workMap_EKK0801A010);
	}

	/**
	 * 上りマッピング項目設定(提供方式契約一覧照会(サービス契約番号))
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapTkHoshikiKei(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1:提供方式契約一覧照会(サービス契約番号))
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// SYSID
		inMap.put(EKK0891B502CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(機器オプションサービス契約一覧照会（フロント）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInKkopSvkeiListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿SYSID
		inMap.put(EKK2811B503CBSMsg.KEY_SYSID, inMap.get("sys_id"));
		// ＫＥＹ＿サービス契約回線内訳番号
		inMap.put(EKK2811B503CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, inMap.get("svc_kei_kaisen_ucwk_no"));
//		// ＫＥＹ＿宅内機器種別コード
//		inMap.put(EKK2811B503CBSMsg.KEY_TAKNKIKI_SBT_CD, JFUStrConst.CD01262_R0); // R0：多機能ルーター

	}

	/**
	 * 上りマッピング項目設定(割引サービス契約一覧照会（割引サービス指定）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInWribSvkeiListShokai(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0451B010CBSMsg.KEY_SVC_KEI_NO, inMap.get(KEY_SVC_KEI_NO));
		// ＫＥＹ＿割引サービスコード
		inMap.put(EKK0451B010CBSMsg.KEY_WRIB_SVC_CD, JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA);

	}

	/**
	 * 保有多機能ルーター有無判定
	 * 
	 * <br>
	 * @param inMap
	 * @return true:保有多機能ルーター有 false:保有多機能ルーター無
	 */
	private boolean checkTaknRouterMskm(HashMap inMap)
	{
		// 〇 保有多機能ルーター有無
		boolean taknRouterFlg = false;

		if ("1".equals(inMap.get("mskm_kiki_div")))
		{
			taknRouterFlg = true;
		}

		return taknRouterFlg;
	}


	/**
	 * 料金プラン固定単価取得
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception
	 */
	private void getPplanKttanka(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// 無線ルーター機能
		// ●料金プラン固定単価（オプション申込料金）一覧照会
		// 上りマッピング
		setInPplanKttankaOpListShokaiTkn(param, fixedText, JFUStrConst.CD00134_G02, JFUStrConst.CD00565_PG0201);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_PPLAN_KTTANKA_OP_LIST_SHOKAI, TEMPLATE_ID_DETAIL_PPLAN_KTTANKA_OP_LIST_SHOKAI,
				IN_COLUMN_LIST_PPLAN_KTTANKA_OP_LIST_SHOKAI, BLANK);
		// 下りマッピング
		setOutPplanKttankaOpListShokaiTkn(param, fixedText);

		// 有線ルーター機能
		// ●料金プラン固定単価（オプション申込料金）一覧照会
		// 上りマッピング
		setInPplanKttankaOpListShokaiTkn(param, fixedText, JFUStrConst.CD00134_G01, JFUStrConst.CD00565_PG0101);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_PPLAN_KTTANKA_OP_LIST_SHOKAI, TEMPLATE_ID_DETAIL_PPLAN_KTTANKA_OP_LIST_SHOKAI,
				IN_COLUMN_LIST_PPLAN_KTTANKA_OP_LIST_SHOKAI, BLANK);
		// 下りマッピング
		setOutPplanKttankaOpListShokaiTkn(param, fixedText);

	}

	/**
	 * 上りマッピング項目設定(料金プラン固定単価（オプション申込料金）一覧照会（多機能用）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInPplanKttankaOpListShokaiTkn(IRequestParameterReadWrite param, String fixedText, String pcrsCd, String pplanCd)
			throws RequestParameterException
	{

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0601B001CBSMsg.KEY_PCRS_CD, pcrsCd);
		// ＫＥＹ＿料金プランコード
		inMap.put(EKK0601B001CBSMsg.KEY_PPLAN_CD, pplanCd);

		// 最大検索件数
		inMap.put(EKK0601B001CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示件数
		inMap.put(EKK0601B001CBSMsg.DISPLAY_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 表示ページ番号
		inMap.put(EKK0601B001CBSMsg.DISPLAY_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);
		// 検索処理パターン
		inMap.put(EKK0601B001CBSMsg.SEARCH_TYPE, SEARCH_TYPE_IKT);
		// 総ページ数
		inMap.put(EKK0601B001CBSMsg.TOTAL_PAGE_NUM, JFUStrConst.MAX_SEARCH_NUM);

	}

	/**
	 * 下りマッピング項目設定(料金プラン固定単価（オプション申込料金）一覧照会（多機能用）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param keyTaknikikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setOutPplanKttankaOpListShokaiTkn(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		HashMap<String, String> workMap_EKK0601B001 =
				getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_PPLAN_KTTANKA_OP_LIST_SHOKAI),
						TEMPLATE_ID_DETAIL_PPLAN_KTTANKA_OP_LIST_SHOKAI, JFUStrConst.I_ZERO);

		ArrayList<Object> pplan_kttanka_tkn_list = (ArrayList<Object>)inMap.get("pplan_kttanka_tkn_list");
		pplan_kttanka_tkn_list.add(workMap_EKK0601B001);

	}

	/**
	 * 上りマッピング項目設定(EKK0241B002_回線対象サービス契約一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0241B002(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ●機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1); // "1"

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		// KEY_整理番号
		inMap.put(EKK0241B002CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, inMap.get("svc_kei_kaisen_ucwk_no"));

	}

	/**
	 * 上りマッピング項目設定(EKK0341B002_機器提供サービス契約一覧照会（サービス契約番号）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param kktkSvcCd 機器提供サービスコード
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0341B002(IRequestParameterReadWrite param, String fixedText, String svcKeiNo, String kktkSvcCd)
			throws RequestParameterException
	{
		// ●機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1); // "1"(サービス契約番号)

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		// KEY_サービス契約番号
		inMap.put(EKK0341B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// KEY_機器提供サービスコード
		inMap.put(EKK0341B002CBSMsg.KEY_KKTK_SVC_CD, kktkSvcCd);

	}

	/**
	 * 上りマッピング項目設定(EZM0411A010_宅内機器型式一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param taknkikiModelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setInMapEZM0411A010(IRequestParameterReadWrite param, String fixedText, String taknkikiModelCd) throws RequestParameterException
	{
		// ●機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1); // "1"

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		// KEY_宅内機器型式コード
		inMap.put(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, taknkikiModelCd);

	}

	/**
	 * 上りマッピング項目設定(EKK0721A010_一時支払料金一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param tmpPayPrcNo 一時支払料金番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0721A010(IRequestParameterReadWrite param, String fixedText, String tmpPayPrcNo) throws RequestParameterException
	{
		// ●機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1); // "1"

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		// KEY_一時支払料金番号
		inMap.put(EKK0721A010CBSMsg.KEY_TMP_PAY_PRC_NO, tmpPayPrcNo);

	}

	/**
	 * 同一利用場所サービス契約一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sysid SYSID
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @throws RequestParameterException 
	 */
	private void setInMapGetTelSvcKeiInfo(IRequestParameterReadWrite param, String fixedText, String sysid, String svcKeiKaisenUcwkNo)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿SYSID
		inMap.put(EKK0081B011CBSMsg.KEY_SYSID, sysid);
		// ＫＥＹ＿サービス契約回線内訳番号
		inMap.put(EKK0081B011CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
	}

	/**
	 * 上りマッピング項目設定(異動予約一覧照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param idoDiv 異動区分
	 * @param idoRsvDtlCd 異動予約詳細コード
	 * @throws RequestParameterException
	 */
	private void setInMapIdoRsvSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo, String idoDiv, String idoRsvDtlCd)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK1681B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// ＫＥＹ＿異動区分
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_DIV, idoDiv);
		// ＫＥＹ＿異動予約詳細コード
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, idoRsvDtlCd);
	}

	/**
	 * チェック処理
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}

	// OM-2019-0000912 ADD START
	/**
	 * 上りマッピング項目設定(住所変更中住所変更明細一覧照会２)
	 * 
	 * @param param
	 * @param fixedText
	 * @param svcKeiNo
	 */
	private void setInAdchgNowAdchgListShokai(IRequestParameterReadWrite param, String fixedText, String svcKeiNo)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿SYSID
		inMap.put(EKK2101B501CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}
	
	/**
	 * 上りマッピング項目設定(住所変更明細一覧照会SC)
	 * 
	 * @param param
	 * @param fixedText
	 * @param svcKeiNo
	 */
	private void setInAdchgDtlListShokai(IRequestParameterReadWrite param, String fixedText, String adchgNo, String adchgDtlSbtCd)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿SYSID
		inMap.put(EKK2101B001CBSMsg.KEY_ADCHG_NO, adchgNo);
		// ＫＥＹ＿住所変更明細種別コード
		inMap.put(EKK2101B001CBSMsg.KEY_ADCHG_DTL_SBT_CD, adchgDtlSbtCd);
	}
	// OM-2019-0000912 ADD END

	/**
	 * デバッグログ
	 * 
	 * <br>
	 * @param inMsg メッセージ
	 */
	private void debugLog(String inMsg)
	{
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), inMsg, null, null, null);
	}

	/**
	 * 同一サービス契約番号の他回線の多機能存在チェック。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param ownTaknRouterFlag true:多機能ルーター保有
	 * @return true:「自回線多機能なし」かつ「他回線多機能あり」のステータスエラー
	 * @throws Exception
	 */
	private boolean isTakinoTakaisenErr(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, boolean ownTaknRouterFlag)
			throws Exception
	{
		if (ownTaknRouterFlag)
		{
			// 自回線に多機能を保有
			return false;
		}
		HashMap inMap = (HashMap)param.getData(fixedText);
		String svc_kei_no = (String)inMap.get(KEY_SVC_KEI_NO);
		String in_svc_kei_kaisen_ucwk_no = (String)inMap.get(MAP_KEY_SVC_KEI_KAISEN_UCWK_NO);

		// ●EKK0241B001_サービス契約回線内訳一覧照会
		initData(param, fixedText, IN_COLUMN_LIST_EKK0241B001);
		// 上りマッピング
		setInMapEKK0241B001(param, fixedText, svc_kei_no);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0241B001, TEMPLATE_ID_DETAIL_EKK0241B001, IN_COLUMN_LIST_EKK0241B001, BLANK);

		// ■同一サービス契約番号で回線が異なる場合
		for (HashMap dataMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0241B001), TEMPLATE_ID_DETAIL_EKK0241B001))
		{
			String svc_kei_kaisen_ucwk_no = (String)dataMap.get(EKK0241B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO);
			if (in_svc_kei_kaisen_ucwk_no.contains(svc_kei_kaisen_ucwk_no))
			{
				// 自回線は読み飛ばし
				continue;
			}

			// ●機器オプションサービス契約一覧照会（フロント）
			initData(param, fixedText, IN_COLUMN_LIST_EKK2811B503);
			// 上りマッピング
			setInEKK2811B503(param, fixedText, svc_kei_kaisen_ucwk_no);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811B503, TEMPLATE_ID_DETAIL_EKK2811B503, IN_COLUMN_LIST_EKK2811B503, BLANK);

			for (HashMap kikiMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811B503), TEMPLATE_ID_DETAIL_EKK2811B503))
			{
				String kktk_svc_cd = (String)kikiMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_CD);
				String kktk_svc_kei_stat = (String)kikiMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_KEI_STAT);

				if (JFUStrConst.CD00132_C024.equals(kktk_svc_cd) || JFUStrConst.CD00132_C025.equals(kktk_svc_cd))
				{
					if (KKTK_SVC_KEI_STAT_MUKO.contains(kktk_svc_kei_stat))
					{
						continue;
					}
					if (!JFUStrConst.CD00056_100.equals(kktk_svc_kei_stat))
					{
						return true;
					}
				}
			}
		}
		return false;

	}

	/**
	 * 上りマッピング項目設定(EKK2811B503_機器オプションサービス契約一覧照会（フロント）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svc_kei_kaisen_ucwk_no サービス契約回線内訳番号
	 * @throws RequestParameterException
	 */
	private void setInEKK2811B503(IRequestParameterReadWrite param, String fixedText, String svc_kei_kaisen_ucwk_no) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);

		// 機能コード設定(1:抽出条件に一致するレコードの一覧照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿SYSID
		inMap.put(EKK2811B503CBSMsg.KEY_SYSID, inMap.get(MAP_KEY_SYSID));
		// ＫＥＹ＿サービス契約回線内訳番号
		inMap.put(EKK2811B503CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svc_kei_kaisen_ucwk_no);
//		// ＫＥＹ＿宅内機器種別コード
//		inMap.put(EKK2811B503CBSMsg.KEY_TAKNKIKI_SBT_CD, JFUStrConst.CD01262_R0); // R0：多機能ルーター

	}

	/**
	 * 上りマッピング項目設定(EKK0241B001_サービス契約回線内訳一覧照会))
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0241B001(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// ●機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_3);

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0241B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);

	}

}
