/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUEoMusenRtMskmCC
*   ソースファイル名：JFUEoMusenRtMskmCC.java
*   作成者          ：富士通
*   日付            ：2021年10月06日
*＜機能概要＞
*   eo光無線ルーター申込登録コンポーネント部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*  v55.00.00    2021/10/06   FJ) 西川  新規作成【ANK-4146-00-00】【eo定期】多機能ルーター枯渇対応 STEP2
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.printDebugLog;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JFUCommonUtil;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EDK0011D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EDK0451A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EDK0451A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021C060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0241B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0241B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0321B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0321B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341C231CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0771A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0771A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;

/**
 * eo光無線ルーター申込登録コンポーネント部品です。
 * <br>
 * @author 富士通
 */
public class JFUEoMusenRtMskmCC extends JFUBaseNetChgCommonCC
{

	/** 登録機器リスト */
	private static final String KKTK_SVKEI_ADD_LIST = "kktk_svkei_add_list";
	/** IN項目:宅内機器型式コード */
	private static final String IN_PARAM_TAKNKIKI_MODEL_CD = "kk0341_taknkiki_model_cd";
	/** IN項目:サービス契約番号 */
	private static final String IN_PARAM_SVC_KEI_NO = "kk0341_svc_kei_no";
	/** IN項目:請求契約番号 */
	private static final String IN_PARAM_SEIKY_KEI_NO = "kk0341_seiky_kei_no";
	/** IN項目:SYSID */
	private static final String IN_PARAM_SYSID = "kk0341_sysid";
	/** IN項目:進捗特記事項1 */
	private static final String IN_PARAM_PRG_TKJK_1 = "prg_tkjk_1";
	/** IN項目:進捗特記事項2 */
	private static final String IN_PARAM_PRG_TKJK_2 = "prg_tkjk_2";

	/** IN項目:提供方式コード */
	private static final String IN_PARAM_TK_HOSHIKI_CD = "tk_hoshiki_cd";
	/** IN項目:提供方式パターンコード */
	private static final String IN_PARAM_TK_HOSHIKI_PATTERN_CD = "tk_hoshiki_pattern_cd";
	/** IN項目:料金グループコード */
	private static final String IN_PRC_GRP_CD = "prc_grp_cd";

	/** 配送受付結果マップキー */
	private static final String HAISO_OUT_MAP_KEY = "eDK0011D020SCHash";

	/* ■□ 申込内容承認登録SC ■□ */
	/** テンプレートID(申込内容承認登録) */
	private static final String TEMPLATE_ID_1 = "EKK0011D020";
	/** テンプレートID(申込内容承認登録明細) */
	private static final String TEMPLATE_ID_1_DETAIL = EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST;
	/** IN項目リスト(申込内容承認登録) */
	private static final List<String> IN_COLUMN_LIST_1 =
			Arrays.asList(EKK0011D020CBSMsg.SYSID, EKK0011D020CBSMsg.MSKM_SBT_CD, EKK0011D020CBSMsg.MSKMSHO_ARIV_YMD, EKK0011D020CBSMsg.MSKM_UK_DTM, EKK0011D020CBSMsg.MSKM_UK_TNT_USER_ID,
					EKK0011D020CBSMsg.MSKM_YMD, EKK0011D020CBSMsg.TTL_BUSINESS_CENTER_UK_NO, EKK0011D020CBSMsg.TTL_BUSINESS_MSKM_OPT_CD, EKK0011D020CBSMsg.MSKM_RRKS_TELNO,
					EKK0011D020CBSMsg.MSKM_JSSIS_SBT_CD, EKK0011D020CBSMsg.CUST_YOBO_JIKO, EKK0011D020CBSMsg.TEL_RRK_KIBOD_SBT_CD, EKK0011D020CBSMsg.TEL_RRK_KIBO_TIME_CD,
					EKK0011D020CBSMsg.TAKCHO_KIBOD_SBT_CD, EKK0011D020CBSMsg.TAKCHO_KIBO_TIME_CD, EKK0011D020CBSMsg.KARI_MSKM_FLG, EKK0011D020CBSMsg.REFERER,
					EKK0011D020CBSMsg.KEPCO_CUSTINFO_JUJU_DOI_UM, EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO_YH, EKK0011D020CBSMsg.SHOSA_BF_RRK_JIKO, EKK0011D020CBSMsg.USE_SVC_KEIZK_SBT_CD,
					EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, EKK0011D020CBSMsg.UK_TNTSHA_SKBT_CD, EKK0011D020CBSMsg.MSKM_ROUTE_SKBT_CD, EKK0011D020CBSMsg.KOJI_REQ_INFO_RRK_JIKO);
	/** IN項目リスト(申込内容承認登録・明細部) */
	private static final List<String> IN_COLUMN_LIST_1_DETAIL =
			Arrays.asList(EKK0011D020CBSMsg1List.MSKMSHO_NO, EKK0011D020CBSMsg1List.WEB_UK_NO, EKK0011D020CBSMsg1List.MSKM_FORM_CD, EKK0011D020CBSMsg1List.MSKM_DTL_SBT_CD,
					EKK0011D020CBSMsg1List.RRKS_KTAI_TELNO, EKK0011D020CBSMsg1List.RRKS_OFFC_NM, EKK0011D020CBSMsg1List.DT_RRKS_TELNO, EKK0011D020CBSMsg1List.NEW_MSKM_SBT_CD,
					EKK0011D020CBSMsg1List.MSKM_OPTNTY_CD, EKK0011D020CBSMsg1List.TAKCHO_KIBO_APO_KIGEN_YMD, EKK0011D020CBSMsg1List.KOJI_APO_RRKS_SHITEI_CD,
					EKK0011D020CBSMsg1List.KOJI_APO_RRKS_TELNO, EKK0011D020CBSMsg1List.RRK_JIKO_ADD_DTM, EKK0011D020CBSMsg1List.MSKM_RRKS_MLAD, EKK0011D020CBSMsg1List.KOJI_PRG_TCHI_MLAD,
					EKK0011D020CBSMsg1List.RRK_JIKO, EKK0011D020CBSMsg1List.KJSC_TCH_KTAI_MLAD, EKK0011D020CBSMsg1List.ML_SEND_JGI_FLG, EKK0011D020CBSMsg1List.ML_SEND_JGI_RSN_MEMO,
					EKK0011D020CBSMsg1List.BMP_MSKM_RRKS_TLN, EKK0011D020CBSMsg1List.OP_SVC_HKTGI_UM, EKK0011D020CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM, EKK0011D020CBSMsg1List.RRK_WAY_HOKI,
					EKK0011D020CBSMsg1List.NEWCONST_BUKKEN_CD, EKK0011D020CBSMsg1List.HUKKAT_ANKEN_FLG, EKK0011D020CBSMsg1List.SAME_EQUIP_RE_MSKM_CD, EKK0011D020CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD,
					EKK0011D020CBSMsg1List.MSKMSHO_SBT_CD, EKK0011D020CBSMsg1List.MAP_TEMP_UM, EKK0011D020CBSMsg1List.KCN_STB_MSKM_CNT, EKK0011D020CBSMsg1List.KCN_STB_KIND_CD,
					EKK0011D020CBSMsg1List.CATID, EKK0011D020CBSMsg1List.KEI_HUKA_CD, EKK0011D020CBSMsg1List.MANSION_ID, EKK0011D020CBSMsg1List.MKM_UK_SBT_CD,
					EKK0011D020CBSMsg1List.MSKMSHO_TRAT_IF_TNTSHA_NM, EKK0011D020CBSMsg1List.MANSSBSYS_RNKI_YO_KIJIRAN, EKK0011D020CBSMsg1List.MSKMSHO_TRAT_IF_TELNO);
	/** 関連チェックエラー項目(申込内容承認登録) */
	private static final String ERROR_COLUMN_1 = null;
	/** SC実行結果取得キー(申込内容承認登録) */
	private static final String TEMP_TEMPLATE_KEY_1 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_1 + 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;

