/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JFUBackyardMappingCC
*	ソースファイル名：JFUBackyardMappingCC.java
*	作成者			：富士通
*	日付			：2012年07月26日
*＜機能概要＞
*	バックヤードマッピングコモンコンポーネント部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/07/20	FJ)岩元		新規作成
*	v4.00.00	2012/11/11	FJ)岩元		「IT2-2012-0001695」WiFiセット申込対応
*	v4.01.00	2012/11/19	FJ)岩元		「ST1-2012-0000961」指示書・通知書対応
*	v4.02.00	2013/03/22	FJ)大塚		「IKK-2013-0000464」指示書対応
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JFUBackyardMappingConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKAddSjishoConst;
import com.fujitsu.futurity.bp.custom.constant.JKKHakkoSODConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKSvkeiShosaConstCC;
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.common.JCMConstants;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbm.entity.CK0011ETMsg;
import eo.ejb.cbm.entity.CK0021ETMsg;
import eo.ejb.cbm.entity.KK0021ETMsg;
import eo.ejb.cbm.entity.KK0081ETMsg;
import eo.ejb.cbm.entity.KK0251ETMsg;
import eo.ejb.cbm.entity.KK0491ETMsg;
import eo.ejb.cbm.entity.KK0521ETMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0201D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0521D020CBSMsg;

public class JFUBackyardMappingCC extends JFUBaseCC
{
	/** 定数 */
	private static final String SYSID = "SYSID";
	private static final String CUST_NM = "CUST_NM";
	private static final String CUST_KANA = "CUST_KANA";
	private static final String CUST_BIRTHD = "CUST_BIRTHD";
	private static final String KEISHA_TELNO = "KEISHA_TELNO";
	private static final String KEISHA_AD_CD = "KEISHA_AD_CD";
	private static final String KEISHA_PCD = "KEISHA_PCD";
	private static final String KEISHA_STATE_NM = "KEISHA_STATE_NM";
	private static final String KEISHA_CITY_NM = "KEISHA_CITY_NM";
	private static final String KEISHA_OAZTSU_NM = "KEISHA_OAZTSU_NM";
	private static final String KEISHA_AZCHO_NM = "KEISHA_AZCHO_NM";
	private static final String KEISHA_AD_MAN_INPUT_FLG = "KEISHA_AD_MAN_INPUT_FLG";
	private static final String KEISHA_TYPE_CD = "KEISHA_TYPE_CD";
	
	private final static String SKSHA_NM = "SKSHA_NM";
	private final static String SKSHA_KANA = "SKSHA_KANA";
	private final static String SKSHA_TELNO = "SKSHA_TELNO";
	private final static String SKSHA_AD_CD = "SKSHA_AD_CD";
	private final static String SKSHA_PCD = "SKSHA_PCD";
	private final static String SKSHA_STATE_NM = "SKSHA_STATE_NM";
	private final static String SKSHA_CITY_NM = "SKSHA_CITY_NM";
	private final static String SKSHA_OAZTSU_NM = "SKSHA_OAZTSU_NM";
	private final static String SKSHA_AZCHO_NM = "SKSHA_AZCHO_NM";
	
	private final static String MSKM_DTL_NO = "MSKM_DTL_NO";
	private final static String MSKM_NO = "MSKM_NO";
	private final static String MSKMSHO_NO = "MSKMSHO_NO";
	private final static String MSKM_YMD = "MSKM_YMD";
	
	private final static String SVC_KEI_NO = "SVC_KEI_NO";
	private final static String IDO_DIV = "IDO_DIV";
	private final static String MENKAIHAT_ANKEN_NO = "MENKAIHAT_ANKEN_NO";
	private final static String SVC_CD = "SVC_CD";
	private final static String PRC_GRP_CD = "PRC_GRP_CD";
	private final static String PCRS_CD = "PCRS_CD";
	private final static String PPLAN_CD = "PPLAN_CD";
	private final static String GENE_ADD_DTM = "GENE_ADD_DTM";
	private final static String TK_HOSHIKI_KEI_NO = "TK_HOSHIKI_KEI_NO";
	
	private final static String SVC_KEI_KAISEN_UCWK_NO = "SVC_KEI_KAISEN_UCWK_NO";
	private final static String KAISEN_PLACE_AD_CD = "KAISEN_PLACE_AD_CD";
	private final static String KAISEN_PLACE_PCD = "KAISEN_PLACE_PCD";
	private final static String KAISEN_PLACE_STATE_NM = "KAISEN_PLACE_STATE_NM";
	private final static String KAISEN_PLACE_CITY_NM = "KAISEN_PLACE_CITY_NM";
	private final static String KAISEN_PLACE_OAZTSU_NM = "KAISEN_PLACE_OAZTSU_NM";
	private final static String KAISEN_PLACE_AZCHO_NM = "KAISEN_PLACE_AZCHO_NM";
	private final static String KAISEN_PLACE_BNCHIGO = "KAISEN_PLACE_BNCHIGO";
	private final static String KAISEN_PLACE_ADRTTM = "KAISEN_PLACE_ADRTTM";
	private final static String KAISEN_PLACE_ADRRM = "KAISEN_PLACE_ADRRM";
	private final static String XZAHYO = "XZAHYO";
	private final static String YZAHYO = "YZAHYO";
	
	private final static String SHS_KANA = "SHS_KANA";
	private final static String SOHUS_TELNO = "SOHUS_TELNO";
	private final static String SEIKY_KEI_NO = "SEIKY_KEI_NO";
	private final static String SOHUS_AD_CD = "SOHUS_AD_CD";
	private final static String SOHUS_PCD = "SOHUS_PCD";
	private final static String SOHUS_STATE_NM = "SOHUS_STATE_NM";
	private final static String SOHUS_CITY_NM = "SOHUS_CITY_NM";
	private final static String SOHUS_OAZTSU_NM = "SOHUS_OAZTSU_NM";
	private final static String SOHUS_AZCHO_NM = "SOHUS_AZCHO_NM";
	private final static String SOHUS_AD_MAN_INPUT_FLG = "SOHUS_AD_MAN_INPUT_FLG";
	
	private final static String CRECARD_COMP_CD = "CRECARD_COMP_CD";
	private final static String CRECARD_JIGYO_CD = "CRECARD_JIGYO_CD";
	private final static String CRECARD_NO = "CRECARD_NO";

	//20131219 Yano ANK-1584-00-00 ADD-S
	/** マスター会員(内部処理用会員種別) */
	private static final String DUMMY_KIIN_SBT_MASTER = "1";
	/** ファミリー会員(内部処理用会員種別) */
	private static final String DUMMY_KIIN_SBT_FAMILY = "2";
	/** オープン会員(内部処理用会員種別) */
	private static final String DUMMY_KIIN_SBT_OPEN = "3";
	//20131219 Yano ANK-1584-00-00 ADD-E
	
	/** コンポーネント名称 */
	private String cName = "";

	/** オーダ発行CC ユーザ定義文字列 */
	private String odrHakkoFixedText = "";

	/** 整理番号発番付替部品 ユーザ定義文字列 */
	private String seiriNoFixedText = "";

	/** 申込回線サービス*/
	private String mskm_ksn_svc = "";

	/** 申込区分 */
	private String mskm_kbn = "";

	/** SYSID */
	private String sysid = "";

	/** 会員種別 */
	private String kiin_sbt = "";

	/** サービス契約番号 */
	private String svc_kei_no = "";

	/** サービス契約内訳番号 */
	private String svc_kei_ucwk_no = "";

	/** 請求契約番号 */
	private String seiky_kei_no = "";

	// IKK-2013-0000464 Otsuka 
	/** モバイルコース */
	private String mobile_course = "";

	/** ワークエリア */
	private static final String CC_WORK_AREA_NAME = "JFUAuthCheckCCWork";

