/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKSvkeiShosaNgCC
*   ソースファイル名：JKKSvkeiShosaNgCC.java
*   作成者          ：富士通
*   日付            ：2011年11月05日
*＜機能概要＞
*   サービス契約照査NG部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/11/05   FJ）        新規作成
*   v5.00.00    2013/01/21   FJ）藤本    【ANK-1272-00-00】【スマートバリュー】フォロー対応
 *  v9.00.00    2014/04/16   FJ）江藤    【ANK-2054-00-00】スマートリンク端末補償
*   v61.00.00	2023/07/12	 FJ)西窪	 【ANK-4315-00-00】【eo定期】 eoホームゲートウェイ導入対応
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKKeiIdoKhCheckConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKSmtvlCancelConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKSvkeiShosaNgConstCC;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
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.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;

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.EKK0091A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0101A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0111A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0121A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0141A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0171A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0181A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0201A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0221A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B022CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0351B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0361A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0371A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0381A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0391A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0401B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0401B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0411A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0421A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0431A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1091B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2811A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2811A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2811B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2811B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2811B011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2811B011CBSMsg1List;

/**
 * サービス契約照査NG処理です。<p>
 * <br>
 * @author FJ
 */
public class JKKSvkeiShosaNgCC extends AbstractCommonComponent
{
	/** 申込明細No */
	/** サービスコード　01：インターネット */
	public static final String SVC_CD_NET = "01";
	
	/** サービスコード　02：電話 */
	public static final String SVC_CD_TEL = "02";
	
	/** サービスコード　03：テレビ */
	public static final String SVC_CD_TV = "03";
	
	/** オプションサービスコード：Eメール */
	public static final String OP_SVC_CD_EMAIL = "B001";
	
	/** 料金グループコード　02：eo光ネットホームタイプ */
	public static final String PRC_GRP_CD_HOME = "02";
	
	/** 料金グループコード　03：eo光ネットメゾンタイプ */
	public static final String PRC_GRP_CD_MEZON = "03";
	
	/** 料金グループコード　04：eo光ネットマンションタイプ */
	public static final String PRC_GRP_CD_MANS = "04";
	
	/** 料金グループコード　05：eoADSL(eAccess) */
	public static final String PRC_GRP_CD_EACCESS = "05";
	
	/** 料金グループコード　06：eoADSL(フレッツ) */
	public static final String PRC_GRP_CD_FU = "06";
	
	/** 料金グループコード　07：eoモバイル(Wi-Fi) */
	public static final String PRC_GRP_CD_WIFI = "07";
	
	/** 料金グループコード　08：eoモバイル(EM) */
	public static final String PRC_GRP_CD_EM = "08";
	
	/** 料金グループコード　09：eoモバイル(UQ-WiMAX) */
	public static final String PRC_GRP_CD_WIMAX = "09";
	
	/** 料金グループコード　10：eo光電話 */
	public static final String PRC_GRP_CD_HTEL = "10";
	
	/** 料金グループコード　11：eo光テレビ(K-CAT) */
	public static final String PRC_GRP_CD_TV_KCAT = "11";
	
	/** 料金グループコード　12：eo光テレビ(KCN) */
	public static final String PRC_GRP_CD_TV_KCN = "12";
	
	/** 料金グループコード　13：eo光テレビ(再送信) */
	public static final String PRC_GRP_CD_TV_SSS = "13";
	
	/** サービス種別コード　01：eo光ネット */
	public static final int SVC_SBT_CD_HNET = 1;
	
	/** サービス種別コード　02：eo光TV */
	public static final int SVC_SBT_CD_HTV = 2;
	
	/** サービス種別コード　03：eo光電話 */
	public static final int SVC_SBT_CD_HTEL = 3;
	
	/** サービス種別コード　04：eoモバイル */
	public static final int SVC_SBT_CD_MOBA = 4;
	
	/** サービス種別コード　05：eoADSL */
	public static final int SVC_SBT_CD_ADSL = 5; 
	
	/** 割引種別コード　1：一時費用割引 */
	public static final String WRIB_SBT_CD_ICHIWR = "1";
	
	/** 割引種別コード　2：月額費用割引 */
	public static final String WRIB_SBT_CD_GTGK = "2";
	
	/** 申込明細一意照会 */
	private static final String MAP_KEY_EKK0021A010 = "EKK0021A010";
	
	/** サービス契約一意照会 */
	private static final String MAP_KEY_EKK0081A010 = "EKK0081A010";
	
	/** サービス契約<eo光ネット>一意照会 */
	private static final String MAP_KEY_EKK0091A010 = "EKK0091A010";
	
	/** サービス契約<eo光TV>一意照会 */
	private static final String MAP_KEY_EKK0101A010 = "EKK0101A010";
	
	/** サービス契約<eo光電話>一意照会 */
	private static final String MAP_KEY_EKK0111A010 = "EKK0111A010";
	
	/** サービス契約<eoモバイル>一意照会 */
	private static final String MAP_KEY_EKK0121A010 = "EKK0121A010";
	
	/** サービス契約<eoADSL>一意照会 */
	private static final String MAP_KEY_EKK0141A010 = "EKK0141A010";
	
	/** サービス契約内訳一覧照会 */
	private static final String MAP_KEY_EKK0161B004 = "EKK0161B004";
	
	/** サービス契約内訳<eo光ネット>一意照会 */
	private static final String MAP_KEY_EKK0171A010 = "EKK0171A010";
	
	/** サービス契約内訳<eo光TV>一意照会 */
	private static final String MAP_KEY_EKK0181A010 = "EKK0181A010";
	
	/** サービス契約内訳<eo光電話>一意照会 */
	private static final String MAP_KEY_EKK0191A010 = "EKK0191A010";
	
	/** サービス契約内訳<eoモバイル>一意照会 */
	private static final String MAP_KEY_EKK0201A010 = "EKK0201A010";
	
	/** サービス契約内訳<eoADSL>一意照会 */
	private static final String MAP_KEY_EKK0221A010 = "EKK0221A010";
	
	/** オプションサービス契約一覧照会（サービス契約番号） */
	private static final String MAP_KEY_EKK0351B002 = "EKK0351B002";
	
	/** オプションサービス契約<ISP>一意照会 */
	private static final String MAP_KEY_EKK0361A010 = "EKK0361A010";
	
	/** オプションサービス契約<TV>一意照会 */
	private static final String MAP_KEY_EKK0381A010 = "EKK0381A010";
	
	/** オプションサービス契約<電話>一意照会 */
	private static final String MAP_KEY_EKK0371A010 = "EKK0371A010";
	
	/** オプションサービス契約<サポート>一意照会 */
	private static final String MAP_KEY_EKK0391A010 = "EKK0391A010";
	
	/** サブオプションサービス契約一覧照会 */
	private static final String MAP_KEY_EKK0401B001 = "EKK0401B001";
	
	/** サブオプションサービス契約＜ISP＞一意照会 */
	private static final String MAP_KEY_EKK0411A010 = "EKK0411A010";
	
	/** サブオプションサービス契約＜TV＞一意照会 */
	private static final String MAP_KEY_EKK0421A010 = "EKK0421A010";
	
	/** サブオプションサービス契約＜電話＞一意照会 */
	private static final String MAP_KEY_EKK0431A010 = "EKK0431A010";
	
	/** 機器提供サービス契約一覧照会（サービス契約番号） */
	private static final String MAP_KEY_EKK0341B002 = "EKK0341B002";
	
	/** 機器提供サービス契約一意照会 */
	private static final String MAP_KEY_EKK0341A010 = "EKK0341A010";
	
	/** 申込明細照査・後続業務依頼 */
	private static final String MAP_KEY_EKK0021C060 = "EKK0021C060";

	/** サービス契約＜eo光ネット＞照査 */
	private static final String MAP_KEY_EKK0091C010 = "EKK0091C010";

	/** サービス契約＜eo光TV＞照査 */
	private static final String MAP_KEY_EKK0101C010 = "EKK0101C010";

	/** サービス契約＜eo光電話＞照査 */
	private static final String MAP_KEY_EKK0111C010 = "EKK0111C010";

	/** サービス契約＜eoモバイル＞照査 */
	private static final String MAP_KEY_EKK0121C010 = "EKK0121C010";

	/** サービス契約＜eoADSL＞照査 */
	private static final String MAP_KEY_EKK0141C010 = "EKK0141C010";

	/** サービス契約内訳<eo光ネット>照査 */
	private static final String MAP_KEY_EKK0171C010 = "EKK0171C010";

	/** サービス契約内訳<eo光TV>照査 */
	private static final String MAP_KEY_EKK0181C010 = "EKK0181C010";

	/** サービス契約内訳<eo光電話>照査 */
	private static final String MAP_KEY_EKK0191C010 = "EKK0191C010";

	/** サービス契約内訳<eoモバイル>照査 */
	private static final String MAP_KEY_EKK0201C010 = "EKK0201C010";

	/** サービス契約内訳＜eoADSL＞照査 */
	private static final String MAP_KEY_EKK0221C010 = "EKK0221C010";

	/** オプションサービス契約<ISP>照査 */
	private static final String MAP_KEY_EKK0361C010 = "EKK0361C010";

	/** オプションサービス契約<TV>照査 */
	private static final String MAP_KEY_EKK0381C010 = "EKK0381C010";

	/** オプションサービス契約<電話>照査 */
	private static final String MAP_KEY_EKK0371C010 = "EKK0371C010";

	/** オプションサービス契約<サポート>照査 */
	private static final String MAP_KEY_EKK0391C010 = "EKK0391C010";
	
	/** サブオプションサービス契約<ISP>照査 */
	private static final String MAP_KEY_EKK0411C020 = "EKK0411C020";

	/** サブオプションサービス契約<TV>照査 */
	private static final String MAP_KEY_EKK0421C010 = "EKK0421C010";

	/** サブオプションサービス契約<電話>照査 */
	private static final String MAP_KEY_EKK0431C010 = "EKK0431C010";

	/** 機器提供サービス契約照査 */
	private static final String MAP_KEY_EKK0341C030 = "EKK0341C030";

	/** 割引サービス契約一覧照会 */
	private static final String MAP_KEY_EKK0451B001 = "EKK0451B001";

	/** 割引サービス契約一意照会 */
	private static final String MAP_KEY_EKK0451A010 = "EKK0451A010";
	
// AMK-1578-00-00 2013-12-03 ADD START
	/** 機器オプションサービス契約一意照会 */
	private static final String MAP_KEY_EKK2811A010 = "EKK2811A010";

	/** 機器オプションサービス契約一覧照会（回線経由） */
	private static final String MAP_KEY_EKK2811B011 = "EKK2811B011";

	/** 機器オプションサービス契約照査 */
	private static final String MAP_KEY_EKK2811C030 = "EKK2811C030";
// AMK-1578-00-00 2013-12-03 ADD END
	
//↓↓↓2012-04-24無効　巻@断面合わせ↓↓↓
//	/** 割引サービス契約＜一時費用割引＞照査 */
//	private static final String MAP_KEY_EKK0461C010 = "EKK0461C010";
//
//	/** 割引サービス契約＜月額費用割引＞照査 */
//	private static final String MAP_KEY_EKK0471C020 = "EKK0471C020";
//↑↑↑2012-04-24無効　巻@断面合わせ↑↑↑
	
	// 20140416 ANK-2054-00-00 ADD START
	/**  機器オプションサービス契約一覧照会（機器提供ＳＶ） */
	private static final String MAP_KEY_EKK2811B010 = "EKK2811B010";
	// 20140416 ANK-2054-00-00 ADD END

	/** サービス契約ステータス(受付済み) */
	private static final String SVC_KEI_STAT_UK_ZUMI = "010";

	/** 機器提供サービスコード 多機能ルーター */
	public static final String KKTK_SVC_C024 = "C024";
	
	// ANK-4315-00-00 ADD START
	/** 機器提供サービスコード HGW */
	public static final String KKTK_SVC_C025 = "C025";
	// ANK-4315-00-00 ADD END

	//↓↓↓2012-02-16追加↓↓↓
	/**
	 * 進捗一覧照会
	 * @since 2012-02-16 ST2-2012-0000185対応
	 */
	private static final String MAP_KEY_EKK1091B001 = "EKK1091B001";
	//↑↑↑2012-02-16追加↑↑↑

