/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUBaseNetChgCommonCC
*   ソースファイル名：JFUBaseNetChgCommonCC.java
*   作成者          ：富士通
*   日付            ：2011年12月06日
*＜機能概要＞
*   ネット変更共通処理基底コモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/12/06   FJ）中谷    新規作成
*   v3.00       2012/03/28   FJ) 中谷    変更【ANK-0033-00-00】コース変更中のファミリーＰ申込受付
*   v3.00       2012/05/03   FJ) 山本    変更 サービスIF最新化（機器提供サービス契約登録）IN項目.機器移転先移動実施者識別コード追加
*   v4.00       2012/07/06   FJ）瀧澤    新規作成【ANK-0368-00-00】11月からのＴＶキャンペーン開始に伴うＷＥＢ受付連携改修依頼
*   v4.00       2012/07/26   FJ）中谷    変更【ANK-0116-01-00】ファミリパック事務手数料非表示化
*   v4.00       2012/08/31   FJ）中谷    変更【ANK-0548-00-00】ルータ機器の解約新規対応（約款準拠対応）
*   v4.00       2012/10/18   FJ）中谷    変更【IT1-2012-0001104】事務手数料、工事費の不具合対応
*   v4.00       2012/10/20   FJ）中谷    変更【IT1-2012-0001133】機器付加情報コードの設定値修正
*   v4.00       2012/10/22   FJ）岡井    変更【IT1-2012-0001225】「進捗」スキーマ対応
*   v4.00       2012/10/23   FJ）中谷    変更【IT1-2012-0001630】機器提供サービス契約解約確定SIF呼出追加対応
*   v4.00       2012/10/27   FJ）岡井    変更【IT1-2012-0001097】変更手続き中の機器の予約g適用年月日にNULL設定対応
*   v4.00       2012/10/30   FJ）中谷    変更【IT1-2012-0001719】工事有無による配送処理制御対応
*   v4.00       2012/11/01   FJ）知識    変更【IT1-2012-0001783】「機器設置先カナ名」null対応
*   v4.00       2012/11/01   FJ）知識    変更【IT1-2012-0001784】「機器設置先名」null対応
*   v4.00       2012/11/01   FJ）知識    変更【IT1-2012-0001900】キャンペーン登録時の「割引サービス契約＜値引型＞開始」呼び出し対応
*   v4.00       2012/11/27   FJ）中谷    変更【IT1-2012-0002162】サービス課金終了年月日設定値の改修
*   v5.00       2013/01/17   FJ）中谷    変更【IT1-2013-0000091】機器提供サービス契約料金コース変更の項目クリア処理対応
*   v5.00       2013/02/04   FJ）瀧澤    変更【ST2-2013-0000430】「キャンペーン文言一覧照会」でデータ未取得時の対応
*   v5.00       2013/02/10   FJ）中谷    変更【ANK-1416-00-00】１１月末案件
*   v5.00       2013/02/15   FJ）中谷    変更【ANK-1398-00-00】フロントSでの機器受注時の在庫件数処理追加
*   v5.00       2013/03/14   FJ）瀧澤    変更【IT1-2013-0000473】機器提供サービス契約登録時の上りマッピング修正
*   v5.00       2013/03/25   FJ）中谷    変更【IT1-2013-0000565】工事受付Sへの異動無機器情報連携対応
*   v5.00       2013/04/04   FJ）中谷    変更【ST2-2013-0001709】割引自動適用ＣＣ呼出し削除対応
*   v5.00       2013/04/16   FJ）中谷    変更【ST3-2013-0000885】住所変更中のファミリーパック申込対応
*   v5.00       2013/04/30   FJ）中谷    変更【IT1-2013-0001082】住所変更中のファミリーパック申込対応
*   v5.00       2013/09/15   FJ）中谷    変更【ANK-1656-00-00】ファミリーパック申込の際、機器と同梱する対応
*   v5.00       2013/09/23   FJ）中谷    変更【OM-2013-0002495】配送区分不正による出荷連携障害対応
*   v5.00       2013/09/29   FJ）中谷    変更【OM-2013-0002637】配送依頼指定年月日の未設定対応
*   v5.00       2013/10/01   FJ）中谷    変更【OM-2013-0002507】プラン変更（工事無）で出荷済ルーターの返品受付対応
*   v5.00       2013/10/21   FJ）中谷    変更【OM-2013-0003498】プラン変更（工事無）で直送の送付先設定対応
*   v5.00       2013/10/25   FJ）中谷    変更【OM-2013-0003633】メール送信先の不具合対応
*   v5.00       2013/10/30   FJ）中谷    変更【OM-2013-0003681】ファミリーパック申込時の配送中止処理の不具合対応
*   v5.00       2013/11/11   FJ）中谷    変更【OM-2013-0004129】旧無線ルーター自動交換不具合対応
*   v5.00       2013/11/14   FJ）中谷    変更【OM-2013-0004319】宅内在庫更新連携不備対応
*   v6.00       2013/12/04   FJ）中谷    変更【OM-2013-0004510】複数ルーター保有時のルーター交換処理改修
*   v7.00       2013/12/08   FJ）岡井    変更【ANK-1578-00-00】多機能ルーター(機器追加)
*   v7.00       2013/12/16   FJ）岡井    変更【ANK-1578-00-00】多機能ルーター(機器追加) PTバグ修正
*   v7.00       2013/12/19   FJ）中谷    変更【IT1-2013-0001723】機器オプションの照査締結・開始処理の追加
*   v7.00       2013/12/26   FJ）中谷    変更【IT2-2013-0000879】工事案件対象宅内機器の設定値の改修
*   v7.00       2014/01/11   FJ）中谷    変更【IT2-2014-0000024】MTグローバル申込時の不具合対応
*   v7.00       2014/01/19   FJ）中谷    変更【TAI-2014-0000004】強化試験(多機能ルーター)(出荷指図前のVA機器のキャンセル処理対応)
*   v7.00       2014/01/20   FJ）中谷    変更【TAI-2014-0000014】機器オプションの排他制御の改修
*   v7.00       2014/01/23   FJ）知識    変更【IT2-2014-0000079】機器オプション変更時の機器連帯契約変更手続中フラグ改修
*   v7.00       2014/01/24   FJ）知識    変更【TAI-2014-0000004】機器オプションサービス契約への請求契約番号(電話)対応
*   v7.00       2014/01/31   FJ）谷本    変更【OM-2014-0000351】照査解約完了コード 対応
*   v7.00       2014/02/02   FJ）知識    変更【IT2-2014-0000097】多機能ルーター照査処理、保有ルーター解約処理の改修
*   v7.00       2014/02/10   FJ）中谷    変更【OM-2014-0000646】機器オプション設定情報のOPMS連携対応
*   v7.00       2014/02/10   FJ）中谷    変更【OM-2014-0000647】多機能ルーター保有時の機器付加情報コード設定の改修
*   v7.00       2014/02/21   FJ）中谷    変更【OM-2014-0000793】不要な工事会社配送データが作成される不具合の改修
*   v7.00       2014/02/21   FJ）中谷    変更【OM-2014-0000691】多機能ルーターの電話番号紐付け対応
*   v7.00       2014/03/18   FJ）中谷    変更【OM-2014-0001109】返品機器二重登録エラー対応
*   v7.00       2014/03/18   FJ）中谷    変更【OM-2014-0001122】多機能ルータ機能コード未設定不具合対応
*   v8.00       2014/04/17   FJ）中谷    変更【OM-2014-0001521】工事案件対象宅内機器の機器変更番号未設定不具合対応
*   v8.00       2014/04/21   FJ）中谷    変更【OM-2014-0001625】多機能保有時ファミパ申込排他エラー不具合対応
*   v8.00       2014/04/23   FJ）中谷    変更【OM-2014-0001647】多機能ルーターの機器オプションプラン変更SIFの改修
*   v8.00       2014/05/03   FJ）中谷    変更【OM-2014-0001761】ルーター文言不具合対応
*   v8.00       2014/05/07   FJ）中谷    変更【OM-2014-0001798】プラン変更申込の長割契約中表示不具合対応
*   v9.00       2014/07/06   FJ）中谷    変更【OM-2014-0002331】返品機器未登録不具合対応
*   v9.00       2014/07/07   FJ）中谷    変更【ANK-2085-00-00】【ＮＯ．１４６３】「OM-2013-0004681」の案件
*   v9.00       2014/07/22   FJ) 中谷    変更【ANK-1996-00-00】【ＮＯ．１３８６】ID通知書出力不良の是正
*   v9.00       2014/07/24   FJ) 畑中    変更【ANK-2264-00-00】【ＮＯ．１６６４】フロントのコース変更画面でそのた住所を選んだ時、カナ氏名の入力を可能とする
*   v10.00      2014/11/13   FJ) 西川    変更【OM-2014-0003481】住所変更中の返品機器重複エラーの改修
*   v14.00      2015/03/18   FJ) 西川    変更【OM-2015-0000230】ルーター機器オプステータスを開始時の判断条件誤り
*   v14.00      2015/03/18   FJ) 西川    変更【OM-2015-0000406】機器オプションサービス契約登録時の申込明細番号の設定誤り
*   v14.00      2015/04/21   FJ) 西川    変更【OM-2015-0000907】ルーター機器オプステータスを開始時の判断条件誤り
*   v14.00      2015/06/09   FJ) 西川    変更【OM-2015-0001259】出荷完了10日以内の機器オプ開始日不具合
*   v14.00      2015/11/22   FJ）中谷    変更【OM-2015-0002670】IPv6解約時のSOD不具合対応
*   v14.00      2016/02/05   FJ）中西    変更【OM-2016-0000140】IPv6申込、解約SOD不具合対応
*   v20.00      2016/01/05   FJ) 岡井    変更【ANK-2612-00-00】10Gコース導入対応
*   v23.00      2016/02/16   FJ）張本    変更【ANK-2718-00-00】固定IPアドレス払出方法変更
*   v23.00      2016/04/11   FJ）中西    変更【OM-2016-0000840】機器設置場所設定不具合
*   v26.00      2016/06/13   FJ）横山    変更【ANK-2849-00-00】キャンペーン延長依頼　2016/7/1〜
*   v25.00      2016/07/27   FJ) 森脇    変更【OM-2016-0000890】対応
*	v26.00      2016/07/29   FJ）美濃原  変更【ANK-2765-00-00】認証IDの統一化
*   v40.00      2018/11/07   FJ）張本    変更【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*   v40.01      2019/01/29   FJ）張本    変更【ANK-3412-07-00】メゾン向け5G・10G提供情報表示対応
*   v41.00      2019/03/08   FJ）張本    変更【OM-2019-0000159】ファミパ登録時に機器配送済みエラー
*   v41.01      2019/04/18   FJ）張本    変更【OM-2019-0000362】出荷完了時機器開始登録エラー
*   v48.00      2020/02/01   FJ）大島    変更【ANK-3777-00-00】【10G】コース変更時のWEB導線見直し
*   v55.00      2021/10/11   FJ）西川    変更【ANK-4146-00-00】【eo定期】多機能ルーター枯渇対応 STEP2
*   v60.00      2022/07/11   FJ）張本    変更【ANK-4287-00-00】【eo定期】機器オプションの予約機能対応
*   v61.00      2023/04/03   FJ) 張本    変更【ANK-4315-00-00】【eo定期】eo光ホームゲートウェイ導入対応
*   v71.00      2024/04/02   FJ) 張本    変更【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
*   
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

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.CCException;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.*;

/**
 * ネット変更共通処理基底コモンコンポーネント部品
 *
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public abstract class JFUBaseNetChgCommonCC extends JFUBaseNetChgRelCheckCC
{
	/*---------------------ルーター自動登録処理 ---------------------*/
	/** 倉庫コード(大阪みなとロジシスセンター) */
	protected static final String SOKO_CD_MINATO = JFUStrConst.DK0091_SOKO_CD_000001;
	/** 配送受付結果マップキー */
	protected static final String HAISO_OUT_MAP_KEY = "eDK0011D020SCHash";
	/** SOD作業マップ */
	protected static final String SOD_WORK_MAP = "sod_work_map";
	/** VA有無 */
	protected static final String RESULT_VA_UM = "va_um";
	/** 機器変更有無 */
	protected static final String KIKI_CHG_UM = "kiki_chg_um";

	/** OUT項目:型式コード(送付ルーター) */
	protected static final String OUT_PARAM_SEND_ROUTER_MODEL_CD = "send_router_model_cd";
	/** OUT項目:機器提供サービス契約番号(送付ルーター) */
	protected static final String OUT_PARAM_SEND_KKTK_SVC_KEI_NO = "send_router_kktk_svc_kei_no";
	/** OUT項目:機器変更番号(送付ルーター) */
	protected static final String OUT_PARAM_SEND_KIKI_CHG_NO = "send_router_kiki_chg_no";
	/** OUT項目:世代登録年月日時分秒(送付ルーター) */
	protected static final String OUT_PARAM_SEND_GENE_ADD_DTM = "send_router_gene_add_dtm";
	/** OUT項目:送付ルータのルーター種類コード */
	protected static final String OUT_PARAM_SEND_ROUTER_KIND_CD = "send_router_kind_cd";
	/** OUT項目:送付ルータの機器提供種別コード */
	protected static final String OUT_PARAM_SEND_KKTK_SBT_CD = "send_kktk_sbt_cd";
	/** OUT項目:変更前機器提供サービス契約番号 */
	protected static final String OUT_PARAM_OWN_KKTK_SVC_KEI_NO = "own_kktk_svc_kei_no";
	/** OUT項目:変更前機器変更番号 */
	protected static final String OUT_PARAM_OWN_KIKI_CHG_NO = "own_kiki_chg_no";
	/** OUT項目:変更前宅内機器型式コード */
	protected static final String OUT_PARAM_OWN_TAKNKIKI_MODEL_CD = "own_taknkiki_model_cd";
	/** OUT項目:変更前機器製造番号 */
	protected static final String OUT_PARAM_OWN_KIKI_SEIZO_NO = "own_kiki_seizo_no";
	/** OUT項目:変更前機器提供種別コード */
	protected static final String OUT_PARAM_OWN_KKTK_SBT_CD = "own_kktk_sbt_cd";
	/** OUT項目:変更前ルーター種類コード */
	protected static final String OUT_PARAM_OWN_ROUTER_KIND_CD = "own_router_kind_cd";
	/** OUT項目:保有ルーターコード */
	protected static final String OUT_PARAM_HOYU_ROUTER_CD = "hoyu_router_cd";
	/** OUT項目:機器オプションサービス契約登録リスト */
	protected static final String OUT_PARAM_KKOP_ADD_LIST = "kkop_add_list";
	/** OUT項目:機器オプション料金コースコード */
	protected static final String OUT_PARAM_KKOP_PCRS_CD = "kkop_pcrs_cd";
	/** OUT項目:多機能ルーター機能コード */
	protected static final String OUT_PARAM_TAKINORT_KINO_CD = "takinort_kino_cd";
	/** OUT項目:多機能ルータールーター機能識別コード */
	protected static final String OUT_PARAM_TAKINORT_RTR_KINO_SKCD = "takinort_rtr_kino_skcd";
	/** OUT項目:機器オプションのみ変更有無 */
	protected static final String OUT_PARAM_KKOP_CHG_ONLY_UM = "kkop_chg_only_um";
// ANK-3777-00-00 ADD START
	/** OUT項目:変更前多機能ルータールーター機能識別コード */
	protected static final String OUT_PARAM_TAKINORT_RTR_KINO_SKCD_BEF = "takinort_rtr_kino_skcd_bef";
	/** OUT項目:変更前多機能ルーター機能コード */
	protected static final String OUT_PARAM_TAKINORT_KINO_CD_BEF = "takinort_kino_cd_bef";
// ANK-3777-00-00 ADD END

	/** IN項目:サービス契約番号 */
	private static final String IN_PARAM_KEY_SVC_KEI_NO = "key_svc_kei_no";
	/** IN項目:申込番号 */
	private static final String IN_PARAM_MSKM_NO = "mskm_no";
	/** IN項目:申込明細番号 */
	private static final String IN_PARAM_MSKM_DTL_NO = "mskm_dtl_no";
	/** IN項目:申込書番号 */
	private static final String IN_PARAM_MSKMSHO_NO = "mskmsho_no";
	/** IN項目:異動区分 */
	private static final String IN_PARAM_IDO_DIV = "ido_div";
	/** IN項目:要求種別コード */
	private static final String IN_PARAM_YOKYU_SBT_CD = "yokyu_sbt_cd";
	/** IN項目:ルーター上限数 */
	private static final String IN_PARAM_ROUTER_ADD_LIMIT = "router_add_limit";
	/** IN項目:変更前料金コースコード */
	private static final String IN_PARAM_CHG_BF_PCRS_CD = "chg_bf_pcrs_cd";
	/** IN項目:変更後料金コースコード */
	private static final String IN_PARAM_CHG_AF_PCRS_CD = "chg_af_pcrs_cd";
	/** IN項目:機器送付先指定フラグ */
	private static final String IN_PARAM_KIKI_SHS_SHITEI_FLG = "kiki_shs_shitei_flg";
	/** IN項目:機器送付先名 */
	private static final String IN_PARAM_KIKI_SOHUS_NM = "kiki_sohus_nm";
	/** IN項目:機器送付先カナ名 */
	private static final String IN_PARAM_KIKI_SOHUS_KANA = "kiki_sohus_kana";
	/** IN項目:機器送付先住所コード */
	private static final String IN_PARAM_KIKI_SOHUS_AD_CD = "kiki_sohus_ad_cd";
	/** IN項目:機器送付先郵便番号 */
	private static final String IN_PARAM_KIKI_SOHUS_PCD = "kiki_sohus_pcd";
	/** IN項目:機器送付先都道府県名 */
	private static final String IN_PARAM_KIKI_SOHUS_STATE_NM = "kiki_sohus_state_nm";
	/** IN項目:機器送付先市区町村名 */
	private static final String IN_PARAM_KIKI_SOHUS_CITY_NM = "kiki_sohus_city_nm";
	/** IN項目:機器送付先大字通称名 */
	private static final String IN_PARAM_KIKI_SOHUS_OAZTSU_NM = "kiki_sohus_oaztsu_nm";
	/** IN項目:機器送付先字丁目名 */
	private static final String IN_PARAM_KIKI_SOHUS_AZCHO_NM = "kiki_sohus_azcho_nm";
	/** IN項目:機器送付先番地号 */
	private static final String IN_PARAM_KIKI_SOHUS_BNCHIGO = "kiki_sohus_bnchigo";
	/** IN項目:機器送付先住所補記・建物名 */
	private static final String IN_PARAM_KIKI_SOHUS_ADRTTM = "kiki_sohus_adrttm";
	/** IN項目:機器送付先住所補記・部屋番号 */
	private static final String IN_PARAM_KIKI_SOHUS_ADRRM = "kiki_sohus_adrrm";
	/** IN項目:機器送付先電話番号 */
	private static final String IN_PARAM_KIKI_SOHUS_TELNO = "kiki_sohus_telno";
	/** IN項目:機器送付先_契約者住所差異フラグ */
	private static final String IN_PARAM_KIKI_SOHUS_KSH_AS_FLG = "kiki_sohus_ksh_ad_sai_flg";
	/** IN項目:機器送付先個別指定フラグ */
	private static final String IN_PARAM_KIKI_SHS_KBT_SHTI_FLG = "kiki_shs_kbt_shitei_flg";
	/** IN項目:工事有無 */
	private static final String IN_PARAM_KOJI_UM = "koji_um";
	/** IN項目:工事有でOPMS連携済有無 */
	private static final String IN_PARAM_OPMS_RNKIZM_UM = "opms_rnkizm_um";
	/** IN項目:返品機器作成要否 */
	private static final String IN_PARAM_HMPIN_YOUHI = "hmpin_youhi";
	/** IN項目:配送作成要否 */
	private static final String IN_PARAM_HAISO_SAKUSEI_YOUHI = "haiso_sakusei_youhi";
	/** IN項目:多機能ルーター交換有無 */
	private static final String IN_PARAM_TKN_ROUTER_CHG_UM = "tkn_router_chg_um";
	/** IN項目:配送ステータス(VA) */
	private static final String IN_PARAM_HAISO_STAT_VA = "haiso_stat_va";
	/** IN項目:新設工事有無 */
	private static final String IN_PARAM_SHINSETSU_KOJI_UM = "shinsetsu_koji_um";
	/** IN項目:住所情報 */
	private static final String IN_PARAM_ADDRESS_INFO = "addres_info";
	/** IN項目:送付先氏名 */
	private static final String IN_PARAM_SENDTO_NAME = "sendto_name";
	/** IN項目:送付先氏名かな */
	private static final String IN_PARAM_SENDTO_NAME_KANA = "sendto_name_kana";
	/** IN項目:住所コード */
	private static final String IN_PARAM_AD_CD = "ad_cd";
	/** IN項目:都道府県名 */
	private static final String IN_PARAM_STATE_NM = "state_nm";
	/** IN項目:市区町村名 */
	private static final String IN_PARAM_CITY_NM = "city_nm";
	/** IN項目:大字通称名 */
	private static final String IN_PARAM_OAZTSU_NM = "oaztsu_nm";
	/** IN項目:字丁目名 */
	private static final String IN_PARAM_AZCHO_NM = "azcho_nm";
	/** IN項目:番地 */
	private static final String IN_PARAM_AFTER_BNCHI = "after_bnchi";
	/** IN項目:送付先郵便番号 */
	private static final String IN_PARAM_SENDTO_ZIP_CD = "sendto_zip_cd";
	/** IN項目:送付先建物名 */
	private static final String IN_PARAM_SENDTO_BLD = "sendto_bld";
	/** IN項目:送付先部屋番号 */
	private static final String IN_PARAM_SENDTO_ROOM = "sendto_room";
	/** IN項目:送付先電話番号 */
	private static final String IN_PARAM_SENDTO_TELNO = "sendto_telno";
// ANK-3777-00-00 ADD START
	/** IN項目:多機能ルーター申込 */
	private static final String IN_PARAM_TKN_RT_MSKM = "tkn_rt_mskm";
	/** IN項目:機器オプション申込 */
	private static final String IN_PARAM_KIKI_OP_MSKM = "kiki_op_mskm";
// ANK-3777-00-00 ADD END
	/** IN項目:ルータ新料金コース適用フラグ */
	protected static final String IN_PARAM_RT_NEW_PCRS_APLY_FLG = "rt_new_pcrs_aply_flg";	

	/** SC名:申込内容承認登録 */
	private static final String SC_NAME_MSKM = "FUSV008001SC";

	/** ルーター交換結果(BBR登録数) */
	private static final String RESULT_BBR_REGIST_CNT = "bbrRegistCnt";
	/** ルーター交換結果(BBR上限数) */
	private static final String RESULT_BBR_QTY_LIMIT = "bbrQtyLimit";
	/** ルーター交換結果(料金コース速度コード(カレント)) */
	private static final String RESULT_PCRS_SPEEDCD_CURRENT = "pcrsSpeedCdCurrent";
	/** ルーター交換結果(料金コース速度コード(予約)) */
	private static final String RESULT_PCRS_SPEED_CD_RESERVE = "pcrsSpeedCdReserve";
	/** ルーター交換結果(SYSID) */
	private static final String RESULT_SYSID = "sysId";
	/** ルーター交換結果(更新年月日時分秒(サービス契約)) */
	private static final String RESULT_UPDDTM_SVC_KEI = "updDtmSvcKei";
	/** 請求契約番号 */
	private static final String RESULT_SEIKYKEINO = "seikyKeiNoNet";
	/** コース変更有無 */
	private static final String RESULT_CRS_CHG_UM = "crs_chg_um";
	/** ルーター速度種別(プラン変更前) */
	private static final String RESULT_ROUTER_SPEED_SBT_BF = "router_speed_sbt_bf";
	/** ルーター速度種別(プラン変更後) */
	private static final String RESULT_ROUTER_SPEED_SBT_AF = "router_speed_sbt_af";
	/** 機器オプションサービス契約番号 */
	private static final String KKOP_SVC_KEI_NO = "kkop_svc_kei_no";
	/** 機器提供サービス契約番号 */
	protected static final String KKTK_SVC_KEI_NO = "kktk_svc_kei_no";
	/** 変更前機器オプションサービス契約番号 */
	protected static final String BF_KKOP_SVC_KEI_NO = "bf_kkop_svc_kei_no";
	/** 変更後機器オプションサービス契約番号 */
	protected static final String AF_KKOP_SVC_KEI_NO = "af_kkop_svc_kei_no";
	/** 変更前機器オプションサービス契約世代登録年月日 */
	protected static final String BF_GENE_ADD_DTM = "bf_gene_add_dtm";
	/** 変更後機器オプションサービス契約世代登録年月日 */
	protected static final String AF_GENE_ADD_DTM = "af_gene_add_dtm";
	/** 保有ルーターコード */
	private static final String RESULT_HOYU_ROUTER_CD = "hoyu_router_cd";

	/** フロント用共通関連チェック定義ファイルパス取得キー */
	private static final String KEY_XML_FILE_PATH = "FUROUTER_SPEED_SBT_SETTING_FILE_PATH";
	/** フロント用共通関連チェック定義ファイル */
	private static final String XML_FILE_PATH = JCCBPCommon.getApplicationConst(KEY_XML_FILE_PATH);

	/** eo光ネットプラン変更出荷機器定義ファイルパス取得キー */
	private static final String PLANCHG_XML_FILE_PATH = "FUNET_CRSCHG_SHIPPINGKIKI_SETTING_FILE_PATH";
	/** eo光ネットプラン変更出荷機器定義ファイル */
	private static final String PLANCHG_XML_FILE = JCCBPCommon.getApplicationConst(PLANCHG_XML_FILE_PATH);
	/** eo光ネットプラン変更出荷機器定義ルート項目リスト */
	private static final List<String> PLANCHG_ROOT_ITEMS = Arrays.asList("SHIPPING_KIKI_SETTING", "SHIPPING_KIKI", "RESULT");
	/** eo光ネットプラン変更出荷機器定義結果項目リスト */
	private static final List<String> PLANCHG_RSLT_ITEMS =
			Arrays.asList("KKTK_SVC_CD", "KKTK_PCRS_CD", "KKTK_PPLAN_CD", "KKOP_SVC_CD", "KKOP_PCRS_CD", "KKOP_PPLAN_CD");
	/** eo光ネットプラン変更出荷機器定義属性リスト */
	private static final List<String> PLANCHG_ATTRS = Arrays.asList("own_router_cd", "chg_um", "famipa_um", "bf_speed_cd", "af_speed_cd");

	/** ファミリーパック出荷機器定義ファイルパス取得キー */
	private static final String FAMIPA_XML_FILE_PATH = "FUFAMIPA_SHIPPINGKIKI_SETTING_FILE_PATH";
	/** ファミリーパック出荷機器定義ファイル */
	private static final String FAMIPA_XML_FILE = JCCBPCommon.getApplicationConst(FAMIPA_XML_FILE_PATH);
	/** ファミリーパック出荷機器定義ルート項目リスト */
	private static final List<String> FAMIPA_ROOT_ITEMS = Arrays.asList("SHIPPING_KIKI_SETTING", "SHIPPING_KIKI", "RESULT");
	/** ファミリーパック出荷機器定義属性リスト */
	private static final List<String> FAMIPA_ATTRS =
			Arrays.asList("own_router_cd", "chg_um", "bf_speed_cd", "af_speed_cd", "tkn_router_cd", "tkn_chg_um");
	/**ファミリーパック出荷機器定義結果項目リスト */
	private static final List<String> FAMIPA_RSLT_ITEMS =
			Arrays.asList("KKTK_SVC_CD", "KKTK_PCRS_CD", "KKTK_PPLAN_CD", "KKOP_SVC_CD", "KKOP_PCRS_CD", "KKOP_PPLAN_CD");

	/** 出荷機器定義結果項目リスト */
	private static final List<String> SHIPPING_KIKI_OUT_ITEMS =
			Arrays.asList("kktk_svc_cd", "kktk_pcrs_cd", "kktk_pplan_cd", "kkop_svc_cd", "kkop_pcrs_cd", "kkop_pplan_cd");

	/** 保有ルーターコードリスト */
	private static final List<String> ROUTER_CD_LIST =
			Arrays.asList(JFUStrConst.CD01313_01, JFUStrConst.CD01313_02, JFUStrConst.CD01313_03, JFUStrConst.CD01313_04, JFUStrConst.CD01313_05);
	/** 新無線保有ルーターコードリスト */
	private static final List<String> SIN_MUSEN_ROUTER_CD_LIST = Arrays.asList(JFUStrConst.CD01313_04, JFUStrConst.CD01313_05, JFUStrConst.CD01313_06);

	/** ルーター文言項目設定キー(ルーター速度種別(プラン変更前後において速度の速い方)) */
	private static final String MSG_ROUTER_SPEED_SBT = "router_speed_sbt";
	/** ルーター文言項目設定キー(ルーター速度種別(プラン変更前)) */
	private static final String MSG_ROUTER_SPEED_SBT_BF = "router_speed_sbt_bf";
	/** ルーター文言項目設定キー(ルーター速度種別(プラン変更後)) */
	private static final String MSG_ROUTER_SPEED_SBT_AF = "router_speed_sbt_af";
	/** ルーター文言項目設定キー(料金コースコード) */
	private static final String MSG_PCRS_CD = "pcrs_cd";
	/** ルーター文言項目設定キー(VA有無) */
	private static final String MSG_VA_UM = "va_um";

	/** 保有ルーターコード 00：保有ルーター無し */
	private static final String DUMMY_HOYU_ROUTER_CD_00 = "00";
	/** 保有ルーターコード(フロント独自) 96：多機能ルーター */
	private static final String DUMMY_HOYU_ROUTER_CD_96 = "96";
	/** 保有ルーターコード(フロント独自) 97：多機能ルーター(10G) */
	private static final String DUMMY_HOYU_ROUTER_CD_97 = "97";
	/** ルーター種類コード(フロント独自) TKN：多機能ルーター */
	private static final String ROUTER_KIND_CD_TKN = "TKN";
	/** ルーター速度コード 30：10G速度 */
	private static final String ROUTER_SPEED_SBT_CD_10G = "30";

	/** XML操作用：料金コース速度コード・ルーター速度種別相関 */
	private static final String TAG_PCRS_SPEED_CD_ROUTER_SPEED_SBT_MAPPING = "PCRS_SPEED_CD_ROUTER_SPEED_SBT_MAPPING";
	/** XML操作用：ルーター速度種別 */
	private static final String TAG_ROUTER_SPEED_SBT = "ROUTER_SPEED_SBT";
	/** XML操作用：料金コース速度コード */
	private static final String ATTR_PCRS_SPEED_CD = "pcrs_speed_cd";
	/** XML操作用：ルーター速度種別優劣判定 */
	private static final String TAG_OUTER_SPEED_SBT_JUDGE = "ROUTER_SPEED_SBT_JUDGE";
	/** XML操作用：id */
	private static final String ATTR_ID = "id";
	/** XML操作用：ルーター交換処理順序 */
	private static final String TAG_ROUTER_CHANGE_SEQUENCE = "ROUTER_CHANGE_SEQUENCE";
	/** XML操作用：料金コースコード */
	private static final String TAG_PCRS_CD = "PCRS_CD";

	/** 機器ソート用キー */
	private static final String KIKI_SORT_KEY = "kiki_sort_key";
	/** 宅内機器型式コード桁数 */
	private static final int LENGTH_TAKNKIKI_MODEL_CD = 20;

	/** VA機能有無 */
	private static final String VA_KINO_UM = "va_kino_um";

	/* ■□ サービス契約一意照会SC ■□ */
	/** テンプレートID(サービス契約一意照会) */
	private static final String TEMPLATE_ID_2 = "EKK0081A010";
	/** テンプレートID(サービス契約一意照会明細) */
	private static final String TEMPLATE_ID_2_DETAIL = EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST;
	/** IN項目リスト(サービス契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_2 =
			Arrays.asList(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, EKK0081A010CBSMsg.KEY_GENE_ADD_DTM, EKK0081A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(サービス契約一意照会) */
	private static final String ERROR_COLUMN_2 = EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(サービス契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_2 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_2 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 料金コース一意照会SC ■□ */
	/** テンプレートID(料金コース一意照会) */
	private static final String TEMPLATE_ID_3 = "EKK0791A010";
	/** テンプレートID(料金コース一意照会明細) */
	private static final String TEMPLATE_ID_3_DETAIL = EKK0791A010CBSMsg.EKK0791A010CBSMSG1LIST;
	/** IN項目リスト(料金コース一意照会) */
	private static final List<String> IN_COLUMN_LIST_3 =
			Arrays.asList(EKK0791A010CBSMsg.KEY_PCRS_CD, EKK0791A010CBSMsg.KEY_GENE_ADD_DTM, EKK0791A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(料金コース一意照会) */
	private static final String ERROR_COLUMN_3 = EKK0791A010CBSMsg.KEY_PCRS_CD_ERR;
	/** SC実行結果取得キー(料金コース一意照会) */
	private static final String TEMP_TEMPLATE_KEY_3 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_3 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 課金先一覧照会（請求契約番号/サービス契約番号）SC ■□ */
	/** テンプレートID(課金先一覧照会（請求契約番号/サービス契約番号) */
	private static final String TEMPLATE_ID_4 = "EKK0321B002";
	/** テンプレートID(課金先一覧照会（請求契約番号/サービス契約番号明細) */
	private static final String TEMPLATE_ID_4_DETAIL = EKK0321B002CBSMsg.EKK0321B002CBSMSG1LIST;
	/** IN項目リスト(課金先一覧照会（請求契約番号/サービス契約番号) */
	private static final List<String> IN_COLUMN_LIST_4 = Arrays.asList(EKK0321B002CBSMsg.KEY_SVC_KEI_NO, EKK0321B002CBSMsg.KEY_SEIKY_KEI_NO);
	/** 関連チェックエラー項目(課金先一覧照会（請求契約番号/サービス契約番号) */
	private static final String ERROR_COLUMN_4 = EKK0321B002CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(課金先一覧照会（請求契約番号/サービス契約番号) */
	private static final String TEMP_TEMPLATE_KEY_4 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_4 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 宅内機器型式一意照会SC ■□ */
	/** テンプレートID(宅内機器型式一意照会) */
	private static final String TEMPLATE_ID_7 = "EZM0411A010";
	/** テンプレートID(宅内機器型式一意照会明細) */
	private static final String TEMPLATE_ID_7_DETAIL = EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST;
	/** IN項目リスト(宅内機器型式一意照会) */
	private static final List<String> IN_COLUMN_LIST_7 = Arrays.asList(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD);
	/** 関連チェックエラー項目(宅内機器型式一意照会) */
	private static final String ERROR_COLUMN_7 = EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD_ERR;
	/** SC実行結果取得キー(宅内機器型式一意照会) */
	private static final String TEMP_TEMPLATE_KEY_7 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_7 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約料金プラン変更SC ■□ */
	/** テンプレートID(機器オプションサービス契約料金プラン変更) */
	private static final String TEMPLATE_ID_8 = "EKK2811C250";
	/** テンプレートID(機器オプションサービス契約料金プラン変更) */
	private static final String TEMPLATE_ID_8_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約料金プラン変更) */
	private static final List<String> IN_COLUMN_LIST_8 =
			Arrays.asList(EKK2811C250CBSMsg.KKOP_SVC_KEI_NO, EKK2811C250CBSMsg.IDO_DIV, EKK2811C250CBSMsg.RSV_APLY_YMD,
					EKK2811C250CBSMsg.MSKM_DTL_NO, EKK2811C250CBSMsg.PCRS_CD, EKK2811C250CBSMsg.PPLAN_CD, EKK2811C250CBSMsg.PNLTY_HASSEI_CD,
					EKK2811C250CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約料金プラン変更) */
	private static final String ERROR_COLUMN_8 = null;
	/** SC実行結果取得キー(機器オプションサービス契約料金プラン変更) */
	private static final String TEMP_TEMPLATE_KEY_8 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_8 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約解約SC ■□ */
	/** テンプレートID(機器提供サービス契約解約) */
	private static final String TEMPLATE_ID_10 = "EKK0341C340";
	/** テンプレートID(機器提供サービス契約解約明細) */
	private static final String TEMPLATE_ID_10_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約解約) */
	private static final List<String> IN_COLUMN_LIST_10 =
			Arrays.asList(EKK0341C340CBSMsg.KKTK_SVC_KEI_NO, EKK0341C340CBSMsg.MSKM_DTL_NO, EKK0341C340CBSMsg.RSV_TSTA_KIBO_YMD,
					EKK0341C340CBSMsg.SVC_ENDYMD, EKK0341C340CBSMsg.SVC_CHRG_ENDYMD, EKK0341C340CBSMsg.SVC_DLRE_CD, EKK0341C340CBSMsg.SVC_DLRE_MEMO,
					EKK0341C340CBSMsg.ZANCHI_FLG, EKK0341C340CBSMsg.IDO_DIV, EKK0341C340CBSMsg.TAKNKIKI_IDO_CD, EKK0341C340CBSMsg.UPD_DTM_BF,
					EKK0341C340CBSMsg.PNLTY_HASSEI_CD);
	/** 関連チェックエラー項目(機器提供サービス契約解約) */
	private static final String ERROR_COLUMN_10 = null;
	/** SC実行結果取得キー(機器提供サービス契約解約) */
	private static final String TEMP_TEMPLATE_KEY_10 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_10 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約登録SC ■□ */
	/** テンプレートID(機器提供サービス契約登録) */
	private static final String TEMPLATE_ID_11 = "EKK0341D010";
	/** テンプレートID(機器提供サービス契約登録明細) */
	private static final String TEMPLATE_ID_11_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約登録) */
	private static final List<String> IN_COLUMN_LIST_11 =
			Arrays.asList(EKK0341D010CBSMsg.KKTK_SVC_CD, EKK0341D010CBSMsg.PCRS_CD, EKK0341D010CBSMsg.PPLAN_CD, EKK0341D010CBSMsg.KKTK_SBT_CD,
					EKK0341D010CBSMsg.HDD_CAPA_CD, EKK0341D010CBSMsg.SVC_USE_STA_KIBO_YMD, EKK0341D010CBSMsg.RSV_TSTA_KIBO_YMD,
					EKK0341D010CBSMsg.KIBO_MAKER_CD, EKK0341D010CBSMsg.HAMBAI_SBT_CD, EKK0341D010CBSMsg.TSUSHIN_KIKI_SET_CD,
					EKK0341D010CBSMsg.TAKNKIKI_SBT_CD, EKK0341D010CBSMsg.TAKNKIKI_MODEL_CD, EKK0341D010CBSMsg.KIKI_SEIZO_NO,
					EKK0341D010CBSMsg.TAKNKIKI_SETHIN_MODEL_CD, EKK0341D010CBSMsg.HUZOKUHIN_SBT_CD, EKK0341D010CBSMsg.KIKI_STC_SAKI_PLACE_NO,
					EKK0341D010CBSMsg.OYA_KEI_SKBT_CD, EKK0341D010CBSMsg.SVC_KEI_NO, EKK0341D010CBSMsg.SVC_KEI_UCWK_NO,
					EKK0341D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, EKK0341D010CBSMsg.OP_SVC_KEI_NO, EKK0341D010CBSMsg.SYSID,
					EKK0341D010CBSMsg.MSKM_DTL_NO, EKK0341D010CBSMsg.LINK_STB_FLG, EKK0341D010CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD,
					EKK0341D010CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, EKK0341D010CBSMsg.KIKI_SORYO_UM, EKK0341D010CBSMsg.KIKI_SORYO_SAKSEI_YMD,
					EKK0341D010CBSMsg.KIKI_SOHUS_NM, EKK0341D010CBSMsg.KIKI_SOHUS_KANA, EKK0341D010CBSMsg.KIKI_SOHUS_AD_CD,
					EKK0341D010CBSMsg.KIKI_SOHUS_PCD, EKK0341D010CBSMsg.KIKI_SOHUS_STATE_NM, EKK0341D010CBSMsg.KIKI_SOHUS_CITY_NM,
					EKK0341D010CBSMsg.KIKI_SOHUS_OAZTSU_NM, EKK0341D010CBSMsg.KIKI_SOHUS_AZCHO_NM, EKK0341D010CBSMsg.KIKI_SOHUS_BNCHIGO,
					EKK0341D010CBSMsg.KIKI_SOHUS_ADRTTM, EKK0341D010CBSMsg.KIKI_SOHUS_ADRRM, EKK0341D010CBSMsg.KIKI_SOHUS_TELNO,
					EKK0341D010CBSMsg.MANSION_BUKKEN_NO, EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG, EKK0341D010CBSMsg.KIKI_SHS_KBT_SHITEI_FLG,
					EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_1, EKK0341D010CBSMsg.KIKI_SHS_HSK_CD_2, EKK0341D010CBSMsg.KIKI_SHS_HSK_MEMO,
					EKK0341D010CBSMsg.KIKI_STC_SAKI_NM, EKK0341D010CBSMsg.KIKI_STC_SAKI_KANA, EKK0341D010CBSMsg.KIKI_STC_SAKI_AD_CD,
					EKK0341D010CBSMsg.KIKI_STC_SAKI_PCD, EKK0341D010CBSMsg.KIKI_STC_SAKI_STATE_NM, EKK0341D010CBSMsg.KIKI_STC_SAKI_CITY_NM,
					EKK0341D010CBSMsg.KIKI_STC_SAKI_OAZTSU_NM, EKK0341D010CBSMsg.KIKI_STC_SAKI_AZCHO_NM, EKK0341D010CBSMsg.KIKI_STC_SAKI_BNCHIGO,
					EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRTTM, EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRRM, EKK0341D010CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG,
					EKK0341D010CBSMsg.KIKI_STC_SK_TELNO, EKK0341D010CBSMsg.KIKI_STS_KKK_SEIRI_CHU_FLG, EKK0341D010CBSMsg.AD_MI_FIX_FLG,
					EKK0341D010CBSMsg.KIKI_STS_HSK_CD_1, EKK0341D010CBSMsg.KIKI_STS_HSK_CD_2, EKK0341D010CBSMsg.KIKI_STS_HSK_MEMO,
					EKK0341D010CBSMsg.HAISO_DIV, EKK0341D010CBSMsg.FTRIAL_KANYU_YMD, EKK0341D010CBSMsg.FTRIAL_PRD_ENDYMD,
					EKK0341D010CBSMsg.HONKANYU_YMD, EKK0341D010CBSMsg.HONKANYU_IKO_KIGEN_YMD, EKK0341D010CBSMsg.HOSHO_CD,
					EKK0341D010CBSMsg.HOSHO_STAYMD, EKK0341D010CBSMsg.PNLTY_HASSEI_CD, EKK0341D010CBSMsg.IDO_DIV, EKK0341D010CBSMsg.TAKNKIKI_IDO_CD,
					EKK0341D010CBSMsg.CAS_CARD_USE_KYODAK_YMD, EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD, EKK0341D010CBSMsg.HAISO_WAY_CD,
					EKK0341D010CBSMsg.KIKI_ITENS_MV_JSSIS_SKCD, EKK0341D010CBSMsg.HAISO_REQ_SHITEI_YMD, EKK0341D010CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG,
					EKK0341D010CBSMsg.SEIKY_KEI_NO, EKK0341D010CBSMsg.PRC_KMK_CD, EKK0341D010CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器提供サービス契約登録) */
	private static final String ERROR_COLUMN_11 = null;
	/** SC実行結果取得キー(機器提供サービス契約登録) */
	private static final String TEMP_TEMPLATE_KEY_11 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_11 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約照査SC ■□ */
	/** テンプレートID(機器提供サービス契約照査) */
	private static final String TEMPLATE_ID_12 = "EKK0341C030";
	/** テンプレートID(機器提供サービス契約照査明細) */
	private static final String TEMPLATE_ID_12_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約照査) */
	private static final List<String> IN_COLUMN_LIST_12 =
			Arrays.asList(EKK0341C030CBSMsg.KKTK_SVC_KEI_NO, EKK0341C030CBSMsg.KIKI_NINSHO_ID, EKK0341C030CBSMsg.KIKI_NINSHO_ID_PWD,
					EKK0341C030CBSMsg.IDO_DIV, EKK0341C030CBSMsg.UPD_DTM_BF, EKK0341C030CBSMsg.SHOSA_DSL_FIN_CD);
	/** 関連チェックエラー項目(機器提供サービス契約照査) */
	private static final String ERROR_COLUMN_12 = null;
	/** SC実行結果取得キー(機器提供サービス契約照査) */
	private static final String TEMP_TEMPLATE_KEY_12 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_12 + TEMP_TEMPLATE_PRIFIX_SEP;

	// OM-2016-0000830 2016/04/11 add start
	/* ■□ 機器設置先場所反映SC ■□ */
	/** テンプレートID(機器設置先場所反映) */
	private static final String TEMPLATE_ID_UPD_KIKI_PLACE_NO = "EKK0341C450";
	/** テンプレートID(機器設置先場所反映明細) */
	private static final String TEMPLATE_ID_UPD_KIKI_PLACE_NO_DETAIL = null;
	/** IN項目リスト(機器設置先場所反映) */
	private static final List<String> IN_COLUMN_LIST_UPD_KIKI_PLACE_NO =
			Arrays.asList(EKK0341C450CBSMsg.KKTK_SVC_KEI_NO, EKK0341C450CBSMsg.KIKI_STC_SAKI_PLACE_NO, EKK0341C450CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器設置先場所反映) */
	private static final String ERROR_COLUMN_UPD_KIKI_PLACE_NO = null;
	/** SC実行結果取得キー(機器設置先場所反映) */
	private static final String TEMP_TEMPLATE_KEY_UPD_KIKI_PLACE_NO = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_UPD_KIKI_PLACE_NO + TEMP_TEMPLATE_PRIFIX_SEP;
	// OM-2016-0000830 2016/04/11 add end

	/* ■□ 機器自動交換対象型式候補一覧照会SC ■□*/
	/** テンプレートID(機器自動交換対象型式候補一覧照会) */
	private static final String TEMPLATE_ID_13 = "EKK0341B020";
	/** 関連チェックエラー項目(機器自動交換対象型式候補一覧照会) */
	private static final String ERROR_COLUMN_13 = "router_auto_add";

	/* ■□ 機器オプションサービス契約登録SC ■□ */
	/** テンプレートID(機器オプションサービス契約登録) */
	private static final String TEMPLATE_ID_KKOPADD = "EKK2811D010";
	/** テンプレートID(機器オプションサービス契約登録明細) */
	private static final String TEMPLATE_ID_KKOPADD_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約登録) */
	private static final List<String> IN_COLUMN_LIST_KKOPADD =
			Arrays.asList(EKK2811D010CBSMsg.KKOP_SVC_CD, EKK2811D010CBSMsg.PCRS_CD, EKK2811D010CBSMsg.PPLAN_CD, EKK2811D010CBSMsg.KKTK_SVC_KEI_NO,
					EKK2811D010CBSMsg.SYSID, EKK2811D010CBSMsg.MSKM_DTL_NO, EKK2811D010CBSMsg.RSV_APLY_YMD, EKK2811D010CBSMsg.RSV_APLY_CD,
					EKK2811D010CBSMsg.PNLTY_HASSEI_CD, EKK2811D010CBSMsg.IDO_DIV, EKK2811D010CBSMsg.SEIKY_KEI_NO,
					EKK2811D010CBSMsg.KIKI_RNTAI_KEI_CHGECHU_FLG, EKK2811D010CBSMsg.NEW_PCRS_APLY_FLG, EKK2811D010CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約登録) */
	private static final String ERROR_COLUMN_KKOPADD = null;
	/** SC実行結果取得キー(機器オプションサービス契約登録) */
	private static final String TEMP_TEMPLATE_KEY_KKOPADD = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_KKOPADD + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約照査SC ■□ */
	/** テンプレートID(機器オプションサービス契約照査) */
	private static final String TEMPLATE_ID_KKOPSHOSA = "EKK2811C030";
	/** テンプレートID(機器オプションサービス契約照査明細) */
	private static final String TEMPLATE_ID_KKOPSHOSA_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約照査) */
	private static final List<String> IN_COLUMN_LIST_KKOPSHOSA =
			Arrays.asList(EKK2811C030CBSMsg.KKOP_SVC_KEI_NO, EKK2811C030CBSMsg.IDO_DIV, EKK2811C030CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約照査) */
	private static final String ERROR_COLUMN_KKOPSHOSA = null;
	/** SC実行結果取得キー(機器オプションサービス契約照査) */
	private static final String TEMP_TEMPLATE_KEY_KKOPSHOSA = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_KKOPSHOSA + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約照査締結SC ■□ */
	/** テンプレートID(機器オプションサービス契約照査締結) */
	private static final String TEMPLATE_ID_KKOPSHOSA_TEIKETSU = "EKK2811C050";
	/** テンプレートID(機器オプションサービス契約照査締結明細) */
	private static final String TEMPLATE_ID_KKOPSHOSA_TEIKETSU_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約照査) */
	private static final List<String> IN_COLUMN_LIST_KKOPSHOSA_TEIKETSU =
			Arrays.asList(EKK2811C050CBSMsg.KKOP_SVC_KEI_NO, EKK2811C050CBSMsg.IDO_DIV, EKK2811C050CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約照査締結) */
	private static final String ERROR_COLUMN_KKOPSHOSA_TEIKETSU = null;
	/** SC実行結果取得キー(機器オプションサービス契約照査締結) */
	private static final String TEMP_TEMPLATE_KEY_KKOPSHOSA_TEIKETSU =
			TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_KKOPSHOSA_TEIKETSU + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約開始SC ■□ */
	/** テンプレートID(機器オプションサービス契約開始) */
	private static final String TEMPLATE_ID_KKOPKAISHI = "EKK2811C070";
	/** テンプレートID(機器オプションサービス契約開始明細) */
	private static final String TEMPLATE_ID_KKOPKAISHI_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約照査) */
	private static final List<String> IN_COLUMN_LIST_KKOPKAISHI =
			Arrays.asList(EKK2811C070CBSMsg.KKOP_SVC_KEI_NO, EKK2811C070CBSMsg.IDO_DIV, EKK2811C070CBSMsg.UPD_DTM_BF, EKK2811C070CBSMsg.DOJI_STA_UMU);
	/** 関連チェックエラー項目(機器オプションサービス契約開始) */
	private static final String ERROR_COLUMN_KKOPKAISHI = null;
	/** SC実行結果取得キー(機器オプションサービス契約開始) */
	private static final String TEMP_TEMPLATE_KEY_KKOPKAISHI = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_KKOPKAISHI + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約一覧照会（サービス契約番号）SC ■□ */
	/** テンプレートID(機器提供サービス契約一覧照会（サービス契約番号）) */
	private static final String TEMPLATE_ID_14 = "EKK0341B002";
	/** テンプレートID(機器提供サービス契約一覧照会（サービス契約番号）明細) */
	private static final String TEMPLATE_ID_14_DETAIL = EKK0341B002CBSMsg.EKK0341B002CBSMSG1LIST;
	/** IN項目リスト(機器提供サービス契約一覧照会（サービス契約番号）) */
	private static final List<String> IN_COLUMN_LIST_14 =
			Arrays.asList(EKK0341B002CBSMsg.KEY_KKTK_SVC_CD, EKK0341B002CBSMsg.KEY_SVC_KEI_NO, EKK0341B002CBSMsg.KEY_KKTK_SVC_KEI_NO,
					EKK0341B002CBSMsg.KEY_SORT_KBN);
	/** 関連チェックエラー項目(機器提供サービス契約一覧照会（サービス契約番号）) */
	private static final String ERROR_COLUMN_14 = EKK0341B002CBSMsg.KEY_KKTK_SVC_CD_ERR;
	/** SC実行結果取得キー(機器提供サービス契約一覧照会（サービス契約番号）) */
	private static final String TEMP_TEMPLATE_KEY_14 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_14 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約料金プラン変更確定SC ■□ */
	/** テンプレートID(機器オプションサービス契約料金プラン変更確定) */
	private static final String TEMPLATE_ID_15 = "EKK2811C260";
	/** テンプレートID(機器オプションサービス契約料金プラン変更確定明細) */
	private static final String TEMPLATE_ID_15_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約料金プラン変更確定) */
	private static final List<String> IN_COLUMN_LIST_15 =
			Arrays.asList(EKK2811C260CBSMsg.KKOP_SVC_KEI_NO, EKK2811C260CBSMsg.RSV_APLY_YMD, EKK2811C260CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約料金プラン変更確定) */
	private static final String ERROR_COLUMN_15 = null;
	/** SC実行結果取得キー(機器オプションサービス契約料金プラン変更確定) */
	private static final String TEMP_TEMPLATE_KEY_15 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_15 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ サービス契約回線内訳一覧照会（サービス契約番号）SC ■□ */
	/** テンプレートID(サービス契約回線内訳一覧照会（サービス契約番号）) */
	private static final String TEMPLATE_ID_16 = "EKK0251B001";
	/** テンプレートID(サービス契約回線内訳一覧照会（サービス契約番号）明細) */
	private static final String TEMPLATE_ID_16_DETAIL = EKK0251B001CBSMsg.EKK0251B001CBSMSG1LIST;
	/** IN項目リスト(サービス契約回線内訳一覧照会（サービス契約番号）) */
	private static final List<String> IN_COLUMN_LIST_16 = Arrays.asList(EKK0251B001CBSMsg.KEY_SVC_KEI_NO);
	/** 関連チェックエラー項目(サービス契約回線内訳一覧照会（サービス契約番号）) */
	private static final String ERROR_COLUMN_16 = EKK0251B001CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(サービス契約回線内訳一覧照会（サービス契約番号）) */
	private static final String TEMP_TEMPLATE_KEY_16 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_16 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ サービス契約回線内訳一意照会SC ■□ */
	/** テンプレートID(サービス契約回線内訳一意照会) */
	private static final String TEMPLATE_ID_17 = "EKK0251A010";
	/** テンプレートID(サービス契約回線内訳一意照会明細) */
	private static final String TEMPLATE_ID_17_DETAIL = EKK0251A010CBSMsg.EKK0251A010CBSMSG1LIST;
	/** IN項目リスト(サービス契約回線内訳一意照会) */
	private static final List<String> IN_COLUMN_LIST_17 =
			Arrays.asList(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, EKK0251A010CBSMsg.KEY_GENE_ADD_DTM);
	/** 関連チェックエラー項目(サービス契約回線内訳一意照会) */
	private static final String ERROR_COLUMN_17 = EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR;
	/** SC実行結果取得キー(サービス契約回線内訳一意照会) */
	private static final String TEMP_TEMPLATE_KEY_17 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_17 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ お客様一意照会SC ■□ */
	/** テンプレートID(お客様一意照会) */
	private static final String TEMPLATE_ID_18 = "ECK0011A010";
	/** テンプレートID(お客様一意照会明細) */
	private static final String TEMPLATE_ID_18_DETAIL = ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST;
	/** IN項目リスト(お客様一意照会) */
	private static final List<String> IN_COLUMN_LIST_18 =
			Arrays.asList(ECK0011A010CBSMsg.KEY_SYSID, ECK0011A010CBSMsg.KEY_GENE_ADD_DTM, ECK0011A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(お客様一意照会) */
	private static final String ERROR_COLUMN_18 = ECK0011A010CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(お客様一意照会) */
	private static final String TEMP_TEMPLATE_KEY_18 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_18 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス一意照会SC ■□ */
	/** テンプレートID(機器提供サービス一意照会) */
	private static final String TEMPLATE_ID_19 = "EKK0771A010";
	/** テンプレートID(機器提供サービス一意照会明細) */
	private static final String TEMPLATE_ID_19_DETAIL = EKK0771A010CBSMsg.EKK0771A010CBSMSG1LIST;
	/** IN項目リスト(機器提供サービス一意照会) */
	private static final List<String> IN_COLUMN_LIST_19 = Arrays.asList(EKK0771A010CBSMsg.KEY_KKTK_SVC_CD);
	/** 関連チェックエラー項目(機器提供サービス一意照会) */
	private static final String ERROR_COLUMN_19 = EKK0771A010CBSMsg.KEY_KKTK_SVC_CD;
	/** SC実行結果取得キー(機器提供サービス一意照会) */
	private static final String TEMP_TEMPLATE_KEY_19 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_19 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 引当棚一意照会SC ■□ */
	/** テンプレートID(引当棚一意照会) */
	private static final String TEMPLATE_ID_20 = "EDK0451A010";
	/** テンプレートID(引当棚一意照会明細) */
	private static final String TEMPLATE_ID_20_DETAIL = EDK0451A010CBSMsg.EDK0451A010CBSMSG1LIST;
	/** IN項目リスト(引当棚一意照会) */
	private static final List<String> IN_COLUMN_LIST_20 = Arrays.asList(EDK0451A010CBSMsg.KEY_HAMBAI_SBT_CD, EDK0451A010CBSMsg.KEY_UNYO_YMD);
	/** 関連チェックエラー項目(引当棚一意照会) */
	private static final String ERROR_COLUMN_20 = EDK0451A010CBSMsg.KEY_UNYO_YMD_ERR;
	/** SC実行結果取得キー(引当棚一意照会) */
	private static final String TEMP_TEMPLATE_KEY_20 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_20 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 返品機器一覧照会（機器提供サービス契約番号）SC ■□ */
	/** テンプレートID(返品機器一覧照会（機器提供サービス契約番号）) */
	private static final String TEMPLATE_ID_26 = "EDK0301B070";
	/** テンプレートID(返品機器一覧照会（機器提供サービス契約番号）明細) */
	private static final String TEMPLATE_ID_26_DETAIL = EDK0301B070CBSMsg.EDK0301B070CBSMSG1LIST;
	/** IN項目リスト(返品機器一覧照会（機器提供サービス契約番号）) */
	private static final List<String> IN_COLUMN_LIST_26 =
			Arrays.asList(EDK0301B070CBSMsg.KEY_TAKNKIKI_MODEL_CD, EDK0301B070CBSMsg.KEY_KIKI_SEIZO_NO, EDK0301B070CBSMsg.KEY_KKTK_SVC_KEI_NO);
	/** 関連チェックエラー項目(返品機器一覧照会（機器提供サービス契約番号）) */
	private static final String ERROR_COLUMN_26 = EDK0301B070CBSMsg.KEY_TAKNKIKI_MODEL_CD_ERR;
	/** SC実行結果取得キー(返品機器一覧照会（機器提供サービス契約番号）) */
	private static final String TEMP_TEMPLATE_KEY_26 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_26 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約一意照会SC ■□ */
	/** テンプレートID(機器提供サービス契約一意照会) */
	private static final String TEMPLATE_ID_27 = "EKK0341A010";
	/** テンプレートID(機器提供サービス契約一意照会明細) */
	private static final String TEMPLATE_ID_27_DETAIL = EKK0341A010CBSMsg.EKK0341A010CBSMSG1LIST;
	/** IN項目リスト(機器提供サービス契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_27 =
			Arrays.asList(EKK0341A010CBSMsg.KEY_KKTK_SVC_KEI_NO, EKK0341A010CBSMsg.KEY_GENE_ADD_DTM, EKK0341A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェック,エラー項目(機器提供サービス契約一意照会) */
	private static final String ERROR_COLUMN_27 = EKK0341A010CBSMsg.KEY_KKTK_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(機器提供サービス契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_27 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_27 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約情報変更SC ■□ */
	/** テンプレートID(機器提供サービス契約情報変更) */
	private static final String TEMPLATE_ID_28 = "EKK0341C230";
	/** テンプレートID(機器提供サービス契約情報変更明細) */
	private static final String TEMPLATE_ID_28_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約情報変更) */
	private static final List<String> IN_COLUMN_LIST_28 =
			Arrays.asList(EKK0341C230CBSMsg.KKTK_SVC_KEI_NO, EKK0341C230CBSMsg.KKTK_SBT_CD, EKK0341C230CBSMsg.HAMBAI_SBT_CD,
					EKK0341C230CBSMsg.TAKNKIKI_MODEL_CD, EKK0341C230CBSMsg.KIKI_SEIZO_NO, EKK0341C230CBSMsg.HDD_CAPA_CD,
					EKK0341C230CBSMsg.TSUSHIN_KIKI_SET_CD, EKK0341C230CBSMsg.LINK_STB_FLG, EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD,
					EKK0341C230CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, EKK0341C230CBSMsg.KIKI_SORYO_UM, EKK0341C230CBSMsg.KIKI_SOHUS_NM,
					EKK0341C230CBSMsg.KIKI_SOHUS_KANA, EKK0341C230CBSMsg.KIKI_SOHUS_AD_CD, EKK0341C230CBSMsg.KIKI_SOHUS_PCD,
					EKK0341C230CBSMsg.KIKI_SOHUS_STATE_NM, EKK0341C230CBSMsg.KIKI_SOHUS_CITY_NM, EKK0341C230CBSMsg.KIKI_SOHUS_OAZTSU_NM,
					EKK0341C230CBSMsg.KIKI_SOHUS_AZCHO_NM, EKK0341C230CBSMsg.KIKI_SOHUS_BNCHIGO, EKK0341C230CBSMsg.KIKI_SOHUS_ADRTTM,
					EKK0341C230CBSMsg.KIKI_SOHUS_ADRRM, EKK0341C230CBSMsg.KIKI_SOHUS_TELNO, EKK0341C230CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG,
					EKK0341C230CBSMsg.KIKI_SHS_KBT_SHITEI_FLG, EKK0341C230CBSMsg.KIKI_STC_SAKI_NM, EKK0341C230CBSMsg.KIKI_STC_SAKI_KANA,
					EKK0341C230CBSMsg.KIKI_STC_SAKI_AD_CD, EKK0341C230CBSMsg.KIKI_STC_SAKI_PCD, EKK0341C230CBSMsg.KIKI_STC_SAKI_STATE_NM,
					EKK0341C230CBSMsg.KIKI_STC_SAKI_CITY_NM, EKK0341C230CBSMsg.KIKI_STC_SAKI_OAZTSU_NM, EKK0341C230CBSMsg.KIKI_STC_SAKI_AZCHO_NM,
					EKK0341C230CBSMsg.KIKI_STC_SAKI_BNCHIGO, EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRTTM, EKK0341C230CBSMsg.KIKI_STC_SAKI_ADRRM,
					EKK0341C230CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG, EKK0341C230CBSMsg.KIKI_STC_SK_TELNO, EKK0341C230CBSMsg.KIKI_STS_KKK_SEIRI_CHU_FLG,
					EKK0341C230CBSMsg.AD_MI_FIX_FLG, EKK0341C230CBSMsg.HAISO_DIV, EKK0341C230CBSMsg.FTRIAL_KANYU_YMD,
					EKK0341C230CBSMsg.FTRIAL_PRD_ENDYMD, EKK0341C230CBSMsg.HONKANYU_YMD, EKK0341C230CBSMsg.HONKANYU_IKO_KIGEN_YMD,
					EKK0341C230CBSMsg.HOSHO_CD, EKK0341C230CBSMsg.PNLTY_HASSEI_CD, EKK0341C230CBSMsg.IDO_DIV,
					EKK0341C230CBSMsg.CAS_CARD_USE_KYODAK_YMD, EKK0341C230CBSMsg.KIKI_HUKA_INFO_CD, EKK0341C230CBSMsg.HAISO_WAY_CD,
					EKK0341C230CBSMsg.KIKI_ITENS_MV_JSSIS_SKCD, EKK0341C230CBSMsg.HAISO_REQ_SHITEI_YMD, EKK0341C230CBSMsg.UPD_DTM_BF,
					EKK0341C230CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, EKK0341C230CBSMsg.KAISHU_KIKI_UM, EKK0341C230CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD,
					EKK0341C230CBSMsg.KIKI_SOHUS_AD_CHK_LV, EKK0341C230CBSMsg.KIKI_STC_AD_CHK_LV, EKK0341C230CBSMsg.KIKI_STI_JI_KRIPLACE_SKCD,
					EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_CD, EKK0341C230CBSMsg.KIKI_STI_JI_KOCOMP_SLF_CD, EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_CD,
					EKK0341C230CBSMsg.KIKI_STI_JI_YTKSKOF_SLF_CD, EKK0341C230CBSMsg.SHKA_FIN_JI_SYRZM_FLG, EKK0341C230CBSMsg.KIKI_SORYO_SAKSEI_YMD,
					EKK0341C230CBSMsg.EO_TV_KKST_SNN_STAT_CD, EKK0341C230CBSMsg.KKST_SNN_YMD, EKK0341C230CBSMsg.SVC_STA_KISAN_YMD);
	/** 関連チェックエラー項目(機器提供サービス契約情報変更) */
	private static final String ERROR_COLUMN_28 = EKK0341C230CBSMsg.KKTK_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(機器提供サービス契約情報変更) */
	private static final String TEMP_TEMPLATE_KEY_28 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_28 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約キャンセルSC ■□ */
	/** テンプレートID(機器提供サービス契約キャンセル) */
	private static final String TEMPLATE_ID_29 = "EKK0341C330";
	/** テンプレートID(機器提供サービス契約キャンセル明細) */
	private static final String TEMPLATE_ID_29_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約キャンセル) */
	private static final List<String> IN_COLUMN_LIST_29 =
			Arrays.asList(EKK0341C330CBSMsg.KKTK_SVC_KEI_NO, EKK0341C330CBSMsg.MSKM_DTL_NO, EKK0341C330CBSMsg.SVC_CANCEL_RSN_CD,
					EKK0341C330CBSMsg.IDO_DIV, EKK0341C330CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器提供サービス契約キャンセル) */
	private static final String ERROR_COLUMN_29 = null;
	/** SC実行結果取得キー(機器提供サービス契約キャンセル) */
	private static final String TEMP_TEMPLATE_KEY_29 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_29 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約解約確定SC ■□ */
	/** テンプレートID(機器提供サービス契約解約確定) */
	private static final String TEMPLATE_ID_30 = "EKK0341C350";
	/** テンプレートID(機器提供サービス契約解約確定明細) */
	private static final String TEMPLATE_ID_30_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約解約確定) */
	private static final List<String> IN_COLUMN_LIST_30 =
			Arrays.asList(EKK0341C350CBSMsg.KKTK_SVC_KEI_NO, EKK0341C350CBSMsg.SVC_ENDYMD, EKK0341C350CBSMsg.SVC_CHRG_ENDYMD,
					EKK0341C350CBSMsg.SVC_DLRE_CD, EKK0341C350CBSMsg.SVC_DLRE_MEMO, EKK0341C350CBSMsg.ZANCHI_FLG, EKK0341C350CBSMsg.TAKNKIKI_IDO_CD,
					EKK0341C350CBSMsg.KAISHU_KIKI_UM, EKK0341C350CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器提供サービス契約解約確定) */
	private static final String ERROR_COLUMN_30 = null;
	/** SC実行結果取得キー(機器提供サービス契約解約確定) */
	private static final String TEMP_TEMPLATE_KEY_30 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_30 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約情報変更（契約変更中）SC ■□ */
	/** テンプレートID(機器提供サービス契約情報変更（契約変更中）) */
	private static final String TEMPLATE_ID_32 = "EKK0341C231";
	/** テンプレートID(機器提供サービス契約情報変更（契約変更中）明細) */
	private static final String TEMPLATE_ID_32_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約情報変更（契約変更中）) */
	private static final List<String> IN_COLUMN_LIST_32 =
			Arrays.asList(EKK0341C231CBSMsg.KKTK_SVC_KEI_NO, EKK0341C231CBSMsg.GENE_ADD_DTM, EKK0341C231CBSMsg.KKTK_SBT_CD,
					EKK0341C231CBSMsg.HAMBAI_SBT_CD, EKK0341C231CBSMsg.TAKNKIKI_MODEL_CD, EKK0341C231CBSMsg.KIKI_SEIZO_NO,
					EKK0341C231CBSMsg.HDD_CAPA_CD, EKK0341C231CBSMsg.TSUSHIN_KIKI_SET_CD, EKK0341C231CBSMsg.LINK_STB_FLG,
					EKK0341C231CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD, EKK0341C231CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, EKK0341C231CBSMsg.KIKI_SORYO_UM,
					EKK0341C231CBSMsg.KIKI_SOHUS_NM, EKK0341C231CBSMsg.KIKI_SOHUS_KANA, EKK0341C231CBSMsg.KIKI_SOHUS_AD_CD,
					EKK0341C231CBSMsg.KIKI_SOHUS_PCD, EKK0341C231CBSMsg.KIKI_SOHUS_STATE_NM, EKK0341C231CBSMsg.KIKI_SOHUS_CITY_NM,
					EKK0341C231CBSMsg.KIKI_SOHUS_OAZTSU_NM, EKK0341C231CBSMsg.KIKI_SOHUS_AZCHO_NM, EKK0341C231CBSMsg.KIKI_SOHUS_BNCHIGO,
					EKK0341C231CBSMsg.KIKI_SOHUS_ADRTTM, EKK0341C231CBSMsg.KIKI_SOHUS_ADRRM, EKK0341C231CBSMsg.KIKI_SOHUS_TELNO,
					EKK0341C231CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG, EKK0341C231CBSMsg.KIKI_SHS_KBT_SHITEI_FLG, EKK0341C231CBSMsg.AD_MI_FIX_FLG,
					EKK0341C231CBSMsg.HAISO_DIV, EKK0341C231CBSMsg.FTRIAL_KANYU_YMD, EKK0341C231CBSMsg.FTRIAL_PRD_ENDYMD,
					EKK0341C231CBSMsg.HONKANYU_YMD, EKK0341C231CBSMsg.HONKANYU_IKO_KIGEN_YMD, EKK0341C231CBSMsg.HOSHO_CD,
					EKK0341C231CBSMsg.PNLTY_HASSEI_CD, EKK0341C231CBSMsg.IDO_DIV, EKK0341C231CBSMsg.TAKNKIKI_IDO_CD,
					EKK0341C231CBSMsg.CAS_CARD_USE_KYODAK_YMD, EKK0341C231CBSMsg.KIKI_HUKA_INFO_CD, EKK0341C231CBSMsg.HAISO_WAY_CD,
					EKK0341C231CBSMsg.HAISO_REQ_SHITEI_YMD, EKK0341C231CBSMsg.UPD_DTM_BF, EKK0341C231CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG,
					EKK0341C231CBSMsg.KIKI_SOHUS_AD_CHK_LV, EKK0341C231CBSMsg.KIKI_STI_JI_KRIPLACE_SKCD, EKK0341C231CBSMsg.KIKI_STI_JI_KOCOMP_CD,
					EKK0341C231CBSMsg.KIKI_STI_JI_KOCOMP_SLF_CD, EKK0341C231CBSMsg.KIKI_STI_JI_YTKSKOF_CD,
					EKK0341C231CBSMsg.KIKI_STI_JI_YTKSKOF_SLF_CD, EKK0341C231CBSMsg.SHKA_FIN_JI_SYRZM_FLG,
					EKK0341C231CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD);
	/** 関連チェックエラー項目(機器提供サービス契約情報変更（契約変更中）) */
	private static final String ERROR_COLUMN_32 = null;
	/** SC実行結果取得キー(機器提供サービス契約情報変更（契約変更中）) */
	private static final String TEMP_TEMPLATE_KEY_32 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_32 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約機器変更手続開始SC ■□ */
	/** テンプレートID(機器提供サービス契約機器変更手続開始) */
	private static final String TEMPLATE_ID_45 = "EKK0341C530";
	/** テンプレートID(機器提供サービス契約機器変更手続開始明細) */
	private static final String TEMPLATE_ID_45_DETAIL = null;
	/** IN項目リスト(機器提供サービス契約機器変更手続開始) */
	private static final List<String> IN_COLUMN_LIST_45 =
			Arrays.asList(EKK0341C530CBSMsg.KKTK_SVC_KEI_NO, EKK0341C530CBSMsg.MSKM_DTL_NO, EKK0341C530CBSMsg.RSV_APLY_YMD,
					EKK0341C530CBSMsg.RSV_APLY_CD, EKK0341C530CBSMsg.UPD_DTM_BF, EKK0341C530CBSMsg.IDO_DIV);
	/** 関連チェックエラー項目(機器提供サービス契約機器変更手続開始) */
	private static final String ERROR_COLUMN_45 = EKK0341C530CBSMsg.KKTK_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(機器提供サービス契約機器変更手続開始) */
	private static final String TEMP_TEMPLATE_KEY_45 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_45 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器提供サービス契約一覧照会SC ■□ */
	/** テンプレートID(機器提供サービス契約一覧照会) */
	private static final String TEMPLATE_ID_38 = "EKK0341B008";
	/** テンプレートID(機器提供サービス契約一覧照会明細) */
	private static final String TEMPLATE_ID_38_DETAIL = EKK0341B008CBSMsg.EKK0341B008CBSMSG1LIST;
	/** IN項目リスト(機器提供サービス契約一覧照会) */
	private static final List<String> IN_COLUMN_LIST_38 = Arrays.asList(EKK0341B008CBSMsg.KEY_SVC_KEI_NO);
	/** 関連チェックエラー項目(機器提供サービス契約一覧照会) */
	private static final String ERROR_COLUMN_38 = EKK0341B008CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(機器提供サービス契約一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_38 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_38 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 現サービス契約内訳情報一覧照会(電話)SC ■□ */
	/** テンプレートID(現サービス契約内訳情報一覧照会(電話)) */
	private static final String TEMPLATE_ID_39 = "EKK0161B505";
	/** テンプレートID(現サービス契約内訳情報一覧照会(電話)明細) */
	private static final String TEMPLATE_ID_39_DETAIL = EKK0161B505CBSMsg.EKK0161B505CBSMSG1LIST;
	/** IN項目リスト(現サービス契約内訳情報一覧照会(電話)) */
	private static final List<String> IN_COLUMN_LIST_39 = Arrays.asList(EKK0161B505CBSMsg.KEY_SVC_KEI_NO, EKK0161B505CBSMsg.KEY_TELNO);
	/** 関連チェックエラー項目(現サービス契約内訳情報一覧照会(電話)) */
	private static final String ERROR_COLUMN_39 = EKK0161B505CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(現サービス契約内訳情報一覧照会(電話)) */
	private static final String TEMP_TEMPLATE_KEY_39 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_39 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ サービス契約内訳<eo光電話>一意照会SC ■□ */
	/** テンプレートID(サービス契約内訳<eo光電話>一意照会) */
	private static final String TEMPLATE_ID_40 = "EKK0191A010";
	/** テンプレートID(サービス契約内訳<eo光電話>一意照会明細) */
	private static final String TEMPLATE_ID_40_DETAIL = EKK0191A010CBSMsg.EKK0191A010CBSMSG1LIST;
	/** IN項目リスト(サービス契約内訳<eo光電話>一意照会) */
	private static final List<String> IN_COLUMN_LIST_40 = Arrays.asList(EKK0191A010CBSMsg.KEY_SVC_KEI_UCWK_NO, EKK0191A010CBSMsg.KEY_GENE_ADD_DTM);
	/** 関連チェックエラー項目(サービス契約内訳<eo光電話>一意照会) */
	private static final String ERROR_COLUMN_40 = EKK0191A010CBSMsg.KEY_SVC_KEI_UCWK_NO_ERR;
	/** SC実行結果取得キー(サービス契約内訳<eo光電話>一意照会) */
	private static final String TEMP_TEMPLATE_KEY_40 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_40 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ サービス契約内訳<eo光電話>情報変更SC ■□ */
	/** テンプレートID(サービス契約内訳<eo光電話>情報変更) */
	private static final String TEMPLATE_ID_41 = "EKK0191C060";
	/** テンプレートID(サービス契約内訳<eo光電話>情報変更明細) */
	private static final String TEMPLATE_ID_41_DETAIL = null;
	/** IN項目リスト(サービス契約内訳<eo光電話>情報変更) */
	private static final List<String> IN_COLUMN_LIST_41 =
			Arrays.asList(EKK0191C060CBSMsg.SVC_KEI_UCWK_NO, EKK0191C060CBSMsg.MSKM_DTL_NO, EKK0191C060CBSMsg.SVC_UEST_KBTMZ_CD,
					EKK0191C060CBSMsg.SVC_UEST_KBTM_CD, EKK0191C060CBSMsg.PNLTY_HASSEI_CD, EKK0191C060CBSMsg.IDO_DIV, EKK0191C060CBSMsg.TELNO,
					EKK0191C060CBSMsg.TELNO_USE_PLACE_NO, EKK0191C060CBSMsg.EMG_AD_CD, EKK0191C060CBSMsg.EMG_HOSEI_PCD,
					EKK0191C060CBSMsg.EMG_BNCHIGO, EKK0191C060CBSMsg.EMG_ADRTTM, EKK0191C060CBSMsg.EMG_ADRRM, EKK0191C060CBSMsg.EMG_KSH_NM,
					EKK0191C060CBSMsg.EMG_KSH_KANA, EKK0191C060CBSMsg.FIRST_CDR_HASSEI_YMD, EKK0191C060CBSMsg.TELNO_JUN,
					EKK0191C060CBSMsg.NTT_NO_GUIDE_UM, EKK0191C060CBSMsg.HELLOPAGE_KEISAI_UM, EKK0191C060CBSMsg.TUWA_DTL_KOKAI_YH,
					EKK0191C060CBSMsg.TEL_NO_PRE_TCHI_CD, EKK0191C060CBSMsg.TSJGS_CD, EKK0191C060CBSMsg.MAN_SWITCH_RSV_DTM,
					EKK0191C060CBSMsg.TOWNPAGE_KEISAI_KANA, EKK0191C060CBSMsg.TOWNPAGE_KEISAI_NM, EKK0191C060CBSMsg.VA_TAKNKIKI_MODEL_CD,
					EKK0191C060CBSMsg.VA_KIKI_SEIZO_NO, EKK0191C060CBSMsg.VA_PORT_NO, EKK0191C060CBSMsg.UPD_DTM_BF,
					EKK0191C060CBSMsg.RULE0059_AUTO_APLY, EKK0191C060CBSMsg.DOBANITEN_MSKM_UM, EKK0191C060CBSMsg.DOBANITEN_REQ_CTRL_CD,
					EKK0191C060CBSMsg.DOBANITEN_JDG_CD, EKK0191C060CBSMsg.EMG_AD_CHK_LV, EKK0191C060CBSMsg.EMG_KSH_KSITEI_FLG,
					EKK0191C060CBSMsg.EMG_STATE_NM, EKK0191C060CBSMsg.EMG_CITY_NM, EKK0191C060CBSMsg.EMG_OAZTSU_NM, EKK0191C060CBSMsg.EMG_AZCHO_NM,
					EKK0191C060CBSMsg.VA_KIKI_CHG_NO);
	/** 関連チェックエラー項目(サービス契約内訳<eo光電話>情報変更) */
	private static final String ERROR_COLUMN_41 = null;
	/** SC実行結果取得キー(サービス契約内訳<eo光電話>情報変更) */
	private static final String TEMP_TEMPLATE_KEY_41 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_41 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス契約一覧照会(割引サービス指定)SC ファミリーパック契約判定用 ■□ */
	/** 割引サービス契約一覧照会 テンプレートID*/
	private static final String TEMPLATE_ID_WRSV_KEI_TKN = "EKK0451B010";
	/** テンプレートID(割引サービス契約一覧照会明細) */
	private static final String TEMPLATE_ID_WRSV_KEI_DETAIL_TKN = EKK0451B010CBSMsg.EKK0451B010CBSMSG1LIST;
	/** IN項目リスト(割引サービス契約一覧照会) */
	private static final List<String> IN_COLUMN_LIST_WRSV_KEI_TKN =
			Arrays.asList(EKK0451B010CBSMsg.KEY_SVC_KEI_NO, EKK0451B010CBSMsg.KEY_WRIB_SVC_CD);
	/** 関連チェックエラー項目(割引サービス契約一覧照会) */
	private static final String ERROR_COLUMN_WRSV_KEI_TKN = EKK0451B010CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(割引サービス適用条件一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_WRSV_KEI_TKN = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_WRSV_KEI_TKN + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 同一利用場所サービス契約一覧照会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;

	/* ■□ 機器オプションサービス契約一覧照会（フロント）SC ■□ */
	/** テンプレートID(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMPLATE_ID_EKK2811B503 = "EKK2811B503";
	/** テンプレートID(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMPLATE_ID_EKK2811B503_DETAIL = EKK2811B503CBSMsg.EKK2811B503CBSMSG1LIST;
	/** IN項目リスト(機器オプションサービス契約一覧照会（フロント）) */
	private static final List<String> IN_COLUMN_LIST_EKK2811B503 =
			Arrays.asList(EKK2811B503CBSMsg.KEY_SYSID, EKK2811B503CBSMsg.KEY_TAKNKIKI_SBT_CD, EKK2811B503CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO);
	/** 関連チェックエラー項目(機器オプションサービス契約一覧照会（フロント）) */
	private static final String ERROR_COLUMN_EKK2811B503 = EKK2811B503CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(機器オプションサービス契約一覧照会（フロント）) */
	private static final String TEMP_TEMPLATE_KEY_EKK2811B503 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK2811B503 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約一意照会SC ■□ */
	/** テンプレートID(機器オプションサービス契約一意照会) */
	private static final String TEMPLATE_ID_EKK2811A010 = "EKK2811A010";
	/** テンプレートID(機器オプションサービス契約一意照会) */
	private static final String TEMPLATE_ID_EKK2811A010_DETAIL = EKK2811A010CBSMsg.EKK2811A010CBSMSG1LIST;
	/** IN項目リスト(機器オプションサービス契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_EKK2811A010 =
			Arrays.asList(EKK2811A010CBSMsg.KEY_KKOP_SVC_KEI_NO, EKK2811A010CBSMsg.KEY_GENE_ADD_DTM, EKK2811A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(機器オプションサービス契約一意照会) */
	private static final String ERROR_COLUMN_EKK2811A010 = EKK2811A010CBSMsg.KEY_KKOP_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(機器オプションサービス契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK2811A010 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK2811A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 回線対象サービス契約一覧照会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> IN_COLUMN_LIST_EKK0241B002 = Arrays.asList(EKK0241B002CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO);
	/** 関連チェックエラー項目(回線対象サービス契約一覧照会) */
	private static final String ERROR_COLUMN_EKK0241B002 = EKK0241B002CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR;
	/** SC実行結果取得キー(回線対象サービス契約一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK0241B002 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0241B002 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約手続中料金プラン変更SC ■□ */
	/** テンプレートID(機器オプションサービス契約手続中料金プラン変更) */
	private static final String TEMPLATE_ID_42 = "EKK2811C240";
	/** テンプレートID(機器オプションサービス契約手続中料金プラン変更) */
	private static final String TEMPLATE_ID_42_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約手続中料金プラン変更) */
	private static final List<String> IN_COLUMN_LIST_42 =
			Arrays.asList(EKK2811C240CBSMsg.KKOP_SVC_KEI_NO, EKK2811C240CBSMsg.GENE_ADD_DTM, EKK2811C240CBSMsg.PCRS_CD, EKK2811C240CBSMsg.PPLAN_CD,
					EKK2811C240CBSMsg.MSKM_DTL_NO, EKK2811C240CBSMsg.PNLTY_HASSEI_CD, EKK2811C240CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約手続中料金プラン変更) */
	private static final String ERROR_COLUMN_42 = null;
	/** SC実行結果取得キー(機器オプションサービス契約手続中料金プラン変更) */
	private static final String TEMP_TEMPLATE_KEY_42 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_42 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 現機器提供サービス契約一覧照会SC ■□ */
	/** テンプレートID(現機器提供サービス契約一覧照会) */
	private static final String TEMPLATE_ID_43 = "EKK0341B502";
	/** テンプレートID(現機器提供サービス契約一覧照会明細) */
	private static final String TEMPLATE_ID_43_DETAIL = EKK0341B502CBSMsg.EKK0341B502CBSMSG1LIST;
	/** IN項目リスト(現機器提供サービス契約一覧照会) */
	private static final List<String> IN_COLUMN_LIST_43 =
			Arrays.asList(EKK0341B502CBSMsg.KEY_SVC_KEI_NO, EKK0341B502CBSMsg.KEY_SVC_KEI_NO_KAISEN_UCWK);
	/** 関連チェックエラー項目(現機器提供サービス契約一覧照会) */
	private static final String ERROR_COLUMN_43 = EKK0341B502CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(現機器提供サービス契約一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_43 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_43 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 契約機器配送対象物品一覧照会SC ■□ */
	/** テンプレートID(契約機器配送対象物品一覧照会) */
	private static final String TEMPLATE_ID_44 = "EDK0011B090";
	/** テンプレートID(契約機器配送対象物品一覧照会明細) */
	private static final String TEMPLATE_ID_44_DETAIL = EDK0011B090CBSMsg.EDK0011B090CBSMSG1LIST;
	/** IN項目リスト(契約機器配送対象物品一覧照会) */
	private static final List<String> IN_COLUMN_LIST_44 =
			Arrays.asList(EDK0011B090CBSMsg.KEY_HAISO_NO, EDK0011B090CBSMsg.KEY_HAISO_TAIBPIN_NO, EDK0011B090CBSMsg.KEY_KKTK_SVC_KEI_NO);
	/** 関連チェックエラー項目(契約機器配送対象物品一覧照会) */
	private static final String ERROR_COLUMN_44 = EDK0011B090CBSMsg.KEY_HAISO_NO_ERR;
	/** SC実行結果取得キー(契約機器配送対象物品一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_44 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_44 + TEMP_TEMPLATE_PRIFIX_SEP;

	/*--------------------- 固定IPアドレス払出処理 ---------------------*/

	/** IN項目:ISP認証IDリスト */
	protected static final String IN_PARAM_ISP_NINSHO_ID_LIST = "isp_ninsho_id_list";
	/** IN項目:ISP認証ID */
	protected static final String IN_PARAM_ISP_NINSHO_ID = "isp_ninsho_id";
	/** IN項目:起点変電所コード */
	protected static final String IN_PARAM_KITEN_HDSHO_CD = "kiten_hdsho_cd";
	/** IN項目:集約局コード */
	protected static final String IN_PARAM_SHYAKK_CD = "shyakk_cd";
	/** IN項目:マンション物件番号 */
	protected static final String IN_PARAM_MANSION_BUKKEN_NO = "mansion_bukken_no";
	/** IN項目:回線コード */
	protected static final String IN_PARAM_KAISEN_CD = "kaisen_cd";
	/** IN項目:ネットの料金コース（変更後） */
	protected static final String IN_PARAM_NET_PCRS_CD = "net_pcrs_cd";

	/** OUT項目:固定IPアドレスリスト */
	protected static final String OUT_PARAM_FIXEDIPAD_LIST = "fixedipad_list";
	/** OUT項目:固定IPアドレス */
	protected static final String OUT_PARAM_FIXEDIPAD = "kotei_ip_ad";
	/** OUT項目:ネットマスク */
	protected static final String OUT_PARAM_NETMASK = "netmask";
	// OM-2016-0000890 ADD START
	/** OUT項目:置換文字フラグ */
	protected static final String OUT_PARAM_CKAMMOJIFLG = "ckam_moji_flg";
	// OM-2016-0000890 ADD END

	/** 認証ID区切り文字*/
	private static final String SEP_NINSHO_ID = "@";
	/** VR識別(ホーム200M) */
	private static final String VR_HOME_200M = "@HFA";
	/** VR識別(ホーム1G) */
	private static final String VR_HOME_1G = "@HF1G";
	/** VR識別(ホーム10G) */
	private static final String VR_HOME_10G = "@HF10G";
	/** VR識別(ｅｏ電話（ＯＦ向け）用) */
	private static final String VR_TEL_OF1G = "@OF1G";

	/* ■□ 集約局一意照会SC ■□ */
	/** テンプレートID(集約局一意照会) */
	private static final String TEMPLATE_ID_21 = "EZM0341A010";
	/** テンプレートID(集約局一意照会明細) */
	private static final String TEMPLATE_ID_21_DETAIL = EZM0341A010CBSMsg.EZM0341A010CBSMSG1LIST;
	/** IN項目リスト(集約局一意照会) */
	private static final List<String> IN_COLUMN_LIST_21 = Arrays.asList(EZM0341A010CBSMsg.KEY_SHYAKK_CD);
	/** 関連チェックエラー項目(集約局一意照会) */
	private static final String ERROR_COLUMN_21 = EZM0341A010CBSMsg.KEY_SHYAKK_CD_ERR;
	/** SC実行結果取得キー(集約局一意照会) */
	private static final String TEMP_TEMPLATE_KEY_21 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_21 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 起点変電所一意照会SC ■□ */
	/** テンプレートID(起点変電所一意照会) */
	private static final String TEMPLATE_ID_22 = "EZM0331A010";
	/** テンプレートID(起点変電所一意照会明細) */
	private static final String TEMPLATE_ID_22_DETAIL = EZM0331A010CBSMsg.EZM0331A010CBSMSG1LIST;
	/** IN項目リスト(起点変電所一意照会) */
	private static final List<String> IN_COLUMN_LIST_22 = Arrays.asList(EZM0331A010CBSMsg.KEY_KITEN_HDSHO_CD);
	/** 関連チェックエラー項目(起点変電所一意照会) */
	private static final String ERROR_COLUMN_22 = EZM0331A010CBSMsg.KEY_KITEN_HDSHO_CD_ERR;
	/** SC実行結果取得キー(起点変電所一意照会) */
	private static final String TEMP_TEMPLATE_KEY_22 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_22 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 固定IPアドレス一覧照会(最小値)SC ■□ */
	/** テンプレートID(固定IPアドレス一覧照会(最小値)) */
	private static final String TEMPLATE_ID_23 = "EZM0101B020";
	/** テンプレートID(固定IPアドレス一覧照会(最小値)明細) */
	private static final String TEMPLATE_ID_23_DETAIL = EZM0101B020CBSMsg.EZM0101B020CBSMSG1LIST;
	/** IN項目リスト(固定IPアドレス一覧照会(最小値)) */
	private static final List<String> IN_COLUMN_LIST_23 =
			Arrays.asList(EZM0101B020CBSMsg.KEY_KOTEI_IP_STKU_SBT_CD, EZM0101B020CBSMsg.KEY_SHYAKK_CHUSKK_CD);
	/** 関連チェックエラー項目(固定IPアドレス一覧照会(最小値)) */
	private static final String ERROR_COLUMN_23 = EZM0101B020CBSMsg.KEY_KOTEI_IP_STKU_SBT_CD_ERR;
	/** SC実行結果取得キー(固定IPアドレス一覧照会(最小値)) */
	private static final String TEMP_TEMPLATE_KEY_23 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_23 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 固定IPアドレス変更SC ■□ */
	/** テンプレートID(固定IPアドレス変更) */
	private static final String TEMPLATE_ID_25 = "EZM0101C010";
	/** テンプレートID(固定IPアドレス変更明細) */
	private static final String TEMPLATE_ID_25_DETAIL = null;
	/** IN項目リスト(固定IPアドレス変更) */
	private static final List<String> IN_COLUMN_LIST_25 =
			Arrays.asList(EZM0101C010CBSMsg.KOTEI_IP_AD, EZM0101C010CBSMsg.SHYAKK_CHUSKK_CD, EZM0101C010CBSMsg.KOTEI_IP_AD_TSTAYMD,
					EZM0101C010CBSMsg.KOTEI_IP_AD_TENDYMD, EZM0101C010CBSMsg.USE_CNT, EZM0101C010CBSMsg.KOTEI_IP_STKU_SBT_CD,
					EZM0101C010CBSMsg.LAST_UPD_DTM_BF);
	/** 関連チェックエラー項目(固定IPアドレス変更) */
	private static final String ERROR_COLUMN_25 = null;

	/* ■□ 機器オプションサービス契約料金プラン変更SC ■□ */
	/** テンプレートID(機器オプションサービス契約情報変更) */
	private static final String TEMPLATE_ID_EKK2811C290 = "EKK2811C290";
	/** テンプレートID(機器オプションサービス契約情報変更) */
	private static final String TEMPLATE_ID_EKK2811C290_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約情報変更) */
	private static final List<String> IN_COLUMN_LIST_EKK2811C290 =
			Arrays.asList(EKK2811C290CBSMsg.KKOP_SVC_KEI_NO, EKK2811C290CBSMsg.MSKM_DTL_NO, EKK2811C290CBSMsg.FTRIAL_KANYU_YMD,
					EKK2811C290CBSMsg.FTRIAL_PRD_ENDYMD, EKK2811C290CBSMsg.HONKANYU_YMD, EKK2811C290CBSMsg.HONKANYU_IKO_KIGEN_YMD,
					EKK2811C290CBSMsg.PNLTY_HASSEI_CD, EKK2811C290CBSMsg.IDO_DIV, EKK2811C290CBSMsg.KIKI_RNTAI_KEI_CHGECHU_FLG,
					EKK2811C290CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約情報変更) */
	private static final String ERROR_COLUMN_EKK2811C290 = null;
	/** SC実行結果取得キー(機器オプションサービス契約情報変更) */
	private static final String TEMP_TEMPLATE_KEY_EKK2811C290 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK2811C290 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約解約SC ■□ */
	/** テンプレートID(機器オプションサービス契約解約) */
	private static final String TEMPLATE_ID_EKK2811C140 = "EKK2811C140";
	/** テンプレートID(機器オプションサービス契約解約) */
	private static final String TEMPLATE_ID_EKK2811C140_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約解約) */
	private static final List<String> IN_COLUMN_LIST_EKK2811C140 =
			Arrays.asList(EKK2811C140CBSMsg.KKOP_SVC_KEI_NO, EKK2811C140CBSMsg.MSKM_DTL_NO, EKK2811C140CBSMsg.MSKM_DTL_NO,
					EKK2811C140CBSMsg.RSV_TSTA_KIBO_YMD, EKK2811C140CBSMsg.SVC_ENDYMD, EKK2811C140CBSMsg.SVC_CHRG_ENDYMD,
					EKK2811C140CBSMsg.SVC_DLRE_CD, EKK2811C140CBSMsg.SVC_DLRE_MEMO, EKK2811C140CBSMsg.PNLTY_HASSEI_CD, EKK2811C140CBSMsg.IDO_DIV,
					EKK2811C140CBSMsg.SVC_KEI_NO, EKK2811C140CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約解約) */
	private static final String ERROR_COLUMN_EKK2811C140 = null;
	/** SC実行結果取得キー(機器オプションサービス契約解約) */
	private static final String TEMP_TEMPLATE_KEY_EKK2811C140 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK2811C140 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約解約確定SC ■□ */
	/** テンプレートID(機器オプションサービス契約解約確定) */
	private static final String TEMPLATE_ID_EKK2811C150 = "EKK2811C150";
	/** テンプレートID(機器オプションサービス契約解約確定) */
	private static final String TEMPLATE_ID_EKK2811C150_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約解約確定) */
	private static final List<String> IN_COLUMN_LIST_EKK2811C150 =
			Arrays.asList(EKK2811C150CBSMsg.KKOP_SVC_KEI_NO, EKK2811C150CBSMsg.MSKM_DTL_NO, EKK2811C150CBSMsg.MSKM_DTL_NO,
					EKK2811C150CBSMsg.SVC_ENDYMD, EKK2811C150CBSMsg.SVC_CHRG_ENDYMD,
					EKK2811C150CBSMsg.SVC_DLRE_CD, EKK2811C150CBSMsg.SVC_DLRE_MEMO, EKK2811C150CBSMsg.IDO_DIV, 
					EKK2811C150CBSMsg.DSL_JI_CHRG, EKK2811C150CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約解約確定) */
	private static final String ERROR_COLUMN_EKK2811C150 = null;
	/** SC実行結果取得キー(機器オプションサービス契約解約確定) */
	private static final String TEMP_TEMPLATE_KEY_EKK2811C150 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK2811C150 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 機器オプションサービス契約キャンセルSC ■□ */
	/** テンプレートID(機器オプションサービス契約キャンセル) */
	private static final String TEMPLATE_ID_EKK2811C110 = "EKK2811C110";
	/** テンプレートID(機器オプションサービス契約キャンセル) */
	private static final String TEMPLATE_ID_EKK2811C110_DETAIL = null;
	/** IN項目リスト(機器オプションサービス契約キャンセル) */
	private static final List<String> IN_COLUMN_LIST_EKK2811C110 =
			Arrays.asList(EKK2811C110CBSMsg.KKOP_SVC_KEI_NO, EKK2811C110CBSMsg.MSKM_DTL_NO, EKK2811C110CBSMsg.SVC_CANCEL_RSN_CD, EKK2811C110CBSMsg.IDO_DIV, EKK2811C110CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(機器オプションサービス契約キャンセル) */
	private static final String ERROR_COLUMN_EKK2811C110 = null;
	/** SC実行結果取得キー(機器オプションサービス契約キャンセル) */
	private static final String TEMP_TEMPLATE_KEY_EKK2811C110 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK2811C110 + TEMP_TEMPLATE_PRIFIX_SEP;

	/*---------------------キャンペーン文言取得、キャンペーン割引登録処理 ---------------------*/
	/** IN項目:サービス契約番号 */
	protected static final String IN_PARAM_CMP_KEY_SVC_KEI_NO = "key_svc_kei_no_cmp";
	/** IN項目:ＫＥＹ＿料金グループコード */
	protected static final String IN_PARAM_CMP_KEY_PRC_GRP_CD = "key_prc_grp_cd_cmp";
	/** IN項目:ＫＥＹ＿料金コースコード */
	protected static final String IN_PARAM_CMP_KEY_PCRS_CD = "key_pcrs_cd_cmp";
	/** IN項目:ＫＥＹ＿料金プランコード */
	protected static final String IN_PARAM_CMP_KEY_PPLAN_CD = "key_pplan_cd_cmp";
	/** IN項目: ＫＥＹ＿割引サービス適用条件種別コード */
	protected static final String IN_PARAM_CMP_KEY_WRSV_SBT_LIST = "key_wrsv_aply_jkn_sbt_cd_list_cmp";
	/** IN項目: ＫＥＹ＿割引サービス適用条件種別コード */
	protected static final String IN_PARAM_CMP_KEY_WRSV_SBT_CD = "key_wrsv_aply_jkn_sbt_cd_cmp";
	/** IN項目: ＫＥＹ＿キャンペーン文言種別コードリスト */
	protected static final String IN_PARAM_CMP_KEY_MG_SBT_LIST = "key_cmp_mongon_sbt_cd_list_cmp";
	/** IN項目: ＫＥＹ＿キャンペーン文言種別コード */
	protected static final String IN_PARAM_CMP_KEY_CMP_MG_SBT_CD = "key_cmp_mongon_sbt_cd_cmp";
	/** IN項目: 処理区分 */
	protected static final String IN_PARAM_CMP_KEY_PROC_DIV = "proc_div_cmp";
	/** IN項目: SYSID */
	protected static final String IN_PARAM_CMP_KEY_SYSID = "sysid_cmp";
	/** IN項目: 申込明細番号 */
	protected static final String IN_PARAM_CMP_MSKM_DTL_NO = "mskm_dtl_no_cmp";
	/** IN項目: 更新年月日時分秒(更新前) */
	protected static final String IN_PARAM_CMP_KEY_UPD_DTM_BF = "upd_dtm_bf_cmp";
	/** IN項目：登録後料金コースコード */
	protected static final String IN_PARAM_CMP_PCRS_CD = "pcrs_cd_cmp";
	/** IN項目：登録後料金プランコード */
	protected static final String IN_PARAM_CMP_PPLAN_CD = "pplan_cd_cmp";
	/** IN項目：異動区分 */
	protected static final String IN_PARAM_CMP_IDO_DIV = "ido_div_cmp";
	/** IN項目：ＢＳパススルーの申し込みフラグ */
	protected static final String IN_PARAM_CMP_BSPT_MSKM_FLG = "bspt_mskm_flg";

	/** OUT項目: キャンペーン文言一覧照会明細 */
	private static final String OUT_PARAM_CMP_MONGON_LIST = "cmp_mongon_list";
	/** OUT項目: キャンペーン文言 */
	private static final String OUT_PARAM_COMP_MONGON = "cmp_mongon";
	/** OUT項目: キャンペーン文言種別コード */
	private static final String OUT_PARAM_COMP_MONGON_SBT_CD = "cmp_mongon_sbt_cd";
	/** OUT項目: 料金コースコード */
	private static final String OUT_PARAM_PCRS_CD = "chge_af_pcrs_cd";
	/** OUT項目: 料金プランコード */
	private static final String OUT_PARAM_PPLAN_CD = "chge_af_pplan_cd";
	/** OUT項目：割引サービスコード */
	private static final String OUT_PARAM_WRSV_APLY_JKN_SBT_CD = "wrsv_aply_jkn_sbt_cd";

	/** 登録処理区分 */
	private static final String PROC_DIV_REG = "01";
	/** ＢＳパススルー申し込みフラグ */
	private static final String BSPT_MSKM_FLG = "1";

	/* ■□ 割引サービス適用条件一覧照会SC ■□ */
	/** 割引サービス適用条件一覧照会 テンプレートID*/
	private static final String TEMPLATE_ID_WRSV = "EKK2311B507";
	/** テンプレートID(割引サービス適用条件一覧照会明細) */
	private static final String TEMPLATE_ID_WRSV_DETAIL = EKK2311B507CBSMsg.EKK2311B507CBSMSG1LIST;
	/** IN項目リスト(割引サービス適用条件一覧照会) */
	private static final List<String> IN_COLUMN_LIST_WRSV =
			Arrays.asList(EKK2311B507CBSMsg.KEY_SVC_KEI_NO, EKK2311B507CBSMsg.KEY_PCRS_CD, EKK2311B507CBSMsg.KEY_PPLAN_CD,
					EKK2311B507CBSMsg.KEY_WRSV_APLY_JKN_SBT_CD);
	/** 関連チェックエラー項目(割引サービス適用条件一覧照会) */
	private static final String ERROR_COLUMN_WRSV = EKK2311B507CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(割引サービス適用条件一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_WRSV = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_WRSV + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス契約一覧照会(割引サービス指定)SC ■□ */
	/** 割引サービス契約一覧照会 テンプレートID*/
	private static final String TEMPLATE_ID_WRSV_KEI = "EKK0451B010";
	/** テンプレートID(割引サービス契約一覧照会明細) */
	private static final String TEMPLATE_ID_WRSV_KEI_DETAIL = EKK0451B010CBSMsg.EKK0451B010CBSMSG1LIST;
	/** IN項目リスト(割引サービス契約一覧照会) */
	private static final List<String> IN_COLUMN_LIST_WRSV_KEI = Arrays.asList(EKK0451B010CBSMsg.KEY_SVC_KEI_NO, EKK0451B010CBSMsg.KEY_WRIB_SVC_CD);
	/** 関連チェックエラー項目(割引サービス契約一覧照会) */
	private static final String ERROR_COLUMN_WRSV_KEI = EKK0451B010CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(割引サービス適用条件一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_WRSV_KEI = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_WRSV_KEI + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ キャンペーン文言一覧照会SC ■□ */
	/** キャンペーン文言一覧照会 テンプレートID*/
	private static final String TEMPLATE_ID_CMP = "EKK2251B501";
	/** テンプレートID(キャンペーン文言一覧照会明細) */
	private static final String TEMPLATE_ID_CMP_DETAIL = EKK2251B501CBSMsg.EKK2251B501CBSMSG1LIST;
	/** IN項目リスト(キャンペーン文言一覧照会) */
	private static final List<String> IN_COLUMN_LIST_CMP = Arrays.asList(EKK2251B501CBSMsg.KEY_WRIB_SVC_CD, EKK2251B501CBSMsg.KEY_CMP_MONGON_SBT_CD);
	/** 関連チェックエラー項目(工事費判定) */
	private static final String ERROR_COLUMN_CMP = EKK2251B501CBSMsg.KEY_WRIB_SVC_CD_ERR;
	/** SC実行結果取得キー(割引サービス適用条件一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_CMP = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_CMP + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス対象サービス一覧照会SC ■□ */
	/** テンプレートID(割引サービス対象サービス一覧照会) */
	private static final String TEMPLATE_ID_WRSV_SVC = "EKK0851B001";
	/** テンプレートID(割引サービス対象サービス一覧照会明細) */
	private static final String TEMPLATE_ID_WRSV_SVC_DETAIL = EKK0851B001CBSMsg.EKK0851B001CBSMSG1LIST;
	/** IN項目リスト(割引サービス対象サービス一覧照会) */
	private static final List<String> IN_COLUMN_LIST_WRSV_SVC =
			Arrays.asList(EKK0851B001CBSMsg.KEY_WRIB_SVC_CD, EKK0851B001CBSMsg.KEY_PRC_GRP_CD, EKK0851B001CBSMsg.KEY_PCRS_CD,
					EKK0851B001CBSMsg.KEY_PPLAN_CD, EKK0851B001CBSMsg.KEY_KJNYMD, EKK0851B001CBSMsg.MAX_SEARCH_NUM);
	/** 関連チェックエラー項目(割引サービス対象サービス一覧照会) */
	private static final String ERROR_COLUMN_WRSV_SVC = EKK0851B001CBSMsg.KEY_WRIB_SVC_CD_ERR;
	/** SC実行結果取得キー(割引サービス対象サービス一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_WRSV_SVC = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_WRSV_SVC + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス契約登録SC ■□ */
	/** テンプレートID(割引サービス契約登録) */
	private static final String TEMPLATE_ID_WRSV_REG = "EKK0451D010";
	/** テンプレートID(割引サービス契約登録明細) */
	private static final String TEMPLATE_ID_WRSV_REG_DETAIL = EKK0451D010CBSMsg.EKK0451D010CBSMSG1LIST;
	/** IN項目リスト(割引サービス契約登録) */
	private static final List<String> IN_COLUMN_LIST_WRSV_REG =
			Arrays.asList(EKK0451D010CBSMsg.SYSID, EKK0451D010CBSMsg.WRIB_SVC_CD, EKK0451D010CBSMsg.PCRS_CD, EKK0451D010CBSMsg.PPLAN_CD,
					EKK0451D010CBSMsg.SVC_USE_STA_KIBO_YMD, EKK0451D010CBSMsg.RSV_TSTA_KIBO_YMD, EKK0451D010CBSMsg.MSKM_DTL_NO,
					EKK0451D010CBSMsg.APLY_JUN, EKK0451D010CBSMsg.PNLTY_HASSEI_CD, EKK0451D010CBSMsg.IDO_DIV, EKK0451D010CBSMsg.MSKM_KISAN_YMD,
					EKK0451D010CBSMsg.WRIB_ADD_OPTY_CD, EKK0451D010CBSMsg.UPD_DTM_BF);
	/** IN項目リスト(割引サービス契約登録・明細部) */
	private static final List<String> IN_COLUMN_LIST_WRSV_REG_DETAIL =
			Arrays.asList(EKK0451D010CBSMsg1List.TG_KEI_SKBT_CD, EKK0451D010CBSMsg1List.SVC_KEI_NO, EKK0451D010CBSMsg1List.SVC_KEI_UCWK_NO,
					EKK0451D010CBSMsg1List.OP_SVC_KEI_NO, EKK0451D010CBSMsg1List.SBOP_SVC_KEI_NO, EKK0451D010CBSMsg1List.KKTK_SVC_KEI_NO,
					EKK0451D010CBSMsg1List.WRIB_SVC_TRGT_SVC_CD, EKK0451D010CBSMsg1List.SET_ADD_YMD, EKK0451D010CBSMsg1List.WRISVC_TG_KEI_TSTAYMD,
					EKK0451D010CBSMsg1List.WRISVC_TG_KEI_TENDYMD);
	/** SC実行結果取得キー(割引サービス対象サービス一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_WRSV_REG = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_WRSV_REG + TEMP_TEMPLATE_PRIFIX_SEP;

	/** 関連チェックエラー項目(割引サービス契約登録) */
	private static final String ERROR_COLUMN_WRSV_REG = null;

	/* ■□ サービス契約内訳一覧照会（eo光テレビ情報取得）SC ■□ */
	/** サービス契約内訳一覧照会（eo光テレビ情報取得） テンプレートID*/
	private static final String TEMPLATE_ID_31 = "EKK0161B509";
	/** テンプレートID(サービス契約内訳一覧照会（eo光テレビ情報取得）明細) */
	private static final String TEMPLATE_ID_31_DETAIL = EKK0161B509CBSMsg.EKK0161B509CBSMSG1LIST;
	/** IN項目リスト(サービス契約内訳一覧照会（eo光テレビ情報取得）) */
	private static final List<String> IN_COLUMN_LIST_31 = Arrays.asList(EKK0161B509CBSMsg.KEY_SVC_KEI_NO);
	/** 関連チェックエラー項目(サービス契約内訳一覧照会（eo光テレビ情報取得）) */
	private static final String ERROR_COLUMN_31 = EKK0161B509CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(サービス契約内訳一覧照会（eo光テレビ情報取得）) */
	private static final String TEMP_TEMPLATE_KEY_31 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_31 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス一意照会SC ■□ */
	/** 割引サービス一意照会 テンプレートID*/
	private static final String TEMPLATE_ID_33 = "EKK0841A010";
	/** テンプレートID(割引サービス一意照会明細) */
	private static final String TEMPLATE_ID_33_DETAIL = EKK0841A010CBSMsg.EKK0841A010CBSMSG1LIST;
	/** IN項目リスト(割引サービス一意照会) */
	private static final List<String> IN_COLUMN_LIST_33 =
			Arrays.asList(EKK0841A010CBSMsg.KEY_WRIB_SVC_CD, EKK0841A010CBSMsg.KEY_GENE_ADD_DTM, EKK0841A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(割引サービス一意照会) */
	private static final String ERROR_COLUMN_33 = EKK0841A010CBSMsg.KEY_WRIB_SVC_CD_ERR;
	/** SC実行結果取得キー(割引サービス一意照会) */
	private static final String TEMP_TEMPLATE_KEY_33 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_33 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 業務パラメータ管理一意照会SC ■□ */
	/** 業務パラメータ管理一意照会 テンプレートID*/
	private static final String TEMPLATE_ID_34 = "EZM0321A010";
	/** テンプレートID(業務パラメータ管理一意照会明細) */
	private static final String TEMPLATE_ID_34_DETAIL = EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST;
	/** IN項目リスト(業務パラメータ管理一意照会) */
	private static final List<String> IN_COLUMN_LIST_34 = Arrays.asList(EZM0321A010CBSMsg.KEY_WORK_PARAM_ID);
	/** 関連チェックエラー項目(業務パラメータ管理一意照会) */
	private static final String ERROR_COLUMN_34 = EZM0321A010CBSMsg.KEY_WORK_PARAM_ID_ERR;
	/** SC実行結果取得キー(業務パラメータ管理一意照会) */
	private static final String TEMP_TEMPLATE_KEY_34 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_34 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス契約一意照会SC ■□ */
	/** 割引サービス契約一意照会 テンプレートID*/
	private static final String TEMPLATE_ID_35 = "EKK0451A010";
	/** テンプレートID(割引サービス契約一意照会明細) */
	private static final String TEMPLATE_ID_35_DETAIL = EKK0451A010CBSMsg.EKK0451A010CBSMSG1LIST;
	/** IN項目リスト(割引サービス契約一意照会) */
	private static final List<String> IN_COLUMN_LIST_35 =
			Arrays.asList(EKK0451A010CBSMsg.KEY_WRIB_SVC_KEI_NO, EKK0451A010CBSMsg.KEY_GENE_ADD_DTM, EKK0451A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(割引サービス契約一意照会) */
	private static final String ERROR_COLUMN_35 = EKK0451A010CBSMsg.KEY_WRIB_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(割引サービス契約一意照会) */
	private static final String TEMP_TEMPLATE_KEY_35 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_35 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 割引サービス契約一覧照会（サービス契約番号））SC ■□ */
	/** 割引サービス契約一覧照会（サービス契約番号）） テンプレートID*/
	private static final String TEMPLATE_ID_37 = "EKK0451B002";
	/** テンプレートID(割引サービス契約一覧照会（サービス契約番号））明細) */
	private static final String TEMPLATE_ID_37_DETAIL = EKK0451B002CBSMsg.EKK0451B002CBSMSG1LIST;
	/** IN項目リスト(割引サービス契約一覧照会（サービス契約番号））) */
	private static final List<String> IN_COLUMN_LIST_37 = Arrays.asList(EKK0451B002CBSMsg.KEY_SVC_KEI_NO);
	/** 関連チェックエラー項目(割引サービス契約一覧照会（サービス契約番号））) */
	private static final String ERROR_COLUMN_37 = EKK0451B002CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(割引サービス契約一覧照会（サービス契約番号））) */
	private static final String TEMP_TEMPLATE_KEY_37 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_37 + TEMP_TEMPLATE_PRIFIX_SEP;

	/*---------------------フロント配送受付在庫更新登録処理 ---------------------*/

	/* ■□ フロント配送受付在庫更新登録SC ■□ */
	/** フロント配送受付在庫更新登録 テンプレートID*/
	private static final String TEMPLATE_ID_36 = "EFU0321D010";
	/** テンプレートID(フロント配送受付在庫更新登録明細) */
	private static final String TEMPLATE_ID_36_DETAIL = null;
	/** IN項目リスト(フロント配送受付在庫更新登録) */
	private static final List<String> IN_COLUMN_LIST_36 =
			Arrays.asList(EFU0321D010CBSMsg.KKTK_SVC_KEI_NO, EFU0321D010CBSMsg.KIKI_CHG_NO, EFU0321D010CBSMsg.ZAIKO_CFM_ZM_FLG,
					EFU0321D010CBSMsg.ZAIKO_CFM_DTM, EFU0321D010CBSMsg.HISUK_ZKUP_RSLT_CD, EFU0321D010CBSMsg.HISUK_ZKUP_RSLT_DTL_CD,
					EFU0321D010CBSMsg.ZKUP_FAIL_LIST_OPUTZM_FLG, EFU0321D010CBSMsg.ZKUP_FAIL_LIST_OPUT_YMD, EFU0321D010CBSMsg.HISUK_ZKUP_SBT_CD);
	/** 関連チェックエラー項目(フロント配送受付在庫更新登録) */
	private static final String ERROR_COLUMN_36 = null;

	/*---------------------メール送信登録共通処理 ---------------------*/

	/* ■□ メール送信情報登録SC ■□ */
	/** テンプレートID(メール送信情報登録) */
	private static final String TEMPLATE_ID_ML = "ECC0021D010";
	/** テンプレートID(メール送信情報登録明細リスト) */
	private static final List<String> TEMPLATE_ID_ML_DETAIL_LIST =
			Arrays.asList(ECC0021D010CBSMsg.ECC0021D010CBSMSG1LIST, ECC0021D010CBSMsg.ECC0021D010CBSMSG2LIST,
					ECC0021D010CBSMsg.ECC0021D010CBSMSG3LIST, ECC0021D010CBSMsg.ECC0021D010CBSMSG4LIST, ECC0021D010CBSMsg.ECC0021D010CBSMSG5LIST);
	/** IN項目リスト(メール送信情報登録) */
	private static final List<String> IN_COLUMN_LIST_ML =
			Arrays.asList(ECC0021D010CBSMsg.MAIL_CD, ECC0021D010CBSMsg.MAIL_SEND_RSV_DTM, ECC0021D010CBSMsg.SENDM_MLAD,
					ECC0021D010CBSMsg.SENDM_MLAD_DSP_NM, ECC0021D010CBSMsg.MAIL_SEND_PATTERN_CD);
	/** 関連チェックエラー項目(メール送信情報登録) */
	private static final String ERROR_COLUMN_ML = null;

	/*---------------------IPv6申込・解約共通処理 ---------------------*/

	/** エラーメッセージ(IPv6申込・解約：サービス契約内訳件数不正) */
	private static final String ERR_MSG_IPV6 = "IPv6申込・解約：有効なサービス契約内訳がない、または、複数存在します。";
	/* 新旧認証ID識別：新認証ID */
	protected static final String NISHO_ID_DIV_NEW = "new";
	/* 新旧認証ID識別：旧認証ID */
	protected static final String NISHO_ID_DIV_OLD = "old";

	/* ■□ EKK0161B004_サービス契約内訳一覧照会SC ■□ */
	/** テンプレートID(サービス契約内訳一覧照会) */
	private static final String TEMP_ID_EKK0161B004 = "EKK0161B004";
	/** テンプレートID(サービス契約内訳一覧照会明細) */
	private static final String TEMP_ID_DTL_EKK0161B004 = EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST;
	/** IN項目リスト(サービス契約内訳一覧照会) */
	private static final List<String> IN_COL_LIST_EKK0161B004 =
			Arrays.asList(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, EKK0161B004CBSMsg.KEY_PCRS_CD, EKK0161B004CBSMsg.KEY_SVC_PRD_FLG);
	/** 関連チェック,エラー項目(サービス契約内訳一覧照会) */
	private static final String ERR_COL_EKK0161B004 = EKK0161B004CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(サービス契約内訳一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK0161B004 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0161B004 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 異動予約一覧照会SC ■□ */
	/** テンプレートID(異動予約一覧照会) */
	private static final String TEMPLATE_ID_EKK1681B001 = "EKK1681B001";
	/** テンプレートID(異動予約一覧照会明細) */
	private static final String TEMPLATE_ID_EKK1681B001_DETAIL = EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST;
	/** IN項目リスト(異動予約一覧照会) */
	private static final List<String> IN_COLUMN_LIST_EKK1681B001 =
			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, EKK1681B001CBSMsg.KEY_KKOP_SVC_KEI_NO);
	/** 関連チェックエラー項目(異動予約一覧照会) */
	private static final String ERROR_COLUMN_EKK1681B001 = EKK1681B001CBSMsg.KEY_IDO_DIV_ERR;
	/** SC実行結果取得キー(異動予約一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK1681B001 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK1681B001 + TEMP_TEMPLATE_PRIFIX_SEP;

	// ANK-2765-00-00_認証IDの統一化 start --------------------->
	/* ■□ サービス契約内訳<eo光ネット>一意照会SC ■□ */
	/** サービス契約内訳<eo光ネット>一意照会 テンプレートID*/
	private static final String TEMPLATE_ID_EKK0171A010 = "EKK0171A010";
	/** テンプレートID(サービス契約内訳<eo光ネット>一意照会明細) */
	private static final String TEMPLATE_ID_EKK0171A010_DETAIL = EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST;
	/** IN項目リスト(サービス契約内訳<eo光ネット>一意照会) */
	private static final List<String> IN_COLUMN_LIST_EKK0171A010 =
			Arrays.asList(EKK0171A010CBSMsg.KEY_SVC_KEI_UCWK_NO, EKK0171A010CBSMsg.KEY_GENE_ADD_DTM);
	/** 関連チェックエラー項目(サービス契約内訳<eo光ネット>一意照会) */
	private static final String ERROR_COLUMN_EKK0171A010 = EKK0171A010CBSMsg.KEY_SVC_KEI_UCWK_NO_ERR;
	/** SC実行結果取得キー(サービス契約内訳<eo光ネット>一意照会) */
	private static final String TEMP_TEMPLATE_KEY_EKK0171A010 =
			TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0171A010 + TEMP_TEMPLATE_PRIFIX_SEP + "1";
	// ANK-2765-00-00_認証IDの統一化 end --------------------->

	/* ■□ 連絡先一覧照会SC ■□ */
	/** テンプレートID(連絡先一覧照会) */
	private static final String TEMPLATE_ID_ECK0201B001 = "ECK0201B001";
	/** テンプレートID(連絡先一覧照会明細) */
	private static final String TEMPLATE_ID_ECK0201B001_DETAIL = ECK0201B001CBSMsg.ECK0201B001CBSMSG1LIST;
	/** IN項目リスト(連絡先一覧照会) */
	private static final List<String> IN_COLUMN_LIST_ECK0201B001 = Arrays.asList(ECK0201B001CBSMsg.KEY_SYSID, ECK0201B001CBSMsg.KEY_RRKS_CD, ECK0201B001CBSMsg.KEY_RRK_WAY_CD,
						ECK0201B001CBSMsg.KEY_RRKS_SBT_CD);
	/** 関連チェックエラー項目(連絡先一覧照会) */
	private static final String ERROR_COLUMN_ECK0201B001 = ECK0201B001CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(連絡先一覧照会) */
	private static final String TEMP_TEMPLATE_KEY_ECK0201B001 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_ECK0201B001 + TEMP_TEMPLATE_PRIFIX_SEP + "1";

	/** 5G・10Gルーター機器自動交換共通CC */
	static final String CC_RT_KIKI_ATKN = "JKKRouterKikiAtknCmnCC";

	/**
	 * チェック処理
	 *
	 * <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;
	}

	/**
	 * ルーター自動登録共通処理
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Throwable
	 */
	protected IRequestParameterReadWrite addRouterAuto(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{

		// 機能コード
		String funcCd = getFuncCode(param, fixedText);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// IN項目:申込番号
		String inParamMskmNo = (String)inMap.get(IN_PARAM_MSKM_NO);
		if (null == inParamMskmNo)
		{
			HashMap mskmMap = (HashMap)param.getData(SC_NAME_MSKM);
			if (mskmMap != null)
			{
				inParamMskmNo = (String)mskmMap.get(EKK0011D020CBSMsg.MSKM_NO);
			}
		}

		// IN項目:申込明細番号
		String inParamMskmDetailNo = (String)inMap.get(IN_PARAM_MSKM_DTL_NO);
		if (null == inParamMskmDetailNo)
		{
			HashMap mskmMap = (HashMap)param.getData(SC_NAME_MSKM);
			if (null != mskmMap)
			{
				List mskmList = (ArrayList)mskmMap.get(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
				inParamMskmDetailNo = (String)((HashMap)mskmList.get(0)).get(EKK0011D020CBSMsg1List.MSKM_DTL_NO);
			}
		}

		// IN項目:申込書番号
		String inParamMskmshoNo = (String)inMap.get(IN_PARAM_MSKMSHO_NO);
		// IN項目:異動区分
		String inParamIdoDiv = (String)inMap.get(IN_PARAM_IDO_DIV);
		// IN項目:要求種別コード
		String inParamYokyuSbtCd = (String)inMap.get(IN_PARAM_YOKYU_SBT_CD);
		// IN項目:サービス契約番号
		String inParamKeySvcKeiNo = (String)inMap.get(IN_PARAM_KEY_SVC_KEI_NO);
		// IN項目:OPMS連携済有無
		String inParamOpmsRnkiZmUm = (String)inMap.get(IN_PARAM_OPMS_RNKIZM_UM);
		// IN項目:多機能ルーター交換有無
		String inParamTknRouterChgUm = (String)inMap.get(IN_PARAM_TKN_ROUTER_CHG_UM);
		// IN項目:配送作成要否
		String inParamHaisoYouhi = (String)inMap.get(IN_PARAM_HAISO_SAKUSEI_YOUHI);
		// IN項目:配送ステータス(VA)
		String inParamHaisoStatVa = (String)inMap.get(IN_PARAM_HAISO_STAT_VA);
		// IN項目:新設工事有無
		String inParamShinsetsuKojiUm = (String)inMap.get(IN_PARAM_SHINSETSU_KOJI_UM);
		// IN項目:変更前料金コースコード
		String inParamChgBfPcrsCd = (String)inMap.get(IN_PARAM_CHG_BF_PCRS_CD);

		// ルーター交換処理
		Map<String, String> routerChangeMap = changeRouter(handle, param, fixedText, funcCd);

		// 機能コードが設定されている場合、且つ、機能コードが"2"(チェックのみ)の場合は、登録・更新処理を実行しない。
		if (null != funcCd && JPCModelConstant.FUNC_CD_2.equals(funcCd))
		{
			return param;
		}

		// BBR登録数
		int bbrRegistCnt = Integer.parseInt(routerChangeMap.get(RESULT_BBR_REGIST_CNT));
		// BBR上限数
		int bbrQtyLimit = Integer.parseInt(routerChangeMap.get(RESULT_BBR_QTY_LIMIT));
		// SYSID
		String sysId = routerChangeMap.get(RESULT_SYSID);
		// 請求契約番号
		String seikyKeiNoNet = routerChangeMap.get(RESULT_SEIKYKEINO);
		// コース変更有無
		String crsChgUm = routerChangeMap.get(RESULT_CRS_CHG_UM);
		// ルーター速度種別(プラン変更前)
		String routerSpeedSbtBf = routerChangeMap.get(RESULT_ROUTER_SPEED_SBT_BF);
		// ルーター速度種別(プラン変更後)
		String routerSpeedSbtAf = routerChangeMap.get(RESULT_ROUTER_SPEED_SBT_AF);
		// VA有無
		String vaUm = routerChangeMap.get(RESULT_VA_UM);
		// 送付ふーターの世代登録年月日時分秒
		String sendRouterGeneAddDtm = BLANK;

		// 保有ルーターコード
		String hoyuRouterCdOwn = routerChangeMap.get(RESULT_HOYU_ROUTER_CD);
		if (JFUBPCommon.isNull(hoyuRouterCdOwn))
		{
			hoyuRouterCdOwn = JFUStrConst.CD00002_0;
		}

		// IN項目:機器送付先指定フラグ
		String kikiShsShiteiFlg = (String)inMap.get(IN_PARAM_KIKI_SHS_SHITEI_FLG);
		boolean isKikiShs = null != kikiShsShiteiFlg && !BLANK.equals(kikiShsShiteiFlg) && JFUStrConst.CD00002_1.equals(kikiShsShiteiFlg);

		// 機器送付先指定ありの場合、機器送付先情報を退避
		HashMap kikiShsMap = new HashMap();

		if (isKikiShs)
		{
			copyProperties(kikiShsMap, inMap);
		}

		// ルーター登録数 < BBR上限数、且つ、異動区分がコース変更以外、且つ、多機能ルーター交換有の場合
		// ★★ファミリーパック申込で、ルーター無しの場合のみで実行されるロジック★★
		if (bbrRegistCnt < bbrQtyLimit && !JFUStrConst.CD00576_00009.equals(inParamIdoDiv) && JFUStrConst.CD00002_1.equals(inParamTknRouterChgUm))
		{
			// ●ファミリーパック申込時の出荷機器を取得
			// XMLデータ取得
			HashMap shippingkikiMap = getFamipaShippingKiki(DUMMY_HOYU_ROUTER_CD_00, crsChgUm, routerSpeedSbtBf, routerSpeedSbtAf, BLANK, BLANK);

			// 自動登録可能ルーター存在チェック
			if (shippingkikiMap == null || shippingkikiMap.size() == 0)
			{
				// 自動登録可能ルーター定義なし：システムエラー
				setRelationErrorInfo(param, TEMPLATE_ID_13, ERROR_COLUMN_13, fixedText);
				throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
						.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
			}

			// 交換後機器提供サービスコード
			String chgAfKktkSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(0));
			// 交換後料金コースコード
			String pcrsChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(1));
			// 交換後料金プランコード
			String pplanChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(2));
			// 交換後機器オプションサービスコード
			String chgAfKkopSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(3));
			// 交換後機器オプション料金コースコード
			String pcrsChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(4));
			// 交換後機器オプション料金プランコード
			String pplanChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(5));

			StringBuffer infoSb = new StringBuffer();
			infoSb.append(chgAfKktkSvcCd).append(pcrsChangeTg).append(pplanChangeTg).append(chgAfKkopSvcCd).append(pcrsChangeTgKkop).append(
					pplanChangeTgKkop);

			if (JFUBPCommon.isNull(infoSb.toString()))
			{
				// 出荷機器情報が存在しない場合、以降を処理しない
				return param;
			}

			// BBR登録数からサービス上限数まで繰り返し
			for (int i = bbrRegistCnt; i < bbrQtyLimit; i++)
			{
				// ●サービス契約回線内訳一覧照会（サービス契約番号）
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_16);
				// 上りマッピング
				setInMapKaisenUwSvcKeiSearch(param, fixedText, inParamKeySvcKeiNo);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_16, TEMPLATE_ID_16_DETAIL, IN_COLUMN_LIST_16, ERROR_COLUMN_16);
				HashMap kaisenUwMap = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_16), TEMPLATE_ID_16_DETAIL).get(0);
				String svcKeiKaisenUcwkNo = (String)kaisenUwMap.get(EKK0251B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO);

				// ●サービス契約回線内訳一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_17);
				// 上りマッピング
				setInMapKaisenUwUniqueSearch(param, fixedText, svcKeiKaisenUcwkNo, (String)kaisenUwMap.get(EKK0251B001CBSMsg1List.GENE_ADD_DTM));
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_17, TEMPLATE_ID_17_DETAIL, IN_COLUMN_LIST_17, ERROR_COLUMN_17);
				HashMap kaisenUwUniqueMap = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_17), TEMPLATE_ID_17_DETAIL).get(0);

				// ●お客様一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_18);
				// 上りマッピング
				setInMapCustomerSearch(param, fixedText, sysId);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_18, TEMPLATE_ID_18_DETAIL, IN_COLUMN_LIST_18, ERROR_COLUMN_18);
				HashMap custMap =
						getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_18), TEMPLATE_ID_18_DETAIL, JFUStrConst.I_ZERO);

				// ●機器提供サービス一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_19);
				// 上りマッピング
				setInMapKkTkSvcSearch(param, fixedText);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_19, TEMPLATE_ID_19_DETAIL, IN_COLUMN_LIST_19, ERROR_COLUMN_19);
				// 宅内機器種別コード
				String tknkikiSbtCd =
						getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_19), TEMPLATE_ID_19_DETAIL,
								EKK0771A010CBSMsg1List.TAKNKIKI_SBT_CD, 0);

				// ●引当棚一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_20);
				// 上りマッピング
				setInMapHkAtShelfSearch(param, fixedText);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_20, TEMPLATE_ID_20_DETAIL, IN_COLUMN_LIST_20, ERROR_COLUMN_20);
				// 棚コード
				String shelfCd =
						getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_20), TEMPLATE_ID_20_DETAIL,
								EDK0451A010CBSMsg1List.SHELF_CD, 0);

				// 配送方法コード
				String haisoWayCd = null;

				if (!JFUBPCommon.isNull(inParamOpmsRnkiZmUm))
				{
					// 工事会社配送
					haisoWayCd = JFUStrConst.CD01148_2;
				}
				else
				{
					// お客様宅直送
					haisoWayCd = JFUStrConst.CD01148_1;
				}

				// ●同一利用場所サービス契約一覧照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_EKK0081B011);
				// 上りマッピング
				setInMapGetTelSvcKeiInfo(param, fixedText, sysId, (String)kaisenUwMap.get(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0081B011, TEMPLATE_ID_EKK0081B011_DETAIL, IN_COLUMN_LIST_EKK0081B011,
						ERROR_COLUMN_EKK0081B011);
				// 電話契約のサービス契約番号取得
				String telSvcKeiNo = BLANK;
				String pcrcCdTel = BLANK;
				List<HashMap> svcKeiList =
						getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0081B011), TEMPLATE_ID_EKK0081B011_DETAIL);

				for (HashMap svcKeiMap : svcKeiList)
				{
					String prcGrpCd = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.PRC_GRP_CD);
					String svcKeiStat = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_STAT);

					if (JFUStrConst.CD00133_10.equals(prcGrpCd) && !JFUStrConst.CD00037_910.equals(svcKeiStat)
							&& !JFUStrConst.CD00037_920.equals(svcKeiStat))
					{
						// 料金グループコードが「10」、ステータスが「910,920」以外
						telSvcKeiNo = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_NO);
						// 料金コースコードを設定(番号判定用)
						pcrcCdTel = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.PCRS_CD);
					}
				}

				// ●回線対象サービス契約一覧照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_EKK0241B002);
				// 上りマッピング
				setInMapKaisenTgSvKeiSearch(param, fixedText, svcKeiKaisenUcwkNo);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0241B002, TEMPLATE_ID_EKK0241B002_DETAIL, IN_COLUMN_LIST_EKK0241B002,
						ERROR_COLUMN_EKK0241B002);
				List<HashMap> svcKeiExcList =
						getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0241B002), TEMPLATE_ID_EKK0241B002_DETAIL);

				// 最終更新年月日時分秒リスト
				List<String> lastUpdDtmList = new ArrayList<String>();

				for (HashMap svcKeiExcMap : svcKeiExcList)
				{
					// ●サービス契約一意照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_2);
					// 上りマッピング
					setInMapSvcKeiUniqueSearch(param, fixedText, (String)svcKeiExcMap.get(EKK0241B002CBSMsg1List.SVC_KEI_NO));
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_2, TEMPLATE_ID_2_DETAIL, IN_COLUMN_LIST_2, ERROR_COLUMN_2);
					// 最終更新年月日時分秒
					String lastUpdDtmExc =
							getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_2), TEMPLATE_ID_2_DETAIL,
									EKK0081A010CBSMsg1List.LAST_UPD_DTM, 0);

					lastUpdDtmList.add(lastUpdDtmExc);
				}

				// 降順ソート
				Collections.sort(lastUpdDtmList);
				Collections.reverse(lastUpdDtmList);

				// ネット・TV・電話の最大のタイムスタンプ
				String maxLastUpdDtm = lastUpdDtmList.get(JFUStrConst.I_ZERO);

				// 電話を契約している場合のみ実行
				String seikyKeiNoTel = BLANK;
				// 請求契約番号(電話)機器オプション用
				String seikyKeiNoTelKikiOp = BLANK;

				if (!JFUBPCommon.isNull(telSvcKeiNo))
				{
					// ●課金先一覧照会（請求契約番号/サービス契約番号）※電話契約用
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_4);
					// 上りマッピング
					setInMapKakinsSearch(param, fixedText, telSvcKeiNo);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_4, TEMPLATE_ID_4_DETAIL, IN_COLUMN_LIST_4, ERROR_COLUMN_4);
					// 請求契約番号
					seikyKeiNoTel =
							getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_4), TEMPLATE_ID_4_DETAIL,
									EKK0321B002CBSMsg1List.SEIKY_KEI_NO, 0);
					// 請求契約番号(電話)機器オプション用
					seikyKeiNoTelKikiOp = seikyKeiNoTel;
				}

				// 請求契約番号設定判定
				if (JFUBPCommon.isNull(seikyKeiNoNet))
				{
					// 保有ルーター無し、かつ、VA有り
					seikyKeiNoNet = seikyKeiNoTel;
				}

				// ●機器提供サービス契約登録
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_11);
				// 上りマッピング
				setInMapKktkRegist(param, fixedText, pcrsChangeTg, null, null, sysId, seikyKeiNoNet, inParamMskmDetailNo, kaisenUwUniqueMap,
						maxLastUpdDtm, inParamIdoDiv, tknkikiSbtCd, shelfCd, isKikiShs, kikiShsMap, haisoWayCd, pplanChangeTg, custMap, null);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_11, TEMPLATE_ID_11_DETAIL, IN_COLUMN_LIST_11, ERROR_COLUMN_11);
				// 処理結果取得
				HashMap kktkRegistMap = (HashMap)inMap.get(getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11));

				// 機器提供サービス契約番号
				String kktkSvcKeiNo = (String)kktkRegistMap.get(EKK0341D010CBSMsg.KKTK_SVC_KEI_NO);
				// 機器変更番号
				String kikiChgNo = (String)kktkRegistMap.get(EKK0341D010CBSMsg.KIKI_CHG_NO);
				// 更新年月日時分秒
				String lastUpdDtm = (String)kktkRegistMap.get(EKK0341D010CBSMsg.UPD_DTM);
				// 世代登録年月日時分秒
				sendRouterGeneAddDtm = (String)kktkRegistMap.get(EKK0341D010CBSMsg.GENE_ADD_DTM);

				// ●機器オプションサービス契約登録
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
				// 上りマッピング
				setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, kktkSvcKeiNo, inParamMskmDetailNo, null,
						sysId, inParamIdoDiv, seikyKeiNoNet, lastUpdDtm, null);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD, ERROR_COLUMN_KKOPADD);
				// 機器オプションサービス契約番号(ルーター機能)
				String kkopSvcKeiNoRouter =
						getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
				// 更新年月日時分秒
				String lastUpdDtmKkop = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);

				// ■VA機器保有の場合
				// VA機能登録
				String kkopSvcKeiNoVa = BLANK;
				if (JFUStrConst.CD00002_1.equals(vaUm))
				{
					// 要求種別コードが｢新規｣以外、且つ、(工事会社配送(新設)でOPMS連携前、または、直送で出荷指図前)の場合
					if (!JFUStrConst.CD00317_02.equals(inParamYokyuSbtCd)
							&& ((JFUStrConst.CD00002_0.equals(inParamOpmsRnkiZmUm) && JFUStrConst.CD00002_1.equals(inParamShinsetsuKojiUm)) || JFUStrConst.CD00009_001
									.equals(inParamHaisoStatVa)))
					{
						HashMap svcKeiTelInfoMap =
								getSvcKeiTelInfo(handle, param, fixedText, sysId, (String)kaisenUwUniqueMap
										.get(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO), inParamKeySvcKeiNo);

						// 機器提供サービス契約番号(VA)
						String kktkSvcKeiNoVa = (String)svcKeiTelInfoMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
						// 機器提供サービス契約ステータス(VA)
						String kktkSvcKeiStatVa = (String)svcKeiTelInfoMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT);

						// ●機器提供サービス契約一意照会
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_27);
						// 上りマッピング
						setInMapKktkSvcKeiUqSearchBf(param, fixedText, kktkSvcKeiNoVa);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
						// 変更前の機器情報
						HashMap kikiInfoMapBfVa =
								getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

						// ●機器提供サービス契約情報変更 ※回収機器有無設定
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_28);
						// 上りマッピング
						setInMapKktkSvcKeiInfoChgVa(param, fixedText, kikiInfoMapBfVa, lastUpdDtm, inParamIdoDiv);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_28, TEMPLATE_ID_28_DETAIL, IN_COLUMN_LIST_28, ERROR_COLUMN_28);
						// 更新年月日時分秒
						lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_28), EKK0341C230CBSMsg.UPD_DTM);

						// 受付済、照査済の場合
						if (JFUStrConst.CD00056_010.equals(kktkSvcKeiStatVa) || JFUStrConst.CD00056_020.equals(kktkSvcKeiStatVa))
						{
							// ●機器提供サービス契約キャンセル
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_29);
							// 上りマッピング
							setInMapKktkSvcKeiCancel(param, fixedText, kktkSvcKeiNoVa, inParamMskmDetailNo, inParamIdoDiv, lastUpdDtm);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_29, TEMPLATE_ID_29_DETAIL, IN_COLUMN_LIST_29, ERROR_COLUMN_29);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_29), EKK0341C330CBSMsg.UPD_DTM);
						}
						// 締結済の場合
						else if (JFUStrConst.CD00056_030.equals(kktkSvcKeiStatVa))
						{
							// ●機器提供サービス契約解約
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_10);
							// 上りマッピング
							setInMapKktkSvcKeiDsl(param, fixedText, kktkSvcKeiNoVa, lastUpdDtm, inParamMskmDetailNo, inParamIdoDiv);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_10, TEMPLATE_ID_10_DETAIL, IN_COLUMN_LIST_10, ERROR_COLUMN_10);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_10), EKK0341C340CBSMsg.UPD_DTM);

							// ●機器提供サービス契約解約確定
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_30);
							// 上りマッピング
							setInMapKktkSvcKeiDslFix(param, fixedText, kktkSvcKeiNoVa, lastUpdDtm);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_30, TEMPLATE_ID_30_DETAIL, IN_COLUMN_LIST_30, ERROR_COLUMN_30);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_30), EKK0341C340CBSMsg.UPD_DTM);
						}

						// 電話番号紐付け
						updTelRelation(handle, param, fixedText, telSvcKeiNo, kikiChgNo, lastUpdDtmKkop, inParamIdoDiv, inParamMskmDetailNo);

					}

					// ●機器オプションサービス契約登録
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
					// 上りマッピング
					if (JFUStrConst.CD00134_A31.equals(pcrcCdTel))
					{
						// 1番号
						setInMapKkopAdd(param, fixedText, JFUStrConst.KK2801_KKOP_SVC_CD_G02, JFUStrConst.CD00134_G03, JFUStrConst.CD00565_PG0301,
								kktkSvcKeiNo, inParamMskmDetailNo, JFUStrConst.CD00002_1, sysId, inParamIdoDiv, seikyKeiNoTelKikiOp, lastUpdDtmKkop);
					}
					else if (JFUStrConst.CD00134_A32.equals(pcrcCdTel))
					{
						// 2番号
						setInMapKkopAdd(param, fixedText, JFUStrConst.KK2801_KKOP_SVC_CD_G02, JFUStrConst.CD00134_G04, JFUStrConst.CD00565_PG0401,
								kktkSvcKeiNo, inParamMskmDetailNo, JFUStrConst.CD00002_1, sysId, inParamIdoDiv, seikyKeiNoTelKikiOp, lastUpdDtm);
					}

					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD, ERROR_COLUMN_KKOPADD);
					// 機器オプションサービス契約番号(VA機能)
					kkopSvcKeiNoVa =
							getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
					// 更新年月日時分秒
					lastUpdDtmKkop = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);
				}

				// 要求種別コードが｢新規｣以外の場合
				if (!JFUStrConst.CD00317_02.equals(inParamYokyuSbtCd))
				{
					// ●機器提供サービス契約照査
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_12);
					// 上りマッピング
					setInMapKktkShosa(param, fixedText, kktkSvcKeiNo, lastUpdDtm, inParamIdoDiv);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_12, TEMPLATE_ID_12_DETAIL, IN_COLUMN_LIST_12, ERROR_COLUMN_12);
					// 更新年月日時分秒
					lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.UPD_DTM);
					// 世代登録年月日時分秒
					String geneAddDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.GENE_ADD_DTM);

					// ●機器オプションサービス契約照査
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
					// 上りマッピング
					setInMapKkopShosa(param, fixedText, kkopSvcKeiNoRouter, inParamIdoDiv, lastUpdDtmKkop);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL, IN_COLUMN_LIST_KKOPSHOSA,
							ERROR_COLUMN_KKOPSHOSA);
					// 更新年月日時分秒
					lastUpdDtmKkop = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA), EKK2811C030CBSMsg.UPD_DTM);

					// ■VA機能照査
					if (JFUStrConst.CD00002_1.equals(vaUm))
					{
						// ●機器オプションサービス契約照査
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
						// 上りマッピング
						setInMapKkopShosa(param, fixedText, kkopSvcKeiNoVa, inParamIdoDiv, lastUpdDtmKkop);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL, IN_COLUMN_LIST_KKOPSHOSA,
								ERROR_COLUMN_KKOPSHOSA);
						// 更新年月日時分秒
						lastUpdDtmKkop =
								getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA), EKK2811C030CBSMsg.UPD_DTM);
					}

					// OPMS連携済みの場合 ※バックのみ
					if (JFUStrConst.CD00002_1.equals(inParamOpmsRnkiZmUm))
					{
						// ●機器提供サービス契約一意照会
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_27);
						// 上りマッピング
						setInMapKktkSvcKeiUqSearchAf(param, fixedText, kktkSvcKeiNo, geneAddDtm);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
						// 機器情報
						HashMap tmpKikiInfoMap =
								getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

						// ●機器提供サービス契約情報変更
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_28);
						// 上りマッピング
						setInMapKktkSvcKeiInfoChgHaisoAfKojiFin(param, fixedText, tmpKikiInfoMap, lastUpdDtm);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_28, TEMPLATE_ID_28_DETAIL, IN_COLUMN_LIST_28, ERROR_COLUMN_28);
					}

					// 工事なし、且つ、配送作成要の場合
					if (JFUBPCommon.isNull(inParamOpmsRnkiZmUm) && !JFUStrConst.CD00001_0.equals(inParamHaisoYouhi))
					{
						// ●出荷抑止
						execShukkaYokushi(handle, param, fixedText, kktkSvcKeiNo, svcKeiKaisenUcwkNo, inParamChgBfPcrsCd, inParamIdoDiv,
								lastUpdDtmKkop);
						// ●配送受付
						HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
						JKKBpCommon.createHaiso(param, handle, inParamMskmNo, inParamMskmDetailNo, inParamMskmshoNo, kktkSvcKeiNo, inParamIdoDiv,
								haisoOutMap, fixedText);
						inMap.put(HAISO_OUT_MAP_KEY, haisoOutMap);
					}

					// 送付ルータの機器提供サービス契約番号
					inMap.put(OUT_PARAM_SEND_KKTK_SVC_KEI_NO, kktkSvcKeiNo);
					// 送付ルータの世代登録年月日時分秒
					inMap.put(OUT_PARAM_SEND_GENE_ADD_DTM, sendRouterGeneAddDtm);
					// 送付ルータの型式コード
					inMap.put(OUT_PARAM_SEND_ROUTER_MODEL_CD, JFUStrConst.EMPTY);
					// 送付ルータの機器変更番号
					inMap.put(OUT_PARAM_SEND_KIKI_CHG_NO, kikiChgNo);
					// 送付ルータのルーター種類コード
					inMap.put(OUT_PARAM_SEND_ROUTER_KIND_CD, JFUStrConst.EMPTY);
					// 送付ルータの機器提供種別コード
					inMap.put(OUT_PARAM_SEND_KKTK_SBT_CD, JFUStrConst.CD00212_02);

					// 多機能ルーター機能コード
					if (JFUStrConst.CD00002_1.equals(vaUm))
					{
						// ルーター＋ＶＡ機能
						inMap.put(OUT_PARAM_TAKINORT_KINO_CD, JFUStrConst.CD01603_C);
					}
					else
					{
						// ルーター機能のみ
						inMap.put(OUT_PARAM_TAKINORT_KINO_CD, JFUStrConst.CD01603_A);
					}

					// 多機能ルータールーター機能識別コード
					if (JFUStrConst.CD00134_G01.equals(pcrsChangeTgKkop))
					{
						// 有線ルーター機能
						inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD, JFUStrConst.CD01604_1);
					}
					else
					{
						// 無線ルーター機能
						inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD, JFUStrConst.CD01604_0);
					}
				}
			}
		}

		return param;
	}

	/**
	 * ルーター交換の優先順位付けソート
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param inMap ユーザデータ
	 * @param changeBbrList 自動交換ルーターリスト
	 * @param svcKeiNo サービス契約番号
	 * @throws Throwable
	 */
	protected void sortKiki(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap inMap, List<HashMap> changeBbrList,
			String svcKeiNo) throws Throwable
	{
		// ソートキー設定
		for (HashMap changeBbrMap : changeBbrList)
		{
			StringBuffer sortKey = new StringBuffer();

			// 保有ルータの機器提供サービス契約番号
			String kktkSvcKeiNoOwn = (String)changeBbrMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
			// 保有ルータの料金コースコード
			String pcrsCdOwn = (String)changeBbrMap.get(EKK0341B002CBSMsg1List.PCRS_CD);
			if (!JFUBPCommon.isNull(changeBbrMap.get(EKK2811B503CBSMsg1List.KK0341_PCRS_CD)))
			{
				pcrsCdOwn = (String)changeBbrMap.get(EKK2811B503CBSMsg1List.KK0341_PCRS_CD);
			}
			// 保有ルーターの宅内機器型式コード
			String modelCdOwn = (String)changeBbrMap.get(EKK0341B002CBSMsg1List.TAKNKIKI_MODEL_CD);

			// ●機器提供サービス契約一覧照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_38);
			// データなしエラーなし
			ignoreSearchError(param, fixedText);
			// 上りマッピング
			setInMapKktkSvcKeiSearch(param, fixedText, svcKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_38, TEMPLATE_ID_38_DETAIL, IN_COLUMN_LIST_38, ERROR_COLUMN_38);
			List<HashMap> kktkSvcKeiList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_38), TEMPLATE_ID_38_DETAIL);

			String targetGeneAddDtm = JFUStrConst.EMPTY;

			for (HashMap kktkSvcKeiMap : kktkSvcKeiList)
			{
				String targetKktkSvcKeiNo = (String)kktkSvcKeiMap.get(EKK0341B008CBSMsg1List.KKTK_SVC_KEI_NO);
				if (targetKktkSvcKeiNo.equals(kktkSvcKeiNoOwn))
				{
					targetGeneAddDtm = (String)kktkSvcKeiMap.get(EKK0341B008CBSMsg1List.GENE_ADD_DTM);
					break;
				}

			}
			// XMLデータ取得
			Element root = getRouterNodeList();

			// 新無線⇒旧無線⇒ベーシック順で速度の速い順
			sortKey.append(getKikiSortKey(pcrsCdOwn, root));
			// 世代登録年月日時分秒
			sortKey.append(targetGeneAddDtm);
			// 宅内機器型式コード
			sortKey.append(JFUBPCommon.adjustCharSize(modelCdOwn, LENGTH_TAKNKIKI_MODEL_CD, JFUStrConst.EMPTY));
			// 機器提供サービス契約番号
			sortKey.append(kktkSvcKeiNoOwn);

			// ソートキーを設定
			changeBbrMap.put(KIKI_SORT_KEY, sortKey.toString());
		}

		// ソート
		Collections.sort(changeBbrList, new Comparator<Map>()
		{
			/**
			 * 降順ソート処理
			 * <br>
			 * @param o1 入力1
			 * @param o2 入力2
			 * @return int compareTo結果
			 */
			public int compare(Map o1, Map o2)
			{
				return ((String)o2.get(KIKI_SORT_KEY)).compareTo((String)o1.get(KIKI_SORT_KEY));
			}
		});
	}

	/**
	 * 出荷抑止処理
	 *
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sendKktkSvcKeiNo 送付ルーターの機器提供サービス契約番号
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param pcrsCd 料金コースコード
	 * @param idoDiv 異動区分
	 * @param lastUpdDtm 最終更新年月日時分秒
	 * @return 最終更新年月日時分秒
	 * @throws Exception
	 */
	protected String execShukkaYokushi(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String sendKktkSvcKeiNo,
			String svcKeiKaisenUcwkNo, String pcrsCd, String idoDiv, String lastUpdDtm) throws Exception
	{
		// ユーザデータ
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 工事無しマンション(グローバル)判定
		boolean isKojiNasiMt =
				JFUStrConst.CD00134_A50.equals(pcrsCd) || JFUStrConst.CD00134_A51.equals(pcrsCd) || JFUStrConst.CD00134_A52.equals(pcrsCd)
						|| JFUStrConst.CD00134_A53.equals(pcrsCd) || JFUStrConst.CD00134_A54.equals(pcrsCd) || JFUStrConst.CD00134_A55.equals(pcrsCd)
						|| JFUStrConst.CD00134_A69.equals(pcrsCd) || JFUStrConst.CD00134_A70.equals(pcrsCd);

		// 工事無しマンション(グローバル)以外の場合は処理無し
		if (!isKojiNasiMt)
		{
			return lastUpdDtm;
		}

		// 配送依頼師弟年月日リスト
		List<String> haisoReqShiteiYmdList = new ArrayList();
		// 運用日付
		String opeDate = JFUBPCommon.getOpeDate(null);

		// ●回線対象サービス契約一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_EKK0241B002);
		// 上りマッピング
		setInMapKaisenTgSvKeiSearch(param, fixedText, svcKeiKaisenUcwkNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0241B002, TEMPLATE_ID_EKK0241B002_DETAIL, IN_COLUMN_LIST_EKK0241B002,
				ERROR_COLUMN_EKK0241B002);
		List<HashMap> kaisenTgSvkeiiList =
				getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0241B002), TEMPLATE_ID_EKK0241B002_DETAIL);

		for (HashMap kaisenTgSvkeiMap : kaisenTgSvkeiiList)
		{
			// サービス契約番号
			String svcKeiNo = (String)kaisenTgSvkeiMap.get(EKK0241B002CBSMsg1List.SVC_KEI_NO);

			// ●現機器提供サービス契約一覧照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_43);
			// 検索失敗エラーなし設定
			ignoreSearchError(param, fixedText);
			// 上りマッピング
			setInMapGenKktkSvcKeiSearch(param, fixedText, svcKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_43, TEMPLATE_ID_43_DETAIL, IN_COLUMN_LIST_43, ERROR_COLUMN_43);
			List<HashMap> kktkSvcKeiList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_43), TEMPLATE_ID_43_DETAIL);

			for (HashMap kktkSvcKeiMap : kktkSvcKeiList)
			{
				// 機器提供サービス契約番号
				String kktkSvcKeiNo = (String)kktkSvcKeiMap.get(EKK0341B502CBSMsg1List.KKTK_SVC_KEI_NO);
				// 親契約識別コード
				String oyaKeiSkbtCd = (String)kktkSvcKeiMap.get(EKK0341B502CBSMsg1List.OYA_KEI_SKBT_CD);
				// 機器提供サービス契約ステータス
				String kktkSvcKeiStat = (String)kktkSvcKeiMap.get(EKK0341B502CBSMsg1List.KKTK_SVC_KEI_STAT);

				// 親契約識別コードが回線内訳、且つ、解約、キャンセル以外の場合
				if (JFUStrConst.CD00804_02.equals(oyaKeiSkbtCd) && !JFUStrConst.CD01471_910.equals(kktkSvcKeiStat)
						&& !JFUStrConst.CD01471_920.equals(kktkSvcKeiStat))
				{
					// 出荷指図前判定
					boolean isSasizuMae = false;

					// ●契約機器配送対象物品一覧照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_44);
					// 検索エラーなし設定
					ignoreSearchError(param, fixedText);
					// 上りマッピング
					setInMapHaisoInfoSearch(param, fixedText, kktkSvcKeiNo);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_44, TEMPLATE_ID_44_DETAIL, IN_COLUMN_LIST_44, ERROR_COLUMN_44);
					List<HashMap> haisoInfokList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_44), TEMPLATE_ID_44_DETAIL);

					// 配送情報なし
					if (haisoInfokList.isEmpty())
					{
						isSasizuMae = true;
					}
					else
					{
						for (HashMap haisoInfoMap : haisoInfokList)
						{
							// 配送ステータス
							String haisoStat = (String)haisoInfoMap.get(EDK0011B090CBSMsg1List.HAISO_STAT);

							// 受付済
							if (JFUStrConst.CD00009_001.equals(haisoStat))
							{
								isSasizuMae = true;
								break;
							}
						}
					}

					// 出荷指図前の場合
					if (isSasizuMae)
					{
						// ●機器提供サービス契約一意照会
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_27);
						// 上りマッピング
						setInMapKktkSvcKeiUqSearchBf(param, fixedText, kktkSvcKeiNo);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
						// 機器情報
						HashMap kikiInfoMapBf =
								getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL,
										JFUStrConst.I_ZERO);

						String haisoReqShiteiYmd = (String)kikiInfoMapBf.get(EKK0341A010CBSMsg1List.HAISO_REQ_SHITEI_YMD);

						// 配送依頼指定年月日が運用日付より未来日
						if (!JFUBPCommon.isNull(haisoReqShiteiYmd) && opeDate.compareTo(haisoReqShiteiYmd) < JFUStrConst.I_ZERO)
						{
							haisoReqShiteiYmdList.add(haisoReqShiteiYmd);
						}
					}
				}
			}
		}

		// 配送依頼師弟年月日指定なしの場合は処理なし
		if (haisoReqShiteiYmdList.isEmpty())
		{
			return lastUpdDtm;
		}

		// 最大の配送依頼指定年月日を取得
		Collections.sort(haisoReqShiteiYmdList);
		Collections.reverse(haisoReqShiteiYmdList);
		String haisoReqShiteiYmdMax = haisoReqShiteiYmdList.get(JFUStrConst.I_ZERO);

		// ●機器提供サービス契約一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_27);
		// 上りマッピング
		setInMapKktkSvcKeiUqSearchBf(param, fixedText, sendKktkSvcKeiNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
		// 変更前の機器情報
		HashMap kikiInfoMapBfVa = getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

		// ●機器提供サービス契約情報変更 ※配送依頼指定年月日設定
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_28);
		// 上りマッピング
		setInMapKktkSvcKeiInfoChgHaisoReqShiteiYmd(param, fixedText, kikiInfoMapBfVa, lastUpdDtm, idoDiv, haisoReqShiteiYmdMax);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_28, TEMPLATE_ID_28_DETAIL, IN_COLUMN_LIST_28, ERROR_COLUMN_28);
		// 更新年月日時分秒
		return getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_28), EKK0341C230CBSMsg.UPD_DTM);
	}

	/**
	 * コース変更時のみ呼ばれる。
	 * 多機能ルーター保有(受付済)かつ保有ルーター(ベーシック100M、旧無線、新無線100M）の場合はtrueを返却
	 * 上記以外の場合はfalseを返却
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param inMap ユーザデータ
	 * @param hoyukikiList
	 * @param modelCdOwn
	 * @param inParamKeySvcKeiNo IN項目:サービス契約番号
	 * @param routerSpeedSbtBf ルーター速度種別コード(プラン変更前)
	 * @prama routerSpeedSbtAf ルーター速度種別コード(プラン変更後)
	 * @throws Throwable
	 */
	private boolean isExecCorseChangeHenpin(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap inMap,
			List<HashMap> hoyukikiList, String inParamKeySvcKeiNo, String routerSpeedSbtBf, String routerSpeedSbtAf) throws Throwable
	{
		// 多機能ルーター保有フラグ
		boolean takinouFlg = false;
		// ルーター変更フラグ
		boolean changeRuterFlg = false;

		// 保有ルーター分ループ
		for (HashMap hoyukikiMap : hoyukikiList)
		{
			// 機器提供サービスコード
			String ownKktkSvcCd = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_CD);

			// 多機能ルーターの場合
			if (JFUStrConst.CD00132_C024.equals(ownKktkSvcCd) || JFUStrConst.CD00132_C025.equals(ownKktkSvcCd))
			{
				takinouFlg = true;
			}
			else
			{
				// ファミリーパック契約有無(初期値：「0」無)
				String famipaUm = JFUStrConst.CD00002_0;
				// 保有ルーターの宅内機器型式コード
				String modelCdOwn = (String)hoyukikiMap.get(EKK0341B002CBSMsg1List.TAKNKIKI_MODEL_CD);

				// ●割引サービス契約一覧照会(割引サービス指定) ファミリーパック契約判定用
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_WRSV_KEI);
				// 検索失敗エラーなし設定
				ignoreSearchError(param, fixedText);
				// 上りマッピング
				this.setInMapWrsvKeiSearch(param, fixedText, inParamKeySvcKeiNo, JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA);
				// サービスI/F実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_WRSV_KEI_TKN, TEMPLATE_ID_WRSV_KEI_DETAIL_TKN, IN_COLUMN_LIST_WRSV_KEI_TKN,
						ERROR_COLUMN_WRSV_KEI_TKN);

				if (isExistsTemplateDetail(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_WRSV_KEI_TKN), TEMPLATE_ID_WRSV_KEI_DETAIL_TKN))
				{
					// 結果が存在する場合、ファミリーパック契約有り
					famipaUm = JFUStrConst.CD00002_1;
				}

				// ●宅内機器型式一意照会
				// ◆保有ルーター
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_7);
				// 上りマッピング
				setInMapTnModelSearch(param, fixedText, modelCdOwn);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_7, TEMPLATE_ID_7_DETAIL, IN_COLUMN_LIST_7, ERROR_COLUMN_7);
				// 保有ルーターコード
				String hoyuRouterCdOwn =
						getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_7), TEMPLATE_ID_7_DETAIL,
								EZM0411A010CBSMsg1List.HOYU_ROUTER_CD, 0);

				// ●プラン変更時の出荷機器を取得
				// XMLデータ取得
				HashMap shippingkikiMap =
						getPlanChgShippingKiki(hoyuRouterCdOwn, JFUStrConst.CD00002_1, famipaUm, routerSpeedSbtBf, routerSpeedSbtAf);

				// 交換後機器提供サービスコード
				String chgAfKktkSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(0));
				// 交換後料金コースコード
				String pcrsChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(1));
				// 交換後料金コースコード
				String pplanChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(2));
				// 交換後機器オプションサービスコード
				String chgAfKkopSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(3));
				// 交換後機器オプション料金コースコード
				String pcrsChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(4));
				// 交換後機器オプション料金プランコード
				String pplanChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(5));

				// ルーターの交換が発生するかの文字列を作成
				StringBuffer infoSb = new StringBuffer();
				infoSb.append(chgAfKktkSvcCd).append(pcrsChangeTg).append(pplanChangeTg).append(chgAfKkopSvcCd).append(pcrsChangeTgKkop).append(
						pplanChangeTgKkop);

				// 旧ルーター(ベーシック100M、旧無線、新無線100M）の場合
				if (!JFUBPCommon.isNull(infoSb.toString()))
				{
					changeRuterFlg = true;
				}
				else
				{
					break;
				}
			}
		}

		// 多機能ルーター保有、且つ、保有ルーター(ベーシック100M、旧無線、新無線100M）の交換が発生する場合
		if (takinouFlg && changeRuterFlg)
		{
			return true;
		}
		// 多機能ルーター未保有時、保有ルーター(ベーシック100M、旧無線、新無線100M）の交換が発生する場合
		else if (!takinouFlg && changeRuterFlg)
		{
			return true;
		}
		else
		{
			return false;
		}

	}

	/**
	 * ルーター交換処理
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param funcCd 機能コード
	 * @return リクエストパラメータ管理クラス
	 * @throws Throwable
	 */
	private Map<String, String> changeRouter(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String funcCd)
			throws Throwable
	{
		Map<String, String> resultMap = new HashMap<String, String>();

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// IN項目:申込番号
		String inParamMskmNo = (String)inMap.get(IN_PARAM_MSKM_NO);
		if (null == inParamMskmNo)
		{
			HashMap mskmMap = (HashMap)param.getData(SC_NAME_MSKM);
			if (mskmMap != null)
			{
				inParamMskmNo = (String)mskmMap.get(EKK0011D020CBSMsg.MSKM_NO);
			}
		}
		// IN項目:申込明細番号
		String inParamMskmDetailNo = (String)inMap.get(IN_PARAM_MSKM_DTL_NO);
		if (null == inParamMskmDetailNo)
		{
			HashMap mskmMap = (HashMap)param.getData(SC_NAME_MSKM);
			if (null != mskmMap)
			{
				List mskmList = (ArrayList)mskmMap.get(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
				inParamMskmDetailNo = (String)((HashMap)mskmList.get(0)).get(EKK0011D020CBSMsg1List.MSKM_DTL_NO);
			}
		}

		// IN項目:申込書番号
		String inParamMskmshoNo = (String)inMap.get(IN_PARAM_MSKMSHO_NO);
		// IN項目:異動区分
		String inParamIdoDiv = (String)inMap.get(IN_PARAM_IDO_DIV);
		// IN項目:要求種別コード
		String inParamYokyuSbtCd = (String)inMap.get(IN_PARAM_YOKYU_SBT_CD);
		// IN項目:サービス契約番号
		String inParamKeySvcKeiNo = (String)inMap.get(IN_PARAM_KEY_SVC_KEI_NO);
		// IN項目;上限数
		int inParamBbrQtyLimit = Integer.parseInt((String)inMap.get(IN_PARAM_ROUTER_ADD_LIMIT));
		// IN項目:変更前料金コースコード
		String inParamChgBfPcrsCd = (String)inMap.get(IN_PARAM_CHG_BF_PCRS_CD);
		// IN項目:変更後料金コースコード
		String inParamChgAfPrcsCd = (String)inMap.get(IN_PARAM_CHG_AF_PCRS_CD);
		// IN項目:工事有無
		String inParamKojiUm = (String)inMap.get(IN_PARAM_KOJI_UM);
		// IN項目:OPMS連携済有無
		String inParamOpmsRnkiZmUm = (String)inMap.get(IN_PARAM_OPMS_RNKIZM_UM);
		// IN項目:返品機器作成要否
		String inParamHmpinYouhi = (String)inMap.get(IN_PARAM_HMPIN_YOUHI);
		// IN項目:配送作成要否
		String inParamHaisoYouhi = (String)inMap.get(IN_PARAM_HAISO_SAKUSEI_YOUHI);
		// IN項目:配送ステータス(VA)
		String inParamHaisoStatVa = (String)inMap.get(IN_PARAM_HAISO_STAT_VA);
		// 新設工事有無
		String inParamShinsetsuKojiUm = (String)inMap.get(IN_PARAM_SHINSETSU_KOJI_UM);
		// IN項目:住所情報
		HashMap<String, String> addressInfoMap = (HashMap)inMap.get(IN_PARAM_ADDRESS_INFO);
// ANK-3777-00-00 ADD START
		// IN項目:多機能ルーター申込
		String inParamTknRtMskm = JFUStrConst.CD00002_0;
		// IN項目:機器オプション申込
		String inParamKikiOpMskm = JFUStrConst.CD00002_0;
		// IN項目:新コース適用フラグ
		String inParamRtNewPcrsAplyFlg = JFUStrConst.CD00002_0;
		if (JFUStrConst.CD00576_00009.equals(inParamIdoDiv))
		{
			inParamTknRtMskm = (String)inMap.get(IN_PARAM_TKN_RT_MSKM);
			inParamKikiOpMskm = (String)inMap.get(IN_PARAM_KIKI_OP_MSKM);
			inParamRtNewPcrsAplyFlg = (String)inMap.get(IN_PARAM_RT_NEW_PCRS_APLY_FLG);
		}
// ANK-3777-00-00 ADD END

		// IN項目:多機能ルーター交換有無
		String inParamTknChgUm = (String)inMap.get(IN_PARAM_TKN_ROUTER_CHG_UM);
		if (JFUBPCommon.isNull(inParamTknChgUm))
		{
			// 設定されていない場合、「0：無」とする
			inParamTknChgUm = JFUStrConst.S_ZERO;
		}

		// ●サービス契約一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_2);
		// 上りマッピング
		setInMapSvcKeiUniqueSearch(param, fixedText, inParamKeySvcKeiNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_2, TEMPLATE_ID_2_DETAIL, IN_COLUMN_LIST_2, ERROR_COLUMN_2);
		// SYSID
		String sysId =
				getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_2), TEMPLATE_ID_2_DETAIL, EKK0081A010CBSMsg1List.SYSID, 0);
		// 更新年月日時分秒
		String updDtmSvcKei =
				getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_2), TEMPLATE_ID_2_DETAIL,
						EKK0081A010CBSMsg1List.LAST_UPD_DTM, 0);
		// サービス契約ステータス
		String svcKeiStatNet =
				getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_2), TEMPLATE_ID_2_DETAIL,
						EKK0081A010CBSMsg1List.SVC_KEI_STAT, 0);

		// ●料金コース一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_3);
		// 上りマッピング
		setInMapPcrsSearch(param, fixedText, inParamChgBfPcrsCd);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_3, TEMPLATE_ID_3_DETAIL, IN_COLUMN_LIST_3, ERROR_COLUMN_3);

		// 料金コース速度コード(コース変更前)
		String pcrsSpeedCdCurrent =
				getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_3), TEMPLATE_ID_3_DETAIL,
						EKK0791A010CBSMsg1List.PCRS_SPEED_CD, 0);

		// 料金コース速度コード(コース変更後)
		String pcrsSpeedCdReserve = null;

		// コース変更有の場合
		String crsChgUm = JFUStrConst.CD00002_0;
		if (!JFUBPCommon.isNull(inParamChgAfPrcsCd) && !inParamChgBfPcrsCd.equals(inParamChgAfPrcsCd))
		{
			// ●料金コース一意照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_3);
			// 上りマッピング
			setInMapPcrsSearch(param, fixedText, inParamChgAfPrcsCd);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_3, TEMPLATE_ID_3_DETAIL, IN_COLUMN_LIST_3, ERROR_COLUMN_3);
			// 料金コース速度コード(予約)
			pcrsSpeedCdReserve =
					getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_3), TEMPLATE_ID_3_DETAIL,
							EKK0791A010CBSMsg1List.PCRS_SPEED_CD, 0);
			// コース変更有無に「1」を設定
			crsChgUm = JFUStrConst.CD00002_1;
		}
		else
		{
			// 料金コース速度コード(予約)にカレントと 同値を設定
			pcrsSpeedCdReserve = pcrsSpeedCdCurrent;
			// コース変更有無に「0」を設定
			crsChgUm = JFUStrConst.CD00002_0;
		}

		// ●プラン変更前後で速度が速いほうのルーター速度種別を算出
		// XMLデータ取得
		Element root = getRouterNodeList();
		// ルーター速度種別(ネット)
		String routerSpeedSbtNet = getRouterSpeedSbtFaster(pcrsSpeedCdCurrent, pcrsSpeedCdReserve, root);
		// ルーター速度種別コード(プラン変更前)
		String routerSpeedSbtBf = getRouterSpeedSbt(pcrsSpeedCdCurrent, root);
		// ルーター速度種別コード(プラン変更後)
		String routerSpeedSbtAf = getRouterSpeedSbt(pcrsSpeedCdReserve, root);

		// ●課金先一覧照会（請求契約番号/サービス契約番号）
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_4);
		// 上りマッピング
		setInMapKakinsSearch(param, fixedText, inParamKeySvcKeiNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_4, TEMPLATE_ID_4_DETAIL, IN_COLUMN_LIST_4, ERROR_COLUMN_4);
		// 請求契約番号
		String seikyKeiNoNet =
				getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_4), TEMPLATE_ID_4_DETAIL,
						EKK0321B002CBSMsg1List.SEIKY_KEI_NO, 0);

		// ●サービス契約回線内訳一覧照会（サービス契約番号）
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_16);
		// 上りマッピング
		setInMapKaisenUwSvcKeiSearch(param, fixedText, inParamKeySvcKeiNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_16, TEMPLATE_ID_16_DETAIL, IN_COLUMN_LIST_16, ERROR_COLUMN_16);
		// サービス契約回線内訳一覧照会（サービス契約番号）マップ
		HashMap kaisenUwMap = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_16), TEMPLATE_ID_16_DETAIL).get(0);
		// サービス契約回線内訳番号
		String svcKeiKaisenUcwkNo = (String)kaisenUwMap.get(EKK0251B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO);
		// 世代登録年月日時分秒
		String geneAddDtmKaisen = (String)kaisenUwMap.get(EKK0251B001CBSMsg1List.GENE_ADD_DTM);

		// ●サービス契約回線内訳一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_17);
		// 上りマッピング
		setInMapKaisenUwUniqueSearch(param, fixedText, svcKeiKaisenUcwkNo, geneAddDtmKaisen);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_17, TEMPLATE_ID_17_DETAIL, IN_COLUMN_LIST_17, ERROR_COLUMN_17);
		// サービス契約回線内訳(ユニーク)
		HashMap kaisenUwUniqueMap = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_17), TEMPLATE_ID_17_DETAIL).get(0);

		// ●保有ルーターリスト取得
		List<HashMap> hoyukikiList = new ArrayList<HashMap>();

		// ●機器提供サービス契約一覧照会（サービス契約番号）
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_14);
		// 上りマッピング
		setInMapKktkSvcKeiNoSearch(param, fixedText, inParamKeySvcKeiNo, BLANK);
		// データなしエラーなし
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_14, TEMPLATE_ID_14_DETAIL, IN_COLUMN_LIST_14, ERROR_COLUMN_14);
		// 保有機器リスト
		List<HashMap> kikiOwnList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_14), TEMPLATE_ID_14_DETAIL);

		HashMap kktkSvcKeiNoMap = new HashMap();

		// 旧ルーター保有の場合
		if (kikiOwnList != null && kikiOwnList.size() > 0)
		{
			for (HashMap kikiOwnMap : kikiOwnList)
			{
				String kktkSvcCd = (String)kikiOwnMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_CD);
				String kktkSvcKeiNo = (String)kikiOwnMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);

				// 機器提供サービス契約番号重複の場合は処理なし
				if (kktkSvcKeiNoMap.containsKey(kktkSvcKeiNo))
				{
					continue;
				}
				else
				{
					kktkSvcKeiNoMap.put(kktkSvcKeiNo, JFUStrConst.EMPTY);
				}

				if (JFUStrConst.KK0771_KKTK_SVC_CD_C014.equals(kktkSvcCd))
				{
					// 旧ルーター保有の場合
					hoyukikiList.add(kikiOwnMap);
				}
			}
		}

		// ●機器オプションサービス契約一覧照会（フロント）
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_EKK2811B503);
		// 上りマッピング
		setInMapGetTknRouterInfo(param, fixedText, sysId, svcKeiKaisenUcwkNo);
		// データなしエラーなし
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811B503, TEMPLATE_ID_EKK2811B503_DETAIL, IN_COLUMN_LIST_EKK2811B503,
				ERROR_COLUMN_EKK2811B503);
		// 保有機器リスト
		List<HashMap> kkopOwnList =
				getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811B503), TEMPLATE_ID_EKK2811B503_DETAIL);

		List<HashMap> tmpHoyukikiList = new ArrayList<HashMap>();

		// VA機能保有判定
		boolean isVaKinoHoyu = false;

		// 多機能ルーター保有の場合
		if (kkopOwnList != null && kkopOwnList.size() > 0)
		{
			// 多機能ルーター保有の場合
			for (HashMap kkopOwnMap : kkopOwnList)
			{
				String kkopSvcCd = (String)kkopOwnMap.get(EKK2811B503CBSMsg1List.KKOP_SVC_CD);

				if (JFUStrConst.KK2801_KKOP_SVC_CD_G01.equals(kkopSvcCd) || JFUStrConst.KK2801_KKOP_SVC_CD_G02.equals(kkopSvcCd))
				{
					// 多機能ルーターの情報を設定
					tmpHoyukikiList.add(kkopOwnMap);
				}

				// VA機能保有
				if (JFUStrConst.KK2801_KKOP_SVC_CD_G02.equals(kkopSvcCd))
				{
					isVaKinoHoyu = true;
				}
			}
		}

		if (tmpHoyukikiList.size() > 1)
		{
			for (HashMap tmpMap : tmpHoyukikiList)
			{
				String kkopSvcCd = (String)tmpMap.get(EKK2811B503CBSMsg1List.KKOP_SVC_CD);

				if (JFUStrConst.KK2801_KKOP_SVC_CD_G01.equals(kkopSvcCd))
				{
					// 多機能ルーター(ルーター機能)の情報を設定
					hoyukikiList.add(tmpMap);
					break;
				}
			}
		}
		else
		{
			hoyukikiList.addAll(tmpHoyukikiList);
		}

		// VA機能有無設定
		for (HashMap tmpMap : hoyukikiList)
		{
			if (isVaKinoHoyu)
			{
				tmpMap.put(VA_KINO_UM, JFUStrConst.CD00002_1);
			}
			else
			{
				tmpMap.put(VA_KINO_UM, JFUStrConst.CD00002_0);
			}
		}

		if (JFUStrConst.CD00576_00009.equals(inParamIdoDiv) && hoyukikiList.size() == 0)
		{
			// 異動区分がコース変更、かつ、保有ルーターがない場合(レンタル無し)
			hoyukikiList.add(new HashMap());
		}

		// ●VA機器情報取得
		HashMap telKikiInfoMap = getTelKikiInfo(handle, param, fixedText, sysId, svcKeiKaisenUcwkNo);
		// VA有無
		String vaUm = (String)telKikiInfoMap.get(MSG_VA_UM);
		// VA機能設定要否
		boolean isVaKinoSetteiYou = false;

		// BBR登録数
		int bbrRegistCnt = 0;

		// 料金コースコード(ルーター)
		String pcrsCdRouter = BLANK;
		// 送付ルータの型式
		String sendRouterModelCd = BLANK;
		// 送付ルータの機器提供サービス契約番号
		String sendRouterKktkSvcKeiNo = BLANK;
		// 送付ルータの機器変更番号
		String sendRouterKikiChgNo = BLANK;
		// 送付ルータの世代登録年月日時分秒
		String sendRouterGeneAddDtm = BLANK;
		// 送付ルータのルーター種類コード
		String sendRouterKindCd = BLANK;
		// ファミリーパック契約有無(初期値：「0」無)
		String famipaUm = JFUStrConst.CD00002_0;
		// 変更前機器提供サービス契約番号
		String kktkSvcKeiNoOwn = BLANK;
		// 変更前機器変更番号
		String kikiChgNoOwn = BLANK;
		// 変更前宅内機器型式コード
		String modelCdOwn = BLANK;
		// 変更前機器製造番号
		String chgBfKikiSeizoNo = BLANK;
		// 変更前機器提供種別コード
		String chgBfKktkSbtCd = BLANK;
		// 変更前ルーター種類コード
		String chgBfRouterKindCd = BLANK;
		// 交換後機器提供サービスコード
		String chgAfKktkSvcCd = BLANK;
		// 交換後料金コースコード
		String pcrsChangeTg = BLANK;
		// 交換後プランコード
		String pplanChangeTg = BLANK;
		// 交換後機器オプションサービスコード
		String chgAfKkopSvcCd = BLANK;
		// 交換後機器オプション料金コースコード
		String pcrsChangeTgKkop = BLANK;
		// 交換後機器オプションプランコード
		String pplanChangeTgKkop = BLANK;
		// 保有ルーターコード
		String hoyuRouterCdOwn = BLANK;
		// 機器オプションサービス契約番号
		String kkopSvcKeiNo = BLANK;
		// 機器オプション料金コースコード
		String kkopPcrsCdOut = BLANK;
		// 機器オプションサービス登録リスト
		ArrayList kkopAddListForSod = new ArrayList();
		// 機器オプションサービス登録(ルーター機能)マップ
		HashMap kkopAddMapForSod = new HashMap();
		// VA有無
		boolean isVaHoyu = false;
		// 交換後機器オプション料金コースコード
		String outPcrsChangeTgKkop = BLANK;
		// 機器オプション変更のみ有無
		String kkOpChgOnlyUm = JFUStrConst.CD00002_0;

		// ルーター速度種別コード
		String routerSpeedSbtCd = BLANK;
		// 機器変更有無
		String kikiChgUm = BLANK;

		// 要求種別コードが｢新規｣以外、かつ、保有ルータありの場合
		if (!JFUStrConst.CD00317_02.equals(inParamYokyuSbtCd) && (hoyukikiList != null && hoyukikiList.size() > 0))
		{
			// 機器提供サービス契約番号特定済みフラグ
			boolean kkFlg = false;
			// 最終更新年月日時分秒
			String lastUpdDtm = null;
			// 最終更新年月日時分秒(機器オプションサービス契約)
			String lastUpdDtmKkop = null;
			// 多機能ルーターVA機能のみ保有フラグ
			boolean onlyTknVaFlg = false;

			// 複数ルーター保有の場合は、処理順ソート
			if (hoyukikiList.size() > 1)
			{
				sortKiki(handle, param, fixedText, inMap, hoyukikiList, inParamKeySvcKeiNo);
			}

			// 多機能ルーター(受付済)かつ保有ルーター(ベーシック100M、旧無線、新無線100M）が存在する場合のみtrue
			boolean isCorseChgAndFukusuRouter = false;
			if (JFUStrConst.CD00576_00009.equals(inParamIdoDiv) && hoyukikiList.size() > 1)
			{
				isCorseChgAndFukusuRouter =
						isExecCorseChangeHenpin(handle, param, fixedText, inMap, hoyukikiList, inParamKeySvcKeiNo, routerSpeedSbtBf, routerSpeedSbtAf);
			}

			for (HashMap hoyukikiMap : hoyukikiList)
			{
				// 保有ルーターの機器提供サービス契約番号
				kktkSvcKeiNoOwn = (String)hoyukikiMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
				// 保有ルーターの宅内機器型式コード
				modelCdOwn = JFUBPCommon.nvl((String)hoyukikiMap.get(EKK0341B002CBSMsg1List.TAKNKIKI_MODEL_CD), JFUStrConst.EMPTY);
				// 機器オプションサービス料金コースコード
				String kkopPcrsCd = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.PCRS_CD);
				// 機器提供サービスコード
				String ownKktkSvcCd = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_CD);
				// 機器オプションサービスコード
				String ownKkopSvcCd = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.KKOP_SVC_CD);
				// 機器提供サービス契約ステータス
				String kktkSvcKeiStat = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.KKTK_SVC_KEI_STAT);
				// 機器オプションサービス契約ステータス
				String kkopSvcKeiStat = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.KKOP_SVC_KEI_STAT);
				// 保有ルーターの機器変更番号
				kikiChgNoOwn = (String)hoyukikiMap.get(EKK0341A010CBSMsg1List.KIKI_CHG_NO);
				// 保有ルーターの機器製造番号
				String kikiSeizoNoOwn = JFUBPCommon.nvl((String)hoyukikiMap.get(EKK0341B002CBSMsg1List.KIKI_SEIZO_NO), JFUStrConst.EMPTY);

				// VA機能設定要否設定
				if (JFUStrConst.CD00002_1.equals(hoyukikiMap.get(VA_KINO_UM)))
				{
					isVaKinoSetteiYou = true;
				}

				// 初回のみ
				if (JFUStrConst.I_ZERO == bbrRegistCnt || JFUBPCommon.isNull(lastUpdDtm))
				{
					// 更新年月日時分秒
					lastUpdDtm = (String)hoyukikiMap.get(EKK0341B020CBSMsg1List.LAST_UPD_DTM);
				}

				// 多機能ルーターまたはホームゲートウェイ保有時
				if (JFUStrConst.CD00132_C024.equals(ownKktkSvcCd) || JFUStrConst.CD00132_C025.equals(ownKktkSvcCd))
				{
					// 機器オプションサービス契約番号
					kkopSvcKeiNo = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.KKOP_SVC_KEI_NO);
					kkopPcrsCdOut = kkopPcrsCd;

					// 料金コースコード(ルーター)
					pcrsCdRouter = (String)hoyukikiMap.get(EKK2811B503CBSMsg1List.KK0341_PCRS_CD);
				}
				else
				{
					// 料金コースコード(ルーター)
					pcrsCdRouter = (String)hoyukikiMap.get(EKK0341B002CBSMsg1List.PCRS_CD);
				}

				// 多機能ルーターVA機能のみ保有時　※ホームゲートウェイでVAのみはない
				if (JFUStrConst.CD00132_C024.equals(ownKktkSvcCd) && JFUStrConst.KK2801_KKOP_SVC_CD_G02.equals(ownKkopSvcCd))
				{
					onlyTknVaFlg = true;
				}

				if (!JFUBPCommon.isNull(modelCdOwn))
				{
					// ●宅内機器型式一意照会
					// ◆保有ルーター
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_7);
					// 上りマッピング
					setInMapTnModelSearch(param, fixedText, modelCdOwn);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_7, TEMPLATE_ID_7_DETAIL, IN_COLUMN_LIST_7, ERROR_COLUMN_7);
					// 保有ルーターコード
					hoyuRouterCdOwn =
							getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_7), TEMPLATE_ID_7_DETAIL,
									EZM0411A010CBSMsg1List.HOYU_ROUTER_CD, 0);
					// 変更前ルーター種類コード
					chgBfRouterKindCd =
							getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_7), TEMPLATE_ID_7_DETAIL,
									EZM0411A010CBSMsg1List.OPMS_ROUTER_KIND_CD, 0);
					// ルーター速度コード
					routerSpeedSbtCd =
							getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_7), TEMPLATE_ID_7_DETAIL,
									EZM0411A010CBSMsg1List.ROUTER_SPEED_SBT_CD, 0);

				}

				// 保有ルーターコードがNULL、かつ、多機能ルーターまたはホームゲートウェイの場合
				if (JFUBPCommon.isNull(hoyuRouterCdOwn) && (JFUStrConst.CD00132_C024.equals(ownKktkSvcCd) || JFUStrConst.CD00132_C025.equals(ownKktkSvcCd)))
				{
					//10G多機能ルーター／ホームゲートウェイ
					if (ROUTER_SPEED_SBT_CD_10G.equals(routerSpeedSbtCd) 
							|| JFUStrConst.CD00056_010.equals(kktkSvcKeiStat)
							|| JFUStrConst.CD00056_020.equals(kktkSvcKeiStat))
					{
						hoyuRouterCdOwn = DUMMY_HOYU_ROUTER_CD_97;
					}
					//多機能ルーター
					else
					{
						hoyuRouterCdOwn = DUMMY_HOYU_ROUTER_CD_96;
					}
				}
				// 保有ルーターが存在しない場合
				else if (hoyukikiMap.size() == 0)
				{
					hoyuRouterCdOwn = DUMMY_HOYU_ROUTER_CD_00;
				}
				// ルーター種類コードがNULL、かつ、多機能ルーターまたはホームゲートウェイの場合
				if (JFUBPCommon.isNull(chgBfRouterKindCd) && (JFUStrConst.CD00132_C024.equals(ownKktkSvcCd) || JFUStrConst.CD00132_C025.equals(ownKktkSvcCd)))
				{
					chgBfRouterKindCd = ROUTER_KIND_CD_TKN;
				}

				// 申込判定(異動区分判定)
				HashMap shippingkikiMap = null;

				// ■コース変更
				if (JFUStrConst.CD00576_00009.equals(inParamIdoDiv))
				{
					// ●割引サービス契約一覧照会(割引サービス指定) ※ファミリーパック契約判定用
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_WRSV_KEI);
					// 検索失敗エラーなし設定
					ignoreSearchError(param, fixedText);
					// 上りマッピング
					this.setInMapWrsvKeiSearch(param, fixedText, inParamKeySvcKeiNo, JFUStrConst.KK0841_WRIB_SVC_CD_FAMIPA);
					// サービスI/F実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_WRSV_KEI_TKN, TEMPLATE_ID_WRSV_KEI_DETAIL_TKN, IN_COLUMN_LIST_WRSV_KEI_TKN,
							ERROR_COLUMN_WRSV_KEI_TKN);

					if (isExistsTemplateDetail(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_WRSV_KEI_TKN), TEMPLATE_ID_WRSV_KEI_DETAIL_TKN))
					{
						// 結果が存在する場合、ファミリーパック契約有り
						famipaUm = JFUStrConst.CD00002_1;
					}

					// ●プラン変更時の出荷機器を取得
					// XMLデータ取得
					shippingkikiMap = getPlanChgShippingKiki(hoyuRouterCdOwn, crsChgUm, famipaUm, routerSpeedSbtBf, routerSpeedSbtAf);
				}
				// ■ファミリーパック申込
				else
				{
					// ●ファミリーパック申込時の出荷機器を取得
					// XMLデータ取得
					shippingkikiMap =
							getFamipaShippingKiki(hoyuRouterCdOwn, crsChgUm, routerSpeedSbtBf, routerSpeedSbtAf, kkopPcrsCd, inParamTknChgUm);
				}

				// 自動登録可能ルーター存在チェック
				if (shippingkikiMap == null || shippingkikiMap.size() == 0)
				{
					// 自動登録可能ルーター定義なし：システムエラー
					setRelationErrorInfo(param, TEMPLATE_ID_13, ERROR_COLUMN_13, fixedText);
					throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
							.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
				}

				// 5G・10Gルーター機器自動交換共通CC
				HashMap rtCCMap = (HashMap)param.getData(CC_RT_KIKI_ATKN);

				if (rtCCMap != null)
				{
					// 機器変更有無
					kikiChgUm = (String)rtCCMap.get(KIKI_CHG_UM);
					// 機器交換が発生する場合
					if (JFUStrConst.CD00002_1.equals(kikiChgUm))
					{
						// 交換後機器提供サービスコード
						chgAfKktkSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(0));
						// 交換後料金コースコード
						pcrsChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(1));
						// 交換後料金コースコード
						pplanChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(2));
						// 交換後機器オプションサービスコード
						chgAfKkopSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(3));
						// 交換後機器オプション料金コースコード
						pcrsChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(4));
						// 交換後機器オプション料金プランコード
						pplanChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(5));
					}
					outPcrsChangeTgKkop = pcrsChangeTgKkop;
				}
				// ファミパ登録の場合
				if (JFUStrConst.CD00576_00049.equals(inParamIdoDiv))
				{
					// 交換後機器提供サービスコード
					chgAfKktkSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(0));
					// 交換後料金コースコード
					pcrsChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(1));
					// 交換後料金コースコード
					pplanChangeTg = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(2));
					// 交換後機器オプションサービスコード
					chgAfKkopSvcCd = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(3));
					// 交換後機器オプション料金コースコード
					pcrsChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(4));
					// 交換後機器オプション料金プランコード
					pplanChangeTgKkop = (String)shippingkikiMap.get(SHIPPING_KIKI_OUT_ITEMS.get(5));
					outPcrsChangeTgKkop = pcrsChangeTgKkop;
				}
// ANK-3777-00-00 ADD START
				// 多機能ルーター申込されている場合は機器変更有にする。
				if (JFUStrConst.CD00002_1.equals(inParamTknRtMskm))
				{
					kikiChgUm = JFUStrConst.CD00002_1;
				}
				if (!"0".equals(inParamKikiOpMskm))
				{
					chgAfKkopSvcCd = JFUStrConst.KK2801_KKOP_SVC_CD_G01;
					// 無線申込
					if ("1".equals(inParamKikiOpMskm))
					{
						pcrsChangeTgKkop = JFUStrConst.CD00134_G02;
						pplanChangeTgKkop = JFUStrConst.CD00565_PG0201;
					// 有線申込
					} else if ("2".equals(inParamKikiOpMskm))
					{
						pcrsChangeTgKkop = JFUStrConst.CD00134_G01;
						pplanChangeTgKkop = JFUStrConst.CD00565_PG0101;
					}
					outPcrsChangeTgKkop = pcrsChangeTgKkop;
				}
// ANK-3777-00-00 ADD END
				// BBR登録数カウントアップ
				bbrRegistCnt++;

				// 機能コードが「保有ルーター情報取得」の場合
				if (JPCModelConstant.FUNC_CD_2.equals(funcCd))
				{
					break;
				}

				// 配送作成有無
				boolean isCreateHaiso = true;

				// BBR登録数≦上限数
				if (bbrRegistCnt <= inParamBbrQtyLimit)
				{
					// 機能コードが「保有ルーター情報取得」以外の場合
					if (!JPCModelConstant.FUNC_CD_2.equals(funcCd))
					{
						// ルーターの交換が発生するかの文字列を作成
						StringBuffer infoSb = new StringBuffer();
						infoSb.append(chgAfKktkSvcCd).append(pcrsChangeTg).append(pplanChangeTg).append(chgAfKkopSvcCd).append(pcrsChangeTgKkop)
								.append(pplanChangeTgKkop);
						// 出荷機器情報が存在しない場合、以降を処理しない
						if (hoyukikiMap.size() == 0 || JFUBPCommon.isNull(infoSb.toString()))
						{
							// !(受付済の多機能ルーター保有)、または、!(異動区分がコース変、且つ、多機能ルーター+旧ルータ保有、または、交換が必要な旧ルーター保有)、
							// または、(異動区分がコース変、且つ、VA機能のみの多機能保有)
							// (コース変更時、多機能ルーター(受付済)かつ保有ルーター(ベーシック100M、旧無線、新無線100M）が存在する場合、照査までステータスを上げる為、以下の更新処理を行う。
// ANK-3777-00-00 MOD START
							// コース変更時、多機能ルーター（VA機能のみ）の場合、以下の更新処理を行わない。) ※条件削除
							// 料金コース変更時に多機能ルーターを申し込まれている場合
							if (!(JFUStrConst.CD00056_010.equals(kktkSvcKeiStat) && JFUStrConst.CD00132_C024.equals(ownKktkSvcCd))
									|| !isCorseChgAndFukusuRouter) // || (JFUStrConst.CD00576_00009.equals(inParamIdoDiv) && onlyTknVaFlg)
							{
// ANK-3777-00-00 MOD END
								// 異動区分がファミパ以外、または、(異動区分がファミパ、且つ、保有ルーターが新無線、且つ、多機能ルーター交換有無が無)
								// (ファミパの場合は必ず機器の登録、更新処理を行う。ただし、ファミパ申込の場合で新無線保有かつ交換希望しない場合、更新処理を行わない。)
								if (!JFUStrConst.CD00576_00049.equals(inParamIdoDiv)
										|| (JFUStrConst.CD00576_00049.equals(inParamIdoDiv) && SIN_MUSEN_ROUTER_CD_LIST.contains(hoyuRouterCdOwn) && JFUStrConst.CD00002_0
												.equals(inParamTknChgUm)))
								{
									continue;
								}
							}
						}

						if (!kkFlg)
						{
							sendRouterKktkSvcKeiNo = kktkSvcKeiNoOwn;
							kkFlg = true;
						}

						// ●機器提供サービス契約一意照会
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_27);
						// 上りマッピング
						setInMapKktkSvcKeiUqSearchBf(param, fixedText, kktkSvcKeiNoOwn);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
						// 変更前の機器情報
						HashMap kikiInfoMapBf =
								getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);
						// 機器提供サービス契約ステータス
						String kktkSvcKeiStatBf = (String)kikiInfoMapBf.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT);
						// 変更前機器製造番号
						chgBfKikiSeizoNo = (String)kikiInfoMapBf.get(EKK0341A010CBSMsg1List.KIKI_SEIZO_NO);
						// 変更前機器提供種別コード
						chgBfKktkSbtCd = (String)kikiInfoMapBf.get(EKK0341A010CBSMsg1List.KKTK_SBT_CD);
						// 世代登録年月日時分秒
						String tknGeneAddDtm = (String)kikiInfoMapBf.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM);
						// 最終更新年月日時分秒
						lastUpdDtm = (String)kikiInfoMapBf.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM);

						// 多機能ルーター／ホームゲートウェイ以外の場合
						if (!JFUStrConst.CD00132_C024.equals(ownKktkSvcCd) && !JFUStrConst.CD00132_C025.equals(ownKktkSvcCd))
						{
							// ●機器提供サービス契約情報変更 ※回収機器有無設定
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_28);
							// 上りマッピング
							setInMapKktkSvcKeiChgKishuKikiUm(param, fixedText, kikiInfoMapBf, inParamIdoDiv);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_28, TEMPLATE_ID_28_DETAIL, IN_COLUMN_LIST_28, ERROR_COLUMN_28);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_28), EKK0341C230CBSMsg.UPD_DTM);
						}
						// 多機能ルーターで機器変更の場合
						else if (JFUStrConst.CD00002_1.equals(kikiChgUm))
						{
							// 締結済の場合は機器変更できないため提供中にする
							if (JFUStrConst.CD00056_030.equals(kktkSvcKeiStatBf))
							{
								if (JKKBpCommon.updateKikiStatTkChu(handle, param, inParamKeySvcKeiNo, sendRouterKktkSvcKeiNo) != RETURN_CODE_NORMAL)
								{
									// 機器提供サービス契約機器変更手続開始：関連チェックエラー
									setRelationErrorInfo(param, TEMPLATE_ID_45, ERROR_COLUMN_45, fixedText);
									throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
											.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
								}
							}

							// ●引当棚一意照会
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_20);
							// 上りマッピング
							setInMapHkAtShelfSearch(param, fixedText);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_20, TEMPLATE_ID_20_DETAIL, IN_COLUMN_LIST_20, ERROR_COLUMN_20);
							// 棚コード
							String shelfCd =
									getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_20), TEMPLATE_ID_20_DETAIL,
											EDK0451A010CBSMsg1List.SHELF_CD, 0);

							// 配送方法コード
							String haisoWayCd = null;

							if (JFUStrConst.CD00002_1.equals(inParamKojiUm))
							{
								// 工事会社配送
								haisoWayCd = JFUStrConst.CD01148_2;
							}
							else
							{
								// お客様宅直送
								haisoWayCd = JFUStrConst.CD01148_1;
							}

							// ●機器提供サービス契約機器変更手続開始
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_45);
							// 上りマッピング
							setInMapKktkSvcKeiKikiChgKaishi(param, fixedText, sendRouterKktkSvcKeiNo, lastUpdDtm, inParamIdoDiv, inParamMskmDetailNo);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_45, TEMPLATE_ID_45_DETAIL, IN_COLUMN_LIST_45, ERROR_COLUMN_45);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_45), EKK0341C530CBSMsg.UPD_DTM);
							// 世代登録年月日時分秒
							String geneAddDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_45), EKK0341C530CBSMsg.GENE_ADD_DTM);
							// 機器変更番号
							sendRouterKikiChgNo = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_45), EKK0341C530CBSMsg.KIKI_CHG_NO);

							// ●機器提供サービス契約一意照会
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_27);
							// 上りマッピング
							setInMapKktkSvcKeiUqSearchAf(param, fixedText, sendRouterKktkSvcKeiNo, geneAddDtm);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
							// 機器情報
							HashMap tmpKikiInfoMap =
									getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

							// ●機器提供サービス契約情報変更（契約変更中）
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_32);
							// 上りマッピング
							setInMapKktkSvcKeiInfoChgTkn(param, fixedText, tmpKikiInfoMap, lastUpdDtm, shelfCd, addressInfoMap, haisoWayCd);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_32, TEMPLATE_ID_32_DETAIL, IN_COLUMN_LIST_32, ERROR_COLUMN_32);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_32), EKK0341C231CBSMsg.UPD_DTM);

						}

						// 返品機器作成要否が｢否｣でない、且つ、機器変更の場合
						if (!JFUStrConst.CD00002_0.equals(inParamHmpinYouhi) && JFUStrConst.CD00002_1.equals(kikiChgUm))
						{
							// 返品受付済判定
							boolean isExistsHempin = false;

							// ●返品機器一覧照会（機器提供サービス契約番号）
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_26);
							// 上りマッピング
							setInMapHmpnSearch(param, fixedText, kktkSvcKeiNoOwn);
							// データなしエラーなし
							ignoreSearchError(param, fixedText);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_26, TEMPLATE_ID_26_DETAIL, IN_COLUMN_LIST_26, ERROR_COLUMN_26);

							for (HashMap hmpnMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_26), TEMPLATE_ID_26_DETAIL))
							{
								String hmpinKikiStat = (String)hmpnMap.get(EDK0301B040CBSMsg1List.HMPIN_KIKI_STAT);
								String hmpinTaknkikiModelCd = (String)hmpnMap.get(EDK0301B040CBSMsg1List.TAKNKIKI_MODEL_CD);
								String hmpinKikiSeizoNo = (String)hmpnMap.get(EDK0301B040CBSMsg1List.KIKI_SEIZO_NO);

								if (!JFUStrConst.CD00296_004.equals(hmpinKikiStat) && modelCdOwn.equals(hmpinTaknkikiModelCd)
										&& kikiSeizoNoOwn.equals(hmpinKikiSeizoNo))
								{
									isExistsHempin = true;
									break;
								}
							}

							// 返品受付済でない場合
							if (!isExistsHempin)
							{
								// ●返品機器受付
								HashMap<String, Object> henpinOutMap = new HashMap<String, Object>();
								JKKBpCommon.createHmpin(param, handle, kktkSvcKeiNoOwn, inParamIdoDiv, henpinOutMap, fixedText);
							}
						}

						// ■旧ルーター(ベーシック・無線)から多機能ルーターへの交換である場合
						// ※多機能ルーターの型式が決定しない為、SOD発行は行わない
						if (ROUTER_CD_LIST.contains(hoyuRouterCdOwn) && JFUStrConst.CD00132_C024.equals(chgAfKktkSvcCd))
						{
							// 照査済の場合
							if (JFUStrConst.CD00056_020.equals(kktkSvcKeiStatBf))
							{
								// ●機器提供サービス契約キャンセル
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_29);
								// 上りマッピング
								setInMapKktkSvcKeiCancel(param, fixedText, kktkSvcKeiNoOwn, inParamMskmDetailNo, inParamIdoDiv, lastUpdDtm);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_29, TEMPLATE_ID_29_DETAIL, IN_COLUMN_LIST_29, ERROR_COLUMN_29);
								// 更新年月日時分秒
								lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_29), EKK0341C330CBSMsg.UPD_DTM);
							}
							// 上記以外
							else
							{
								// ●機器提供サービス契約解約
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_10);
								// 上りマッピング
								setInMapKktkSvcKeiDsl(param, fixedText, kktkSvcKeiNoOwn, lastUpdDtm, inParamMskmDetailNo, inParamIdoDiv);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_10, TEMPLATE_ID_10_DETAIL, IN_COLUMN_LIST_10, ERROR_COLUMN_10);
								// 更新年月日時分秒
								lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_10), EKK0341C340CBSMsg.UPD_DTM);

								// ●機器提供サービス契約解約確定
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_30);
								// 上りマッピング
								setInMapKktkSvcKeiDslFix(param, fixedText, kktkSvcKeiNoOwn, lastUpdDtm);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_30, TEMPLATE_ID_30_DETAIL, IN_COLUMN_LIST_30, ERROR_COLUMN_30);
								// 更新年月日時分秒
								lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_30), EKK0341C340CBSMsg.UPD_DTM);
							}

							// ●お客様一意照会
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_18);
							// 上りマッピング
							setInMapCustomerSearch(param, fixedText, sysId);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_18, TEMPLATE_ID_18_DETAIL, IN_COLUMN_LIST_18, ERROR_COLUMN_18);
							HashMap custMap =
									getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_18), TEMPLATE_ID_18_DETAIL,
											JFUStrConst.I_ZERO);

							// ●機器提供サービス一意照会
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_19);
							// 上りマッピング
							setInMapKkTkSvcSearch(param, fixedText);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_19, TEMPLATE_ID_19_DETAIL, IN_COLUMN_LIST_19, ERROR_COLUMN_19);
							// 宅内機器種別コード
							String tknkikiSbtCd =
									getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_19), TEMPLATE_ID_19_DETAIL,
											EKK0771A010CBSMsg1List.TAKNKIKI_SBT_CD, 0);

							// ●引当棚一意照会
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_20);
							// 上りマッピング
							setInMapHkAtShelfSearch(param, fixedText);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_20, TEMPLATE_ID_20_DETAIL, IN_COLUMN_LIST_20, ERROR_COLUMN_20);
							// 棚コード
							String shelfCd =
									getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_20), TEMPLATE_ID_20_DETAIL,
											EDK0451A010CBSMsg1List.SHELF_CD, 0);

							// 配送方法コード
							String haisoWayCd = null;

							if (JFUStrConst.CD00002_1.equals(inParamKojiUm) || !JFUBPCommon.isNull(inParamOpmsRnkiZmUm))
							{
								// 工事会社配送
								haisoWayCd = JFUStrConst.CD01148_2;
							}
							else
							{
								// お客様宅直送
								haisoWayCd = JFUStrConst.CD01148_1;
							}

							// ●サービス契約(電話)情報取得
							HashMap svcKeiTelInfoMap =
									getSvcKeiTelInfo(handle, param, fixedText, sysId, (String)kaisenUwUniqueMap
											.get(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO), inParamKeySvcKeiNo);

							// VA保有有無
							isVaHoyu = JFUStrConst.CD00002_1.equals((String)svcKeiTelInfoMap.get(RESULT_VA_UM));
							// 料金コースコード(電話)
							String pcrcCdTel = (String)svcKeiTelInfoMap.get(EKK0081B011CBSMsg1List.PCRS_CD);
							// 請求契約番号(電話)
							String seikyKeiNoTel = (String)svcKeiTelInfoMap.get(EKK0321B002CBSMsg1List.SEIKY_KEI_NO);
							// 請求契約番号(電話)機器オプション用
							String seikyKeiNoTelKikiOp = seikyKeiNoTel;

							// 請求契約番号設定判定
							if (JFUBPCommon.isNull(seikyKeiNoNet))
							{
								// 保有ルーター無し、かつ、VA有り
								seikyKeiNoNet = seikyKeiNoTel;
							}

							// ●機器提供サービス契約登録
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_11);
							// 上りマッピング
							setInMapKktkRegist(param, fixedText, pcrsChangeTg, BLANK, null, sysId, seikyKeiNoNet, inParamMskmDetailNo,
									kaisenUwUniqueMap, lastUpdDtm, inParamIdoDiv, tknkikiSbtCd, shelfCd, false, null, haisoWayCd, pplanChangeTg,
									custMap, addressInfoMap);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_11, TEMPLATE_ID_11_DETAIL, IN_COLUMN_LIST_11, ERROR_COLUMN_11);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.UPD_DTM);
							// 機器提供サービス契約番号
							sendRouterKktkSvcKeiNo =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.KKTK_SVC_KEI_NO);
							// 機器変更番号
							sendRouterKikiChgNo =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.KIKI_CHG_NO);

							// ●機器オプションサービス契約登録
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
							// 上りマッピング
							setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, sendRouterKktkSvcKeiNo,
									inParamMskmDetailNo, null, sysId, inParamIdoDiv, seikyKeiNoNet, lastUpdDtm, inParamRtNewPcrsAplyFlg);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD,
									ERROR_COLUMN_KKOPADD);
							// 機器オプションサービス契約番号(ルーター機能)
							String kkopSvcKeiNoRouter =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD),
											EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
							// 更新年月日時分秒
							lastUpdDtmKkop =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);

							// VA機能登録
							String kkopSvcKeiNoVa = BLANK;
							if (isVaHoyu)
							{
								// 要求種別コードが｢新規｣以外、且つ、(工事会社配送(新設)でOPMS連携前、または、直送で出荷指図前)の場合
								if (!JFUStrConst.CD00317_02.equals(inParamYokyuSbtCd)
										&& ((JFUStrConst.CD00002_0.equals(inParamOpmsRnkiZmUm) && JFUStrConst.CD00002_1
												.equals(inParamShinsetsuKojiUm)) || JFUStrConst.CD00009_001.equals(inParamHaisoStatVa)))
								{
									// 機器提供サービス契約番号(VA)
									String kktkSvcKeiNoVa = (String)svcKeiTelInfoMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
									// 機器提供サービス契約ステータス(VA)
									String kktkSvcKeiStatVa = (String)svcKeiTelInfoMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT);

									// ●機器提供サービス契約一意照会
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_27);
									// 上りマッピング
									setInMapKktkSvcKeiUqSearchBf(param, fixedText, kktkSvcKeiNoVa);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
									// 変更前の機器情報
									HashMap kikiInfoMapBfVa =
											getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

									// ●機器提供サービス契約情報変更 ※回収機器有無設定
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_28);
									// 上りマッピング
									setInMapKktkSvcKeiInfoChgVa(param, fixedText, kikiInfoMapBfVa, lastUpdDtm, inParamIdoDiv);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_28, TEMPLATE_ID_28_DETAIL, IN_COLUMN_LIST_28, ERROR_COLUMN_28);
									// 更新年月日時分秒
									lastUpdDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_28), EKK0341C230CBSMsg.UPD_DTM);

									// 受付済、照査済の場合
									if (JFUStrConst.CD00056_010.equals(kktkSvcKeiStatVa) || JFUStrConst.CD00056_020.equals(kktkSvcKeiStatVa))
									{
										// ●機器提供サービス契約キャンセル
										// ユーザデータ初期化
										initData(param, fixedText, IN_COLUMN_LIST_29);
										// 上りマッピング
										setInMapKktkSvcKeiCancel(param, fixedText, kktkSvcKeiNoVa, inParamMskmDetailNo, inParamIdoDiv, lastUpdDtm);
										// サービスIF実行
										executeSC(handle, param, fixedText, TEMPLATE_ID_29, TEMPLATE_ID_29_DETAIL, IN_COLUMN_LIST_29, ERROR_COLUMN_29);
										// 更新年月日時分秒
										lastUpdDtm =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_29), EKK0341C330CBSMsg.UPD_DTM);
									}
									// 締結済の場合
									else if (JFUStrConst.CD00056_030.equals(kktkSvcKeiStatVa))
									{
										// ●機器提供サービス契約解約
										// ユーザデータ初期化
										initData(param, fixedText, IN_COLUMN_LIST_10);
										// 上りマッピング
										setInMapKktkSvcKeiDsl(param, fixedText, kktkSvcKeiNoVa, lastUpdDtm, inParamMskmDetailNo, inParamIdoDiv);
										// サービスIF実行
										executeSC(handle, param, fixedText, TEMPLATE_ID_10, TEMPLATE_ID_10_DETAIL, IN_COLUMN_LIST_10, ERROR_COLUMN_10);
										// 更新年月日時分秒
										lastUpdDtm =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_10), EKK0341C340CBSMsg.UPD_DTM);

										// ●機器提供サービス契約解約確定
										// ユーザデータ初期化
										initData(param, fixedText, IN_COLUMN_LIST_30);
										// 上りマッピング
										setInMapKktkSvcKeiDslFix(param, fixedText, kktkSvcKeiNoVa, lastUpdDtm);
										// サービスIF実行
										executeSC(handle, param, fixedText, TEMPLATE_ID_30, TEMPLATE_ID_30_DETAIL, IN_COLUMN_LIST_30, ERROR_COLUMN_30);
										// 更新年月日時分秒
										lastUpdDtm =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_30), EKK0341C340CBSMsg.UPD_DTM);
									}

									// サービス契約番号(電話)
									String telSvcKeiNo = (String)kikiInfoMapBfVa.get(EKK0341A010CBSMsg1List.SVC_KEI_NO);
									// 電話番号紐付け
									updTelRelation(handle, param, fixedText, telSvcKeiNo, sendRouterKikiChgNo, lastUpdDtm, inParamIdoDiv,
											inParamMskmDetailNo);
								}

								// ●機器オプションサービス契約登録
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
								// 上りマッピング
								if (JFUStrConst.CD00134_A31.equals(pcrcCdTel))
								{
									// 1番号
									chgAfKkopSvcCd = JFUStrConst.KK2801_KKOP_SVC_CD_G02;
									pcrsChangeTgKkop = JFUStrConst.CD00134_G03;
									pplanChangeTgKkop = JFUStrConst.CD00565_PG0301;

									setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, sendRouterKktkSvcKeiNo,
											inParamMskmDetailNo, JFUStrConst.CD00002_1, sysId, inParamIdoDiv, seikyKeiNoTelKikiOp, lastUpdDtmKkop);
								}
								else if (JFUStrConst.CD00134_A32.equals(pcrcCdTel))
								{
									// 2番号
									chgAfKkopSvcCd = JFUStrConst.KK2801_KKOP_SVC_CD_G02;
									pcrsChangeTgKkop = JFUStrConst.CD00134_G04;
									pplanChangeTgKkop = JFUStrConst.CD00565_PG0401;

									setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, sendRouterKktkSvcKeiNo,
											inParamMskmDetailNo, JFUStrConst.CD00002_1, sysId, inParamIdoDiv, seikyKeiNoTelKikiOp, lastUpdDtmKkop);
								}
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD,
										ERROR_COLUMN_KKOPADD);
								// 機器オプションサービス契約番号(VA機能)
								kkopSvcKeiNoVa =
										getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD),
												EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
								// 更新年月日時分秒
								lastUpdDtmKkop =
										getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);
							}

							// ●機器提供サービス契約照査
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_12);
							// 上りマッピング
							setInMapKktkShosa(param, fixedText, sendRouterKktkSvcKeiNo, lastUpdDtm, inParamIdoDiv);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_12, TEMPLATE_ID_12_DETAIL, IN_COLUMN_LIST_12, ERROR_COLUMN_12);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.UPD_DTM);
							// 世代登録年月日時分秒
							String geneAddDtm =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.GENE_ADD_DTM);

							// ●機器オプションサービス契約照査
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
							// 上りマッピング
							setInMapKkopShosa(param, fixedText, kkopSvcKeiNoRouter, inParamIdoDiv, lastUpdDtmKkop);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL, IN_COLUMN_LIST_KKOPSHOSA,
									ERROR_COLUMN_KKOPSHOSA);
							// 更新年月日時分秒
							lastUpdDtmKkop =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA), EKK2811C030CBSMsg.UPD_DTM);

							// VA機能照査
							if (isVaHoyu)
							{
								// ●機器オプションサービス契約照査
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
								// 上りマッピング
								setInMapKkopShosa(param, fixedText, kkopSvcKeiNoVa, inParamIdoDiv, lastUpdDtmKkop);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL, IN_COLUMN_LIST_KKOPSHOSA,
										ERROR_COLUMN_KKOPSHOSA);
								// 更新年月日時分秒
								lastUpdDtmKkop =
										getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA), EKK2811C030CBSMsg.UPD_DTM);
							}

							// ■OPMS連携済みの場合 ※バックのみ
							if (JFUStrConst.CD00002_1.equals(inParamOpmsRnkiZmUm))
							{
								// ●機器提供サービス契約一意照会
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_27);
								// 上りマッピング
								setInMapKktkSvcKeiUqSearchAf(param, fixedText, sendRouterKktkSvcKeiNo, geneAddDtm);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
								// 機器情報
								HashMap tmpKikiInfoMap =
										getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

								// ●機器提供サービス契約情報変更 ※工事完了後配送設定
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_28);
								// 上りマッピング
								setInMapKktkSvcKeiInfoChgHaisoAfKojiFin(param, fixedText, tmpKikiInfoMap, lastUpdDtm);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_28, TEMPLATE_ID_28_DETAIL, IN_COLUMN_LIST_28, ERROR_COLUMN_28);
								// 更新年月日時分秒
								lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_28), EKK0341C230CBSMsg.UPD_DTM);
								// 世代登録年月日時分秒
								geneAddDtm =
										getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_28), EKK0341C230CBSMsg.GENE_ADD_DTM);
							}
							sendRouterGeneAddDtm = geneAddDtm;
						}
						// ■多機能ルーター保有(多機能ルーター機能変更(有線→無線)、または、ルーター機能登録(VA機能のみ保有時)、またはファミパ登録)
						// ※SOD発行を行う
						else if(!JFUBPCommon.isNull(pcrsChangeTgKkop) || JFUStrConst.CD00576_00049.equals(inParamIdoDiv))
						{
							// 機器提供サービス契約(多機能ルーター)の世代登録年月日時分秒を設定
							String geneAddDtm = tknGeneAddDtm;

							// ●機器オプションサービス契約一意照会
							initData(param, fixedText, IN_COLUMN_LIST_EKK2811A010);
							// 上りマッピング
							setInMapKkopSearch(param, fixedText, kkopSvcKeiNo);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811A010, TEMPLATE_ID_EKK2811A010_DETAIL, IN_COLUMN_LIST_EKK2811A010,
									ERROR_COLUMN_EKK2811A010);

							// 変更前世代登録年月日時分秒(多機能ルーター機能)
							String kkopGeneAddDtmBf =
									getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811A010),
											TEMPLATE_ID_EKK2811A010_DETAIL, EKK2811A010CBSMsg1List.GENE_ADD_DTM, 0);

							// ●機器提供サービス契約一意照会
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_27);
							// 上りマッピング
							setInMapKktkSvcKeiUqSearchBf(param, fixedText, kktkSvcKeiNoOwn);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
							// 最終更新年月日時分秒
							lastUpdDtm =
									getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL,
											EKK0341A010CBSMsg1List.LAST_UPD_DTM, JFUStrConst.I_ZERO);

							// サービス開始日
							String svcStaYmd =
									getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL,
											EKK0341A010CBSMsg1List.SVC_STA_YMD, JFUStrConst.I_ZERO);

							// OM-2016-0000830 2016/04/11 add start
							// 配送要否の照査時個別設定（配送しない）で初期化
							boolean isCreateHaisoForShosa = false;
							// OM-2016-0000830 2016/04/11 add end
							// 更新後の機器提供サービス契約ステータス
							String updKktkSvcKeiStat = kktkSvcKeiStat;

							// 多機能ルーターのステータスが受付済で、ネット契約が照査済以降の場合
							if (JFUStrConst.CD00056_010.equals(kktkSvcKeiStat)
									&& (JFUStrConst.CD00037_020.equals(svcKeiStatNet) || JFUStrConst.CD00037_030.equals(svcKeiStatNet) || JFUStrConst.CD00037_100
											.equals(svcKeiStatNet)))
							{
								// ●機器提供サービス契約照査
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_12);
								// 上りマッピング
								setInMapKktkShosa(param, fixedText, kktkSvcKeiNoOwn, lastUpdDtm, inParamIdoDiv);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_12, TEMPLATE_ID_12_DETAIL, IN_COLUMN_LIST_12, ERROR_COLUMN_12);
								// 更新年月日時分秒
								lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.UPD_DTM);
								
								// OM-2016-0000830 2016/04/11 add start
								// ●機器提供サービス契約一意照会
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_27);
								// 上りマッピング
								setInMapKktkSvcKeiUqSearchBf(param, fixedText, kktkSvcKeiNoOwn);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
								// 変更前の機器情報
								HashMap kikiInfoMapCurr =
										getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);
								// 機器提供サービス契約ステータス
								String kikiStcSakiPlaceNo = (String)kikiInfoMapCurr.get(EKK0341A010CBSMsg1List.KIKI_STC_SAKI_PLACE_NO);
								if (JFUBPCommon.isNull(kikiStcSakiPlaceNo))
								{
									// ●機器設置先場所反映
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_UPD_KIKI_PLACE_NO);
									// 上りマッピング
									setInMapUpdKikiPlaceNo(param, fixedText, kktkSvcKeiNoOwn, lastUpdDtm, (String)kaisenUwUniqueMap
											.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_NO));
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_UPD_KIKI_PLACE_NO, TEMPLATE_ID_UPD_KIKI_PLACE_NO_DETAIL,
											IN_COLUMN_LIST_UPD_KIKI_PLACE_NO, ERROR_COLUMN_UPD_KIKI_PLACE_NO);
									// 更新年月日時分秒
									lastUpdDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_UPD_KIKI_PLACE_NO),
													EKK0341C450CBSMsg.UPD_DTM);
								}

								// 配送要否の照査時個別設定（配送する）
								isCreateHaisoForShosa = true;
								// OM-2016-0000830 2016/04/11 add end
								// 機器提供サービス契約ステータス 照査済
								updKktkSvcKeiStat = (String)kikiInfoMapCurr.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT);
							}

							// ●サービス契約一意照会
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_2);
							// 上りマッピング
							setInMapSvcKeiUniqueSearch(param, fixedText, inParamKeySvcKeiNo);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_2, TEMPLATE_ID_2_DETAIL, IN_COLUMN_LIST_2, ERROR_COLUMN_2);
							// 最終更新年月日時分秒(多機能ルーター保有時の機器オプション登録・更新時に使用(機器オプションは回線でなくサービス契約で排他))
							lastUpdDtm =
									getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_2), TEMPLATE_ID_2_DETAIL,
											EKK0081A010CBSMsg1List.LAST_UPD_DTM, JFUStrConst.I_ZERO);
// ANK-3777-00-00 ADD START
							// 変更前多機能ルータールーター機能識別コード(初期値)
							inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD_BEF, "");
// ANK-3777-00-00 ADD END
							// ★多機能ルーター(ルーター機能)保有時
							if (!onlyTknVaFlg)
							{
// ANK-3777-00-00 ADD START
								// 変更前多機能ルーター機能コード
								if (JFUStrConst.CD00002_1.equals(vaUm) || isVaKinoSetteiYou)
								{
									// ルーター＋ＶＡ機能
									inMap.put(OUT_PARAM_TAKINORT_KINO_CD_BEF, JFUStrConst.CD01603_C);
								}
								else
								{
									// ルーター機能のみ
									inMap.put(OUT_PARAM_TAKINORT_KINO_CD_BEF, JFUStrConst.CD01603_A);
								}
								// 変更前多機能ルータールーター機能識別コード
								if (JFUStrConst.CD00134_G01.equals(kkopPcrsCdOut))
								{
									// 有線ルーター機能
									inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD_BEF, JFUStrConst.CD01604_1);
								}
								else if (JFUStrConst.CD00134_G02.equals(kkopPcrsCdOut))
								{
									// 無線ルーター機能
									inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD_BEF, JFUStrConst.CD01604_0);
								}
// ANK-3777-00-00 ADD END

								// 変更前機器オプションサービス契約番号(多機能ルーター機能)
								String kkopSvcKeiNoBf = kkopSvcKeiNo;
								// 新コースから適用
								boolean rtNewPcrsAply = "1".equals(inParamKikiOpMskm) && "1".equals(inParamRtNewPcrsAplyFlg);
								// 無線申込（新コースから適用）
								if (rtNewPcrsAply)
								{
									// 機器オプションサービス契約を解約新規で登録
									kkopSvcKeiNo =
											newKkopSvcKei(handle, param, fixedText, inParamMskmDetailNo, inParamIdoDiv,
													inParamKeySvcKeiNo, inParamRtNewPcrsAplyFlg, sysId, seikyKeiNoNet, sendRouterKktkSvcKeiNo,
													chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, kkopSvcKeiNo, updKktkSvcKeiStat, lastUpdDtm);
								}
								// 多機能ルーターのステータスが受付済で、ネット契約が照査済以降の場合
								else if (JFUStrConst.CD00056_010.equals(kktkSvcKeiStat)
										&& (JFUStrConst.CD00037_020.equals(svcKeiStatNet) || JFUStrConst.CD00037_030.equals(svcKeiStatNet) || JFUStrConst.CD00037_100
												.equals(svcKeiStatNet)))
								{
									// ●機器オプションサービス契約照査
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
									// 上りマッピング
									setInMapKkopShosa(param, fixedText, kkopSvcKeiNo, inParamIdoDiv, lastUpdDtm);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL,
											IN_COLUMN_LIST_KKOPSHOSA, ERROR_COLUMN_KKOPSHOSA);

									// 更新年月日時分秒
									lastUpdDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA),
													EKK2811C030CBSMsg.UPD_DTM);
								}

								// 機器オプションの変更がある場合のみ(有線→無線)機器オプションサービス契約料金プラン変更を行う
								if (hoyukikiMap.size() != 0 && !JFUBPCommon.isNull(infoSb.toString()))
								{
									// ●機器オプションサービス契約一意照会 ※最新の情報を取得
									initData(param, fixedText, IN_COLUMN_LIST_EKK2811A010);
									// 上りマッピング
									setInMapKkopSearch(param, fixedText, kkopSvcKeiNo);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811A010, TEMPLATE_ID_EKK2811A010_DETAIL,
											IN_COLUMN_LIST_EKK2811A010, ERROR_COLUMN_EKK2811A010);
									// 世代登録年月日時分秒
									String kkopGeneAddDtmLatest =
											getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811A010),
													TEMPLATE_ID_EKK2811A010_DETAIL, EKK2811A010CBSMsg1List.GENE_ADD_DTM, 0);

									// 新コースから適用の場合
									if (rtNewPcrsAply)
									{
										// プラン変更しない
									}
									// サービス提供中の場合
									else if (JFUStrConst.CD00037_100.equals(svcKeiStatNet) && JFUStrConst.CD00037_100.equals(kktkSvcKeiStat))
									{
										// ●機器オプションサービス契約料金プラン変更
										initData(param, fixedText, IN_COLUMN_LIST_8);
										// 上りマッピング
										setInMapKkopPplanChg(param, fixedText, kkopSvcKeiNo, inParamIdoDiv, pcrsChangeTgKkop, pplanChangeTgKkop,
												lastUpdDtm, inParamMskmDetailNo);
										// サービスIF実行
										executeSC(handle, param, fixedText, TEMPLATE_ID_8, TEMPLATE_ID_8_DETAIL, IN_COLUMN_LIST_8, ERROR_COLUMN_8);
										// 更新年月日時分秒
										lastUpdDtm =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_8), EKK2811C250CBSMsg.UPD_DTM);

										// ●機器オプションサービス契約料金プラン変更確定
										initData(param, fixedText, IN_COLUMN_LIST_15);
										// 上りマッピング
										setInMapKkopPplanKakutei(param, fixedText, kkopSvcKeiNo, lastUpdDtm);
										// サービスIF実行
										executeSC(handle, param, fixedText, TEMPLATE_ID_15, TEMPLATE_ID_15_DETAIL, IN_COLUMN_LIST_15, ERROR_COLUMN_15);
										// 更新年月日時分秒
										lastUpdDtm =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_15), EKK2811C260CBSMsg.UPD_DTM);
									}
									// 受付済、照査済、締結済の場合
									else
									{

										// ●機器オプションサービス契約手続中料金プラン変更
										initData(param, fixedText, IN_COLUMN_LIST_42);
										// 上りマッピング
										setInMapKkopPplanChgTetsuzuki(param, fixedText, kkopSvcKeiNo, pcrsChangeTgKkop, pplanChangeTgKkop,
												lastUpdDtm, inParamMskmDetailNo, kkopGeneAddDtmLatest);
										// サービスIF実行
										executeSC(handle, param, fixedText, TEMPLATE_ID_42, TEMPLATE_ID_42_DETAIL, IN_COLUMN_LIST_42, ERROR_COLUMN_42);
										// 更新年月日時分秒
										lastUpdDtm =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_42), EKK2811C240CBSMsg.UPD_DTM);
									}
									// 機器オプションのみ変更
									kkOpChgOnlyUm = JFUStrConst.CD00002_1;
								}

								// ●機器オプションサービス契約一意照会
								initData(param, fixedText, IN_COLUMN_LIST_EKK2811A010);
								// 上りマッピング
								setInMapKkopSearch(param, fixedText, kkopSvcKeiNo);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811A010, TEMPLATE_ID_EKK2811A010_DETAIL,
										IN_COLUMN_LIST_EKK2811A010, ERROR_COLUMN_EKK2811A010);
								// 変更前の機器オプション情報
								HashMap kikiOpInfoMapBf =
										getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811A010),
												TEMPLATE_ID_EKK2811A010_DETAIL, 0);

								// 機器連帯契約変更手続中フラグ
								String kikiRntaiKeiChgechuFlg =
										getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811A010),
												TEMPLATE_ID_EKK2811A010_DETAIL, EKK2811A010CBSMsg1List.KIKI_RNTAI_KEI_CHGECHU_FLG, 0);

								String kkopGeneAddDtmAf = null;
								if (!JFUStrConst.KK2811_KIKI_RNTAI_KEI_CHGECHU_FLG_0.equals(kikiRntaiKeiChgechuFlg))
								{

									// ●機器オプションサービス契約情報変更
									initData(param, fixedText, IN_COLUMN_LIST_EKK2811C290);
									// 上りマッピング
									setInMapKkopKeiyakuJohoHenko(param, fixedText, kikiOpInfoMapBf, lastUpdDtm, inParamMskmDetailNo);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811C290, TEMPLATE_ID_EKK2811C290_DETAIL,
											IN_COLUMN_LIST_EKK2811C290, ERROR_COLUMN_EKK2811C290);
									// 更新年月日時分秒
									lastUpdDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811C290),
													EKK2811C260CBSMsg.UPD_DTM);

									// 変更後世代登録年月日時分秒(ルーター機能)
									kkopGeneAddDtmAf =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811C290),
													EKK2811C290CBSMsg.GENE_ADD_DTM);

								}
								else
								{

									// 変更後世代登録年月日時分秒(ルーター機能)
									kkopGeneAddDtmAf =
											getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811A010),
													TEMPLATE_ID_EKK2811A010_DETAIL, EKK2811A010CBSMsg1List.GENE_ADD_DTM, 0);
								}

								// 多機能ルーターの宅内機器型式が決まっている場合のみSODを発行する
								if (!JFUBPCommon.isNull(modelCdOwn))
								{
									// SOD用マップに格納
									kkopAddMapForSod.put(KKOP_SVC_KEI_NO, kkopSvcKeiNo);
									kkopAddMapForSod.put(BF_GENE_ADD_DTM, kkopGeneAddDtmBf);
									kkopAddMapForSod.put(AF_GENE_ADD_DTM, kkopGeneAddDtmAf);
									kkopAddMapForSod.put(BF_KKOP_SVC_KEI_NO, kkopSvcKeiNoBf);
									kkopAddMapForSod.put(AF_KKOP_SVC_KEI_NO, kkopSvcKeiNo);
									kkopAddMapForSod.put(KKTK_SVC_KEI_NO, sendRouterKktkSvcKeiNo);
									kkopAddListForSod.add(kkopAddMapForSod);
								}
							}
							// ★多機能ルーター(VA機能のみ)保有時
							else
							{
// ANK-3777-00-00 ADD START
								// 変更前多機能ルーター機能コード(ＶＡ機能)
								inMap.put(OUT_PARAM_TAKINORT_KINO_CD_BEF, JFUStrConst.CD01603_B);
// ANK-3777-00-00 ADD END
								// 機器オプションのみ変更
								kkOpChgOnlyUm = JFUStrConst.CD00002_1;

								// ●機器オプションサービス契約登録(ルーター機能)
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
								// 上りマッピング
								setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, sendRouterKktkSvcKeiNo,
										inParamMskmDetailNo, null, sysId, inParamIdoDiv, seikyKeiNoNet, lastUpdDtm, inParamRtNewPcrsAplyFlg);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD,
										ERROR_COLUMN_KKOPADD);
								// 機器オプションサービス契約番号(ルーター機能)
								String kkopSvcKeiNoRouter =
										getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD),
												EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
								// 更新年月日時分秒
								lastUpdDtm =
										getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);

								// ●機器オプションサービス契約一意照会
								initData(param, fixedText, IN_COLUMN_LIST_EKK2811A010);
								// 上りマッピング
								setInMapKkopSearch(param, fixedText, kkopSvcKeiNoRouter);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811A010, TEMPLATE_ID_EKK2811A010_DETAIL,
										IN_COLUMN_LIST_EKK2811A010, ERROR_COLUMN_EKK2811A010);
								// 最終更新年月日時分秒
								lastUpdDtm =
										getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811A010),
												TEMPLATE_ID_EKK2811A010_DETAIL, EKK2811A010CBSMsg1List.LAST_UPD_DTM, 0);

								String kkopGeneAddDtmAf = null;

								// 多機能ルーターのステータスが照査済、または、受付済で、ネット契約が照査済以降の場合
								if (JFUStrConst.CD00037_020.equals(kkopSvcKeiStat)
										|| (JFUStrConst.CD00056_010.equals(kkopSvcKeiStat) && (JFUStrConst.CD00037_020.equals(svcKeiStatNet)
												|| JFUStrConst.CD00037_030.equals(svcKeiStatNet) || JFUStrConst.CD00037_100.equals(svcKeiStatNet))))
								{
									// ●機器オプションサービス契約照査
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
									// 上りマッピング
									setInMapKkopShosa(param, fixedText, kkopSvcKeiNoRouter, inParamIdoDiv, lastUpdDtm);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL,
											IN_COLUMN_LIST_KKOPSHOSA, ERROR_COLUMN_KKOPSHOSA);
									// 世代登録年月日時分秒(ルーター機能)
									kkopGeneAddDtmAf =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA),
													EKK2811C030CBSMsg.GENE_ADD_DTM);
									// 更新年月日時分秒
									lastUpdDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA),
													EKK2811C030CBSMsg.UPD_DTM);
								}
								// 締結済、サービス提供中の場合
								else if (JFUStrConst.CD00037_030.equals(kkopSvcKeiStat) || JFUStrConst.CD00037_100.equals(kkopSvcKeiStat))
								{
									// ●機器オプションサービス契約照査締結
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
									// 上りマッピング
									setInMapKkopShosaTeiketsu(param, fixedText, kkopSvcKeiNoRouter, inParamIdoDiv, lastUpdDtm);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA_TEIKETSU, TEMPLATE_ID_KKOPSHOSA_TEIKETSU_DETAIL,
											IN_COLUMN_LIST_KKOPSHOSA_TEIKETSU, ERROR_COLUMN_KKOPSHOSA_TEIKETSU);
									// 世代登録年月日時分秒(ルーター機能)
									kkopGeneAddDtmAf =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA_TEIKETSU),
													EKK2811C030CBSMsg.GENE_ADD_DTM);
									// 更新年月日時分秒
									lastUpdDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA_TEIKETSU),
													EKK2811C030CBSMsg.UPD_DTM);

									// サービス提供中の場合
									if (JFUStrConst.CD00037_100.equals(svcKeiStatNet) && JFUStrConst.CD00037_100.equals(kktkSvcKeiStat) && !"1".equals(inParamRtNewPcrsAplyFlg))
									{
										String dojiStaUm = JFUStrConst.CD00002_0;
										if (JCCBPCommon.getOpeDate(null).compareTo(svcStaYmd) < 0)
										{
											// サービス開始日が運用日より未来日付の場合
											dojiStaUm = JFUStrConst.CD00002_1;
										}

										// ●機器オプションサービス契約開始
										// ユーザデータ初期化
										initData(param, fixedText, IN_COLUMN_LIST_KKOPKAISHI);
										// 上りマッピング
										setInMapKkopKaishi(param, fixedText, kkopSvcKeiNoRouter, inParamIdoDiv, lastUpdDtm, dojiStaUm);
										// サービスIF実行
										executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPKAISHI, TEMPLATE_ID_KKOPKAISHI_DETAIL,
												IN_COLUMN_LIST_KKOPKAISHI, ERROR_COLUMN_KKOPKAISHI);
										// 世代登録年月日時分秒(ルーター機能)
										kkopGeneAddDtmAf =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPKAISHI),
														EKK2811C070CBSMsg.GENE_ADD_DTM);
										// 更新年月日時分秒
										lastUpdDtm =
												getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPKAISHI),
														EKK2811C070CBSMsg.UPD_DTM);
									}
								}

								// 多機能ルーターの宅内機器型式が決まっている場合のみSODを発行する
								if (!JFUBPCommon.isNull(modelCdOwn))
								{
									// SOD用マップに格納
									kkopAddMapForSod.put(KKOP_SVC_KEI_NO, kkopSvcKeiNoRouter);
									kkopAddMapForSod.put(BF_GENE_ADD_DTM, JFUStrConst.EMPTY);
									kkopAddMapForSod.put(AF_GENE_ADD_DTM, kkopGeneAddDtmAf);
									kkopAddMapForSod.put(BF_KKOP_SVC_KEI_NO, JFUStrConst.EMPTY);
									kkopAddMapForSod.put(AF_KKOP_SVC_KEI_NO, kkopSvcKeiNoRouter);
									kkopAddMapForSod.put(KKTK_SVC_KEI_NO, sendRouterKktkSvcKeiNo);
									kkopAddListForSod.add(kkopAddMapForSod);
								}
							}

							// ■機器提供サービス契約ステータが契約変更中である場合
							if (JFUStrConst.CD00056_110.equals(kktkSvcKeiStatBf))
							{
								// ●機器提供サービス契約一意照会
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_27);
								// 上りマッピング
								setInMapKktkSvcKeiUqSearchAf(param, fixedText, kktkSvcKeiNoOwn, geneAddDtm);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
								// 変更前の機器情報
								HashMap kikiInfoMapAf =
										getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

								// ●引当棚一意照会
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_20);
								// 上りマッピング
								setInMapHkAtShelfSearch(param, fixedText);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_20, TEMPLATE_ID_20_DETAIL, IN_COLUMN_LIST_20, ERROR_COLUMN_20);
								// 棚コード
								String shelfCd =
										getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_20), TEMPLATE_ID_20_DETAIL,
												EDK0451A010CBSMsg1List.SHELF_CD, 0);

								// ●お客様一意照会
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_18);
								// 上りマッピング
								setInMapCustomerSearch(param, fixedText, sysId);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_18, TEMPLATE_ID_18_DETAIL, IN_COLUMN_LIST_18, ERROR_COLUMN_18);
								HashMap custMap =
										getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_18), TEMPLATE_ID_18_DETAIL,
												JFUStrConst.I_ZERO);

								// 配送方法コード
								String haisoWayCd = null;

								if (JFUStrConst.CD00002_1.equals(inParamKojiUm) || !JFUBPCommon.isNull(inParamOpmsRnkiZmUm))
								{
									// 工事会社配送
									haisoWayCd = JFUStrConst.CD01148_2;
								}
								else
								{
									// お客様宅直送
									haisoWayCd = JFUStrConst.CD01148_1;
								}

								// ●機器提供サービス契約情報変更（契約変更中）
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_32);
								// 上りマッピング
								setInMapKktkSvcKeiInfoChgAF(param, fixedText, kikiInfoMapAf, geneAddDtm, lastUpdDtm, inParamIdoDiv, shelfCd,
										haisoWayCd, kaisenUwUniqueMap, custMap);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_32, TEMPLATE_ID_32_DETAIL, IN_COLUMN_LIST_32, ERROR_COLUMN_32);
								// 更新年月日時分秒
								lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_32), EKK0341C231CBSMsg.UPD_DTM);
								// 世代登録年月日時分秒
								geneAddDtm =
										getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_32), EKK0341C231CBSMsg.GENE_ADD_DTM);

								// OPMS連携済みの場合 ※バックのみ
								if (JFUStrConst.CD00002_1.equals(inParamOpmsRnkiZmUm))
								{
									// ●機器提供サービス契約一意照会
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_27);
									// 上りマッピング
									setInMapKktkSvcKeiUqSearchAf(param, fixedText, kktkSvcKeiNoOwn, geneAddDtm);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
									// 機器情報
									HashMap tmpKikiInfoMap =
											getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

									// ●機器提供サービス契約情報変更（契約変更中）
									// ユーザデータ初期化
									initData(param, fixedText, IN_COLUMN_LIST_32);
									// 上りマッピング
									setInMapKktkSvcKeiInfoChgAfHaisoAfKojiFin(param, fixedText, tmpKikiInfoMap, lastUpdDtm);
									// サービスIF実行
									executeSC(handle, param, fixedText, TEMPLATE_ID_32, TEMPLATE_ID_32_DETAIL, IN_COLUMN_LIST_32, ERROR_COLUMN_32);
									// 更新年月日時分秒
									lastUpdDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_32), EKK0341C231CBSMsg.UPD_DTM);
									// 世代登録年月日時分秒
									geneAddDtm =
											getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_32),
													EKK0341C231CBSMsg.GENE_ADD_DTM);
								}
							}

							// 多機能ルーターの機能変更の場合配送は不要
							isCreateHaiso = false;
// ANK-3777-00-00 ADD START
							// 多機能ルーター申込の場合は配送要
							if (JFUStrConst.CD00002_1.equals(inParamTknRtMskm) || JFUStrConst.CD00002_1.equals(kikiChgUm))
							{
								// 配送要に再設定
								isCreateHaiso = true;
							}
// ANK-3777-00-00 ADD END
							// OM-2016-0000830 2016/04/11 add start
							// 配送要否の照査時個別設定を判定
							if (isCreateHaisoForShosa)
							{
								// 配送要に再設定
								isCreateHaiso = true;
							}
							// OM-2016-0000830 2016/04/11 add end

							sendRouterGeneAddDtm = geneAddDtm;
						}

						// コース変更の場合
						if (JFUStrConst.CD00576_00009.equals(inParamIdoDiv))
						{
							// 工事有の場合
							if (JFUStrConst.CD00002_1.equals(inParamKojiUm))
							{
								// 配送不要
								isCreateHaiso = false;
							}
						}
						else
						{
							// OPMS連携済有無がNULL以外(工事有のファミパ申込)の場合
							if (!JFUBPCommon.isNull(inParamOpmsRnkiZmUm))
							{
								// 配送不要
								isCreateHaiso = false;
							}
						}

						// 配送要の場合
						if (isCreateHaiso && !JFUStrConst.CD00001_0.equals(inParamHaisoYouhi))
						{
							// ●出荷抑止
							execShukkaYokushi(handle, param, fixedText, sendRouterKktkSvcKeiNo, svcKeiKaisenUcwkNo, inParamChgBfPcrsCd,
									inParamIdoDiv, lastUpdDtmKkop);
							// ●配送受付
							HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
							JKKBpCommon.createHaiso(param, handle, inParamMskmNo, inParamMskmDetailNo, inParamMskmshoNo, sendRouterKktkSvcKeiNo,
									inParamIdoDiv, haisoOutMap, fixedText);
							inMap.put(HAISO_OUT_MAP_KEY, haisoOutMap);
						}
					}
					// 機能コードが「保有ルーター情報取得」の場合
					else
					{
						break;
					}
				}
				else
				{
					// (異動区分がコース変、且つ、多機能ルーター+旧ルータ保有、または、交換が必要な旧ルーター保有)、または、
					// (異動区分が割引登録、且つ、(保有ルーターが新無線、且つ、多機能ルーター交換有無が無)以外)
					// ・ファミリーパック申込時は多機能ルーターが出荷されるので、必ず複数ルーターは返却する。
					// ・コース変更時、多機能ルーター(受付済)、且つ、保有ルーター(ベーシック100M、旧無線、新無線100M）が存在する場合は解約返品を行う。
					// ・ファミリーパック申込時で新無線かつ交換希望する場合、返却処理を行う
					if (isCorseChgAndFukusuRouter || JFUStrConst.CD00576_00049.equals(inParamIdoDiv)
							&& !(SIN_MUSEN_ROUTER_CD_LIST.contains(hoyuRouterCdOwn) && JFUStrConst.CD00002_0.equals(inParamTknChgUm)))
					{
						// 機能コードが「保有ルーター情報取得」以外の場合
						if (!JPCModelConstant.FUNC_CD_2.equals(funcCd))
						{
							// 返品受付済判定
							boolean isExistsHempin = false;

							// ●返品機器一覧照会（機器提供サービス契約番号）
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_26);
							// 上りマッピング
							setInMapHmpnSearch(param, fixedText, kktkSvcKeiNoOwn);
							// データなしエラーなし
							ignoreSearchError(param, fixedText);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_26, TEMPLATE_ID_26_DETAIL, IN_COLUMN_LIST_26, ERROR_COLUMN_26);

							for (HashMap hmpnMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_26), TEMPLATE_ID_26_DETAIL))
							{
								String hmpinKikiStat = (String)hmpnMap.get(EDK0301B040CBSMsg1List.HMPIN_KIKI_STAT);
								String hmpinTaknkikiModelCd = (String)hmpnMap.get(EDK0301B040CBSMsg1List.TAKNKIKI_MODEL_CD);
								String hmpinKikiSeizoNo = (String)hmpnMap.get(EDK0301B040CBSMsg1List.KIKI_SEIZO_NO);

								if (!JFUStrConst.CD00296_004.equals(hmpinKikiStat) && modelCdOwn.equals(hmpinTaknkikiModelCd)
										&& kikiSeizoNoOwn.equals(hmpinKikiSeizoNo))
								{
									isExistsHempin = true;
									break;
								}
							}

							// 返品受付済でない場合
							if (!isExistsHempin)
							{
								// ●返品機器受付
								HashMap<String, Object> henpinOutMap = new HashMap<String, Object>();
								JKKBpCommon.createHmpin(param, handle, kktkSvcKeiNoOwn, inParamIdoDiv, henpinOutMap, fixedText);
							}

							// ●機器提供サービス契約解約
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_10);
							// 上りマッピング
							setInMapKktkSvcKeiDsl(param, fixedText, kktkSvcKeiNoOwn, lastUpdDtm, inParamMskmDetailNo, inParamIdoDiv);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_10, TEMPLATE_ID_10_DETAIL, IN_COLUMN_LIST_10, ERROR_COLUMN_10);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_10), EKK0341C340CBSMsg.UPD_DTM);

							// ●機器提供サービス契約解約確定
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_30);
							// 上りマッピング
							setInMapKktkSvcKeiDslFix(param, fixedText, kktkSvcKeiNoOwn, lastUpdDtm);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_30, TEMPLATE_ID_30_DETAIL, IN_COLUMN_LIST_30, ERROR_COLUMN_30);
							// 更新年月日時分秒
							lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_30), EKK0341C350CBSMsg.UPD_DTM);
						}
					}
				}
			}
// ANK-3777-00-00 ADD START
			if (!JPCModelConstant.FUNC_CD_2.equals(funcCd)
					&& DUMMY_HOYU_ROUTER_CD_00.equals(hoyuRouterCdOwn)
					&& JFUStrConst.CD00576_00009.equals(inParamIdoDiv)
					&& JFUStrConst.CD00002_1.equals(inParamTknRtMskm))
			{
				// 保有ルーター無で料金コース変更で多機能ルーター申込の場合

				// ●お客様一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_18);
				// 上りマッピング
				setInMapCustomerSearch(param, fixedText, sysId);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_18, TEMPLATE_ID_18_DETAIL, IN_COLUMN_LIST_18, ERROR_COLUMN_18);
				HashMap custMap =
						getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_18), TEMPLATE_ID_18_DETAIL,
								JFUStrConst.I_ZERO);

				// ●機器提供サービス一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_19);
				// 上りマッピング
				setInMapKkTkSvcSearch(param, fixedText);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_19, TEMPLATE_ID_19_DETAIL, IN_COLUMN_LIST_19, ERROR_COLUMN_19);
				// 宅内機器種別コード
				String tknkikiSbtCd =
						getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_19), TEMPLATE_ID_19_DETAIL,
								EKK0771A010CBSMsg1List.TAKNKIKI_SBT_CD, 0);

				// ●引当棚一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_20);
				// 上りマッピング
				setInMapHkAtShelfSearch(param, fixedText);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_20, TEMPLATE_ID_20_DETAIL, IN_COLUMN_LIST_20, ERROR_COLUMN_20);
				// 棚コード
				String shelfCd =
						getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_20), TEMPLATE_ID_20_DETAIL,
								EDK0451A010CBSMsg1List.SHELF_CD, 0);

				// 配送方法コード
				String haisoWayCd = null;

				if (JFUStrConst.CD00002_1.equals(inParamKojiUm))
				{
					// 工事会社配送
					haisoWayCd = JFUStrConst.CD01148_2;
				}
				else
				{
					// お客様宅直送
					haisoWayCd = JFUStrConst.CD01148_1;
				}

				// ●サービス契約(電話)情報取得
				HashMap svcKeiTelInfoMap =
						getSvcKeiTelInfo(handle, param, fixedText, sysId, (String)kaisenUwUniqueMap
								.get(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO), inParamKeySvcKeiNo);

				// VA保有有無
				isVaHoyu = JFUStrConst.CD00002_1.equals((String)svcKeiTelInfoMap.get(RESULT_VA_UM));
				// 料金コースコード(電話)
				String pcrcCdTel = (String)svcKeiTelInfoMap.get(EKK0081B011CBSMsg1List.PCRS_CD);
				// 請求契約番号(電話)
				String seikyKeiNoTel = (String)svcKeiTelInfoMap.get(EKK0321B002CBSMsg1List.SEIKY_KEI_NO);
				// 請求契約番号(電話)機器オプション用
				String seikyKeiNoTelKikiOp = seikyKeiNoTel;

				// 請求契約番号設定判定
				if (JFUBPCommon.isNull(seikyKeiNoNet))
				{
					// 保有ルーター無し、かつ、VA有り
					seikyKeiNoNet = seikyKeiNoTel;
				}


				// ●回線対象サービス契約一覧照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_EKK0241B002);
				// 上りマッピング
				setInMapKaisenTgSvKeiSearch(param, fixedText, svcKeiKaisenUcwkNo);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0241B002, TEMPLATE_ID_EKK0241B002_DETAIL, IN_COLUMN_LIST_EKK0241B002,
						ERROR_COLUMN_EKK0241B002);
				List<HashMap> svcKeiList =
						getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0241B002),
								TEMPLATE_ID_EKK0241B002_DETAIL);

				// 最終更新年月日時分秒リスト
				List<String> lastUpdDtmList = new ArrayList<String>();

				for (HashMap svcKeiMap : svcKeiList)
				{
					// ●サービス契約一意照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_2);
					// 上りマッピング
					setInMapSvcKeiUniqueSearch(param, fixedText, (String)svcKeiMap.get(EKK0241B002CBSMsg1List.SVC_KEI_NO));
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_2, TEMPLATE_ID_2_DETAIL, IN_COLUMN_LIST_2, ERROR_COLUMN_2);
					// 最終更新年月日時分秒
					String lastUpdDtmExc =
							getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_2), TEMPLATE_ID_2_DETAIL,
									EKK0081A010CBSMsg1List.LAST_UPD_DTM, JFUStrConst.I_ZERO);

					lastUpdDtmList.add(lastUpdDtmExc);
				}

				// 降順ソート
				Collections.sort(lastUpdDtmList);
				Collections.reverse(lastUpdDtmList);

				// ネット・TV・電話で最大のタイムスタンプ
				lastUpdDtm = lastUpdDtmList.get(JFUStrConst.I_ZERO);
				
				// ●機器提供サービス契約登録
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_11);
				// 上りマッピング
				setInMapKktkRegist(param, fixedText, JFUStrConst.CD00134_C94, BLANK, null, sysId, seikyKeiNoNet, inParamMskmDetailNo,
						kaisenUwUniqueMap, lastUpdDtm, inParamIdoDiv, tknkikiSbtCd, shelfCd, false, null, haisoWayCd, JFUStrConst.CD00565_PC9401,
						custMap, addressInfoMap);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_11, TEMPLATE_ID_11_DETAIL, IN_COLUMN_LIST_11, ERROR_COLUMN_11);
				// 更新年月日時分秒
				lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.UPD_DTM);
				// 機器提供サービス契約番号
				sendRouterKktkSvcKeiNo =
						getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.KKTK_SVC_KEI_NO);
				// 機器変更番号
				sendRouterKikiChgNo =
						getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.KIKI_CHG_NO);

				// ●機器オプションサービス契約登録
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
				// 上りマッピング
				if (!"0".equals(inParamKikiOpMskm))
				{
					chgAfKkopSvcCd = "G01";
					// 無線申込
					if ("1".equals(inParamKikiOpMskm))
					{
						pcrsChangeTgKkop = "G02";
						pplanChangeTgKkop = "PG0201";
					// 有線申込
					} else if ("2".equals(inParamKikiOpMskm))
					{
						pcrsChangeTgKkop = "G01";
						pplanChangeTgKkop = "PG0101";
					}
				}
				setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, sendRouterKktkSvcKeiNo,
						inParamMskmDetailNo, null, sysId, inParamIdoDiv, seikyKeiNoNet, lastUpdDtm, inParamRtNewPcrsAplyFlg);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD,
						ERROR_COLUMN_KKOPADD);
				// 機器オプションサービス契約番号(ルーター機能)
				String kkopSvcKeiNoRouter =
						getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD),
								EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
				// 更新年月日時分秒
				lastUpdDtmKkop =
						getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);

				// VA機能登録
				String kkopSvcKeiNoVa = BLANK;
				if (isVaHoyu)
				{
					// VAが直送で出荷指図前の場合
					if (JFUStrConst.CD00009_001.equals(inParamHaisoStatVa))
					{
						// 機器提供サービス契約番号(VA)
						String kktkSvcKeiNoVa = (String)svcKeiTelInfoMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO);
						// 機器提供サービス契約ステータス(VA)
						String kktkSvcKeiStatVa = (String)svcKeiTelInfoMap.get(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT);

						// ●機器提供サービス契約一意照会
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_27);
						// 上りマッピング
						setInMapKktkSvcKeiUqSearchBf(param, fixedText, kktkSvcKeiNoVa);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_27, TEMPLATE_ID_27_DETAIL, IN_COLUMN_LIST_27, ERROR_COLUMN_27);
						// 変更前の機器情報
						HashMap kikiInfoMapBfVa =
								getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_27), TEMPLATE_ID_27_DETAIL, 0);

						// ●機器提供サービス契約情報変更 ※回収機器有無設定
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_28);
						// 上りマッピング
						setInMapKktkSvcKeiInfoChgVa(param, fixedText, kikiInfoMapBfVa, lastUpdDtm, inParamIdoDiv);
						// サービスIF実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_28, TEMPLATE_ID_28_DETAIL, IN_COLUMN_LIST_28, ERROR_COLUMN_28);
						// 更新年月日時分秒
						lastUpdDtm =
								getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_28), EKK0341C230CBSMsg.UPD_DTM);

						// 受付済、照査済の場合
						if (JFUStrConst.CD00056_010.equals(kktkSvcKeiStatVa) || JFUStrConst.CD00056_020.equals(kktkSvcKeiStatVa))
						{
							// ●機器提供サービス契約キャンセル
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_29);
							// 上りマッピング
							setInMapKktkSvcKeiCancel(param, fixedText, kktkSvcKeiNoVa, inParamMskmDetailNo, inParamIdoDiv, lastUpdDtm);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_29, TEMPLATE_ID_29_DETAIL, IN_COLUMN_LIST_29, ERROR_COLUMN_29);
							// 更新年月日時分秒
							lastUpdDtm =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_29), EKK0341C330CBSMsg.UPD_DTM);
						}
						// 締結済の場合
						else if (JFUStrConst.CD00056_030.equals(kktkSvcKeiStatVa))
						{
							// ●機器提供サービス契約解約
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_10);
							// 上りマッピング
							setInMapKktkSvcKeiDsl(param, fixedText, kktkSvcKeiNoVa, lastUpdDtm, inParamMskmDetailNo, inParamIdoDiv);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_10, TEMPLATE_ID_10_DETAIL, IN_COLUMN_LIST_10, ERROR_COLUMN_10);
							// 更新年月日時分秒
							lastUpdDtm =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_10), EKK0341C340CBSMsg.UPD_DTM);

							// ●機器提供サービス契約解約確定
							// ユーザデータ初期化
							initData(param, fixedText, IN_COLUMN_LIST_30);
							// 上りマッピング
							setInMapKktkSvcKeiDslFix(param, fixedText, kktkSvcKeiNoVa, lastUpdDtm);
							// サービスIF実行
							executeSC(handle, param, fixedText, TEMPLATE_ID_30, TEMPLATE_ID_30_DETAIL, IN_COLUMN_LIST_30, ERROR_COLUMN_30);
							// 更新年月日時分秒
							lastUpdDtm =
									getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_30), EKK0341C340CBSMsg.UPD_DTM);
						}

						// サービス契約番号(電話)
						String telSvcKeiNo = (String)kikiInfoMapBfVa.get(EKK0341A010CBSMsg1List.SVC_KEI_NO);
						// 電話番号紐付け
						updTelRelation(handle, param, fixedText, telSvcKeiNo, sendRouterKikiChgNo, lastUpdDtm, inParamIdoDiv,
								inParamMskmDetailNo);
					}

					// ●機器オプションサービス契約登録
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
					// 上りマッピング
					if (JFUStrConst.CD00134_A31.equals(pcrcCdTel))
					{
						// 1番号
						chgAfKkopSvcCd = JFUStrConst.KK2801_KKOP_SVC_CD_G02;
						pcrsChangeTgKkop = JFUStrConst.CD00134_G03;
						pplanChangeTgKkop = JFUStrConst.CD00565_PG0301;

						setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, sendRouterKktkSvcKeiNo,
								inParamMskmDetailNo, JFUStrConst.CD00002_1, sysId, inParamIdoDiv, seikyKeiNoTelKikiOp, lastUpdDtmKkop);
					}
					else if (JFUStrConst.CD00134_A32.equals(pcrcCdTel))
					{
						// 2番号
						chgAfKkopSvcCd = JFUStrConst.KK2801_KKOP_SVC_CD_G02;
						pcrsChangeTgKkop = JFUStrConst.CD00134_G04;
						pplanChangeTgKkop = JFUStrConst.CD00565_PG0401;

						setInMapKkopAdd(param, fixedText, chgAfKkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, sendRouterKktkSvcKeiNo,
								inParamMskmDetailNo, JFUStrConst.CD00002_1, sysId, inParamIdoDiv, seikyKeiNoTelKikiOp, lastUpdDtmKkop);
					}
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD,
							ERROR_COLUMN_KKOPADD);
					// 機器オプションサービス契約番号(VA機能)
					kkopSvcKeiNoVa =
							getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD),
									EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
					// 更新年月日時分秒
					lastUpdDtmKkop =
							getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);
				}

				// ●機器提供サービス契約照査
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_12);
				// 上りマッピング
				setInMapKktkShosa(param, fixedText, sendRouterKktkSvcKeiNo, lastUpdDtm, inParamIdoDiv);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_12, TEMPLATE_ID_12_DETAIL, IN_COLUMN_LIST_12, ERROR_COLUMN_12);
				// 更新年月日時分秒
				lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.UPD_DTM);
				// 世代登録年月日時分秒
				String geneAddDtm =
						getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.GENE_ADD_DTM);

				// ●機器オプションサービス契約照査
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
				// 上りマッピング
				setInMapKkopShosa(param, fixedText, kkopSvcKeiNoRouter, inParamIdoDiv, lastUpdDtmKkop);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL, IN_COLUMN_LIST_KKOPSHOSA,
						ERROR_COLUMN_KKOPSHOSA);
				// 更新年月日時分秒
				lastUpdDtmKkop =
						getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA), EKK2811C030CBSMsg.UPD_DTM);

				// VA機能照査
				if (isVaHoyu)
				{
					// ●機器オプションサービス契約照査
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
					// 上りマッピング
					setInMapKkopShosa(param, fixedText, kkopSvcKeiNoVa, inParamIdoDiv, lastUpdDtmKkop);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL, IN_COLUMN_LIST_KKOPSHOSA,
							ERROR_COLUMN_KKOPSHOSA);
					// 更新年月日時分秒
					lastUpdDtmKkop =
							getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA), EKK2811C030CBSMsg.UPD_DTM);
				}

				sendRouterGeneAddDtm = geneAddDtm;
				// 配送作成有無
				boolean isCreateHaiso = true;
				// 工事有の場合
				if (JFUStrConst.CD00002_1.equals(inParamKojiUm))
				{
					// 配送不要
					isCreateHaiso = false;
				}

				// 配送要の場合
				if (isCreateHaiso && !JFUStrConst.CD00001_0.equals(inParamHaisoYouhi))
				{
					// ●出荷抑止
					execShukkaYokushi(handle, param, fixedText, sendRouterKktkSvcKeiNo, svcKeiKaisenUcwkNo, inParamChgBfPcrsCd,
							inParamIdoDiv, lastUpdDtmKkop);
					// ●配送受付
					HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
					JKKBpCommon.createHaiso(param, handle, inParamMskmNo, inParamMskmDetailNo, inParamMskmshoNo, sendRouterKktkSvcKeiNo,
							inParamIdoDiv, haisoOutMap, fixedText);
					inMap.put(HAISO_OUT_MAP_KEY, haisoOutMap);
				}
			}
//ANK-3777-00-00 ADD END
		}

		// 保有ルーター無しの場合
		if (hoyukikiList == null || hoyukikiList.size() == 0)
		{
			hoyuRouterCdOwn = DUMMY_HOYU_ROUTER_CD_00;
		}

		// ●ルーター文言設定
		// ルーター速度種別
		inMap.put(MSG_ROUTER_SPEED_SBT, routerSpeedSbtNet);
		// ルーター速度種別(プラン変更前)
		inMap.put(MSG_ROUTER_SPEED_SBT_BF, routerSpeedSbtBf);
		// ルーター速度種別(プラン変更後)
		inMap.put(MSG_ROUTER_SPEED_SBT_AF, routerSpeedSbtAf);
		// 料金コースコード
		inMap.put(MSG_PCRS_CD, JFUBPCommon.nvl(pcrsCdRouter, BLANK));
		// 送付ルータの型式コード
		inMap.put(OUT_PARAM_SEND_ROUTER_MODEL_CD, sendRouterModelCd);
		// 送付ルータの機器提供サービス契約番号
		inMap.put(OUT_PARAM_SEND_KKTK_SVC_KEI_NO, sendRouterKktkSvcKeiNo);
		// 送付ルータの機器変更番号
		inMap.put(OUT_PARAM_SEND_KIKI_CHG_NO, sendRouterKikiChgNo);
		// 送付ルータの世代登録年月日時分秒
		inMap.put(OUT_PARAM_SEND_GENE_ADD_DTM, sendRouterGeneAddDtm);
		// 送付ルータのルーター種類コード
		inMap.put(OUT_PARAM_SEND_ROUTER_KIND_CD, sendRouterKindCd);
		// 送付ルータの機器提供種別コード
		inMap.put(OUT_PARAM_SEND_KKTK_SBT_CD, JFUStrConst.CD00212_02);
		// 変更前機器提供サービス契約番号
		inMap.put(OUT_PARAM_OWN_KKTK_SVC_KEI_NO, kktkSvcKeiNoOwn);
		// 変更前機器変更番号
		inMap.put(OUT_PARAM_OWN_KIKI_CHG_NO, kikiChgNoOwn);
		// 変更前宅内機器型式コード
		inMap.put(OUT_PARAM_OWN_TAKNKIKI_MODEL_CD, modelCdOwn);
		// 変更前機器製造番号
		inMap.put(OUT_PARAM_OWN_KIKI_SEIZO_NO, chgBfKikiSeizoNo);
		// 変更前機器提供種別コード
		inMap.put(OUT_PARAM_OWN_KKTK_SBT_CD, chgBfKktkSbtCd);
		// 変更前ルーター種類コード
		inMap.put(OUT_PARAM_OWN_ROUTER_KIND_CD, chgBfRouterKindCd);
		// VA有無
		inMap.put(MSG_VA_UM, vaUm);
		// 保有ルーターコード
		inMap.put(OUT_PARAM_HOYU_ROUTER_CD, hoyuRouterCdOwn);
		// 機器オプション料金コースコード
		inMap.put(OUT_PARAM_KKOP_PCRS_CD, kkopPcrsCdOut);
		// 機器オプションのみ変更有無
		inMap.put(OUT_PARAM_KKOP_CHG_ONLY_UM, kkOpChgOnlyUm);

		// 多機能ルーター機能コード
		if (JFUStrConst.CD00002_1.equals(vaUm) || isVaKinoSetteiYou)
		{
			// ルーター＋ＶＡ機能
			inMap.put(OUT_PARAM_TAKINORT_KINO_CD, JFUStrConst.CD01603_C);
		}
		else
		{
			// ルーター機能のみ
			inMap.put(OUT_PARAM_TAKINORT_KINO_CD, JFUStrConst.CD01603_A);
		}

		// 多機能ルータールーター機能識別コード
		if (JFUStrConst.CD00134_G01.equals(outPcrsChangeTgKkop))
		{
			// 有線ルーター機能
			inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD, JFUStrConst.CD01604_1);
		}
		else
		{
			// 無線ルーター機能
			inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD, JFUStrConst.CD01604_0);
		}

		// 機器オプション変更なしの場合はルーター機能を引継ぐ
		if (JFUBPCommon.isNull(outPcrsChangeTgKkop))
		{
			// 多機能ルータールーター機能識別コード
			if (JFUStrConst.CD00134_G01.equals(kkopPcrsCdOut))
			{
				// 有線ルーター機能
				inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD, JFUStrConst.CD01604_1);
				inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD_BEF, JFUStrConst.CD01604_1);
			}
			else if (JFUStrConst.CD00134_G02.equals(kkopPcrsCdOut))
			{
				// 無線ルーター機能
				inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD, JFUStrConst.CD01604_0);
				inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD_BEF, JFUStrConst.CD01604_0);
			}
			else
			{
				// 無線ルーター機能
				inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD, JFUStrConst.EMPTY);
				inMap.put(OUT_PARAM_TAKINORT_RTR_KINO_SKCD_BEF, JFUStrConst.EMPTY);
			}
			if (JFUStrConst.CD00002_1.equals(vaUm) || isVaKinoSetteiYou)
			{
				// ルーター＋ＶＡ機能
				inMap.put(OUT_PARAM_TAKINORT_KINO_CD_BEF, JFUStrConst.CD01603_C);
			}
			else
			{
				// ルーター機能のみ
				inMap.put(OUT_PARAM_TAKINORT_KINO_CD_BEF, JFUStrConst.CD01603_A);
			}

			if (JFUStrConst.CD00134_G03.equals(kkopPcrsCdOut))
			{
				// VA機能のみ
				inMap.put(OUT_PARAM_TAKINORT_KINO_CD, JFUStrConst.CD01603_B);
				inMap.put(OUT_PARAM_TAKINORT_KINO_CD_BEF, JFUStrConst.CD01603_B);
			}
			if (JFUStrConst.CD00134_G04.equals(kkopPcrsCdOut))
			{
				// VA機能のみ
				inMap.put(OUT_PARAM_TAKINORT_KINO_CD, JFUStrConst.CD01603_B);
				inMap.put(OUT_PARAM_TAKINORT_KINO_CD_BEF, JFUStrConst.CD01603_B);
			}
		}

		// SOD作業用マップに格納
		HashMap sodMap = new HashMap();
		// 機器オプションサービス契約登録リスト
		sodMap.put(OUT_PARAM_KKOP_ADD_LIST, kkopAddListForSod);
		// リクエストパラメータに設定
		param.setData(SOD_WORK_MAP, sodMap);

		// ルーター交換結果(BBR登録数)
		resultMap.put(RESULT_BBR_REGIST_CNT, String.valueOf(bbrRegistCnt));
		// ルーター交換結果(BBR上限数)
		resultMap.put(RESULT_BBR_QTY_LIMIT, String.valueOf(inParamBbrQtyLimit));
		// ルーター交換結果(料金コース速度コード(カレント))
		resultMap.put(RESULT_PCRS_SPEEDCD_CURRENT, pcrsSpeedCdCurrent);
		// ルーター交換結果(料金コース速度コード(予約))
		resultMap.put(RESULT_PCRS_SPEED_CD_RESERVE, pcrsSpeedCdReserve);
		// ルーター交換結果(SYSID)
		resultMap.put(RESULT_SYSID, sysId);
		// ルーター交換結果(更新年月日時分秒(サービス契約))
		resultMap.put(RESULT_UPDDTM_SVC_KEI, updDtmSvcKei);
		// 請求契約番号
		resultMap.put(RESULT_SEIKYKEINO, seikyKeiNoNet);
		// コース変更有無
		resultMap.put(RESULT_CRS_CHG_UM, crsChgUm);
		// ルーター速度種別(プラン変更前)
		resultMap.put(RESULT_ROUTER_SPEED_SBT_BF, routerSpeedSbtBf);
		// ルーター速度種別(プラン変更後)
		resultMap.put(RESULT_ROUTER_SPEED_SBT_AF, routerSpeedSbtAf);
		// VA有無
		resultMap.put(RESULT_VA_UM, vaUm);
		// 保有ルーターコード
		resultMap.put(RESULT_HOYU_ROUTER_CD, hoyuRouterCdOwn);

		return resultMap;
	}

	/**
	 * メール送信登録共通処理 ※ファミリーパック申込、各種通信機器申込
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Throwable
	 */
	protected void sendMail(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		List<HashMap<String, String>> mailList = (List)inMap.get(ECC0021D010CBSMsg.ECC0021D010CBSMSG1LIST);
		List<HashMap> tmpMailList = new ArrayList<HashMap>();
		String mladBcc = null;

		if (JFUBPCommon.isNull(mailList) || mailList.isEmpty())
		{
			return;
		}

		// メールアドレスリストを退避
		for (HashMap<String, String> map : mailList)
		{
			HashMap<String, String> tmpMap = new HashMap<String, String>();

			// BCC
			if (JFUStrConst.CD00788_04.equals(map.get(ECC0021D010CBSMsg1List.MLAD_SET_FIELD_CD)))
			{
				mladBcc = map.get(ECC0021D010CBSMsg1List.MLAD);
			}
			// TO
			else
			{
				// deep copy
				copyProperties(tmpMap, map);
				tmpMailList.add(tmpMap);
			}
		}

		for (HashMap<String, String> map : tmpMailList)
		{
			// ●メール送信情報登録
			// 上りマッピング
			setInMapSendMailRegist(param, fixedText, map.get(ECC0021D010CBSMsg1List.MLAD), mladBcc);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_ML, TEMPLATE_ID_ML_DETAIL_LIST, IN_COLUMN_LIST_ML, ERROR_COLUMN_ML);
		}
	}

	/**
	 * 上りマッピング項目設定(サービス契約一意照会)
	 *
	 * <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 pcrsCd 料金コースコード
	 * @throws RequestParameterException
	 */
	private void setInMapPcrsSearch(IRequestParameterReadWrite param, String fixedText, String pcrsCd) throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 料金コース
		inMap.put(EKK0791A010CBSMsg.KEY_PCRS_CD, pcrsCd);

		// 予約適用年月日
		inMap.put(EKK0791A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * 上りマッピング項目設定(課金先一覧照会（請求契約番号/サービス契約番号）)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapKakinsSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		inMap.put(EKK0321B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(宅内機器型式/付属品型式一覧照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param modelCd 宅内機器型式コード
	 * @throws RequestParameterException
	 */
	private void setInMapTnModelSearch(IRequestParameterReadWrite param, String fixedText, String modelCd) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 上りマッピング
		// ＫＥＹ＿宅内機器型式コード
		inMap.put(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, modelCd);

	}

	/**
	 * 上りマッピング項目設定(機器オプションサービス契約一意照会)処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapKkopSearch(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo) throws RequestParameterException
	{
		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811A010CBSMsg.KEY_KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK2811A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * 上りマッピング項目設定(機器オプションサービス契約料金プラン変更確定)処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param updDtmBf 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKkopPplanKakutei(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String updDtmBf)
			throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C260CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 予約適用年月日
		inMap.put(EKK2811C260CBSMsg.RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C260CBSMsg.UPD_DTM_BF, updDtmBf);
	}

	/**
	 * 機器オプションサービス契約情報変更の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器オプション情報マップ
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @param inParamMskmDetailNo 申込明細番号
	 * @throws RequestParameterException
	 */
	private void setInMapKkopKeiyakuJohoHenko(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String updDtmBf,
			String inParamMskmDetailNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 申込明細番号
		inMap.put(EKK2811C290CBSMsg.MSKM_DTL_NO, inParamMskmDetailNo);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C290CBSMsg.UPD_DTM_BF, updDtmBf);
		// 機器連帯契約変更手続中フラグ
		inMap.put(EKK2811C290CBSMsg.KIKI_RNTAI_KEI_CHGECHU_FLG, JFUStrConst.KK2811_KIKI_RNTAI_KEI_CHGECHU_FLG_0);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約解約)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param updDtm 更新年月日時分秒
	 * @param mskmDtlNo 申込明細番号
	 * @param idoDiv 異動区分
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiDsl(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String updDtm, String mskmDtlNo,
			String idoDiv) throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器提供サービス契約番号
		inMap.put(EKK0341C340CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// サービス解約理由コード
		inMap.put(EKK0341C340CBSMsg.SVC_DLRE_CD, JFUStrConst.CD00879_01);
		// サービス終了年月日
		inMap.put(EKK0341C340CBSMsg.SVC_ENDYMD, JFUBPCommon.getOpeDate(null));
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C340CBSMsg.UPD_DTM_BF, updDtm);
		// 申込明細番号
		inMap.put(EKK0341C340CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 異動区分
		inMap.put(EKK0341C340CBSMsg.IDO_DIV, idoDiv);
		// サービス課金終了年月日
		inMap.put(EKK0341C340CBSMsg.SVC_CHRG_ENDYMD, JFUBPCommon.getSvcChrgEndYmdKiki(null));
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約解約確定)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param updDtm 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiDslFix(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String updDtm)
			throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 機器提供サービス契約番号
		inMap.put(EKK0341C350CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// サービス終了年月日
		inMap.put(EKK0341C350CBSMsg.SVC_ENDYMD, JFUBPCommon.getOpeDate(null));
		// サービス課金終了年月日
		inMap.put(EKK0341C350CBSMsg.SVC_CHRG_ENDYMD, JFUBPCommon.getSvcChrgEndYmdKiki(null));
		// サービス解約理由コード
		inMap.put(EKK0341C350CBSMsg.SVC_DLRE_CD, JFUStrConst.CD00879_01);
		// 宅内機器異動コード
		inMap.put(EKK0341C350CBSMsg.TAKNKIKI_IDO_CD, JFUStrConst.CD00562_02);
		// 回収機器有無
		inMap.put(EKK0341C350CBSMsg.KAISHU_KIKI_UM, JFUStrConst.CD00002_1);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C350CBSMsg.UPD_DTM_BF, updDtm);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス一意照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInMapKkTkSvcSearch(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ＫＥＹ＿機器提供サービスコード
		inMap.put(EKK0771A010CBSMsg.KEY_KKTK_SVC_CD, JFUStrConst.KK0771_KKTK_SVC_CD_C024);

	}

	/**
	 * 上りマッピング項目設定(引当棚一意照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInMapHkAtShelfSearch(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ＫＥＹ＿販売種別コード
		inMap.put(EDK0451A010CBSMsg.KEY_HAMBAI_SBT_CD, JFUStrConst.CD00348_10);
		// ＫＥＹ＿運用日付
		inMap.put(EDK0451A010CBSMsg.KEY_UNYO_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約登録)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param pcrsCd 料金コースコード
	 * @param taknkikiModelCd 宅内機器型式コード
	 * @param svcKeiNo サービス契約番号
	 * @param sysId SYSID
	 * @param seikyKeiNo 請求契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param kaisenUwMap サービス契約回線内訳情報マップ
	 * @param updDtmSvcKei 更新年月日時分秒(サービス契約)
	 * @param idoDiv 異動区分
	 * @param taknkikiSbtCd 宅内機器種別コード
	 * @param kikiHkatShiteiSkdnCd 機器引当指定倉庫棚コード
	 * @param isKikiShs 機器送付先指定有無
	 * @param kikiShsMap 機器送付先情報
	 * @param haisoWayCd 配送方法コード
	 * @param pplanCd 料金プランコード
	 * @param custMap お客様情報マップ
	 * @param addressInfoMap 住所情報マップ
	 * @throws RequestParameterException
	 */
	private void setInMapKktkRegist(IRequestParameterReadWrite param, String fixedText, String pcrsCd, String taknkikiModelCd, String svcKeiNo,
			String sysId, String seikyKeiNo, String mskmDtlNo, HashMap kaisenUwMap, String updDtmSvcKei, String idoDiv, String taknkikiSbtCd,
			String kikiHkatShiteiSkdnCd, boolean isKikiShs, HashMap kikiShsMap, String haisoWayCd, String pplanCd, HashMap custMap,
			HashMap addressInfoMap) throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 機器提供サービスコード
		inMap.put(EKK0341D010CBSMsg.KKTK_SVC_CD, JFUStrConst.KK0771_KKTK_SVC_CD_C024);
		// 機器提供種別コード
		inMap.put(EKK0341D010CBSMsg.KKTK_SBT_CD, JFUStrConst.CD00212_02);
		// 料金コースコード
		inMap.put(EKK0341D010CBSMsg.PCRS_CD, pcrsCd);
		// 料金プランコード
		inMap.put(EKK0341D010CBSMsg.PPLAN_CD, pplanCd);
		// 宅内機器型式コード
		inMap.put(EKK0341D010CBSMsg.TAKNKIKI_MODEL_CD, taknkikiModelCd);
		// 親契約識別コード
		inMap.put(EKK0341D010CBSMsg.OYA_KEI_SKBT_CD, JFUStrConst.CD00804_02);
		// サービス契約番号
		inMap.put(EKK0341D010CBSMsg.SVC_KEI_NO, svcKeiNo);
		// SYSID
		inMap.put(EKK0341D010CBSMsg.SYSID, sysId);
		// 配送区分
		inMap.put(EKK0341D010CBSMsg.HAISO_DIV, JFUStrConst.CD00020_00);
		// 請求契約番号
		inMap.put(EKK0341D010CBSMsg.SEIKY_KEI_NO, seikyKeiNo);
		// 申込明細番号
		inMap.put(EKK0341D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 機器引当指定倉庫コード
		inMap.put(EKK0341D010CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD, JFUStrConst.DK0091_SOKO_CD_000001);
		// 機器引当指定倉庫棚コード
		inMap.put(EKK0341D010CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, kikiHkatShiteiSkdnCd);
		// サービス契約回線内訳番号
		inMap.put(EKK0341D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, kaisenUwMap.get(EKK0251A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));

		// 送付先指定あり
		if (isKikiShs)
		{
			// 機器送付先名
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_NM, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_NM));
			// 機器送付先カナ名
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_KANA, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_KANA));
			// 機器送付先住所コード
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_AD_CD, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_AD_CD));
			// 機器送付先郵便番号
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_PCD, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_PCD));
			// 機器送付先都道府県名
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_STATE_NM, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_STATE_NM));
			// 機器送付先市区町村名
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_CITY_NM, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_CITY_NM));
			// 機器送付先大字通称名
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_OAZTSU_NM, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_OAZTSU_NM));
			// 機器送付先字丁目名
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_AZCHO_NM, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_AZCHO_NM));
			// 機器送付先番地号
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_BNCHIGO, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_BNCHIGO));
			// 機器送付先住所補記・建物名
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_ADRTTM, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_ADRTTM));
			// 機器送付先住所補記・部屋番号
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_ADRRM, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_ADRRM));
			// 機器送付先電話番号
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_TELNO, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_TELNO));
			// 機器送付先_契約者住所差異フラグ
			inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_KSH_AD_SAI_FLG, kikiShsMap.get(IN_PARAM_KIKI_SOHUS_KSH_AS_FLG));
			// 機器送付先個別指定フラグ
			inMap.put(EKK0341D010CBSMsg.KIKI_SHS_KBT_SHITEI_FLG, kikiShsMap.get(IN_PARAM_KIKI_SHS_KBT_SHTI_FLG));
		}
		else
		{
			// 機器送付先名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_NM, custMap.get(ECK0011A010CBSMsg1List.CUST_NM));
			// 機器送付先カナ名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_KANA, custMap.get(ECK0011A010CBSMsg1List.CUST_KANA));

			// プラン変更の場合は画面で選択、または、入力した住所を設定
			if (JFUStrConst.CD00576_00009.equals(idoDiv))
			{
				// 機器送付先名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_NM, addressInfoMap.get(IN_PARAM_SENDTO_NAME));
				// 機器送付先カナ名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_KANA, addressInfoMap.get(IN_PARAM_SENDTO_NAME_KANA));
				// 機器送付先住所コード
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AD_CD, addressInfoMap.get(IN_PARAM_AD_CD));
				// 機器送付先郵便番号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_PCD, addressInfoMap.get(IN_PARAM_SENDTO_ZIP_CD));
				// 機器送付先都道府県名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_STATE_NM, addressInfoMap.get(IN_PARAM_STATE_NM));
				// 機器送付先市区町村名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_CITY_NM, addressInfoMap.get(IN_PARAM_CITY_NM));
				// 機器送付先大字通称名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_OAZTSU_NM, addressInfoMap.get(IN_PARAM_OAZTSU_NM));
				// 機器送付先字丁目名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AZCHO_NM, addressInfoMap.get(IN_PARAM_AZCHO_NM));
				// 機器送付先番地号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_BNCHIGO, addressInfoMap.get(IN_PARAM_AFTER_BNCHI));
				// 機器送付先住所補記・建物名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRTTM, addressInfoMap.get(IN_PARAM_SENDTO_BLD));
				// 機器送付先住所補記・部屋番号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRRM, addressInfoMap.get(IN_PARAM_SENDTO_ROOM));
				// 機器送付先電話番号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_TELNO, addressInfoMap.get(IN_PARAM_SENDTO_TELNO));
			}
			// 上記以外、利用場所住所を設定
			else
			{
				// 機器送付先住所コード
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AD_CD, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD));
				// 機器送付先郵便番号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_PCD, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD));
				// 機器送付先都道府県名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_STATE_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM));
				// 機器送付先市区町村名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_CITY_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM));
				// 機器送付先大字通称名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_OAZTSU_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM));
				// 機器送付先字丁目名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AZCHO_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM));
				// 機器送付先番地号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_BNCHIGO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO));
				// 機器送付先住所補記・建物名
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRTTM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM));
				// 機器送付先住所補記・部屋番号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRRM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM));
				// 機器送付先電話番号
				inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_TELNO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
			}

			// 機器送付先個別指定フラグ
			inMap.put(EKK0341D010CBSMsg.KIKI_SHS_KBT_SHITEI_FLG, JFUStrConst.KK0341_KIKI_SHS_KBT_SHITEI_FLG_1);
		}

		// 住所未確定フラグ
		inMap.put(EKK0341D010CBSMsg.AD_MI_FIX_FLG, JFUStrConst.CD00467_0);
		// 更新年月日時分秒
		inMap.put(EKK0341D010CBSMsg.UPD_DTM_BF, updDtmSvcKei);
		// 異動区分
		inMap.put(EKK0341D010CBSMsg.IDO_DIV, idoDiv);
		// 販売種別コード
		inMap.put(EKK0341D010CBSMsg.HAMBAI_SBT_CD, JFUStrConst.CD00348_10);
		// 宅内機器種別コード
		inMap.put(EKK0341D010CBSMsg.TAKNKIKI_SBT_CD, taknkikiSbtCd);
		// 機器設置先場所番号
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_PLACE_NO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_NO));

		// 機器設置先住所コード
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_AD_CD, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD));
		// 機器設置先郵便番号
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_PCD, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD));
		// 機器設置先都道府県名
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_STATE_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM));
		// 機器設置先市区町村名
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_CITY_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM));
		// 機器設置先大字通称名
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_OAZTSU_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM));
		// 機器設置先字丁目名
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_AZCHO_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM));
		// 機器設置先番地号
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_BNCHIGO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO));
		// 機器設置先住所補記・建物名
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRTTM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM));
		// 機器設置先住所補記・部屋番号
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SAKI_ADRRM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM));
		// 機器設置先電話番号
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SK_TELNO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
		// 機器設置先_契約者住所差異フラグ
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SK_KSH_AD_SAI_FLG, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLC_KSH_AD_SAI_FLG));

		// ファミリーパックの場合
		if (JFUStrConst.CD00576_00001.equals(idoDiv) || JFUStrConst.CD00576_00049.equals(idoDiv) || JFUStrConst.CD00576_00002.equals(idoDiv))
		{
			// 機器付加情報コード
			inMap.put(EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD, JFUStrConst.CD00866_030);
			// 上記以外
		}
		else
		{
			// 機器付加情報コード
			inMap.put(EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD, JFUStrConst.CD00866_004);
		}

		// マンション物件番号
		inMap.put(EKK0341D010CBSMsg.MANSION_BUKKEN_NO, kaisenUwMap.get(EKK0251A010CBSMsg1List.MANSION_BUKKEN_NO));
		// 配送依頼指定年月日
		inMap.put(EKK0341D010CBSMsg.HAISO_REQ_SHITEI_YMD, null);
		// 機器送付先住所手動入力フラグ
		inMap.put(EKK0341D010CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);
		// 配送方法コード
		inMap.put(EKK0341D010CBSMsg.HAISO_WAY_CD, haisoWayCd);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約照査)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param updDtm 更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @throws RequestParameterException
	 */
	private void setInMapKktkShosa(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String updDtm, String idoDiv)
			throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器提供サービス契約番号
		inMap.put(EKK0341C030CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C030CBSMsg.UPD_DTM_BF, updDtm);
		// 異動区分
		inMap.put(EKK0341C030CBSMsg.IDO_DIV, idoDiv);
		// 照査解約完了コード
		inMap.put(EKK0341C030CBSMsg.SHOSA_DSL_FIN_CD, JFUStrConst.CD00469_1); // "1"：照査OK

	}
	
	// OM-2016-0000830 2016/04/11 add start
	/**
	 * 上りマッピング項目設定(機器設置先場所反映)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param updDtm 更新年月日時分秒
	 * @param kikiStcSakiPlaceNo 機器設置先場所番号
	 * @throws RequestParameterException
	 */
	private void setInMapUpdKikiPlaceNo(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String updDtm,
			String kikiStcSakiPlaceNo) throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器提供サービス契約番号
		inMap.put(EKK0341C450CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// 機器設置先場所番号
		inMap.put(EKK0341C450CBSMsg.KIKI_STC_SAKI_PLACE_NO, kikiStcSakiPlaceNo);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C450CBSMsg.UPD_DTM_BF, updDtm);

	}

	// OM-2016-0000830 2016/04/11 add end

	/**
	 * 上りマッピング項目設定(機器提供サービス契約一覧照会（サービス契約番号）)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param kktkSvcCd 機器提供サービスコード
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiNoSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo, String kktkSvcCd)
			throws RequestParameterException
	{
		// 機能コード設定(3)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_3);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ＫＥＹ＿機器提供サービスコード
		inMap.put(EKK0341B002CBSMsg.KEY_KKTK_SVC_CD, kktkSvcCd);
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0341B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(サービス契約回線内訳一覧照会（サービス契約番号））
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapKaisenUwSvcKeiSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0341B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(サービス契約回線内訳一意照会）
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKaisenUwUniqueSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiKaisenUcwkNo, String geneAddDtm)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約回線内訳番号
		inMap.put(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
		// ＫＥＹ＿世代登録年月日時分秒
		inMap.put(EKK0251A010CBSMsg.KEY_GENE_ADD_DTM, geneAddDtm);
	}

	/**
	 * 上りマッピング項目設定(お客様一意照会）
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sysId SYSID
	 * @throws RequestParameterException
	 */
	private void setInMapCustomerSearch(IRequestParameterReadWrite param, String fixedText, String sysId) throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// SYSID
		inMap.put(ECK0011A010CBSMsg.KEY_SYSID, sysId);
		// 予約適用年月日
		inMap.put(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * 上りマッピング項目設定(返品機器一覧照会（機器提供サービス契約番号））
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapHmpnSearch(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿機器提供サービス契約番号
		inMap.put(EDK0301B070CBSMsg.KEY_KKTK_SVC_KEI_NO, kktkSvcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約一意照会)コース変更前
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiUqSearchBf(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo)
			throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿機器提供サービス契約番号
		inMap.put(EKK0341A010CBSMsg.KEY_KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0341A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約一意照会)コース変更後
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiUqSearchAf(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String geneAddDtm)
			throws RequestParameterException
	{
		// 機能コード設定(1:PK)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿機器提供サービス契約番号
		inMap.put(EKK0341A010CBSMsg.KEY_KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// ＫＥＹ＿世代登録年月日時分秒
		inMap.put(EKK0341A010CBSMsg.KEY_GENE_ADD_DTM, geneAddDtm);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約情報変更) ※回収機器有無設定
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器情報マップ
	 * @param idoDiv 異動区分
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiChgKishuKikiUm(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String idoDiv)
			throws RequestParameterException
	{
		// 機能コード設定1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C230CBSMsg.UPD_DTM_BF, kikiInfoMap.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));
		// 機器送付先住所手動入力フラグ
		inMap.put(EKK0341C230CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);
		// 回収機器有無
		inMap.put(EKK0341C230CBSMsg.KAISHU_KIKI_UM, JFUStrConst.CD00002_1);
		// 異動区分
		inMap.put(EKK0341C230CBSMsg.IDO_DIV, idoDiv);

		// ファミリーパックの場合
		if (JFUStrConst.CD00576_00001.equals(idoDiv) || JFUStrConst.CD00576_00049.equals(idoDiv) || JFUStrConst.CD00576_00002.equals(idoDiv))
		{
			// 機器付加情報コード
			inMap.put(EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD, JFUStrConst.CD00866_030);
			// 上記以外
		}
		else
		{
			// 機器付加情報コード
			inMap.put(EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD, JFUStrConst.CD00866_004);
		}
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約機器変更手続開始) 
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器提供サービス契約番号
	 * @param updDtm 更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @param mskmDtlNo 申込明細番号
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiKikiChgKaishi(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String updDtm, String idoDiv, String mskmDtlNo)
			throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器提供サービス契約番号
		inMap.put(EKK0341C530CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// 申込明細番号
		inMap.put(EKK0341C530CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C530CBSMsg.UPD_DTM_BF, updDtm);
		// 予約適用コード
		inMap.put(EKK0341C530CBSMsg.RSV_APLY_CD, JFUStrConst.CD00343_1);
		// 予約適用年月日
		inMap.put(EKK0341C530CBSMsg.RSV_APLY_YMD, null);
		// 異動区分
		inMap.put(EKK0341C530CBSMsg.IDO_DIV, idoDiv);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約情報変更) ※VAの回収機器有無設定
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器情報マップ
	 * @param updDtm 更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiInfoChgVa(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String updDtm, String idoDiv)
			throws RequestParameterException
	{
		// 機能コード設定1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C230CBSMsg.UPD_DTM_BF, kikiInfoMap.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));
		// 機器送付先住所手動入力フラグ
		inMap.put(EKK0341C230CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);
		// 回収機器有無
		inMap.put(EKK0341C230CBSMsg.KAISHU_KIKI_UM, JFUStrConst.CD00002_1);
		// 異動区分
		inMap.put(EKK0341C230CBSMsg.IDO_DIV, idoDiv);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約情報変更) ※工事完了後配送設定
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器情報マップ
	 * @param updDtm 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiInfoChgHaisoAfKojiFin(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String updDtm)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C230CBSMsg.UPD_DTM_BF, updDtm);
		// サービス開始時配送状況識別コード
		inMap.put(EKK0341C230CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD, JFUStrConst.CD01472_3);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約情報変更) ※配送依頼指定年月日設定
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器情報マップ
	 * @param updDtm 更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @param haisoReqShiteiYmd 配送依頼指定年月日
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiInfoChgHaisoReqShiteiYmd(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String updDtm,
			String idoDiv, String haisoReqShiteiYmd) throws RequestParameterException
	{
		// 機能コード設定1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C230CBSMsg.UPD_DTM_BF, kikiInfoMap.get(EKK0341A010CBSMsg1List.LAST_UPD_DTM));
		// 配送依頼指定年月日
		inMap.put(EKK0341C230CBSMsg.HAISO_REQ_SHITEI_YMD, haisoReqShiteiYmd);
		// 異動区分
		inMap.put(EKK0341C230CBSMsg.IDO_DIV, idoDiv);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約情報変更（契約変更中）)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器情報マップ
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @param updDtm 更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @param shelfCd 棚コード
	 * @param haisoWayCd 配送方法コード
	 * @param kaisenUwMap サービス契約回線内訳情報マップ
	 * @param custMap お客様情報マップ
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiInfoChgAF(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String geneAddDtm,
			String updDtm, String idoDiv, String shelfCd, String haisoWayCd, HashMap kaisenUwMap, HashMap custMap) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 世代登録年月日時分秒
		inMap.put(EKK0341C231CBSMsg.GENE_ADD_DTM, geneAddDtm);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C231CBSMsg.UPD_DTM_BF, updDtm);
		// 異動区分
		inMap.put(EKK0341C231CBSMsg.IDO_DIV, idoDiv);
		// 機器引当指定倉庫コード
		inMap.put(EKK0341C231CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD, JFUStrConst.DK0091_SOKO_CD_000001);
		// 機器引当指定倉庫棚コード
		inMap.put(EKK0341C231CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, shelfCd);
		// 機器送付先名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_NM, custMap.get(ECK0011A010CBSMsg1List.CUST_NM));
		// 機器送付先カナ名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_KANA, custMap.get(ECK0011A010CBSMsg1List.CUST_KANA));

		// プラン変更で直送の場合は契約者住所を設定
		if (JFUStrConst.CD01148_1.equals(haisoWayCd) && JFUStrConst.CD00576_00009.equals(idoDiv))
		{
			// 機器送付先住所コード
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AD_CD, custMap.get(ECK0011A010CBSMsg1List.KEISHA_AD_CD));
			// 機器送付先郵便番号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_PCD, custMap.get(ECK0011A010CBSMsg1List.KEISHA_PCD));
			// 機器送付先都道府県名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_STATE_NM, custMap.get(ECK0011A010CBSMsg1List.KEISHA_STATE_NM));
			// 機器送付先市区町村名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_CITY_NM, custMap.get(ECK0011A010CBSMsg1List.KEISHA_CITY_NM));
			// 機器送付先大字通称名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_OAZTSU_NM, custMap.get(ECK0011A010CBSMsg1List.KEISHA_OAZTSU_NM));
			// 機器送付先字丁目名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AZCHO_NM, custMap.get(ECK0011A010CBSMsg1List.KEISHA_AZCHO_NM));
			// 機器送付先番地号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_BNCHIGO, custMap.get(ECK0011A010CBSMsg1List.KEISHA_BNCHIGO));
			// 機器送付先住所補記・建物名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRTTM, custMap.get(ECK0011A010CBSMsg1List.KEISHA_ADRTTM));
			// 機器送付先住所補記・部屋番号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRRM, custMap.get(ECK0011A010CBSMsg1List.KEISHA_ADRRM));
			// 機器送付先電話番号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_TELNO, custMap.get(ECK0011A010CBSMsg1List.KEISHA_TELNO));
		}
		// 上記以外、利用場所住所を設定
		else
		{
			// 機器送付先住所コード
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AD_CD, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AD_CD));
			// 機器送付先郵便番号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_PCD, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_PCD));
			// 機器送付先都道府県名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_STATE_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_STATE_NM));
			// 機器送付先市区町村名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_CITY_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_CITY_NM));
			// 機器送付先大字通称名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_OAZTSU_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_OAZTSU_NM));
			// 機器送付先字丁目名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AZCHO_NM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_AZCHO_NM));
			// 機器送付先番地号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_BNCHIGO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_BNCHIGO));
			// 機器送付先住所補記・建物名
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRTTM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRTTM));
			// 機器送付先住所補記・部屋番号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRRM, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_ADRRM));
			// 機器送付先電話番号
			inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_TELNO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
		}
		// 機器送付先個別指定フラグ
		inMap.put(EKK0341C231CBSMsg.KIKI_SHS_KBT_SHITEI_FLG, JFUStrConst.KK0341_KIKI_SHS_KBT_SHITEI_FLG_1);
		// 配送区分
		inMap.put(EKK0341C231CBSMsg.HAISO_DIV, JFUStrConst.CD00020_00);
		// 販売種別コード
		inMap.put(EKK0341C231CBSMsg.HAMBAI_SBT_CD, JFUStrConst.CD00348_10);
		// 配送依頼指定年月日
		inMap.put(EKK0341C231CBSMsg.HAISO_REQ_SHITEI_YMD, null);
		// 機器送付先住所手動入力フラグ
		inMap.put(EKK0341C231CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);
		// 機器指定時管理場所識別コード
		inMap.put(EKK0341C231CBSMsg.KIKI_STI_JI_KRIPLACE_SKCD, null);
		// 機器指定時工事会社コード
		inMap.put(EKK0341C231CBSMsg.KIKI_STI_JI_KOCOMP_CD, null);
		// 機器指定時工事会社棚コード
		inMap.put(EKK0341C231CBSMsg.KIKI_STI_JI_KOCOMP_SLF_CD, null);
		// 機器指定時預託先オフィスコード
		inMap.put(EKK0341C231CBSMsg.KIKI_STI_JI_YTKSKOF_CD, null);
		// 機器指定時預託先オフィス棚コード
		inMap.put(EKK0341C231CBSMsg.KIKI_STI_JI_YTKSKOF_SLF_CD, null);
		// 機器設置承認年月日
		inMap.put(EKK0341C231CBSMsg.KKST_SNN_YMD, null);
		// 出荷完了時処理済フラグ
		inMap.put(EKK0341C231CBSMsg.SHKA_FIN_JI_SYRZM_FLG, JFUStrConst.CD00581_0);
		// 配送方法コード
		inMap.put(EKK0341C231CBSMsg.HAISO_WAY_CD, haisoWayCd);

		// ファミリーパックの場合
		if (JFUStrConst.CD00576_00001.equals(idoDiv) || JFUStrConst.CD00576_00049.equals(idoDiv) || JFUStrConst.CD00576_00002.equals(idoDiv))
		{
			// 機器付加情報コード
			inMap.put(EKK0341C231CBSMsg.KIKI_HUKA_INFO_CD, JFUStrConst.CD00866_030);
			// 上記以外
		}
		else
		{
			// 機器付加情報コード
			inMap.put(EKK0341C231CBSMsg.KIKI_HUKA_INFO_CD, JFUStrConst.CD00866_004);
		}

	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約情報変更（契約変更中）) ※工事完了後配送設定
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器情報マップ
	 * @param updDtm 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiInfoChgAfHaisoAfKojiFin(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String updDtm)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C231CBSMsg.UPD_DTM_BF, updDtm);
		// サービス開始時配送状況識別コード
		inMap.put(EKK0341C231CBSMsg.SVC_STA_JI_HIS_JOKYO_SKCD, JFUStrConst.CD01472_3);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約キャンセル)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param idoDiv 異動区分
	 * @param updDtmBf 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiCancel(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String mskmDtlNo, String idoDiv,
			String updDtmBf) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器提供サービス契約番号
		inMap.put(EKK0341C330CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// 申込明細番号
		inMap.put(EKK0341C330CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 異動区分
		inMap.put(EKK0341C330CBSMsg.IDO_DIV, idoDiv);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C330CBSMsg.UPD_DTM_BF, updDtmBf);

	}

	/**
	 * XML読み込み
	 * <br>
	 * @return エレメント
	 * @throws ParserConfigurationException
	 * @throws SAXException
	 * @throws IOException
	 */
	private Element getRouterNodeList() throws ParserConfigurationException, SAXException, IOException
	{
		// XMLパース
		DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
		Document doc = builder.parse(new File(XML_FILE_PATH));
		return doc.getDocumentElement();
	}

	/**
	 * ルーター速度種別取得
	 * <br>
	 * @param pcrsSpeedCd 料金コース速度コード
	 * @param root XMLデータ
	 * @return ルーター速度種別
	 */
	private String getRouterSpeedSbt(String pcrsSpeedCd, Element root)
	{
		NodeList pcrsRootList = root.getElementsByTagName(TAG_PCRS_SPEED_CD_ROUTER_SPEED_SBT_MAPPING);
		Element pcrsRoot = (Element)pcrsRootList.item(0);
		NodeList routerSpeedSbtList = pcrsRoot.getElementsByTagName(TAG_ROUTER_SPEED_SBT);

		Element svcElement = null;

		for (int i = 0; i < routerSpeedSbtList.getLength(); i++)
		{
			svcElement = (Element)routerSpeedSbtList.item(i);
			if (pcrsSpeedCd.equals(svcElement.getAttribute(ATTR_PCRS_SPEED_CD)))
			{
				break;
			}
		}

		return svcElement.getTextContent();
	}

	/**
	 * ルーター速度優劣取得
	 *
	 * <br>
	 * @param rooterSpeedSbt ルーター速度種別
	 * @param root XMLデータ
	 * @return ルーター速度優劣
	 */
	private int getRouterSpeed(String rooterSpeedSbt, Element root)
	{
		NodeList pcrsRootList = root.getElementsByTagName(TAG_OUTER_SPEED_SBT_JUDGE);
		Element pcrsRoot = (Element)pcrsRootList.item(0);
		NodeList routerSpeedSbtList = pcrsRoot.getElementsByTagName(TAG_ROUTER_SPEED_SBT);

		Element svcElement = null;

		for (int i = 0; i < routerSpeedSbtList.getLength(); i++)
		{
			svcElement = (Element)routerSpeedSbtList.item(i);
			if (rooterSpeedSbt.equals(svcElement.getAttribute(ATTR_ID)))
			{
				break;
			}
		}

		return Integer.parseInt(svcElement.getTextContent());
	}

	/**
	 * 機器ソートキー取得
	 *
	 * <br>
	 * @param pcrsCd ルーター速度種別
	 * @param root XMLデータ
	 * @return ルーター速度優劣
	 */
	private String getKikiSortKey(String pcrsCd, Element root)
	{
		NodeList pcrsRootList = root.getElementsByTagName(TAG_ROUTER_CHANGE_SEQUENCE);
		Element pcrsRoot = (Element)pcrsRootList.item(0);
		NodeList routerSpeedSbtList = pcrsRoot.getElementsByTagName(TAG_PCRS_CD);

		Element svcElement = null;

		for (int i = 0; i < routerSpeedSbtList.getLength(); i++)
		{
			svcElement = (Element)routerSpeedSbtList.item(i);
			if (pcrsCd.equals(svcElement.getAttribute(ATTR_ID)))
			{
				break;
			}
		}

		return svcElement.getTextContent();
	}

	/**
	 * ルーター速度種別(ネット)取得
	 * <br>
	 * @param pcrsSpeedCdCurrent 料金コース速度コード(カレント)
	 * @param pcrsSpeedCdReserve 料金コース速度コード(カレント)
	 * @param root XMLデータ
	 * @return プラン変更前後において早いほうのルーター速度種別
	 */
	private String getRouterSpeedSbtFaster(String pcrsSpeedCdCurrent, String pcrsSpeedCdReserve, Element root)
	{
		// ルーター速度種別コード(カレント)
		String routerSpeedSbCurrent = getRouterSpeedSbt(pcrsSpeedCdCurrent, root);
		// ルーター速度種別コード(予約)
		String routerSpeedSbReserve = getRouterSpeedSbt(pcrsSpeedCdReserve, root);

		// 速度判定(カレント)
		int routerSpeedCurrent = getRouterSpeed(routerSpeedSbCurrent, root);
		// 速度判定(予約)
		int routerSpeedReserve = getRouterSpeed(routerSpeedSbReserve, root);

		// 早いほうのルーター速度種別を返却
		if (routerSpeedCurrent > routerSpeedReserve)
		{
			return routerSpeedSbCurrent;
		}
		else
		{
			return routerSpeedSbReserve;
		}
	}

	/**
	 * eo光ネットプラン変更出荷機器のXML読み込み処理です。
	 *
	 * <br>
	 * @param ownRouterCd 保有ルーターコード
	 * @param chgUm コース変更有無
	 * @param famipaUm ファミリーパック有無
	 * @param bfSpeedCd 変更前速度コード
	 * @param afSpeedCd 変更後速度コード
	 * @return 出荷機器情報マップ
	 * @throws ParserConfigurationException
	 * @throws SAXException
	 * @throws IOException
	 */
	private HashMap getPlanChgShippingKiki(String ownRouterCd, String chgUm, String famipaUm, String bfSpeedCd, String afSpeedCd)
			throws ParserConfigurationException, SAXException, IOException
	{
		HashMap shippingKikiInfoMap = new HashMap();

		// XMLパース
		DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
		Document doc = builder.parse(new File(PLANCHG_XML_FILE));

		// 保有ルーターと条件が一致した情報を取得
		NodeList shippingKikiList = doc.getDocumentElement().getElementsByTagName(PLANCHG_ROOT_ITEMS.get(1));
		Element shippingKikiElement = null;
		for (int i = 0; i < shippingKikiList.getLength(); i++)
		{
			Element childShippingKikiElement = (Element)shippingKikiList.item(i);
			if (ownRouterCd.equals(childShippingKikiElement.getAttribute(PLANCHG_ATTRS.get(0))))
			{
				shippingKikiElement = childShippingKikiElement;
				break;
			}
		}

		// 出荷条件と一致した結果を取得
		NodeList resultList = shippingKikiElement.getElementsByTagName(PLANCHG_ROOT_ITEMS.get(2));
		Element resultElement = null;
		for (int i = 0; i < resultList.getLength(); i++)
		{
			Element childResultElement = (Element)resultList.item(i);
			boolean chk = true;

			// コース変更有無
			if (chk && !JFUBPCommon.isNull(childResultElement.getAttribute(PLANCHG_ATTRS.get(1))))
			{
				chk = chgUm.equals(childResultElement.getAttribute(PLANCHG_ATTRS.get(1)));
			}
			// ファミリーパック有無
			if (chk && !JFUBPCommon.isNull(childResultElement.getAttribute(PLANCHG_ATTRS.get(2))))
			{
				chk = famipaUm.equals(childResultElement.getAttribute(PLANCHG_ATTRS.get(2)));
			}
			// 変更前速度コード
			if (chk && !JFUBPCommon.isNull(childResultElement.getAttribute(PLANCHG_ATTRS.get(3))))
			{
				chk = bfSpeedCd.equals(childResultElement.getAttribute(PLANCHG_ATTRS.get(3)));
			}
			// 変更後速度コード
			if (chk && !JFUBPCommon.isNull(childResultElement.getAttribute(PLANCHG_ATTRS.get(4))))
			{
				chk = afSpeedCd.equals(childResultElement.getAttribute(PLANCHG_ATTRS.get(4)));
			}

			if (chk)
			{
				// 一致情報のみを取得
				resultElement = childResultElement;
				break;
			}
		}

		// 取得値を結果マップに設定
		if (resultElement != null)
		{
			String kktkSvcCd = resultElement.getElementsByTagName(PLANCHG_RSLT_ITEMS.get(0)).item(0).getTextContent();
			String kktkPcrsCd = resultElement.getElementsByTagName(PLANCHG_RSLT_ITEMS.get(1)).item(0).getTextContent();
			String kktkPplanCd = resultElement.getElementsByTagName(PLANCHG_RSLT_ITEMS.get(2)).item(0).getTextContent();
			String kkopSvcCd = resultElement.getElementsByTagName(PLANCHG_RSLT_ITEMS.get(3)).item(0).getTextContent();
			String kkopPcrsCd = resultElement.getElementsByTagName(PLANCHG_RSLT_ITEMS.get(4)).item(0).getTextContent();
			String kkopPplanCd = resultElement.getElementsByTagName(PLANCHG_RSLT_ITEMS.get(5)).item(0).getTextContent();

			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(0), kktkSvcCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(1), kktkPcrsCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(2), kktkPplanCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(3), kkopSvcCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(4), kkopPcrsCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(5), kkopPplanCd);
		}

		return shippingKikiInfoMap;
	}

	/**
	 * ファミリーパック出荷機器のXML読み込み処理です。
	 * <br>
	 * @param ownRouterCd 保有ルーターコード
	 * @param chgUm コース変更有無
	 * @param bfSpeedCd ルーター速度コード(変更前)
	 * @param afSpeedCd ルーター速度コード(変更後)
	 * @param tknRouterCd 多機能ルーター機能コード
	 * @param tknChgUm 多機能ルーター変更有無
	 * @return 出荷機器情報
	 * @throws ParserConfigurationException
	 * @throws SAXException
	 * @throws IOException
	 */
	private HashMap getFamipaShippingKiki(String ownRouterCd, String chgUm, String bfSpeedCd, String afSpeedCd, String tknRouterCd, String tknChgUm)
			throws ParserConfigurationException, SAXException, IOException
	{
		HashMap shippingKikiInfoMap = new HashMap();

		// XMLパース
		DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
		Document doc = builder.parse(new File(FAMIPA_XML_FILE));

		// 保有ルーターと条件が一致した情報を取得
		NodeList shippingKikiList = doc.getDocumentElement().getElementsByTagName(FAMIPA_ROOT_ITEMS.get(1));
		Element shippingKikiElement = null;
		for (int i = 0; i < shippingKikiList.getLength(); i++)
		{
			Element childshippingKikiElement = (Element)shippingKikiList.item(i);
			if (ownRouterCd.equals(childshippingKikiElement.getAttribute(FAMIPA_ATTRS.get(0))))
			{
				shippingKikiElement = childshippingKikiElement;
				break;
			}
		}

		// 出荷条件と一致した結果を取得
		NodeList resultList = shippingKikiElement.getElementsByTagName(FAMIPA_ROOT_ITEMS.get(2));
		Element resultElement = null;
		for (int i = 0; i < resultList.getLength(); i++)
		{
			Element childElement = (Element)resultList.item(i);
			boolean chk = true;

			// プラン変更有無
			if (chk && !JFUBPCommon.isNull(childElement.getAttribute(FAMIPA_ATTRS.get(1))))
			{
				chk = chgUm.equals(childElement.getAttribute(FAMIPA_ATTRS.get(1)));
			}
			// 変更前速度コード
			if (chk && !JFUBPCommon.isNull(childElement.getAttribute(FAMIPA_ATTRS.get(2))))
			{
				chk = bfSpeedCd.equals(childElement.getAttribute(FAMIPA_ATTRS.get(2)));
			}
			// 変更後速度コード
			if (chk && !JFUBPCommon.isNull(childElement.getAttribute(FAMIPA_ATTRS.get(3))))
			{
				chk = afSpeedCd.equals(childElement.getAttribute(FAMIPA_ATTRS.get(3)));
			}
			// 多機能ルーター機能コード
			if (chk && !JFUBPCommon.isNull(childElement.getAttribute(FAMIPA_ATTRS.get(4))))
			{
				chk = tknRouterCd.equals(childElement.getAttribute(FAMIPA_ATTRS.get(4)));
			}
			// 多機能ルーター申込有無
			if (chk && !JFUBPCommon.isNull(childElement.getAttribute(FAMIPA_ATTRS.get(5))))
			{
				chk = tknChgUm.equals(childElement.getAttribute(FAMIPA_ATTRS.get(5)));
			}

			if (chk)
			{
				// 一致情報のみを取得
				resultElement = childElement;
				break;
			}
		}

		// 取得値を結果マップに設定
		if (resultElement != null)
		{
			String kktkSvcCd = resultElement.getElementsByTagName(FAMIPA_RSLT_ITEMS.get(0)).item(0).getTextContent();
			String kktkPcrsCd = resultElement.getElementsByTagName(FAMIPA_RSLT_ITEMS.get(1)).item(0).getTextContent();
			String kktkPplanCd = resultElement.getElementsByTagName(FAMIPA_RSLT_ITEMS.get(2)).item(0).getTextContent();
			String kkopSvcCd = resultElement.getElementsByTagName(FAMIPA_RSLT_ITEMS.get(3)).item(0).getTextContent();
			String kkopPcrsCd = resultElement.getElementsByTagName(FAMIPA_RSLT_ITEMS.get(4)).item(0).getTextContent();
			String kkopPplanCd = resultElement.getElementsByTagName(FAMIPA_RSLT_ITEMS.get(5)).item(0).getTextContent();

			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(0), kktkSvcCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(1), kktkPcrsCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(2), kktkPplanCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(3), kkopSvcCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(4), kkopPcrsCd);
			shippingKikiInfoMap.put(SHIPPING_KIKI_OUT_ITEMS.get(5), kkopPplanCd);
		}

		return shippingKikiInfoMap;
	}

	/**
	 * 固定ＩＰアドレスの払出処理
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Throwable
	 */
	protected IRequestParameterReadWrite addFixipad(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// IN項目:ISP認証IDリスト
		List<HashMap<String, String>> inParamNinshoIdList = (List<HashMap<String, String>>)inMap.get(IN_PARAM_ISP_NINSHO_ID_LIST);
		// IN項目:起点変電所コード
		String inParamKitenHdshoCd = (String)inMap.get(IN_PARAM_KITEN_HDSHO_CD);
		// IN項目:集約局コード
		String inParamShyakKCd = (String)inMap.get(IN_PARAM_SHYAKK_CD);
		// IN項目:マンション物件番号
		String inParamMansionBukkenNo = (String)inMap.get(IN_PARAM_MANSION_BUKKEN_NO);
		if (null != inParamMansionBukkenNo)
		{
			inParamMansionBukkenNo = inParamMansionBukkenNo.trim();
		}
		// IN項目:回線コード
		String inParamKaisenCd = (String)inMap.get(IN_PARAM_KAISEN_CD);
		// IN項目:変更後ネットの料金コースコード
		String inParamNetPcrsCd = (String)inMap.get(IN_PARAM_NET_PCRS_CD);

		List<Map<String, String>> fixedIpAdList = new ArrayList<Map<String, String>>();

		for (HashMap<String, String> inParamNinshoIdMap : inParamNinshoIdList)
		{
			// ISP認証ID
			String inParamNinshoId = inParamNinshoIdMap.get(IN_PARAM_ISP_NINSHO_ID);
			// 固定IP取得種別コード
			String koteiIpStkuSbtCd = getKoteiIpStkuSbtCd(param, fixedText, inParamNetPcrsCd, inParamNinshoId);
			// 集約局・中心局コード
			String shyakKChuskkCd = null;

			// マンション物件番号ありの場合
			if (inParamMansionBukkenNo != null && !BLANK.equals(inParamMansionBukkenNo))
			{
				// マンションの場合
				if (JFUStrConst.CD00380_1002.equals(inParamKaisenCd) || JFUStrConst.CD00380_1003.equals(inParamKaisenCd)
						|| JFUStrConst.CD00380_1004.equals(inParamKaisenCd))
				{
					// ●集約局一意照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_21);
					// 上りマッピング
					setInMapShyakkSearch(param, fixedText, inParamShyakKCd);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_21, TEMPLATE_ID_21_DETAIL, IN_COLUMN_LIST_21, ERROR_COLUMN_21);
					// 中心局コード
					shyakKChuskkCd =
							getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_21), TEMPLATE_ID_21_DETAIL,
									EZM0341A010CBSMsg1List.CHUSKK_CD, 0);
				}
			}

			// マンション・ＶＲ識別ありでない場合（ホーム、メゾン、ＶＲ識別なしの場合）
			if (shyakKChuskkCd == null)
			{
				//起点変電所コードに値があるかチェック
				if (JFUBPCommon.isNull(inParamKitenHdshoCd))
				{
					// 起点変電所コードに値なし：関連チェックエラー
					setRelationErrorInfo(param, TEMPLATE_ID_22, ERROR_COLUMN_22, fixedText);
					throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)), String
							.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
				}
				// ●起点変電所一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_22);
				// 上りマッピング
				setInMapKitenHdshoSearch(param, fixedText, inParamKitenHdshoCd);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_22, TEMPLATE_ID_22_DETAIL, IN_COLUMN_LIST_22, ERROR_COLUMN_22);
				// 集約局コード
				String shyakKCd =
						getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_22), TEMPLATE_ID_22_DETAIL,
								EZM0331A010CBSMsg1List.SHYAKK_CD, 0);
				// ●集約局一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_21);
				// 上りマッピング
				setInMapShyakkSearch(param, fixedText, shyakKCd);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_21, TEMPLATE_ID_21_DETAIL, IN_COLUMN_LIST_21, ERROR_COLUMN_21);
				// 中心局コード
				shyakKChuskkCd =
						getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_21), TEMPLATE_ID_21_DETAIL,
								EZM0341A010CBSMsg1List.CHUSKK_CD, 0);
			}

			// ● 固定IPアドレス一覧照会(最小値)
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_23);
			// 上りマッピング
			setInMapFixedIpAdSearch(param, fixedText, koteiIpStkuSbtCd, shyakKChuskkCd);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_23, TEMPLATE_ID_23_DETAIL, IN_COLUMN_LIST_23, ERROR_COLUMN_23);

			Map<String, String> fixedIpMap = getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_23), TEMPLATE_ID_23_DETAIL, 0);

			Map<String, String> outMap = new HashMap<String, String>();
			String fixedIpAd = fixedIpMap.get(EZM0101B020CBSMsg1List.KOTEI_IP_AD);
			String netMask = fixedIpMap.get(EZM0101B020CBSMsg1List.NETMASK);
			int nextUseCnt = Integer.parseInt(fixedIpMap.get(EZM0101B020CBSMsg1List.USE_CNT)) + 1;
			String updDtmFixedIpAd = fixedIpMap.get(EZM0101B020CBSMsg1List.UPD_DTM);

			// 固定IPアドレス
			outMap.put(OUT_PARAM_FIXEDIPAD, fixedIpAd);
			// ネットマスク
			outMap.put(OUT_PARAM_NETMASK, netMask);

			fixedIpAdList.add(outMap);

			// ●固定IPアドレス変更
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_25);
			// 上りマッピング
			setInMapFixedIpAdChange(param, fixedText, fixedIpAd, shyakKChuskkCd, String.valueOf(nextUseCnt), koteiIpStkuSbtCd, updDtmFixedIpAd);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_25, TEMPLATE_ID_25_DETAIL, IN_COLUMN_LIST_25, ERROR_COLUMN_25);
		}

		// 固定IPアドレスリスト設定
		inMap.put(OUT_PARAM_FIXEDIPAD_LIST, fixedIpAdList);

		return param;
	}

	/**
	 * 固定IP取得種別コード
	 * 
	 * <br>
	 * @param inParamNetPcrsCd ネットの料金コースコード
	 * @param inParamNinshoId ISP認証ID
	 * @return
	 */
	private String getKoteiIpStkuSbtCd(IRequestParameterReadWrite param, String fixedText, String inParamNetPcrsCd, String inParamNinshoId)
	{
		// ANK-2765-00-00_認証IDの統一化により、旧体系、新体系の認証ID有り
		String koteiIpStkuSbtCd = null;

		if (isMtGloval(inParamNetPcrsCd))
		{
			// メガファイバー
			koteiIpStkuSbtCd = JFUStrConst.CD00199_2;
		}
		else if (inParamNinshoId.indexOf(SEP_NINSHO_ID) > -1)
		{
			if (inParamNinshoId.indexOf(VR_HOME_200M) > -1)
			{
				// ＶＲ識別なし,HF1G,HFA,OF1G
				koteiIpStkuSbtCd = JFUStrConst.CD00199_4;
			}
			// ホーム(1G)
			else if (inParamNinshoId.indexOf(VR_HOME_1G) > -1)
			{
				// ＶＲ識別なし,HF1G,HFA,OF1G
				koteiIpStkuSbtCd = JFUStrConst.CD00199_4;
			}
			// ホーム(10G)
			else if (inParamNinshoId.indexOf(VR_HOME_10G) > -1)
			{
				// １０Ｇ
				koteiIpStkuSbtCd = JFUStrConst.CD00199_5;
			}
			// ｅｏ電話（ＯＦ向け）用
			else if (inParamNinshoId.indexOf(VR_TEL_OF1G) > -1)
			{
				// ＶＲ識別なし,HF1G,HFA,OF1G
				koteiIpStkuSbtCd = JFUStrConst.CD00199_4;
			}
			// その他
			else
			{
				// VR識別子エラー
				// 「EZM0101B020」でエラーとなる
				koteiIpStkuSbtCd = null;
			}
		}
		else
		{
			// ＶＲ識別なし
			koteiIpStkuSbtCd = JFUStrConst.CD00199_4;
		}
		return koteiIpStkuSbtCd;

	}

	/**
	 * マンションタイプ グローバルか判定する
	 * 
	 * <br>
	 * @param pcrsCd ネットの料金コースコード
	 * @return true時、マンションタイプ グローバル
	 */
	private boolean isMtGloval(String pcrsCd) {
		// 補足）A79、A80は、対象外（現状、実データのコース無し）
		boolean flg =
				JFUStrConst.CD00134_A50.equals(pcrsCd) || JFUStrConst.CD00134_A51.equals(pcrsCd) || JFUStrConst.CD00134_A52.equals(pcrsCd)
						|| JFUStrConst.CD00134_A53.equals(pcrsCd) || JFUStrConst.CD00134_A54.equals(pcrsCd) || JFUStrConst.CD00134_A55.equals(pcrsCd)
						|| JFUStrConst.CD00134_A69.equals(pcrsCd) || JFUStrConst.CD00134_A70.equals(pcrsCd);

		return flg;
	}
	/**
	 * 上りマッピング項目設定(集約局一意照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param shyakkCd 集約局コード
	 * @throws RequestParameterException
	 */
	private void setInMapShyakkSearch(IRequestParameterReadWrite param, String fixedText, String shyakkCd) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿集約局コード
		inMap.put(EZM0341A010CBSMsg.KEY_SHYAKK_CD, shyakkCd);
	}

	/**
	 * 上りマッピング項目設定(起点変電所一意照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kitenHdshoCd 起点変電所コード
	 * @throws RequestParameterException
	 */
	private void setInMapKitenHdshoSearch(IRequestParameterReadWrite param, String fixedText, String kitenHdshoCd) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿起点変電所コード
		inMap.put(EZM0331A010CBSMsg.KEY_KITEN_HDSHO_CD, kitenHdshoCd);
	}

	/**
	 * 上りマッピング項目設定(固定IPアドレス一覧照会(最小値))
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param koteiIpStkuSbtCd 固定ＩＰ取得種別コード
	 * @param shyakKChuskkCd 集約局・中心局コード
	 * @throws RequestParameterException
	 */
	private void setInMapFixedIpAdSearch(IRequestParameterReadWrite param, String fixedText, String koteiIpStkuSbtCd, String shyakKChuskkCd)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿固定ＩＰ取得種別コード
		inMap.put(EZM0101B020CBSMsg.KEY_KOTEI_IP_STKU_SBT_CD, koteiIpStkuSbtCd);
		// ＫＥＹ＿集約局・中心局コード
		inMap.put(EZM0101B020CBSMsg.KEY_SHYAKK_CHUSKK_CD, shyakKChuskkCd);
	}

	/**
	 * 上りマッピング項目設定(固定IPアドレス変更)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param fixedIpAd 固定IPアドレス
	 * @param shyakKChuskkCd 集約局・中心局コード
	 * @param useCnt 使用回数
	 * @param koteiIpStkuSbtCd 固定ＩＰ取得種別コード
	 * @param updDtm 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapFixedIpAdChange(IRequestParameterReadWrite param, String fixedText, String fixedIpAd, String shyakKChuskkCd, String useCnt,
			String koteiIpStkuSbtCd, String updDtm) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 固定ＩＰアドレス
		inMap.put(EZM0101C010CBSMsg.KOTEI_IP_AD, fixedIpAd);
		// 集約局・中心局コード
		inMap.put(EZM0101C010CBSMsg.SHYAKK_CHUSKK_CD, shyakKChuskkCd);
		// 固定ＩＰアドレス適用開始年月日
		inMap.put(EZM0101C010CBSMsg.KOTEI_IP_AD_TSTAYMD, JFUBPCommon.getOpeDate(null));
		// 固定ＩＰアドレス適用終了年月日
		inMap.put(EZM0101C010CBSMsg.KOTEI_IP_AD_TENDYMD, JFUStrConst.DEFAULT_YYYYMMDD);
		// 使用回数
		inMap.put(EZM0101C010CBSMsg.USE_CNT, useCnt);
		// 固定ＩＰ取得種別コード
		inMap.put(EZM0101C010CBSMsg.KOTEI_IP_STKU_SBT_CD, koteiIpStkuSbtCd);
		// 更新年月日時分秒
		inMap.put(EZM0101C010CBSMsg.LAST_UPD_DTM_BF, updDtm);
	}

	/**
	 * キャンペーン文言の取得、及び、割引サービス契約の登録処理です。<br>
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	protected IRequestParameterReadWrite addCmp(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// ユーザデータ取得
		HashMap dataMap = (HashMap)param.getData(fixedText);

		// IN項目:ＫＥＹ＿サービス契約番号
		String inParamSvcKeiNo = (String)dataMap.get(IN_PARAM_CMP_KEY_SVC_KEI_NO);
		// IN項目:ＫＥＹ＿料金グループコード
		String inParamPrcGrpCd = (String)dataMap.get(IN_PARAM_CMP_KEY_PRC_GRP_CD);
		// IN項目:ＫＥＹ＿料金コースコード
		String inParamPcrsCd = (String)dataMap.get(IN_PARAM_CMP_KEY_PCRS_CD);
		// IN項目:ＫＥＹ＿料金プランコード
		String inParamPplanCd = (String)dataMap.get(IN_PARAM_CMP_KEY_PPLAN_CD);
		// IN項目:ＫＥＹ＿割引サービス適用条件種別コードリスト
		List<Map<String, String>> inParamWrsvAplyJknSbtCdList = (List<Map<String, String>>)dataMap.get(IN_PARAM_CMP_KEY_WRSV_SBT_LIST);
		// IN項目: ＫＥＹ＿キャンペーン文言種別コードリスト
		List<Map<String, String>> inParamCmpMongonSbtCdList = (List<Map<String, String>>)dataMap.get(IN_PARAM_CMP_KEY_MG_SBT_LIST);
		// IN項目: ＫＥＹ＿処理区分
		String inParamProcDiv = (String)dataMap.get(IN_PARAM_CMP_KEY_PROC_DIV);
		// IN項目: ＫＥＹ＿SYSID
		String inParamSysId = (String)dataMap.get(IN_PARAM_CMP_KEY_SYSID);
		// IN項目: 申込明細番号
		String inParamMskmDtlNo = (String)dataMap.get(IN_PARAM_CMP_MSKM_DTL_NO);
		// IN項目: ＫＥＹ＿更新年月日時分秒(更新前)
		String inParamUpdDtmBf = (String)dataMap.get(IN_PARAM_CMP_KEY_UPD_DTM_BF);
		// IN項目：登録後料金コースコード
		String inParamChgeAfPcrsCd = (String)dataMap.get(IN_PARAM_CMP_PCRS_CD);
		// IN項目：登録後料金プランコード
		String inParamChgeAfPplanCd = (String)dataMap.get(IN_PARAM_CMP_PPLAN_CD);
		// IN項目：異動区分
		String inParamIdoDiv = (String)dataMap.get(IN_PARAM_CMP_IDO_DIV);
		// IN項目：ＢＳパススルーの申し込みフラグ
		String inParamBsptMskmFlg = (String)dataMap.get(IN_PARAM_CMP_BSPT_MSKM_FLG);

		String updDtmBf = inParamUpdDtmBf;

		/* TVの場合、サービス契約内訳のコース、プランコードを使用する為、以下のI/Fを呼び出す */
		// ●サービス契約内訳一覧照会（eo光テレビ情報取得）
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_31);
		// 検索失敗エラーなし設定
		ignoreSearchError(param, fixedText);
		// 上りマッピング
		this.setInMapSvcKeiUcwkSearch(param, fixedText, inParamSvcKeiNo);
		// サービスI/F実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_31, TEMPLATE_ID_31_DETAIL, IN_COLUMN_LIST_31, ERROR_COLUMN_31);

		int idxCnt = getTemplateList(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_31), TEMPLATE_ID_31_DETAIL).size() + 1;

		// コースコード配列
		String[] pcrsCdScvKeiUcwkArray = new String[idxCnt];
		// プランコード配列
		String[] pplanCdScvKeiUcwkArray = new String[idxCnt];

		// サービス契約のコースコード、プランコードをセットする
		pcrsCdScvKeiUcwkArray[0] = inParamPcrsCd;
		pplanCdScvKeiUcwkArray[0] = inParamPplanCd;

		int loopCount = 1;
		// サービス契約内訳分のコース、プランを取得する。
		for (HashMap map : getTemplateList(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_31), TEMPLATE_ID_31_DETAIL))
		{
			pcrsCdScvKeiUcwkArray[loopCount] = (String)map.get(EKK0161B509CBSMsg1List.PCRS_CD);
			pplanCdScvKeiUcwkArray[loopCount] = (String)map.get(EKK0161B509CBSMsg1List.PPLAN_CD);
			loopCount++;
		}

		// ●変数初期化
		// キャンペーン文言リスト
		List<HashMap<String, String>> resultList = new ArrayList<HashMap<String, String>>();

		// 指定された割引サービス適用条件リスト分のループ処理を行う
		// ●繰り返し処理
		for (Map<String, String> wrsvAplyJknSbtCdMap : inParamWrsvAplyJknSbtCdList)
		{
			// 割引サービス適用条件種別コードの取得
			String wrsvAplyJknSbtCd = wrsvAplyJknSbtCdMap.get(IN_PARAM_CMP_KEY_WRSV_SBT_CD);

			// サービス契約、サービス契約内訳分のループを行う
			for (int i = 0; i < pcrsCdScvKeiUcwkArray.length; i++)
			{
				String tmpInParamPcrsCd = pcrsCdScvKeiUcwkArray[i];
				String tmpInParamPplanCd = pplanCdScvKeiUcwkArray[i];

				if (!JFUBPCommon.isNull(tmpInParamPcrsCd) && !JFUBPCommon.isNull(tmpInParamPplanCd))
				{
					// ●割引サービス適用条件一覧照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_WRSV);
					// 検索失敗エラーなし設定
					ignoreSearchError(param, fixedText);
					// 上りマッピング
					this.setInMapWrsvAplySearch(param, fixedText, inParamSvcKeiNo, tmpInParamPcrsCd, tmpInParamPplanCd, wrsvAplyJknSbtCd);
					// サービスI/F実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_WRSV, TEMPLATE_ID_WRSV_DETAIL, IN_COLUMN_LIST_WRSV, ERROR_COLUMN_WRSV);

					// ●繰り返し処理
					for (HashMap map : getTemplateList(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_WRSV), TEMPLATE_ID_WRSV_DETAIL))
					{
						// 割引サービスコード
						String wribSvcCd = (String)map.get(EKK2311B507CBSMsg1List.WRIB_SVC_CD);

						// ●割引サービス契約一覧照会(割引サービス指定)
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_WRSV_KEI);
						// 検索失敗エラーなし設定
						ignoreSearchError(param, fixedText);
						// 上りマッピング
						this.setInMapWrsvKeiSearch(param, fixedText, inParamSvcKeiNo, wribSvcCd);
						// サービスI/F実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_WRSV_KEI, TEMPLATE_ID_WRSV_KEI_DETAIL, IN_COLUMN_LIST_WRSV_KEI,
								ERROR_COLUMN_WRSV_KEI);

						// 割引サービス契約一覧照会の結果が0件の場合、
						if (!isExistsTemplateDetail(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_WRSV_KEI), TEMPLATE_ID_WRSV_KEI_DETAIL))
						{
							// キャンペーン適用対象となる登録後の料金コース、料金プランコードを取得する
							// 料金コースコード
							String pcrsCd = (String)map.get(EKK2311B507CBSMsg1List.PCRS_CD);
							// 料金プランコード
							String pplanCd = (String)map.get(EKK2311B507CBSMsg1List.PPLAN_CD);

							for (Map<String, String> cmpMongonSbtCdMap : inParamCmpMongonSbtCdList)
							{
								// ●キャンペーン文言一覧照会(申込画面用)
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_CMP);
								// 検索失敗エラーなし設定
								ignoreSearchError(param, fixedText);
								// 実行するキャンペーン文言種別コード
								String cmpMongonSbtCd = cmpMongonSbtCdMap.get(IN_PARAM_CMP_KEY_CMP_MG_SBT_CD);
								// 上りマッピング
								setInMapCmpSearch(param, fixedText, wribSvcCd, cmpMongonSbtCd);
								// サービスI/F実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_CMP, TEMPLATE_ID_CMP_DETAIL, IN_COLUMN_LIST_CMP, ERROR_COLUMN_CMP);

								// 該当するキャンペーン文言がある場合のみ、メッセージをリストに詰める
								if (isExistsTemplateDetail(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_CMP), TEMPLATE_ID_CMP_DETAIL))
								{
									// ●返却用のデータの作成
									HashMap<String, String> resMapMskm = new HashMap<String, String>();
									// キャンペーン文言
									resMapMskm.put(OUT_PARAM_COMP_MONGON, getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap,
											TEMP_TEMPLATE_KEY_CMP), TEMPLATE_ID_CMP_DETAIL, EKK2251B501CBSMsg1List.CMP_MONGON, 0));
									// キャンペーン文言種別コード
									resMapMskm.put(OUT_PARAM_COMP_MONGON_SBT_CD, cmpMongonSbtCd);
									// 料金コースコード(キャンペーンが適用される料金コースコード)
									resMapMskm.put(OUT_PARAM_PCRS_CD, pcrsCd);
									// 料金プランコード(キャンペーンが適用される料金プランコード)
									resMapMskm.put(OUT_PARAM_PPLAN_CD, pplanCd);
									// 割引サービス適用条件種別コード
									resMapMskm.put(OUT_PARAM_WRSV_APLY_JKN_SBT_CD, wrsvAplyJknSbtCd);
									resultList.add(resMapMskm);
								}
							}

							// 処理区分に登録が設定されている場合かつ、キャンペーン適用対象となる料金コース、料金プランコードの場合、登録処理を実施する。
							if (PROC_DIV_REG.equals(inParamProcDiv) && pcrsCd.equals(inParamChgeAfPcrsCd) && pplanCd.equals(inParamChgeAfPplanCd))
							{
								// 割引サービス適用条件種別コードがＢＳパススルー、かつチェックが入っていない場合は登録処理を行わない
								if (JFUStrConst.CD01360_09.equals(wrsvAplyJknSbtCd) && !BSPT_MSKM_FLG.equals(inParamBsptMskmFlg))
								{
									continue;
								}

								// ●割引サービス一意照会
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_33);
								// 上りマッピング
								setInMapWribMstSearch(param, fixedText, wribSvcCd);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_33, TEMPLATE_ID_33_DETAIL, IN_COLUMN_LIST_33, ERROR_COLUMN_33);
								// 割引適用契機コード
								String wribAplyOptntyCd =
										getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_33), TEMPLATE_ID_33_DETAIL,
												EKK0841A010CBSMsg1List.WRIB_APLY_OPTNTY_CD, 0);

								// 割引適用契機コードが｢2:自動適用｣の場合は登録処理なし
								if (JFUStrConst.CD00285_2.equals(wribAplyOptntyCd))
								{
									continue;
								}

								// ●割引サービス対象サービス一覧照会
								// ユーザデータ初期化
								initData(param, fixedText, IN_COLUMN_LIST_WRSV_SVC);
								// 上りマッピング
								setInMapWribSvcTrgtSearch(param, fixedText, wribSvcCd, inParamPrcGrpCd, inParamChgeAfPcrsCd, inParamChgeAfPplanCd);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_WRSV_SVC, TEMPLATE_ID_WRSV_SVC_DETAIL, IN_COLUMN_LIST_WRSV_SVC,
										ERROR_COLUMN_WRSV_SVC);
								// 割引サービス対象サービスコード
								String wribSvcTrgtCd =
										getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_WRSV_SVC),
												TEMPLATE_ID_WRSV_SVC_DETAIL, EKK0851B001CBSMsg1List.WRIB_SVC_TRGT_SVC_CD, 0);

								// ●割引サービス契約登録
								initData(param, fixedText, IN_COLUMN_LIST_WRSV_REG);
								// 上りマッピング
								setInMapWribSvcKeiRegist(param, fixedText, inParamSysId, tmpInParamPcrsCd, tmpInParamPplanCd, inParamMskmDtlNo,
										inParamSvcKeiNo, updDtmBf, wribSvcTrgtCd, wribSvcCd, inParamIdoDiv);
								// サービスIF実行
								executeSC(handle, param, fixedText, TEMPLATE_ID_WRSV_REG, TEMPLATE_ID_WRSV_REG_DETAIL, IN_COLUMN_LIST_WRSV_REG,
										ERROR_COLUMN_WRSV_REG);

								// 更新年月日時分秒(新)
								updDtmBf =
										getTemplateValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_WRSV_REG),
												EKK0451D010CBSMsg.UPD_DTM);
							}
						}
					}
				}
			}
		}

		// ●登録モード以外の場合
		if (!PROC_DIV_REG.equals(inParamProcDiv))
		{
			// ダウングレードメッセージ表示要否
			boolean isDispDownGradeMessage = false;

			// ●業務パラメータ管理一意照会(１ギガグレードアップＣＰ対象割引サービスコード )
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_34);
			// 上りマッピング
			setInMapWorkParamSearch(param, fixedText, JFUStrConst.KK_CP_GRDUP);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_34, TEMPLATE_ID_34_DETAIL, IN_COLUMN_LIST_34, ERROR_COLUMN_34);
			// 業務パラメータ設定値
			String[] gradeUpWribSvcCds =
					getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_34), TEMPLATE_ID_34_DETAIL,
							EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE, 0).split(JFUStrConst.COMMA);

			// ●業務パラメータ管理一意照会(１ギガグレードダウンＣＰが適用可能な猶予期間（月数）)
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_34);
			// 上りマッピング
			setInMapWorkParamSearch(param, fixedText, JFUStrConst.KK_DWNCP_TKYO_M);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_34, TEMPLATE_ID_34_DETAIL, IN_COLUMN_LIST_34, ERROR_COLUMN_34);
			// 業務パラメータ設定値(１ギガグレードアップＣＰ対象割引サービスコード )
			int dwnMonths =
					Integer.parseInt(getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_34), TEMPLATE_ID_34_DETAIL,
							EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE, 0));

			for (String gradeUpWribSvcCd : gradeUpWribSvcCds)
			{
				// ●割引サービス一意照会
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_33);
				// 削除20130219 マスタ申請不備暫定対応 start
				ignoreSearchError(param, fixedText);
				// 削除20130219 マスタ申請不備暫定対応 end
				// 上りマッピング
				setInMapWribMstSearch(param, fixedText, gradeUpWribSvcCd);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_33, TEMPLATE_ID_33_DETAIL, IN_COLUMN_LIST_33, ERROR_COLUMN_33);

				// 削除20130219 マスタ申請不備暫定対応 start
				if (!isExistsTemplateDetail(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_33), TEMPLATE_ID_33_DETAIL))
				{
					continue;
				}
				// 削除20130219 マスタ申請不備暫定対応 end

				// 受付開始年月日時分
				long ukStaYmdHm =
						Long.parseLong(getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_33), TEMPLATE_ID_33_DETAIL,
								EKK0841A010CBSMsg1List.UK_STA_YMDHM, 0));
				// 受付終了年月日時分
				long ukEndYmdHm =
						Long.parseLong(getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_33), TEMPLATE_ID_33_DETAIL,
								EKK0841A010CBSMsg1List.UK_END_YMDHM, 0));
				// 運用日時分
				long opeYmdHm = Long.parseLong(JFUBPCommon.getOpeDateTime(null).substring(JFUStrConst.I_ZERO, JFUStrConst.LENGTH_YYYYMMDDHHMISS));

				boolean isUke = ukStaYmdHm <= opeYmdHm && ukEndYmdHm > opeYmdHm;

				// 受付中でない場合は処理無し
				if (!isUke)
				{
					continue;
				}

				// ●割引サービス契約一覧照会（サービス契約番号））
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_37);
				// 検索失敗エラーなし設定
				ignoreSearchError(param, fixedText);
				// 上りマッピング
				this.setInMapWribSvcKeiSearch(param, fixedText, inParamSvcKeiNo);
				// サービスI/F実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_37, TEMPLATE_ID_37_DETAIL, IN_COLUMN_LIST_37, ERROR_COLUMN_37);

				// 運用日
				int opeDate = Integer.parseInt(JFUBPCommon.getOpeDate(null));

				for (HashMap wribSvcKeiMap : getTemplateList(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_37), TEMPLATE_ID_37_DETAIL))
				{
					// ●割引サービス契約一意照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_35);
					// 上りマッピング
					setInMapWribSvcKeiUniqueSearch(param, fixedText, (String)wribSvcKeiMap.get(EKK0451B010CBSMsg1List.WRIB_SVC_KEI_NO));
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_35, TEMPLATE_ID_35_DETAIL, IN_COLUMN_LIST_35, ERROR_COLUMN_35);
					HashMap wribSvcKeiUniqueMap =
							getTemplateListMap(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_35), TEMPLATE_ID_35_DETAIL,
									JFUStrConst.I_ZERO);

					// 割引サービス契約ステータス
					String wribSvcKeiStat = (String)wribSvcKeiUniqueMap.get(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT);
					// 割引サービスコード
					String wribSvcCd = (String)wribSvcKeiUniqueMap.get(EKK0451A010CBSMsg1List.WRIB_SVC_CD);

					// 解約済、キャンセル済は対象外
					if (JFUStrConst.CD00055_910.equals(wribSvcKeiStat) || JFUStrConst.CD00055_920.equals(wribSvcKeiStat)
							|| JFUStrConst.CD00055_300.equals(wribSvcKeiStat))
					{
						continue;
					}

					// アップグレードキャンペーン以外は対象外
					if (!gradeUpWribSvcCd.equals(wribSvcCd))
					{
						continue;
					}

					// サービス開始年月日 + １ギガグレードダウンＣＰが適用可能な猶予期間（月数）
					int kijunYmd =
							Integer.parseInt(JFUBPCommon.addMonth((String)wribSvcKeiUniqueMap.get(EKK0451A010CBSMsg1List.SVC_STA_YMD), dwnMonths));

					// 猶予期間内の場合
					if (kijunYmd > opeDate)
					{
						// ダウングレードメッセージ表示要
						isDispDownGradeMessage = true;
						break;
					}
				}
				if (isDispDownGradeMessage)
				{
					break;
				}
			}

			// ダウングレードメッセージ表示要の場合
			if (isDispDownGradeMessage)
			{
				// ●業務パラメータ管理一意照会(１ギガグレードダウンＣＰ対象割引サービスコード )
				// ユーザデータ初期化
				initData(param, fixedText, IN_COLUMN_LIST_34);
				// 上りマッピング
				setInMapWorkParamSearch(param, fixedText, JFUStrConst.KK_CP_GRDDWN);
				// サービスIF実行
				executeSC(handle, param, fixedText, TEMPLATE_ID_34, TEMPLATE_ID_34_DETAIL, IN_COLUMN_LIST_34, ERROR_COLUMN_34);
				// 業務パラメータ設定値
				String[] gradeDownWribSvcCds =
						getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_34), TEMPLATE_ID_34_DETAIL,
								EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE, 0).split(JFUStrConst.COMMA);

				for (String gradeDownWribSvcCd : gradeDownWribSvcCds)
				{
					// ●割引サービス対象サービス一覧照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_WRSV_SVC);
					// 上りマッピング
					setInMapWribSvcTrgtSearch(param, fixedText, gradeDownWribSvcCd, null, null, null);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_WRSV_SVC, TEMPLATE_ID_WRSV_SVC_DETAIL, IN_COLUMN_LIST_WRSV_SVC,
							ERROR_COLUMN_WRSV_SVC);

					List<HashMap> wribSvcTgSvcList =
							getTemplateList(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_WRSV_SVC), TEMPLATE_ID_WRSV_SVC_DETAIL);

					for (Map<String, String> cmpMongonSbtCdMap : inParamCmpMongonSbtCdList)
					{
						// ●キャンペーン文言一覧照会(申込画面用)
						// ユーザデータ初期化
						initData(param, fixedText, IN_COLUMN_LIST_CMP);
						// 2016/06/13 ANK-2849-00-00 add start
						// 検索失敗エラーなし設定
						ignoreSearchError(param, fixedText);
						// 2016/06/13 ANK-2849-00-00 add end
						// 実行するキャンペーン文言種別コード
						String cmpMongonSbtCd = cmpMongonSbtCdMap.get(IN_PARAM_CMP_KEY_CMP_MG_SBT_CD);
						// 上りマッピング
						setInMapCmpSearch(param, fixedText, gradeDownWribSvcCd, cmpMongonSbtCd);
						// サービスI/F実行
						executeSC(handle, param, fixedText, TEMPLATE_ID_CMP, TEMPLATE_ID_CMP_DETAIL, IN_COLUMN_LIST_CMP, ERROR_COLUMN_CMP);

						// 2016/06/13 ANK-2849-00-00 add start
						// 該当するキャンペーン文言がある場合のみ、メッセージをリストに詰める
						if (isExistsTemplateDetail(dataMap, getMaxTempTempleteKey(dataMap, TEMP_TEMPLATE_KEY_CMP), TEMPLATE_ID_CMP_DETAIL))
						{
						// 2016/06/13 ANK-2849-00-00 add end
							for (HashMap wribSvcTgSvcMap : wribSvcTgSvcList)
							{
								// 変更前料金コースコード
								String dgChgBfPcrsCd = (String)wribSvcTgSvcMap.get(EKK0851B001CBSMsg1List.CHGE_BF_PCRS_CD);
								// 変更前料金コースコード
								String dgChgBfPplanCd = (String)wribSvcTgSvcMap.get(EKK0851B001CBSMsg1List.CHGE_BF_PPLAN_CD);
	
								if (dgChgBfPcrsCd.equals(inParamPcrsCd) && dgChgBfPplanCd.equals(inParamPplanCd))
								{
									// ●返却用のデータの作成
									HashMap<String, String> resMapMskm = new HashMap<String, String>();
									// キャンペーン文言
									resMapMskm.put(OUT_PARAM_COMP_MONGON, getTemplateListValue(dataMap, getMaxTempTempleteKey(dataMap,
											TEMP_TEMPLATE_KEY_CMP), TEMPLATE_ID_CMP_DETAIL, EKK2251B501CBSMsg1List.CMP_MONGON, 0));
	
									// キャンペーン文言種別コード
									resMapMskm.put(OUT_PARAM_COMP_MONGON_SBT_CD, cmpMongonSbtCd);
									// 料金コースコード(キャンペーンが適用される料金コースコード)
									resMapMskm.put(OUT_PARAM_PCRS_CD, (String)wribSvcTgSvcMap.get(EKK0851B001CBSMsg1List.PCRS_CD));
									// 料金プランコード(キャンペーンが適用される料金プランコード)
									resMapMskm.put(OUT_PARAM_PPLAN_CD, (String)wribSvcTgSvcMap.get(EKK0851B001CBSMsg1List.PPLAN_CD));
									// 割引サービス適用条件種別コード
									resMapMskm.put(OUT_PARAM_WRSV_APLY_JKN_SBT_CD, null);
									resultList.add(resMapMskm);
								}
							}
						// 2016/06/13 ANK-2849-00-00 add start
						}
						// 2016/06/13 ANK-2849-00-00 add end
					}
				}
			}
		}
		// 返却用にデータをマップに詰める
		dataMap.put(OUT_PARAM_CMP_MONGON_LIST, resultList);

		return param;
	}

	/**
	 * 上りマッピングの項目設定(サービス契約内訳一覧照会（eo光テレビ情報取得）)です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param wrsvAplyJknSbtCd 割引サービス適用条件種別コード
	 * @throws RequestParameterException
	 */
	private void setInMapSvcKeiUcwkSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// ●機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// サービス契約番号
		inMap.put(EKK0161B509CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 上りマッピングの項目設定(割引サービス適用条件一覧照会)です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param wrsvAplyJknSbtCd 割引サービス適用条件種別コード
	 * @throws RequestParameterException
	 */
	private void setInMapWrsvAplySearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo, String pcrsCd, String pplanCd,
			String wrsvAplyJknSbtCd) throws RequestParameterException
	{
		// ●機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// サービス契約番号
		inMap.put(EKK2311B003CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// 料金コースコード
		inMap.put(EKK2311B003CBSMsg.KEY_PCRS_CD, pcrsCd);
		// 料金プランコード
		inMap.put(EKK2311B003CBSMsg.KEY_PPLAN_CD, pplanCd);
		// 割引サービス適用条件種別コード
		inMap.put(EKK2311B003CBSMsg.KEY_WRSV_APLY_JKN_SBT_CD, wrsvAplyJknSbtCd);

	}

	/**
	 * 上りマッピングの項目設定(割引サービス契約一覧照会(割引サービス指定))です。
	 *
	 * <br>
	 * @param param
	 * @param fixedText
	 * @param svcKeiNo
	 * @param wribSvcCd
	 * @throws RequestParameterException
	 */
	private void setInMapWrsvKeiSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo, String wribSvcCd)
			throws RequestParameterException
	{
		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// サービス契約番号
		inMap.put(EKK0451B010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// 割引サービスコード
		inMap.put(EKK0451B010CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);

	}

	/**
	 * 上りマッピングの項目設定(キャンペーン文言一覧照会)です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param wribSvcCd 割引サービスコード
	 * @param cmpMongonSbtCd キャンペーン文言種別コード
	 * @throws RequestParameterException
	 */
	private void setInMapCmpSearch(IRequestParameterReadWrite param, String fixedText, String wribSvcCd, String cmpMongonSbtCd)
			throws RequestParameterException
	{
		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 割引サービスコード
		inMap.put(EKK2251B501CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);
		// キャンペーン文言種別コード
		inMap.put(EKK2251B501CBSMsg.KEY_CMP_MONGON_SBT_CD, cmpMongonSbtCd);

	}

	/**
	 * 上りマッピング項目設定(割引サービス対象サービス一覧照会)です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param wribSvcCd 割引サービスコード
	 * @param prcGrpCd 料金グループコード
	 * @param prcsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @throws RequestParameterException
	 */
	private void setInMapWribSvcTrgtSearch(IRequestParameterReadWrite param, String fixedText, String wribSvcCd, String prcGrpCd, String prcsCd,
			String pplanCd) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿割引サービスコード
		inMap.put(EKK0851B001CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);
		// ＫＥＹ＿料金グループコード
		inMap.put(EKK0851B001CBSMsg.KEY_PRC_GRP_CD, prcGrpCd);
		// ＫＥＹ＿料金コースコード
		inMap.put(EKK0851B001CBSMsg.KEY_PCRS_CD, prcsCd);
		// ＫＥＹ＿料金プランコード
		inMap.put(EKK0851B001CBSMsg.KEY_PPLAN_CD, pplanCd);
		// ＫＥＹ＿基準年月日
		inMap.put(EKK0851B001CBSMsg.KEY_KJNYMD, JFUBPCommon.getOpeDate(null));
		// 最大件数
		inMap.put(EKK0851B001CBSMsg.MAX_SEARCH_NUM, JFUStrConst.MAX_SEARCH_NUM);

	}

	/**
	 * 上りマッピング項目設定(割引サービス契約登録)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sysId SYSID
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param mskmDtlNo 申込内容承認登録を実行したサービスID
	 * @param svcKeiNo サービス契約番号
	 * @param updDtm 更新年月日時分秒
	 * @param wribSvcTrgtSvcCd 割引サービス対象サービスコード
	 * @param wribSvcCd 割引サービスコード
	 * @param idoDiv 異動区分
	 * @throws RequestParameterException
	 */
	private void setInMapWribSvcKeiRegist(IRequestParameterReadWrite param, String fixedText, String sysId, String pcrsCd, String pplanCd,
			String mskmDtlNo, String svcKeiNo, String updDtm, String wribSvcTrgtSvcCd, String wribSvcCd, String idoDiv)
			throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// SYSID
		inMap.put(EKK0451D010CBSMsg.SYSID, sysId);
		// 割引サービスコード
		inMap.put(EKK0451D010CBSMsg.WRIB_SVC_CD, wribSvcCd);
		// 申込明細番号
		inMap.put(EKK0451D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 即時適用フラグ
		inMap.put(EKK0451D010CBSMsg.APLY_JUN, JFUStrConst.CD00403_1);
		// 異動区分
		inMap.put(EKK0451D010CBSMsg.IDO_DIV, idoDiv);
		// 申込起算年月日
		inMap.put(EKK0451D010CBSMsg.MSKM_KISAN_YMD, JFUBPCommon.getOpeDate(null));
		// 割引登録契機コード
		inMap.put(EKK0451D010CBSMsg.WRIB_ADD_OPTY_CD, JFUStrConst.CD00874_2);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0451D010CBSMsg.UPD_DTM_BF, updDtm);

		ArrayList list = new ArrayList();
		HashMap childMap = new HashMap();

		for (String key : IN_COLUMN_LIST_WRSV_REG_DETAIL)
		{
			childMap.put(key, null);
		}

		// 対象契約識別コード
		childMap.put(EKK0451D010CBSMsg1List.TG_KEI_SKBT_CD, JFUStrConst.CD00804_01);
		// サービス契約番号
		childMap.put(EKK0451D010CBSMsg1List.SVC_KEI_NO, svcKeiNo);
		// 割引サービス対象サービスコード
		childMap.put(EKK0451D010CBSMsg1List.WRIB_SVC_TRGT_SVC_CD, wribSvcTrgtSvcCd);
		// 割引サービス対象契約適用開始年月日
		childMap.put(EKK0451D010CBSMsg1List.WRISVC_TG_KEI_TSTAYMD, JFUBPCommon.getOpeDate(null));
		// 割引サービス対象契約適用終了年月日
		childMap.put(EKK0451D010CBSMsg1List.WRISVC_TG_KEI_TENDYMD, JFUStrConst.DEFAULT_YYYYMMDD);
		list.add(childMap);

		inMap.put(EKK0451D010CBSMsg.EKK0451D010CBSMSG1LIST, list);

	}

	/**
	 * 上りマッピング項目設定(割引サービス一意照会)です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param wribSvcCd 割引サービスコード
	 * @throws RequestParameterException
	 */
	private void setInMapWribMstSearch(IRequestParameterReadWrite param, String fixedText, String wribSvcCd) throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿割引サービスコード
		inMap.put(EKK0841A010CBSMsg.KEY_WRIB_SVC_CD, wribSvcCd);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0841A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(業務パラメータ管理一意照会)です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param workParamId 業務パラメータＩＤ
	 * @throws RequestParameterException
	 */
	private void setInMapWorkParamSearch(IRequestParameterReadWrite param, String fixedText, String workParamId) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿業務パラメータＩＤ
		inMap.put(EZM0321A010CBSMsg.KEY_WORK_PARAM_ID, workParamId);

	}

	/**
	 * 上りマッピング項目設定(割引サービス契約一意照会)です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapWribSvcKeiUniqueSearch(IRequestParameterReadWrite param, String fixedText, String wribSvcKeiNo)
			throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿割引サービス契約番号
		inMap.put(EKK0451A010CBSMsg.KEY_WRIB_SVC_KEI_NO, wribSvcKeiNo);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0451A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(割引サービス契約一覧照会（サービス契約番号））です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapWribSvcKeiSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0451B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * フロント配送受付在庫更新登録処理
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param kikiChgNo 機器変更番号
	 * @throws Throwable
	 */
	protected void chgFrntHisukZkup(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String kikiChgNo)
			throws Throwable
	{
		// 機器提供サービス契約番号、機器変更番号が未設定の場合は処理なし
		if (JFUBPCommon.isNull(kktkSvcKeiNo) || JFUBPCommon.isNull(kikiChgNo))
		{
			return;
		}

		// ●フロント配送受付在庫更新登録
		chgFrntHisukZkup(handle, param, fixedText, kktkSvcKeiNo, kikiChgNo, JFUStrConst.CD01617_1);
	}

	/**
	 * フロント配送受付在庫更新登録処理(減算)
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param kikiChgNo 機器変更番号
	 * @throws Throwable
	 */
	protected void chgFrntHisukZkupMinus(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo,
			String kikiChgNo) throws Throwable
	{
		// 機器提供サービス契約番号、機器変更番号が未設定の場合は処理なし
		if (JFUBPCommon.isNull(kktkSvcKeiNo) || JFUBPCommon.isNull(kikiChgNo))
		{
			return;
		}

		// ●フロント配送受付在庫更新登録
		chgFrntHisukZkup(handle, param, fixedText, kktkSvcKeiNo, kikiChgNo, JFUStrConst.CD01617_2);
	}

	/**
	 * フロント配送受付在庫更新登録処理
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param kikiChgNo 機器変更番号
	 * @param hisukZkupSbtCd  配送受付在庫更新種別コード
	 * @throws Throwable
	 */
	private void chgFrntHisukZkup(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String kikiChgNo,
			String hisukZkupSbtCd) throws Throwable
	{
		// 機器提供サービス契約番号、機器変更番号が未設定の場合は処理なし
		if (JFUBPCommon.isNull(kktkSvcKeiNo) || JFUBPCommon.isNull(kikiChgNo))
		{
			return;
		}

		// ●フロント配送受付在庫更新登録
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_36);
		// 上りマッピング
		setInMapFrntHisukZkupRegist(param, fixedText, kktkSvcKeiNo, kikiChgNo, hisukZkupSbtCd);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_36, TEMPLATE_ID_36_DETAIL, IN_COLUMN_LIST_36, ERROR_COLUMN_36);
	}

	/**
	 * 上りマッピング項目設定(フロント配送受付在庫更新登録)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @param hisukZkupSbtCd  配送受付在庫更新種別コード
	 * @throws RequestParameterException
	 */
	private void setInMapFrntHisukZkupRegist(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo, String kikiChgNo,
			String hisukZkupSbtCd) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器提供サービス契約番号
		inMap.put(EFU0321D010CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// 機器変更番号
		inMap.put(EFU0321D010CBSMsg.KIKI_CHG_NO, kikiChgNo);
		// 在庫確認済フラグ
		inMap.put(EFU0321D010CBSMsg.ZAIKO_CFM_ZM_FLG, JFUStrConst.CD00581_0);
		// 在庫確認年月日時分秒
		inMap.put(EFU0321D010CBSMsg.ZAIKO_CFM_DTM, null);
		// フロント配送受付在庫更新結果コード
		inMap.put(EFU0321D010CBSMsg.HISUK_ZKUP_RSLT_CD, null);
		// フロント配送受付在庫更新結果詳細コード
		inMap.put(EFU0321D010CBSMsg.HISUK_ZKUP_RSLT_DTL_CD, null);
		// 在庫更新不可リスト出力済フラグ
		inMap.put(EFU0321D010CBSMsg.ZKUP_FAIL_LIST_OPUTZM_FLG, JFUStrConst.CD00581_0);
		// 在庫更新不可リスト出力年月日
		inMap.put(EFU0321D010CBSMsg.ZKUP_FAIL_LIST_OPUT_YMD, null);
		// 配送受付在庫更新種別コード
		inMap.put(EFU0321D010CBSMsg.HISUK_ZKUP_SBT_CD, hisukZkupSbtCd);
	}

	/**
	 * 機器オプションサービス契約登録の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcCd 機器オプションサービスコード
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param vaUm VA有無
	 * @param sysid SYSID
	 * @param idoDiv 異動区分
	 * @param seikyKeiNo 請求契約番号
	 * @param updDtmBf 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKkopAdd(IRequestParameterReadWrite param, String fixedText, String kkopSvcCd, String pcrsCd, String pplanCd,
			String kktkSvcKeiNo, String mskmDtlNo, String vaUm, String sysid, String idoDiv, String seikyKeiNo, String updDtmBf)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービスコード
		inMap.put(EKK2811D010CBSMsg.KKOP_SVC_CD, kkopSvcCd);
		// 料金コースコード
		inMap.put(EKK2811D010CBSMsg.PCRS_CD, pcrsCd);
		// 料金プランコード
		inMap.put(EKK2811D010CBSMsg.PPLAN_CD, pplanCd);
		// 機器提供サービス契約番号
		inMap.put(EKK2811D010CBSMsg.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		// SYSID
		inMap.put(EKK2811D010CBSMsg.SYSID, sysid);
		// 申込明細番号
		inMap.put(EKK2811D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 予約適用年月日
		inMap.put(EKK2811D010CBSMsg.RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
		// 予約適用コード
		inMap.put(EKK2811D010CBSMsg.RSV_APLY_CD, JFUStrConst.CD00343_2);
		// 異動区分
		inMap.put(EKK2811D010CBSMsg.IDO_DIV, idoDiv);
		// 請求契約番号
		inMap.put(EKK2811D010CBSMsg.SEIKY_KEI_NO, seikyKeiNo);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811D010CBSMsg.UPD_DTM_BF, updDtmBf);

		// 機器連帯契約変更手続中フラグ
		if (!JFUBPCommon.isNull(vaUm))
		{
			inMap.put(EKK2811D010CBSMsg.KIKI_RNTAI_KEI_CHGECHU_FLG, JFUStrConst.KK2811_KIKI_RNTAI_KEI_CHGECHU_FLG_1);
		}
		else
		{
			inMap.put(EKK2811D010CBSMsg.KIKI_RNTAI_KEI_CHGECHU_FLG, JFUStrConst.KK2811_KIKI_RNTAI_KEI_CHGECHU_FLG_0);
		}
	}

	/**
	 * 機器オプションサービス契約照査の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param idoDiv 異動区分
	 * @param updDtmBf 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKkopShosa(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String idoDiv, String updDtmBf)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C030CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 異動区分
		inMap.put(EKK2811C030CBSMsg.IDO_DIV, idoDiv);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C030CBSMsg.UPD_DTM_BF, updDtmBf);
	}

	/**
	 * 機器オプションサービス契約照査の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param idoDiv 異動区分
	 * @param updDtmBf 更新年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKkopShosaTeiketsu(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String idoDiv, String updDtmBf)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C050CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 異動区分
		inMap.put(EKK2811C050CBSMsg.IDO_DIV, idoDiv);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C050CBSMsg.UPD_DTM_BF, updDtmBf);
	}

	/**
	 * 機器オプションサービス契約開始の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param idoDiv 異動区分
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @param dojiStaUm 同時開始有無
	 * @throws RequestParameterException
	 */
	private void setInMapKkopKaishi(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String idoDiv, String updDtmBf,
			String dojiStaUm) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C070CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 異動区分
		inMap.put(EKK2811C070CBSMsg.IDO_DIV, idoDiv);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C070CBSMsg.UPD_DTM_BF, updDtmBf);
		// 同時開始有無
		inMap.put(EKK2811C070CBSMsg.DOJI_STA_UMU, dojiStaUm);
	}

	/**
	 * 同一利用場所サービス契約一覧照会の上りマッピング処理です。
	 *
	 * <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 sysid SYSID
	 * @param svcKeiKaisenUwNo 回線内訳情報
	 * @throws RequestParameterException
	 */
	private void setInMapGetTknRouterInfo(IRequestParameterReadWrite param, String fixedText, String sysid, String svcKeiKaisenUwNo)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿SYSID
		inMap.put(EKK2811B503CBSMsg.KEY_SYSID, sysid);
		// ＫＥＹ＿サービス契約回線内訳番号
		inMap.put(EKK2811B503CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUwNo);
//		// ＫＥＹ＿宅内機器種別コード
//		inMap.put(EKK2811B503CBSMsg.KEY_TAKNKIKI_SBT_CD, JFUStrConst.CD01262_R0);
	}

	/**
	 * 機器オプションサービス契約料金プラン変更の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param idoDiv 異動区分
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @param mskmDtlNo 申込明細番号
	 * @throws RequestParameterException
	 */
	private void setInMapKkopPplanChg(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String idoDiv, String pcrsCd,
			String pplanCd, String updDtmBf, String mskmDtlNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C250CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 異動区分
		inMap.put(EKK2811C250CBSMsg.IDO_DIV, idoDiv);
		// 予約適用年月日
		inMap.put(EKK2811C250CBSMsg.RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
		// 申込明細番号
		inMap.put(EKK2811C250CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 料金コースコード
		inMap.put(EKK2811C250CBSMsg.PCRS_CD, pcrsCd);
		// 料金プランコード
		inMap.put(EKK2811C250CBSMsg.PPLAN_CD, pplanCd);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C250CBSMsg.UPD_DTM_BF, updDtmBf);
	}

	/**
	 * 機器オプションサービス契約手続中料金プラン変更の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @param mskmDtlNo 申込明細番号
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @throws RequestParameterException
	 */
	private void setInMapKkopPplanChgTetsuzuki(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String pcrsCd,
			String pplanCd, String updDtmBf, String mskmDtlNo, String geneAddDtm) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C240CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 世代登録年月日時分秒
		inMap.put(EKK2811C240CBSMsg.GENE_ADD_DTM, geneAddDtm);
		// 申込明細番号
		inMap.put(EKK2811C240CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 料金コースコード
		inMap.put(EKK2811C240CBSMsg.PCRS_CD, pcrsCd);
		// 料金プランコード
		inMap.put(EKK2811C240CBSMsg.PPLAN_CD, pplanCd);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C240CBSMsg.UPD_DTM_BF, updDtmBf);
	}

	/**
	 * 工事案件対象宅内機器の項目名の連番を編集します。
	 * <br>
	 * @param colName 項目名
	 * @param idx 連番
	 * @return 編集後の工事案件対象宅内機器の項目名
	 */
	protected String editTaknkikiColNmIdx(String colName, int idx)
	{
		return colName.substring(0, colName.length() - 1) + idx;
	}

	/**
	 * 上りマッピング項目設定(メール送信情報登録)
	 * <br>
	 *
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param mlad メールアドレス
	 * @param mladBcc メールアドレス(BCC)
	 * @throws RequestParameterException
	 * @throws IOException
	 */
	private void setInMapSendMailRegist(IRequestParameterReadWrite param, String fixedText, String mlad, String mladBcc)
			throws RequestParameterException, IOException
	{
		// 機能コード設定(2:メール送信情報登録のみ)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		List mailList = new ArrayList();
		HashMap mailMap = new HashMap();

		// TO
		mailMap.put(ECC0021D010CBSMsg1List.MLAD, mlad);
		mailMap.put(ECC0021D010CBSMsg1List.MLAD_SET_FIELD_CD, JFUStrConst.CD00788_01);
		mailMap.put(ECC0021D010CBSMsg1List.MLAD_DSP_NM, null);
		mailList.add(mailMap);

		// BCC
		if (!JFUBPCommon.isNull(mladBcc))
		{
			HashMap bccMap = new HashMap();

			bccMap.put(ECC0021D010CBSMsg1List.MLAD, mladBcc);
			bccMap.put(ECC0021D010CBSMsg1List.MLAD_SET_FIELD_CD, JFUStrConst.CD00788_04);
			bccMap.put(ECC0021D010CBSMsg1List.MLAD_DSP_NM, null);

			mailList.add(bccMap);
		}

		// 送信先一覧明細
		inMap.put(ECC0021D010CBSMsg.ECC0021D010CBSMSG1LIST, mailList);
		// 送信予定年月日時分秒
		inMap.put(ECC0021D010CBSMsg.MAIL_SEND_RSV_DTM, JFUBPCommon.getOpeDateTimeStamp(null));
		// メール送信パターンコード
		inMap.put(ECC0021D010CBSMsg.MAIL_SEND_PATTERN_CD, JFUStrConst.CD00789_02);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約一覧照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0341B008CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 回線対象サービス契約一覧照会の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @throws RequestParameterException
	 */
	private void setInMapKaisenTgSvKeiSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiKaisenUcwkNo)
			throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約回線内訳番号
		inMap.put(EKK0241B002CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
	}

	/**
	 * VA保有有無取得処理です。
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param sysId SYSID
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @return VA有無
	 * @throws Exception
	 */
	private HashMap getTelKikiInfo(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String sysId, String svcKeiKaisenUcwkNo)
			throws Exception
	{
		HashMap resultMap = new HashMap();

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●同一利用場所サービス契約一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_EKK0081B011);
		// 上りマッピング
		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 telSvcKeiNoGet = BLANK;
		List<HashMap> svcKeiListGet =
				getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0081B011), TEMPLATE_ID_EKK0081B011_DETAIL);
		for (HashMap svcKeiMap : svcKeiListGet)
		{
			String prcGrpCd = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.PRC_GRP_CD);
			String svcKeiStat = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_STAT);

			if (JFUStrConst.CD00133_10.equals(prcGrpCd) && !JFUStrConst.CD00037_910.equals(svcKeiStat) && !JFUStrConst.CD00037_920.equals(svcKeiStat))
			{
				// 料金グループコードが「10」、ステータスが「910,920」以外
				telSvcKeiNoGet = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_NO);
			}
		}

		// 機器情報格納
		String vaUm = JFUStrConst.CD00002_0;

		// 電話を契約している場合のみ実行
		if (!JFUBPCommon.isNull(telSvcKeiNoGet))
		{
			// ●機器提供サービス契約一覧照会（サービス契約番号）VA機器取得
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_14);
			// 上りマッピング
			setInMapKktkSvcKeiNoSearch(param, fixedText, telSvcKeiNoGet, JFUStrConst.KK0771_KKTK_SVC_CD_C004);
			// データなしエラーなし
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_14, TEMPLATE_ID_14_DETAIL, IN_COLUMN_LIST_14, ERROR_COLUMN_14);

			// ●VA保有有無チェック
			List<HashMap> kktkVaUmList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_14), TEMPLATE_ID_14_DETAIL);
			for (HashMap kktkVaUmMap : kktkVaUmList)
			{
				String kktkSvcCd = (String)kktkVaUmMap.get(EKK0341B019CBSMsg1List.KKTK_SVC_CD);
				if (JFUStrConst.KK0771_KKTK_SVC_CD_C004.equals(kktkSvcCd))
				{
					// VAの機器情報を取得
					vaUm = JFUStrConst.CD00002_1;
					break;
				}
			}
		}

		// VAの機器情報を格納
		resultMap.put(MSG_VA_UM, vaUm);

		return resultMap;
	}

	/**
	 * サービス契約(電話)情報取得処理です。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sysId SYSID
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param svcKeiNo サービス契約番号
	 * @return サービス契約(電話)情報
	 * @throws Exception
	 */
	protected HashMap getSvcKeiTelInfo(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String sysId,
			String svcKeiKaisenUcwkNo, String svcKeiNo) throws Exception
	{
		HashMap svcKeiTelInfoMap = new HashMap();

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●同一利用場所サービス契約一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_EKK0081B011);
		// 上りマッピング
		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 telSvcKeiNo = BLANK;
		String pcrcCdTel = BLANK;
		List<HashMap> svcKeiList =
				getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0081B011), TEMPLATE_ID_EKK0081B011_DETAIL);
		for (HashMap svcKeiMap : svcKeiList)
		{
			String prcGrpCd = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.PRC_GRP_CD);
			String svcKeiStat = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_STAT);

			if (JFUStrConst.CD00133_10.equals(prcGrpCd) && !JFUStrConst.CD00037_910.equals(svcKeiStat) && !JFUStrConst.CD00037_920.equals(svcKeiStat))
			{
				// 料金グループコードが「10」、ステータスが「910,920」以外
				telSvcKeiNo = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.SVC_KEI_NO);
				// 料金コースコードを設定(番号判定用)
				pcrcCdTel = (String)svcKeiMap.get(EKK0081B011CBSMsg1List.PCRS_CD);
			}
		}

		// 電話を契約している場合のみ実行
		String vaUm = JFUStrConst.CD00002_0;
		String seikyKeiNoTel = BLANK;
		String kktkSvcKeiNo = BLANK;
		String kktkSvcKeiStat = BLANK;
		String kikiChgNo = BLANK;
		String kikiSeizoNo = BLANK;
		String taknkikiModelCd = BLANK;
		String kktkSbtCd = BLANK;

		if (!JFUBPCommon.isNull(telSvcKeiNo))
		{
			// ●機器提供サービス契約一覧照会（サービス契約番号）※VA機器取得
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_14);
			// 上りマッピング
			setInMapKktkSvcKeiNoSearch(param, fixedText, telSvcKeiNo, JFUStrConst.KK0771_KKTK_SVC_CD_C004);
			// データなしエラーなし
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_14, TEMPLATE_ID_14_DETAIL, IN_COLUMN_LIST_14, ERROR_COLUMN_14);

			// ●VA保有有無チェック
			List<HashMap> kktkVaUmList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_14), TEMPLATE_ID_14_DETAIL);
			for (HashMap kktkVaUmMap : kktkVaUmList)
			{
				String kktkSvcCd = (String)kktkVaUmMap.get(EKK0341B019CBSMsg1List.KKTK_SVC_CD);
				kktkSvcKeiNo = (String)kktkVaUmMap.get(EKK0341B019CBSMsg1List.KKTK_SVC_KEI_NO);
				kktkSvcKeiStat = (String)kktkVaUmMap.get(EKK0341B019CBSMsg1List.KKTK_SVC_KEI_STAT);
				kikiChgNo = (String)kktkVaUmMap.get(EKK0341B002CBSMsg1List.KIKI_CHG_NO);
				kikiSeizoNo = (String)kktkVaUmMap.get(EKK0341B002CBSMsg1List.KIKI_SEIZO_NO);
				taknkikiModelCd = (String)kktkVaUmMap.get(EKK0341B002CBSMsg1List.TAKNKIKI_MODEL_CD);
				kktkSbtCd = (String)kktkVaUmMap.get(EKK0341B002CBSMsg1List.KKTK_SBT_CD);

				if (JFUStrConst.KK0771_KKTK_SVC_CD_C004.equals(kktkSvcCd))
				{
					// VA保有フラグを「true」
					vaUm = JFUStrConst.CD00002_1;
					break;
				}
			}

			// ●課金先一覧照会（請求契約番号/サービス契約番号）※電話契約用
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_4);
			// 上りマッピング
			setInMapKakinsSearch(param, fixedText, telSvcKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_4, TEMPLATE_ID_4_DETAIL, IN_COLUMN_LIST_4, ERROR_COLUMN_4);
			// 請求契約番号
			seikyKeiNoTel =
					getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_4), TEMPLATE_ID_4_DETAIL,
							EKK0321B002CBSMsg1List.SEIKY_KEI_NO, 0);
		}

		// 返却値設定
		svcKeiTelInfoMap.put(EKK0081B011CBSMsg1List.SVC_KEI_NO, telSvcKeiNo);
		svcKeiTelInfoMap.put(EKK0081B011CBSMsg1List.PCRS_CD, pcrcCdTel);
		svcKeiTelInfoMap.put(RESULT_VA_UM, vaUm);
		svcKeiTelInfoMap.put(EKK0321B002CBSMsg1List.SEIKY_KEI_NO, seikyKeiNoTel);
		svcKeiTelInfoMap.put(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_NO, kktkSvcKeiNo);
		svcKeiTelInfoMap.put(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT, kktkSvcKeiStat);
		svcKeiTelInfoMap.put(EKK0341B002CBSMsg1List.KIKI_CHG_NO, kikiChgNo);
		svcKeiTelInfoMap.put(EKK0341B002CBSMsg1List.KIKI_SEIZO_NO, kikiSeizoNo);
		svcKeiTelInfoMap.put(EKK0341B002CBSMsg1List.TAKNKIKI_MODEL_CD, taknkikiModelCd);
		svcKeiTelInfoMap.put(EKK0341B002CBSMsg1List.KKTK_SBT_CD, kktkSbtCd);

		return svcKeiTelInfoMap;
	}

	/**
	 * 電話番号紐付け処理
	 * <br>
	 *
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param telSvcKeiNo サービス契約番号(e電話)
	 * @param kikiChgNo 機器変更番号
	 * @param lastUpdDtm 最終更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @param mskmDtlNo 申込明細番号
	 * @throws Exception
	 */
	private void updTelRelation(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String telSvcKeiNo, String kikiChgNo,
			String lastUpdDtm, String idoDiv, String mskmDtlNo) throws Exception
	{

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●現サービス契約内訳情報一覧照会(電話)
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_39);
		// データなしエラーなし
		ignoreSearchError(param, fixedText);
		// 上りマッピング
		setInMaSvcKeiUcwkTelSearch(param, fixedText, telSvcKeiNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_39, TEMPLATE_ID_39_DETAIL, IN_COLUMN_LIST_39, ERROR_COLUMN_39);
		List<HashMap> svcKeiUcwkList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_39), TEMPLATE_ID_39_DETAIL);

		for (HashMap svcKeiUcwkMap : svcKeiUcwkList)
		{
			// サービス契約内訳番号
			String svcKeiUcwkNo = (String)svcKeiUcwkMap.get(EKK0161B505CBSMsg1List.SVC_KEI_UCWK_NO);

			// ●サービス契約内訳<eo光電話>一意照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_40);
			// データなしエラーなし
			ignoreSearchError(param, fixedText);
			// 上りマッピング
			setInMaSvkeiUwTelUniqueSearch(param, fixedText, svcKeiUcwkNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_40, TEMPLATE_ID_40_DETAIL, IN_COLUMN_LIST_40, ERROR_COLUMN_40);
			HashMap svkeiUwInfoMap =
					getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_40), TEMPLATE_ID_40_DETAIL, JFUStrConst.I_ZERO);

			// ●サービス契約内訳<eo光電話>情報変更 ※電話番号の紐付け
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_41);
			// データなしエラーなし
			ignoreSearchError(param, fixedText);
			// 上りマッピング
			setInMaSvkeiUwTelInfoChg(param, fixedText, svkeiUwInfoMap, kikiChgNo, lastUpdDtm, idoDiv, mskmDtlNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_41, TEMPLATE_ID_41_DETAIL, IN_COLUMN_LIST_41, ERROR_COLUMN_41);
			// 更新年月日時分秒
			lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_41), EKK0191C060CBSMsg.UPD_DTM);
		}
	}

	/**
	 * 上りマッピング項目設定(現サービス契約内訳情報一覧照会(電話))
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMaSvcKeiUcwkTelSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0161B505CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(サービス契約内訳<eo光電話>一意照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @throws RequestParameterException
	 */
	private void setInMaSvkeiUwTelUniqueSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiUcwkNo)
			throws RequestParameterException
	{
		// 機能コード設定(2)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0191A010CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwkNo);
	}

	/**
	 * 上りマッピング項目設定(サービス契約内訳<eo光電話>情報変更)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svkeiUwInfoMap サービス契約内訳情報マップ
	 * @param kikiChgNo 機器変更番号
	 * @param updDtm 更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @param mskmDtlNo 申込明細番号
	 * @throws RequestParameterException
	 */
	private void setInMaSvkeiUwTelInfoChg(IRequestParameterReadWrite param, String fixedText, HashMap svkeiUwInfoMap, String kikiChgNo,
			String updDtm, String idoDiv, String mskmDtlNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, svkeiUwInfoMap);

		// 異動区分
		inMap.put(EKK0191C060CBSMsg.IDO_DIV, idoDiv);
		// 申込明細番号
		inMap.put(EKK0191C060CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0191C060CBSMsg.UPD_DTM_BF, updDtm);
		// VA機器変更番号
		inMap.put(EKK0191C060CBSMsg.VA_KIKI_CHG_NO, kikiChgNo);
		// VA機器製造番号
		inMap.put(EKK0191C060CBSMsg.VA_KIKI_SEIZO_NO, null);
		// VA宅内機器型式コード
		inMap.put(EKK0191C060CBSMsg.VA_TAKNKIKI_MODEL_CD, null);
		// 事務手数料自動適用要否
		inMap.put(EKK0191C060CBSMsg.RULE0059_AUTO_APLY, JFUStrConst.CD00002_0);
	}

	/**
	 * 上りマッピング項目設定(現機器提供サービス契約一覧照会)
	 * @param param
	 * @param fixedText
	 * @param svcKeiNo
	 * @throws RequestParameterException
	 */
	private void setInMapGenKktkSvcKeiSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0341B502CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// ＫＥＹ＿サービス契約番号＜回線内訳＞
		inMap.put(EKK0341B502CBSMsg.KEY_SVC_KEI_NO_KAISEN_UCWK, svcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(契約機器配送対象物品一覧照会)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapHaisoInfoSearch(IRequestParameterReadWrite param, String fixedText, String kktkSvcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿機器提供サービス契約番号
		inMap.put(EDK0011B090CBSMsg.KEY_KKTK_SVC_KEI_NO, kktkSvcKeiNo);

	}
	/**
	 *  IPv6申込・解約時のSOD対象となる有効なサービス契約内訳情報マップを返します。(新認証IDのみ)
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @return
	 * @throws Throwable
	 */
	protected HashMap getUcwkInfoMap(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws Throwable
	{
		return getUcwkInfoMap(handle, param, fixedText, svcKeiNo, NISHO_ID_DIV_NEW);
	}

	/**
	 * IPv6申込・解約時のSOD対象となる有効なサービス契約内訳情報マップを返します。(新・旧認証ID選択可)
	 * 
	 *  <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @return サービス契約内訳情報マップ
	 * @param ninshoIdDiv 新旧認証ID識別
	 * @return
	 * @throws Throwable
	 */
	protected HashMap getUcwkInfoMap(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String svcKeiNo, String ninshoIdDiv)
			throws Throwable
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●EKK0161B004_サービス契約内訳一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK0161B004);
		// 上りマッピング
		setInMapEKK0161B004(param, fixedText, svcKeiNo);
		// サービスIF実行
		JFUBPCommon.executeSC(handle, param, fixedText, TEMP_ID_EKK0161B004, TEMP_ID_DTL_EKK0161B004, IN_COL_LIST_EKK0161B004, ERR_COL_EKK0161B004);
		// サービス契約内訳情報リスト
		List<HashMap> svcKeiUcwkList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0161B004), TEMP_ID_DTL_EKK0161B004);

		HashMap svcKeiUcwkInfoMap = null;

		int ucwkCnt = 0;
		
		// OM-2016-0000140_IPv6申込、解約SOD 対応 mod start
		// 内訳リストのインデックス
		int ucwkListIndex = 0;
		// 有効な内訳のインデックス
		int ucwkValidIndex = 0;

		for (HashMap tmpMap : svcKeiUcwkList)
		{
			String svcKeiUcwkStat = (String)tmpMap.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT);

			// ステータスが解約以下の場合
			if (JFUStrConst.CD00037_910.compareTo(svcKeiUcwkStat) > 0)
			{
				ucwkCnt++;
				// 有効な内訳のインデックスを設定（一件のみの場合に使用）
				ucwkValidIndex = ucwkListIndex;
			}
			
			ucwkListIndex++;
		}
		
		// OM-2016-0000140_IPv6申込、解約SOD 対応 mod end

		// 有効な内訳が一件の場合
		if (JFUStrConst.I_ONE == ucwkCnt)
		{
			// OM-2016-0000140_IPv6申込、解約SOD 対応 mod start
			svcKeiUcwkInfoMap = (HashMap)svcKeiUcwkList.get(ucwkValidIndex);
			// OM-2016-0000140_IPv6申込、解約SOD 対応 mod end
		}
		// 有効な内訳が複数件
		else
		{
			ucwkCnt = 0;

			for (HashMap tmpMap : svcKeiUcwkList)
			{

				// サービス契約内訳ステータス
				String svcKeiUcwkStat = (String)tmpMap.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT);
				// サービス契約内訳番号
				String svcKeiUcwkNo = (String)tmpMap.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO);

				// ステータスが解約以下の場合
				if (JFUStrConst.CD00037_910.compareTo(svcKeiUcwkStat) > 0)
				{
					boolean isExistsReserve = false;

					// ●EKK1681B001_異動予約一覧照会
					// ユーザデータ初期化
					initData(param, fixedText, IN_COLUMN_LIST_EKK1681B001);
					// 検索エラーなし設定
					ignoreSearchError(param, fixedText);
					// 上りマッピング
					setInMapEKK1681B001(param, fixedText, svcKeiUcwkNo);
					// サービスIF実行
					executeSC(handle, param, fixedText, TEMPLATE_ID_EKK1681B001, TEMPLATE_ID_EKK1681B001_DETAIL, IN_COLUMN_LIST_EKK1681B001,
							ERROR_COLUMN_EKK1681B001);

					for (HashMap idoRsvMap : getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK1681B001),
							TEMPLATE_ID_EKK1681B001_DETAIL))
					{
						// 異動区分
						String idoDiv = (String)idoRsvMap.get(EKK1681B001CBSMsg1List.IDO_DIV);
						// 異動予約詳細コード
						String idoRsvDetailCd = (String)idoRsvMap.get(EKK1681B001CBSMsg1List.IDO_RSV_DTL_CD);

						// コース変更・住変に伴う内訳の解約予約がある場合
						if ((JFUStrConst.CD00576_00009.equals(idoDiv) || JFUStrConst.CD00576_00019.equals(idoDiv))
								&& JFUStrConst.CD01167_007.equals(idoRsvDetailCd))
						{
							// 旧認証IDが対象の場合
							if (NISHO_ID_DIV_OLD.equals(ninshoIdDiv))
							{
								svcKeiUcwkInfoMap = tmpMap;
							}
							isExistsReserve = true;
						}
					}

					// ステータスが有効で解約予約もない
					if (!isExistsReserve)
					{
						// 新認証IDが対象の場合
						if (NISHO_ID_DIV_NEW.equals(ninshoIdDiv))
						{
							svcKeiUcwkInfoMap = tmpMap;
						}
						ucwkCnt++;
					}
				}
			}

			// 有効なサービス契約内訳がない、または、複数存在
			if (JFUStrConst.I_ZERO == ucwkCnt || JFUStrConst.I_ONE < ucwkCnt)
			{
				throw new CCException(ERR_MSG_IPV6, new Exception());
			}
		}

		return svcKeiUcwkInfoMap;
	}

	/**
	 * 上りマッピング項目設定(サービス契約内訳一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0161B004(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1:一覧照会)
		JFUBPCommon.setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);

	}

	/**
	 * 上りマッピング項目設定(異動予約一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK1681B001(IRequestParameterReadWrite param, String fixedText, String svcKeiUcwkNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1)
		JFUBPCommon.setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿サービス契約内訳番号
		inMap.put(EKK1681B001CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwkNo);

		// ＫＥＹ＿異動予約状態コード(00:未反映・03:予約手続中)
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, JFUStrConst.CD01168_00 + JFUStrConst.COMMA + JFUStrConst.CD01168_03);
	}

	/**
	 * サービス契約内訳<eo光ネット>一意照会（カレント）
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @return svkeiuwEohNetMap サービス契約内訳<eo光ネット>の情報
	 * @throws Throwable
	 */
	protected HashMap getSvkeiuwEohNet(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String svcKeiUcwkNo) throws Throwable
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 上りマッピング
		setInMapEKK0171A010Search(param, fixedText, svcKeiUcwkNo);

		// ●サービス契約内訳<eo光ネット>一意照会 サービスIF実行
		// 上りマッピング
		setInMapEKK0171A010Search(param, fixedText, svcKeiUcwkNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0171A010, TEMPLATE_ID_EKK0171A010_DETAIL, IN_COLUMN_LIST_EKK0171A010,
				ERROR_COLUMN_EKK0171A010);

		// 一覧
		List<HashMap> resultListEKK0171A010 = getTemplateList(inMap, TEMP_TEMPLATE_KEY_EKK0171A010, TEMPLATE_ID_EKK0171A010_DETAIL);
		HashMap svkeiuwEohNetMap = new HashMap();

		for (HashMap resultMap : resultListEKK0171A010)
		{
			// 世代登録年月日時分秒
			svkeiuwEohNetMap.put(EKK0171A010CBSMsg1List.GENE_ADD_DTM, (String)resultMap.get(EKK0171A010CBSMsg1List.GENE_ADD_DTM));
			// ISP認証ID
			svkeiuwEohNetMap.put(EKK0171A010CBSMsg1List.ISP_NINSHO_ID, (String)resultMap.get(EKK0171A010CBSMsg1List.ISP_NINSHO_ID));
			// ISP認証IDパスワード
			svkeiuwEohNetMap.put(EKK0171A010CBSMsg1List.ISP_NINSHO_ID_PWD, (String)resultMap.get(EKK0171A010CBSMsg1List.ISP_NINSHO_ID_PWD));
		}
		return svkeiuwEohNetMap;

	}

	/**
	 * 上りマッピングの項目設定(サービス契約内訳<eo光ネット>一意照会)です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0171A010Search(IRequestParameterReadWrite param, String fixedText, String svcKeiUcwkNo) throws RequestParameterException
	{
		// 機能コード設定(2:カレントレコードの照会を行う)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);

		// サービス契約内訳番号
		inMap.put(EKK0171A010CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwkNo);

	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約情報変更（契約変更中）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kikiInfoMap 機器情報マップ
	 * @param updDtm 更新年月日時分秒
	 * @param shelfCd 棚コード
	 * @param haisoWayCd 配送方法コード
	 * @throws RequestParameterException
	 */
	private void setInMapKktkSvcKeiInfoChgTkn(IRequestParameterReadWrite param, String fixedText, HashMap kikiInfoMap, String updDtm, String shelfCd, HashMap<String, String> addressInfoMap, String haisoWayCd) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 同一項目を移送
		super.copyProperties(inMap, kikiInfoMap);

		// 更新年月日時分秒(更新前)
		inMap.put(EKK0341C231CBSMsg.UPD_DTM_BF, updDtm);
		// 異動区分
		inMap.put(EKK0341C231CBSMsg.IDO_DIV, JFUStrConst.CD00576_00009);
		// 機器引当指定倉庫コード
		inMap.put(EKK0341C231CBSMsg.KIKI_HKAT_SHITEI_SOKO_CD, SOKO_CD_MINATO);
		// 機器引当指定倉庫棚コード
		inMap.put(EKK0341C231CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, shelfCd);

		// 機器送付先名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_NM, addressInfoMap.get(IN_PARAM_SENDTO_NAME));
		// 機器送付先カナ名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_KANA, addressInfoMap.get(IN_PARAM_SENDTO_NAME_KANA));
		// 機器送付先住所コード
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AD_CD, addressInfoMap.get(IN_PARAM_AD_CD));
		// 機器送付先郵便番号
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_PCD, addressInfoMap.get(IN_PARAM_SENDTO_ZIP_CD));
		// 機器送付先都道府県名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_STATE_NM, addressInfoMap.get(IN_PARAM_STATE_NM));
		// 機器送付先市区町村名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_CITY_NM, addressInfoMap.get(IN_PARAM_CITY_NM));
		// 機器送付先大字通称名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_OAZTSU_NM, addressInfoMap.get(IN_PARAM_OAZTSU_NM));
		// 機器送付先字丁目名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_AZCHO_NM, addressInfoMap.get(IN_PARAM_AZCHO_NM));
		// 機器送付先番地号
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_BNCHIGO, addressInfoMap.get(IN_PARAM_AFTER_BNCHI));
		// 機器送付先住所補記・建物名
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRTTM, addressInfoMap.get(IN_PARAM_SENDTO_BLD));
		// 機器送付先住所補記・部屋番号
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_ADRRM, addressInfoMap.get(IN_PARAM_SENDTO_ROOM));
		// 機器送付先電話番号
		inMap.put(EKK0341C231CBSMsg.KIKI_SOHUS_TELNO, addressInfoMap.get(IN_PARAM_SENDTO_TELNO));

		// 機器種別コード
		inMap.put(EKK0341C231CBSMsg.KKTK_SBT_CD, JFUStrConst.CD00212_02);
		// 販売種別コード
		inMap.put(EKK0341C231CBSMsg.HAMBAI_SBT_CD, JFUStrConst.CD00348_10);
		// 機器送料有無
		inMap.put(EKK0341C231CBSMsg.KIKI_SORYO_UM, null);
		// 機器送付先住所手動入力フラグ
		inMap.put(EKK0341C231CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);
		// 機器送付先個別指定フラグ
		inMap.put(EKK0341C231CBSMsg.KIKI_SHS_KBT_SHITEI_FLG, JFUStrConst.KK0341_KIKI_SHS_KBT_SHITEI_FLG_1);
		// 配送区分
		inMap.put(EKK0341C231CBSMsg.HAISO_DIV, JFUStrConst.CD00020_00);
		// 配送方法コード
		inMap.put(EKK0341C231CBSMsg.HAISO_WAY_CD, haisoWayCd);

	}

	/**
	 * 機器オプションサービス契約登録の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcCd 機器オプションサービスコード
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param vaUm VA有無
	 * @param sysid SYSID
	 * @param idoDiv 異動区分
	 * @param seikyKeiNo 請求契約番号
	 * @param updDtmBf 更新年月日時分秒
	 * @param rtNewPcrsAplyFlg 新コース適用フラグ
	 * @throws RequestParameterException
	 */
	private void setInMapKkopAdd(IRequestParameterReadWrite param, String fixedText, String kkopSvcCd, String pcrsCd, String pplanCd,
			String kktkSvcKeiNo, String mskmDtlNo, String vaUm, String sysid, String idoDiv, String seikyKeiNo, String updDtmBf, String rtNewPcrsAplyFlg)
			throws RequestParameterException
	{
		setInMapKkopAdd(param, fixedText, kkopSvcCd, pcrsCd, pplanCd, kktkSvcKeiNo, mskmDtlNo, vaUm, sysid, idoDiv, seikyKeiNo, updDtmBf);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 新料金コース適用フラグ
		if (!JFUBPCommon.isNull(rtNewPcrsAplyFlg))
		{
			inMap.put(EKK2811D010CBSMsg.NEW_PCRS_APLY_FLG, rtNewPcrsAplyFlg);
		}
	}

	/**
	 * 機器オプションサービス契約解約の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param idoDiv 異動区分
	 * @param mskmDtlNo 申込明細番号
	 * @param svcKeiNo サービス契約番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @throws RequestParameterException
	 */
	private void setInMapKkopDsl(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String mskmDtlNo,String idoDiv,
			String svcKeiNo, String updDtmBf) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C140CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 申込明細番号
		inMap.put(EKK2811C140CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 予約適用開始希望年月日
		inMap.put(EKK2811C140CBSMsg.RSV_TSTA_KIBO_YMD, "");
		// サービス終了年月日
		inMap.put(EKK2811C140CBSMsg.SVC_ENDYMD, JFUBPCommon.getOpeDate(null));
		// サービス課金終了年月日
		inMap.put(EKK2811C140CBSMsg.SVC_CHRG_ENDYMD, JFUBPCommon.getOpeDate(null));
		// サービス解約理由コード
		inMap.put(EKK2811C140CBSMsg.SVC_DLRE_CD, JFUStrConst.CD00879_01);
		// サービス解約理由メモ
		inMap.put(EKK2811C140CBSMsg.SVC_DLRE_MEMO, "");
		// 違約金発生コード
		inMap.put(EKK2811C140CBSMsg.PNLTY_HASSEI_CD, "");
		// 異動区分
		inMap.put(EKK2811C140CBSMsg.IDO_DIV, idoDiv);
		// サービス契約番号
		inMap.put(EKK2811C140CBSMsg.SVC_KEI_NO, svcKeiNo);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C140CBSMsg.UPD_DTM_BF, updDtmBf);

	}

	/**
	 * 機器オプションサービス契約解約確定の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param idoDiv 異動区分
	 * @param mskmDtlNo 申込明細番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @throws RequestParameterException
	 */
	private void setInMapKkopDslKakutei(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String mskmDtlNo,String idoDiv,
			String updDtmBf) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C150CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 申込明細番号
		inMap.put(EKK2811C150CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// サービス終了年月日
		inMap.put(EKK2811C150CBSMsg.SVC_ENDYMD, JFUBPCommon.getOpeDate(null));
		// サービス課金終了年月日
		inMap.put(EKK2811C150CBSMsg.SVC_CHRG_ENDYMD, JFUBPCommon.getOpeDate(null));
		// サービス解約理由コード
		inMap.put(EKK2811C150CBSMsg.SVC_DLRE_CD, JFUStrConst.CD00879_01);
		// サービス解約理由メモ
		inMap.put(EKK2811C150CBSMsg.SVC_DLRE_MEMO, "");
		// 解約時課金
		inMap.put(EKK2811C150CBSMsg.DSL_JI_CHRG, "0");
		// 異動区分
		inMap.put(EKK2811C150CBSMsg.IDO_DIV, idoDiv);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C150CBSMsg.UPD_DTM_BF, updDtmBf);

	}

	/**
	 * 機器オプションサービス契約キャンセルの上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param kkopSvcKeiNo 機器オプションサービス契約番号
	 * @param idoDiv 異動区分
	 * @param mskmDtlNo 申込明細番号
	 * @param updDtmBf 更新年月日時分秒(更新前)
	 * @throws RequestParameterException
	 */
	private void setInMapKkopCsl(IRequestParameterReadWrite param, String fixedText, String kkopSvcKeiNo, String mskmDtlNo,String idoDiv, String updDtmBf) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機器オプションサービス契約番号
		inMap.put(EKK2811C110CBSMsg.KKOP_SVC_KEI_NO, kkopSvcKeiNo);
		// 申込明細番号
		inMap.put(EKK2811C110CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// サービスキャンセル理由コード
		inMap.put(EKK2811C110CBSMsg.SVC_CANCEL_RSN_CD, "");
		// 異動区分
		inMap.put(EKK2811C110CBSMsg.IDO_DIV, idoDiv);
		// 更新年月日時分秒(更新前)
		inMap.put(EKK2811C110CBSMsg.UPD_DTM_BF, updDtmBf);

	}

	/**
	 * 機器オプションサービス契約登録（解約・新規）
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param mskmDetailNo 申込明細番号
	 * @param idoDiv 異動区分
	 * @param svcKeiNo サービス契約番号
	 * @param rtNewPcrsAplyFlg 新コース適用フラグ
	 * @param sysId SYSID
	 * @param seikyKeiNoNet 請求契約番号
	 * @param kktkSvcKeiNo 機器提供サービスコード
	 * @param kkopSvcCd 機器オプションサービスコード
	 * @param pcrsChangeTgKkop 機器オプション料金コースコード
	 * @param pplanChangeTgKkop 機器オプション料金プランコード
	 * @param kkopSvcKeiNo 機器オプションサービスコード
	 * @param kktkSvcKeiStat 機器提供サービス契約ステータス
	 * @param lastUpdDtm 更新年月日時分秒
	 * @return 機器オプションサービス契約番号
	 * @throws Throwable
	 */
	private String newKkopSvcKei(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String mskmDetailNo,
			String idoDiv, String svcKeiNo, String rtNewPcrsAplyFlg, String sysId, String seikyKeiNoNet,
			String kktkSvcKeiNo, String kkopSvcCd, String pcrsChangeTgKkop, String pplanChangeTgKkop, String kkopSvcKeiNo,
			String kktkSvcKeiStat, String lastUpdDtm) throws RequestParameterException, Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		if (JFUStrConst.CD00037_010.equals(kktkSvcKeiStat) || JFUStrConst.CD00037_020.equals(kktkSvcKeiStat))
		{
			// ●機器オプションサービス契約キャンセル(ルーター機能)
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_EKK2811C110);
			// 上りマッピング
			setInMapKkopCsl(param, fixedText, kkopSvcKeiNo, mskmDetailNo, idoDiv, lastUpdDtm);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811C110, TEMPLATE_ID_EKK2811C110_DETAIL, IN_COLUMN_LIST_EKK2811C110,
					ERROR_COLUMN_EKK2811C110);
			// 更新年月日時分秒
			lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811C110), EKK2811D010CBSMsg.UPD_DTM);
		}
		else if (JFUStrConst.CD00037_030.equals(kktkSvcKeiStat) || JFUStrConst.CD00037_100.equals(kktkSvcKeiStat))
		{
			// ●機器オプションサービス契約解約(ルーター機能)
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_EKK2811C140);
			// 上りマッピング
			setInMapKkopDsl(param, fixedText, kkopSvcKeiNo, mskmDetailNo, idoDiv, svcKeiNo, lastUpdDtm);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811C140, TEMPLATE_ID_EKK2811C140_DETAIL, IN_COLUMN_LIST_EKK2811C140,
					ERROR_COLUMN_EKK2811C140);
			// 更新年月日時分秒
			lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811C140), EKK2811D010CBSMsg.UPD_DTM);

			// ●機器オプションサービス契約解約確定(ルーター機能)
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_EKK2811C150);
			// 上りマッピング
			setInMapKkopDslKakutei(param, fixedText, kkopSvcKeiNo, mskmDetailNo, idoDiv, lastUpdDtm);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK2811C150, TEMPLATE_ID_EKK2811C150_DETAIL, IN_COLUMN_LIST_EKK2811C150,
					ERROR_COLUMN_EKK2811C150);
			// 更新年月日時分秒
			lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK2811C150), EKK2811D010CBSMsg.UPD_DTM);

		}

		// ●機器オプションサービス契約登録(ルーター機能)
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_KKOPADD);
		// 上りマッピング
		setInMapKkopAdd(param, fixedText, kkopSvcCd, pcrsChangeTgKkop, pplanChangeTgKkop, kktkSvcKeiNo, mskmDetailNo, null,
				sysId, idoDiv, seikyKeiNoNet, lastUpdDtm, rtNewPcrsAplyFlg);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPADD, TEMPLATE_ID_KKOPADD_DETAIL, IN_COLUMN_LIST_KKOPADD, ERROR_COLUMN_KKOPADD);
		// 機器オプションサービス契約番号(ルーター機能)
		kkopSvcKeiNo =
				getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.KKOP_SVC_KEI_NO);
		// 更新年月日時分秒
		lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPADD), EKK2811D010CBSMsg.UPD_DTM);

		if (JFUStrConst.CD00037_020.equals(kktkSvcKeiStat))
		{
			// ●機器オプションサービス契約照査
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
			// 上りマッピング
			setInMapKkopShosa(param, fixedText, kkopSvcKeiNo, idoDiv, lastUpdDtm);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA, TEMPLATE_ID_KKOPSHOSA_DETAIL, IN_COLUMN_LIST_KKOPSHOSA, ERROR_COLUMN_KKOPSHOSA);
			// 更新年月日時分秒
			lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA), EKK2811C030CBSMsg.UPD_DTM);
		}
		else if (JFUStrConst.CD00037_030.equals(kktkSvcKeiStat) || JFUStrConst.CD00037_100.equals(kktkSvcKeiStat))
		{
			// ●機器オプションサービス契約照査締結
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_KKOPSHOSA);
			// 上りマッピング
			setInMapKkopShosaTeiketsu(param, fixedText, kkopSvcKeiNo, idoDiv, lastUpdDtm);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_KKOPSHOSA_TEIKETSU, TEMPLATE_ID_KKOPSHOSA_TEIKETSU_DETAIL,
					IN_COLUMN_LIST_KKOPSHOSA_TEIKETSU, ERROR_COLUMN_KKOPSHOSA_TEIKETSU);
			// 更新年月日時分秒
			lastUpdDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_KKOPSHOSA_TEIKETSU), EKK2811C030CBSMsg.UPD_DTM);
		}

		return kkopSvcKeiNo;
	}

	/**
	 * コンテンツ連絡先メールアドレスを追加
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param inMap メールアドレスのマップ
	 * @param sysId SYSID
	 * @param mailList メールアドレスのリスト
	 * @throws Exception
	 */
	protected void addRrksMlad(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap inMap, String inMapSysid, List mailList) throws RequestParameterException,
			Exception
	{
		// ●連絡先一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_ECK0201B001);
		// 検索エラーなし
		ignoreSearchError(param, fixedText);
		// 上りマッピング
		setInMapRrksSearch(param, fixedText, inMapSysid);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_ECK0201B001, TEMPLATE_ID_ECK0201B001_DETAIL, IN_COLUMN_LIST_ECK0201B001, ERROR_COLUMN_ECK0201B001);
		// 連絡先一覧
		List<HashMap> renrakuList = getTemplateList(inMap, TEMP_TEMPLATE_KEY_ECK0201B001, TEMPLATE_ID_ECK0201B001_DETAIL);
	
		for (HashMap renrakuMap : renrakuList)
		{
			// 連絡先分類コード
			String rrksBunruiCd = (String)renrakuMap.get(ECK0201B001CBSMsg1List.RRKS_BUNRUI_CD);
	
			// コンテンツ系連絡先 
			if (JFUStrConst.CD00871_1.equals(rrksBunruiCd) && !JFUBPCommon.isNull(renrakuMap.get(ECK0201B001CBSMsg1List.MLAD)))
			{
				if(!isMlad(mailList, renrakuMap)){
					HashMap map = new HashMap();
						map.put(ECC0021D010CBSMsg1List.MLAD, (String)renrakuMap.get(ECK0201B001CBSMsg1List.MLAD));
						map.put(ECC0021D010CBSMsg1List.MLAD_DSP_NM, null);
						map.put(ECC0021D010CBSMsg1List.MLAD_SET_FIELD_CD, JFUStrConst.CD00788_01);
						mailList.add(map);
				}
			}
		}
	}

	/**
	 * 上りマッピング項目設定(連絡先一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sysId SYSID
	 * @throws RequestParameterException
	 */
	private void setInMapRrksSearch(IRequestParameterReadWrite param, String fixedText, String sysId) throws RequestParameterException
	{
		// 機能コード設定(1)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
	
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
	
		// ＫＥＹ＿SYSID
		inMap.put(ECK0201B001CBSMsg.KEY_SYSID, sysId);
//		// ＫＥＹ＿連絡先コード
//		inMap.put(ECK0201B001CBSMsg.KEY_RRKS_CD, JFUStrConst.CD00268_01);
		// ＫＥＹ＿連絡方法コード
		inMap.put(ECK0201B001CBSMsg.KEY_RRK_WAY_CD, JFUStrConst.CD00790_001);
	}

	/**
	 * 指定のリストにメールアドレスが存在するか
	 * 
	 * <br>
	 * @param mailList メールアドレスのリスト
	 * @param map メールアドレスのマップ
	 */
	protected boolean isMlad(List mailList, HashMap map)
	{
		for (Object mailMap : mailList)
		{
			if (map.get(ECK0201B001CBSMsg1List.MLAD).equals(((HashMap)mailMap).get(ECK0201B001CBSMsg1List.MLAD)))
			{
				return true;
			}
		}
		return false;
	}
}
