/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JKKSsnPrcCalcScreenInitCC
*	ソースファイル名：JKKSsnPrcCalcScreenInitCC.java
*	作成者			：FJ）澤田
*	日付			：2018年01月31日
*＜機能概要＞ 
*	精算金計算画面初期表示部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v36.00.00	2018/02/09	FJ）澤田	新規作成【ANK-3296-00-00】
*	v36.01.00	2018/03/05	FJ) 原田	IT1-2018-0000034
*	v36.02.00	2018/04/09	FJ）原田	OM-2018-0000353_長割表示不正
*	v37.00.00	2018/04/23	FJ）原田	ANK-3383-00-00_標準工事費割賦請求(STEP2)
*	v37.00.01	2018/05/08	FJ）原田	ANK-3383-08-00_標準工事費割賦請求(STEP2)_仕様変更対応08
*	v37.00.02	2018/05/16	FJ) 原田	ANK-3383-06-00_標準工事費分割請求(STEP2)_仕様変更対応06
*	v39.00.00	2018/12/05	FJ) 原田	OM-2018-0001178_標準工事費相当額割引CP表示不正対応
*	v41.00.00	2019/02/20	FJ) 三原	ANK-3412-03-00_【５ギガ・１０ギガ】特約プログラム対応
*	v41.00.01	2019/03/06	FJ) 三原	IT1-2019-0000038_高速割解約精算金が表示されない
*	v44.00.00	2019/06/05	FJ) 原田	OM-2019-0000578_精算金計算画面でサービス開始していないSTBの計算するとシステムエラー
*	v45.00.00	2019/07/16	FJ) 後藤	ANK-3636-00-00_消費税対応
*	v45.00.01	2019/09/06	FJ) 三原	ANK-3681-00-00_精算金計算画面の表示対象拡大
*	v53.00.00	2021/04/08	FJ) 平野	ANK-3951-00-00_「競争ルールの検証に関するWG」に関するシステム対応
*	v53.00.02	2021/05/28	FJ) 平野	IT1-2021-0000040_標準工事費相当額ＣＰ一括払いの残数が表示されない
*	v56.00.00	2021/01/06	FJ) 吉村	OM-2021-0002016_解約精算金計算画面(標準工事費残金の計算誤り)
*	v59.00.00	2022/05/24	FJ) 麻生	ANK-4248-03-00_消費者保護ガイドライン改正対応／【仕変03】工事費相当額割引の見直し（6末対応）
*	v59.00.01	2022/05/25	FJ) 麻生	OM-2022-0000518_精算金計算画面での相当額CP残回数表示時システムエラー対応
**	v60.00.00	2022/08/13	FJ) 鈴木	ANK-4330-00-00_消費者保護ガイドライン改正対応（Step2）
*   v75.00.01   2025/05/26  FJ) 張      #87277_工事費割賦不具合対応
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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.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 com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCDateUtil;
import eo.ejb.cbs.cbsmsg.EAC0611B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EAC0611B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B029CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B029CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0191B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B012CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B012CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B035CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B035CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0351B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0381B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0381B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0451A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0451B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0451B012CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451B012CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0861B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0861B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2361B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2361B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2371A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2371A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2521A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2521A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3131A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3131A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3131B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3131B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0171A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0171A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECH0501A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0501A010CBSMsg1List;

/**
 *精算金計算画面初期表示部品です。
 * <BR>
 * @author FJ
 */
public class JKKSsnPrcCalcScreenInitCC extends AbstractCommonComponent
{
	/**
	 * 料金グループコード
	 */
	private static final String[][] PRC_GRP_CD = {
		// 料金グループコード
		{"02", "03", "04"}, //ネット
		{"10"}, //電話
		{"11", "12", "13"}//テレビ
	};
	
	/**
	 * 割引サービスコード
	 */
	private static final String[][] WRIB_SVC_CD = {
		// 割引サービスコード
		// ANK-3383-00-00 MOD START
		//{"W00000021", "W00000041"}, //即割、長期継続利用割引
		//{"即割", "長割"}
		{"W00000021"				//即割
			// ANK-3412-03-00 ADD START
			, JKKStrConst.WRIB_SVC_KOSOKU_WRIB	// 高速割
			// ANK-3412-03-00 ADD END
			, "W00000041"			//長期継続利用割引
			}, 
		{"即割"
			// ANK-3412-03-00 ADD START
			, "高速割"
			// ANK-3412-03-00 ADD END
			, "長割"
			}
		// ANK-3383-00-00 MOD END
	};
	
	// ANK-4248-03-00 ADD START
	/** 標準工事費割引キャンペーンリスト */
	private static final List<String> HYOJUN_KOJIHI_WRBK_CP_LIST =
		Arrays.asList(
				new String[] {
						JKKStrConst.WRIB_SVC_KOJIHI_WRBK_CP_NET_24,		// 標準工事費割引キャンペーン（２４回）（ネット用）
						// ANK-4330-00-00 ADD START
						JKKStrConst.WRIB_SVC_KOJIHI_WRBK_CP_TEL_24,		// 標準工事費割引キャンペーン（２４回）（電話用）
						// ANK-4330-00-00 ADD END
						}
				);
	// ANK-4248-03-00 ADD END
	
	/**
	 * オプションサービスコード　スタCH
	 */
	private static final String[][] OP_SVC_CD_STAR_CH = {
		// オプションサービスコード
		{"B034", "B083", "B104", "B109"}, //(スターチャンネルセット、スターチャンネル（半年）、スターチャンネル（ＣＰ）、スターチャンネル（ＢＳパススル）)
		{"スターCH", "スターCH", "スターCH", "スターCH"}
	};
	
	/**
	 * オプションサービスコード ガイド誌
	 */
	private static final String[][] OP_SVC_CD_GUIDE = {
		// オプションサービスコード
		{"B068"}, //ガイド誌
		{"ガイド誌"}
	};
	
	// ANK-3383-00-00 ADD START
	/**
	 * 機器情報部の表示対象外機器種類
	 */
	private static final String[] KIKI_INFO_TRGT_GAI = {
															"C001"		// ６４カード
															,"C002"		// パワーアンテナ
															,"C003"		// スリッパー
															,"C005"		// モデム
															,"C007"		// ネットフォン用ＶＡ
															,"C008"		// インラインフィルタ
															,"C009"		// ＳＴＢ
															,"C010"		// Ｂ−ＣＡＳカード
															,"C011"		// Ｃ−ＣＡＳカード
															,"C012"		// ＯＮＵ
															,"C013"		// Ｖ−ＯＮＵ
															,"C016"		// ｅｏモバイル機器　ｅ−ｍｏｂｉｌｅ用
															,"C017"		// ｅｏモバイル機器　ＵＱ用
															,"C018"		// ＰＣ
															,"C019"		// ＩＰテレメト
															,"C020"		// ｅｏモバイル機器　クレードル
															,"C999"		// その他
															,"C021"		// タブレット
															,"C022"		// タブレット用クレードル
															,"C023"		// ｅｏ光スティック
															};
	
	/** 画面表示用文言（スターチャンネルセット割） */
	private static final String STAR_CH_SET_WRI = "スターCH";
	// ANK-3383-00-00 ADD END
	
	/** テンプレートID　同一回線内訳サービス契約一覧照会 */
	private static final String TEMPLATE_ID_EKK0081B029 = "EKK0081B029";
	
	/** テンプレートID　サービス契約共通情報一覧照会 */
	private static final String TEMPLATE_ID_EKK0081B010 = "EKK0081B010";
	
	/** サービス契約一意照会 */
	private static final String TEMPLATE_ID_EKK0081A010 = "EKK0081A010";
	
	/** テンプレートID　割引サービス契約一覧照会（サービス契約番号） */
	private static final String TEMPLATE_ID_EKK0451B002 = "EKK0451B002";
	
	/** テンプレートID　オプションサービス契約一覧照会 */
	private static final String TEMPLATE_ID_EKK0351B002 = "EKK0351B002";
	
	/** テンプレートID　サービス契約回線内訳一覧照会（サービス契約番号） */
	private static final String TEMPLATE_ID_EKK0251B001 = "EKK0251B001";
	
	/** 工事費割賦契約一覧照会 */
	private static final String TEMPLATE_ID_EKK3131B010 = "EKK3131B010";
	
	// ANK-3383-00-00 ADD START
	/** 工事費割賦契約一意照会 */
	private static final String TEMPLATE_ID_EKK3131A010 = "EKK3131A010";
	
	/** サービス契約内訳＜eo光電話＞一覧照会（サービス契約番号） */
	private static final String TEMPLATE_ID_EKK0191B001 = "EKK0191B001";
	
	/** オプションサービス契約<TV>一覧照会 */
	private static final String TEMPLATE_ID_EKK0381B001 = "EKK0381B001";
	
	/** 割賦料金一覧照会 */
	private static final String TEMPLATE_ID_EAC0611B010 = "EAC0611B010";
	
	/** 割引サービス契約一意照会 */
	private static final String TEMPLATE_ID_EKK0451A010 = "EKK0451A010";
	
	/** 割引サービス契約内訳一覧照会 */
	private static final String TEMPLATE_ID_EKK2361B010 = "EKK2361B010";
	
	/** 割引サービス詳細一意照会 */
	private static final String TEMPLATE_ID_EKK2371A010 = "EKK2371A010";
	
	/** 機器提供サービス契約一覧照会(接続機器情報) */
	private static final String TEMPLATE_ID_EKK0341B012 = "EKK0341B012";
	
	/** 業務パラメータ管理一意照会(ＧＨ宅内機器型式) */
	private static final String TEMPLATE_ID_EZM0321A010 = "EZM0321A010";
	// ANK-3383-00-00 ADD END
	
	/** 機器契約情報取得処理 */
	private static final String TEMPLATE_ID_EKK0341B035 = "EKK0341B035";
	
	/** マンション情報一覧照会 */
	private static final String TEMPLATE_ID_EKK0861B002 = "EKK0861B002";
	
	// ANK-3383-06-00 ADD START
	/** マンション情報一覧照会 */
	private static final String TEMPLATE_ID_ECH0501A010 = "ECH0501A010";
	// ANK-3383-06-00 ADD END
	
	// OM-2018-0001178 ADD START
	/** 割引サービス契約一覧照会（割引用） */
	private static final String TEMPLATE_ID_EKK0451B012 = "EKK0451B012";
	
	/** コード名称管理一意照会 */
	private static final String TEMPLATE_ID_EZM0171A010 = "EZM0171A010";
	
	/** コード種別（割引サービス契約ステータス用） */
	private static final String CD_SBT_CD_CD00055 = "CD00055";
	// OM-2018-0001178 ADD END
	
	// OM-2021-0002016 ADD START
	/** 割賦プラン一意照会 */
	private static final String TEMPLATE_ID_EKK2521A010 = "EKK2521A010";
	// OM-2021-0002016 ADD END
	
	/** リターンメッセージの書式指定文字列 */
	private static final String RETURN_MESSAGE_FORMAT = "%1$04d";
	
	/** エラー項目接尾辞 */
	private static final String ERRITEM_SUFFIX = "_err";
	
	/** リターンメッセージ取得キー */
	private static final String RETURN_MESSAGE_STRING = "RETURN_MESSAGE_";
	