	/* ■□ サービス契約回線内訳一覧照会（サービス契約番号）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_33 = "EKK1091D010";
	/** テンプレートID(進捗登録明細) */
	private static final String TEMPLATE_ID_33_DETAIL = EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST;
	/** IN項目リスト(進捗登録) */
	private static final List<String> IN_COLUMN_LIST_33 =
			Arrays.asList(EKK1091D010CBSMsg.MSKM_DTL_NO, EKK1091D010CBSMsg.SEIKY_KEI_NO, EKK1091D010CBSMsg.SEIKY_WAY_NO_KOZA, EKK1091D010CBSMsg.SEIKY_WAY_NO_CRECARD, EKK1091D010CBSMsg.SVC_KEI_NO,
					EKK1091D010CBSMsg.SVC_KEI_UCWK_NO, EKK1091D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, EKK1091D010CBSMsg.KKTK_SVC_KEI_NO, EKK1091D010CBSMsg.OP_SVC_KEI_NO, EKK1091D010CBSMsg.SEIOPSVC_KEI_NO,
					EKK1091D010CBSMsg.SBOP_SVC_KEI_NO, EKK1091D010CBSMsg.WRIB_SVC_KEI_NO, EKK1091D010CBSMsg.IDO_DIV, EKK1091D010CBSMsg.PRG_STAT, EKK1091D010CBSMsg.PRG_MEMO,
					EKK1091D010CBSMsg.PRG_TKJK_1, EKK1091D010CBSMsg.PRG_TKJK_2, EKK1091D010CBSMsg.IDO_DTM);
	/** 関連チェックエラー項目(進捗登録) */
	private static final String ERROR_COLUMN_33 = null;

	/* ■□ 申込明細照査・後続業務依頼SC ■□ */
	/** テンプレートID(申込明細照査・後続業務依頼) */
	private static final String TEMPLATE_ID_34 = "EKK0021C060";
	/** テンプレートID(申込明細照査・後続業務依頼明細) */
	private static final String TEMPLATE_ID_34_DETAIL = null;
	/** IN項目リスト(申込明細照査・後続業務依頼) */
	private static final List<String> IN_COLUMN_LIST_34 =
			Arrays.asList(EKK0021C060CBSMsg.MSKM_DTL_NO, EKK0021C060CBSMsg.RRK_JIKO_ADD_DTM, EKK0021C060CBSMsg.MSKM_DTL_SHOSA_DTM, EKK0021C060CBSMsg.KZKWRK_REQYMD, EKK0021C060CBSMsg.RRK_JIKO,
					EKK0021C060CBSMsg.UPD_DTM_BF, EKK0021C060CBSMsg.IDO_DIV, EKK0021C060CBSMsg.TELNO, EKK0021C060CBSMsg.DAIHYO_TELNO, EKK0021C060CBSMsg.TELNO_USE_PLACE_NO,
					EKK0021C060CBSMsg.SIP_USER_ID_DEL_ZUMI_FLG, EKK0021C060CBSMsg.TEL_BAS_HOST_ID, EKK0021C060CBSMsg.N_050_OP_TELNO, EKK0021C060CBSMsg.KIKI_NINSHO_ID,
					EKK0021C060CBSMsg.KIKI_NINSHO_ID_PWD);
	/** 関連チェックエラー項目(申込明細照査・後続業務依頼) */
	private static final String ERROR_COLUMN_34 = null;