	/** 
	 * 照会系サービスインタフェースのリスト(1回目)
	 * 
	 */
	private static final String[] SVIF_MAP_KEY_SHOKAI_LIST = {
		MAP_KEY_EKK0021A010,	MAP_KEY_EKK0081A010,
		MAP_KEY_EKK0161B004,	MAP_KEY_EKK0351B002,
		MAP_KEY_EKK0341B002,	MAP_KEY_EKK0451B001
// AMK-1578-00-00 2013-12-03 ADD START
		, MAP_KEY_EKK2811B011
// AMK-1578-00-00 2013-12-03 ADD END
	};
	
	/** 
	 * 照会系サービスインタフェースのリスト(2回目)
	 * 照会系サービスインタフェース(1回目)の実行結果から他の照会系サービスインタフェースをCallするサービスインタフェースのリスト
	 * 
	 */
	private static final String[] SVIF_MAP_KEY_SHOKAI2_LIST = {
		MAP_KEY_EKK0391A010,	MAP_KEY_EKK0401B001,
		MAP_KEY_EKK0341A010,	MAP_KEY_EKK0451A010
		, MAP_KEY_EKK1091B001
	};
	
	/** 
	 * 照会系サービスインタフェースのリスト(eo光ネット)
	 * 
	 */
	private static final String[] SVIF_MAP_KEY_SHOKAI_HNET_LIST = {
		MAP_KEY_EKK0091A010,	MAP_KEY_EKK0171A010,	
		MAP_KEY_EKK0361A010,	MAP_KEY_EKK0411A010
// AMK-1578-00-00 2013-12-03 ADD START
		,MAP_KEY_EKK2811A010
// AMK-1578-00-00 2013-12-03 ADD END
	};
	
	/** 
	 * 照会系サービスインタフェースのリスト(eo光Tv)
	 * 
	 */
	private static final String[] SVIF_MAP_KEY_SHOKAI_HTV_LIST = {
		MAP_KEY_EKK0101A010,	MAP_KEY_EKK0181A010,
		MAP_KEY_EKK0381A010,	MAP_KEY_EKK0421A010
	};
	
	/** 
	 * 照会系サービスインタフェースのリスト(光電話)
	 * 
	 */
	private static final String[] SVIF_MAP_KEY_SHOKAI_HTEL_LIST = {
		MAP_KEY_EKK0111A010,	MAP_KEY_EKK0191A010,
		MAP_KEY_EKK0371A010,	MAP_KEY_EKK0431A010
// AMK-1578-00-00 2013-12-03 ADD START
		,MAP_KEY_EKK2811A010
// AMK-1578-00-00 2013-12-03 ADD END
	};
	
	/** 
	 * 照会系サービスインタフェースのリスト(モバイル)
	 * 
	 */
	private static final String[] SVIF_MAP_KEY_SHOKAI_MOBA_LIST = {
		MAP_KEY_EKK0121A010,	MAP_KEY_EKK0201A010,
		MAP_KEY_EKK0361A010,	MAP_KEY_EKK0411A010
	};
	
	/** 
	 * 照会系サービスインタフェースのリスト(ADSL)
	 * 
	 */
	private static final String[] SVIF_MAP_KEY_SHOKAI_ADSL_LIST = {
		MAP_KEY_EKK0141A010,	MAP_KEY_EKK0221A010,
		MAP_KEY_EKK0361A010,	MAP_KEY_EKK0411A010
	};
	
	/** 一意照会、一覧照会のサービスインタフェース呼び出しで使用するマッパー群 */
	private JKKSvkeiShosaNgShokaiMapperCC shokaiMapper = null;
	
	/** 照査NGの場合にサービスインタフェース呼び出しで使用するマッパー群 */
	private JKKSvkeiShosaShosaNgMapperCC shosaNgMapper = null;

	/** 排他対応更新年月日管理マッパー **/
	private JKKExclusiveMapper kkExclusiveMapper = null;
	
	/**
	 * マッパーを作成する処理です。
	 * 
	 * <br>
	 */
	private void createMapper()
	{
		shokaiMapper = new JKKSvkeiShosaNgShokaiMapperCC();
		shosaNgMapper = new JKKSvkeiShosaShosaNgMapperCC();
		kkExclusiveMapper = new JKKExclusiveMapper();
	}
	
	/**
	 * サービス契約照査NG処理です。
	 * 
	 * サービス契約照査NGでインプットとして必要なデータを
	 * 一意照会、一覧照会より取得してから
	 * サービス契約照査NG処理をCallします。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite runSvkeiShosaNg(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	throws Throwable
	{
		HashMap userMap = null;
		
		// マッパーを作成する
		createMapper();
		
		// ユーザデータ情報取得
		userMap = (HashMap)param.getData(fixedText);

		List trgtDataList = (List)userMap.get(JKKSvkeiShosaNgConstCC.TRGT_DATA_LIST);
		
		// ユーザデータ情報に設定されたサービス契約情報分、サービス契約照査処理を行う
		for (int i = 0; i < trgtDataList.size(); i++)
		{
			HashMap<String, Object> wkRsltShokaiMap = null;
			HashMap<String, Object> rsltShokai = null;
			HashMap<String, Object> wkRsltShokai = null;
			HashMap<String, Object> wkMap = null;
			String svcCd = null;
			String prcGrpCd = null;
			String idoDiv = null;
			int svcSbtCd = 0;
			CAANMsg[] workEKK0081A010 = null;
			
			// 初期処理
			// 一意照会、一覧照会のマッピング1回目
			wkRsltShokaiMap = editMapShokai(param, fixedText, i);
			
			// 一意照会、一覧照会の実行
			rsltShokai = runShokai(param, handle, wkRsltShokaiMap, SVIF_MAP_KEY_SHOKAI_LIST);
			
			// 一意照会、一覧照会のマッピング2回目（一意照会、一覧照会の１回目の結果を受けての照会）
			wkRsltShokaiMap = editMapShokai2(param, fixedText, i, rsltShokai);
			
			// 一意照会、一覧照会のマッピング2回目の実行結果
			wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, SVIF_MAP_KEY_SHOKAI2_LIST);
			rsltShokai.putAll(wkRsltShokai);
			
			workEKK0081A010 = getWorkParentData(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0081A010);
			
			svcCd = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SVC_CD);
			prcGrpCd = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.PRC_GRP_CD);
			idoDiv = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.IDO_DIV);
			svcSbtCd = getSvcSbtCd(svcCd, prcGrpCd);
			kkExclusiveMapper.initParentLastUpdDtm("KK0081", workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.LAST_UPD_DTM));

			//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
			//申込の排他制御用更新年月日時分秒をセットする
			CAANMsg[] workEKK0021A010 = getWorkParentData(EKK0021A010CBSMsg.EKK0021A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0021A010);
			String kk0011_upd_dtm = workEKK0021A010[0].getString(EKK0021A010CBSMsg1List.LAST_UPD_DTM);
			kkExclusiveMapper.initParentLastUpdDtm("KK0011", kk0011_upd_dtm);

			// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//			//ＳＹＳＩＤ
//			String sysid = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SYSID);
			// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑
			//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑

			// サービス種別を判定してサービス別に必要な一意照会を実行する
			// サービス種別判定
			switch (svcSbtCd) 
			{
				case SVC_SBT_CD_HNET:
					// eo光ネット
					wkRsltShokaiMap = editMapShokaiHNet(param, fixedText, i, rsltShokai);
					wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, SVIF_MAP_KEY_SHOKAI_HNET_LIST);
					rsltShokai.putAll(wkRsltShokai);
					break;
	
				case SVC_SBT_CD_HTV:
					// eo光テレビ
					wkRsltShokaiMap = editMapShokaiHTv(param, fixedText, i, rsltShokai);
					wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, SVIF_MAP_KEY_SHOKAI_HTV_LIST);
					rsltShokai.putAll(wkRsltShokai);
					break;
	
				case SVC_SBT_CD_HTEL:
					// eo光電話
					wkRsltShokaiMap = editMapShokaiHTel(param, fixedText, i, rsltShokai);
					wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, SVIF_MAP_KEY_SHOKAI_HTEL_LIST);
					rsltShokai.putAll(wkRsltShokai);
					break;
	
				case SVC_SBT_CD_MOBA:
					// eoモバイル
					wkRsltShokaiMap = editMapShokaiMoba(param, fixedText, i, rsltShokai);
					wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, SVIF_MAP_KEY_SHOKAI_MOBA_LIST);
					rsltShokai.putAll(wkRsltShokai);
					break;
	
				default:
					// eoADSL
					wkRsltShokaiMap = editMapShokaiAdsl(param, fixedText, i, rsltShokai);
					wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, SVIF_MAP_KEY_SHOKAI_ADSL_LIST);
					rsltShokai.putAll(wkRsltShokai);
					break;
					
			}
			
			// サービス種別判定
			switch (svcSbtCd) 
			{
				case SVC_SBT_CD_HNET:
					// eo光ネット
					wkMap = editMapShosaNgHNet(param, fixedText, i, rsltShokai, idoDiv);
					
					runShosaNgHNet(handle, param, fixedText, i, wkMap);
					
					break;
	
				case SVC_SBT_CD_HTV:
					// eo光テレビ
					wkMap = editMapShosaNgHTv(param, fixedText, i, rsltShokai, idoDiv);
					
					runShosaNgHTv(handle, param, fixedText, i, wkMap);
					
					break;
	
				case SVC_SBT_CD_HTEL:
					// eo光電話
					wkMap = editMapShosaNgHTel(param, fixedText, i, rsltShokai, idoDiv);
					
					runShosaNgHTel(handle, param, fixedText, i, wkMap);
					
					break;
	
				case SVC_SBT_CD_MOBA:
					// eoモバイル
					wkMap = editMapShosaNgMoba(param, fixedText, i, rsltShokai, idoDiv);
					
					runShosaNgMoba(handle, param, fixedText, i, wkMap);
					
					break;
	
				default:
					// eoADSL
					wkMap = editMapShosaNgAdsl(param, fixedText, i, rsltShokai, idoDiv);
					
					runShosaNgAdsl(handle, param, fixedText, i, wkMap);
				
					break;
					
			}
			
			// 照査NGの場合の共通の照査NG処理
			// 20140416 ANK-2054-00-00 MOD START
//			wkMap = editMapShosaNgCmn(param, fixedText, i, rsltShokai, idoDiv, svcSbtCd);
			wkMap = editMapShosaNgCmn(handle, param, fixedText, i, rsltShokai, idoDiv, svcSbtCd);
			// 20140416 ANK-2054-00-00 MOD END
			
			
			runShosaNgCmn(handle, param, fixedText, i, wkMap);
			
			// AMK-1578-00-00 2013-12-03 ADD START
			// ネットと電話の場合のみ多機能ルータへの考慮として対となる機器オプションを照査取消する
			if (SVC_SBT_CD_HNET == svcSbtCd || SVC_SBT_CD_HTEL == svcSbtCd) {
				
				List<CAANMsg> wkCaanMsgList = null;
				
				HashMap<String, Object> rslt = null;
				
				ArrayList<HashMap> workEKK2811A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK2811A010);
				
				ArrayList wkMapArray = null;
				
				wkMapArray = new ArrayList();
				if (workEKK2811A010Array != null) 
				{
					for (int a = 0; a < workEKK2811A010Array.size(); a++)
					{
						CAANMsg[] wkTenplates = getWorkData(EKK2811A010CBSMsg.EKK2811A010CBSMSG1LIST, (Map)workEKK2811A010Array.get(a));
						for (int j = 0; j < wkTenplates.length; j++)
						{
							CAANMsg childTemplate = wkTenplates[j];
							
							String kkop_svc_cd = (String)childTemplate.getString(EKK2811A010CBSMsg1List.KKOP_SVC_CD);
							String kkop_svc_kei_stat = (String)childTemplate.getString(EKK2811A010CBSMsg1List.KKOP_SVC_KEI_STAT);
							String rentai_flg = (String)childTemplate.getString(EKK2811A010CBSMsg1List.KIKI_RNTAI_KEI_CHGECHU_FLG);
							HashMap<String, Object> rsltShosaMap = new HashMap();
							
							// 対が電話の場合
							if (SVC_SBT_CD_HNET == svcSbtCd){
								if ("G02".equals(kkop_svc_cd) && "010".equals(kkop_svc_kei_stat) && "1".equals(rentai_flg))
								{
									wkCaanMsgList = shosaNgMapper.editInMsgEKK2811C030(param, fixedText, j, childTemplate, idoDiv);
									rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
									wkMapArray.add(rslt);
									// 対のサービスを照査NGする
									rsltShosaMap.put(MAP_KEY_EKK2811C030, wkMapArray);
									runShosa(handle, param, fixedText, j, rsltShosaMap, MAP_KEY_EKK2811C030);
								}
							}
							// 対がネットの場合
							else if (SVC_SBT_CD_HTEL == svcSbtCd) {
								if ("G01".equals(kkop_svc_cd) && "010".equals(kkop_svc_kei_stat) && "1".equals(rentai_flg))
								{
									wkCaanMsgList = shosaNgMapper.editInMsgEKK2811C030(param, fixedText, j, childTemplate, idoDiv);
									rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
									wkMapArray.add(rslt);
									// 対のサービスを照査NGする
									rsltShosaMap.put(MAP_KEY_EKK2811C030, wkMapArray);
									runShosa(handle, param, fixedText, j, rsltShosaMap, MAP_KEY_EKK2811C030);
								}
							}
						}
					}
				}
			}
			// AMK-1578-00-00 2013-12-03 ADD END
			
			// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//			//↓↓↓2012-04-23追加　巻@　指示書CC取込み対応↓↓↓
//			String svc_kei_no = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SVC_KEI_NO);
//			//連携データ区分 02 ：回線契約にかかるサービス契約番号とSYSIDとの紐付け情報
//			JKKBpCommon.putAxMRenkeiDataKbn(
//					param, JKKSvkeiShosaNgConstCC.SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_SYSID, JKKAddSjishoConst.TRN_KBN_UPD, 
//					new String[]{svc_kei_no}, sysid);
//			//連携データ区分 07 ：回線契約に紐づく各種サービス契約の情報
//			JKKBpCommon.putAxMRenkeiDataKbn07(
//					param, JKKSvkeiShosaNgConstCC.SJISHO_MAP, JKKAddSjishoConst.TRN_KBN_UPD, 
//					new String[]{svc_kei_no}, null);
//			//↑↑↑2012-04-23追加　巻@　指示書CC取込み対応↑↑↑
			// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑

//↓↓↓2012-04-24無効　巻@断面合わせ↓↓↓
//			// 割引サービス契約の照査NG（サービス契約に紐づく割引の照査NGを行う）
//			editMapWribSvcShosa(handle, param, fixedText, i, rsltShokai);
//↑↑↑2012-04-24無効　巻@断面合わせ↑↑↑
			
			//↓↓↓2012-02-16追加↓↓↓
			CAANMsg[] workEKK1091B001 = getWorkParentData(EKK1091B001CBSMsg.EKK1091B001CBSMSG1LIST, rsltShokai, MAP_KEY_EKK1091B001);
			//↑↑↑2012-02-16追加↑↑↑
			// 進捗登録
			wkMap = editInMsgCmn(param, shosaNgMapper.editInMsgEKK1091D010(param, fixedText, i, idoDiv, workEKK1091B001[0]).get(0));
			runPgr(handle, param, fixedText, i, wkMap);
			
			// ANK-1272-00-00 スマートバリューキャンセル処理追加 ADD START
			// スマートバリューキャンセル処理
			runCancelSmtvl(handle, param, fixedText, i, workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SVC_KEI_NO), idoDiv);
			// ANK-1272-00-00 スマートバリューキャンセル処理追加 ADD END

		}
		
		//戻り値：正常
		param.setControlMapData(SCControlMapKeys.RETURN_CODE, "0000");		//2012-02-16追加

		return param;
	}
	
	/**
	 * サービスインタフェースの実行処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param rsltMap マッピング後のデータ
	 * @param mapKey マップキーリスト
	 * @return 実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> runShokai(IRequestParameterReadWrite param, SessionHandle handle, HashMap<String, Object> rsltMap, String[] mapKey)
	throws Throwable
	{
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		HashMap<String, Object>rsltList = new HashMap();

		for (int i = 0; i < mapKey.length; i++)
		{
			ArrayList wkMapArray = (ArrayList)rsltMap.get(mapKey[i]);
			ArrayList wkRsltArray = new ArrayList();
			if (wkMapArray != null)
			{
				for (int j = 0; j < wkMapArray.size(); j++)
				{
					Map<?, ?> rslt = null;
					HashMap<String, Object> wkMap = (HashMap)wkMapArray.get(j);
					if (wkMap != null)
					{
						rslt = scCall.run(wkMap, handle);
						errChk(param, rslt);
					}
					wkRsltArray.add(rslt);
				}
			}
			rsltList.put(mapKey[i], wkRsltArray);
		}

		return rsltList;
	}

	/**
	 * 進捗登録の実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param wkMap 進捗登録実行時に使用するマップ
	 * @return void
	 * @throws Throwable 
	 */
	private void runPgr(SessionHandle handle, 
										IRequestParameterReadWrite param, 
										String fixedText,
										int userDataIndex,
										HashMap<String, Object> wkMap) 
	throws Throwable
	{
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		Map<?, ?> rslt = null;
		rslt = scCall.run(wkMap, handle);
		
		shosaNgMapper.editResultRPEKK1091D010(rslt, param, fixedText, userDataIndex);
		errChk(param, rslt);
	}
	