	/**
	 *精算金計算画面初期表示取得処理を行います。
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite init(SessionHandle handle,
			IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// ユーザデータ情報
		HashMap<String, Object> dataMap = (HashMap<String, Object>)param.getData(fixedText);
		
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		IRequestParameterReadWrite retParam = param;
		
		//データマップがNULLの場合、処理を終了する。
		if (dataMap == null)
		{
			return retParam;
		}

		//サービス契約番号
		String svcKeiNo = (String)dataMap.get("svc_kei_no");
		
		//**************************************
		// ■同一回線内訳サービス契約一覧照会(EKK0081B029)
		//**************************************
		List<HashMap<String, Object>>eKK0081B029List =  new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, Object>>eKK0081B010List =  new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, Object>>eKK0081A010List =  new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, Object>>eKK0451B002List =  new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, Object>>eKK0351B002List =  new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, Object>>eKK0341B035List =  new ArrayList<HashMap<String, Object>>();
		// ANK-3383-00-00 ADD START
		List<HashMap<String, Object>>eKK2361B010List =  new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, Object>>eKK0451A010List =  new ArrayList<HashMap<String, Object>>();
		List<HashMap<String, String>>stbInfoList =  new ArrayList<HashMap<String, String>>();
		List<HashMap<String, String>>googleHomeList =  new ArrayList<HashMap<String, String>>();
		List<HashMap<String, String>>eoSmartLinkList =  new ArrayList<HashMap<String, String>>();
		// ANK3383-00-00 ADD END
		
		eKK0081B029List = getSvcKeiInfoEKK0081B029(handle, param, fixedText, dataMap, JPCModelConstant.FUNC_CD_2);
		
		// ANK-3412-03-00 ADD START
		//**************************************
		// ■業務パラメータ管理一意照会(EZM0321A010)
		//**************************************
		// 高速割料金コースを取得する
		String kosokuwariPcrs = getEZM0321A010(handle, param, fixedText, JKKStrConst.PARAM_ID_KK_KOSOKUWRI_PCRS, JPCModelConstant.FUNC_CD_1);
		// ","で料金コースコードを分割し、高速割料金コースリストに設定する
		List<String> kosokuwriPcrsList = Arrays.asList(kosokuwariPcrs.split(","));
		// ANK-3412-03-00 ADD END
		
		String netSvcKeiNo = "";
		String tvSvcKeiNo = "";
		// ANK-3383-00-00 ADD START
		String telSvcKeiNo = "";
		String kojihiWribCampainStat = "";
		String kojihiWribCampainStatNm = "";
		String kojihiWribCampainZkaisu = "";
		// ANK-3383-00-00 ADD END
		// ANK-4248-03-00 ADD START
		// 標準工事費割引ＣＰサービス契約番号リスト
		List<String> kojihiCpSvcKeiNoList = new ArrayList<String>();
		// ANK-4248-03-00 ADD END
		boolean svcStaNetCheckflg = false;//ネットのサービス開始されているか
		boolean svcStaTelCheckflg = false;//電話のサービス開始されているか
		boolean svcStaTvCheckflg = false;//テレビのサービス開始されているか
		
		for (int i = 0; i < eKK0081B029List.size(); i++)
		{
			HashMap<String, Object> eKK0081B029Msg = (HashMap<String, Object>)eKK0081B029List.get(i);
			//サービス契約番号
			String eKK0081B029_svcKeiNo = JKKStringUtil.nullToBlank((String)eKK0081B029Msg.get(EKK0081B029CBSMsg1List.SVC_KEI_NO));
			//**************************************
			// ■サービス契約共通情報一覧照会(EKK0081B010)
			//**************************************
			eKK0081B010List = getSvcKeiInfoEKK0081B010(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_1);
			//サービスが存在しない場合、次の処理へ
			if (null == eKK0081B010List)
			{
				continue;
			}
			HashMap<String, Object> eKK0081B010Msg = (HashMap<String, Object>)eKK0081B010List.get(0);
			//サービス契約一意照会
			eKK0081A010List = getSvckeiIti(handle, retParam, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_2);
			HashMap<String, Object> eKK0081A010Msg = (HashMap<String, Object>)eKK0081A010List.get(0);

			//特記事項
			String tokki = "";
			
			//サービス契約ステータス
			String eKK0081B010_svcKeiStat = JKKStringUtil.nullToBlank((String)eKK0081B010Msg.get(EKK0081B010CBSMsg1List.SVC_KEI_STAT));
			//料金グループコード
			String eKK0081B010_prcGrpCd = JKKStringUtil.nullToBlank((String)eKK0081B010Msg.get(EKK0081B010CBSMsg1List.PRC_GRP_CD));
			//料金プラン名
			String eKK0081B010_pplanNm = JKKStringUtil.nullToBlank((String)eKK0081B010Msg.get(EKK0081B010CBSMsg1List.PPLAN_NM));
			//料金グループ名
			String eKK0081B010_prcGrpNm = JKKStringUtil.nullToBlank((String)eKK0081B010Msg.get(EKK0081B010CBSMsg1List.PRC_GRP_NM));
			//サービス開始日
			String eKK0081A010_svcStaYmd = JKKStringUtil.nullToBlank((String)eKK0081A010Msg.get(EKK0081A010CBSMsg1List.SVC_STA_YMD));
			
			// IT1-2019-0000038 DEL START
//			// ANK-3412-03-00 ADD START
//			// サービス契約一意照会の結果より料金コースコードを取得し、その料金コースコードが高速割の対象となる料金コースコードであるか判定する
//			// 料金コースコード
//			String eKK0081A010_pcrsCd = JKKStringUtil.nullToBlank((String)eKK0081A010Msg.get(EKK0081A010CBSMsg1List.PCRS_CD));
//			
//			// 高速割料金コース判定フラグ(true:高速割申込可能、false:高速割申込不可)
//			Boolean kousokuWariPcrsCdFlg = false;
//			
//			// 高速割申込可能フラグに初期値を設定する("0":申込不可)
//			dataMap.put("kousokuwari_mskm_psb_flg", "0");
//			
//			// 料金コースコードが""(空文字)ではない場合
//			if (!"".equals(eKK0081A010_pcrsCd))
//			{
//				// 高速割料金コースリストの要素の数だけ処理する
//				for (int l = 0; kosokuwriPcrsList.size() > l; l++)
//				{
//					// 処理対象のサービス契約意の料金コースコードと高速割料金リスト(l番目)が等しい場合
//					if (eKK0081A010_pcrsCd.equals(kosokuwriPcrsList.get(l)))
//					{
//						// 高速割の申込可能な料金コースコードのため、高速割料金コース判定フラグにtrueを設定する
//						kousokuWariPcrsCdFlg = true;
//						
//						// 高速割申込可能フラグを設定する("1":申込可能)
//						dataMap.put("kousokuwari_mskm_psb_flg", "1");
//						break;
//					}
//				}
//			}
//			// ANK-3412-03-00 ADD END
			// IT1-2019-0000038 DEL END

			//取得したサービス契約回線内訳番号に紐付くステータスが「サービス提供中」または、「利用停止中」または、「休止・中断中」のサービス契約番号を取得。
			if (JKKStrConst.CD00037_SVCTK_CHU.equals(eKK0081B010_svcKeiStat)
				// ANK-3681-00-00 ADD START
				|| JKKStrConst.CD00037_STAT_STP.equals(eKK0081B010_svcKeiStat)
				// ANK-3681-00-00 ADD END
				|| JKKStrConst.CD00037_STAT_PAUSE.equals(eKK0081B010_svcKeiStat))
			{
				//チェック（ネット）
				if (checkArray(PRC_GRP_CD, 0, eKK0081B010_prcGrpCd))
				{
					// IT1-2019-0000038 ADD START
					// サービス契約一意照会の結果より料金コースコードを取得し、その料金コースコードが高速割の対象となる料金コースコードであるか判定する
					// 料金コースコード
					String eKK0081A010_pcrsCd = JKKStringUtil.nullToBlank((String)eKK0081A010Msg.get(EKK0081A010CBSMsg1List.PCRS_CD));
					
					// 高速割料金コース判定フラグ(true:高速割申込可能、false:高速割申込不可)
					Boolean kousokuWariPcrsCdFlg = false;
					
					// 高速割申込可能フラグに初期値を設定する("0":申込不可)
					dataMap.put("kousokuwari_mskm_psb_flg", "0");
					
					// 料金コースコードが""(空文字)ではない場合
					if (!"".equals(eKK0081A010_pcrsCd))
					{
						// 高速割料金コースリストの要素の数だけ処理する
						for (int l = 0; kosokuwriPcrsList.size() > l; l++)
						{
							// 処理対象のサービス契約意の料金コースコードと高速割料金リスト(l番目)が等しい場合
							if (eKK0081A010_pcrsCd.equals(kosokuwriPcrsList.get(l)))
							{
								// 高速割の申込可能な料金コースコードのため、高速割料金コース判定フラグにtrueを設定する
								kousokuWariPcrsCdFlg = true;
								
								// 高速割申込可能フラグを設定する("1":申込可能)
								dataMap.put("kousokuwari_mskm_psb_flg", "1");
								break;
							}
						}
					}
					// IT1-2019-0000038 ADD END
					
					//サービス開始フラグ
					svcStaNetCheckflg = true;
					//割引サービスコードの数だけループさせる。
					for (int j = 0; j < WRIB_SVC_CD[0].length; j++)
					{
						boolean bol = false;
						// ANK-3383-00-00 ADD START
						boolean choWriFlg = false;
						boolean wribAtKeizk = false;
						
						// 他のサービスと共有しているので、念のために初期化
						eKK0451B002List =  new ArrayList<HashMap<String, Object>>();
						// ANK-3383-00-00 ADD END
						
						//**************************************
						// ■割引サービス契約一覧照会（サービス契約番号）(EKK0451B002)
						//**************************************
						eKK0451B002List = getWribSvckei(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_1);
						for (int k = 0; k < eKK0451B002List.size(); k++)
						{
							HashMap<String, Object> eKK0451B002Msg = (HashMap<String, Object>)eKK0451B002List.get(k);
							//割引サービスコード
							String eKK0451B002_wribSvcCd = JKKStringUtil.nullToBlank((String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_CD));
							//割引サービスステータス
							String eKK0451B002_wribSvcKeiStat = JKKStringUtil.nullToBlank((String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_STAT));
							// OM-2018-0000353 MOD START
							////割引サービスコード=即割、長期継続利用割引かつ割引サービス契約ステータス≠'910'(解約)、'920'キャンセルの場合
							//割引サービスコード=即割、長期継続利用割引かつ割引サービス契約ステータス＝'010'(受付済)、'100'サービス提供中の場合
							// OM-2018-0000353 MOD END
							if (WRIB_SVC_CD[0][j].equals(eKK0451B002_wribSvcCd)
									// OM-2018-0000353 MOD START
									//&& !(JKKStrConst.CD00055_DSLZM.equals(eKK0451B002_wribSvcKeiStat) || JKKStrConst.CD00055_CSLZM.equals(eKK0451B002_wribSvcKeiStat)))
									&& (JKKStrConst.CD00055_UKZM.equals(eKK0451B002_wribSvcKeiStat) || JKKStrConst.CD00055_SVCTK_CHU.equals(eKK0451B002_wribSvcKeiStat)))
									// OM-2018-0000353 MOD END
							{
								bol = true;
								
								// ANK-3383-00-00 ADD START
								// 長期継続利用割引を持っている場合、割引サービス契約自動継続識別コードを取得
								// ANK-3412-03-00 MOD START
								//if (WRIB_SVC_CD[0][1].equals(eKK0451B002_wribSvcCd))
								if (JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB.equals(eKK0451B002_wribSvcCd))
								// ANK-3412-03-00 MOD END
								{
									choWriFlg = true;
									String eKK0451B002_wribSvcKeiAtKeizkSkCd = JKKStringUtil.nullToBlank((String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_AT_KEIZK_SKCD));
									
									if(!JKKStringUtil.isNullBlank(eKK0451B002_wribSvcKeiAtKeizkSkCd)
											&& JKKStrConst.WRIB_SVC_KEI_AT_KEIZK_ARI.equals(eKK0451B002_wribSvcKeiAtKeizkSkCd))
									{
										wribAtKeizk = true;
									}
								}
								// ANK-3383-00-00 ADD END
								
								break;
							}
							// OM-2018-0001178 DEL START
//							// ANK-3383-00-00 ADD START
//							// 標準工事費相当額キャンペーンの情報取得（まだ標準工事費相当額キャンペーンの適用残回数が設定されていなかったら）
//							if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(eKK0451B002_wribSvcCd)
//									&& JKKStringUtil.isNullBlank(kojihiWribCampainZkaisu))
//							{
//								String wribSvcKeiNo = (String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_NO);
//								
//								// EKK0451A010_割引サービス契約一意照会
//								eKK0451A010List = getWribSvcKeiIti(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_2);
//								kojihiWribCampainStat = JKKStringUtil.nullToBlank((String)eKK0451A010List.get(0).get(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT));
//								kojihiWribCampainStatNm = JKKStringUtil.nullToBlank((String)eKK0451A010List.get(0).get(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT_NM));
//								
//								// EKK2361B010_割引サービス契約内訳一覧照会呼び出し
//								eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
//								
//								kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000001, (String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
//							}
//							// ANK-3383-00-00 ADD END
							// OM-2018-0001178 DEL END
						}
						// ANK-3383-00-00 ADD START
						// ANK-3412-03-00 MOD START
						//// 長割または即割の場合
						//if (JKKStrConst.WRIB_SVC_SOKU_WRIB.equals(WRIB_SVC_CD[0][j]) || JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB.equals(WRIB_SVC_CD[0][j]))
						// 長割である、または、即割である、または、
						// 高速割であるかつ高速割料金コース判定フラグがtrue(高速割申込可能)の場合
						if (JKKStrConst.WRIB_SVC_SOKU_WRIB.equals(WRIB_SVC_CD[0][j]) || JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB.equals(WRIB_SVC_CD[0][j])
							|| (JKKStrConst.WRIB_SVC_KOSOKU_WRIB.equals(WRIB_SVC_CD[0][j]) && kousokuWariPcrsCdFlg))
						// ANK-3412-03-00 MOD END
						{
						// ANK-3383-00-00 ADD END
							//対象の割引サービスコードが存在している場合
							if (bol) 
							{
								tokki = tokki + WRIB_SVC_CD[1][j] + "：有" + " ";
								
								// ANK-3383-00-00 ADD START
								if(choWriFlg)
								{
									if(wribAtKeizk)
									{
										tokki = tokki + "（自動継続：有）" + " ";
									}
									else
									{
										tokki = tokki + "（自動継続：無）" + " ";
									}
								}
								// ANK-3383-00-00 ADD END
							}
							else
							{
								tokki = tokki + WRIB_SVC_CD[1][j] + "：無" + " ";
							}
						// ANK-3383-00-00 ADD START
						}
						// ANK-3383-00-00 ADD END
					}
					//ネット契約の情報を設定
					dataMap.put("svc_nm_prc_plan_nm_net", eKK0081B010_prcGrpNm + "／" + eKK0081B010_pplanNm);
					dataMap.put("svc_kei_no_net", eKK0081B029_svcKeiNo);
					dataMap.put("svc_sta_ymd_net", eKK0081A010_svcStaYmd);
					dataMap.put("tkjk_net", tokki);
					netSvcKeiNo = eKK0081B029_svcKeiNo;
				}
				//チェック（電話）
				if (checkArray(PRC_GRP_CD, 1, eKK0081B010_prcGrpCd))
				{
					// ANK-3383-00-00 ADD START
					// サービス契約内訳＜eo光電話＞一覧照会（サービス契約番号）の呼び出し
					List<HashMap<String, String>> eKK0191B001List =  new ArrayList<HashMap<String, String>>();
					eKK0191B001List = getSvcKeiUcwkTelInfo(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_6);
					
					List<HashMap<String, String>> tokkiList =  new ArrayList<HashMap<String, String>>();
					
					for (int j = 0; j < eKK0191B001List.size(); j++)
					{
						HashMap<String, String> eKK0191B001Map = (HashMap<String, String>)eKK0191B001List.get(j);
						
						String telNo = eKK0191B001Map.get(EKK0191B001CBSMsg1List.TELNO);
						String bmpUm = eKK0191B001Map.get(EKK0191B001CBSMsg1List.BMP_UM);
						String svcKeiUcwkStat = eKK0191B001Map.get(EKK0191B001CBSMsg1List.SVC_KEI_UCWK_STAT);
						String telNoJun = eKK0191B001Map.get(EKK0191B001CBSMsg1List.TELNO_JUN);
						
						if (svcKeiUcwkStat.compareTo(JKKStrConst.CD01616_STAT_SVCTK_CHU) >= 0
								&& svcKeiUcwkStat.compareTo(JKKStrConst.CD01616_STAT_DSLZUMI) < 0)
						{
							HashMap<String, String> tokkiMap = new HashMap<String, String>();
							
							tokkiMap.put("tel_no_jun", telNoJun);
							tokkiMap.put("bmp_um", bmpUm);
							tokkiMap.put("tel_no", telNo);
							
							tokkiList.add(tokkiMap);
						}
					}
					
					// 電話用の特記事項を設定
					if (tokkiList.size() == 1)
					{
						HashMap<String, String> tokkiMap =  tokkiList.get(0);
						// 電話番号のハイフン編集を行う
						String telNoHfn = callEditTln(handle, param, tokkiMap.get("tel_no"));
						String bmpUm = tokkiMap.get("bmp_um");
						String bmpUmNm = getBmpUmNm(bmpUm);
						
						
						tokki = "番ポ（" + telNoHfn + "：" + bmpUmNm + "）";
					}
					else if (tokkiList.size() > 0 && tokkiList.size() <= 2)
					{
						HashMap<String, String> tokkiMap1 =  tokkiList.get(0);
						// 電話番号1のハイフン編集を行う
						String telNoHfn1 = callEditTln(handle, param, tokkiMap1.get("tel_no"));
						String telNoJun1 = tokkiMap1.get("tel_no_jun");
						String bmpUm1 = tokkiMap1.get("bmp_um");
						String bmpUmNm1 = getBmpUmNm(bmpUm1);
						
						HashMap<String, String> tokkiMap2 =  tokkiList.get(1);
						// 電話番号2のハイフン編集を行う
						String telNoHfn2 = callEditTln(handle, param, tokkiMap2.get("tel_no"));
						
						String telNoJun2 = tokkiMap2.get("tel_no_jun");
						String bmpUm2 = tokkiMap2.get("bmp_um");
						String bmpUmNm2 = getBmpUmNm(bmpUm2);
						
						if ("1".equals(telNoJun1))
						{
							tokki = "番ポ（" + telNoHfn1 + "：" + bmpUmNm1 + " " + telNoHfn2 + "：" + bmpUmNm2 + "）";
						}
						else if ("1".equals(telNoJun2))
						{
							tokki = "番ポ（" + telNoHfn2 + "：" + bmpUmNm2 + " " + telNoHfn1 + "：" + bmpUmNm1+ "）";
						}
					}
					
					
					// OM-2018-0001178 DEL START
//					// 他のサービスと共有しているので、念のために初期化
//					eKK0451B002List =  new ArrayList<HashMap<String, Object>>();
//					
//					// 電話の割引サービス契約一覧照会（サービス契約番号）(EKK0451B002)
//					eKK0451B002List = getWribSvckei(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_1);
//					
//					for (int k = 0; k < eKK0451B002List.size(); k++)
//					{
//						HashMap<String, Object> eKK0451B002Msg = (HashMap<String, Object>)eKK0451B002List.get(k);
//						//割引サービスコード
//						String eKK0451B002_wribSvcCd = JKKStringUtil.nullToBlank((String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_CD));
//						
//						// 標準工事費相当額キャンペーンの情報取得（まだ標準工事費相当額キャンペーンの適用残回数が設定されていなかったら）
//						if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(eKK0451B002_wribSvcCd)
//								&& JKKStringUtil.isNullBlank(kojihiWribCampainZkaisu))
//						{
//							String wribSvcKeiNo = (String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_NO);
//							
//							// EKK0451A010_割引サービス契約一意照会
//							eKK0451A010List = getWribSvcKeiIti(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_2);
//							kojihiWribCampainStat = JKKStringUtil.nullToBlank((String)eKK0451A010List.get(0).get(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT));
//							kojihiWribCampainStatNm = JKKStringUtil.nullToBlank((String)eKK0451A010List.get(0).get(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT_NM));
//							
//							// EKK2361B010_割引サービス契約内訳一覧照会呼び出し
//							eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
//							
//							kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000003, (String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
//						}
//					}
//					
//					// ANK-3383-00-00 ADD END
					// OM-2018-0001178 DEL END
					
					//サービス開始フラグ
					svcStaTelCheckflg = true;
					//電話契約の情報を設定
					dataMap.put("svc_nm_prc_plan_nm_tel", eKK0081B010_prcGrpNm + "／" + eKK0081B010_pplanNm);
					dataMap.put("svc_kei_no_tel", eKK0081B029_svcKeiNo);
					dataMap.put("svc_sta_ymd_tel", eKK0081A010_svcStaYmd);
					// ANK-3383-00-00 MOD START
					//dataMap.put("tkjk_tel", "");
					dataMap.put("tkjk_tel", tokki);
					telSvcKeiNo = eKK0081B029_svcKeiNo;
					// ANK-3383-00-00 MOD END
				}
				//チェック（テレビ）
				if (checkArray(PRC_GRP_CD, 2, eKK0081B010_prcGrpCd))
				{
					//サービス開始フラグ
					svcStaTvCheckflg = true;
					
					// ANK-3383-08-00 ADD START
					String stchSetChrgStaYm = "";
					
					// テレビの割引サービス契約一覧照会（サービス契約番号）(EKK0451B002)
					eKK0451B002List = getWribSvckei(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_1);
					
					boolean bolStarChSetWri = false;
					for (int k = 0; k < eKK0451B002List.size(); k++)
					{
						HashMap<String, Object> eKK0451B002Msg = (HashMap<String, Object>)eKK0451B002List.get(k);
						//割引サービスコード
						String eKK0451B002_wribSvcCd = JKKStringUtil.nullToBlank((String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_CD));
						//割引サービスステータス
						String eKK0451B002_wribSvcKeiStat = JKKStringUtil.nullToBlank((String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_STAT));
						
						// スターｃｈセット割の情報取得
						if(JKKStrConst.WRIB_SVC_BS_STAR_CHANNEL_SET.equals(eKK0451B002_wribSvcCd)
							&& (JKKStrConst.CD00055_UKZM.equals(eKK0451B002_wribSvcKeiStat) || JKKStrConst.CD00055_SVCTK_CHU.equals(eKK0451B002_wribSvcKeiStat)))
						{
							bolStarChSetWri = true;
							String starChannelSetWriKakinStaYmd = JKKStringUtil.nullToBlank((String)eKK0451B002Msg.get(EKK0451B002CBSMsg1List.SVC_CHRG_STAYMD));
							
							if(!JKKStringUtil.isNullBlank(starChannelSetWriKakinStaYmd))
							{
								stchSetChrgStaYm = starChannelSetWriKakinStaYmd.substring(0,6);
							}
							
							break;
						}
					}
					// ANK-3383-08-00 ADD END
					
					//**************************************
					// ■オプションサービス契約一覧照会(EKK0351B002)
					//**************************************
					eKK0351B002List = getOpSvckei(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_1);
					// ANK-3383-08-00 MOD START
//					boolean bolOpCdStarCh = false;
//					//スターCHの数だけループさせる。
//					for (int j = 0; j < OP_SVC_CD_STAR_CH[0].length; j++)
//					{
//						
//						for (int k = 0; k < eKK0351B002List.size(); k++)
//						{
//							HashMap<String, Object> eKK0351B002Msg = (HashMap<String, Object>)eKK0351B002List.get(k);
//							//オプションサービスコード
//							String eKK0351B002_opSvcCd = JKKStringUtil.nullToBlank((String)eKK0351B002Msg.get(EKK0351B002CBSMsg1List.OP_SVC_CD));
//							//オプションサービスステータス
//							String eKK0351B002_opSvcStat = JKKStringUtil.nullToBlank((String)eKK0351B002Msg.get(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT));
//							//オプションサービスコード=B034、B083、B104、B109(スターチャンネルセット、スターチャンネル（半年）、スターチャンネル（ＣＰ）、スターチャンネル（ＢＳパススル）)かつオプションサービス契約ステータス≠'910'(解約)、'920'キャンセルの場合
//							if (OP_SVC_CD_STAR_CH[0][j].equals(eKK0351B002_opSvcCd)
//									&& !(JKKStrConst.CD00055_DSLZM.equals(eKK0351B002_opSvcStat) || JKKStrConst.CD00055_CSLZM.equals(eKK0351B002_opSvcStat)))
//							{
//								bolOpCdStarCh = true;
//								break;
//							}
//						}
//						//ひとつでもヒットすれば抜ける。
//						if (bolOpCdStarCh)
//						{
//							break;
//						}
//					}
//					
//					//対象のオプションコードが存在している場合
//					if (bolOpCdStarCh) 
//					{
//						tokki = tokki + OP_SVC_CD_STAR_CH[1][0] + "：有" + " ";
//					}
//					else
//					{
//						tokki = tokki + OP_SVC_CD_STAR_CH[1][0] + "：無" + " ";
//					}
					
					// スターチャンネルセット割が存在している場合
					if (bolStarChSetWri) 
					{
						tokki = tokki + STAR_CH_SET_WRI + "：有" + " ";
					}
					else
					{
						tokki = tokki + STAR_CH_SET_WRI + "：無" + " ";
					}
					// ANK-3383-08-00 MOD END
					
					//ガイド誌の数だけループさせる。
					for (int j = 0; j < OP_SVC_CD_GUIDE[0].length; j++)
					{
						boolean bol = false;
						
						// ANK-3383-00-00 ADD START
						String tvGuidemgNum = "";
						// ANK-3383-00-00 ADD END
						
						for (int k = 0; k < eKK0351B002List.size(); k++)
						{
							HashMap<String, Object> eKK0351B002Msg = (HashMap<String, Object>)eKK0351B002List.get(k);
							//オプションサービスコード
							String eKK0351B002_opSvcCd = JKKStringUtil.nullToBlank((String)eKK0351B002Msg.get(EKK0351B002CBSMsg1List.OP_SVC_CD));
							//オプションサービスステータス
							String eKK0351B002_opSvcStat = JKKStringUtil.nullToBlank((String)eKK0351B002Msg.get(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT));
							//オプションサービスコード=B068の場合
							if (OP_SVC_CD_GUIDE[0][j].equals(eKK0351B002_opSvcCd)
									&& !(JKKStrConst.CD00055_DSLZM.equals(eKK0351B002_opSvcStat) || JKKStrConst.CD00055_CSLZM.equals(eKK0351B002_opSvcStat)))
							{
								bol = true;
								
								// ANK-3383-00-00 ADD START
								//オプションサービス契約番号
								String eKK0351B002_opSvcKeiNo = JKKStringUtil.nullToBlank((String)eKK0351B002Msg.get(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO));
								
								List<HashMap<String, Object>>eKK0381B001List =  new ArrayList<HashMap<String, Object>>();
								eKK0381B001List = getTvGuidemgInfo(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_1);
								
								for (int l = 0; l < eKK0381B001List.size(); l++)
								{
									HashMap<String, Object> eKK0381B001Msg = (HashMap<String, Object>)eKK0381B001List.get(l);
									
									if (eKK0351B002_opSvcKeiNo.equals(JKKStringUtil.nullToBlank((String)eKK0381B001Msg.get(EKK0381B001CBSMsg1List.OP_SVC_KEI_NO))))
									{
										// テレビガイド誌のケーブルガイド申込数を取得
										tvGuidemgNum = JKKStringUtil.nullToBlank((String)eKK0381B001Msg.get(EKK0381B001CBSMsg1List.CABLE_GUIDE_MSKM_CNT));
										
										break;
									}
								}
								// ANK-3383-00-00 ADD END
								
								break;
							}
						}
						//対象のオプションコードが存在している場合
						if (bol) 
						{
							// ANK-3383-00-00 MOD START
							//tokki = tokki + OP_SVC_CD_GUIDE[1][j] + "：有" + " ";
							tokki = tokki + OP_SVC_CD_GUIDE[1][j] + "：有" + "（" + tvGuidemgNum + "冊）";
							// ANK-3383-00-00 ADD END
							
							break;
						}
						else
						{
							tokki = tokki + OP_SVC_CD_GUIDE[1][j] + "：無" + " ";
						}
					}
					
					//テレビ契約の情報を設定
					dataMap.put("svc_nm_prc_plan_nm_tv", eKK0081B010_prcGrpNm + "／" + eKK0081B010_pplanNm);
					dataMap.put("svc_kei_no_tv", eKK0081B029_svcKeiNo);
					dataMap.put("svc_sta_ymd_tv", eKK0081A010_svcStaYmd);
					dataMap.put("tkjk_tv", tokki);
					// ANK-3383-00-00 ADD START
					dataMap.put("stch_set_dsl_ssn_kin_chrg_sta_ym", stchSetChrgStaYm);
					// ANK-3383-00-00 ADD END
					tvSvcKeiNo = eKK0081B029_svcKeiNo;
				}
			}
			// ANK-4248-03-00 ADD START
			// 同一回線のネットと電話は全て標準工事費割引ＣＰサービス契約番号リストに追加
			if (checkArray(PRC_GRP_CD, 0, eKK0081B010_prcGrpCd) || checkArray(PRC_GRP_CD, 1, eKK0081B010_prcGrpCd))
			{
				kojihiCpSvcKeiNoList.add(eKK0081B029_svcKeiNo);
			}
			// ANK-4248-03-00 ADD END
		}
		
		// OM-2018-0001178 ADD START
		//**********************************************
		// 標準工事費相当額割引キャンペーン情報取得処理
		//**********************************************
		ArrayList<String> svcKeiNoList = new ArrayList<String>();
		
		// ネットまたは電話のサービス契約番号が存在した場合、リストに追加する
		if (!JKKStringUtil.isNullBlank(netSvcKeiNo))
		{
			svcKeiNoList.add(netSvcKeiNo);
		}
		
		if (!JKKStringUtil.isNullBlank(telSvcKeiNo))
		{
			svcKeiNoList.add(telSvcKeiNo);
		}
		
		// ANK-4248-03-00 ADD START
		// ネット割引サービス契約番号
		String wribSvcKeiNoNet = "";
		// 電話割引サービス契約番号
		String wribSvcKeiNoTel = "";
		// 相当額CP割引サービス契約番号
		String sotogkCpWribSvcKeiNo = "";
		// ANK-4248-03-00 ADD END
		// OM-2022-0000518 ADD START
		// ネット割引サービス詳細コード
		String wribSvcDtlCdNet = "";
		// 電話割引サービス詳細コード
		String wribSvcDtlCdTel = "";
		// OM-2022-0000518 ADD END
		
		// ネットまたは電話のサービス契約番号が存在する場合
		if (svcKeiNoList.size() > 0)
		{
			
			//サービス契約番号に紐づく、割引サービス契約一覧照会（割引用）を行う 
			ArrayList<HashMap<String, String>> ekk0451B012 = getWribSvcKeiInfo(handle, param, fixedText, retStringList(svcKeiNoList), JPCModelConstant.FUNC_CD_1);
			for (int j = 0; j < ekk0451B012.size(); j++) 
			{
				// ANK-3951-00-00 MOD START
//				if (!(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(ekk0451B012.get(j).get("wrib_svc_cd")) || 
//						JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(ekk0451B012.get(j).get("wrib_svc_cd"))))
				// IT1-2021-0000040 MOD START
//				if (!(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
//						|| JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
//						|| JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET_24.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
//						|| JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_24.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
				// ANK-3951-00-00 MOD END
				if (!(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
					|| JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
					|| JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET_24.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
					|| JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_24.equals(ekk0451B012.get(j).get("wrib_svc_cd"))
					|| JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_IKT.equals(ekk0451B012.get(j).get("wrib_svc_cd"))))
				// IT1-2021-0000040 MOD END
				{
				
					ekk0451B012.remove(j);
					j--;
				}
			}
			
			String wribSvcCdNetMax = "";
			String wribSvcStatNetMax = "";
			String wribSvcKeiNoNetMax = "";
			String wribAplyCntNetMax = "0";
			
			//相当額NETCPの最大の割引サービス契約番号を取得する。
			for (int j = ekk0451B012.size() - 1; j >= 0; j--)
			{
				String wribSvcCd = (String)ekk0451B012.get(j).get("wrib_svc_cd");
				String wribSvcKeiStat = (String)ekk0451B012.get(j).get("wrib_svc_kei_stat");
				String wribSvcKeiNo = (String)ekk0451B012.get(j).get("wrib_svc_kei_no");
				// 標準工事費相当額割引CP（ネット用）の場合
				if (JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(wribSvcCd))
				{
					wribSvcCdNetMax = wribSvcCd;
					wribSvcStatNetMax = wribSvcKeiStat;
					wribSvcKeiNoNetMax = wribSvcKeiNo;
					
					//適用回数を取得する。
					eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
					wribAplyCntNetMax = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
					// OM-2022-0000518 ADD START
					wribSvcDtlCdNet = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD));
					// OM-2022-0000518 ADD END
					// ANK-4248-03-00 ADD START
					wribSvcKeiNoNet = wribSvcKeiNo;
					// ANK-4248-03-00 ADD END
					
					break;
				}
				// ANK-3951-00-00 ADD START
				// 標準工事費相当額割引CP（２４回）（ネット用）の場合
				else if (JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET_24.equals(wribSvcCd))
				{
					wribSvcCdNetMax = wribSvcCd;
					wribSvcStatNetMax = wribSvcKeiStat;
					wribSvcKeiNoNetMax = wribSvcKeiNo;
					
					//適用回数を取得する。
					eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
					wribAplyCntNetMax = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
					// OM-2022-0000518 ADD START
					wribSvcDtlCdNet = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD));
					// OM-2022-0000518 ADD END
					// ANK-4248-03-00 ADD START
					wribSvcKeiNoNet = wribSvcKeiNo;
					// ANK-4248-03-00 ADD END
					
					break;
				}
				// ANK-3951-00-00 ADD END
			}
			
			String wribSvcCdTelMax = "";
			String wribSvcStatTelMax = "";
			String wribSvcKeiNoTelMax = "";
			String wribAplyCntTelMax = "0";
			
			//相当額TELCPの最大の割引サービス契約番号を取得する。
			for (int j = ekk0451B012.size() - 1; j >= 0; j--)
			{
				String wribSvcCd = (String)ekk0451B012.get(j).get("wrib_svc_cd");
				String wribSvcKeiStat = (String)ekk0451B012.get(j).get("wrib_svc_kei_stat");
				String wribSvcKeiNo = (String)ekk0451B012.get(j).get("wrib_svc_kei_no");
				// 標準工事費相当額割引CP（電話用）の場合
				if (JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(wribSvcCd))
				{
					wribSvcCdTelMax = wribSvcCd;
					wribSvcStatTelMax = wribSvcKeiStat;
					wribSvcKeiNoTelMax = wribSvcKeiNo;
					//適用回数を取得する。
					eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
					wribAplyCntTelMax = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
					// OM-2022-0000518 ADD START
					wribSvcDtlCdTel = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD));
					// OM-2022-0000518 ADD END
					// ANK-4248-03-00 ADD START
					wribSvcKeiNoTel = wribSvcKeiNo;
					// ANK-4248-03-00 ADD END
					
					break;
				}
				// ANK-3951-00-00 ADD START
				// 標準工事費相当額割引CP（２４回）（電話用）の場合
				else if (JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_24.equals(wribSvcCd))
				{
					wribSvcCdTelMax = wribSvcCd;
					wribSvcStatTelMax = wribSvcKeiStat;
					wribSvcKeiNoTelMax = wribSvcKeiNo;
					//適用回数を取得する。
					eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
					wribAplyCntTelMax = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
					// OM-2022-0000518 ADD START
					wribSvcDtlCdTel = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD));
					// OM-2022-0000518 ADD END
					// ANK-4248-03-00 ADD START
					wribSvcKeiNoTel = wribSvcKeiNo;
					// ANK-4248-03-00 ADD END
					
					break;
				}
				// ANK-3951-00-00 ADD END
				// IT1-2021-0000040 ADD START
				// 標準工事費相当額割引CP（一括払い）（電話用）の場合
				else if (JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_IKT.equals(wribSvcCd))
				{
					wribSvcCdTelMax = wribSvcCd;
					wribSvcStatTelMax = wribSvcKeiStat;
					wribSvcKeiNoTelMax = wribSvcKeiNo;
					//適用回数を取得する。
					eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, wribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
					wribAplyCntTelMax = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
					// OM-2022-0000518 ADD START
					wribSvcDtlCdTel = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD));
					// OM-2022-0000518 ADD END
					// ANK-4248-03-00 ADD START
					wribSvcKeiNoTel = wribSvcKeiNo;
					// ANK-4248-03-00 ADD END
					
					break;
				}
				// IT1-2021-0000040 ADD END
			}
			
			//ネットCPのみ存在している場合
			if (!JKKStringUtil.isNullBlank(wribSvcCdNetMax) && JKKStringUtil.isNullBlank(wribSvcCdTelMax))
			{
				kojihiWribCampainStat = wribSvcStatNetMax;
				// OM-2022-0000518 DEL START
//				// ANK-3951-00-00 ADD START
//				// 標準工事費相当額割引CP（ネット用）の場合
//				if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(wribSvcCdNetMax))
//				{
//				// ANK-3951-00-00 ADD END
//					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000001, wribAplyCntNetMax);
//				// ANK-3951-00-00 ADD START
//				}
//				// ANK-3951-00-00 ADD END
//				// ANK-3951-00-00 ADD START
//				// 標準工事費相当額割引CP（２４回）（ネット用）の場合
//				else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET_24.equals(wribSvcCdNetMax))
//				{
//					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000005, wribAplyCntNetMax);
//				}
//				// ANK-3951-00-00 ADD END
				// OM-2022-0000518 DEL END
				// OM-2022-0000518 ADD START
				kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, wribSvcDtlCdNet, wribAplyCntNetMax);
				// OM-2022-0000518 ADD END
				// ANK-4248-03-00 ADD START
				sotogkCpWribSvcKeiNo = wribSvcKeiNoNet;
				// ANK-4248-03-00 ADD END
			}
			//電話CPのみ存在している場合
			else if (JKKStringUtil.isNullBlank(wribSvcCdNetMax) && !JKKStringUtil.isNullBlank(wribSvcCdTelMax))
			{
				kojihiWribCampainStat = wribSvcStatTelMax;
				// OM-2022-0000518 DEL START
//				// ANK-3951-00-00 ADD START
//				// // 標準工事費相当額割引CP（電話用）の場合
//				if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(wribSvcCdTelMax))
//				{
//				// ANK-3951-00-00 ADD END
//					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000003, wribAplyCntTelMax);
//				// ANK-3951-00-00 ADD START
//				}
//				// ANK-3951-00-00 ADD END
//				// ANK-3951-00-00 ADD START
//				// 標準工事費相当額割引CP（２４回）（電話用）の場合
//				else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_24.equals(wribSvcCdTelMax))
//				{
//					// W500000004の場合
//					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000007, wribAplyCntTelMax);
//				}
//				// ANK-3951-00-00 ADD END
//				// IT1-2021-0000040 ADD START
//				else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_IKT.equals(wribSvcCdTelMax))
//				{
//				// 標準工事費相当額割引CP（一括払い）（電話用）の場合
//					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000008, wribAplyCntTelMax);
//				}
//				// IT1-2021-0000040 ADD END
				// OM-2022-0000518 DEL END
				// OM-2022-0000518 ADD START
				kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, wribSvcDtlCdTel, wribAplyCntTelMax);
				// OM-2022-0000518 ADD END
				// ANK-4248-03-00 ADD START
				sotogkCpWribSvcKeiNo = wribSvcKeiNoTel;
				// ANK-4248-03-00 ADD END
			}
			//ネット・電話CPどちらも存在している場合
			else if (!JKKStringUtil.isNullBlank(wribSvcCdNetMax) && !JKKStringUtil.isNullBlank(wribSvcCdTelMax))
			{
				if (JKKStringUtil.isNullBlank(wribAplyCntNetMax))
				{
					wribAplyCntNetMax = "0";
				}
				if (JKKStringUtil.isNullBlank(wribAplyCntTelMax))
				{
					wribAplyCntTelMax = "0";
				}
				//ネットＣＰの適用回数と電話ＣＰが同じ場合
				if (Integer.parseInt(wribAplyCntNetMax) == Integer.parseInt(wribAplyCntTelMax))
				{
					if (Integer.valueOf(wribSvcKeiNoNetMax) > Integer.valueOf(wribSvcKeiNoTelMax))
					{
						// OM-2022-0000518 DEL START
//						// ANK-3951-00-00 ADD START
//						// 標準工事費相当額割引CP（ネット用）の場合
//						if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(wribSvcCdNetMax))
//						{
//						// ANK-3951-00-00 ADD END
//							kojihiWribCampainStat = wribSvcStatNetMax;
//							kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000001, wribAplyCntNetMax);
//						// ANK-3951-00-00 ADD START	
//						}
//						// ANK-3951-00-00 ADD END
//						// ANK-3951-00-00 ADD START
//						// 標準工事費相当額割引CP（２４回）（ネット用）の場合
//						else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET_24.equals(wribSvcCdNetMax))
//						{
//							kojihiWribCampainStat = wribSvcStatNetMax;
//							kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000005, wribAplyCntNetMax);
//						}
//						// ANK-3951-00-00 ADD END
						// OM-2022-0000518 DEL END
						// OM-2022-0000518 ADD START
						kojihiWribCampainStat = wribSvcStatNetMax;
						kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, wribSvcDtlCdNet, wribAplyCntNetMax);
						// OM-2022-0000518 ADD END
						// ANK-4248-03-00 ADD START
						sotogkCpWribSvcKeiNo = wribSvcKeiNoNet;
						// ANK-4248-03-00 ADD END
					}
					else
					{
						// OM-2022-0000518 DEL START
//						// ANK-3951-00-00 ADD START
//						// 標準工事費相当額割引CP（電話用）の場合
//						if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(wribSvcStatTelMax))
//						{
//						// ANK-3951-00-00 ADD END
//							kojihiWribCampainStat = wribSvcStatTelMax;
//							kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000003, wribAplyCntTelMax);
//						// ANK-3951-00-00 ADD START	
//						}
//						// ANK-3951-00-00 ADD END
//						// ANK-3951-00-00 ADD START
//						// 標準工事費相当額割引CP（２４回）（電話用）の場合
//						else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_24.equals(wribSvcCdTelMax))
//						{
//						
//							kojihiWribCampainStat = wribSvcStatTelMax;
//							kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000007, wribAplyCntTelMax);
//						}
//						// ANK-3951-00-00 ADD END
//						// IT1-2021-0000040 ADD START
//						// 標準工事費相当額割引CP（一括払い）（電話用）の場合
//						else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_IKT.equals(wribSvcCdTelMax))
//						{
//							
//							kojihiWribCampainStat = wribSvcStatTelMax;
//							kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000008, wribAplyCntTelMax);
//						}
//						// IT1-2021-0000040 ADD END
						// OM-2022-0000518 DEL END
						// OM-2022-0000518 ADD START
						kojihiWribCampainStat = wribSvcStatTelMax;
						kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, wribSvcDtlCdTel, wribAplyCntTelMax);
						// OM-2022-0000518 ADD END
						// ANK-4248-03-00 ADD START
						sotogkCpWribSvcKeiNo = wribSvcKeiNoTel;
						// ANK-4248-03-00 ADD END
					}
				}
				//ネットＣＰの適用回数が電話ＣＰより大きい場合
				else if (Integer.parseInt(wribAplyCntNetMax) > Integer.parseInt(wribAplyCntTelMax))
				{
					// OM-2022-0000518 DEL START
//					// ANK-3951-00-00 ADD START
//					// 標準工事費相当額割引CP(ネット用）の場合
//					if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET.equals(wribSvcCdNetMax))
//					{
//					// ANK-3951-00-00 ADD END
//						kojihiWribCampainStat = wribSvcStatNetMax;
//						kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000001, wribAplyCntNetMax);
//					// ANK-3951-00-00 ADD START
//					}
//					// ANK-3951-00-00 ADD END
//					// ANK-3951-00-00 ADD START
//					// 標準工事費相当額割引CP（２４回）（ネット用）の場合
//					else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_NET_24.equals(wribSvcCdNetMax))
//					{
//						kojihiWribCampainStat = wribSvcStatNetMax;
//						kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000005, wribAplyCntNetMax);
//					}
//					// ANK-3951-00-00 ADD END
					// OM-2022-0000518 DEL END
					// OM-2022-0000518 ADD START
					kojihiWribCampainStat = wribSvcStatNetMax;
					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, wribSvcDtlCdNet, wribAplyCntNetMax);
					// OM-2022-0000518 ADD END
					// ANK-4248-03-00 ADD START
					sotogkCpWribSvcKeiNo = wribSvcKeiNoNet;
					// ANK-4248-03-00 ADD END
				}
				//ネットＣＰの適用回数が電話ＣＰより小さい場合
				else if (Integer.parseInt(wribAplyCntNetMax) < Integer.parseInt(wribAplyCntTelMax))
				{
					// OM-2022-0000518 DEL START
//					// ANK-3951-00-00 ADD END
//					// 標準工事費相当額割引CP（電話用）の場合
//					if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL.equals(wribSvcCdTelMax))
//					{
//					// ANK-3951-00-00 ADD END
//						kojihiWribCampainStat = wribSvcStatTelMax;
//						kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000003, wribAplyCntTelMax);
//					// ANK-3951-00-00 ADD START
//					}
//					// ANK-3951-00-00 ADD END
//					// ANK-3951-00-00 ADD START
//					// 標準工事費相当額割引CP（２４回）（電話用）の場合
//					else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_24.equals(wribSvcCdTelMax))
//					{
//						kojihiWribCampainStat = wribSvcStatTelMax;
//						kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000007, wribAplyCntTelMax);
//					}
//					// ANK-3951-00-00 ADD END
//					// IT1-2021-0000040 ADD START
//					// 標準工事費相当額割引CP（一括払い）（電話用）の場合
//					else if(JKKStrConst.WRIB_SVC_KOJIHI_KAP_CP_TEL_IKT.equals(wribSvcCdTelMax))
//					{
//						kojihiWribCampainStat = wribSvcStatTelMax;
//						kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, JKKStrConst.WRIB_SVC_DTL_CD_WS5000000008, wribAplyCntTelMax);
//					}
//					// IT1-2021-0000040 ADD END
					// OM-2022-0000518 DEL END
					// OM-2022-0000518 ADD START
					kojihiWribCampainStat = wribSvcStatTelMax;
					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, wribSvcDtlCdTel, wribAplyCntTelMax);
					// OM-2022-0000518 ADD END
					// ANK-4248-03-00 ADD START
					sotogkCpWribSvcKeiNo = wribSvcKeiNoTel;
					// ANK-4248-03-00 ADD END
				}
			}
		}
		
		// ANK-4248-03-00 ADD START
		//**********************************************
		// 標準工事費割引キャンペーン情報取得処理
		//**********************************************
		if (kojihiCpSvcKeiNoList != null && kojihiCpSvcKeiNoList.size() > 0)
		{
			// 工事費割引CP割引サービス契約番号
			String kojihiCpWribSvcKeiNo = "";
			// 工事費割引CP割引サービス契約ステータス
			String kojihiCpWribSvcKeiStat = "";
			
			//サービス契約番号に紐づく、割引サービス契約一覧照会（割引用）を行う 
			ArrayList<HashMap<String, String>> ekk0451B012 = getWribSvcKeiInfo(handle, param, fixedText
					, retStringList((ArrayList)kojihiCpSvcKeiNoList), JPCModelConstant.FUNC_CD_1);
			
			for (int i = 0; i < ekk0451B012.size(); i++) 
			{
				String wribSvcCd = JKKStringUtil.nullToBlank(ekk0451B012.get(i).get("wrib_svc_cd"));
				String wribSvcKeiNo = JKKStringUtil.nullToBlank(ekk0451B012.get(i).get("wrib_svc_kei_no"));
				String wribSvcKeiStat = JKKStringUtil.nullToBlank(ekk0451B012.get(i).get("wrib_svc_kei_stat"));
				if (HYOJUN_KOJIHI_WRBK_CP_LIST.contains(wribSvcCd))
				{
					if (!JKKStringUtil.isNullBlank(wribSvcKeiNo))
					{
						if (JKKStringUtil.isNullBlank(kojihiCpWribSvcKeiNo))
						{
							// 工事費割引CPが未設定なら設定する
							kojihiCpWribSvcKeiNo = wribSvcKeiNo;
							kojihiCpWribSvcKeiStat = wribSvcKeiStat;
						}
						else if (Integer.parseInt(wribSvcKeiNo) > Integer.parseInt(kojihiCpWribSvcKeiNo))
						{
							// 退避した工事費割引CPより新しければ設定し直す
							kojihiCpWribSvcKeiNo = wribSvcKeiNo;
							kojihiCpWribSvcKeiStat = wribSvcKeiStat;
						}
					}
				}
			}
			// 標準工事費割引キャンペーンがある場合
			if (!JKKStringUtil.isNullBlank(kojihiCpWribSvcKeiNo))
			{
				if (JKKStringUtil.isNullBlank(sotogkCpWribSvcKeiNo))
				{
					sotogkCpWribSvcKeiNo = "0";
				}
				// 標準工事費相当額割引ＣＰと比較して新しければＣＰの残回数とステータスを置き換える
				if (Integer.parseInt(sotogkCpWribSvcKeiNo) < Integer.parseInt(kojihiCpWribSvcKeiNo))
				{
					eKK2361B010List = getWribSvcKeiUcwk(handle, param, fixedText, kojihiCpWribSvcKeiNo, JPCModelConstant.FUNC_CD_1);
					String wribAplyCnt = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
					String wribSvcDtlCd = JKKStringUtil.nullToBlank((String)eKK2361B010List.get(0).get(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD));
					kojihiWribCampainZkaisu = getKojihiWribCampainZkaisu(handle, param, fixedText, wribSvcDtlCd, wribAplyCnt);
					kojihiWribCampainStat = kojihiCpWribSvcKeiStat;
				}
			}
		}
		// ANK-4248-03-00 ADD END
		
		// 標準工事費相当額割引ＣＰのステータスが設定されていたら、名称を取得する。
		if (!JKKStringUtil.isNullBlank(kojihiWribCampainStat))
		{
			kojihiWribCampainStatNm = getCdDivNm(handle, retParam, fixedText, CD_SBT_CD_CD00055, kojihiWribCampainStat, JPCModelConstant.FUNC_CD_1);
		}
		// OM-2018-0001178 ADD END
		
		// ANK-3383-00-00 ADD START
		dataMap.put("shk_dsp_kojihi_wrbk_campaign_stat", kojihiWribCampainStat);
		if (JKKStringUtil.isNullBlank(kojihiWribCampainStatNm))
		{
			dataMap.put("shk_dsp_kojihi_wrbk_campaign_stat_nm", "無");
		}
		else
		{
			dataMap.put("shk_dsp_kojihi_wrbk_campaign_stat_nm", kojihiWribCampainStatNm);
		}
		dataMap.put("shk_dsp_kojihi_wrib_campaign_zkaisu", kojihiWribCampainZkaisu);
		// ANK-3383-00-00 ADD END
		
		// ANK-3383-00-00 ADD START
		if (svcStaNetCheckflg || svcStaTelCheckflg || svcStaTvCheckflg)
		{
		// ANK-3383-00-00 ADD START
			//サービス契約回線内訳一覧照会（サービス契約番号）を取得
			String svcKeiKaisenUcwkNo = callGetKaisenTgSvkei(handle, retParam, scCall, fixedText, svcKeiNo);
			
			//標準工事費割賦情報取得処理
			if (!JKKStringUtil.isNullBlank(svcKeiKaisenUcwkNo))
			{
				//割賦請求開始年月を取得する。
				// IT1-2018-0000034 MOD START
				//String kapIktSikySwchYm = callGetKojihiKapKeiSc(handle, retParam, fixedText, svcKeiKaisenUcwkNo, JPCModelConstant.FUNC_CD_2);
				//dataMap.put("kojihi_kap_seiky_sta_ym", kapIktSikySwchYm);
				List<HashMap<String, Object>> eKK3131B010List =  new ArrayList<HashMap<String, Object>>();
				eKK3131B010List = callGetKojihiKapKeiSc(handle, retParam, fixedText, svcKeiKaisenUcwkNo, JPCModelConstant.FUNC_CD_2);
				
				// ANK-3883-00-00 MOD START
				//String kapSeikyStaYmd = "";
				String kapPlanCdNm = "";
				String kapPlanCd = "";
				String kapPayZanCnt = "";
				String kapPaySeikyStaYm = "";
				String pcrsCd = "";
				String nowStdardKojihiZanKin = "";
				// ANK-3883-00-00 MOD END
				
				if (eKK3131B010List != null && eKK3131B010List.size() > 0)
				{
					HashMap<String, Object> eKK3131B010 = new HashMap<String, Object>();
					eKK3131B010 = eKK3131B010List.get(0);
					
					// ANK-3383-00-00 MOD START
					//kapSeikyStaYmd = (String)eKK3131B010.get(EKK3131B010CBSMsg1List.KAP_SEIKY_STA_YM);
					String kojihiKapKeiNo = "";
					String kojihiKapGeneAddDtm = "";
					
					kojihiKapKeiNo = (String)eKK3131B010.get(EKK3131B010CBSMsg1List.KOJIHI_KAP_KEI_NO);
					kojihiKapGeneAddDtm = (String)eKK3131B010.get(EKK3131B010CBSMsg1List.GENE_ADD_DTM);
					
					// 工事費割賦契約一意照会の呼び出し
					List<HashMap<String, Object>> eKK3131A010List =  new ArrayList<HashMap<String, Object>>();
					eKK3131A010List = callGetKojihiKapKeiItiSc(handle, retParam, fixedText, kojihiKapKeiNo, kojihiKapGeneAddDtm, JPCModelConstant.FUNC_CD_1);
					
					if (eKK3131A010List != null && eKK3131A010List.size() > 0)
					{
						HashMap<String, Object> eKK3131A010 = new HashMap<String, Object>();
						HashMap<String,Object> eAC0611B010Map = new HashMap<String,Object>();
						List<HashMap<String, Object>> kapPrcList = new ArrayList<HashMap<String, Object>>();
						eKK3131A010 = eKK3131A010List.get(0);
						
						kapPlanCdNm = (String)eKK3131A010.get(EKK3131A010CBSMsg1List.KAP_PLAN_CD_NM);
						kapPlanCd = (String)eKK3131A010.get(EKK3131A010CBSMsg1List.KAP_PLAN_CD);
						kapPayZanCnt = (String)eKK3131A010.get(EKK3131A010CBSMsg1List.KAP_PAY_ZAN_CNT);
						kapPaySeikyStaYm = (String)eKK3131A010.get(EKK3131A010CBSMsg1List.KAP_SEIKY_STA_YM);
						// OM-2021-0002016 ADD START
						String kapPayCnt = getKapPayCnt(handle, param, fixedText, kapPlanCd, JPCModelConstant.FUNC_CD_2);	// 割賦支払い総回数
						// OM-2021-0002016 ADD END
						
						for (int i = 0; i < eKK0081B029List.size(); i++)
						{
							HashMap<String, Object> eKK0081B029Msg = (HashMap<String, Object>)eKK0081B029List.get(i);
							//サービス契約番号
							String eKK0081B029_svcKeiNo = JKKStringUtil.nullToBlank((String)eKK0081B029Msg.get(EKK0081B029CBSMsg1List.SVC_KEI_NO));
							
							// サービス契約共通情報一覧照会
							eKK0081B010List = getSvcKeiInfoEKK0081B010(handle, param, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_1);
							
							//サービスが存在しない場合、次の処理へ
							if (null == eKK0081B010List)
							{
								continue;
							}
							
							HashMap<String, Object> eKK0081B010Msg = (HashMap<String, Object>)eKK0081B010List.get(0);
							
							//サービス契約一意照会
							eKK0081A010List = getSvckeiIti(handle, retParam, fixedText, eKK0081B029_svcKeiNo, JPCModelConstant.FUNC_CD_2);
							HashMap<String, Object> eKK0081A010Msg = (HashMap<String, Object>)eKK0081A010List.get(0);
							
							//料金グループコード
							String eKK0081B010_prcGrpCd = JKKStringUtil.nullToBlank((String)eKK0081B010Msg.get(EKK0081B010CBSMsg1List.PRC_GRP_CD));
							
							if (checkArray(PRC_GRP_CD, 0, eKK0081B010_prcGrpCd) || checkArray(PRC_GRP_CD, 1, eKK0081B010_prcGrpCd))
							{
								pcrsCd = JKKStringUtil.nullToBlank((String)eKK0081A010Msg.get(EKK0081A010CBSMsg1List.PCRS_CD));
								
								break;
							}
							
						}
						
						// 割賦料金一覧照会を実行
						kapPrcList = callGetKapPcrsSc(handle, param, fixedText, pcrsCd, kapPlanCd, JPCBPCommon.getOpeDate(null), JPCModelConstant.FUNC_CD_1);
						
						if (null != kapPrcList && kapPrcList.size() > 0)
						{
							eAC0611B010Map = (HashMap<String,Object>)kapPrcList.get(0);
						}
						//#87277 ADD START 
						if(null != eAC0611B010Map && eAC0611B010Map.size() > 0){
						//#87277 ADD END
						    // 初回料金を取得
						    String firstPrc = JKKStringUtil.nullToBlank((String)eAC0611B010Map.get(EAC0611B010CBSMsg1List.FIRST_PRC));
						    // 継続料金を取得
						    String keizokuPrc = JKKStringUtil.nullToBlank((String)eAC0611B010Map.get(EAC0611B010CBSMsg1List.KEIZOKU_PRC));
						
						    // ANK-3636-00-00 MOD START
						    // ANK-3951-00-00 MOD START
//						    if(JKKStrConst.KAP_PLAN_CD_BUNKATSU.equals(kapPlanCd) || JKKStrConst.KAP_PLAN_CD_BUNKATSU_10_PERCENT.equals(kapPlanCd))
						    if(JKKStrConst.KAP_PLAN_CD_BUNKATSU.equals(kapPlanCd) || JKKStrConst.KAP_PLAN_CD_BUNKATSU_10_PERCENT.equals(kapPlanCd)
								    || JKKStrConst.KAP_PLAN_CD_BUNKATSU_24_10PER.equals(kapPlanCd))
						    // ANK-3951-00-00 MOD END
						    // ANK-3636-00-00 MOD END
						    {
							    // OM-2021-0002016 MOD START
							    if (kapPayZanCnt.equals(kapPayCnt))
						    //	if (JKKStringUtil.isNullBlank(kapPaySeikyStaYm))
							    // OM-2021-0002016 MOD START
							    {
								    // 「割賦残回数」が「割賦総回数」と同じ未設定の場合（ 初回料金 ＋ 継続料金 × （割賦残回数 − １））
								    nowStdardKojihiZanKin = String.valueOf( Integer.parseInt(firstPrc) + Integer.parseInt(keizokuPrc) * (Integer.parseInt(kapPayZanCnt) - 1) );
							    } else
							    {
								    // 「割賦残回数」が「割賦総回数」と異なる場合（ 継続料金 × 割賦残回数 ）
								    nowStdardKojihiZanKin = String.valueOf( Integer.parseInt(keizokuPrc) * Integer.parseInt(kapPayZanCnt) );
							    }
						    }
						    // ANK-3636-00-00 MOD START
						    else if(JKKStrConst.KAP_PLAN_CD_IKKATSU.equals(kapPlanCd) || JKKStrConst.KAP_PLAN_CD_IKKATSU_10_PERCENT.equals(kapPlanCd))
						    // ANK-3636-00-00 MOD END
						    {
							    // 初回料金 × 割賦支払残回数
							    nowStdardKojihiZanKin = String.valueOf( Integer.valueOf(firstPrc) * Integer.valueOf(kapPayZanCnt));
						    }
						    //#87277 ADD START
						}
						    //#87277 ADD END
					}
					// ANK-3383-00-00 MOD END
				}
				// ANK-3383-00-00 MOD START
				//dataMap.put("kojihi_kap_seiky_sta_ym", kapSeikyStaYmd);
				dataMap.put("shk_dsp_kojihi_kap_plan_nm", kapPlanCdNm);
				dataMap.put("kojihi_kap_seiky_sta_ym", kapPaySeikyStaYm);
				dataMap.put("shk_dsp_kojihi_kap_zdk", nowStdardKojihiZanKin);
				dataMap.put("shk_dsp_kap_pay_zan_cnt", kapPayZanCnt);
				// ANK-3383-00-00 MOD END
				// IT1-2018-0000034 MOD END
			}
		// ANK-3383-00-00 ADD START
		}
		// ANK-3383-00-00 ADD END
		
		//ネット・テレビが存在する場合
		if (!JKKStringUtil.isNullBlank(netSvcKeiNo) || !JKKStringUtil.isNullBlank(tvSvcKeiNo))
		{
			String svcKeiNoEKK0341B035 = "";
			String kktkSvcCdEKK0341B035 = "";
			// ANK-3383-00-00 MOD START
//			if (!JKKStringUtil.isNullBlank(netSvcKeiNo) && !JKKStringUtil.isNullBlank(tvSvcKeiNo))
//			{
//				svcKeiNoEKK0341B035 = netSvcKeiNo + "," + tvSvcKeiNo;
//				kktkSvcCdEKK0341B035 = JKKStrConst.KKTK_SVC_CD_TABLET + "," + JKKStrConst.KKTK_SVC_CD_STB;
//			} 
//			else if (!JKKStringUtil.isNullBlank(netSvcKeiNo))
//			{
//				svcKeiNoEKK0341B035 = netSvcKeiNo;
//				kktkSvcCdEKK0341B035 = JKKStrConst.KKTK_SVC_CD_TABLET;
//			}
//			else if (!JKKStringUtil.isNullBlank(tvSvcKeiNo))
//			{
//				svcKeiNoEKK0341B035 = tvSvcKeiNo;
//				kktkSvcCdEKK0341B035 = JKKStrConst.KKTK_SVC_CD_STB;
//			}
			if (!JKKStringUtil.isNullBlank(netSvcKeiNo))
			{
				svcKeiNoEKK0341B035 = netSvcKeiNo;
				kktkSvcCdEKK0341B035 = JKKStrConst.KKTK_SVC_CD_TABLET;
				
				//機器情報を取得する。
				eKK0341B035List = getKikiInfoEKK0341B035(handle, retParam, fixedText, svcKeiNoEKK0341B035, kktkSvcCdEKK0341B035, JPCModelConstant.FUNC_CD_1);
			}
			// ANK-3383-00-00 MOD END
			
			// ANK-3383-00-00 DEL START
//			//機器情報を取得する。
//			eKK0341B035List = getKikiInfoEKK0341B035(handle, retParam, fixedText, svcKeiNoEKK0341B035, kktkSvcCdEKK0341B035, JPCModelConstant.FUNC_CD_1);
			// ANK-3383-00-00 DEL END
			
			// ANK-3383-00-00 ADD START
			// 機器の情報を取得する（スマリン・GoogleHome）
			
			if (eKK0341B035List != null && eKK0341B035List.size() > 0)
			{
				// 業務パラメータよりGoogleHomeの宅内機器型式を取得
				String[] ghTkkkMdl = getHjnkjhKapsdSymd(handle, retParam, fixedText, JKKStrConst.WORK_PARAM_ID_KK_GH_TKKKMDL, JPCModelConstant.FUNC_CD_1);
				
				for (int i = 0;  i < eKK0341B035List.size(); i++)
				{
					// eoスマートリンクとGoogleHomeの判別してそれぞれリストに格納
					HashMap<String, Object> eKK0341B035Map = eKK0341B035List.get(i);
					String taknkikiMdlCd = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.TAKNKIKI_MODEL_CD));
					
					if (checkGhMdlCd(ghTkkkMdl, taknkikiMdlCd))
					{
						HashMap<String, String> googleHomeMap = new HashMap<String, String>();
						
						String kktkSvcKeiStat = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_STAT));
						
						if (JKKStrConst.CD00056_STAT_TEIKYO_CHU.equals(kktkSvcKeiStat))
						{
							String kktkSvcKeiNo = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_NO));
							String kapKisanYm = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KAP_SEIKY_STA_YM));
							String tnmtBuyWayNm = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KAP_PLAN_NM));
							String kapHambaiFromCd = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KAP_HAMBAI_FORM_CD));
							
							googleHomeMap.put("gglhm_kktk_svc_kei_no", kktkSvcKeiNo);
							googleHomeMap.put("gglhm_kiki_model", taknkikiMdlCd);
							googleHomeMap.put("gglhm_kap_kisan_ym", kapKisanYm);
							googleHomeMap.put("gglhm_tnmt_buy_way", tnmtBuyWayNm);
							googleHomeMap.put("gglhm_kap_hambai_form_cd", kapHambaiFromCd);
							
							googleHomeList.add(googleHomeMap);
						}
					}
					else
					{
						if (JKKStrConst.CD_DIV_NM_UM_ARI.equals(JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.PREMIUM_PACK_UM))))
						{
							HashMap<String, String> eoSmartLinkMap = new HashMap<String, String>();
							
							String kktkSvcKeiStat = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_STAT));
							
							if (JKKStrConst.CD00056_STAT_TEIKYO_CHU.equals(kktkSvcKeiStat))
							{
								String kktkSvcKeiNo = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_NO));
								String kapKisanYm = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KAP_SEIKY_STA_YM));
								String tnmtBuyWayNm = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KAP_PLAN_NM));
								String kapHambaiFromCd = JKKStringUtil.nullToBlank((String)eKK0341B035Map.get(EKK0341B035CBSMsg1List.KAP_HAMBAI_FORM_CD));
								
								eoSmartLinkMap.put("smtlnk_kktk_svc_kei_no", kktkSvcKeiNo);
								eoSmartLinkMap.put("smtlnk_kiki_model", taknkikiMdlCd);
								eoSmartLinkMap.put("smtlnk_kap_kisan_ym", kapKisanYm);
								eoSmartLinkMap.put("smtlnk_ynmt_buy_way", tnmtBuyWayNm);
								eoSmartLinkMap.put("smtlnk_kap_hambai_form_cd", kapHambaiFromCd);
								
								eoSmartLinkList.add(eoSmartLinkMap);
							}
						}
					}
				}
			}
			
			if (!JKKStringUtil.isNullBlank(tvSvcKeiNo))
			{
				// 機器提供サービス契約一覧照会(接続機器情報)呼び出し
				List eKK0341B012 = getKikiInfoEKK0341B012(handle, retParam, fixedText, tvSvcKeiNo, JPCModelConstant.FUNC_CD_1);
				
				if (eKK0341B012.size() > 0)
				{
					for (int j = 0; j < eKK0341B012.size(); j++)
					{
						HashMap<String, Object> eKK0341B012Map = (HashMap<String, Object>)eKK0341B012.get(j);
						
						String kktkSvcCd = JKKStringUtil.nullToBlank((String)eKK0341B012Map.get(EKK0341B012CBSMsg1List.KKTK_SVC_CD));
						String kktkSvcKeiStat = JKKStringUtil.nullToBlank((String)eKK0341B012Map.get(EKK0341B012CBSMsg1List.KKTK_SVC_KEI_STAT));
						
						if (JKKStrConst.KKTK_SVC_CD_STB.equals(kktkSvcCd)
								// OM-2019-0000578 MOD START
								//&& !(JKKStrConst.CD00056_STAT_DSLZUMI.equals(kktkSvcKeiStat) || JKKStrConst.CD00056_STAT_CANCELZUMI.equals(kktkSvcKeiStat)))
								&& JKKStrConst.CD00056_STAT_TEIKYO_CHU.equals(kktkSvcKeiStat))
								// OM-2019-0000578 MOD END
						{
							HashMap <String, String> stbInfoMap = new HashMap <String, String>();
							
							String kktkSvcKeiNo = JKKStringUtil.nullToBlank((String)eKK0341B012Map.get(EKK0341B012CBSMsg1List.KKTK_SVC_KEI_NO));
							String tankikiModelCd = JKKStringUtil.nullToBlank((String)eKK0341B012Map.get(EKK0341B012CBSMsg1List.TAKNKIKI_MODEL_CD));
							String planStaymd = JKKStringUtil.nullToBlank((String)eKK0341B012Map.get(EKK0341B012CBSMsg1List.PLAN_STAYMD));
							String pcrsCdNm = JKKStringUtil.nullToBlank((String)eKK0341B012Map.get(EKK0341B012CBSMsg1List.PCRS_CD_NM));
							String pplanCd = JKKStringUtil.nullToBlank((String)eKK0341B012Map.get(EKK0341B012CBSMsg1List.PPLAN_CD));
							
							stbInfoMap.put("stb_kktk_svc_kei_no", kktkSvcKeiNo);
							stbInfoMap.put("stb_kiki_model", tankikiModelCd);
							stbInfoMap.put("stb_plan_staymd", planStaymd);
							stbInfoMap.put("stb_tvcrs", pcrsCdNm);
							stbInfoMap.put("stb_pplan_cd", pplanCd);
							
							stbInfoList.add(stbInfoMap);
						}
					}
				}
			}
			// ANK-3383-00-00 ADD END
		}
		
		// ANK-3383-00-00 ADD START
		dataMap.put("gglhm_info_list_cnt", String.valueOf(googleHomeList.size()));
		dataMap.put("gglhm_info_list", googleHomeList);
		dataMap.put("smtlnk_info_list_cnt", String.valueOf(eoSmartLinkList.size()));
		dataMap.put("smtlnk_info_list", eoSmartLinkList);
		dataMap.put("stb_info_list_cnt", String.valueOf(stbInfoList.size()));
		dataMap.put("stb_info_list", stbInfoList);
		// ANK-3383-00-00 ADD END
		
		
		// ANK-3383-00-00 ADD START
		// 他の機器情報を取得
		if (!JKKStringUtil.isNullBlank(netSvcKeiNo) || !JKKStringUtil.isNullBlank(telSvcKeiNo) || !JKKStringUtil.isNullBlank(tvSvcKeiNo))
		{
			String svcKeiNoEKK0341B035 = "";
			
			if (!JKKStringUtil.isNullBlank(netSvcKeiNo))
			{
				svcKeiNoEKK0341B035 = netSvcKeiNo;
			}
			
			if (!JKKStringUtil.isNullBlank(telSvcKeiNo))
			{
				if (!JKKStringUtil.isNullBlank(svcKeiNoEKK0341B035))
				{
					svcKeiNoEKK0341B035 = svcKeiNoEKK0341B035 + "," + telSvcKeiNo;
				}
				else
				{
					svcKeiNoEKK0341B035 = telSvcKeiNo;
				}
			}
			
			if (!JKKStringUtil.isNullBlank(tvSvcKeiNo))
			{
				if (!JKKStringUtil.isNullBlank(svcKeiNoEKK0341B035))
				{
					svcKeiNoEKK0341B035 = svcKeiNoEKK0341B035 + "," + tvSvcKeiNo;
				}
				else
				{
					svcKeiNoEKK0341B035 = tvSvcKeiNo;
				}
			}
			
			String kktkSvcCdEKK0341B035 = "";
			for (int i = 0; i < KIKI_INFO_TRGT_GAI.length ; i++)
			{
				// 機器情報表示対象外情報のサイズ分だけインプットデータに設定。
				if (!JKKStringUtil.isNullBlank(kktkSvcCdEKK0341B035))
				{
					kktkSvcCdEKK0341B035 = kktkSvcCdEKK0341B035 + "," + KIKI_INFO_TRGT_GAI[i];
				}
				else
				{
					kktkSvcCdEKK0341B035 = KIKI_INFO_TRGT_GAI[i];
				}
			}
			
			//機器情報を取得する。
			eKK0341B035List = getKikiInfoEKK0341B035(handle, retParam, fixedText, svcKeiNoEKK0341B035, kktkSvcCdEKK0341B035, JPCModelConstant.FUNC_CD_2);
		}
		// ANK-3383-00-00 ADD END
		dataMap.put(EKK0341B035CBSMsg.EKK0341B035CBSMSG1LIST, eKK0341B035List);

		// ANK-3383-06-00 ADD START
		// 直近で料金計算した対象月の最終年月日を取得する。
		String rcntPrccalcLastYmd = getRcntPrccalcLastYmd(handle, retParam, fixedText);
		
		dataMap.put("rcnt_prccalc_last_ymd", rcntPrccalcLastYmd);
		// ANK-3383-06-00 ADD END
		
		//ネットが存在する場合
		if (!JKKStringUtil.isNullBlank(netSvcKeiNo))
		{
			//割賦情報ボタン活性制御フラグ　割賦情報ボタン押下可能
			dataMap.put("kap_info_btn_kassei_ctrl_flg", "0");
		}
		else
		{
			//割賦情報ボタン活性制御フラグ　割賦情報ボタン押下不可能
			dataMap.put("kap_info_btn_kassei_ctrl_flg", "1");
		}
		
		//マンション情報検索
		String mansionBukkenCd = selectEkk0861(handle, retParam, fixedText, svcKeiNo, JPCModelConstant.FUNC_CD_2);
		//マンションの場合
		if ("001".equals(mansionBukkenCd))
		{
			//計算ボタン活性制御フラグ　計算ボタン押下不可能
			dataMap.put("calc_btn_kassei_ctrl_flg", "1");
		}
		//マンション以外の場合
		else
		{
			//計算ボタン活性制御フラグ 計算ボタン押下可能
			dataMap.put("calc_btn_kassei_ctrl_flg", "0");
		}
		
		//サービス開始日チェックフラグを設定
		if (svcStaNetCheckflg || svcStaTelCheckflg || svcStaTvCheckflg) 
		{
			//サービス開始日チェックフラグ
			dataMap.put("svc_sta_check_flg", "0");
		}
		else
		{
			//サービス開始日チェックフラグ
			dataMap.put("svc_sta_check_flg", "1");
		}
		
		return retParam;
	}
	
	/**
	 *同一回線内訳サービス契約一覧照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param ccMsg精算金計算画面初期表示部品データ取得CCマップ
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getSvcKeiInfoEKK0081B029(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, Map<String, Object> ccMsg
															, String func_cd)throws Throwable
	{
		//同一回線内訳サービス契約一覧照会
		List<HashMap<String, Object>> eKK0081B029List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//同一回線内訳サービス契約一覧照会の上りマッピング
		Object[][] eKK0081B029In =
		{
			{EKK0081B029CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081B029}
			// 機能コード："2"
			, {EKK0081B029CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0081B029CBSMsg.KEY_SVC_KEI_NO, ccMsg.get("svc_kei_no")}
			// ＫＥＹ＿回線内訳基準年月日
			, {EKK0081B029CBSMsg.KEY_KISUW_STDARDYMD, JPCBPCommon.getOpeDate(null)}
		};

		// サービスIF実行
		CAANMsg[] eKK0081B029Msg1List = callSC(handle, scCall, param, fixedText, eKK0081B029In,
				new EKK0081B029CBSMsg().getContents()).getCAANMsgList(EKK0081B029CBSMsg.EKK0081B029CBSMSG1LIST);
		
		if (null != eKK0081B029Msg1List)
		{
			for (CAANMsg eKK0081B029Msg : eKK0081B029Msg1List)
			{
				HashMap<String, Object> eKK0081B029Map = new HashMap<String, Object>();
				eKK0081B029Map.put(EKK0081B029CBSMsg1List.SVC_KEI_NO, eKK0081B029Msg.getString(EKK0081B029CBSMsg1List.SVC_KEI_NO));
				eKK0081B029List.add(eKK0081B029Map);
			}
		}
		return eKK0081B029List;
	}
	
	/**
	 *サービス契約共通情報一覧照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 精算金計算
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getSvcKeiInfoEKK0081B010(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															, String func_cd)throws Throwable
	{
		//サービス契約共通情報一覧照会
		List<HashMap<String, Object>> eKK0081B010List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//サービス契約共通情報一覧照会の上りマッピング
		Object[][] eKK0081B010In =
		{
			{EKK0081B010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081B010}
			// 機能コード："1"
			, {EKK0081B010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0081B010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
		};

		// サービスIF実行
		CAANMsg[] eKK0081B010Msg1List = callSC(handle, scCall, param, fixedText, eKK0081B010In,
				new EKK0081B010CBSMsg().getContents()).getCAANMsgList(EKK0081B010CBSMsg.EKK0081B010CBSMSG1LIST);
		
		if (null != eKK0081B010Msg1List)
		{
			for (CAANMsg eKK0081B010Msg : eKK0081B010Msg1List)
			{
				HashMap<String, Object> eKK0081B010Map = new HashMap<String, Object>();
				eKK0081B010Map.put(EKK0081B010CBSMsg1List.SVC_KEI_NO, eKK0081B010Msg.getString(EKK0081B010CBSMsg1List.SVC_KEI_NO));
				eKK0081B010Map.put(EKK0081B010CBSMsg1List.SVC_KEI_STAT, eKK0081B010Msg.getString(EKK0081B010CBSMsg1List.SVC_KEI_STAT));
				eKK0081B010Map.put(EKK0081B010CBSMsg1List.PPLAN_NM, eKK0081B010Msg.getString(EKK0081B010CBSMsg1List.PPLAN_NM));
				eKK0081B010Map.put(EKK0081B010CBSMsg1List.PRC_GRP_CD, eKK0081B010Msg.getString(EKK0081B010CBSMsg1List.PRC_GRP_CD));
				eKK0081B010Map.put(EKK0081B010CBSMsg1List.PRC_GRP_NM, eKK0081B010Msg.getString(EKK0081B010CBSMsg1List.PRC_GRP_NM));
				eKK0081B010List.add(eKK0081B010Map);
			}
		}
		return eKK0081B010List;
	}
	
	/**
	 *サービス契約一意照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getSvckeiIti(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															, String func_cd)throws Throwable
	{
		//申込明細一意照会
		List<HashMap<String, Object>> eKK0081A010List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//申込明細一意照会の上りマッピング
		Object[][] eKK0081A010In =
		{
			{EKK0081A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081A010}
			// 機能コード："2"
			, {EKK0081A010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
			// ＫＥＹ＿適用年月日
			, {EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JPCBPCommon.getOpeDate(null)}
		};

		// サービスIF実行
		CAANMsg[] eKK0081A010Msg1List = callSC(handle, scCall, param, fixedText, eKK0081A010In,
				new EKK0081A010CBSMsg().getContents()).getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
		
		if (null != eKK0081A010Msg1List)
		{
			for (CAANMsg eKK0081A010Msg : eKK0081A010Msg1List)
			{
				HashMap<String, Object> eKK0081A010Map = new HashMap<String, Object>();
				eKK0081A010Map.put(EKK0081A010CBSMsg1List.SVC_CD_NM, eKK0081A010Msg.getString(EKK0081A010CBSMsg1List.SVC_CD_NM));
				eKK0081A010Map.put(EKK0081A010CBSMsg1List.SVC_STA_YMD, eKK0081A010Msg.getString(EKK0081A010CBSMsg1List.SVC_STA_YMD));
				// ANK-3383-00-00 ADD START
				eKK0081A010Map.put(EKK0081A010CBSMsg1List.PCRS_CD, eKK0081A010Msg.getString(EKK0081A010CBSMsg1List.PCRS_CD));
				// ANK-3383-00-00 ADD END
				eKK0081A010List.add(eKK0081A010Map);
			}
		}
		return eKK0081A010List;
	}
	
	/**
	 *割引サービス契約一覧照会（サービス契約番号）を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getWribSvckei(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															, String func_cd)throws Throwable
	{
		//割引サービス契約一覧照会（サービス契約番号）
		List<HashMap<String, Object>> eKK0451B002List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//割引サービス契約一覧照会（サービス契約番号）の上りマッピング
		Object[][] eKK0451B002In =
		{
			{EKK0451B002CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0451B002}
			// 機能コード："1"
			, {EKK0451B002CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0451B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
		};

		// サービスIF実行
		CAANMsg[] eKK0451B002Msg1List = callSC(handle, scCall, param, fixedText, eKK0451B002In,
				new EKK0451B002CBSMsg().getContents()).getCAANMsgList(EKK0451B002CBSMsg.EKK0451B002CBSMSG1LIST);
		
		if (null != eKK0451B002Msg1List)
		{
			for (CAANMsg eKK0451B002Msg : eKK0451B002Msg1List)
			{
				HashMap<String, Object> eKK0451B002Map = new HashMap<String, Object>();
				eKK0451B002Map.put(EKK0451B002CBSMsg1List.WRIB_SVC_CD, eKK0451B002Msg.getString(EKK0451B002CBSMsg1List.WRIB_SVC_CD));
				eKK0451B002Map.put(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_STAT, eKK0451B002Msg.getString(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_STAT));
				// ANK-3383-00-00 ADD START
				eKK0451B002Map.put(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_NO, eKK0451B002Msg.getString(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_NO));
				eKK0451B002Map.put(EKK0451B002CBSMsg1List.SVC_CHRG_STAYMD, eKK0451B002Msg.getString(EKK0451B002CBSMsg1List.SVC_CHRG_STAYMD));
				eKK0451B002Map.put(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_AT_KEIZK_SKCD, eKK0451B002Msg.getString(EKK0451B002CBSMsg1List.WRIB_SVC_KEI_AT_KEIZK_SKCD));
				// ANK-3383-00-00 ADD END
				eKK0451B002List.add(eKK0451B002Map);
			}
		}
		return eKK0451B002List;
	}
	
	/**
	 *オプションサービス契約一覧照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getOpSvckei(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															, String func_cd)throws Throwable
	{
		//割引サービス契約一覧照会（サービス契約番号）
		List<HashMap<String, Object>> eKK0351B002List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//割引サービス契約一覧照会（サービス契約番号）の上りマッピング
		Object[][] eKK0351B002In =
		{
			{EKK0351B002CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0351B002}
			// 機能コード："1"
			, {EKK0351B002CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0351B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
		};

		// サービスIF実行
		CAANMsg[] eKK0351B002Msg1List = callSC(handle, scCall, param, fixedText, eKK0351B002In,
				new EKK0351B002CBSMsg().getContents()).getCAANMsgList(EKK0351B002CBSMsg.EKK0351B002CBSMSG1LIST);
		
		if (null != eKK0351B002Msg1List)
		{
			for (CAANMsg eKK0351B002Msg : eKK0351B002Msg1List)
			{
				HashMap<String, Object> eKK0351B002Map = new HashMap<String, Object>();
				eKK0351B002Map.put(EKK0351B002CBSMsg1List.OP_SVC_CD, eKK0351B002Msg.getString(EKK0351B002CBSMsg1List.OP_SVC_CD));
				eKK0351B002Map.put(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT, eKK0351B002Msg.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_STAT));
				// ANK-3383-00-00 ADD START
				eKK0351B002Map.put(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO, eKK0351B002Msg.getString(EKK0351B002CBSMsg1List.OP_SVC_KEI_NO));
				// ANK-3383-00-00 ADD END
				eKK0351B002List.add(eKK0351B002Map);
			}
		}
		return eKK0351B002List;
	}
	
	/**
	 * サービス契約回線内訳一覧照会（サービス契約番号）を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param scCall SC呼出部品のインスタンス
 	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 回線対象サービス契約番号
	 * @throws Throwable 
	 */
	private String callGetKaisenTgSvkei(SessionHandle handle, 
			IRequestParameterReadWrite param, 
			ServiceComponentRequestInvoker scCall,
			String fixedText,
			String svcKeiNo) throws Throwable
	{
		// サービス契約回線内訳一覧照会（サービス契約番号）の検索パラメータを設定
		Object[][] eKK0251B001IN = {
				{EKK0251B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0251B001},
				// 機能コード："1"
				{EKK0251B001CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
				{EKK0251B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}	// ＫＥＹ＿サービス契約番号

		};
		
		// ◇ SC呼出実行
		CAANMsg[] eKK0251B001MsgList = callSC(handle, scCall, param, fixedText, eKK0251B001IN,
				new EKK0251B001CBSMsg().getContents()).getCAANMsgList(EKK0251B001CBSMsg.EKK0251B001CBSMSG1LIST);
		{
			for (CAANMsg cAANMsg : eKK0251B001MsgList)
			{
				return cAANMsg.getString(EKK0251B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO);
			}
		}
		// 処理結果
		return "";
	}
	
	/**
	 * 工事費割賦契約一覧照会SC(EKK3131B010)を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText 接続文字列
	 * @param svcKeiKaisenUcwkNo サービス契約回線内訳番号
	 * @param func_cd 機能コード
	 * @return 工事費割賦契約一覧照会の結果
	 * @throws Exception SC実行時の例外
	 */
	// IT1-2018-0000034 MOD START
	//private String callGetKojihiKapKeiSc(SessionHandle handle
	private List<HashMap<String, Object>> callGetKojihiKapKeiSc(SessionHandle handle
	// IT1-2018-0000034 MOD END
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiKaisenUcwkNo
															, String func_cd)throws Throwable
	{
		// IT1-2018-00000034 ADD START
		List<HashMap<String, Object>> eKK3131B010List = new ArrayList<HashMap<String, Object>>();
		// IT1-2018-00000034 ADD END
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//工事費割賦契約一覧照会の上りマッピング
		Object[][] eKK3131B010In =
		{
			{EKK3131B010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3131B010}
			// 機能コード："2"
			, {EKK3131B010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約回線内訳番号
			, {EKK3131B010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo}
		};

		// サービスIF実行
		CAANMsg[] eKK3131B010Msg1List = callSC(handle, scCall, param, fixedText, eKK3131B010In,
				new EKK3131B010CBSMsg().getContents()).getCAANMsgList(EKK3131B010CBSMsg.EKK3131B010CBSMSG1LIST);
		
		if (null != eKK3131B010Msg1List)
		{
			for (CAANMsg eKK3131B010Msg : eKK3131B010Msg1List)
			{
				// IT1-2018-0000034 MOD START
				//return eKK3131B010Msg.getString(EKK3131B010CBSMsg1List.KAP_IKT_SIKY_SWCH_YM);
				HashMap<String, Object> eKK3131B010Map = new HashMap<String, Object>();
				
				eKK3131B010Map.put(EKK3131B010CBSMsg1List.KAP_SEIKY_STA_YM, eKK3131B010Msg.getString(EKK3131B010CBSMsg1List.KAP_SEIKY_STA_YM));
				// ANK-3383-00-00 ADD START
				eKK3131B010Map.put(EKK3131B010CBSMsg1List.KOJIHI_KAP_KEI_NO, eKK3131B010Msg.getString(EKK3131B010CBSMsg1List.KOJIHI_KAP_KEI_NO));
				eKK3131B010Map.put(EKK3131B010CBSMsg1List.GENE_ADD_DTM, eKK3131B010Msg.getString(EKK3131B010CBSMsg1List.GENE_ADD_DTM));
				// ANK-3383-00-00 ADD END
				
				eKK3131B010List.add(eKK3131B010Map);
				// IT1-2018-0000034 MOD END
			}
		}
		
		// IT1-2018-0000034 MOD START
		//return "";
		return eKK3131B010List;
		// IT1-2018-0000034 MOD END
	}
	
	
	// ANK-3383-00-00 ADD START
	/**
	 * 割引サービス契約一意照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getWribSvcKeiIti(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String wribSvcKeiNo
															, String func_cd)throws Throwable
	{
		// 割引サービス契約内訳一覧照会
		List<HashMap<String, Object>> eKK0451A010List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// 割引サービス契約内訳一覧照会の上りマッピング
		Object[][] eKK0451A010In =
		{
			{EKK0451A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0451A010}
			// 機能コード："1"
			, {EKK0451A010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0451A010CBSMsg.KEY_WRIB_SVC_KEI_NO, wribSvcKeiNo}
			// ＫＥＹ＿予約適用年月日
			, {EKK0451A010CBSMsg.KEY_RSV_APLY_YMD, JPCBPCommon.getOpeDate(null)}
		};

		// サービスIF実行
		CAANMsg[] eKK0451A010Msg1List = callSC(handle, scCall, param, fixedText, eKK0451A010In,
				new EKK0451A010CBSMsg().getContents()).getCAANMsgList(EKK0451A010CBSMsg.EKK0451A010CBSMSG1LIST);
		
		if (null != eKK0451A010Msg1List)
		{
			for (CAANMsg eKK0451A010Msg : eKK0451A010Msg1List)
			{
				HashMap<String, Object> eKK0451A010Map = new HashMap<String, Object>();
				eKK0451A010Map.put(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT, eKK0451A010Msg.getString(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT));
				eKK0451A010Map.put(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT_NM, eKK0451A010Msg.getString(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT_NM));
				eKK0451A010List.add(eKK0451A010Map);
			}
		}
		return eKK0451A010List;
	}
	
	
	
	/**
	 * 割引サービス契約内訳一覧照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getWribSvcKeiUcwk(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String wribSvcKeiNo
															, String func_cd)throws Throwable
	{
		// 割引サービス契約内訳一覧照会
		List<HashMap<String, Object>> eKK2361B010List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// 割引サービス契約内訳一覧照会の上りマッピング
		Object[][] eKK2361B010In =
		{
			{EKK2361B010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2361B010}
			// 機能コード："1"
			, {EKK2361B010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK2361B010CBSMsg.KEY_WRIB_SVC_KEI_NO, wribSvcKeiNo}
		};

		// サービスIF実行
		CAANMsg[] eKK2361B010Msg1List = callSC(handle, scCall, param, fixedText, eKK2361B010In,
				new EKK2361B010CBSMsg().getContents()).getCAANMsgList(EKK2361B010CBSMsg.EKK2361B010CBSMSG1LIST);
		
		if (null != eKK2361B010Msg1List)
		{
			for (CAANMsg eKK2361B010Msg : eKK2361B010Msg1List)
			{
				HashMap<String, Object> eKK2361B010Map = new HashMap<String, Object>();
				eKK2361B010Map.put(EKK2361B010CBSMsg1List.WRIB_APLY_CNT, eKK2361B010Msg.getString(EKK2361B010CBSMsg1List.WRIB_APLY_CNT));
				// OM-2022-0000518 ADD START
				eKK2361B010Map.put(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD, eKK2361B010Msg.getString(EKK2361B010CBSMsg1List.WRIB_SVC_DTL_CD));
				// OM-2022-0000518 ADD END
				eKK2361B010List.add(eKK2361B010Map);
			}
		}
		return eKK2361B010List;
	}
	
	/**
	 * 工事費割賦契約一意照会SC(EKK3131A010)を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText 接続文字列
	 * @param kojhiKapKeiNo 標準工事費割賦契約番号
	 * @param geneAddDtm 世代登録年月日
	 * @param func_cd 機能コード
	 * @return 工事費割賦契約一覧照会の結果
	 * @throws Exception SC実行時の例外
	 */
	private List<HashMap<String, Object>> callGetKojihiKapKeiItiSc(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String kojhiKapKeiNo
															, String geneAddDtm
															, String func_cd)throws Throwable
	{
		List<HashMap<String, Object>> eKK3131A010List = new ArrayList<HashMap<String, Object>>();
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//工事費割賦契約一意照会の上りマッピング
		Object[][] eKK3131A010In =
		{
			{EKK3131A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3131A010}
			// 機能コード："1"
			, {EKK3131A010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿工事費割賦契約番号
			, {EKK3131A010CBSMsg.KEY_KOJIHI_KAP_KEI_NO, kojhiKapKeiNo}
			// ＫＥＹ＿世代登録年月日
			, {EKK3131A010CBSMsg.KEY_GENE_ADD_DTM, geneAddDtm}
		};

		// サービスIF実行
		CAANMsg[] eKK3131A010Msg1List = callSC(handle, scCall, param, fixedText, eKK3131A010In,
				new EKK3131A010CBSMsg().getContents()).getCAANMsgList(EKK3131A010CBSMsg.EKK3131A010CBSMSG1LIST);
		
		if (null != eKK3131A010Msg1List)
		{
			for (CAANMsg eKK3131A010Msg : eKK3131A010Msg1List)
			{
				HashMap<String, Object> eKK3131A010Map = new HashMap<String, Object>();
				
				eKK3131A010Map.put(EKK3131A010CBSMsg1List.KAP_SEIKY_STA_YM, eKK3131A010Msg.getString(EKK3131A010CBSMsg1List.KAP_SEIKY_STA_YM));
				eKK3131A010Map.put(EKK3131A010CBSMsg1List.KAP_PLAN_CD, eKK3131A010Msg.getString(EKK3131A010CBSMsg1List.KAP_PLAN_CD));
				eKK3131A010Map.put(EKK3131A010CBSMsg1List.KAP_PLAN_CD_NM, eKK3131A010Msg.getString(EKK3131A010CBSMsg1List.KAP_PLAN_CD_NM));
				eKK3131A010Map.put(EKK3131A010CBSMsg1List.KOJIHI_KAP_KEI_NO, eKK3131A010Msg.getString(EKK3131A010CBSMsg1List.KOJIHI_KAP_KEI_NO));
				eKK3131A010Map.put(EKK3131A010CBSMsg1List.KAP_PAY_ZAN_CNT, eKK3131A010Msg.getString(EKK3131A010CBSMsg1List.KAP_PAY_ZAN_CNT));
				eKK3131A010Map.put(EKK3131A010CBSMsg1List.GENE_ADD_DTM, eKK3131A010Msg.getString(EKK3131A010CBSMsg1List.GENE_ADD_DTM));
				
				eKK3131A010List.add(eKK3131A010Map);
			}
		}
		
		return eKK3131A010List;
	}
	
	
	/**
	 * サービス契約内訳＜eo光電話＞一覧照会（サービス契約番号）SC(EKK0191B001)を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText 接続文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return サービス契約内訳＜eo光電話＞一覧照会（サービス契約番号）の結果
	 * @throws Exception SC実行時の例外
	 */
	private List<HashMap<String, String>> getSvcKeiUcwkTelInfo(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															, String func_cd)throws Throwable
	{
		List<HashMap<String, String>> eKK0191B001List = new ArrayList<HashMap<String, String>>();
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//工事費割賦契約一意照会の上りマッピング
		Object[][] eKK0191B001In =
		{
			{EKK0191B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0191B001}
			// 機能コード："1"
			, {EKK0191B001CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0191B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
		};

		// サービスIF実行
		CAANMsg[] eKK0191B001Msg1List = callSC(handle, scCall, param, fixedText, eKK0191B001In,
				new EKK0191B001CBSMsg().getContents()).getCAANMsgList(EKK0191B001CBSMsg.EKK0191B001CBSMSG1LIST);
		
		if (null != eKK0191B001Msg1List)
		{
			for (CAANMsg eKK0191B001Msg : eKK0191B001Msg1List)
			{
				HashMap<String, String> eKK0191B001Map = new HashMap<String, String>();
				
				eKK0191B001Map.put(EKK0191B001CBSMsg1List.TELNO, eKK0191B001Msg.getString(EKK0191B001CBSMsg1List.TELNO));
				eKK0191B001Map.put(EKK0191B001CBSMsg1List.BMP_UM, eKK0191B001Msg.getString(EKK0191B001CBSMsg1List.BMP_UM));
				eKK0191B001Map.put(EKK0191B001CBSMsg1List.SVC_KEI_UCWK_STAT, eKK0191B001Msg.getString(EKK0191B001CBSMsg1List.SVC_KEI_UCWK_STAT));
				eKK0191B001Map.put(EKK0191B001CBSMsg1List.TELNO_JUN, eKK0191B001Msg.getString(EKK0191B001CBSMsg1List.TELNO_JUN));
				
				eKK0191B001List.add(eKK0191B001Map);
			}
		}
		
		return eKK0191B001List;
	}
	
	/**
	 * オプションサービス契約<TV>一覧照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getTvGuidemgInfo(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															, String func_cd)throws Throwable
	{
		// オプションサービス契約<TV>一覧照会
		List<HashMap<String, Object>> eKK0381B001List = new ArrayList<HashMap<String, Object>>();

		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// オプションサービス契約<TV>一覧照会の上りマッピング
		Object[][] eKK0381B001In =
		{
			{EKK0381B001CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0381B001}
			// 機能コード："1"
			, {EKK0381B001CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0381B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
		};

		// サービスIF実行
		CAANMsg[] eKK0381B001Msg1List = callSC(handle, scCall, param, fixedText, eKK0381B001In,
				new EKK0381B001CBSMsg().getContents()).getCAANMsgList(EKK0381B001CBSMsg.EKK0381B001CBSMSG1LIST);
		
		if (null != eKK0381B001Msg1List)
		{
			for (CAANMsg eKK0381B001Msg : eKK0381B001Msg1List)
			{
				HashMap<String, Object> eKK0381B001Map = new HashMap<String, Object>();
				eKK0381B001Map.put(EKK0381B001CBSMsg1List.OP_SVC_KEI_NO, eKK0381B001Msg.getString(EKK0381B001CBSMsg1List.OP_SVC_KEI_NO));
				eKK0381B001Map.put(EKK0381B001CBSMsg1List.CABLE_GUIDE_MSKM_CNT, eKK0381B001Msg.getString(EKK0381B001CBSMsg1List.CABLE_GUIDE_MSKM_CNT));
				eKK0381B001List.add(eKK0381B001Map);
			}
		}
		return eKK0381B001List;
	}
	
	/**
	 * 割賦料金一覧照会SC(EAC0611B010)を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText
	 * @param pcrsCd
	 * @param prcSvcCd
	 * @param dslRsvYmd
	 * @param func_cd 機能コード
	 * @return 割賦料金一覧照会の結果
	 * @throws Exception SC実行時の例外
	 */
	private List<HashMap<String, Object>> callGetKapPcrsSc(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String pcrsCd
															, String prcSvcCd
															, String dslRsvYmd
															, String func_cd)throws Throwable
	{
		//工事費割賦契約一覧照会
		List<HashMap<String, Object>> eAC0611B010List = new ArrayList<HashMap<String, Object>>();
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		//工事費割賦契約一覧照会の上りマッピング
		Object[][] EAC0611B010In =
		{
			{EAC0611B010CBSMsg.TEMPLATEID, TEMPLATE_ID_EAC0611B010}
			, {EAC0611B010CBSMsg.FUNC_CODE, func_cd}	// 機能コード："1"
			, {EAC0611B010CBSMsg.KEY_SYS_CD, "AC"}	// ＫＥＹ＿システムコード
			, {EAC0611B010CBSMsg.KEY_PCRS_CD, pcrsCd}	// ＫＥＹ＿料金コースコード
			, {EAC0611B010CBSMsg.KEY_PRC_SVC_CD, prcSvcCd}	// ＫＥＹ＿料金サービスコード
			, {EAC0611B010CBSMsg.KEY_BASE_YMD, dslRsvYmd}	// ＫＥＹ＿基準年月日
			
		};
		
		// サービスIF実行
		CAANMsg[] EAC0611B010Msg1List = callSC(handle, scCall, param, fixedText, EAC0611B010In,
				new EAC0611B010CBSMsg().getContents()).getCAANMsgList(EAC0611B010CBSMsg.EAC0611B010CBSMSG1LIST);
		
		if (null != EAC0611B010Msg1List)
		{
			for (CAANMsg EAC0611B010Msg : EAC0611B010Msg1List)
			{
				HashMap<String, Object> eAC0611B010Map = new HashMap<String, Object>();
				eAC0611B010Map.put(EAC0611B010CBSMsg1List.FIRST_PRC, EAC0611B010Msg.getString(EAC0611B010CBSMsg1List.FIRST_PRC));
				eAC0611B010Map.put(EAC0611B010CBSMsg1List.KEIZOKU_PRC, EAC0611B010Msg.getString(EAC0611B010CBSMsg1List.KEIZOKU_PRC));
				eAC0611B010List.add(eAC0611B010Map);
			}
		}
		return eAC0611B010List;
	}
	
	/**
	 * 割引サービス詳細一意照会SC(EKK2371A010)を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText
	 * @param pcrsCd
	 * @param wribSvcDtlCd
	 * @param dslRsvYmd
	 * @param func_cd 機能コード
	 * @return 割賦料金一覧照会の結果
	 * @throws Exception SC実行時の例外
	 */
	private List<HashMap<String, Object>> getKikiInfoEKK2371A010(SessionHandle handle
																, IRequestParameterReadWrite param
																, String fixedText
																, String wribSvcDtlCd
																, String func_cd
																) throws Throwable
	{
		// 割引サービス詳細一意照会
		List<HashMap<String, Object>> eKK2371A010List = new ArrayList<HashMap<String, Object>>();
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		// 割引サービス詳細一意照会の上りマッピング
		Object[][] EKK2371A010In =
		{
			{EKK2371A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2371A010}
			, {EKK2371A010CBSMsg.FUNC_CODE, func_cd}	// 機能コード
			, {EKK2371A010CBSMsg.KEY_WRIB_SVC_DTL_CD, wribSvcDtlCd}	// ＫＥＹ＿割引サービス詳細コード
			, {EKK2371A010CBSMsg.KEY_RSV_APLY_YMD, JPCBPCommon.getOpeDate(null)}	// ＫＥＹ＿予約適用年月日
			
		};
		
		// サービスIF実行
		CAANMsg[] EKK2371A010Msg1List = callSC(handle, scCall, param, fixedText, EKK2371A010In,
				new EKK2371A010CBSMsg().getContents()).getCAANMsgList(EKK2371A010CBSMsg.EKK2371A010CBSMSG1LIST);
		
		if (null != EKK2371A010Msg1List)
		{
			for (CAANMsg EKK2371A010Msg : EKK2371A010Msg1List)
			{
				HashMap<String, Object> eKK2371A010Map = new HashMap<String, Object>();
				eKK2371A010Map.put(EKK2371A010CBSMsg1List.APLY_CNT, EKK2371A010Msg.getString(EKK2371A010CBSMsg1List.APLY_CNT));
				eKK2371A010List.add(eKK2371A010Map);
			}
		}
		return eKK2371A010List;
	}
	
	/**
	 * 機器提供サービス契約一覧照会(接続機器情報)SC(EKK0341B012)を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText
	 * @param svcKeiNo
	 * @param func_cd 機能コード
	 * @return 割賦料金一覧照会の結果
	 * @throws Exception SC実行時の例外
	 */
	private List<HashMap<String, Object>> getKikiInfoEKK0341B012(SessionHandle handle
																, IRequestParameterReadWrite param
																, String fixedText
																, String svcKeiNo
																, String func_cd
																) throws Throwable
	{
		//機器提供サービス契約一覧照会(接続機器情報)
		List<HashMap<String, Object>> eKK0341B012List = new ArrayList<HashMap<String, Object>>();
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		//機器提供サービス契約一覧照会(接続機器情報)の上りマッピング
		Object[][] EKK0341B012In =
		{
			{EKK0341B012CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0341B012}
			, {EKK0341B012CBSMsg.FUNC_CODE, func_cd}	// 機能コード
			, {EKK0341B012CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}	// ＫＥＹ＿サービス契約番号
			
		};
		
		// サービスIF実行
		CAANMsg[] EKK0341B012Msg1List = callSC(handle, scCall, param, fixedText, EKK0341B012In,
				new EKK0341B012CBSMsg().getContents()).getCAANMsgList(EKK0341B012CBSMsg.EKK0341B012CBSMSG1LIST);
		
		if (null != EKK0341B012Msg1List)
		{
			for (CAANMsg EKK0341B012Msg : EKK0341B012Msg1List)
			{
				HashMap<String, Object> eKK0341B012Map = new HashMap<String, Object>();
				eKK0341B012Map.put(EKK0341B012CBSMsg1List.KKTK_SVC_KEI_NO, EKK0341B012Msg.getString(EKK0341B012CBSMsg1List.KKTK_SVC_KEI_NO));
				eKK0341B012Map.put(EKK0341B012CBSMsg1List.KKTK_SVC_KEI_STAT, EKK0341B012Msg.getString(EKK0341B012CBSMsg1List.KKTK_SVC_KEI_STAT));
				eKK0341B012Map.put(EKK0341B012CBSMsg1List.KKTK_SVC_CD, EKK0341B012Msg.getString(EKK0341B012CBSMsg1List.KKTK_SVC_CD));
				eKK0341B012Map.put(EKK0341B012CBSMsg1List.TAKNKIKI_MODEL_CD, EKK0341B012Msg.getString(EKK0341B012CBSMsg1List.TAKNKIKI_MODEL_CD));
				eKK0341B012Map.put(EKK0341B012CBSMsg1List.PLAN_STAYMD, EKK0341B012Msg.getString(EKK0341B012CBSMsg1List.PLAN_STAYMD));
				eKK0341B012Map.put(EKK0341B012CBSMsg1List.PCRS_CD_NM, EKK0341B012Msg.getString(EKK0341B012CBSMsg1List.PCRS_CD_NM));
				eKK0341B012Map.put(EKK0341B012CBSMsg1List.PPLAN_CD, EKK0341B012Msg.getString(EKK0341B012CBSMsg1List.PPLAN_CD));
				eKK0341B012List.add(eKK0341B012Map);
			}
		}
		return eKK0341B012List;
	}
	
	/**
	 * サービス契約一意照会を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private String[] getHjnkjhKapsdSymd(SessionHandle handle
										, IRequestParameterReadWrite param
										, String fixedText
										, String workParamId
										, String func_cd
										)throws Throwable
	{
		String workParamSetteValue = "";
		
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		// 業務パラメータ管理一意照会の上りマッピング
		Object[][] EZM0321A010In =
		{
			{EZM0321A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0321A010}
			// 機能コード："1"
			, {EZM0321A010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿業務パラメータＩＤ
			, {EZM0321A010CBSMsg.KEY_WORK_PARAM_ID, workParamId}
		};
		
		// サービスIF実行
		CAANMsg[] EZM0321A010Msg1List = callSC(handle, scCall, param, fixedText, EZM0321A010In,
				new EZM0321A010CBSMsg().getContents()).getCAANMsgList(EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST);
		
		if (null != EZM0321A010Msg1List)
		{
			for (CAANMsg EZM0321A010Msg : EZM0321A010Msg1List)
			{
				workParamSetteValue = EZM0321A010Msg.getString(EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
				
				if (!JKKStringUtil.isNullBlank(workParamSetteValue))
				{
					return workParamSetteValue.split(",");
				}
			}
		}
		return null;
	}
	
	// ANK-3383-00-00 ADD END
	
	/**
	 *機器契約情報取得処理を行うサービスインターフェイスを実行します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param kktkSvcCd 機器提供サービス契約番号
	 * @param funkCd 機能コード
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private List<HashMap<String, Object>> getKikiInfoEKK0341B035(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															// ANK-3383-00-00 MOD START
															//, String kktkSvcCd)throws Throwable
															, String kktkSvcCd
															, String funkCd
															)throws Throwable
															// ANK-3383-00-00 MOD END
	{
		//同一回線内訳サービス契約一覧照会
		List<HashMap<String, Object>> eKK0341B035List = new ArrayList<HashMap<String, Object>>();
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		//同一回線内訳サービス契約一覧照会の上りマッピング
		Object[][] eKK0341B035In =
		{
			{EKK0341B035CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0341B035}
			// 機能コード
			// ANK-3383-00-00 MOD START
			//, {EKK0341B035CBSMsg.FUNC_CODE, "1"}
			, {EKK0341B035CBSMsg.FUNC_CODE, funkCd}
			// ANK-3383-00-00 MOD END
			// ＫＥＹ＿サービス契約番号
			, {EKK0341B035CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
			// ＫＥＹ＿機器サービスコード
			, {EKK0341B035CBSMsg.KEY_KKTK_SVC_CD, kktkSvcCd}
		};

		// サービスIF実行
		CAANMsg[] eKK0341B035Msg1List = callSC(handle, scCall, param, fixedText, eKK0341B035In,
				new EKK0341B035CBSMsg().getContents()).getCAANMsgList(EKK0341B035CBSMsg.EKK0341B035CBSMSG1LIST);
		
		if (null != eKK0341B035Msg1List)
		{
			for (CAANMsg eKK0341B035Msg : eKK0341B035Msg1List)
			{
				HashMap<String, Object> eKK0341B035Map = new HashMap<String, Object>();
				// ANK-3383-00-00 ADD START
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KKTK_SVC_CD, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KKTK_SVC_CD));
				// ANK-3383-00-00 ADD END
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KKTK_SVC_ALI, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KKTK_SVC_ALI));
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.TAKNKIKI_MODEL_CD_NM, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.TAKNKIKI_MODEL_CD_NM));
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.TAKNKIKI_MODEL_CD, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.TAKNKIKI_MODEL_CD));
				//プレミアムパック有無の表示編集
				String premiumPackUm =  JKKStringUtil.nullToBlank(eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.PREMIUM_PACK_UM));
				//0の場合は有を表示
				if ("0".equals(premiumPackUm))
				{
					eKK0341B035Map.put(EKK0341B035CBSMsg1List.PREMIUM_PACK_UM, "有");
				}
				//1の場合は無を表示
				else if ("1".equals(premiumPackUm))
				{
					eKK0341B035Map.put(EKK0341B035CBSMsg1List.PREMIUM_PACK_UM, "無");
				}
				//それ以外はブランク
				else
				{
					eKK0341B035Map.put(EKK0341B035CBSMsg1List.PREMIUM_PACK_UM, "");
				}
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KAP_SEIKY_STA_YM, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KAP_SEIKY_STA_YM));
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.PLAN_STAYMD, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.PLAN_STAYMD));
				// ANK-3383-00-00 ADD START
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_STAT, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_STAT));
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_NO, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KKTK_SVC_KEI_NO));
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KAP_PLAN_CD, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KAP_PLAN_CD));
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KAP_PLAN_NM, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KAP_PLAN_NM));
				eKK0341B035Map.put(EKK0341B035CBSMsg1List.KAP_HAMBAI_FORM_CD, eKK0341B035Msg.getString(EKK0341B035CBSMsg1List.KAP_HAMBAI_FORM_CD));
				// ANK-3383-00-00 ADD END
				eKK0341B035List.add(eKK0341B035Map);
			}
		}
		return eKK0341B035List;
	}
	
	/**
	 * マンション情報一覧照会
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return メッセージ
	 * @throws Throwable 
	 */
	private String selectEkk0861(SessionHandle handle, 
			IRequestParameterReadWrite param, 
			String fixedText,
			String svcKeiNo,
			String func_cd) throws Throwable
	{
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// マンション情報一覧照会の検索パラメータを設定
		Object[][] ekk0861b002 = {
				{EKK0861B002CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0861B002},
				{EKK0861B002CBSMsg.FUNC_CODE, func_cd},			// 機能コード："2"
				{EKK0861B002CBSMsg.KEY_SVC_KEI_NO, svcKeiNo},	// ＫＥＹ＿サービス契約番号
				{EKK0861B002CBSMsg.KEY_RSV_APLY_YMD, JPCBPCommon.getOpeDate(null)}	// ＫＥＹ＿予約適用年月日
		};

		// ◇ SC呼出実行
		CAANMsg[] ekk0861b002Msg1List = callSC(handle, scCall, param, fixedText, ekk0861b002,
				new EKK0861B002CBSMsg().getContents()).getCAANMsgList(EKK0861B002CBSMsg.EKK0861B002CBSMSG1LIST);
		
		
		if (null != ekk0861b002Msg1List)
		{
			for (CAANMsg ekk0861b002Msg : ekk0861b002Msg1List)
			{
				return ekk0861b002Msg.getString(EKK0861B002CBSMsg1List.MANSION_BUKKEN_CD);
			}
		}

		return "";
	}
	
	// ANK-3383-06-00 ADD START
	/**
	 * 料金スケジュール定義一意照会
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param eventCd イベントコード
	 * @param funcCd 機能コード
	 * @return メッセージ
	 * @throws Throwable 
	 */
	private String getECH0501A010(SessionHandle handle
											, IRequestParameterReadWrite param
											, String fixedText
											, String eventCd
											, String funcCd
											) throws Throwable
	{
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// 料金スケジュール定義一意照会の検索パラメータを設定
		Object[][] eCH0501A010 = {
				{ECH0501A010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECH0501A010},
				{ECH0501A010CBSMsg.FUNC_CODE, funcCd},			// 機能コード
				{ECH0501A010CBSMsg.KEY_EVENT_CD, eventCd},			// ＫＥＹ＿イベントコード
				{ECH0501A010CBSMsg.KEY_UNYO_DAY, JPCBPCommon.getOpeDate(null)},		// ＫＥＹ＿運用日
		};

		// ◇ SC呼出実行
		CAANMsg[] eCH0501A010Msg1List = callSC(handle, scCall, param, fixedText, eCH0501A010,
				new ECH0501A010CBSMsg().getContents()).getCAANMsgList(ECH0501A010CBSMsg.ECH0501A010CBSMSG1LIST);
		
		
		if (null != eCH0501A010Msg1List)
		{
			for (CAANMsg eCH0501A010Msg : eCH0501A010Msg1List)
			{
				return eCH0501A010Msg.getString(ECH0501A010CBSMsg1List.SEIKY_YM);
			}
		}

		return "";
	}
	// ANK-3383-06-00 ADD END
	
	// OM-2018-0001178 ADD START
	/**
	 * 割引サービス契約一覧照会を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText 接続文字列
	 * @param svcKeiNo サービス契約番号
	 * @param func_cd 機能コード
	 * @return 割引サービス契約一覧照会（割引用）の結果
	 * @throws Exception SC実行時の例外
	 */
	private ArrayList<HashMap<String, String>> getWribSvcKeiInfo(SessionHandle handle
															, IRequestParameterReadWrite param
															, String fixedText
															, String svcKeiNo
															, String func_cd
															)throws Throwable
	{
		ArrayList<HashMap<String, String>> eKK0451B012List = new ArrayList<HashMap<String, String>>();
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		//割引サービス契約一覧照会（割引用）の上りマッピング
		Object[][] eKK0451B012In =
		{
			{EKK0451B012CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0451B012}
			// 機能コード："1"
			, {EKK0451B012CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿サービス契約番号
			, {EKK0451B012CBSMsg.KEY_SVC_KEI_NO, svcKeiNo}
		};
		
		// サービスIF実行
		CAANMsg[] eKK0451B012Msg1List = callSC(handle, scCall, param, fixedText, eKK0451B012In,
				new EKK0451B012CBSMsg().getContents()).getCAANMsgList(EKK0451B012CBSMsg.EKK0451B012CBSMSG1LIST);
		
		if (null != eKK0451B012Msg1List)
		{
			for (CAANMsg eKK0451B012Msg : eKK0451B012Msg1List)
			{
				HashMap<String, String> eKK0451B012Map = new HashMap<String, String>();
				
				eKK0451B012Map.put(EKK0451B012CBSMsg1List.WRIB_SVC_KEI_NO, eKK0451B012Msg.getString(EKK0451B012CBSMsg1List.WRIB_SVC_KEI_NO));
				eKK0451B012Map.put(EKK0451B012CBSMsg1List.WRIB_SVC_KEI_STAT, eKK0451B012Msg.getString(EKK0451B012CBSMsg1List.WRIB_SVC_KEI_STAT));
				eKK0451B012Map.put(EKK0451B012CBSMsg1List.WRIB_SVC_CD, eKK0451B012Msg.getString(EKK0451B012CBSMsg1List.WRIB_SVC_CD));
				
				eKK0451B012List.add(eKK0451B012Map);
			}
		}
		
		return eKK0451B012List;
	}
	
	/**
	 * コード名称管理一意照会を呼び出す。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText 接続文字列
	 * @param cdSbtCd コード種別コード
	 * @param cdDiv コード区分
	 * @param func_cd 機能コード
	 * @return コード名称管理一意照会の結果
	 * @throws Exception SC実行時の例外
	 */
	private String getCdDivNm(SessionHandle handle
									, IRequestParameterReadWrite param
									, String fixedText
									, String cdSbtCd
									, String cdDiv
									, String func_cd
									)throws Throwable
	{
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		// コード区分名
		String cdDivNm = "";
		
		// コード名称管理一意照会の上りマッピング
		Object[][] eZM0171A010In =
		{
			{EZM0171A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0171A010}
			// 機能コード："1"
			, {EZM0171A010CBSMsg.FUNC_CODE, func_cd}
			// ＫＥＹ＿コード種別コード
			, {EZM0171A010CBSMsg.KEY_CD_SBT_CD, cdSbtCd}
			// ＫＥＹ＿コード区分
			, {EZM0171A010CBSMsg.KEY_CD_DIV, cdDiv}
		};
		
		// サービスIF実行
		CAANMsg[] eZM0171A010Msg1List = callSC(handle, scCall, param, fixedText, eZM0171A010In,
				new EZM0171A010CBSMsg().getContents()).getCAANMsgList(EZM0171A010CBSMsg.EZM0171A010CBSMSG1LIST);
		
		if (null != eZM0171A010Msg1List)
		{
			for (CAANMsg eZM0171A010Msg : eZM0171A010Msg1List)
			{
				cdDivNm = JKKStringUtil.nullToBlank((String)eZM0171A010Msg.getString(EZM0171A010CBSMsg1List.CD_DIV_NM));
				
				break;
			}
		}
		
		return cdDivNm;
	}
	// OM-2018-0001178 ADD END
	
	/**
	 * SC(サービスインターフェイス）を呼び出す。
	 * @param handle セッションハンドル
	 * @param scCall SC呼び出し部品
	 * @param param リクエストパラメータ
	 * @param dataMapKey パラメータキー
	 * @param mappingData マッピングデータ
	 * @param contents CAANMsgのコンテンツ
	 * @return CAANMsg
	 * @throws Throwable 例外が発生した場合
	 */
	private CAANMsg callSC(SessionHandle handle
								, ServiceComponentRequestInvoker scCall
								, IRequestParameterReadWrite param
								, String dataMapKey
								, Object[][] mappingData
								, Object[][] contents) throws Throwable
	{
		HashMap<String, Object> paramMap = editInMsg(param, mappingData);

		Map<?, ?> result = scCall.run(paramMap, handle);

		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);

		CAANMsg msg = templates[0];

		// リターンコード取得
		Object return_code = result.get(JCMConstants.RET_CD_INT_KEY);

		int status = msg.getInt(JCMConstants.STATUS_INT_KEY);

		editErrorInfoCom(param, templates, (Integer)return_code, dataMapKey, mappingData, contents);

		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);

		if (null == errList)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(result, errList));

		// 異常の場合、SCCallExceptionを生成してスローする
		if(!("0".equals(return_code.toString()) && 0 == status))
		{
			throw new SCCallException("戻り値不正", return_code.toString(), status);
		}

		return msg;
	}
	
	/**
	 * エラー情報を取得します。
	 * @param param リクエストパラメータ
	 * @param templates CAANMsgクラス
	 * @param returnCode リターンコード
	 * @param dataMapKey パラメータキー
	 * @param mappingData マッピングデータ
	 * @param contents CAANMsgのコンテンツ
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException リクエストパラメータの操作でエラーが発生した場合
	 */
	private IRequestParameterReadWrite editErrorInfoCom(IRequestParameterReadWrite param
															, CAANMsg[] templates
															, int returnCode
															, String dataMapKey
															, Object[][] mappingData
															, Object[][] contents) throws RequestParameterException
	{
		CAANMsg template = templates[0];

		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);
		
		if (0 != returnCode)
		{
			templateStatus = 9000;
		}

		if (null == JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + String.format(RETURN_MESSAGE_FORMAT, templateStatus)))
		{
			templateStatus = 0;
		}

		int bpStatus = 0;

		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		
		if (null == obj)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format(RETURN_MESSAGE_FORMAT, templateStatus);
			
			String message = JCMAPLConstMgr.getString(RETURN_MESSAGE_STRING + formatStatus);
			
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap<String, String> inMap = null;

		// ユーザデータ情報
		inMap = (HashMap<String, String>)param.getData(dataMapKey);

		for (int i = 0; null != contents && i < contents.length ; i++)
		{
			String itemNm = (String)contents[i][0];
			if (itemNm.endsWith(ERRITEM_SUFFIX))
			{
				String errCd = (String)template.getString(itemNm);
				if (!JKKStringUtil.isNullBlank(errCd))
				{
					inMap.put(itemNm, errCd);
				}
			}
		}

		return param;
	}
	