	/* ■□ 回線対象サービス契約一覧照会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_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_EKK0321B002 = "EKK0321B002";
	/** テンプレートID(課金先一覧照会（請求契約番号/サービス契約番号明細) */
	private static final String TEMPLATE_ID_EKK0321B002_DETAIL = EKK0321B002CBSMsg.EKK0321B002CBSMSG1LIST;
	/** IN項目リスト(課金先一覧照会（請求契約番号/サービス契約番号) */
	private static final List<String> IN_COLUMN_LIST_EKK0321B002 = Arrays.asList(EKK0321B002CBSMsg.KEY_SVC_KEI_NO, EKK0321B002CBSMsg.KEY_SEIKY_KEI_NO);
	/** 関連チェックエラー項目(課金先一覧照会（請求契約番号/サービス契約番号) */
	private static final String ERROR_COLUMN_EKK0321B002 = EKK0321B002CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(課金先一覧照会（請求契約番号/サービス契約番号) */
	private static final String TEMP_TEMPLATE_KEY_EKK0321B002 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0321B002 + TEMP_TEMPLATE_PRIFIX_SEP;

	/** 無効なサービス契約ステータス */
	private static final List<String> SVC_KEI_STAT_MUKO = Arrays.asList(JFUStrConst.CD00037_910, JFUStrConst.CD00037_920);

	/** eo光ネットマンションタイプ（イーサ／VDSL） */
	private static final List<String> MT_ENET_VDSL =
			Arrays
					.asList(JFUStrConst.CD00590_001, JFUStrConst.CD00590_003, JFUStrConst.CD00590_004, JFUStrConst.CD00590_005, JFUStrConst.CD00590_006, JFUStrConst.CD00590_007,
							JFUStrConst.CD00590_010);

	/** サービス契約 開通前 */
	private static final List<String> SVC_KEI_STAT_OPBMPB = Arrays.asList(JFUStrConst.CD00037_020, JFUStrConst.CD00037_030);

	/** チェック用パラメータ */
	private static final String WK_REQSHITEI_YMD = "WK_JFUGetHaisoReqShiteiYmdCC";

	/** 配送依頼指定年月日取得部品 OUT項目:配送依頼指定年月日 */
	private static final String HAISOCC_HAISO_REQ_SHITEI_YMD = EKK0341D010CBSMsg.HAISO_REQ_SHITEI_YMD;
	/** 配送依頼指定年月日取得部品 OUT項目:配送予定年月日 */
	private static final String HAISOCC_HAISO_RSV_YMD = EDK0011D010CBSMsg.HAISO_RSV_YMD;