	/**
	 * バックヤードCCへのマッピング処理を行います
	 * （審査・照査・オーダ発行前に実行するメソッド）
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite execute(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		this.init();
		if (!JFUBackyardMappingConstCC.STRING_BLANK.equals(fixedText))
		{
			// ユーザ定義文字列取得
			this.cName = fixedText;

			// パラメータ取得
			HashMap inMap = (HashMap)param.getData(this.cName);

			// 共有フォームBeanの申込回線サービスを取得
			this.mskm_ksn_svc = (String)inMap.get(JFUBackyardMappingConstCC.MSKM_KSN_SVC);
			// 共有フォームBeanの申込区分を取得
			this.mskm_kbn = (String)inMap.get(JFUBackyardMappingConstCC.MSKM_KBN);
			// 共有フォームBeanのモバイルコース取得
			this.mobile_course = (String)inMap.get(JFUBackyardMappingConstCC.MOBILE_COURSE); // IKK-2013-0000464 Otsuka
			// 共有フォームBeanの加入契約申込条件コード取得
			String knykei_mskm_joken_cd = (String)inMap.get(JFUBackyardMappingConstCC.KNYKEI_MSKM_JOKEN_CD);
			// 共有フォームBeanの販売タイプ取得
			String hanbai_type = (String)inMap.get(JFUBackyardMappingConstCC.HANBAI_TYPE);
			// 処理区分取得
			String trn_kbn = (String)inMap.get(JFUBackyardMappingConstCC.TRN_KBN);
			//20131219 Yano ANK-1584-00-00 MOD-S
			if (JFUBackyardMappingConstCC.TRN_KBN_SHOSA_BF.equals(trn_kbn))
			{
				// SYSID
				this.sysid = (String)inMap.get(JFUBackyardMappingConstCC.SYSID);
				if (!JFUBPCommon.isNull(sysid))
				{
					// お客様一意照会サービスインターフェイス呼び出し
					HashMap eck0011a010ListMap = callSifECK0011A010(handle, param);
					
					String mtkiinSbt=(String)eck0011a010ListMap.get(ECK0011A010CBSMsg1List.MEMBER_SBT_CD);
					
					if (JFUStrConst.CD00039_30.equals(mtkiinSbt))
					{
						// オープン会員
						this.kiin_sbt = DUMMY_KIIN_SBT_OPEN;
					}
					else if (JFUStrConst.CD00039_21.equals(mtkiinSbt) || JFUStrConst.CD00039_11.equals(mtkiinSbt))
					{
						// ファミリー会員
						this.kiin_sbt = DUMMY_KIIN_SBT_FAMILY;
					}
					else if (JFUStrConst.CD00039_20.equals(mtkiinSbt) || JFUStrConst.CD00039_10.equals(mtkiinSbt))
					{
						// マスター会員
						this.kiin_sbt = DUMMY_KIIN_SBT_MASTER;
					}
				}
				else
				{
					// 会員種別取得
					this.kiin_sbt = (String)inMap.get(JFUBackyardMappingConstCC.KIIN_SBT);
				}
			}
			else if (JFUBackyardMappingConstCC.TRN_KBN_SHOSA_AF.equals(trn_kbn))
			{
				// 会員種別取得
				this.kiin_sbt = (String)inMap.get(JFUBackyardMappingConstCC.KIIN_SBT);
			}
			//20131219 Yano ANK-1584-00-00 MOD-E

			if (!JFUStrConst.HNBAI_TYPE_CON.equals(hanbai_type))
			{
				// コンシューマではない場合処理を行わない
				return param;
			}

			// 照査前処理の場合
			if (JFUBackyardMappingConstCC.TRN_KBN_SHOSA_BF.equals(trn_kbn))
			{
				// --------------------------------------------------------------
				// 審査・サービス契約照査・オーダ発行・指示書登録 マッピング処理
				// --------------------------------------------------------------

				// 整理番号発番付替CC ユーザ定義文字列
				this.seiriNoFixedText = (String)inMap.get(JFUBackyardMappingConstCC.SEIRI_NO_FIXED_TEXT);

				// オーダ発行CC ユーザ定義文字列
				this.odrHakkoFixedText = (String)inMap.get(JFUBackyardMappingConstCC.ODR_HAKKO_FIXED_TEXT);

				if (JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(this.mskm_ksn_svc))
				{
					// 申込回線サービスがモバイル単独の場合
					this.mobileMapping(handle, param);
				}
				// WiFiセット申し込み対応 2012/11/11 h.iwamoto START
				else
				{
					if (JFUStrConst.MOBILE_COURSE_WIFI.equals(mobile_course))
					{
						// モバイル単独ではなく、WiFiが申込まれている場合
						if (JFUStrConst.CD01260_13.equals(knykei_mskm_joken_cd))
						{
							// 全戸一括の場合、必要な情報を各マップより取得
							ikkatuAddMapping(param);
						}
						else
						{
							// 全戸一括ではない場合、パラメータより必要な情報を取得します

							// SYSID
							this.sysid = (String)inMap.get(JFUBackyardMappingConstCC.SYSID);
							// サービス契約番号
							this.svc_kei_no = (String)inMap.get(JFUBackyardMappingConstCC.SHOSA_TG_SVC_KEI_NO);
							// サービス契約内訳番号
							this.svc_kei_ucwk_no = (String)inMap.get(JFUBackyardMappingConstCC.SHOSA_TG_SVC_KEI_UCWK_NO);
							// 請求契約番号
							this.seiky_kei_no = (String)inMap.get(JFUBackyardMappingConstCC.JDG_TG_SEIKY_KEI_NO);

						}
						// 後続CCマッピング処理
						this.wifiSetMapping(param, handle);
					}
					else
					{
						// WiFiを申し込んでない場合は処理終了
						return param;
					}
				}
				// 指示書登録CCマッピング処理
				this.sjishoMapping(param);
				// WiFiセット申し込み対応 2012/11/11 h.iwamoto END
			}
			// 照査後の場合
			else if (JFUBackyardMappingConstCC.TRN_KBN_SHOSA_AF.equals(trn_kbn))
			{
				// --------------------------------------------------------------
				// 通知書登録処理
				// --------------------------------------------------------------
				if (JFUStrConst.MSKM_KSN_SVC_MOBILE.equals(this.mskm_ksn_svc))
				{
					// モバイル単独の場合、必要な情報を各マップより取得
					HashMap fusv016510sc = (HashMap)param.getData("FUSV016510SC");
					this.svc_kei_no = (String)fusv016510sc.get(EKK0121D010CBSMsg.SVC_KEI_NO);
				}
				else
				{
					if (JFUStrConst.MOBILE_COURSE_WIFI.equals(mobile_course))
					{
						// モバイル単独ではなく、WiFiが申込まれている場合
						if (JFUStrConst.CD01260_13.equals(knykei_mskm_joken_cd))
						{
							// 全戸一括の場合、必要な情報を各マップより取得

							// サービス契約＜eoモバイル＞登録マップキー取得
							String svc_kei_eomoba_map_key = (String)inMap.get(JFUBackyardMappingConstCC.SVC_KEI_EOMOBA_MAP_KEY);
							// サービス契約＜eoモバイル＞登録マップ取得
							HashMap svcKeiEomobaMap = (HashMap)param.getData(svc_kei_eomoba_map_key);
							// サービス契約番号を取得
							this.svc_kei_no = (String)svcKeiEomobaMap.get(EKK0121D010CBSMsg.SVC_KEI_NO);
						}
						else
						{
							// 全戸一括ではない場合、パラメータより必要な情報を取得します
							// サービス契約番号
							this.svc_kei_no = (String)inMap.get(JFUBackyardMappingConstCC.SHOSA_TG_SVC_KEI_NO);
						}
					}
					else
					{
						// WiFiをセット申込されてないため処理終了
						return param;
					}
				}
				// 通知書登録CCマッピング処理
				tchishoMapping(param, handle);
			}
		}

		return param;
	}

	// ST1-2012-0000961 h.iwamoto 2012/11/19 START
	/**
	 * クラス変数を初期化する
	 */
	private void init()
	{
		// 初期化
		this.cName = "";
		this.odrHakkoFixedText = "";
		this.mskm_ksn_svc = "";
		this.mskm_kbn = "";
		this.sysid = "";
		this.svc_kei_no = "";
		this.svc_kei_ucwk_no = "";
		this.seiky_kei_no = "";
	}

	// ST1-2012-0000961 h.iwamoto 2012/11/19 END