	/**
	 * <dl>
	 * <dt>処理概要：
	 * <dd>サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングする<br>
	 * <dt>処理補足：
	 * <dd>
	 * </dl>
	 * 
	 * @param msgList
	 * @param param
	 * @param mapName
	 * @return IRequestParameterReadWrite
	 * @throws Throwable
	 */
	@SuppressWarnings({ "unchecked", "cast", "boxing" })
	public IRequestParameterReadWrite editResultRP(Map<?, ?> msgList,
			@SuppressWarnings("hiding") IRequestParameterReadWrite param,
			String mapName) throws Throwable
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		
		// リターンコード取得
		Object return_code = msgList.get(JCMConstants.RET_CD_INT_KEY);
		
		// 作業領域の取得
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		
		// 結果を詰めるマップを取得。
		HashMap dataMap = null;
		
		// 業務データ設定
		dataMap = (HashMap)param.getData(mapName);
		if (dataMap == null)
		{
			dataMap = new HashMap();
			param.setData(mapName, dataMap);
		}
		
		// エラー情報の設定
		param = editErrorInfo(param, templates, (Integer)return_code, mapName);
		
		// エラー情報のマップを取得
		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));
		
		return param;
	}
	
	/**
	 * <dl>
	 * <dt>処理概要：
	 * <dd>サービスコンポーネント実行後に、IRequestParameterReadWriteにエラー情報をマッピングする<br>
	 * <dt>処理補足：
	 * <dd>
	 * </dl>
	 * 
	 * @param param      業務データ取得・書込用I/F
	 * @param templates  CAANMsgクラス配列
	 * @param returnCode リターンコード
	 * @param mapName    SCマップ名
	 * @return IRequestParameterReadWrite
	 * @throws Throwable
	 */
	@SuppressWarnings({ "unchecked", "cast", "null", "boxing" })
	public IRequestParameterReadWrite editErrorInfo(@SuppressWarnings("hiding") IRequestParameterReadWrite param,
			CAANMsg[] templates,
			int returnCode,
			String mapName) throws Throwable
	{
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(EKK3131B010CBSMsg.STATUS);
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}
		
		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}
		
		HashMap inMap = null;
		
		// 作業項目領域
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null)
		{
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		
		// ユーザデータ情報
		inMap = (HashMap)param.getData(mapName);
		if (inMap == null)
		{
			inMap = new HashMap();
			param.setData(mapName, inMap);
		}
		
		String svcIf = null;
		if (svcIf == null)
		{
			return param;
		}
		else
		{
			// 処理なし
		}
		
		return param;
	}
	
	/**
	 * チェック処理です。<br>
	 * <br>
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return HashMap
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
			throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		List<CAANMsg> templates = new ArrayList<CAANMsg>();
		
		// チェック用サービスインターフェイス
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, Arrays.asList(templates));
		
		return paramMap;
	}
	
	/**
	 * 共通項目のメッセージを作成します。
	 * @param param リクエストパラメータ
	 * @param mappingData マッピングデータ
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException リクエストパラメータの操作でエラーが発生した場合
	 */
	private HashMap<String, Object> editInMsg(IRequestParameterReadWrite param,
			Object[][] mappingData) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文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));
		
		// サービスインターフェイスID
		String svcIf = (String)mappingData[0][1];
		CAANMsg template = new CAANMsg(String.format("eo.ejb.cbs.cbsmsg.%sCBSMsg", svcIf));
		
		// オペレータID
		template.set(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));
		// 運用日付
		template.set(JCMConstants.OPERATE_DATE_KEY, param.getControlMapData(SCControlMapKeys.OPE_DATE));
		// 運用日時
		template.set(JCMConstants.OPERATE_DATETIME_KEY, param.getControlMapData(SCControlMapKeys.OPE_TIME));
		
		for (int i = 0; i < mappingData.length; i++)
		{
			if ("".equals(mappingData[i][1]))
			{
				template.setNull((String)mappingData[i][0]);
			}
			else
			{
				template.set((String)mappingData[i][0], mappingData[i][1]);
			}
		}
		
		CAANMsg[] templates = new CAANMsg[1];
		
		templates[0] = template;
		
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);
		
		return paramMap;
	}
	
	/**
	 * 配列の比較処理を行います。<br>
	 * <br>
	 * @param	workArray
	 * @param	syoriKbn
	 * @param	prcGrpCd
	 * @return	true:正常
	 * @throws	Exception
	 */
	public boolean checkArray(String[][] workArray, int syoriKbn, String prcGrpCd) throws Exception
	{
		for (int i = 0; i < workArray[syoriKbn].length; i++)
		{
			if (workArray[syoriKbn][i].equals(prcGrpCd))
			{
				return true;
			}
		}
		return false;
	}
	
	// ANK-3383-00-00 ADD START
	/**
	 * 番ポ有無の名称を返却します。<br>
	 * <br>
	 * @param	bmpUm 番ポ有無
	 * @return	bmpUmNm 番ポ有無名称
	 */
	public String getBmpUmNm(String bmpUm)
	{
		String bmpUmNm = "";
		
		if(JKKStrConst.CD_DIV_UM_ARI.equals(bmpUm))
		{
			bmpUmNm = JKKStrConst.CD_DIV_NM_UM_ARI;
		}
		else if (JKKStrConst.CD_DIV_UM_NASHI.equals(bmpUm))
		{
			bmpUmNm = JKKStrConst.CD_DIV_NM_UM_NASHI;
		}
		
		return bmpUmNm;
	}
	
	/**
	 * 電話番号のハイフン編集処理を呼び出し、編集後の電話番号を返却します。<br>
	 * <br>
	 * @param	handle handle
	 * @param	param 共通パラメータ
	 * @param	telNo 電話番号
	 * @return	telNoHfn ハイフン編集後電話番号
	 * @throws	Exception Exception
	 */
	public String callEditTln(SessionHandle handle, IRequestParameterReadWrite param, String telNo) throws Exception
	{
		String telNoHfn = "";
		HashMap<String, Object> paramMap =  JTUTelNoUtil.getEditInMsg_Tln(param);
		
		telNoHfn = JTUTelNoUtil.editTln(handle, paramMap, telNo);
		
		return telNoHfn;
	}
	
	/**
	 * 工事費相当額キャンペーンの適用残回数を返却する。
	 * <br>
	 * @param	handle handle
	 * @param	param 共通パラメータ
	 * @param	fixedText fixedText
	 * @param	wribSvcDtlCd 割引サービス詳細コード
	 * @param	wribAplyCnt 割引適用回数
	 * @return	kojihiWribCampainZkaisu 工事費相当額キャンペーンの適用残回数
	 * @throws Throwable 
	 */
	private String getKojihiWribCampainZkaisu(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String wribSvcDtlCd, String wribAplyCnt) throws Throwable
	{
		List<HashMap<String, Object>> eKK2371A010List  = new ArrayList<HashMap<String, Object>>();
		
		String kojihiWribCampainZkaisu  ="";
		Integer calcZkaisu = 0;
		
		// 割引サービス一意照会の呼び出し
		eKK2371A010List = getKikiInfoEKK2371A010(handle, param, fixedText, wribSvcDtlCd, JPCModelConstant.FUNC_CD_2);
		
		if (eKK2371A010List.size() > 0)
		{
			HashMap<String, Object> eKK0841A010Map = (HashMap<String, Object>)eKK2371A010List.get(0);
			
			String aplyCnt = (String)eKK0841A010Map.get(EKK2371A010CBSMsg1List.APLY_CNT);
			
			// 現在の残り適用回数＝キャンペーン適用数から割引適用回数の減算
			calcZkaisu = Integer.valueOf(aplyCnt) - Integer.valueOf(wribAplyCnt);
			
			if (calcZkaisu < 0)
			{
				// ０未満の値になった場合、適用終了と判断し、０を設定
				kojihiWribCampainZkaisu = "0";
			}
			else
			{
				kojihiWribCampainZkaisu = String.valueOf(calcZkaisu);
			}
		}
		
		return kojihiWribCampainZkaisu;
	}
	
	/**
	 * 配列の比較処理を行います。<br>
	 * <br>
	 * @param	ghTkkkMdl ＧＨ宅内機器型式情報
	 * @param	taknkikiMdlCd 宅内機器モデルコード
	 * @return	true:正常
	 * @throws	Exception Exception
	 */
	public boolean checkGhMdlCd(String[] ghTkkkMdl, String taknkikiMdlCd) throws Exception
	{
		for (int i = 0; i < ghTkkkMdl.length; i++)
		{
			if (ghTkkkMdl[i].equals(taknkikiMdlCd))
			{
				return true;
			}
		}
		return false;
	}
	// ANK-3383-00-00 ADD END
	
	// ANK-3383-06-00 ADD START
	/**
	 * 配列の比較処理を行います。<br>
	 * <br>
	 * @param	handle handle
	 * @param	param 共通パラメータ
	 * @param	fixedText fixedText
	 * @return	true:正常
	 * @throws Throwable 
	 */
	public String getRcntPrccalcLastYmd(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		String prccalcYm = "";
		String rcntPrccalcLastYmd = "";
		
		// 料金スケジュール定義一意照会の呼び出し
		prccalcYm = getECH0501A010(handle, param, fixedText, JKKStrConst.CD00878_EVENT_CD_PRC_03, JPCModelConstant.FUNC_CD_4);
		
		if (!JKKStringUtil.isNullBlank(prccalcYm))
		{
			
			String lastDay = "";
			
			// 取得した料金計算月から最終年月日を求める
			lastDay = JPCDateUtil.getEndOfMonth(prccalcYm);
			
			rcntPrccalcLastYmd = prccalcYm + lastDay;
		}
		
		return rcntPrccalcLastYmd;
	}
	// ANK-3383-06-00 ADD END
	
	// OM-2018-0001178 ADD START
	/**
	 * リスト形式の内容をカンマ編集で連結しString形式に変換します。<br>
	 * <br>
	 * @param	handle handle
	 * @param	param 共通パラメータ
	 * @param	fixedText fixedText
	 * @return	true:正常
	 * @throws Throwable 
	 */
	private String retStringList(ArrayList<String> tgList)
	{
		StringBuffer ret = new StringBuffer();
		
		for (String str : tgList)
		{
			ret.append(",");
			ret.append(str);
		}
		
		return ret.toString().substring(1);
	}
	// OM-2018-0001178 ADD END
	
	// ANK-3412-03-00 ADD START
	/**
	 * 業務パラメータ管理一意照会を行うサービスインターフェイスを実行し、
	 * 業務パラメータ設定値を返却します。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param workParamId 業務パラメータID
	 * @param funcCd 機能コード
	 * @return workParamSetteValue 業務パラメータ設定値
	 * @throws Throwable 例外が発生した場合
	 */
	private String getEZM0321A010(SessionHandle handle
								, IRequestParameterReadWrite param
								, String fixedText
								, String workParamId
								, String funcCd
	)throws Throwable
	{
		String workParamSetteValue = "";
		
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
		// 業務パラメータ管理一意照会の上りマッピング
		Object[][] EZM0321A010In =
		{
			{EZM0321A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EZM0321A010}
			// 機能コード："1"
			, {EZM0321A010CBSMsg.FUNC_CODE, funcCd}
			// ＫＥＹ＿業務パラメータＩＤ
			, {EZM0321A010CBSMsg.KEY_WORK_PARAM_ID, workParamId}
		};
		
		// サービスIF実行
		CAANMsg[] EZM0321A010Msg1List = callSC(handle, scCall, param, fixedText, EZM0321A010In,
				new EZM0321A010CBSMsg().getContents()).getCAANMsgList(EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST);
		
		if (null != EZM0321A010Msg1List)
		{
			for (CAANMsg EZM0321A010Msg : EZM0321A010Msg1List)
			{
				if (EZM0321A010Msg != null)
				{
					// 業務パラメータ設定値を取得する
					workParamSetteValue = EZM0321A010Msg.getString(EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE);
				}
			}
		}
		
		// 業務パラメータ設定値を返却する
		return workParamSetteValue;
	}
	// ANK-3412-03-00 ADD END
	
	// OM-2021-0002016 ADD START
	/**
	 * 割賦プラン一意照会
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param kapPlanCd 割賦プランコード
	 * @param funcCd 機能コード
	 * @return メッセージ
	 * @throws Throwable 
	 */
	private String getKapPayCnt(SessionHandle handle
											, IRequestParameterReadWrite param
											, String fixedText
											, String kapPlanCd
											, String funcCd
											) throws Throwable
	{
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// 割賦プラン一意照会の検索パラメータを設定
		Object[][] eKK2521A010 = {
				{EKK2521A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK2521A010}
				,{EKK2521A010CBSMsg.FUNC_CODE, funcCd}									// 機能コード
				,{EKK2521A010CBSMsg.KEY_KAP_PLAN_CD, kapPlanCd}							// ＫＥＹ＿割賦プランコード
				,{EKK2521A010CBSMsg.KEY_RSV_APLY_YMD, JPCBPCommon.getOpeDate(null)}		// ＫＥＹ＿予約適用年月日
		};

		// ◇ SC呼出実行
		CAANMsg[] eKK2521A010Msg1List = callSC(handle, scCall, param, fixedText, eKK2521A010,
				new EKK2521A010CBSMsg().getContents()).getCAANMsgList(EKK2521A010CBSMsg.EKK2521A010CBSMSG1LIST);
		
		
		if (null != eKK2521A010Msg1List)
		{
			for (CAANMsg eKK2521A010Msg : eKK2521A010Msg1List)
			{
				return eKK2521A010Msg.getString(EKK2521A010CBSMsg1List.KAP_PAY_CNT);
			}
		}
		return "";
	}
	// OM-2021-0002016 ADD END
}