	/**
	 * eo光無線ルーター申込登録実行処理を行います。
	 * <br>
	 *
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Throwable
	 */
	public IRequestParameterReadWrite mskmEoMusenRt(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// 機能コード取得
		String funcCode = getFuncCode(param, fixedText);

		// 実行判定
		// 機能コードが"1"(チェック＆登録)以外の場合
		if (!JPCModelConstant.FUNC_CD_1.equals(funcCode))
		{
			return param;
		}

		HashMap<String, Object> inMap = (HashMap<String, Object>)(param.getData(fixedText));
		ArrayList<Object> workLst = (ArrayList<Object>)inMap.get(KKTK_SVKEI_ADD_LIST);

		HashMap inParamMap = (HashMap)workLst.get(JFUStrConst.I_ZERO);

		// IN項目:サービス契約番号
		String inParamSvcKeiNo = (String)inParamMap.get(IN_PARAM_SVC_KEI_NO);
		// IN項目:SYSID
		String inParamSysId = (String)inParamMap.get(IN_PARAM_SYSID);
		// IN項目:異動区分
		String inParamIdoDiv = JFUStrConst.CD00576_00026;
		// IN項目:進捗特記事項1
		String prgTkjk1 = (String)inMap.get(IN_PARAM_PRG_TKJK_1);
		// IN項目:進捗特記事項1
		String prgTkjk2 = (String)inMap.get(IN_PARAM_PRG_TKJK_2);
		// IN項目:サービス契約回線内訳番号
		String inParamSvkeiKaisenUwNo = (String)inMap.get("svc_kei_kaisen_ucwk_no");
		// IN項目:機器送料有無
		String inParamKikiSoryoUm = (String)inMap.get("kiki_soryo_um");
		// IN項目:提供方式コード
		String tk_hoshiki_cd = (String)inMap.get(IN_PARAM_TK_HOSHIKI_CD);
		// IN項目:提供方式パターンコード
		String tk_hoshiki_pattern_cd = (String)inMap.get(IN_PARAM_TK_HOSHIKI_PATTERN_CD);
		// IN項目:料金グループコード
		String prc_grp_cd = (String)inMap.get(IN_PRC_GRP_CD);

		// 当機能内の連携ワーク
		HashMap<String, String> tempData = new HashMap<String, String>();
		tempData.put(EKK0341D010CBSMsg.SYSID, inParamSysId);
		tempData.put(EKK0341D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, inParamSvkeiKaisenUwNo);

		// お客様直送
		tempData.put(EKK0341D010CBSMsg.HAISO_WAY_CD, JFUStrConst.CD01148_1);
		tempData.put(EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD, JFUStrConst.CD00866_004);

		// 配送予定年月日
		tempData.put(HAISOCC_HAISO_RSV_YMD, JFUStrConst.EMPTY);
		// 配送依頼指定年月日
		tempData.put(HAISOCC_HAISO_REQ_SHITEI_YMD, JFUStrConst.EMPTY);

		// ●申込内容承認登録
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_1);
		// 上りマッピング
		setInMapMskmRegist(param, fixedText, inParamSysId);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_1, TEMPLATE_ID_1_DETAIL, IN_COLUMN_LIST_1, ERROR_COLUMN_1);
		// 申込番号
		String mskmNo = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_1), EKK0011D020CBSMsg.MSKM_NO);
		// 申込明細番号
		String mskmDetailNo = getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_1), TEMPLATE_ID_1_DETAIL, EKK0011D020CBSMsg1List.MSKM_DTL_NO, 0);
		// 更新年月日時分秒
		String updDtmMskm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_1), EKK0011D020CBSMsg.UPD_DTM);

		// ●サービス契約回線内訳一覧照会（サービス契約番号）
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_16);
		// 上りマッピング
		setInMapKaisenUwSvcKeiSearch(param, fixedText, inParamSvcKeiNo);
		// サービス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);

		// ●サービス契約回線内訳一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_17);
		// 上りマッピング
		setInMapKaisenUwUniqueSearch(param, fixedText, (String)kaisenUwMap.get(EKK0251B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO), (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, inParamSysId);
		// サービス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_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_EKK0241B002);
		// 上りマッピング
		setInMapEKK0241B002(param, fixedText, inParamSvkeiKaisenUwNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0241B002, TEMPLATE_ID_EKK0241B002_DETAIL, IN_COLUMN_LIST_EKK0241B002, ERROR_COLUMN_EKK0241B002);
		List<HashMap> svcKeiTelList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0241B002), TEMPLATE_ID_EKK0241B002_DETAIL);

		// 電話のサービス契約番号
		String svcKeiNoTel = JFUStrConst.EMPTY;
		// 電話のサービス契約ステータス
		String svcKeiStatTel = JFUStrConst.EMPTY;
		// ネットのサービス契約ステータス
		String svcKeiStatNet = JFUStrConst.EMPTY;

		for (HashMap svcKeiTelMap : svcKeiTelList)
		{
			String svcCd = (String)svcKeiTelMap.get(EKK0241B002CBSMsg1List.SVC_CD);
			String svcKeiStat = (String)svcKeiTelMap.get(EKK0241B002CBSMsg1List.SVC_KEI_STAT);

			// サービスコード＝"02"（電話サービス）かつ 無効なサービス契約ステータス以外（サービス契約ステータス＝"910"（解約）、"920"（キャンセル）以外）
			if (JFUStrConst.CD00130_02.equals(svcCd) && !SVC_KEI_STAT_MUKO.contains(svcKeiStat))
			{
				svcKeiNoTel = (String)svcKeiTelMap.get(EKK0241B002CBSMsg1List.SVC_KEI_NO);
				svcKeiStatTel = svcKeiStat;
			}
			// サービスコード＝"01"（ネットサービス）かつ 無効なサービス契約ステータス以外（サービス契約ステータス＝"910"（解約）、"920"（キャンセル）以外）
			if (JFUStrConst.CD00130_01.equals(svcCd) && !SVC_KEI_STAT_MUKO.contains(svcKeiStat))
			{
				svcKeiStatNet = svcKeiStat;
			}
		}

		// 配送予定年月日、配送依頼指定年月日取得
		if (executeHaisoYotei(tk_hoshiki_cd, tk_hoshiki_pattern_cd, svcKeiStatNet, svcKeiNoTel, prc_grp_cd))
		{
			HashMap<String, Object> resultHaiso = getHaisoReqShiteiYmd(handle, param, inParamSvcKeiNo, svcKeiStatNet, svcKeiNoTel, svcKeiStatTel);
			String haiso_rsv_ymd = (String)resultHaiso.get(HAISOCC_HAISO_RSV_YMD);
			String haiso_req_shitei_ymd = (String)resultHaiso.get(HAISOCC_HAISO_REQ_SHITEI_YMD);
			tempData.put(HAISOCC_HAISO_RSV_YMD, haiso_rsv_ymd);
			tempData.put(HAISOCC_HAISO_REQ_SHITEI_YMD, haiso_req_shitei_ymd);
			printDebugLog("■■■JFUEoMusenRtMskmCC " + "配送予定年月日[" + haiso_rsv_ymd + "]、" + "配送依頼指定年月日[" + haiso_req_shitei_ymd + "] ■■■");
		}

		// ●電話がある場合は電話の請求契約番号を取得する。
		String seikyKeiNoTel = JFUStrConst.EMPTY;
		if (!JFUBPCommon.isNull(svcKeiNoTel))
		{
			// ●課金先一覧照会（請求契約番号/サービス契約番号）電話契約用
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_EKK0321B002);
			// 上りマッピング
			setInMapKakinsSearch(param, fixedText, svcKeiNoTel);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0321B002, TEMPLATE_ID_EKK0321B002_DETAIL, IN_COLUMN_LIST_EKK0321B002, ERROR_COLUMN_EKK0321B002);
			// 請求契約番号
			seikyKeiNoTel = getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0321B002), TEMPLATE_ID_EKK0321B002_DETAIL, EKK0321B002CBSMsg1List.SEIKY_KEI_NO, 0);

			// ●サービス契約一意照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_2);
			// 上りマッピング
			setInMapSvcKeiUniqueSearch(param, fixedText, svcKeiNoTel);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_2, TEMPLATE_ID_2_DETAIL, IN_COLUMN_LIST_2, ERROR_COLUMN_2);
		}

		// 配送受付用機器提供サービス契約番号リスト
		List<HashMap<String, Object>> kktkSvcKeiNoList = new ArrayList<HashMap<String, Object>>();

		String inParamTknkikiModelCd = JFUStrConst.EMPTY;
		for (int i = 0; i < workLst.size(); i++)
		{
			HashMap<String, Object> workMap = (HashMap<String, Object>)workLst.get(i);

			// IN項目:宅内機器型式コード
			inParamTknkikiModelCd = (String)workMap.get(IN_PARAM_TAKNKIKI_MODEL_CD);
			// IN項目:請求契約番号
			String inParamSeikyKeiNo = (String)workMap.get(IN_PARAM_SEIKY_KEI_NO);
			// 宅内機器種別コード
			String tknkikiSbtCd = JFUStrConst.EMPTY;

			// ★ネットの請求契約番号が存在しない場合は、電話の請求契約番号を使用する。
			if (JFUBPCommon.isNull(inParamSeikyKeiNo))
			{
				inParamSeikyKeiNo = seikyKeiNoTel;
			}

			String sendKktkSvcKeiNo = null;
			String sendKikiChgNo = null;
			String sendKikiGeneAddDtm = null;

			// 配送受付用機器提供サービス契約番号マップ
			HashMap<String, Object> kktkSvcKeiNoMap = new HashMap<String, Object>();

			// ●機器提供サービス一意照会
			// ユーザデータ初期化
			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);
			// 宅内機器種別コード（eo光無線ルーター(新無線10ギガ)の場合、"F0"）
			tknkikiSbtCd = getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_19), TEMPLATE_ID_19_DETAIL, EKK0771A010CBSMsg1List.TAKNKIKI_SBT_CD, 0);

			// ●サービス契約一意照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_2);
			// 上りマッピング
			setInMapSvcKeiUniqueSearch(param, fixedText, inParamSvcKeiNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_2, TEMPLATE_ID_2_DETAIL, IN_COLUMN_LIST_2, ERROR_COLUMN_2);
			// 最終更新年月日時分秒
			String lastUpdDtm = getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_2), TEMPLATE_ID_2_DETAIL, EKK0081A010CBSMsg1List.LAST_UPD_DTM, JFUStrConst.I_ZERO);

			
			// ●機器提供サービス契約登録
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_11);
			// 上りマッピング
			setInMapKktkRegist(param, fixedText, inParamTknkikiModelCd, inParamSvcKeiNo, inParamSvkeiKaisenUwNo, inParamSysId, inParamSeikyKeiNo, mskmDetailNo,
					kaisenUwUniqueMap, lastUpdDtm, inParamIdoDiv, tknkikiSbtCd, shelfCd, custMap, inParamKikiSoryoUm, tempData);
			// サービス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);
			// 機器提供サービス契約番号
			sendKktkSvcKeiNo = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.KKTK_SVC_KEI_NO);
			// 機器変更番号
			sendKikiChgNo = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_11), EKK0341D010CBSMsg.KIKI_CHG_NO);

			// ●機器提供サービス契約照査
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_12);
			// 上りマッピング
			setInMapKktkShosa(param, fixedText, sendKktkSvcKeiNo, 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);
			// 世代登録年月日時分秒
			sendKikiGeneAddDtm = getTemplateValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_12), EKK0341C030CBSMsg.GENE_ADD_DTM);
			// ●割引サービス自動適用CCマッピング
			setInMapWrSvAtAplyNoPlanChg(param, fixedText, mskmNo, sendKktkSvcKeiNo);

			// 配送受付用機器提供サービス契約番号マップに設定
			kktkSvcKeiNoMap.put(JKKButuryuCtrlCC.KEY_KKTK_SVC_KEI_NO, sendKktkSvcKeiNo);
			kktkSvcKeiNoMap.put(EKK0341D010CBSMsg.GENE_ADD_DTM, sendKikiGeneAddDtm);

			// 配送受付用機器提供サービス契約番号リストに設定
			kktkSvcKeiNoList.add(kktkSvcKeiNoMap);

			// ●フロント配送受付在庫更新登録処理
			chgFrntHisukZkup(handle, param, fixedText, sendKktkSvcKeiNo, sendKikiChgNo);
		}

		//お客様直送
		HashMap<String, Object> haisoOutMap = new HashMap<String, Object>();
		// 配送予定年月日
		if (!JFUBPCommon.isNull(tempData.get(HAISOCC_HAISO_RSV_YMD)))
		{
			String haiso_rsv_ymd = tempData.get(HAISOCC_HAISO_RSV_YMD);
			JKKBpCommon.createHaiso(param, handle, mskmNo, mskmDetailNo, BLANK, kktkSvcKeiNoList, inParamIdoDiv, null, haisoOutMap, fixedText, JFUStrConst.DK0091_SOKO_CD_000001, haiso_rsv_ymd);
			inMap.put(HAISO_OUT_MAP_KEY, haisoOutMap);
		}
		else
		{
			JKKBpCommon.createHaiso(param, handle, mskmNo, mskmDetailNo, BLANK, kktkSvcKeiNoList, inParamIdoDiv, null, haisoOutMap, fixedText, JFUStrConst.DK0091_SOKO_CD_000001);
			inMap.put(HAISO_OUT_MAP_KEY, haisoOutMap);
		}

		// ●進捗登録
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_33);
		// 上りマッピング
		setInMapPrgRegist(param, fixedText, inParamSvcKeiNo, mskmDetailNo, prgTkjk1, prgTkjk2, inParamIdoDiv);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_33, TEMPLATE_ID_33_DETAIL, IN_COLUMN_LIST_33, ERROR_COLUMN_33);

		// ●申込明細照査・後続業務依頼
		// ユーザデータ初期化
		initData(param, fixedText, IN_COLUMN_LIST_34);
		// 上りマッピング
		setInMapMskmDtlShosaKzkWrk(param, fixedText, mskmDetailNo, updDtmMskm, inParamIdoDiv);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMPLATE_ID_34, TEMPLATE_ID_34_DETAIL, IN_COLUMN_LIST_34, ERROR_COLUMN_34);

		return param;
	}

	/**
	 * チェック処理を行います。
	 *
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@Override
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}

	/**
	 * 上りマッピング項目設定(申込内容承認登録)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param sysId SYSID
	 * @param mskmshoNo 申込書番号
	 * @param mskmshoDtlNo 申込書明細番号
	 * @throws RequestParameterException
	 */
	private void setInMapMskmRegist(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(EKK0011D020CBSMsg.SYSID, sysId);
		// 申込種別コード
		inMap.put(EKK0011D020CBSMsg.MSKM_SBT_CD, JFUStrConst.KK0971_MSKM_SBT_CD_00022);
		// 申込受付年月日時分秒
		inMap.put(EKK0011D020CBSMsg.MSKM_UK_DTM, JCCBPCommon.getOpeDateTimeStamp(null));
		// 申込年月日
		inMap.put(EKK0011D020CBSMsg.MSKM_YMD, JCCBPCommon.getOpeDate(null));
		// コンシューマ営業用申込状態識別コード
		inMap.put(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, JFUStrConst.CD00760_04);

		ArrayList list = new ArrayList();
		HashMap childMap = new HashMap();

		for (String key : IN_COLUMN_LIST_1_DETAIL)
		{
			childMap.put(key, null);
		}

		// 申込形態コード
		childMap.put(EKK0011D020CBSMsg1List.MSKM_FORM_CD, JFUStrConst.CD00591_01);
		list.add(childMap);

		inMap.put(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, list);
	}

	/**
	 * 上りマッピング項目設定(サービス契約回線内訳一覧照会（サービス契約番号））を行います。
	 *
	 * <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(EKK0251B001CBSMsg.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, JCCBPCommon.getOpeDate(null));
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス一意照会)を行います。
	 *
	 * <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.CD00132_C014);

	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約登録)を行います。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param taknkikiModelCd 宅内機器型式コード
	 * @param svcKeiNo サービス契約番号
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param sysId SYSID
	 * @param seikyKeiNo 請求契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param kaisenUwMap サービス契約回線内訳情報マップ
	 * @param updDtmSvcKei 更新年月日時分秒(サービス契約)
	 * @param idoDiv 異動区分
	 * @param taknkikiSbtCd 宅内機器種別コード
	 * @param kikiHkatShiteiSkdnCd 機器引当指定倉庫棚コード
	 * @param kktkSvcCd 機器提供サービスコード
	 * @param custMap お客様情報マップ
	 * @param kikiSoryoUm 機器送料有無
	 * @param tempData 当機能内の連携ワーク
	 * @throws RequestParameterException
	 */
	private void setInMapKktkRegist(IRequestParameterReadWrite param, String fixedText, String taknkikiModelCd, String svcKeiNo, String svcKeiKaisenUcwkNo,
			String sysId, String seikyKeiNo, String mskmDtlNo, HashMap kaisenUwMap, String updDtmSvcKei, String idoDiv, String taknkikiSbtCd, String kikiHkatShiteiSkdnCd,
			HashMap custMap, String kikiSoryoUm, HashMap<String, String> tempData) throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// 機器提供サービスコード
		inMap.put(EKK0341D010CBSMsg.KKTK_SVC_CD, JFUStrConst.CD00132_C014);
		// レンタル
		inMap.put(EKK0341D010CBSMsg.KKTK_SBT_CD, JFUStrConst.CD00212_02);
		// 料金コースコード
		inMap.put(EKK0341D010CBSMsg.PCRS_CD, JFUStrConst.CD00134_CA6);
		// 料金プランコード
		inMap.put(EKK0341D010CBSMsg.PPLAN_CD, JFUStrConst.CD00565_PCA601);
		// 宅内機器型式コード
		inMap.put(EKK0341D010CBSMsg.TAKNKIKI_MODEL_CD, taknkikiModelCd);
		// 親契約識別コード　01:サービス契約
		inMap.put(EKK0341D010CBSMsg.OYA_KEI_SKBT_CD, JFUStrConst.CD00804_01);
		// サービス契約番号
		inMap.put(EKK0341D010CBSMsg.SVC_KEI_NO, svcKeiNo);
		inMap.put(EKK0341D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, "");
		// 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, SOKO_CD_MINATO);
		// 機器引当指定倉庫棚コード
		inMap.put(EKK0341D010CBSMsg.KIKI_HKAT_SHITEI_SKDN_CD, kikiHkatShiteiSkdnCd);

		// 機器送料有無
		inMap.put(EKK0341D010CBSMsg.KIKI_SORYO_UM, kikiSoryoUm);

		//■お客様直送
		// 機器送付先名
		inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_NM, custMap.get(ECK0011A010CBSMsg1List.CUST_NM));
		// 機器送付先カナ名
		inMap.put(EKK0341D010CBSMsg.KIKI_SOHUS_KANA, custMap.get(ECK0011A010CBSMsg1List.CUST_KANA));
		// 機器送付先住所コード
		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));
		// 機器送付先個別指定フラグ
		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_KSH_AD_SAI_FLG, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLC_KSH_AD_SAI_FLG));
		// 機器設置先電話番号
		inMap.put(EKK0341D010CBSMsg.KIKI_STC_SK_TELNO, kaisenUwMap.get(EKK0251A010CBSMsg1List.KAISEN_PLACE_TELNO));
		// 機器付加情報コード
		inMap.put(EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD, tempData.get(EKK0341D010CBSMsg.KIKI_HUKA_INFO_CD));
		// マンション物件番号
		inMap.put(EKK0341D010CBSMsg.MANSION_BUKKEN_NO, kaisenUwMap.get(EKK0251A010CBSMsg1List.MANSION_BUKKEN_NO));
		// 配送依頼指定年月日
		String haiso_req_shitei_ymd = tempData.get(HAISOCC_HAISO_REQ_SHITEI_YMD);
		inMap.put(EKK0341D010CBSMsg.HAISO_REQ_SHITEI_YMD, haiso_req_shitei_ymd);
		// 機器送付先住所手動入力フラグ
		inMap.put(EKK0341D010CBSMsg.KIKI_SHS_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);
	}

	/**
	 * 上りマッピング項目設定(機器提供サービス契約照査)を行います。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param pcrsCd 料金コースコード
	 * @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

	}

	/**
	 * 上りマッピング項目設定(引当棚一意照会)を行います。
	 *
	 * <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, JCCBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(進捗登録)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param prgTkjk1 進捗特記事項1
	 * @param prgTkjk2 進捗特記事項2
	 * @param idoDiv 異動区分
	 * @throws RequestParameterException
	 */
	private void setInMapPrgRegist(IRequestParameterReadWrite param, String fixedText, String svcKeiNo, String mskmDtlNo, String prgTkjk1, String prgTkjk2, String idoDiv)
			throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// サービス契約番号
		inMap.put(EKK1091D010CBSMsg.SVC_KEI_NO, svcKeiNo);
		// 進捗ステータス
		inMap.put(EKK1091D010CBSMsg.PRG_STAT, JFUStrConst.CD00647_3100);
		// 申込明細番号
		inMap.put(EKK1091D010CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 異動区分
		inMap.put(EKK1091D010CBSMsg.IDO_DIV, idoDiv);
		// 異動年月日時分秒
		inMap.put(EKK1091D010CBSMsg.IDO_DTM, JCCBPCommon.getSysDateTimeStamp());
		// 進捗特記事項1
		inMap.put(EKK1091D010CBSMsg.PRG_TKJK_1, prgTkjk1);
		// 進捗特記事項2
		inMap.put(EKK1091D010CBSMsg.PRG_TKJK_2, prgTkjk2);

		ArrayList list = new ArrayList();
		HashMap childMap = new HashMap();

		// 異動理由コード
		childMap.put(EKK1091D010CBSMsg1List.IDO_RSN_CD, JFUStrConst.CD00846_F3);
		// 異動理由メモ
		childMap.put(EKK1091D010CBSMsg1List.IDO_RSN_MEMO, null);
		list.add(childMap);

		inMap.put(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, list);
	}

	/**
	 * 上りマッピング項目設定(申込明細照査・後続業務依頼)
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param mskmDtlNo 申込明細番号
	 * @param updDtm 更新年月日時分秒
	 * @param idoDiv 異動区分
	 * @throws RequestParameterException
	 */
	private void setInMapMskmDtlShosaKzkWrk(IRequestParameterReadWrite param, String fixedText, String mskmDtlNo, String updDtm, String idoDiv) throws RequestParameterException
	{
		// 機能コード設定(1:チェック&登録)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 申込明細番号
		inMap.put(EKK0021C060CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 後続業務依頼年月日
		inMap.put(EKK0021C060CBSMsg.KZKWRK_REQYMD, JCCBPCommon.getOpeDate(null));
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0021C060CBSMsg.UPD_DTM_BF, updDtm);
		// 異動区分
		inMap.put(EKK0021C060CBSMsg.IDO_DIV, idoDiv);
	}

	/**
	 * 回線対象サービス契約一覧照会の上りマッピング処理です。
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0241B002(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);
	}

	/**
	 * 上りマッピング項目設定(サービス契約一意照会)
	 *
	 * <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, JCCBPCommon.getOpeDate(null));
	}

	/**
	 * 上りマッピング項目設定(現サービス契約内訳情報一覧照会(ネット))
	 *
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapSvcKeiUcwkSearch(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(1:現サービス契約内訳情報一覧照会(ネット))
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);

	}

	/**
	 * 上りマッピング項目設定(課金先一覧照会（請求契約番号/サービス契約番号）)
	 *
	 * <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);
	}

	/**
	 * 上りマッピング項目設定(割引自動適用CC)を行います。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param pcrsCd 料金コース
	 * @param mskmNo 申込番号
	 * @param sendKktkSvcKeiNo 機器提供サービス契約番号
	 * @param pplanCd 料金プラン
	 * @throws Throwable
	 */
	private void setInMapWrSvAtAplyNoPlanChg(IRequestParameterReadWrite param, String fixedText, String mskmNo, String sendKktkSvcKeiNo) throws Throwable
	{

		// 割引サービス自動登録CC用マップ設定
		// ユーザデータ取得 [割引サービス自動登録CC用マップ]
		HashMap<String, Object> wrSvMap = (HashMap)param.getData("FUSV035109CC");

		if (wrSvMap == null)
		{
			return;
		}

		// サービス契約グループリスト
		ArrayList svcKeiGrpList = new ArrayList();
		// サービス契約リスト
		ArrayList svcKeiList = new ArrayList();

		// ■共通項目
		// 登録/変更区分：登録("01")
		wrSvMap.put("add_chge_div", JFUStrConst.WRISVC_ADD_CHGE_DIV_TOROKU);
		// 申込番号
		wrSvMap.put("mskm_no", mskmNo);
		// 申込種別コード：機器契約変更申込("00022")
		wrSvMap.put("mskm_sbt_cd", JFUStrConst.KK0971_MSKM_SBT_CD_00022);
		// 異動区分：機器契約変更("00026")
		wrSvMap.put("ido_div", JFUStrConst.CD00576_00026);

		// ■サービス契約グループリスト
		HashMap svcKeiGrpMap = new HashMap();
		// グループ区分:基準契約("00")
		svcKeiGrpMap.put("grp_div", JFUStrConst.WRISVC_GRP_DIV_KIJYUN);

		// ■サービス契約リスト
		HashMap svcKeiMap = new HashMap();
		// 対象契約識別コード：機器提供サービス契約("06")
		svcKeiMap.put("tg_kei_skbt_cd", JFUStrConst.WRISVC_TG_KEI_SKBT_CD_KKTK);
		// 機器提供サービス契約番号
		svcKeiMap.put("kktk_svc_kei_no", sendKktkSvcKeiNo);
		// 機器提供サービス契約ステータス
		svcKeiMap.put("kktk_svc_kei_stat", JFUStrConst.CD00056_020);
		// 機器提供サービスコード
		svcKeiMap.put("kktk_svc_cd", JFUStrConst.CD00132_C014);
		// 機器提供種別コード
		svcKeiMap.put("kktk_sbt_cd", JFUStrConst.CD00212_02);
		// ANK-3825-00-00 MOD START
		// 料金コースコード
		svcKeiMap.put("pcrs_cd", JFUStrConst.CD00134_CA6);
		// 料金プランコード
		svcKeiMap.put("pplan_cd", JFUStrConst.CD00565_PCA601);
		// ANK-3825-00-00 MOD END

		svcKeiList.add(svcKeiMap);
		svcKeiGrpMap.put("svc_kei_list", svcKeiList);

		svcKeiGrpList.add(svcKeiGrpMap);
		wrSvMap.put("svc_kei_grp_list", svcKeiGrpList);
	}

	/**
	 * 工事会社配送
	 * 
	 * <br>
	 * @param inKojiakNo 工事案件番号
	 * @return true：工事会社配送、false：お客様直送
	 */
	private boolean isKojiHaiso(String inKojiakNo)
	{
		boolean flg = JFUCommonUtil.isNull(inKojiakNo);
		if (flg)
		{
			return false;
		}
		return true;
	}

	/**
	 * eo光ネットマンションタイプ（イーサ／VDSL／光コンセント）か判定を行う。
	 * 
	 * <br>
	 * @param tk_hoshiki_cd 提供方式コード
	 * @param tk_hoshiki_pattern_cd 提供方式パターンコード
	 * @param svcKeiStatNet ネットのサービス契約ステータス
	 * @param svcKeiNoTel 電話のサービス契約ステータス
	 * @param prc_grp_cd 料金グループコード
	 * @return true：eo光ネットマンションタイプ（イーサ／VDSL／光コンセント）、false：それ以外
	 */
	private boolean executeHaisoYotei(String tk_hoshiki_cd, String tk_hoshiki_pattern_cd, String svcKeiStatNet, String svcKeiNoTel, String prc_grp_cd)
	{

		if (!JFUStrConst.CD00133_04.equals(prc_grp_cd))
		{
			// マンションでない場合
			return false;
		}
		if (!SVC_KEI_STAT_OPBMPB.contains(svcKeiStatNet))
		{
			// ネットが開通前でない場合
			return false;
		}
		if (MT_ENET_VDSL.contains(tk_hoshiki_cd))
		{
			// eo光ネットマンションタイプ（イーサ／VDSL）
			return true;
		}
		if (JFUStrConst.CD00590_008.equals(tk_hoshiki_cd) && JFUStrConst.CD01213_51.equals(tk_hoshiki_pattern_cd))
		{
			// 光コンセント
			return true;
		}
		return false;
	}

	/**
	 * 配送予定年月日（配送依頼指定年月日）の取得を行う。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param svcKeiNoNet ネットのサービス契約番号
	 * @param svcKeiStatNet ネットのサービス契約ステータス
	 * @param svcKeiNoTel 電話のサービス契約番号
	 * @param svcKeiStatTel 電話のサービス契約ステータス
	 * @return
	 * @throws Throwable
	 */
	private HashMap<String, Object> getHaisoReqShiteiYmd(SessionHandle handle, IRequestParameterReadWrite param, String svcKeiNoNet, String svcKeiStatNet, String svcKeiNoTel, String svcKeiStatTel)
			throws Throwable
	{
		// eo光ネットマンションタイプ（イーサ／VDSL／光コンセント）の場合、配送予定年月日取得
		param.setData(WK_REQSHITEI_YMD, new HashMap<String, Object>());
		HashMap<String, Object> paramHaiso = (HashMap<String, Object>)param.getData(WK_REQSHITEI_YMD);

		// パラメータ設定
		paramHaiso.put("net_svc_kei_no", svcKeiNoNet);
		paramHaiso.put("net_svc_kei_stat", svcKeiStatNet);

		paramHaiso.put("tel_svc_kei_no", svcKeiNoTel);
		paramHaiso.put("tel_svc_kei_stat", svcKeiStatTel);

		// 配送依頼指定年月日取得コンポーネント部品
		JFUGetHaisoReqShiteiYmdCC haisoShiteiYmd = new JFUGetHaisoReqShiteiYmdCC();
		haisoShiteiYmd.getHaisoReqShiteiYmd(handle, param, WK_REQSHITEI_YMD);
		HashMap<String, Object> resultHaiso = (HashMap)param.getData(WK_REQSHITEI_YMD);
		return resultHaiso;

	}
}