	/**
	 * チェック処理
	 * <br>
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// チェック処理はなし
		HashMap paramMap = new HashMap();
		return paramMap;
	}

	/**
	 * モバイル用マッピング処理を行う
	 * 
	 * <br>
	 * @param param
	 * @return
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite mobileMapping(SessionHandle handle, IRequestParameterReadWrite param) throws Exception
	{
		// --------------------------------------------
		// 審査CC・審査結果更新CCへのマッピング処理
		// --------------------------------------------
		HashMap fusv016510scMap = (HashMap)param.getData("FUSV016510SC");
		String pcrsCd = (String)fusv016510scMap.get("pcrs_cd");
		// Wifi・WiMAX白ロムの場合
		if (JFUStrConst.CD00134_A30.equals(pcrsCd) || JFUStrConst.CD00134_A29.equals(pcrsCd))
		{
			// ***** 審査CC *****

			// 即時フラグ：1 審査（即時）
			param.setData("IS_SOKUJI", "1");

			// 起動元機能識別：61(その他)
			param.setData("KINO_SKBT", "61");

			// お客様
			ArrayList cust = (ArrayList)param.getData(CK0011ETMsg.getTableName());
			HashMap custMap = (HashMap)cust.get(0);

			// 申込区分
			String mskmKbn = (String)param.getData("mskm_kbn");
			// 契約種別
			String keiSbt = (String)param.getData("kei_sbt");

			//			if (JFUStrConst.MSKM_KBN_NEW.equals(mskmKbn))
			//			{
			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				// 個人の場合
				HashMap fusv016501sc = (HashMap)param.getData("FUSV016501SC");

				if (JFUStrConst.MSKM_KBN_NEW.equals(mskmKbn))
				{
					// -----WiFi＆WiMAX白ロム追加申し込み時審査対応 2012/08/17 h.iwamoto START-----
					if (custMap == null || custMap.get(SYSID) == null || "".equals(custMap.get(SYSID)))
					{
						// SYSID
						custMap.put(SYSID, fusv016501sc.get(ECK0021D010CBSMsg.SYSID));
						// SYSIDをクラス変数へ保持する
						this.sysid = (String)fusv016501sc.get(ECK0021D010CBSMsg.SYSID);
					}
					else
					{
						HashMap fusv016530cc = (HashMap)param.getData("FUSV016530CC");
						// SYSID
						custMap.put(SYSID, fusv016530cc.get("sysid"));
						// SYSIDをクラス変数へ保持する
						this.sysid = (String)fusv016530cc.get(ECK0021D010CBSMsg.SYSID);
					}
					// -----WiFi＆WiMAX白ロム追加申し込み時審査対応 2012/08/17 h.iwamoto END-----

				}
				else
				{

					HashMap fusv016530cc = (HashMap)param.getData("FUSV016530CC");
					// SYSID
					custMap.put(SYSID, fusv016530cc.get("sysid"));
					this.sysid = (String)fusv016530cc.get("sysid");
				}
				// お客様名
				custMap.put(CUST_NM, fusv016501sc.get(ECK0021D010CBSMsg.CUST_NM));
				// お客様カナ名
				custMap.put(CUST_KANA, fusv016501sc.get(ECK0021D010CBSMsg.CUST_KANA));
				// お客様生年月日
				custMap.put(CUST_BIRTHD, fusv016501sc.get(ECK0021D010CBSMsg.CUST_BIRTHD));
				// 契約者電話番号
				custMap.put(KEISHA_TELNO, fusv016501sc.get("after_bnchi"));
			}
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
			{
				// 法人の場合
				HashMap fusv016502sc = (HashMap)param.getData("FUSV016502SC");
				// SYSID
				custMap.put(SYSID, fusv016502sc.get(ECK0031D010CBSMsg.SYSID));
				// お客様名
				custMap.put(CUST_NM, fusv016502sc.get(ECK0031D010CBSMsg.CUST_NM));
				// お客様カナ名
				custMap.put(CUST_KANA, fusv016502sc.get(ECK0031D010CBSMsg.CUST_KANA));
				// お客様生年月日
				custMap.put(CUST_BIRTHD, fusv016502sc.get(ECK0031D010CBSMsg.CUST_BIRTHD));
				// 契約者電話番号
				custMap.put(KEISHA_TELNO, fusv016502sc.get(ECK0031D010CBSMsg.KEISHA_TELNO));

				// 法人SYSID対応
				this.sysid = (String)fusv016502sc.get(ECK0031D010CBSMsg.SYSID);
			}
			//			}
			// 住所情報分割
			HashMap addressMap = (HashMap)param.getData("FUSV016520CC");

			// 契約者住所コード
			custMap.put(KEISHA_AD_CD, addressMap.get("ad_cd"));
			// 契約者郵便番号
			custMap.put(KEISHA_PCD, addressMap.get("keisha_pcd"));
			// 契約者都道府県名
			custMap.put(KEISHA_STATE_NM, addressMap.get("state_nm"));
			// 契約者市区町村名
			custMap.put(KEISHA_CITY_NM, addressMap.get("city_nm"));
			// 契約者大字通称名
			custMap.put(KEISHA_OAZTSU_NM, addressMap.get("oaztsu_nm"));
			// 契約者字丁目名
			custMap.put(KEISHA_AZCHO_NM, addressMap.get("azcho_nm"));

			// お客様＜個人＞
			ArrayList custKojin = new ArrayList();
			HashMap custKojinMap = new HashMap();

			if (JFUStrConst.KEI_SBT_KOJINCD.equals(keiSbt))
			{
				// 個人の場合
				HashMap fusv016501sc = (HashMap)param.getData("FUSV016501SC");
				// 親権者名
				custKojinMap.put(SKSHA_NM, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_NM));
				// 親権者カナ名
				custKojinMap.put(SKSHA_KANA, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_KANA));
				// 親権者電話番号
				custKojinMap.put(SKSHA_TELNO, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_TELNO));
				// 親権者住所コード
				custKojinMap.put(SKSHA_AD_CD, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_AD_CD));
				// 親権者郵便番号
				custKojinMap.put(SKSHA_PCD, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_PCD));
				// 親権者都道府県名
				custKojinMap.put(SKSHA_STATE_NM, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_STATE_NM));
				// 親権者市区町村名
				custKojinMap.put(SKSHA_CITY_NM, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_CITY_NM));
				// 親権者大字通称名
				custKojinMap.put(SKSHA_OAZTSU_NM, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_OAZTSU_NM));
				// 親権者字丁目名
				custKojinMap.put(SKSHA_AZCHO_NM, fusv016501sc.get(ECK0021D010CBSMsg.SKSHA_AZCHO_NM));

			}
			else if (JFUStrConst.KEI_SBT_HOJINCD.equals(keiSbt))
			{
				// 法人の場合
				// 親権者名
				custKojinMap.put(SKSHA_NM, null);
				// 親権者カナ名
				custKojinMap.put(SKSHA_KANA, null);
				// 親権者電話番号
				custKojinMap.put(SKSHA_TELNO, null);
				// 親権者住所コード
				custKojinMap.put(SKSHA_AD_CD, null);
				// 親権者郵便番号
				custKojinMap.put(SKSHA_PCD, null);
				// 親権者都道府県名
				custKojinMap.put(SKSHA_STATE_NM, null);
				// 親権者市区町村名
				custKojinMap.put(SKSHA_CITY_NM, null);
				// 親権者大字通称名
				custKojinMap.put(SKSHA_OAZTSU_NM, null);
				// 親権者字丁目名
				custKojinMap.put(SKSHA_AZCHO_NM, null);
			}

			custKojin.add(custKojinMap);
			// paramに設定
			param.setData(CK0021ETMsg.getTableName(), custKojin);

			// クレジットカード
			ArrayList crecard = (ArrayList)param.getData(KK0521ETMsg.getTableName());
			HashMap crecardMap = (HashMap)crecard.get(0);

			String payway = (String)param.getData("payway");

			if (JFUStrConst.PAYWAY_CREDIT.equals(payway))
			{
				//				// 支払い方法がクレジットカードの場合
				//				HashMap fusv016507sc = (HashMap)param.getData("FUSV016507SC");
				//				// クレジットカード会社コード
				//				crecardMap.put(KK0521ETMsg.CRECARD_COMP_CD, fusv016507sc.get(EKK0521D020CBSMsg.CRECARD_COMP_CD));
				//				// クレジットカード事業コード
				//				crecardMap.put(KK0521ETMsg.CRECARD_JIGYO_CD, fusv016507sc.get(EKK0521D020CBSMsg.CRECARD_JIGYO_CD));
				//				// クレジットカード番号
				//				crecardMap.put(KK0521ETMsg.CRECARD_NO, fusv016507sc.get(EKK0521D020CBSMsg.CRECARD_NO));
				//				// 世代登録年月日時分秒
				//				crecardMap.put(KK0521ETMsg.GENE_ADD_DTM, fusv016507sc.get(EKK0521D020CBSMsg.GENE_ADD_DTM));

				// 2012/10/24 Otsuka 世代登録年月日時分秒をワークマップから取得するように修正

				// 支払い方法がクレジットカードの場合

				HashMap fusv016507sc = (HashMap)param.getData("EKK0521D020");

				// クレジットカード会社コード
				crecardMap.put(CRECARD_COMP_CD, fusv016507sc.get(EKK0521D020CBSMsg.CRECARD_COMP_CD));
				// クレジットカード事業コード
				crecardMap.put(CRECARD_JIGYO_CD, fusv016507sc.get(EKK0521D020CBSMsg.CRECARD_JIGYO_CD));
				// クレジットカード番号
				crecardMap.put(CRECARD_NO, fusv016507sc.get(EKK0521D020CBSMsg.CRECARD_NO));
				// 世代登録年月日時分秒
				if (getWorkMapValue(param, "upd_dtm", CC_WORK_AREA_NAME) != null)
				{
					crecardMap.put(GENE_ADD_DTM, getWorkMapValue(param, "upd_dtm", CC_WORK_AREA_NAME));
				}
				else
				{
					crecardMap.put(GENE_ADD_DTM, null);
				}

			}
			else
			{
				// 支払い方法がクレジットカードでない場合
				// クレジットカード会社コード
				crecardMap.put(CRECARD_COMP_CD, null);
				// クレジットカード事業コード
				crecardMap.put(CRECARD_JIGYO_CD, null);
				// クレジットカード番号
				crecardMap.put(CRECARD_NO, null);
				// 世代登録年月日時分秒
				crecardMap.put(GENE_ADD_DTM, null);
			}

			// サービス契約
			ArrayList svcKei = (ArrayList)param.getData(KK0081ETMsg.getTableName());
			HashMap svcKeiMap = (HashMap)svcKei.get(0);

			HashMap fusv016510sc = (HashMap)param.getData("FUSV016510SC");

			// サービス契約番号をクラス変数へ保持
			this.svc_kei_no = (String)fusv016510sc.get(EKK0121D010CBSMsg.SVC_KEI_NO);

			// サービス契約番号
			svcKeiMap.put(SVC_KEI_NO, fusv016510sc.get(EKK0121D010CBSMsg.SVC_KEI_NO));
			// 異動区分
			svcKeiMap.put(IDO_DIV, fusv016510sc.get(EKK0121D010CBSMsg.IDO_DIV));
			// 面開発案件番号
			svcKeiMap.put(MENKAIHAT_ANKEN_NO, fusv016510sc.get(EKK0121D010CBSMsg.MENKAIHAT_ANKEN_NO));
			// サービスコード
			svcKeiMap.put(SVC_CD, fusv016510sc.get(EKK0121D010CBSMsg.SVC_CD));
			// 料金グループコード
			svcKeiMap.put(PRC_GRP_CD, fusv016510sc.get(EKK0121D010CBSMsg.PRC_GRP_CD));
			// 料金コースコード
			svcKeiMap.put(PCRS_CD, fusv016510sc.get(EKK0121D010CBSMsg.PCRS_CD));
			// 料金プランコード
			svcKeiMap.put(PPLAN_CD, fusv016510sc.get(EKK0121D010CBSMsg.PPLAN_CD));
			// 更新年月日時分秒
			svcKeiMap.put(GENE_ADD_DTM, fusv016510sc.get(EKK0121D010CBSMsg.KK0081_GENE_ADD_DTM));

			// サービス契約回線内訳
			ArrayList svcKeiKaisenUcwk = (ArrayList)param.getData(KK0251ETMsg.getTableName());
			HashMap svcKeiKaisenUcwkMap = (HashMap)svcKeiKaisenUcwk.get(0);

			HashMap fusv016515sc = (HashMap)param.getData("FUSV016515SC");

			// サービス契約回線内訳番号
			svcKeiKaisenUcwkMap.put(SVC_KEI_KAISEN_UCWK_NO, fusv016515sc.get(EKK0251D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO));
			// 回線場所住所コード
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_AD_CD, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_AD_CD));
			// 回線場所郵便番号
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_PCD, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_PCD));
			// 回線場所都道府県名
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_STATE_NM, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_STATE_NM));
			// 回線場所市区町村名
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_CITY_NM, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_CITY_NM));
			// 回線場所大字通称名
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_OAZTSU_NM, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_OAZTSU_NM));
			// 回線場所字丁目名
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_AZCHO_NM, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_AZCHO_NM));
			// 回線場所番地号
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_BNCHIGO, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_BNCHIGO));
			// 回線場所住所補記・建物名
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_ADRTTM, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_ADRTTM));
			// 回線場所住所補記・部屋番号
			svcKeiKaisenUcwkMap.put(KAISEN_PLACE_ADRRM, fusv016515sc.get(EKK0251D010CBSMsg.KAISEN_PLACE_ADRRM));
			// 経度
			svcKeiKaisenUcwkMap.put(XZAHYO, fusv016515sc.get(EKK0251D010CBSMsg.XZAHYO));
			// 緯度
			svcKeiKaisenUcwkMap.put(YZAHYO, fusv016515sc.get(EKK0251D010CBSMsg.YZAHYO));

			// 申込明細
			ArrayList mskmDtl = (ArrayList)param.getData(KK0021ETMsg.getTableName());
			HashMap mskmDtlMap = (HashMap)mskmDtl.get(0);

			// 申込内容承認登録マップから取得
			HashMap fusv016505sc = (HashMap)param.getData("FUSV016505SC");
			// 申込明細リスト
			ArrayList ekk0011d020cbsmsg1list = (ArrayList)fusv016505sc.get(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
			HashMap mskmMeisaiMap = (HashMap)ekk0011d020cbsmsg1list.get(0);
			// 申込書番号取得
			HashMap fusv016519sc = (HashMap)param.getData("FUSV016519SC");
			String mskmshoNo = (String)fusv016519sc.get(EKK0011D020CBSMsg1List.MSKMSHO_NO);

			// 申込明細番号
			mskmDtlMap.put(MSKM_DTL_NO, mskmMeisaiMap.get(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
			// 申込番号
			mskmDtlMap.put(MSKM_NO, fusv016505sc.get(EKK0011D020CBSMsg.MSKM_NO));
			// 申込書番号
			mskmDtlMap.put(MSKMSHO_NO, mskmshoNo);
			// 申込年月日
			mskmDtlMap.put(MSKM_YMD, fusv016505sc.get(EKK0011D020CBSMsg.MSKM_YMD));

			// 請求契約
			ArrayList seikyKei = (ArrayList)param.getData(KK0491ETMsg.getTableName());
			HashMap seikyKeiMap = (HashMap)seikyKei.get(0);

			HashMap fusv016508sc = (HashMap)param.getData("FUSV016508SC");
			// 送付先カナ名
			seikyKeiMap.put(SHS_KANA, fusv016508sc.get(EKK0491D010CBSMsg.SHS_KANA));
			// 送付先電話番号
			seikyKeiMap.put(SOHUS_TELNO, fusv016508sc.get(EKK0491D010CBSMsg.SOHUS_TELNO));
			// 請求契約番号
			seikyKeiMap.put(SEIKY_KEI_NO, fusv016508sc.get(EKK0491D010CBSMsg.SEIKY_KEI_NO));
			// 送付先住所コード
			seikyKeiMap.put(SOHUS_AD_CD, fusv016508sc.get(EKK0491D010CBSMsg.SOHUS_AD_CD));
			// 送付先郵便番号
			seikyKeiMap.put(SOHUS_PCD, fusv016508sc.get(EKK0491D010CBSMsg.SOHUS_PCD));
			// 送付先都道府県名
			seikyKeiMap.put(SOHUS_STATE_NM, fusv016508sc.get(EKK0491D010CBSMsg.SOHUS_STATE_NM));
			// 送付先市区町村名
			seikyKeiMap.put(SOHUS_CITY_NM, fusv016508sc.get(EKK0491D010CBSMsg.SOHUS_CITY_NM));
			// 送付先大字通称名
			seikyKeiMap.put(SOHUS_OAZTSU_NM, fusv016508sc.get(EKK0491D010CBSMsg.SOHUS_OAZTSU_NM));
			// 送付先字丁目名
			seikyKeiMap.put(SOHUS_AZCHO_NM, fusv016508sc.get(EKK0491D010CBSMsg.SOHUS_AZCHO_NM));
			// 世代登録年月日時分秒
			seikyKeiMap.put(GENE_ADD_DTM, fusv016508sc.get(EKK0491D010CBSMsg.GENE_ADD_DTM));

			if (!JFUStrConst.MSKM_KBN_NEW.equals(mskmKbn))
			{
				// 送付先電話番号
				seikyKeiMap.put(SOHUS_TELNO, fusv016508sc.get("seiky_kei_no"));

				// 世代登録年月日時分秒
				seikyKeiMap.put(GENE_ADD_DTM, fusv016508sc.get("upd_dtm_seiky_kei"));
			}

			// 審査実施フラグ
			param.setData("JUDGE_JSSI_FLG", "0");

			// 審査結果更新CCは審査CCのパラメータをそのまま使う為、マッピングしない。

			// --------------------------------------------
			// 照査チェックCC・照査CCへのマッピング処理
			// --------------------------------------------

			// 照査チェックデータ
			HashMap shosaData = (HashMap)param.getData("trgt_data");

			// 照査チェックリスト
			ArrayList shosaList = (ArrayList)shosaData.get("trgt_data_list");

			// 照査チェックマップ
			HashMap shosaMap = (HashMap)shosaList.get(0);

			// 起動元コード
			shosaMap.put(JKKSvkeiShosaConstCC.KIDO_CD, "01");

			// サービス契約番号
			shosaMap.put(JKKSvkeiShosaConstCC.SVC_KEI_NO, fusv016510sc.get(EKK0121D010CBSMsg.SVC_KEI_NO));

			// SYSID
			if (shosaMap.get(JKKSvkeiShosaConstCC.SYSID) == null || "".equals(shosaMap.get(JKKSvkeiShosaConstCC.SYSID)))
			{
				shosaMap.put(JKKSvkeiShosaConstCC.SYSID, custMap.get(SYSID));
			}

			// 申込書番号
			shosaMap.put(JKKSvkeiShosaConstCC.MSKMSHO_NO, mskmDtlMap.get(MSKMSHO_NO));

			// 申込明細番号
			shosaMap.put(JKKSvkeiShosaConstCC.MSKM_DTL_NO, mskmDtlMap.get(MSKM_DTL_NO));
			
			// 申込明細一意照会呼び出し
			HashMap ekk0021a010ListMap = callSifEKK0021A010(handle, param, (String)mskmDtlMap.get(MSKM_DTL_NO));

			// 世代登録年月日時分秒
			shosaMap.put("geneAddDtm", ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.GENE_ADD_DTM));

			// --------------------------------------------
			// 整理番号発番付替部品のマッピング処理
			// --------------------------------------------
			// 整理番号発番付替マップ
			HashMap seiriNoHtbChgMap = new HashMap();

			// サービス契約番号
			seiriNoHtbChgMap.put("svc_kei_no", this.svc_kei_no);

			// SYSID
			seiriNoHtbChgMap.put("sysid", this.sysid);

			// paramに設定
			param.setData(this.seiriNoFixedText, seiriNoHtbChgMap);

			// --------------------------------------------
			// オーダ発行CCへのマッピング処理
			// --------------------------------------------
			// SODMAP
			HashMap hakkoSodMap = (HashMap)param.getData("FUSV016526CC");
			// 対象データリスト
			ArrayList trgtDataList = (ArrayList)hakkoSodMap.get(JKKHakkoSODConstCC.TRGT_DATA_LIST);
			// SODマップ1
			HashMap sodMap1 = (HashMap)trgtDataList.get(0);

			// SOD基本情報
			HashMap sodKihonInfo = new HashMap();

			// SOD基本情報.SYSID
			String sodSysId = (String)hakkoSodMap.get(JKKHakkoSODConstCC.INFO_SYSID);

			if (sodSysId == null || "".equals(sodSysId))
			{
				sodSysId = (String)custMap.get(SYSID);
			}
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_SYSID, sodSysId);
			// 申込区分
			String mskm_kbn = (String)param.getData("mskm_kbn");
			if (JFUStrConst.MSKM_KBN_NEW.equals(mskm_kbn))
			{
				// SOD基本情報.異動区分 00001(新規申込)
				sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, JKKHakkoSODConstCC.IDO_DIV_NEW);
			}
			else
			{
				// SOD基本情報.異動区分 00002(サービス追加)
				sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, JKKHakkoSODConstCC.IDO_DIV_SVCADD);
			}
			// サービス契約情報
			HashMap svcKeiInfo = new HashMap();

			// サービス契約情報.サービス契約番号
			svcKeiInfo.put(JKKHakkoSODConstCC.SVC_KEI_NO, fusv016510sc.get(EKK0121D010CBSMsg.SVC_KEI_NO));

			// サービス契約内訳情報
			HashMap svcKeiUcwkInfo = new HashMap();

			// WiMAX白ロム
			if (JFUStrConst.CD00134_A29.equals(pcrsCd))
			{
				// WiMAX用内訳登録マップ
				HashMap fusv16512sc = (HashMap)param.getData("FUSV016512SC");
				// サービス契約内訳情報.サービス契約内訳番号
				svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO, fusv16512sc.get(EKK0201D010CBSMsg.SVC_KEI_UCWK_NO));
				// サービス契約内訳情報.変更後世代登録年月日時分秒
				svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, fusv16512sc.get(EKK0201D010CBSMsg.KK0161_GENE_ADD_DTM));

				// E-mailオプション
				HashMap opSvcKeiInfo1 = new HashMap();
				HashMap fusv016513sc = (HashMap)param.getData("FUSV016513SC");
				// 変更後オプションサービス契約番号
				opSvcKeiInfo1.put(JKKHakkoSODConstCC.INFO_CHAF_OPSVKEI_NO, fusv016513sc.get(EKK0361D010CBSMsg.OP_SVC_KEI_NO));
				// 変更後世代登録年月日時分秒
				opSvcKeiInfo1.put(JKKHakkoSODConstCC.INFO_CHAF_OPSVKEI_GENE_ADD_DTM, fusv016513sc.get(EKK0361D010CBSMsg.KK0351_GENE_ADD_DTM));

				// SOD基本情報を設定
				sodMap1.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sodKihonInfo);
				// サービス契約情報を設定
				sodMap1.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svcKeiInfo);
				// サービス契約内訳情報を設定
				sodMap1.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO, svcKeiUcwkInfo);
				// オプションサービス契約情報
				sodMap1.put(JKKHakkoSODConstCC.OPSVKEI_INFO, opSvcKeiInfo1);

			}
			// WiFi
			else if (JFUStrConst.CD00134_A30.equals(pcrsCd))
			{
				// WiFi用内訳登録マップ
				HashMap fusv16511sc = (HashMap)param.getData("FUSV016511SC");
				// サービス契約内訳情報.サービス契約内訳番号
				svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO, fusv16511sc.get(EKK0201D010CBSMsg.SVC_KEI_UCWK_NO));
				// サービス契約内訳情報.変更後世代登録年月日時分秒
				svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, fusv16511sc.get(EKK0201D010CBSMsg.KK0161_GENE_ADD_DTM));
				// SOD基本情報を設定
				sodMap1.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sodKihonInfo);
				// サービス契約情報を設定
				sodMap1.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svcKeiInfo);
				// サービス契約内訳情報を設定
				sodMap1.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO, svcKeiUcwkInfo);
			}

			// --------------------------------------------
			// 指示書登録CCへのマッピング処理
			// --------------------------------------------
			sjishoMapping(param);

			// ST2-2012-0001771(ロット1取込) 2012/11/16 削除 h.iwamoto
		}
		return param;
	}

	// ST1-2012-0000961 2012/11/19 h.iwamoto START
	/**
	 * 指示書登録CCのマッピング処理を行う
	 * 
	 * <br>
	 * @param param
	 * @oaram handle
	 * @return
	 * @throws RequestParameterException 
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite sjishoMapping(IRequestParameterReadWrite param) throws RequestParameterException
	{
		// paramからマップを取得
		HashMap inMap = (HashMap)param.getData(this.cName);
		// 指示書登録CC ユーザ定義文字列取得
		String sjishoFixedText = (String)inMap.get(JFUBackyardMappingConstCC.SJISHO_FIXED_TEXT);

		// 指示書登録CC inMap
		HashMap sjishoInMap = new HashMap();

		// 連携データ区分リスト
		ArrayList renkei_data_kbn_list = new ArrayList();

		// IKK-2013-0000464 2013/03/22 Otsuka start

		// ---サービス契約データ---- start
		// サービス契約リスト
		ArrayList svc_kei_list = new ArrayList();

		// サービス契約マップ
		HashMap svc_kei_map = new HashMap();

		// サービス契約番号
		svc_kei_map.put(JKKAddSjishoConst.SVC_KEI_NO, this.svc_kei_no);

		// サービス契約リストにサービス契約マップを追加
		svc_kei_list.add(svc_kei_map);

		// ---サービス契約データ---- end

		// 新規申込時のみ実行
		if (JFUStrConst.MSKM_KBN_NEW.equals(this.mskm_kbn) )
		{
			// -------------------------------------------------
			// 01:お客様のグループ情報 (処理区分・SYSIDを設定する。)
			// -------------------------------------------------

			// 連携データ区分マップ（お客様のグループ情報）
			HashMap renkei_data_kbn_map_group = new HashMap();

			// 連携データ区分 01:お客様のグループ情報
			renkei_data_kbn_map_group.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_CUST_GRP);

			// 処理区分 01:登録
			renkei_data_kbn_map_group.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);

			// SYSID
			renkei_data_kbn_map_group.put(JKKAddSjishoConst.SYSID, this.sysid);

			// 連携データ区分リストに連携データ区分マップを設定
			renkei_data_kbn_list.add(renkei_data_kbn_map_group);
		}
		//2013/12/18　ADD-S　Yano　MVNO（本体）　追加申込でのオープン会員、ファミリー会員の対応
		else if (JFUStrConst.MSKM_KBN_ADD.equals(this.mskm_kbn) )
		{
			if (JFUStrConst.KIIN_SBT_OPEN.equals(this.kiin_sbt) || JFUStrConst.KIIN_SBT_FAMILY.equals(this.kiin_sbt))
			{
				// -------------------------------------------------
				// 01:お客様のグループ情報 (処理区分・SYSIDを設定する。)
				// -------------------------------------------------

				// 連携データ区分マップ（お客様のグループ情報）
				HashMap renkei_data_kbn_map_group = new HashMap();

				// 連携データ区分 01:お客様のグループ情報
				renkei_data_kbn_map_group.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_CUST_GRP);

				// 処理区分 01:登録
				renkei_data_kbn_map_group.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);

				// SYSID
				renkei_data_kbn_map_group.put(JKKAddSjishoConst.SYSID, this.sysid);

				// 連携データ区分リストに連携データ区分マップを設定
				renkei_data_kbn_list.add(renkei_data_kbn_map_group);
				
			}
	
		}
		//2013/12/18　ADD-E　Yano　MVNO（本体）　追加申込でのオープン会員、ファミリー会員の対応

		// -------------------------------------------------
		// 02:回線契約にかかるサービス契約番号とSYSIDとの紐付け(処理区分・サービス契約番号を設定する。)
		// -------------------------------------------------

		// 連携データ区分マップ（回線契約にかかるサービス契約番号とSYSIDとの紐付け）
		HashMap renkei_data_kbn_map_svkei = new HashMap();

		// 連携データ区分 02:回線契約にかかるサービス契約番号とSYSIDとの紐付け
		renkei_data_kbn_map_svkei.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_SYSID);

		// 処理区分 01:登録
		renkei_data_kbn_map_svkei.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);

		// 連携データ区分マップにサービス契約リストを設定
		renkei_data_kbn_map_svkei.put(JKKAddSjishoConst.SVC_KEI_LIST, svc_kei_list);

		// 連携データ区分リストに連携データ区分マップを設定
		renkei_data_kbn_list.add(renkei_data_kbn_map_svkei);

		// -------------------------------------------------
		// 06:請求契約番号(#T)の情報(処理区分・サービス契約番号を設定する。)
		// -------------------------------------------------

		// 連携データ区分マップ（請求契約番号）
		HashMap renkei_data_kbn_map_seiky = new HashMap();

		// 連携データ区分 06:請求契約番号(#T)の情報
		renkei_data_kbn_map_seiky.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_SEIKY_KEI);

		// 処理区分 01:登録
		renkei_data_kbn_map_seiky.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);

		// 連携データ区分マップにサービス契約リストを設定
		renkei_data_kbn_map_seiky.put(JKKAddSjishoConst.SVC_KEI_LIST, svc_kei_list);

		// 連携データ区分リストに連携データ区分マップを設定
		renkei_data_kbn_list.add(renkei_data_kbn_map_seiky);

		// -------------------------------------------------
		// 07:回線契約に紐付く各種サービス契約情報(処理区分・サービス契約番号を設定する。)
		// -------------------------------------------------

		// 連携データ区分マップ（回線契約に紐付く各種サービス契約情報）
		HashMap renkei_data_kbn_map_svc = new HashMap();

		// 連携データ区分 07:回線契約に紐付く各種サービス契約情報
		renkei_data_kbn_map_svc.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_ANY_KEI);

		// 処理区分 01:登録
		renkei_data_kbn_map_svc.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);

		// 連携データ区分マップにサービス契約リストを設定
		renkei_data_kbn_map_svc.put(JKKAddSjishoConst.SVC_KEI_LIST, svc_kei_list);

		// 連携データ区分リストに連携データ区分マップを設定
		renkei_data_kbn_list.add(renkei_data_kbn_map_svc);

		// 新規申込時のみ(追加時は既にマスター会員で情報の変更を行わない為不要の整理)
		if (JFUStrConst.MSKM_KBN_NEW.equals(this.mskm_kbn))
		{
			// 08:支払方法入力支援の情報は現行が登録していないためコメントアウト
			// モバイルコースがWi-Fiの場合
			//			if (JFUStrConst.MOBILE_COURSE_WIFI.equals(mobile_course))
			//			{
			//				// -------------------------------------------------
			//				// 08:支払方法入力支援の情報(処理区分・SYSID・サービス契約番号を設定する。)
			//				// -------------------------------------------------
			//
			//				// 連携データ区分マップ（支払方法入力支援の情報）
			//				HashMap renkei_data_kbn_map_payway = new HashMap();
			//
			//				// 連携データ区分 08:支払方法入力支援の情報
			//				renkei_data_kbn_map_payway.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_PAYWAY);
			//
			//				// SYSID
			//				renkei_data_kbn_map_payway.put(JKKAddSjishoConst.SYSID, this.sysid);
			//
			//				// 処理区分 01:登録
			//				renkei_data_kbn_map_payway.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);
			//
			//				// サービス契約リストを設定
			//				renkei_data_kbn_map_payway.put(JKKAddSjishoConst.SVC_KEI_LIST, svc_kei_list);
			//
			//				// 連携データ区分リストに連携データ区分マップを設定
			//				renkei_data_kbn_list.add(renkei_data_kbn_map_payway);
			//			}

			// --------------------------------------------
			// 11:お客様の基本情報
			// --------------------------------------------

			// 連携データ区分マップ
			HashMap renkei_data_kbn_map_cust = new HashMap();

			// 連携データ区分
			renkei_data_kbn_map_cust.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_CUST_INF);

			// 2013/03/26 Otsuka start
			// 処理区分
			if (JFUStrConst.KIIN_SBT_OPEN.equals(this.kiin_sbt))
			{
				// オープン会員の場合は更新
				renkei_data_kbn_map_cust.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_UPD);
			}
			else
			{
				// 新規登録
				renkei_data_kbn_map_cust.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);
			}
			// 2013/03/26 Otsuka end

			// SYSID
			renkei_data_kbn_map_cust.put(JKKAddSjishoConst.SYSID, this.sysid);

			// 更新対象項目リスト
			ArrayList upd_tg_kmk_list = new ArrayList();

			for (int i = 0; i < 4; i++)
			{
				// 更新対象項目マップ
				HashMap upd_tg_kmk_map = new HashMap();
				switch (i)
				{
					case 0:
						// 更新項目対象番号6：会員種別
						upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_6);
						break;

					case 1:
						// 更新項目対象番号8：年齢フラグ
						upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_8);
						break;

					case 2:
						// 更新項目対象番号：性別
						upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_9);
						break;
					case 3:
						// 更新項目対象番号：ISP決済不可フラグ
						upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_11);
						break;
					default:
						break;
				}

				// 更新対象項目リストに更新対象項目マップを追加
				upd_tg_kmk_list.add(upd_tg_kmk_map);
			}

			// 連携データ区分マップにサービス契約リストを設定
			renkei_data_kbn_map_cust.put(JKKAddSjishoConst.SVC_KEI_LIST, svc_kei_list);

			// 連携データ区分マップに更新対象項目リストを設定
			renkei_data_kbn_map_cust.put(JFUBackyardMappingConstCC.UPD_TG_KMK_LIST, upd_tg_kmk_list);

			// 連携データ区分リストに連携データ区分マップを設定
			renkei_data_kbn_list.add(renkei_data_kbn_map_cust);
		}
		//2013/12/18　ADD-S　Yano　MVNO（本体）　追加申込でのオープン会員、ファミリー会員の対応
		else if (JFUStrConst.MSKM_KBN_ADD.equals(this.mskm_kbn))
		{
			if (JFUStrConst.KIIN_SBT_OPEN.equals(this.kiin_sbt) || JFUStrConst.KIIN_SBT_FAMILY.equals(this.kiin_sbt))
			{
				// --------------------------------------------
				// 11:お客様の基本情報
				// --------------------------------------------

				// 連携データ区分マップ
				HashMap renkei_data_kbn_map_cust = new HashMap();

				// 連携データ区分
				renkei_data_kbn_map_cust.put(JKKAddSjishoConst.RENKEI_DATA_KBN, JKKAddSjishoConst.RENKEI_DATA_KBN_CUST_INF);

				// 処理区分
				if (JFUStrConst.KIIN_SBT_OPEN.equals(this.kiin_sbt) || JFUStrConst.KIIN_SBT_FAMILY.equals(this.kiin_sbt))
				{
					// オープン会員の場合は更新
					renkei_data_kbn_map_cust.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_UPD);
				}
				else
				{
					// 新規登録
					renkei_data_kbn_map_cust.put(JKKAddSjishoConst.TRN_KBN, JKKAddSjishoConst.TRN_KBN_ADD);
				}

				// SYSID
				renkei_data_kbn_map_cust.put(JKKAddSjishoConst.SYSID, this.sysid);

				// 更新対象項目リスト
				ArrayList upd_tg_kmk_list = new ArrayList();

				for (int i = 0; i < 4; i++)
				{
					// 更新対象項目マップ
					HashMap upd_tg_kmk_map = new HashMap();
					switch (i)
					{
						case 0:
							// 更新項目対象番号6：会員種別
							upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_6);
							break;

						case 1:
							// 更新項目対象番号8：年齢フラグ
							upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_8);
							break;

						case 2:
							// 更新項目対象番号：性別
							upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_9);
							break;
						case 3:
							// 更新項目対象番号：ISP決済不可フラグ
							upd_tg_kmk_map.put(JFUBackyardMappingConstCC.UPD_TG_KMK_NO, JFUBackyardMappingConstCC.CHANGE_PARAM_11);
							break;
						default:
							break;
					}

					// 更新対象項目リストに更新対象項目マップを追加
					upd_tg_kmk_list.add(upd_tg_kmk_map);
				}

				// 連携データ区分マップにサービス契約リストを設定
				renkei_data_kbn_map_cust.put(JKKAddSjishoConst.SVC_KEI_LIST, svc_kei_list);

				// 連携データ区分マップに更新対象項目リストを設定
				renkei_data_kbn_map_cust.put(JFUBackyardMappingConstCC.UPD_TG_KMK_LIST, upd_tg_kmk_list);

				// 連携データ区分リストに連携データ区分マップを設定
				renkei_data_kbn_list.add(renkei_data_kbn_map_cust);
				
			}
		}
		//2013/12/18　ADD-E　Yano　MVNO（本体）　追加申込でのオープン会員、ファミリー会員の対応

		// 指示書マップに連携データ区分リストを設定
		sjishoInMap.put(JKKAddSjishoConst.RENKEI_DATA_KBN_LIST, renkei_data_kbn_list);

		// paramに設定
		param.setData(sjishoFixedText, sjishoInMap);

		// IKK-2013-0000464 2013/03/22 Otsuka end

		return param;
	}

	/**
	 * 通知書登録CCのマッピング処理を行う
	 * 
	 * <br>
	 * @param param
	 * @param handle
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite tchishoMapping(IRequestParameterReadWrite param, SessionHandle handle) throws Exception
	{
		// paramよりinMapを取得する
		HashMap inMap = (HashMap)param.getData(this.cName);
		// 通知書登録CC ユーザ定義文字列
		String tchishoFixedText = (String)inMap.get(JFUBackyardMappingConstCC.TCHISHO_FIXED_TEXT);
		// サービス契約一意照会サービスインターフェイス呼び出し
		HashMap ekk0081a010ListMap = callSifEKK0081A010(handle, param);
		// 通知書登録マップ
		HashMap tchishoMap = new HashMap();
		// 通知書登録リスト
		ArrayList tchishoList = new ArrayList();
		// 通知書登録リスト子マップ
		HashMap childMap = new HashMap();

		// サービス契約番号
		childMap.put(JFUBackyardMappingConstCC.TCHISHO_SVC_KEI_NO, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.SVC_KEI_NO));
		// 料金グループコード
		childMap.put(JFUBackyardMappingConstCC.TCHISHO_PRC_GRP_CD, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.PRC_GRP_CD));
		// SYSID
		childMap.put(JFUBackyardMappingConstCC.TCHISHO_SYSID, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.SYSID));
		// 整理番号
		childMap.put(JFUBackyardMappingConstCC.TCHISHO_SEIRI_NO, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.SEIRI_NO));
		// 通知書登録リストに子マップ追加
		tchishoList.add(childMap);
		// 通知書登録マップにリストを設定
		tchishoMap.put(JFUBackyardMappingConstCC.TCHISHO_TRGT_DATA_LIST, tchishoList);
		// paramに設定
		param.setData(tchishoFixedText, tchishoMap);

		return param;
	}

	// ST1-2012-0000961 2012/11/19 h.iwamoto END

	// WiFiセット申し込み対応 2012/11/11 h.iwamoto START
	/**
	 * WiFiセット申込用マッピング処理を行う
	 * 
	 * <br>
	 * @param param
	 * @return
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite wifiSetMapping(IRequestParameterReadWrite param, SessionHandle handle) throws Exception
	{

		// --------------------------------------------
		// 審査CC・審査結果更新CCへのマッピング処理
		// --------------------------------------------

		// 即時フラグ：1 審査（即時）
		param.setData("IS_SOKUJI", JFUBackyardMappingConstCC.SOKUJI);

		// 起動元機能識別：61(その他)
		param.setData("KINO_SKBT", JFUBackyardMappingConstCC.KINO_SKBT_ELSE);

		// *****お客様*****

		// お客様一意照会サービスインターフェイス呼び出し
		HashMap eck0011a010ListMap = callSifECK0011A010(handle, param);

		// お客様リスト
		ArrayList custList = new ArrayList();
		// お客様マップ
		HashMap custMap = new HashMap();
		// SYSID
		custMap.put(SYSID, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.SYSID));
		// お客様名
		custMap.put(CUST_NM, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.CUST_NM));
		// お客様カナ名
		custMap.put(CUST_KANA, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.CUST_KANA));
		// お客様生年月日
		custMap.put(CUST_BIRTHD, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.CUST_BIRTHD));
		// 契約者電話番号
		custMap.put(KEISHA_TELNO, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_TELNO));
		// 契約者住所コード
		custMap.put(KEISHA_AD_CD, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_AD_CD));
		// 契約者郵便番号
		custMap.put(KEISHA_PCD, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_PCD));
		// 契約者都道府県名
		custMap.put(KEISHA_STATE_NM, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_STATE_NM));
		// 契約者市区町村名
		custMap.put(KEISHA_CITY_NM, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_CITY_NM));
		// 契約者大字通称名
		custMap.put(KEISHA_OAZTSU_NM, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_OAZTSU_NM));
		// 契約者字丁目名
		custMap.put(KEISHA_AZCHO_NM, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_AZCHO_NM));
		// 契約者住所手動入力フラグ
		custMap.put(KEISHA_AD_MAN_INPUT_FLG, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_AD_MAN_INPUT_FLG));
		// 契約者タイプコード
		custMap.put(KEISHA_TYPE_CD, eck0011a010ListMap.get(ECK0011A010CBSMsg1List.KEISHA_TYPE_CD));
		// リストへマップ追加
		custList.add(custMap);
		// paramに設定
		param.setData(CK0011ETMsg.getTableName(), custList);

		// *****サービス契約*****

		// サービス契約一意照会サービスインターフェイス呼び出し
		HashMap ekk0081a010ListMap = callSifEKK0081A010(handle, param);

		ArrayList svcKeiList = new ArrayList();
		HashMap svcKeiMap = new HashMap();

		// 申込明細番号取得
		String mskmDtlNo = (String)ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.MSKM_DTL_NO);

		// サービス契約番号
		svcKeiMap.put(SVC_KEI_NO, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.SVC_KEI_NO));
		// 異動区分
		svcKeiMap.put(IDO_DIV, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.IDO_DIV));
		// 面開発案件番号
		svcKeiMap.put(MENKAIHAT_ANKEN_NO, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.MENKAIHAT_ANKEN_NO));
		// サービスコード
		svcKeiMap.put(SVC_CD, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.SVC_CD));
		// 料金グループコード
		svcKeiMap.put(PRC_GRP_CD, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.PRC_GRP_CD));
		// 料金コースコード
		svcKeiMap.put(PCRS_CD, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.PCRS_CD));
		// 料金プランコード
		svcKeiMap.put(PPLAN_CD, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.PPLAN_CD));
		// 提供方式契約番号
		svcKeiMap.put(TK_HOSHIKI_KEI_NO, ekk0081a010ListMap.get(EKK0081A010CBSMsg1List.TK_HOSHIKI_KEI_NO));
		// リストへマップ追加
		svcKeiList.add(svcKeiMap);
		// paramに設定
		param.setData(KK0081ETMsg.getTableName(), svcKeiList);

		// *****申込明細*****

		// 申込明細一意照会呼び出し
		HashMap ekk0021a010ListMap = callSifEKK0021A010(handle, param, mskmDtlNo);

		ArrayList mskmDtlList = new ArrayList();
		HashMap mskmDtlMap = new HashMap();

		// 申込明細番号
		mskmDtlMap.put(MSKM_DTL_NO, ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.MSKM_DTL_NO));
		// 申込番号
		mskmDtlMap.put(MSKM_NO, ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.MSKM_NO));
		// 申込書番号
		mskmDtlMap.put(MSKMSHO_NO, ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.MSKMSHO_NO));
		// 申込年月日
		mskmDtlMap.put(MSKM_YMD, ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.MSKM_YMD));
		// リストにマップ追加
		mskmDtlList.add(mskmDtlMap);
		// paramに設定
		param.setData(KK0021ETMsg.getTableName(), mskmDtlList);

		// *****請求契約*****

		// 請求契約一意照会呼び出し
		HashMap ekk0491a010ListMap = callSifEKK0491A010(handle, param);

		ArrayList seikyKeiList = new ArrayList();
		HashMap seikyKeiMap = new HashMap();

		// 送付先カナ名
		seikyKeiMap.put(SHS_KANA, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SHS_KANA));
		// 送付先電話番号
		seikyKeiMap.put(SOHUS_TELNO, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_TELNO));
		// 請求契約番号
		seikyKeiMap.put(SEIKY_KEI_NO, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SEIKY_KEI_NO));
		// 送付先住所コード
		seikyKeiMap.put(SOHUS_AD_CD, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_AD_CD));
		// 送付先郵便番号
		seikyKeiMap.put(SOHUS_PCD, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_PCD));
		// 送付先都道府県名
		seikyKeiMap.put(SOHUS_STATE_NM, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_STATE_NM));
		// 送付先市区町村名
		seikyKeiMap.put(SOHUS_CITY_NM, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_CITY_NM));
		// 送付先大字通称名
		seikyKeiMap.put(SOHUS_OAZTSU_NM, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_OAZTSU_NM));
		// 送付先字丁目名
		seikyKeiMap.put(SOHUS_AZCHO_NM, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_AZCHO_NM));
		// 送付先住所手動入力フラグ
		seikyKeiMap.put(SOHUS_AD_MAN_INPUT_FLG, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.SOHUS_AD_MAN_INPUT_FLG));
		// 世代登録年月日時分秒
		seikyKeiMap.put(GENE_ADD_DTM, ekk0491a010ListMap.get(EKK0491A010CBSMsg1List.GENE_ADD_DTM));
		// リストにマップを追加
		seikyKeiList.add(seikyKeiMap);
		// paramに設定
		param.setData(KK0491ETMsg.getTableName(), seikyKeiList);

		// 審査実施フラグ
		param.setData("JUDGE_JSSI_FLG", "0");

		// --------------------------------------------
		// 照査チェックCC・照査CCへのマッピング処理
		// --------------------------------------------

		// 照査チェックデータ
		HashMap shosaData = new HashMap();

		// 照査チェックリスト
		ArrayList shosaList = new ArrayList();

		// 照査チェックマップ
		HashMap shosaMap = new HashMap();

		// 起動元コード
		shosaMap.put(JKKSvkeiShosaConstCC.KIDO_CD, "01");

		// サービス契約番号
		shosaMap.put(JKKSvkeiShosaConstCC.SVC_KEI_NO, this.svc_kei_no);

		// SYSID
		shosaMap.put(JKKSvkeiShosaConstCC.SYSID, this.sysid);

		// 申込書番号
		shosaMap.put(JKKSvkeiShosaConstCC.MSKMSHO_NO, ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.MSKMSHO_NO));

		// 申込明細番号
		shosaMap.put(JKKSvkeiShosaConstCC.MSKM_DTL_NO, ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.MSKM_DTL_NO));

		// 世代登録年月日時分秒(TODO 設計書にはパラメータはあるが恐らく照査CCで使われてない)
		shosaMap.put("geneAddDtm", ekk0021a010ListMap.get(EKK0021A010CBSMsg1List.GENE_ADD_DTM));

		// リストにマップ追加
		shosaList.add(shosaMap);

		// 親マップにリスト追加
		shosaData.put(JKKSvkeiShosaConstCC.TRGT_DATA_LIST, shosaList);

		// paramに設定
		param.setData(JKKSvkeiShosaConstCC.TRGT_DATA, shosaData);

		// --------------------------------------------
		// 整理番号発番付替部品のマッピング処理
		// --------------------------------------------
		// 整理番号発番付替マップ
		HashMap seiriNoHtbChgMap = new HashMap();

		// サービス契約番号
		seiriNoHtbChgMap.put("svc_kei_no", this.svc_kei_no);

		// SYSID
		seiriNoHtbChgMap.put("sysid", this.sysid);

		// paramに設定
		param.setData(this.seiriNoFixedText, seiriNoHtbChgMap);

		// --------------------------------------------
		// オーダ発行CCへのマッピング処理
		// --------------------------------------------
		// SODMAP
		HashMap hakkoSodMap = new HashMap();
		// 対象データリスト
		ArrayList hakkoSodList = new ArrayList();
		// SODマップ1
		HashMap sodMap1 = new HashMap();

		// SOD基本情報
		HashMap sodKihonInfo = new HashMap();

		// SOD基本情報.SYSID
		sodKihonInfo.put(JKKHakkoSODConstCC.INFO_SYSID, this.sysid);
		// 申込区分判定
		if (JFUStrConst.MSKM_KBN_NEW.equals(this.mskm_kbn))
		{
			// SOD基本情報.異動区分 00001(新規申込)
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, JKKHakkoSODConstCC.IDO_DIV_NEW);
		}
		else
		{
			// SOD基本情報.異動区分 00002(サービス追加)
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV, JKKHakkoSODConstCC.IDO_DIV_SVCADD);
		}
		// サービス契約情報
		HashMap svcKeiInfo = new HashMap();

		// サービス契約情報.サービス契約番号
		svcKeiInfo.put(JKKHakkoSODConstCC.SVC_KEI_NO, this.svc_kei_no);

		// サービス契約内訳情報
		HashMap svcKeiUcwkInfo = new HashMap();

		// サービス契約内訳一意照会呼び出し
		HashMap ekk0161a010Map = callSifEKK0161A010(handle, param);

		// サービス契約内訳情報.サービス契約内訳番号
		svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO, this.svc_kei_ucwk_no);
		// サービス契約内訳情報.変更後世代登録年月日時分秒
		svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, ekk0161a010Map.get(EKK0161A010CBSMsg1List.GENE_ADD_DTM));
		// SOD基本情報を設定
		sodMap1.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sodKihonInfo);
		// サービス契約情報を設定
		sodMap1.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svcKeiInfo);
		// サービス契約内訳情報を設定
		sodMap1.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO, svcKeiUcwkInfo);

		// リストにマップ追加
		hakkoSodList.add(sodMap1);
		// 親マップにリスト設定
		hakkoSodMap.put(JKKHakkoSODConstCC.TRGT_DATA_LIST, hakkoSodList);
		// 機能コード "2"固定
		hakkoSodMap.put(JCMConstants.FUNC_CODE_KEY, JKKHakkoSODConstCC.FUNC_CODE_1);
		// paramに設定
		param.setData(this.odrHakkoFixedText, hakkoSodMap);

		return param;
	}

	/**
	 * 全戸一括申込時の前処理
	 * 
	 * <br>
	 * @param param
	 * @return
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite ikkatuAddMapping(IRequestParameterReadWrite param) throws RequestParameterException
	{
		HashMap inMap = (HashMap)param.getData(this.cName);

		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}

		// ----------------------------------------------
		// SYSID取得処理
		// ----------------------------------------------

		this.sysid = (String)inMap.get(JFUBackyardMappingConstCC.SYSID);

		// ----------------------------------------------
		// サービス契約番号取得処理
		// ----------------------------------------------

		// サービス契約＜eoモバイル＞登録マップキー取得
		String svc_kei_eomoba_map_key = (String)inMap.get(JFUBackyardMappingConstCC.SVC_KEI_EOMOBA_MAP_KEY);
		// サービス契約＜eoモバイル＞登録マップ取得
		HashMap svcKeiEomobaMap = (HashMap)param.getData(svc_kei_eomoba_map_key);
		// サービス契約番号を取得
		this.svc_kei_no = (String)svcKeiEomobaMap.get(EKK0121D010CBSMsg.SVC_KEI_NO);

		// ----------------------------------------------
		// サービス契約内訳番号取得処理
		// ----------------------------------------------

		// サービス契約内訳＜eoモバイル＞登録マップキー取得
		String svc_kei_ucwk_eomoba_map_key = (String)inMap.get(JFUBackyardMappingConstCC.SVC_KEI_UCWK_EOMOBA_MAP_KEY);
		// サービス契約内訳＜eoモバイル＞登録リストキー取得
		String svc_kei_ucwk_eomoba_list_key = (String)inMap.get(JFUBackyardMappingConstCC.SVC_KEI_UCWK_EOMOBA_LIST_KEY);
		// サービス契約内訳＜eoモバイル＞登録マップ取得
		HashMap svcKeiUcwkEomobaMap = (HashMap)param.getData(svc_kei_ucwk_eomoba_map_key);
		// サービス契約内訳＜eoモバイル＞登録リスト取得
		ArrayList svcKeiUcwkEomobaList = (ArrayList)svcKeiUcwkEomobaMap.get(svc_kei_ucwk_eomoba_list_key);
		// リストから子のMap取得
		HashMap childMap = (HashMap)svcKeiUcwkEomobaList.get(0);
		// サービス契約内訳番号を取得
		this.svc_kei_ucwk_no = (String)childMap.get(EKK0201D010CBSMsg.SVC_KEI_UCWK_NO);

		// ----------------------------------------------
		// 請求契約番号取得処理
		// ----------------------------------------------

		// 支払方法引継
		String payway_continue = (String)inMap.get(JFUBackyardMappingConstCC.PAYWAY_CONTINUE);

		// inParamより請求契約番号（引継ぎ先の請求）を取得する
		String jdg_seiky_kei_no = (String)inMap.get(JFUBackyardMappingConstCC.JDG_TG_SEIKY_KEI_NO);

		if (JFUStrConst.PAYWAY_CONTINUE_CONTINUE.equals(payway_continue))
		{
			// 引継ぐ場合は引継（請求契約番号を設定）
			this.seiky_kei_no = jdg_seiky_kei_no;
		}
		else
		{
			// 請求契約登録時の作業領域取得
			HashMap workDataMap = (HashMap)workMap.get(JFUBackyardMappingConstCC.ADD_SKK_SC_WORK);
			// 請求契約番号を取得
			this.seiky_kei_no = (String)workDataMap.get(EKK0491D010CBSMsg.SEIKY_KEI_NO);
		}

		return param;
	}

	/**
	 * お客様一意照会呼び出し処理
	 * <br>
	 * @param handle ハンドル
	 * @param param リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private HashMap callSifECK0011A010(SessionHandle handle, IRequestParameterReadWrite param) throws Exception
	{

		// ユーザデータ取得
		HashMap<String, Object> inMap = new HashMap<String, Object>();

		// ＫＥＹ＿SYSID
		inMap.put(ECK0011A010CBSMsg.KEY_SYSID, this.sysid);

		// ＫＥＹ＿予約適用年月日
		inMap.put(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));

		param.setData(JFUBackyardMappingConstCC.TEMPLATE_ID_ECK0011A010, inMap);

		// 機能コード設定(2:カレント)
		setFuncCode(param, JFUBackyardMappingConstCC.TEMPLATE_ID_ECK0011A010, JPCModelConstant.FUNC_CD_2);

		// 検索エラーなし設定
		ignoreSearchError(param, JFUBackyardMappingConstCC.TEMPLATE_ID_ECK0011A010);

		// サービスIF実行
		executeSC(handle, param, JFUBackyardMappingConstCC.TEMPLATE_ID_ECK0011A010, JFUBackyardMappingConstCC.TEMPLATE_ID_ECK0011A010,
				JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_ECK0011A010, JFUBackyardMappingConstCC.IN_COLUMN_LIST_ECK0011A010, BLANK);

		// 情報取得
		HashMap eck0011a010map = (HashMap)param.getData(JFUBackyardMappingConstCC.TEMPLATE_ID_ECK0011A010);
		// 親マップからリスト取得
		ArrayList eck0011a010list = (ArrayList)eck0011a010map.get(JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_ECK0011A010);
		// リストから子マップ取得
		HashMap eck0011a010ListMap = (HashMap)eck0011a010list.get(0);

		return eck0011a010ListMap;
	}

	/**
	 * サービス契約一意照会
	 * <br>
	 * @param handle ハンドル
	 * @param param リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private HashMap callSifEKK0081A010(SessionHandle handle, IRequestParameterReadWrite param) throws Exception
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = new HashMap<String, Object>();

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, this.svc_kei_no);

		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));

		param.setData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0081A010, inMap);

		// 機能コード設定(2:カレント)
		setFuncCode(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0081A010, JPCModelConstant.FUNC_CD_2);

		// 検索エラーなし設定
		ignoreSearchError(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0081A010);

		// サービスIF実行
		executeSC(handle, param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0081A010, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0081A010,
				JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0081A010, JFUBackyardMappingConstCC.IN_COLUMN_LIST_EKK0081A010, BLANK);

		// 情報取得
		HashMap outOyaMap = (HashMap)param.getData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0081A010);
		// 親マップからリスト取得
		ArrayList outList = (ArrayList)outOyaMap.get(JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0081A010);
		// リストから子マップ取得
		HashMap outChildMap = (HashMap)outList.get(0);

		return outChildMap;
	}

	/**
	 * 申込明細一意照会
	 * <br>
	 * @param handle ハンドル
	 * @param param リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private HashMap callSifEKK0021A010(SessionHandle handle, IRequestParameterReadWrite param, String mskm_dtl_no) throws Exception
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = new HashMap<String, Object>();

		// ＫＥＹ＿申込明細番号
		inMap.put(EKK0021A010CBSMsg.KEY_MSKM_DTL_NO, mskm_dtl_no);

		param.setData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0021A010, inMap);

		// 機能コード設定(2:カレント)
		setFuncCode(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0021A010, JPCModelConstant.FUNC_CD_2);

		// 検索エラーなし設定
		ignoreSearchError(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0021A010);

		// サービスIF実行
		executeSC(handle, param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0021A010, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0021A010,
				JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0021A010, JFUBackyardMappingConstCC.IN_COLUMN_LIST_EKK0021A010, BLANK);

		// 情報取得
		HashMap outOyaMap = (HashMap)param.getData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0021A010);
		// 親マップからリスト取得
		ArrayList outList = (ArrayList)outOyaMap.get(JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0021A010);
		// リストから子マップ取得
		HashMap outChildMap = (HashMap)outList.get(0);

		return outChildMap;
	}

	/**
	 * サービス契約内訳一意照会
	 * <br>
	 * @param handle ハンドル
	 * @param param リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private HashMap callSifEKK0161A010(SessionHandle handle, IRequestParameterReadWrite param) throws Exception
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = new HashMap<String, Object>();

		// ＫＥＹ＿サービス契約内訳番号
		inMap.put(EKK0161A010CBSMsg.KEY_SVC_KEI_UCWK_NO, this.svc_kei_ucwk_no);

		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0161A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));

		param.setData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0161A010, inMap);

		// 機能コード設定(2:カレント)
		setFuncCode(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0161A010, JPCModelConstant.FUNC_CD_2);

		// 検索エラーなし設定
		ignoreSearchError(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0161A010);

		// サービスIF実行
		executeSC(handle, param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0161A010, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0161A010,
				JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0161A010, JFUBackyardMappingConstCC.IN_COLUMN_LIST_EKK0161A010, BLANK);

		// 情報取得
		HashMap outOyaMap = (HashMap)param.getData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0161A010);
		// 親マップからリスト取得
		ArrayList outList = (ArrayList)outOyaMap.get(JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0161A010);
		// リストから子マップ取得
		HashMap outChildMap = (HashMap)outList.get(0);

		return outChildMap;
	}

	/**
	 * 請求契約一意照会
	 * <br>
	 * @param handle ハンドル
	 * @param param リクエストパラメータ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private HashMap callSifEKK0491A010(SessionHandle handle, IRequestParameterReadWrite param) throws Exception
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = new HashMap<String, Object>();

		// ＫＥＹ＿サービス契約内訳番号
		inMap.put(EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO, this.seiky_kei_no);

		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0491A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));

		param.setData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0491A010, inMap);

		// 機能コード設定(2:カレント)
		setFuncCode(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0491A010, JPCModelConstant.FUNC_CD_2);

		// 検索エラーなし設定
		ignoreSearchError(param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0491A010);

		// サービスIF実行
		executeSC(handle, param, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0491A010, JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0491A010,
				JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0491A010, JFUBackyardMappingConstCC.IN_COLUMN_LIST_EKK0491A010, BLANK);

		// 情報取得
		HashMap outOyaMap = (HashMap)param.getData(JFUBackyardMappingConstCC.TEMPLATE_ID_EKK0491A010);
		// 親マップからリスト取得
		ArrayList outList = (ArrayList)outOyaMap.get(JFUBackyardMappingConstCC.TEMPLATE_ID_DETAIL_EKK0491A010);
		// リストから子マップ取得
		HashMap outChildMap = (HashMap)outList.get(0);

		return outChildMap;
	}

	// WiFiセット申し込み対応 2012/11/11 h.iwamoto END

	/**
	 * 作業エリア
	 */
	@SuppressWarnings("null")
	private String getWorkMapValue(IRequestParameterReadWrite param, String key, String fixText) throws RequestParameterException
	{
		// 作業領域の取得
		Map workMap = param.getMappingWorkArea();

		HashMap inMap = null;
		/* 作業項目情報 */
		if (workMap != null)
		{
			inMap = (HashMap)workMap.get(fixText);
		}
		else
		{
			inMap = null;
		}

		String result = null;
		if (inMap != null)
		{
			result = (String)inMap.get(key);
		}

		if ("".equals(result))
		{
			result = null;
		}

		return result;
	}
	
}