	/**
	 * 照査NGの実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltMap 照査NG実行時に使用するマップのリスト
	 * @param mapKey rsltMapで対象のデータを取得するためのマップキー
	 * @return void
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private void runShosa(SessionHandle handle, 
										IRequestParameterReadWrite param, 
										String fixedText,
										int userDataIndex,
										HashMap<String, Object> rsltMap, 
										String mapKey) 
	throws Throwable
	{
		// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//		String sysid = (String) rsltMap.get(JKKSvkeiShosaNgConstCC.SYSID);
//		
//		ArrayList<String> svcKeiUcwkStack = new ArrayList<String>();
//		ArrayList<String> opSvcKeiStackPop = new ArrayList<String>();
//		ArrayList<String> opSvcKeiStackWeb = new ArrayList<String>();
//		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
		// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑

		ArrayList wkMapArray = null;
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない。
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		wkMapArray = (ArrayList)rsltMap.get(mapKey);
		if (wkMapArray != null)
		{
			for (int i = 0; i < wkMapArray.size(); i++)
			{
				Map<?, ?> rslt = null;
				HashMap<String, Object> wkMap = (HashMap)wkMapArray.get(i);
				if (wkMap != null)
				{
					kkExclusiveMapper.mergeSetLastUpdDtm(wkMap);
					rslt = scCall.run(wkMap, handle);
					kkExclusiveMapper.mergeGetLastUpdDtm(wkMap);
					
					if (mapKey.equals(MAP_KEY_EKK0021C060))
					{
						// 申込明細照査・後続業務依頼
						shosaNgMapper.editResultRPEKK0021C060(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0091C010))
					{
						// サービス契約＜eo光ネット＞照査
						shosaNgMapper.editResultRPEKK0091C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0101C010))
					{
						// サービス契約＜eo光TV＞照査
						shosaNgMapper.editResultRPEKK0101C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0111C010))
					{
						// サービス契約＜eo光電話＞照査
						shosaNgMapper.editResultRPEKK0111C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0121C010))
					{
						// サービス契約＜eoモバイル＞照査
						shosaNgMapper.editResultRPEKK0121C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0141C010))
					{
						// サービス契約＜eoADSL＞照査
						shosaNgMapper.editResultRPEKK0141C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0171C010))
					{
						// サービス契約内訳<eo光ネット>照査
						shosaNgMapper.editResultRPEKK0171C010(rslt, param, fixedText, userDataIndex);

						// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//						//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//						String ninshoId = getServiceIfOutputItem(rslt, EKK0171C010CBSMsg.ISP_NINSHO_ID);
//						if (null != ninshoId && 0 < ninshoId.length())
//						{
//							String svcKeiUcwkNo = getServiceIfOutputItem(rslt, EKK0171C010CBSMsg.SVC_KEI_UCWK_NO);
//							svcKeiUcwkStack.add(svcKeiUcwkNo);
//						}
//						//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
						// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑
					}
					else if (mapKey.equals(MAP_KEY_EKK0181C010))
					{
						// サービス契約内訳<eo光TV>照査
						shosaNgMapper.editResultRPEKK0181C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0191C010))
					{
						// サービス契約内訳<eo光電話>照査
						shosaNgMapper.editResultRPEKK0191C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0201C010))
					{
						// サービス契約内訳<eoモバイル>照査
						shosaNgMapper.editResultRPEKK0201C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0221C010))
					{
						// サービス契約内訳＜eoADSL＞照査
						shosaNgMapper.editResultRPEKK0221C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0361C010))
					{
						// オプションサービス契約<ISP>照査
						shosaNgMapper.editResultRPEKK0361C010(rslt, param, fixedText, userDataIndex);

						// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//						//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//						String opSvcKeiNo = getServiceIfOutputItem(rslt, EKK0361C010CBSMsg.OP_SVC_KEI_NO);
//
//						String popId = getServiceIfOutputItem(rslt, EKK0361C010CBSMsg.POP_ID);
//						if (null != popId && 0 < popId.length())
//						{
//							opSvcKeiStackPop.add(opSvcKeiNo);
//						}
//
//						String webId = getServiceIfOutputItem(rslt, EKK0361C010CBSMsg.WEB_ID);
//						if (null != webId && 0 < webId.length())
//						{
//							opSvcKeiStackWeb.add(opSvcKeiNo);
//						}
//						//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
						// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑
					}
					else if (mapKey.equals(MAP_KEY_EKK0381C010))
					{
						// オプションサービス契約<TV>照査
						shosaNgMapper.editResultRPEKK0381C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0371C010))
					{
						// オプションサービス契約<電話>照査
						shosaNgMapper.editResultRPEKK0371C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0391C010))
					{
						// オプションサービス契約<サポート>照査
						shosaNgMapper.editResultRPEKK0391C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0411C020))
					{
						// サブオプションサービス契約<ISP>照査
						shosaNgMapper.editResultRPEKK0411C020(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0421C010))
					{
						// サブオプションサービス契約<TV>照査
						shosaNgMapper.editResultRPEKK0421C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0431C010))
					{
						// サブオプションサービス契約<電話>照査
						shosaNgMapper.editResultRPEKK0431C010(rslt, param, fixedText, userDataIndex);
					}
					else if (mapKey.equals(MAP_KEY_EKK0341C030))
					{
						// 機器提供サービス契約照査
						shosaNgMapper.editResultRPEKK0341C030(rslt, param, fixedText, userDataIndex);
					}
					// ANK-1578-00-00 2013/12/14 ADD START
					else if (mapKey.equals(MAP_KEY_EKK2811C030))
					{
						// 機器オプションサービス契約照査
						shosaNgMapper.editResultRPEKK2811C030(rslt, param, fixedText, userDataIndex);
					}
					// ANK-1578-00-00 2013/12/14 ADD END
					errChk(param, rslt);
				}
			}
		}

		// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//		String[] noArr1 = new String[]{}, noArr2 = new String[]{}, noArr3 = new String[]{};
//		
//		//連携データ区分 05 ：認証ＩＤの情報
//		if (0 < svcKeiUcwkStack.size())
//		{
//			JKKBpCommon.putAxMRenkeiDataKbn(param, JKKSvkeiShosaNgConstCC.SJISHO_MAP, 
//					JKKAddSjishoConst.RENKEI_DATA_KBN_NINSHO_ID, JKKAddSjishoConst.TRN_KBN_ADD, 
//					svcKeiUcwkStack.toArray(noArr1), sysid);
//		}
//
//		//連携データ区分 03 ：POPIDの情報
//		if (0 < opSvcKeiStackPop.size())
//		{
//			JKKBpCommon.putAxMRenkeiDataKbn(
//					param, JKKSvkeiShosaNgConstCC.SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_POPID, JKKAddSjishoConst.TRN_KBN_ADD, 
//					opSvcKeiStackPop.toArray(noArr2), sysid);
//		}
//
//		//連携データ区分 04 ：WEBIDの情報
//		if (0 < opSvcKeiStackWeb.size())
//		{
//			JKKBpCommon.putAxMRenkeiDataKbn(
//					param, JKKSvkeiShosaNgConstCC.SJISHO_MAP, JKKAddSjishoConst.RENKEI_DATA_KBN_WEBID, JKKAddSjishoConst.TRN_KBN_ADD, 
//					opSvcKeiStackWeb.toArray(noArr3), sysid);
//		}
//		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
		// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑
	}

	/**
	 * 照査NG時の共通の実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltMap 照査NG実行時に使用するマップのリスト
	 * @return void
	 * @throws Throwable 
	 */
	private void runShosaNgCmn(SessionHandle handle, 
								IRequestParameterReadWrite param, 
								String fixedText, 
								int userDataIndex,
								HashMap<String, Object> rsltMap) 
	throws Throwable
	{
		// 申込明細照査・後続業務依頼
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0021C060);
		
		// オプションサービス契約<サポート>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0391C010);
		
		// 機器提供サービス契約照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0341C030);
		
		// 20140416 ANK-2054-00-00 ADD START
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK2811C030);
		// 20140416 ANK-2054-00-00 ADD END
	}
	
	/**
	 * 照査NG時のeo光ネットの実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltMap 照査NG実行時に使用するマップのリスト
	 * @return void
	 * @throws Throwable 
	 */
	private void runShosaNgHNet(SessionHandle handle, 
								IRequestParameterReadWrite param, 
								String fixedText, 
								int userDataIndex,
								HashMap<String, Object> rsltMap) 
	throws Throwable
	{
		// サービス契約＜eo光ネット＞照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0091C010);

		// サービス契約内訳<eo光ネット>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0171C010);
		
		// オプションサービス契約<ISP>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0361C010);
		
		// サブオプションサービス契約<ISP>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0411C020);
		
// AMK-1578-00-00 2013-12-03 ADD START
		// 機器オプションサービス契約照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK2811C030);
// AMK-1578-00-00 2013-12-03 ADD END
	}

	/**
	 * 照査NG時のeo光Tvの実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltMap 照査NG実行時に使用するマップのリスト
	 * @return void
	 * @throws Throwable 
	 */
	private void runShosaNgHTv(SessionHandle handle, 
								IRequestParameterReadWrite param, 
								String fixedText, 
								int userDataIndex,
								HashMap<String, Object> rsltMap) 
	throws Throwable
	{
		// サービス契約＜eo光TV＞照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0101C010);

		// サービス契約内訳<eo光TV>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0181C010);

		// オプションサービス契約<TV>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0381C010);

		// サブオプションサービス契約<TV>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0421C010);
	}

	/**
	 * 照査NG時のeo光電話の実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltMap 照査NG実行時に使用するマップのリスト
	 * @return void
	 * @throws Throwable 
	 */
	private void runShosaNgHTel(SessionHandle handle, 
								IRequestParameterReadWrite param, 
								String fixedText, 
								int userDataIndex,
								HashMap<String, Object> rsltMap) 
	throws Throwable
	{
		// サービス契約＜eo光電話＞照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0111C010);

		// サービス契約内訳<eo光電話>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0191C010);

		// オプションサービス契約<電話>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0371C010);

		// サブオプションサービス契約<電話>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0431C010);

// AMK-1578-00-00 2013-12-03 ADD START
		// 機器オプションサービス契約照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK2811C030);
// AMK-1578-00-00 2013-12-03 ADD END
	}

	/**
	 * 照査NG時のeoモバイルの実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltMap 照査NG実行時に使用するマップのリスト
	 * @return void
	 * @throws Throwable 
	 */
	private void runShosaNgMoba(SessionHandle handle, 
								IRequestParameterReadWrite param, 
								String fixedText, 
								int userDataIndex,
								HashMap<String, Object> rsltMap) 
	throws Throwable
	{
		// サービス契約＜eoモバイル＞照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0121C010);

		// サービス契約内訳<eoモバイル>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0201C010);

		// オプションサービス契約<ISP>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0361C010);

		// サブオプションサービス契約<ISP>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0411C020);
	}

	/**
	 * 照査NG時のeoADSLの実行処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltMap 照査NG実行時に使用するマップのリスト
	 * @return void
	 * @throws Throwable 
	 */
	private void runShosaNgAdsl(SessionHandle handle, 
								IRequestParameterReadWrite param, 
								String fixedText, 
								int userDataIndex,
								HashMap<String, Object> rsltMap) 
	throws Throwable
	{
		// サービス契約＜ADSL＞照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0141C010);

		// サービス契約内訳<eoADSL>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0221C010);

		// オプションサービス契約<ISP>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0361C010);

		// サブオプションサービス契約<ISP>照査
		runShosa(handle, param, fixedText, userDataIndex, rsltMap, MAP_KEY_EKK0411C020);
	}
	
	// ANK-1272-00-00 スマートバリューキャンセル処理追加 ADD START 
	/**
	 * スマートバリューキャンセル処理
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param svcKeiNo サービス契約番号
	 * @param idoDiv 異動区分
	 * @throws Throwable 
	 */
	private void runCancelSmtvl(SessionHandle handle 
								, IRequestParameterReadWrite param 
								, String fixedText 
								, int userDataIndex
								, String svcKeiNo
								, String idoDiv
								) 
	throws Throwable
	{
		HashMap<String, Object> trgtData = new HashMap<String, Object>();

		// サービス契約番号
		trgtData.put(JKKSmtvlCancelConstCC.SVC_KEI_NO, svcKeiNo);
		// 異動区分
		trgtData.put(JKKSmtvlCancelConstCC.IDO_DIV, idoDiv);

		String smtvlCancelFixedText ="JKKSmtvlCancel";

		param.setData(smtvlCancelFixedText, trgtData);

		JKKBpCommon.cancelSmtvl(handle, param, trgtData, fixedText);
	}
	// ANK-1272-00-00 スマートバリューキャンセル処理追加 ADD END 

	
	/**
	 * 一意照会、一覧照会のマッピング処理です。（1回目）
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @return 一意照会、一覧照会のマッピングデータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShokai(IRequestParameterReadOnly param, String fixedText, int userDataIndex)
	throws Throwable
	{
		HashMap rsltShokaiMap = new HashMap();
		HashMap<String, Object> rslt = null;
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;

		// 申込明細一意照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0021A010(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0021A010, wkMapArray);
		
		// サービス契約一意照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0081A010(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0081A010, wkMapArray);
		
		// サービス契約内訳一覧照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0161B004(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0161B004, wkMapArray);
		
		// オプションサービス契約一覧照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0351B002(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0351B002, wkMapArray);
		
		// 機器提供サービス契約一覧照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0341B002(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0341B002, wkMapArray);
		
		// 割引サービス契約一覧照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0451B001(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0451B001, wkMapArray);
		
// AMK-1578-00-00 2013-12-03 ADD START
		// 機器オプションサービス契約一覧照会（回線経由）
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK2811B011(param, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK2811B011, wkMapArray);
// AMK-1578-00-00 2013-12-03 ADD END
		
		return rsltShokaiMap;
	}

	/**
	 * 一意照会、一覧照会のマッピング処理です。（2回目）
	 * 一意照会、一覧照会（1回目）の実行結果から他の一意照会、一覧照会を実施する際のマッピング処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 既に実施された一意照会、一覧照会の実行結果
	 * @return 一意照会、一覧照会のマッピングデータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShokai2(IRequestParameterReadOnly param, 
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai)
	throws Throwable
	{
		HashMap rsltShokaiMap = new HashMap();
		HashMap<String, Object> rslt = null;
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		CAANMsg[] workEKK0351B002 = null;	// オプションサービス契約一覧照会
		CAANMsg[] workEKK0341B002 = null;	// 機器提供サービス契一覧照会
		CAANMsg[] workEKK0451B001 = null;	// 割引サービス契約一覧照会
		CAANMsg[] workEKK2811B011 = null;	// 機器オプションサービス照会
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0351B002 = getWorkParentData(EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0351B002);
		workEKK0341B002 = getWorkParentData(EKK0341B002CBSMsg.EKK0341B002CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0341B002);
		workEKK0451B001 = getWorkParentData(EKK0451B001CBSMsg.EKK0451B001CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0451B001);
		workEKK2811B011 = getWorkParentData(EKK2811B011CBSMsg.EKK2811B011CBSMSG1LIST, rsltShokai, MAP_KEY_EKK2811B011);
		
		// オプションサービス契約<サポート>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0351B002 != null)
		{
			for (int i = 0; i < workEKK0351B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0351B002[i];
				
				if(isChkStat(childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0391A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0391A010, wkMapArray);
		
		// 機器提供サービス契約一意照会(サービス契約番号)
		wkMapArray = new ArrayList();
		if (workEKK0341B002 != null)
		{
			for (int i = 0; i < workEKK0341B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0341B002[i];
				
				if(isChkStat(childTemplate.getString(EKK0341B002CBSMsg1List.KKTK_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0341A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		// 機器提供サービス契約一意照会(サービス契約番号)
		List<String> kktkSvcKeiNoList = new ArrayList<String>();
		if (workEKK2811B011 != null)
		{
			for (int i = 0; i < workEKK2811B011.length; i++)
			{
				CAANMsg childTemplate = workEKK2811B011[i];
				
				String kktkSvcKeiNo = childTemplate.getString(EKK2811B011CBSMsg1List.KKTK_SVC_KEI_NO);
				
				if(!kktkSvcKeiNoList.contains(kktkSvcKeiNo))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0341A010(param, fixedText, userDataIndex, kktkSvcKeiNo);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
					
					kktkSvcKeiNoList.add(kktkSvcKeiNo);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0341A010, wkMapArray);
		
		// サブオプションサービス契約一覧照会
		wkMapArray = new ArrayList();
		if (workEKK0351B002 != null) 
		{
			for (int i = 0; i < workEKK0351B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0351B002[i];
				
				if(isChkStat(childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0401B001(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0401B001, wkMapArray);
		
		// 割引サービス契約一意照会
		wkMapArray = new ArrayList();
		if (workEKK0451B001 != null)
		{
			for (int i = 0; i < workEKK0451B001.length; i++)
			{
				CAANMsg childTemplate = workEKK0451B001[i];
				
				if(isChkStat(childTemplate.getString(EKK0451B001CBSMsg1List.WRIB_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0451A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0451A010, wkMapArray);

		//↓↓↓2012-02-16追加↓↓↓	ST2-2012-0000185対応
		CAANMsg[] workEKK0081A010 = getWorkParentData(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0081A010);
		String idoDiv = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.IDO_DIV);

		// 進捗一覧照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK1091B001(param, fixedText, userDataIndex, idoDiv);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK1091B001, wkMapArray);
		//↑↑↑2012-02-16追加↑↑↑

		return rsltShokaiMap;
	}

	/**
	 * 一意照会、一覧照会のマッピング処理です。（eo光ネット個別分）
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 既に実施された一意照会、一覧照会の実行結果
	 * @return 一意照会、一覧照会のマッピングデータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShokaiHNet(IRequestParameterReadOnly param, 
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai)
	throws Throwable
	{
		HashMap rsltShokaiMap = new HashMap();
		HashMap<String, Object> rslt = null;
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		CAANMsg[] workEKK0161B004 = null;	// サービス契約内訳一覧照会
		CAANMsg[] workEKK0351B002 = null;	// オプションサービス契約一覧照会
		ArrayList<HashMap> workEKK0401B001Array = null; // サブオプションサービス契約一覧照会
// AMK-1578-00-00 2013-12-03 ADD START
		CAANMsg[] workEKK2811B011 = null; // 機器オプションサービス契約一覧照会（回線経由）
// AMK-1578-00-00 2013-12-03 ADD END
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0161B004 = getWorkParentData(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0161B004);
		workEKK0351B002 = getWorkParentData(EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0351B002);
		workEKK0401B001Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0401B001);
// AMK-1578-00-00 2013-12-03 ADD START
		workEKK2811B011 = getWorkParentData(EKK2811B011CBSMsg.EKK2811B011CBSMSG1LIST, rsltShokai, MAP_KEY_EKK2811B011);
// AMK-1578-00-00 2013-12-03 ADD END

		// サービス契約<eo光ネット>一意照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0091A010(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0091A010, wkMapArray);
		
		// サービス契約内訳<eo光ネット>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0161B004 != null) 
		{
			for (int i = 0; i < workEKK0161B004.length; i++)
			{
				CAANMsg childTemplate = workEKK0161B004[i];
				
				if(isChkStat(childTemplate.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0171A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		
		rsltShokaiMap.put(MAP_KEY_EKK0171A010, wkMapArray);
		
		// オプションサービス契約<ISP>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0351B002 != null) 
		{
			for (int i = 0; i < workEKK0351B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0351B002[i];
				
				if(isChkStat(childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0361A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0361A010, wkMapArray);
		
		// サブオプションサービス契約＜ISP＞一意照会
		wkMapArray = new ArrayList();
		if (workEKK0401B001Array != null) 
		{
			for (int i = 0; i < workEKK0401B001Array.size(); i++)
			{
				CAANMsg[] workEKK0401B001 = getWorkData(EKK0401B001CBSMsg.EKK0401B001CBSMSG1LIST, (Map)workEKK0401B001Array.get(i));
				for (int j = 0; j < workEKK0401B001.length; j++)
				{
					CAANMsg childTemplate = workEKK0401B001[j];
					
					if(isChkStat(childTemplate.getString(EKK0401B001CBSMsg1List.SBOP_SVC_KEI_STAT)))
					{
						wkCaanMsgList = shokaiMapper.editInMsgEKK0411A010(param, fixedText, userDataIndex, childTemplate);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0411A010, wkMapArray);

// AMK-1578-00-00 2013-12-03 ADD START
		// 機器オプションサービス契約一意照会
		wkMapArray = new ArrayList();
		if (workEKK2811B011 != null) {
			for (int i = 0; i < workEKK2811B011.length; i++) {
				CAANMsg childTemplate = workEKK2811B011[i];
				
				wkCaanMsgList = shokaiMapper.editInMsgEKK2811A010(
						param, childTemplate);
				rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
				wkMapArray.add(rslt);
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK2811A010, wkMapArray);
// AMK-1578-00-00 2013-12-03 ADD END

		return rsltShokaiMap;
	}

	/**
	 * 一意照会、一覧照会のマッピング処理です。（eo光Tv個別分）
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai param内の業務データのインデックス
	 * @return 一意照会、一覧照会のマッピングデータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShokaiHTv(IRequestParameterReadOnly param, 
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai)
	throws Throwable
	{
		HashMap rsltShokaiMap = new HashMap();
		HashMap<String, Object> rslt = null;
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		CAANMsg[] workEKK0161B004 = null;	// サービス契約内訳一覧照会
		CAANMsg[] workEKK0351B002 = null;	// オプションサービス契約一覧照会
		ArrayList<HashMap> workEKK0401B001Array = null; // サブオプションサービス契約一覧照会

		// 一意照会、一覧照会の結果データを取得
		workEKK0161B004 = getWorkParentData(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0161B004);
		workEKK0351B002 = getWorkParentData(EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0351B002);
		workEKK0401B001Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0401B001);

		// サービス契約<eo光TV>一意照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0101A010(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0101A010, wkMapArray);
		
		// サービス契約内訳<eo光TV>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0161B004 != null) 
		{
			for (int i = 0; i < workEKK0161B004.length; i++)
			{
				CAANMsg childTemplate = workEKK0161B004[i];
				
				if(isChkStat(childTemplate.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0181A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0181A010, wkMapArray);
		
		// オプションサービス契約<TV>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0351B002 != null) 
		{
			for (int i = 0; i < workEKK0351B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0351B002[i];
				
				if(isChkStat(childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0381A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0381A010, wkMapArray);
		
		// サブオプションサービス契約＜TV＞一意照会
		wkMapArray = new ArrayList();
		if (workEKK0401B001Array != null) 
		{
			for (int i = 0; i < workEKK0401B001Array.size(); i++)
			{
				CAANMsg[] workEKK0401B001 = getWorkData(EKK0401B001CBSMsg.EKK0401B001CBSMSG1LIST, (Map)workEKK0401B001Array.get(i));
				for (int j = 0; j < workEKK0401B001.length; j++)
				{
					CAANMsg childTemplate = workEKK0401B001[j];

					if(isChkStat(childTemplate.getString(EKK0401B001CBSMsg1List.SBOP_SVC_KEI_STAT)))
					{
						wkCaanMsgList = shokaiMapper.editInMsgEKK0421A010(param, fixedText, userDataIndex, childTemplate);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0421A010, wkMapArray);

		return rsltShokaiMap;
	}

	/**
	 * 一意照会、一覧照会のマッピング処理です。（eo光電話個別分）
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 既に実施された一意照会、一覧照会の実行結果
	 * @return 一意照会、一覧照会のマッピングデータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShokaiHTel(IRequestParameterReadOnly param, 
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai)
	throws Throwable
	{
		HashMap rsltShokaiMap = new HashMap();
		HashMap<String, Object> rslt = null;
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		CAANMsg[] workEKK0161B004 = null;	// サービス契約内訳一覧照会
		CAANMsg[] workEKK0351B002 = null;	// オプションサービス契約一覧照会
		ArrayList<HashMap> workEKK0401B001Array = null; // サブオプションサービス契約一覧照会
// AMK-1578-00-00 2013-12-03 ADD START
		CAANMsg[] workEKK2811B011 = null; // 機器オプションサービス契約一覧照会（回線経由）
// AMK-1578-00-00 2013-12-03 ADD END

		// 一意照会、一覧照会の結果データを取得
		workEKK0161B004 = getWorkParentData(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0161B004);
		workEKK0351B002 = getWorkParentData(EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0351B002);
		workEKK0401B001Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0401B001);
// AMK-1578-00-00 2013-12-03 ADD START
		workEKK2811B011 = getWorkParentData(EKK2811B011CBSMsg.EKK2811B011CBSMSG1LIST, rsltShokai, MAP_KEY_EKK2811B011);
// AMK-1578-00-00 2013-12-03 ADD END

		// サービス契約<eo光電話>一意照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0111A010(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0111A010, wkMapArray);
		
		// サービス契約内訳<eo光電話>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0161B004 != null) 
		{
			for (int i = 0; i < workEKK0161B004.length; i++)
			{
				CAANMsg childTemplate = workEKK0161B004[i];
				
				if(isChkStat(childTemplate.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0191A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0191A010, wkMapArray);
		
		// オプションサービス契約<電話>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0351B002 != null) 
		{
			for (int i = 0; i < workEKK0351B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0351B002[i];

				if(isChkStat(childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0371A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0371A010, wkMapArray);
		
		// サブオプションサービス契約＜電話＞一意照会
		wkMapArray = new ArrayList();
		if (workEKK0401B001Array != null) 
		{
			for (int i = 0; i < workEKK0401B001Array.size(); i++)
			{
				CAANMsg[] workEKK0401B001 = getWorkData(EKK0401B001CBSMsg.EKK0401B001CBSMSG1LIST, (Map)workEKK0401B001Array.get(i));
				for (int j = 0; j < workEKK0401B001.length; j++)
				{
					CAANMsg childTemplate = workEKK0401B001[j];
					
					if(isChkStat(childTemplate.getString(EKK0401B001CBSMsg1List.SBOP_SVC_KEI_STAT)))
					{
						wkCaanMsgList = shokaiMapper.editInMsgEKK0431A010(param, fixedText, userDataIndex, childTemplate);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0431A010, wkMapArray);

// AMK-1578-00-00 2013-12-03 ADD START
		// 機器オプションサービス契約一意照会
		wkMapArray = new ArrayList();
		if (workEKK2811B011 != null) {
			for (int i = 0; i < workEKK2811B011.length; i++) {
				CAANMsg childTemplate = workEKK2811B011[i];
				
				wkCaanMsgList = shokaiMapper.editInMsgEKK2811A010(
						param, childTemplate);
				rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
				wkMapArray.add(rslt);
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK2811A010, wkMapArray);
// AMK-1578-00-00 2013-12-03 ADD END


		return rsltShokaiMap;
	}

	/**
	 * 一意照会、一覧照会のマッピング処理です。（eoモバイル個別分）
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 既に実施された一意照会、一覧照会の実行結果
	 * @return 一意照会、一覧照会のマッピングデータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShokaiMoba(IRequestParameterReadOnly param, 
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai)
	throws Throwable
	{
		HashMap rsltShokaiMap = new HashMap();
		HashMap<String, Object> rslt = null;
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		CAANMsg[] workEKK0161B004 = null;	// サービス契約内訳一覧照会
		CAANMsg[] workEKK0351B002 = null;	// オプションサービス契約一覧照会
		ArrayList<HashMap> workEKK0401B001Array = null; // サブオプションサービス契約一覧照会

		// 一意照会、一覧照会の結果データを取得
		workEKK0161B004 = getWorkParentData(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0161B004);
		workEKK0351B002 = getWorkParentData(EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0351B002);
		workEKK0401B001Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0401B001);

		// サービス契約<eoモバイル>一意照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0121A010(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0121A010, wkMapArray);
		
		// サービス契約内訳<eoモバイル>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0161B004 != null) 
		{
			for (int i = 0; i < workEKK0161B004.length; i++)
			{
				CAANMsg childTemplate = workEKK0161B004[i];
				if(isChkStat(childTemplate.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0201A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0201A010, wkMapArray);
		
		// オプションサービス契約<ISP>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0351B002 != null) 
		{
			for (int i = 0; i < workEKK0351B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0351B002[i];
	
				if(isChkStat(childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0361A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0361A010, wkMapArray);
		
		// サブオプションサービス契約＜ISP＞一意照会
		wkMapArray = new ArrayList();
		if (workEKK0401B001Array != null) 
		{
			for (int i = 0; i < workEKK0401B001Array.size(); i++)
			{
				CAANMsg[] workEKK0401B001 = getWorkData(EKK0401B001CBSMsg.EKK0401B001CBSMSG1LIST, (Map)workEKK0401B001Array.get(i));
				for (int j = 0; j < workEKK0401B001.length; j++)
				{
					CAANMsg childTemplate = workEKK0401B001[j];
					wkCaanMsgList = shokaiMapper.editInMsgEKK0411A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0411A010, wkMapArray);

		return rsltShokaiMap;
	}

	/**
	 * 一意照会、一覧照会のマッピング処理です。（eoAdsl個別分）
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 既に実施された一意照会、一覧照会の実行結果
	 * @return 一意照会、一覧照会のマッピングデータ
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShokaiAdsl(IRequestParameterReadOnly param, 
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai)
	throws Throwable
	{
		HashMap rsltShokaiMap = new HashMap();
		HashMap<String, Object> rslt = null;
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		CAANMsg[] workEKK0161B004 = null;	// サービス契約内訳一覧照会
		CAANMsg[] workEKK0351B002 = null;	// オプションサービス契約一覧照会
		ArrayList<HashMap> workEKK0401B001Array = null; // サブオプションサービス契約一覧照会

		// 一意照会、一覧照会の結果データを取得
		workEKK0161B004 = getWorkParentData(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0161B004);
		workEKK0351B002 = getWorkParentData(EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0351B002);
		workEKK0401B001Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0401B001);

		// サービス契約<eoADSL>一意照会
		wkMapArray = new ArrayList();
		wkCaanMsgList = shokaiMapper.editInMsgEKK0141A010(param, fixedText, userDataIndex);
		rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
		wkMapArray.add(rslt);
		rsltShokaiMap.put(MAP_KEY_EKK0141A010, wkMapArray);
		
		// サービス契約内訳<eoADSL>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0161B004 != null) 
		{
			for (int i = 0; i < workEKK0161B004.length; i++)
			{
				CAANMsg childTemplate = workEKK0161B004[i];
				if(isChkStat(childTemplate.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0221A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0221A010, wkMapArray);
		
		// オプションサービス契約<ISP>一意照会
		wkMapArray = new ArrayList();
		if (workEKK0351B002 != null) 
		{
			for (int i = 0; i < workEKK0351B002.length; i++)
			{
				CAANMsg childTemplate = workEKK0351B002[i];
				if(isChkStat(childTemplate.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT)))
				{
					wkCaanMsgList = shokaiMapper.editInMsgEKK0361A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0361A010, wkMapArray);
		
		// サブオプションサービス契約＜ISP＞一意照会
		wkMapArray = new ArrayList();
		if (workEKK0401B001Array != null) 
		{
			for (int i = 0; i < workEKK0401B001Array.size(); i++)
			{
				CAANMsg[] workEKK0401B001 = getWorkData(EKK0401B001CBSMsg.EKK0401B001CBSMSG1LIST, (Map)workEKK0401B001Array.get(i));
				for (int j = 0; j < workEKK0401B001.length; j++)
				{
					CAANMsg childTemplate = workEKK0401B001[j];
					wkCaanMsgList = shokaiMapper.editInMsgEKK0411A010(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShokaiMap.put(MAP_KEY_EKK0411A010, wkMapArray);

		return rsltShokaiMap;
	}

	/**
	 * 照査NG時のサービス共通のマッピング処理です。
	 * <br>
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @param idoDiv 異動区分
	 * @return 実行結果
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
// 20140416 ANK-2054-00-00 MOD START
//	private HashMap<String, Object> editMapShosaNgCmn(IRequestParameterReadWrite param,
	private HashMap<String, Object> editMapShosaNgCmn(
													SessionHandle handle,
													IRequestParameterReadWrite param,
// 20140416 ANK-2054-00-00 MOD END
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai,
													String idoDiv,
													int svcSbtCd)
// 20140416 ANK-2054-00-00 MOD START
//	throws RequestParameterException
	throws Throwable
// 20140416 ANK-2054-00-00 MOD START
	{
		HashMap<String, Object> rsltShosaMap = new HashMap();
		HashMap<String, Object> rslt = null;
		ArrayList<HashMap> workEKK0021A010Array = null;	// 申込明細一意照会
		ArrayList<HashMap> workEKK0391A010Array = null;	// オプションサービス契約<サポート>一意照会
		ArrayList<HashMap> workEKK0341A010Array = null;	// 機器提供サービス契約一意照会
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0021A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0021A010);
		workEKK0391A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0391A010);
		workEKK0341A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0341A010);

		// オプションサービス契約<サポート>照査
		wkMapArray = new ArrayList();
		if (workEKK0391A010Array != null) 
		{
			for (int i = 0; i < workEKK0391A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0391A010CBSMsg.EKK0391A010CBSMSG1LIST, (Map)workEKK0391A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0391C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0391C010, wkMapArray);

		// 機器提供サービス契約照査
		wkMapArray = new ArrayList();
		if (workEKK0341A010Array != null) 
		{
			for (int i = 0; i < workEKK0341A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0341A010CBSMsg.EKK0341A010CBSMSG1LIST, (Map)workEKK0341A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					
					// ANK-4315-00-00 MOD START
					//if(childTemplate.getString(EKK0341A010CBSMsg1List.KKTK_SVC_CD).equals(KKTK_SVC_C024))
					if(childTemplate.getString(EKK0341A010CBSMsg1List.KKTK_SVC_CD).equals(KKTK_SVC_C024)
							|| childTemplate.getString(EKK0341A010CBSMsg1List.KKTK_SVC_CD).equals(KKTK_SVC_C025))
					// ANK-4315-00-00 MOD END
					{
						// サービス種別コードがネット、電話以外の場合はスキップ
						if(!(svcSbtCd == SVC_SBT_CD_HNET || svcSbtCd == SVC_SBT_CD_HTEL)) 
						{
							continue;
						}
						// 多機能ルータの機器提供サービス契約が既に照査済の場合はスキップ
						if (SVC_KEI_STAT_UK_ZUMI.compareTo(childTemplate.getString(EKK0341B022CBSMsg1List.KKTK_SVC_KEI_STAT)) < 0)
						{
							continue;
						}
						//IT1-2013-0001689 Add end
					}

					wkCaanMsgList = shosaNgMapper.editInMsgEKK0341C030(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
					
					// 20140416 ANK-2054-00-00 ADD START
					// 機器提供サービス契約を照査した場合、機器オプションサービス契約の照査を行う
					editMapShosaNgKkop(
							handle
							,param
							,fixedText
							,userDataIndex
							,rsltShosaMap	// 入出力項目
							,childTemplate.getString(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO)
							,idoDiv
							);
					// 20140416 ANK-2054-00-00 ADD END

				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0341C030, wkMapArray);

		// 申込明細照査・後続業務依頼
		wkMapArray = new ArrayList();
		if (workEKK0021A010Array != null) 
		{
			for (int i = 0; i < workEKK0021A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0021A010CBSMsg.EKK0021A010CBSMSG1LIST, (Map)workEKK0021A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0021C060(param, fixedText, userDataIndex, childTemplate);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0021C060, wkMapArray);

		return rsltShosaMap;
	}
	
	/**
	 * 照査NG時のeo光ネットのマッピング処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @param idoDiv 異同区分
	 * @return 実行結果
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShosaNgHNet(IRequestParameterReadWrite param, 
														String fixedText,
														int userDataIndex,
														HashMap<String, Object> rsltShokai, 
														String idoDiv) 
	throws RequestParameterException
	{
		HashMap<String, Object> rsltShosaMap = new HashMap();
		HashMap<String, Object> rslt = null;
		ArrayList<HashMap> workEKK0091A010Array = null;	// サービス契約<eo光ネット>一意照会
		ArrayList<HashMap> workEKK0171A010Array = null;	// サービス契約内訳<eo光ネット>一意照会
		ArrayList<HashMap> workEKK0361A010Array = null;	// オプションサービス契約<ISP>一意照会
		ArrayList<HashMap> workEKK0411A010Array = null;	// サブオプションサービス契約＜ISP＞一意照会
// AMK-1578-00-00 2013-12-03 ADD START
		ArrayList<HashMap> workEKK2811A010Array = null;	// 機器オプションサービス契約一意照会
// AMK-1578-00-00 2013-12-03 ADD END

		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0091A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0091A010);
		workEKK0171A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0171A010);
		workEKK0361A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0361A010);
		workEKK0411A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0411A010);
// AMK-1578-00-00 2013-12-03 ADD START
		workEKK2811A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK2811A010);
// AMK-1578-00-00 2013-12-03 ADD END

		// サービス契約＜eo光ネット＞照査
		wkMapArray = new ArrayList();
		if (workEKK0091A010Array != null) 
		{
			for (int i = 0; i < workEKK0091A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0091A010CBSMsg.EKK0091A010CBSMSG1LIST, (Map)workEKK0091A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0091C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0091C010, wkMapArray);

		// サービス契約内訳<eo光ネット>照査
		wkMapArray = new ArrayList();
		if (workEKK0171A010Array != null) 
		{
			for (int i = 0; i < workEKK0171A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST, (Map)workEKK0171A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0171C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0171C010, wkMapArray);

		// オプションサービス契約<ISP>照査
		wkMapArray = new ArrayList();
		if (workEKK0361A010Array != null) 
		{
			for (int i = 0; i < workEKK0361A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST, (Map)workEKK0361A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0361C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0361C010, wkMapArray);

		// サブオプションサービス契約<ISP>照査
		wkMapArray = new ArrayList();
		if (workEKK0411A010Array != null) 
		{
			for (int i = 0; i < workEKK0411A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0411A010CBSMsg.EKK0411A010CBSMSG1LIST, (Map)workEKK0411A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0411C020(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0411C020, wkMapArray);

// AMK-1578-00-00 2013-12-03 ADD START
		// 機器オプションサービス契約照査
		wkMapArray = new ArrayList();
		if (workEKK2811A010Array != null) 
		{
			for (int i = 0; i < workEKK2811A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK2811A010CBSMsg.EKK2811A010CBSMSG1LIST, (Map)workEKK2811A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					
					String kkop_svc_cd = (String)childTemplate.getString(EKK2811A010CBSMsg1List.KKOP_SVC_CD);
					String kkop_svc_kei_stat = (String)childTemplate.getString(EKK2811A010CBSMsg1List.KKOP_SVC_KEI_STAT);
					
					if ("G01".equals(kkop_svc_cd) && "010".equals(kkop_svc_kei_stat))
					{
						wkCaanMsgList = shosaNgMapper.editInMsgEKK2811C030(param, fixedText, userDataIndex, childTemplate, idoDiv);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK2811C030, wkMapArray);
// AMK-1578-00-00 2013-12-03 ADD END

		// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//		CAANMsg[] workEKK0081A010 = getWorkParentData(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0081A010);
//		String sysid = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SYSID);
//		rsltShosaMap.put(JKKSvkeiShosaNgConstCC.SYSID, sysid);
//		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
		// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑

		return rsltShosaMap;
	}

	/**
	 * 照査NG時のeo光テレビのマッピング処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @param idoDiv 異同区分
	 * @return 実行結果
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShosaNgHTv(IRequestParameterReadWrite param,
													String fixedText, 
													int userDataIndex,
													HashMap<String, Object> rsltShokai, 
													String idoDiv) 
	throws RequestParameterException
	{
		HashMap<String, Object> rsltShosaMap = new HashMap();
		HashMap<String, Object> rslt = null;
		ArrayList<HashMap> workEKK0101A010Array = null;	// サービス契約<eo光TV>一意照会
		ArrayList<HashMap> workEKK0181A010Array = null;	// サービス契約内訳<eo光TV>一意照会
		ArrayList<HashMap> workEKK0381A010Array = null;	// オプションサービス契約<TV>一意照会
		ArrayList<HashMap> workEKK0421A010Array = null;	// サブオプションサービス契約＜TV＞一意照会

		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0101A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0101A010);
		workEKK0181A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0181A010);
		workEKK0381A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0381A010);
		workEKK0421A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0421A010);

		// サービス契約＜eo光TV＞照査
		wkMapArray = new ArrayList();
		if (workEKK0101A010Array != null) 
		{
			for (int i = 0; i < workEKK0101A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0101A010CBSMsg.EKK0101A010CBSMSG1LIST, (Map)workEKK0101A010Array.get(i));
				if(wkTenplates != null)
				{
					for (int j = 0; j < wkTenplates.length; j++)
					{
						CAANMsg childTemplate = wkTenplates[j];
						wkCaanMsgList = shosaNgMapper.editInMsgEKK0101C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0101C010, wkMapArray);

		// サービス契約内訳<eo光TV>照査
		wkMapArray = new ArrayList();
		if (workEKK0181A010Array != null) 
		{
			for (int i = 0; i < workEKK0181A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0181A010CBSMsg.EKK0181A010CBSMSG1LIST, (Map)workEKK0181A010Array.get(i));
				if(wkTenplates != null)
				{
					for (int j = 0; j < wkTenplates.length; j++)
					{
						CAANMsg childTemplate = wkTenplates[j];
						wkCaanMsgList = shosaNgMapper.editInMsgEKK0181C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0181C010, wkMapArray);

		// オプションサービス契約<TV>照査
		wkMapArray = new ArrayList();
		if (workEKK0381A010Array != null) 
		{
			for (int i = 0; i < workEKK0381A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0381A010CBSMsg.EKK0381A010CBSMSG1LIST, (Map)workEKK0381A010Array.get(i));
				if(wkTenplates != null)
				{
					for (int j = 0; j < wkTenplates.length; j++)
					{
						CAANMsg childTemplate = wkTenplates[j];
						wkCaanMsgList = shosaNgMapper.editInMsgEKK0381C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0381C010, wkMapArray);

		// サブオプションサービス契約<TV>照査
		wkMapArray = new ArrayList();
		if (workEKK0421A010Array != null) 
		{
			for (int i = 0; i < workEKK0421A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0421A010CBSMsg.EKK0421A010CBSMSG1LIST, (Map)workEKK0421A010Array.get(i));
				if(wkTenplates != null)
				{
					for (int j = 0; j < wkTenplates.length; j++)
					{
						CAANMsg childTemplate = wkTenplates[j];
						wkCaanMsgList = shosaNgMapper.editInMsgEKK0421C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0421C010, wkMapArray);

		// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//		CAANMsg[] workEKK0081A010 = getWorkParentData(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0081A010);
//		String sysid = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SYSID);
//		rsltShosaMap.put(JKKSvkeiShosaNgConstCC.SYSID, sysid);
//		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
		// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑

		return rsltShosaMap;
	}

	/**
	 * 照査NG時のeo光電話のマッピング処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @param idoDiv 異同区分
	 * @return 実行結果
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShosaNgHTel(IRequestParameterReadWrite param,
														String fixedText, 
														int userDataIndex,
														HashMap<String, Object> rsltShokai, 
														String idoDiv)
	throws RequestParameterException
	{
		HashMap<String, Object> rsltShosaMap = new HashMap();
		HashMap<String, Object> rslt = null;
		ArrayList<HashMap> workEKK0111A010Array = null;	// サービス契約<eo光電話>一意照会
		ArrayList<HashMap> workEKK0191A010Array = null;	// サービス契約内訳<eo光電話>一意照会
		ArrayList<HashMap> workEKK0371A010Array = null;	// オプションサービス契約<電話>一意照会
		ArrayList<HashMap> workEKK0431A010Array = null;	// サブオプションサービス契約＜電話＞一意照会
// AMK-1578-00-00 2013-12-03 ADD START
		ArrayList<HashMap> workEKK2811A010Array = null;	// 機器オプションサービス契約一意照会
// AMK-1578-00-00 2013-12-03 ADD END
		
		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0111A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0111A010);
		workEKK0191A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0191A010);
		workEKK0371A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0371A010);
		workEKK0431A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0431A010);
// AMK-1578-00-00 2013-12-03 ADD START
		workEKK2811A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK2811A010);
// AMK-1578-00-00 2013-12-03 ADD END

		// サービス契約＜eo光電話＞照査
		wkMapArray = new ArrayList();
		if (workEKK0111A010Array != null) 
		{
			for (int i = 0; i < workEKK0111A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0111A010CBSMsg.EKK0111A010CBSMSG1LIST, (Map)workEKK0111A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0111C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0111C010, wkMapArray);

		// サービス契約内訳<eo光電話>照査
		wkMapArray = new ArrayList();
		if (workEKK0191A010Array != null) 
		{
			for (int i = 0; i < workEKK0191A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0191A010CBSMsg.EKK0191A010CBSMSG1LIST, (Map)workEKK0191A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0191C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0191C010, wkMapArray);

		// オプションサービス契約<電話>照査
		wkMapArray = new ArrayList();
		if (workEKK0371A010Array != null) 
		{
			for (int i = 0; i < workEKK0371A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0371A010CBSMsg.EKK0371A010CBSMSG1LIST, (Map)workEKK0371A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0371C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0371C010, wkMapArray);

		// サブオプションサービス契約<電話>照査
		wkMapArray = new ArrayList();
		if (workEKK0431A010Array != null) 
		{
			for (int i = 0; i < workEKK0431A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0431A010CBSMsg.EKK0431A010CBSMSG1LIST, (Map)workEKK0431A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0431C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		
		rsltShosaMap.put(MAP_KEY_EKK0431C010, wkMapArray);

// AMK-1578-00-00 2013-12-03 ADD START
		// 機器オプションサービス契約照査
		wkMapArray = new ArrayList();
		if (workEKK2811A010Array != null) 
		{
			for (int i = 0; i < workEKK2811A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK2811A010CBSMsg.EKK2811A010CBSMSG1LIST, (Map)workEKK2811A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					
					String kkop_svc_cd = (String)childTemplate.getString(EKK2811A010CBSMsg1List.KKOP_SVC_CD);
					String kkop_svc_kei_stat = (String)childTemplate.getString(EKK2811A010CBSMsg1List.KKOP_SVC_KEI_STAT);
					
					if ("G02".equals(kkop_svc_cd) && "010".equals(kkop_svc_kei_stat))
					{
						wkCaanMsgList = shosaNgMapper.editInMsgEKK2811C030(param, fixedText, userDataIndex, childTemplate, idoDiv);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						wkMapArray.add(rslt);
					}
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK2811C030, wkMapArray);
// AMK-1578-00-00 2013-12-03 ADD END

		// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//		CAANMsg[] workEKK0081A010 = getWorkParentData(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0081A010);
//		String sysid = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SYSID);
//		rsltShosaMap.put(JKKSvkeiShosaNgConstCC.SYSID, sysid);
//		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
		// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑

		return rsltShosaMap;
	}
	


	/**
	 * 照査NG時のeoモバイルのマッピング処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @param idoDiv 異同区分
	 * @return 実行結果
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShosaNgMoba(IRequestParameterReadWrite param, 
														String fixedText, 
														int userDataIndex,
														HashMap<String, Object> rsltShokai, 
														String idoDiv) 
	throws RequestParameterException
	{
		HashMap<String, Object> rsltShosaMap = new HashMap();
		HashMap<String, Object> rslt = null;
		ArrayList<HashMap> workEKK0121A010Array = null;	// サービス契約<eoモバイル>一意照会
		ArrayList<HashMap> workEKK0201A010Array = null;	// サービス契約内訳<eoモバイル>一意照会
		ArrayList<HashMap> workEKK0361A010Array = null;	// オプションサービス契約<ISP>一意照会
		ArrayList<HashMap> workEKK0411A010Array = null;	// サブオプションサービス契約＜ISP＞一意照会

		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0121A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0121A010);
		workEKK0201A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0201A010);
		workEKK0361A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0361A010);
		workEKK0411A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0411A010);

		// サービス契約＜eoモバイル＞照査
		wkMapArray = new ArrayList();
		if (workEKK0121A010Array != null) 
		{
			for (int i = 0; i < workEKK0121A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0121A010CBSMsg.EKK0121A010CBSMSG1LIST, (Map)workEKK0121A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0121C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0121C010, wkMapArray);

		// サービス契約内訳<eoモバイル>照査
		wkMapArray = new ArrayList();
		if (workEKK0201A010Array != null) 
		{
			for (int i = 0; i < workEKK0201A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0201A010CBSMsg.EKK0201A010CBSMSG1LIST, (Map)workEKK0201A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0201C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0201C010, wkMapArray);

		// オプションサービス契約<ISP>照査
		wkMapArray = new ArrayList();
		if (workEKK0361A010Array != null) 
		{
			for (int i = 0; i < workEKK0361A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST, (Map)workEKK0361A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0361C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0361C010, wkMapArray);

		// サブオプションサービス契約<ISP>照査
		wkMapArray = new ArrayList();
		if (workEKK0411A010Array != null) 
		{
			for (int i = 0; i < workEKK0411A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0411A010CBSMsg.EKK0411A010CBSMSG1LIST, (Map)workEKK0411A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0411C020(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0411C020, wkMapArray);

		// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//		CAANMsg[] workEKK0081A010 = getWorkParentData(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0081A010);
//		String sysid = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SYSID);
//		rsltShosaMap.put(JKKSvkeiShosaNgConstCC.SYSID, sysid);
//		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
		// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑

		return rsltShosaMap;
	}

	/**
	 * 照査NG時のeoADSLのマッピング処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param fixedText ユーザ任意文字列
	 * @param userDataIndex param内の業務データのインデックス
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @param idoDiv 異同区分
	 * @return 実行結果
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> editMapShosaNgAdsl(IRequestParameterReadWrite param, 
														String fixedText, 
														int userDataIndex,
														HashMap<String, Object> rsltShokai, 
														String idoDiv)
	throws RequestParameterException
	{
		HashMap<String, Object> rsltShosaMap = new HashMap();
		HashMap<String, Object> rslt = null;
		ArrayList<HashMap> workEKK0141A010Array = null;	// サービス契約<eoADSL>一意照会
		ArrayList<HashMap> workEKK0221A010Array = null;	// サービス契約内訳<eoADSL>一意照会
		ArrayList<HashMap> workEKK0361A010Array = null;	// オプションサービス契約<ISP>一意照会
		ArrayList<HashMap> workEKK0411A010Array = null;	// サブオプションサービス契約＜ISP＞一意照会

		List<CAANMsg> wkCaanMsgList = null;
		ArrayList<HashMap> wkMapArray = null;
		
		// 一意照会、一覧照会の結果データを取得
		workEKK0141A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0141A010);
		workEKK0221A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0221A010);
		workEKK0361A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0361A010);
		workEKK0411A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0411A010);

		// サービス契約＜eoADSL＞照査
		wkMapArray = new ArrayList();
		if (workEKK0141A010Array != null) 
		{
			for (int i = 0; i < workEKK0141A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0141A010CBSMsg.EKK0141A010CBSMSG1LIST, (Map)workEKK0141A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0141C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0141C010, wkMapArray);

		// サービス契約内訳＜eoADSL＞照査
		wkMapArray = new ArrayList();
		if (workEKK0221A010Array != null) 
		{
			for (int i = 0; i < workEKK0221A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0221A010CBSMsg.EKK0221A010CBSMSG1LIST, (Map)workEKK0221A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0221C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0221C010, wkMapArray);

		// オプションサービス契約<ISP>照査
		wkMapArray = new ArrayList();
		if (workEKK0361A010Array != null) 
		{
			for (int i = 0; i < workEKK0361A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST, (Map)workEKK0361A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0361C010(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0361C010, wkMapArray);

		// サブオプションサービス契約<ISP>照査
		wkMapArray = new ArrayList();
		if (workEKK0411A010Array != null) 
		{
			for (int i = 0; i < workEKK0411A010Array.size(); i++)
			{
				CAANMsg[] wkTenplates = getWorkData(EKK0411A010CBSMsg.EKK0411A010CBSMSG1LIST, (Map)workEKK0411A010Array.get(i));
				for (int j = 0; j < wkTenplates.length; j++)
				{
					CAANMsg childTemplate = wkTenplates[j];
					wkCaanMsgList = shosaNgMapper.editInMsgEKK0411C020(param, fixedText, userDataIndex, childTemplate, idoDiv);
					rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
					wkMapArray.add(rslt);
				}
			}
		}
		rsltShosaMap.put(MAP_KEY_EKK0411C020, wkMapArray);

		// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応↓↓↓
//		CAANMsg[] workEKK0081A010 = getWorkParentData(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST, rsltShokai, MAP_KEY_EKK0081A010);
//		String sysid = workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SYSID);
//		rsltShosaMap.put(JKKSvkeiShosaNgConstCC.SYSID, sysid);
//		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応↑↑↑
		// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑

		return rsltShosaMap;
	}
	
//	/**
//	 * 割引サービス契約一覧照会のマッピング処理です。
//	 * <br>
//	 * @param handle モデルグループ、コントロールマップを含むパラメータオブジェクト
//	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
//	 * @param fixedText ユーザ任意文字列
//	 * @param userDataIndex param内の業務データのインデックス
//	 * @param rsltShokai 一意照会、一覧照会の結果データ
//	 * @return void
//	 * @throws Throwable
//	 */
//	@SuppressWarnings("unchecked")
//	private void editMapWribSvcShosa(SessionHandle handle, 
//									IRequestParameterReadWrite param, 
//									String fixedText, 
//									int userDataIndex,
//									HashMap<String, Object> rsltShokai)
//	throws Throwable
//	{
//		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
//		ArrayList<HashMap> workEKK0451A010Array = null;	// 割引サービス契約一意照会
//		
//		// 一意照会、一覧照会の結果データを取得
//		workEKK0451A010Array = (ArrayList)rsltShokai.get(MAP_KEY_EKK0451A010);
//
//		if (workEKK0451A010Array != null) 
//		{
//			for (int i = 0; i < workEKK0451A010Array.size(); i++)
//			{
//				CAANMsg[] wkTenplatesEKK0451A010 = getWorkData(EKK0451A010CBSMsg.EKK0451A010CBSMSG1LIST, (Map)workEKK0451A010Array.get(i));
//				if(wkTenplatesEKK0451A010 != null && wkTenplatesEKK0451A010.length != 0) 
//				{
//					for (int j = 0; j < wkTenplatesEKK0451A010.length; j++)
//					{
//						CAANMsg childTemplateEKK0451A010 = wkTenplatesEKK0451A010[j];
//						HashMap<String, Object> mapEKK0841A010 = null;
//						Map<?, ?> rsltEKK0841A010 = null;
//						
//						//一意照会の割引サービスコードを元に割引サービス（マスタ）スキーマを参照
//						mapEKK0841A010 = editInMsgCmn(param, shokaiMapper.editInMsgEKK0841A010(param, fixedText, userDataIndex, childTemplateEKK0451A010).get(0));
//						rsltEKK0841A010 = scCall.run(mapEKK0841A010, handle);
//						errChk(param, rsltEKK0841A010);
//							
//						CAANMsg[] wkTenplateEKK0841A010 = getWorkData(EKK0841A010CBSMsg.EKK0841A010CBSMSG1LIST, rsltEKK0841A010);
//						
//						if(wkTenplateEKK0841A010 != null && wkTenplateEKK0841A010.length != 0)
//						{
//							CAANMsg childTemplateEKK0841A010 = wkTenplateEKK0841A010[0];
//							
//							//月額費用か一時費用か判定する
//							if(WRIB_SBT_CD_ICHIWR.equals(childTemplateEKK0841A010.getString(EKK0841A010CBSMsg1List.WRIB_SBT_CD)))
//							{
//								HashMap<String, Object> mapEKK0461C010 = editInMsgCmn(param, 
//																					shosaNgMapper.editInMsgEKK0461C010(param, 
//																													fixedText, 
//																													userDataIndex, 
//																													childTemplateEKK0451A010).get(0));
//								kkExclusiveMapper.mergeSetLastUpdDtm(mapEKK0461C010);
//								Map<?, ?> rsltEKK0461C010 = scCall.run(mapEKK0461C010, handle);
//								kkExclusiveMapper.mergeGetLastUpdDtm(mapEKK0461C010);
//								errChk(param, rsltEKK0461C010);
//							}
//							else if (WRIB_SBT_CD_GTGK.equals(childTemplateEKK0841A010.getString(EKK0841A010CBSMsg1List.WRIB_SBT_CD)))
//							{
//								HashMap<String, Object> mapEKK0471C020 = editInMsgCmn(param, 
//																					shosaNgMapper.editInMsgEKK0471C020(param, 
//																													fixedText, 
//																													userDataIndex, 
//																													childTemplateEKK0451A010).get(0));
//								kkExclusiveMapper.mergeSetLastUpdDtm(mapEKK0471C020);
//								Map<?, ?> rsltEKK0471C020 = scCall.run(mapEKK0471C020, handle);
//								kkExclusiveMapper.mergeGetLastUpdDtm(mapEKK0471C020);
//								errChk(param, rsltEKK0471C020);
//							}
//						}
//					}
//				}
//			}
//		}
//	}
	
	/**
	 * 業務データの取得処理です。
	 * rsltShokaiに設定されているArrayListの1件目から業務データを取得します。
	 * <br>
	 * @param workMapKey 業務データのマップキー
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @param shokaiMapKey 一意照会、一覧照会のマップキー
	 * @return 業務データ
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg[] getWorkParentData(String workMapKey, Map<String, Object> rsltShokai, String shokaiMapKey)
	{
		ArrayList wkRsltShokaiArray = null;
		CAANMsg[] templateArray = null;

		wkRsltShokaiArray = (ArrayList)rsltShokai.get(shokaiMapKey);

		templateArray = getWorkData(workMapKey, (Map)wkRsltShokaiArray.get(0));
		
		return templateArray;
	}

	/**
	 * 業務データの取得処理です。
	 * <br>
	 * @param workMapKey 業務データのマップキー
	 * @param rsltShokai 一意照会、一覧照会の結果データ
	 * @return 業務データ
	 */
	protected CAANMsg[] getWorkData(String workMapKey, Map<?, ?> rsltShokai)
	{
		CAANMsg[] templateArray = null;
		CAANMsg[] templates = (CAANMsg[])rsltShokai.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		templateArray = parentTemplate.getCAANMsgList(workMapKey);
		
		return templateArray;
	}

	/**
	 * サービス種別コードの取得処理です。
	 * サービスコード、料金グループコードからサービスを判定する。
	 * <br>
	 * @param svcCd サービスコード
	 * @param prcGrpCd 料金グループコード
	 * @return サービス種別コード
	 */
	private int getSvcSbtCd(String svcCd, String prcGrpCd)
	{
		int svcSbtCd = SVC_SBT_CD_HNET;
		
		if (svcCd.equals(SVC_CD_NET))
		{
			if (prcGrpCd.equals(PRC_GRP_CD_HOME) ||
				prcGrpCd.equals(PRC_GRP_CD_MEZON) ||
				prcGrpCd.equals(PRC_GRP_CD_MANS))
			{
				// eo光ネット
				svcSbtCd = SVC_SBT_CD_HNET;
			}
			else if (prcGrpCd.equals(PRC_GRP_CD_EACCESS) ||
				prcGrpCd.equals(PRC_GRP_CD_FU))
			{
				// eoADSL
				svcSbtCd = SVC_SBT_CD_ADSL;
			}
			else
			{
				// eoモバイル
				svcSbtCd = SVC_SBT_CD_MOBA;
			}
		}
		else if (svcCd.equals(SVC_CD_TEL))
		{
			// eo光電話
			svcSbtCd = SVC_SBT_CD_HTEL;
		}
		else
		{
			// eo光TV
			svcSbtCd = SVC_SBT_CD_HTV;
		}
		
		return svcSbtCd;
	}

	/**
	 * サービスI/F実行用の共通部を設定します<br>
	 * <br>
	 * 
	 * @param param (I) 業務データ取得用I/F
	 * @param msg データ登録内容
	 * @return オプションサービス契約作成数
	 * @throws RequestParameterException
	 * @exception RequestParameterExceptionがスローされます 。
	 */
	private HashMap<String, Object> editInMsgCmn(IRequestParameterReadOnly param, CAANMsg msg) 
	throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		/* SCインプット共通データ */
		// **********************************************
		// 【取得元：電文ヘッダ(ヘッダ)】
		// **********************************************
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());
		
		// **********************************************
		// 【取得元：ユーザエリア(コントロールマップ)】
		// **********************************************
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = msg;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);
		
		return paramMap;
		
	}
	
	/**
	 * エラーチェック処理です。
	 * <br>
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param msgList サービスインタフェース実行結果
	 * @throws SCCallException 
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void errChk(IRequestParameterReadWrite param, Map<?, ?> msgList) 
	throws SCCallException, Exception
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// ステータス
		int templateStatus = template.getInt("status");

		// リターンコード取得
		Integer returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);
		if (returnCode != 0) {
			templateStatus = 9000;
		}
		param.setControlMapData(SCControlMapKeys.RETURN_CODE, 
				String.format("%1$04d", templateStatus));		//2012-02-16追加, 2012-05-16正規化
		
		//↓↓↓2012-05-16追加、巻@　指示書CC取込み対応のついで↓↓↓
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if(errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));
		//↑↑↑2012-05-16追加、巻@　指示書CC取込み対応のついで↑↑↑
 
		if ((0 != returnCode.intValue()) || (0 != templateStatus))
		{
			String errMsg = "INVALID_RETURN_MESSAGE";
			throw new SCCallException(errMsg, String.valueOf(returnCode), templateStatus);
		}
	}


	/**
	 * ステータスが照査可能（受付済）か判定する。
	 * 
	 * @param stat	ステータス
	 * @return True：照査可能状態　False：照査不可状態
	 */
	private boolean isChkStat(String stat)
	{
		if(stat.equals(SVC_KEI_STAT_UK_ZUMI))
		{
			return true;
		}
		
		return false;
	}


	// ↓↓↓2013-04-04削除 IT1-2013-0000680対応↓↓↓
//	/**
//	 * サービスIF実行結果のマップより指定された項目の値を取り出します
//	 * 
//	 * @param msgList
//	 * @param itemName
//	 * @return 指定された項目の値
//	 * @since 2012-05-16 指示書CC取込み対応
//	 */
//	private String getServiceIfOutputItem(Map<?, ?> msgList, String itemName)
//	{
//		String ret = null;
//
//		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
//		CAANMsg template = templates[0];
//		
//		if (template.isNull(itemName))
//		{
//			ret = new String();
//		}
//		else
//		{
//			ret = template.getString(itemName);
//		}
//		
//		return ret;
//	}
	// ↑↑↑2013-04-04削除 IT1-2013-0000680対応↑↑↑
	// 20140416 ANK-2054-00-00 ADD START
	/**
	 * 機器オプションサービス契約照査処理
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @param userDataIndex
	 * @param rsltShosaMap 
	 * @param kktkSvcKeiNo 機器提供サービス契約番号
	 * @param idoDiv 異動区分
	 * @return
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private void editMapShosaNgKkop(
			SessionHandle handle
			,IRequestParameterReadWrite param
			,String fixedText
			,int userDataIndex
			,HashMap<String, Object> rsltShosaMap
			,String kktkSvcKeiNo
			,String idoDiv
	) throws Throwable
	{
		// 照査対象の機器オプションサービス契約のSIF呼出情報
		ArrayList shosaMapArray = (ArrayList)rsltShosaMap.get(MAP_KEY_EKK2811C030);
		
		if (shosaMapArray == null) 
		{
			shosaMapArray = new ArrayList();
		}
		
		// 照会SIF用のワーク
		ArrayList wkMapArray = new ArrayList();
		HashMap<String, Object> wkRsltShokaiMap = new HashMap<String, Object>();
		HashMap<String, Object> wkRsltShokai = new HashMap<String, Object>();
		HashMap<String, Object> rslt = null;
			
		// 機器オプションサービス契約一覧照会（機器提供ＳＶ）
		wkMapArray = new ArrayList();
		List<CAANMsg> wkCaanMsgList = shokaiMapper.editInMsgEKK2811B010(param, kktkSvcKeiNo, null);
		wkMapArray.add(editInMsgCmn(param, wkCaanMsgList.get(0)));
		wkRsltShokaiMap.put(MAP_KEY_EKK2811B010, wkMapArray);
		wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, new String[]{MAP_KEY_EKK2811B010});
		
		CAANMsg[] msgEKK2811B010List = getWorkParentData(EKK2811B010CBSMsg.EKK2811B010CBSMSG1LIST, wkRsltShokai, MAP_KEY_EKK2811B010);
		
		if (msgEKK2811B010List != null && msgEKK2811B010List.length > 0)
		{
			// 機器提供サービス契約番号に紐付く機器オプションサービス契約分、繰り返し
			for (CAANMsg msgEKK2811B010 : msgEKK2811B010List)
			{
				// 機器オプションサービス契約異動可否判定処理を呼出し、無条件で状態遷移可能な機器オプションか否かを判定
				HashMap<String, Object> checkKkopIdoKhInputdata = new HashMap<String, Object>();
				
				// 機器オプションサービスコード
				checkKkopIdoKhInputdata.put(JKKKeiIdoKhCheckConstCC.KKOP_SVC_CD, msgEKK2811B010.getString(EKK2811B010CBSMsg1List.KKOP_SVC_CD));
				
				// 異動区分
				checkKkopIdoKhInputdata.put(JKKKeiIdoKhCheckConstCC.IDO_DIV, idoDiv);
				
				String checkKkopIdoKhFixedText ="checkKkopIdoKh";  
				
				param.setData(checkKkopIdoKhFixedText, checkKkopIdoKhInputdata);
				
				// 機器オプションサービス契約異動可否判定
				if (JKKBpCommon.checkKkopIdoKh(handle, param, checkKkopIdoKhInputdata, checkKkopIdoKhFixedText))
				{
					// 機器オプションサービス契約一意照会
					wkMapArray = new ArrayList();
					// 引数のcaanMsgは他の呼出元と異なるが、項目名が一致しているため、問題なし
					wkCaanMsgList = shokaiMapper.editInMsgEKK2811A010(param, msgEKK2811B010);
					wkMapArray.add(editInMsgCmn(param, wkCaanMsgList.get(0)));
					wkRsltShokaiMap.put(MAP_KEY_EKK2811A010, wkMapArray);
					wkRsltShokai = runShokai(param, handle, wkRsltShokaiMap, new String[]{MAP_KEY_EKK2811A010});
					
					CAANMsg[] msgEKK2811A010List = getWorkParentData(EKK2811A010CBSMsg.EKK2811A010CBSMSG1LIST, wkRsltShokai, MAP_KEY_EKK2811A010);
					
					CAANMsg msgEKK2811A010 = msgEKK2811A010List[0];
					
					// 照査対象のスタータスかをチェック
					if (isChkStat(msgEKK2811A010.getString(EKK2811A010CBSMsg1List.KKOP_SVC_KEI_STAT)))
					{
						// 照査
						wkCaanMsgList = shosaNgMapper.editInMsgEKK2811C030(param, fixedText, userDataIndex, msgEKK2811A010, idoDiv);
						rslt = editInMsgCmn(param, wkCaanMsgList.get(0));
						shosaMapArray.add(rslt);
					}
					else
					{
						// 照査対象外のステータスのため、処理なし
					}
				}
				else
				{
					// 機器オプションが照査対象外または個別処理が必要な機器オプションのため、処理なし
				}
			}
		}
		else
		{
			// 機器オプションが存在しないため、処理なし
		}
		
		if (!shosaMapArray.isEmpty())
		{
			rsltShosaMap.put(MAP_KEY_EKK2811C030, shosaMapArray);
		}
		
	}
	// 20140416 ANK-2054-00-00 ADD END
}
