/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUTvCourseDspSwchUtil
*   ソースファイル名：JFUTvCourseDspSwchUtil.java
*   作成者          ：富士通
*   日付            ：2014年07月07日
*＜機能概要＞
*   テレビコース名表示切替部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v10.00.00   2014/07/07   FJ）谷本    【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
*   v10.00.00   2014/07/24   FJ）谷本    【IT1-2014-0000248】「サービス開始希望年月日」を条件から除外する対応
*   v12.00.00   2015/01/30   FJ) 臼杵    【ANK-2358-00-00】【ＮＯ．１８３３】【スタchセット割】フロントにおけるコース変更抑止条件の変更対応
*   
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0451A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0451B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0451B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0481B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK2931B502CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2931B502CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0321A010CBSMsg1List;

/**
 * テレビコース名表示切替部品
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUTvCourseDspSwchUtil extends JFUBaseUtil
{
	/** 結果コード：変換無 */
	private static final String RSLT_CD_NON = "0";
	/** 結果コード：ＢＳスターチャンネルセット */
	private static final String RSLT_CD_BS_STAR = "1";

	/** 判定結果 : 0 */
	public static final String RSLT_HNT_KEKKA_0 = "0";

	/** 判定結果 : 1 */
	public static final String RSLT_HNT_KEKKA_1 = "1";

	/** 判定結果 : 2 */
	public static final String RSLT_HNT_KEKKA_2 = "2";

	/** 結果コード：ＢＳスターチャンネルセット(割引無) */
	private static final String RSLT_CD_BS_STAR_WBN = "2";

	/** 同日指定：含まない */
	private static final String NO_INC_DATE = "0";

	/** ＫＥＹ＿ソート項目Ｎｏ：異動予約番号 */
	private static final String SORT_IDO_RSV_NO = "1";

	/* ■□ サービス契約一意照会SC ■□ */
	/** テンプレートID(サービス契約一意照会) */
	private static final String TEMP_ID_EKK0081A010 = "EKK0081A010";
	/** テンプレートID(サービス契約一意照会明細) */
	private static final String TEMP_ID_DTL_EKK0081A010 = EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST;
	/** IN項目リスト(サービス契約一意照会) */
	private static final List<String> IN_COL_LIST_EKK0081A010 =
			Arrays.asList(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, EKK0081A010CBSMsg.KEY_GENE_ADD_DTM, EKK0081A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(サービス契約一意照会) */
	private static final String ERR_COL_EKK0081A010 = EKK0081A010CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(サービス契約一意照会) */
	private static final String TEMP_TEMP_KEY_EKK0081A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0081A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□EKK0481B001_割引サービス対象契約一覧照会SC ■□ */
	/** テンプレートID(割引サービス対象契約一覧照会) */
	private static final String TEMP_ID_EKK0481B001 = "EKK0481B001";
	/** テンプレートID(明細)(割引サービス対象契約一覧照会) */
	private static final String TEMP_ID_DTL_EKK0481B001 = EKK0481B001CBSMsg.EKK0481B001CBSMSG1LIST;
	/** IN項目リスト(割引サービス対象契約一覧照会) */
	private static final List<String> IN_COL_LIST_EKK0481B001 =
			Arrays.asList(EKK0481B001CBSMsg.KEY_SVC_KEI_NO, EKK0481B001CBSMsg.KEY_SVC_KEI_UCWK_NO, EKK0481B001CBSMsg.KEY_OP_SVC_KEI_NO,
					EKK0481B001CBSMsg.KEY_SBOP_SVC_KEI_NO, EKK0481B001CBSMsg.KEY_KKTK_SVC_KEI_NO, EKK0481B001CBSMsg.KEY_WRIB_SVC_KEI_NO);
	/** 関連チェック,エラー項目(割引サービス対象契約一覧照会) */
	private static final String ERR_COL_EKK0481B001 = EKK0481B001CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(割引サービス対象契約一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK0481B001 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0481B001 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□EKK0451A010_割引サービス契約一意照会SC ■□ */
	/** テンプレートID(割引サービス契約一意照会) */
	private static final String TEMP_ID_EKK0451A010 = "EKK0451A010";
	/** テンプレートID(明細)(割引サービス契約一意照会) */
	private static final String TEMP_ID_DTL_EKK0451A010 = EKK0451A010CBSMsg.EKK0451A010CBSMSG1LIST;
	/** IN項目リスト(割引サービス契約一意照会) */
	private static final List<String> IN_COL_LIST_EKK0451A010 =
			Arrays.asList(EKK0451A010CBSMsg.KEY_WRIB_SVC_KEI_NO, EKK0451A010CBSMsg.KEY_GENE_ADD_DTM, EKK0451A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェック,エラー項目(割引サービス契約一意照会) */
	private static final String ERR_COL_EKK0451A010 = EKK0451A010CBSMsg.KEY_WRIB_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(割引サービス契約一意照会) */
	private static final String TEMP_TEMP_KEY_EKK0451A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0451A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□EZM0321A010_業務パラメータ管理一意照会SC ■□ */
	/** テンプレートID(業務パラメータ管理一意照会) */
	private static final String TEMP_ID_EZM0321A010 = "EZM0321A010";
	/** テンプレートID(明細)(業務パラメータ管理一意照会) */
	private static final String TEMP_ID_DTL_EZM0321A010 = EZM0321A010CBSMsg.EZM0321A010CBSMSG1LIST;
	/** IN項目リスト(業務パラメータ管理一意照会) */
	private static final List<String> IN_COL_LIST_EZM0321A010 = Arrays.asList(EZM0321A010CBSMsg.KEY_WORK_PARAM_ID);
	/** 関連チェック,エラー項目(業務パラメータ管理一意照会) */
	private static final String ERR_COL_EZM0321A010 = EZM0321A010CBSMsg.KEY_WORK_PARAM_ID_ERR;
	/** SC実行結果取得キー(業務パラメータ管理一意照会) */
	private static final String TEMP_TEMP_KEY_EZM0321A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EZM0321A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□EKK1681B001_異動予約一覧照会SC ■□ */
	/** テンプレートID(異動予約一覧照会) */
	private static final String TEMP_ID_EKK1681B001 = "EKK1681B001";
	/** テンプレートID(明細)(異動予約一覧照会) */
	private static final String TEMP_ID_DTL_EKK1681B001 = EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST;
	/** IN項目リスト(異動予約一覧照会) */
	private static final List<String> IN_COL_LIST_EKK1681B001 =
			Arrays.asList(EKK1681B001CBSMsg.KEY_IDO_DIV, EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, EKK1681B001CBSMsg.KEY_RSV_APLY_YMD,
					EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, EKK1681B001CBSMsg.KEY_MSKM_DTL_NO, EKK1681B001CBSMsg.KEY_SYSID,
					EKK1681B001CBSMsg.KEY_SEIKY_KEI_NO, EKK1681B001CBSMsg.KEY_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_SVC_KEI_UCWK_NO,
					EKK1681B001CBSMsg.KEY_OP_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_SBOP_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_KKTK_SVC_KEI_NO,
					EKK1681B001CBSMsg.KEY_WRIB_SVC_KEI_NO, EKK1681B001CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, EKK1681B001CBSMsg.KEY_HEIGO_SK_SYSID,
					EKK1681B001CBSMsg.KEY_BUNKATSU_SK_SYSID, EKK1681B001CBSMsg.KEY_HEIGO_SK_SEIKY_KEI_NO,
					EKK1681B001CBSMsg.KEY_BUNKATSU_SK_SEIKY_KEI_NO, EKK1681B001CBSMsg.KEY_KOJIAK_NO, EKK1681B001CBSMsg.KEY_OP_HKTGI_SK_SVC_KEI_NO,
					EKK1681B001CBSMsg.KEY_SORT_ITEM_NO, EKK1681B001CBSMsg.KEY_SORT_KBN);
	/** 関連チェック,エラー項目(異動予約一覧照会) */
	private static final String ERR_COL_EKK1681B001 = EKK1681B001CBSMsg.KEY_IDO_DIV_ERR;
	/** SC実行結果取得キー(異動予約一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK1681B001 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK1681B001 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□EKK2931B502_申込時登録不可契約予約一覧照会（申込明細番号）SC ■□ */
	/** テンプレートID(申込時登録不可契約予約一覧照会（申込明細番号）) */
	private static final String TEMP_ID_EKK2931B502 = "EKK2931B502";
	/** テンプレートID(明細)(申込時登録不可契約予約一覧照会（申込明細番号）) */
	private static final String TEMP_ID_DTL_EKK2931B502 = EKK2931B502CBSMsg.EKK2931B502CBSMSG1LIST;
	/** IN項目リスト(申込時登録不可契約予約一覧照会（申込明細番号）) */
	private static final List<String> IN_COL_LIST_EKK2931B502 = Arrays.asList(EKK2931B502CBSMsg.KEY_MSKM_DTL_NO);
	/** 関連チェック,エラー項目(申込時登録不可契約予約一覧照会（申込明細番号）) */
	private static final String ERR_COL_EKK2931B502 = EKK2931B502CBSMsg.KEY_MSKM_DTL_NO_ERR;
	/** SC実行結果取得キー(申込時登録不可契約予約一覧照会（申込明細番号）) */
	private static final String TEMP_TEMP_KEY_EKK2931B502 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK2931B502 + TEMP_TEMPLATE_PRIFIX_SEP;

	// ■ IN項目ID ■
	/** IN項目ID：サービス契約番号 */
	private static final String IN_SVC_KEI_NO = "key_svc_kei_no";
	/** IN項目ID：サービス契約内訳番号 */
	private static final String IN_SVC_KEI_UCWK_NO = "key_svc_kei_ucwk_no";

	// ■ OUT項目ID ■
	/** OUT項目ID：料金コースコード */
	private static final String OUT_CHBF_PCRS_CD = "chbf_pcrs_cd";
	/** OUT項目ID：料金プランコード */
	private static final String OUT_CHBF_PPLAN_CD = "chbf_pplan_cd";
	/** OUT項目ID：サービス名称 */
	private static final String OUT_CHBF_SVC_NM = "chbf_svc_nm";
	/** OUT項目ID：サービス略称 */
	private static final String OUT_CHBF_SVC_NM_ALI = "chbf_svc_nm_ali";
	/** OUT項目ID：割引サービス料金プランコード */
	private static final String OUT_CHBF_WRIB_SVC_PPLAN_CD = "chbf_wrib_svc_pplan_cd";
	/** OUT項目ID：料金コースコード(コース変更先) */
	private static final String OUT_CHAF_PCRS_CD = "chaf_pcrs_cd";
	/** OUT項目ID：料金プランコード(コース変更先) */
	private static final String OUT_CHAF_PPLAN_CD = "chaf_pplan_cd";
	/** OUT項目ID：サービス名称(コース変更先) */
	private static final String OUT_CHAF_SVC_NM = "chaf_svc_nm";
	/** OUT項目ID：サービス略称(コース変更先) */
	private static final String OUT_CHAF_SVC_NM_ALI = "chaf_svc_nm_ali";
	/** OUT項目ID：戻りコード */
	private static final String OUT_RET_CD = "ret_cd";

	/** 無効な割引サービス契約ステータス */
	private static final List<String> WRIB_SVC_KEI_STAT_MUKO = Arrays.asList(JFUStrConst.CD00055_300, JFUStrConst.CD00055_920);

	/** 反映済みな申込時登録不可契約予約状態コード */
	private static final List<String> MKJ_ADDF_KEI_RV_STAT_SUMI = Arrays.asList(JFUStrConst.CD01650_1, JFUStrConst.CD01650_2);

	/** 適用中サービス結果コード */
	private static final String NOW_APLY_SVC_RSLT_CD = "nowAplySvcRsltCd";
	/** 適用中サービス戻りコード */
	private static final String NOW_APLY_SVC_RET_CD = "nowAplySvcRetCd";
	/** 適用中サービス料金プランコード */
	private static final String NOW_APLY_SVC_PPLAN_CD = "nowAplySvcPplanCd";
	/** 未来適用サービス結果コード */
	private static final String FT_APLY_SVC_RSLT_CD = "ftAplySvcRsltCd";
	/** 未来適用サービス戻りコード */
	private static final String FT_APLY_SVC_RET_CD = "ftAplySvcRetCd";
	/** 異動予約新料金コースコード */
	private static final String IDO_RSV_NEW_PCRS_CD = "idoRsvNewPcrsCd";

	/**
	 * テレビコース名表示切替部品実行処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	public IRequestParameterReadWrite getResultData(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		// 開始ログ
		outDebugLog("----- getResultData Start  -----");
		// 
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●ＩＮ項目
		// IN項目ID：サービス契約番号
		String inSvcKeiNo = (String)inMap.get(IN_SVC_KEI_NO);
		// IN項目ID：サービス契約内訳番号
		String inSvcKeiUcwkNo = (String)inMap.get(IN_SVC_KEI_UCWK_NO);

		// ●必須チェック
		if (JFUBPCommon.isNull(inSvcKeiNo))
		{
			inMap.put(OUT_RET_CD, JFUStrConst.RET_CD_PARAM_ERR); // "100":パラメータ不正
			// 終了ログ
			outDebugLog("----- getResultData End  -----");
			return param;
		}

		// ●適用中サービスデータ判定処理
		chkNowAplySvcDataJudgeProc(handle, param, fixedText, inSvcKeiNo, inSvcKeiUcwkNo);

		// ●未来適用サービスデータ判定処理
		chkFtAplySvcDataJudgeProc(handle, param, fixedText, inSvcKeiNo, inSvcKeiUcwkNo);

		// ● 返却処理
		rtnDataProc(handle, param, fixedText);

		// 終了ログ
		outDebugLog("----- getResultData End  -----");
		return param;

	}

	/**
	 * 適用中サービスデータ判定処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	public void chkNowAplySvcDataJudgeProc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String svcKeiNo,
			String svcKeiUcwkNo) throws Exception
	{
		// 開始ログ
		outDebugLog("----- chkNowAplySvcDataJudge Start  -----");

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●サービス契約一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK0081A010);
		// 上りマッピング
		setInMapEKK0081A010(param, fixedText, svcKeiNo);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0081A010, TEMP_ID_DTL_EKK0081A010, IN_COL_LIST_EKK0081A010, ERR_COL_EKK0081A010);
		// サービス契約マップ
		HashMap<String, String> mapEKK0081A010 =
				getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0081A010), TEMP_ID_DTL_EKK0081A010, JFUStrConst.I_ZERO);

		// ●EKK0481B001_割引サービス対象契約一覧照会
		// ユーザデータ初期化
		JFUBPCommon.initData(param, fixedText, IN_COL_LIST_EKK0481B001);
		// 上りマッピング
		setInMapEKK0481B001(param, fixedText, svcKeiNo);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		JFUBPCommon.executeSC(handle, param, fixedText, TEMP_ID_EKK0481B001, TEMP_ID_DTL_EKK0481B001, IN_COL_LIST_EKK0481B001, ERR_COL_EKK0481B001);
		List<HashMap> listEKK0481B001 =
				getTemplateList(inMap, JFUBPCommon.getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0481B001), TEMP_ID_DTL_EKK0481B001);

		// ■地デジ・ＢＳコーススターチャンネルセット表示切替判定
		checkNowBsStarChSet(handle, param, fixedText, mapEKK0081A010, listEKK0481B001);

		// 終了ログ
		outDebugLog("----- chkNowAplySvcDataJudge End  -----");
	}

	/**
	 * 地デジ・ＢＳコーススターチャンネルセット表示切替判定（適用中）
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param mapEKK0081A010 サービス契約マップ
	 * @param listEKK0481B001 割引サービス対象契約リスト
	 * @throws Exception 例外
	 */
	private void checkNowBsStarChSet(SessionHandle handle, IRequestParameterReadWrite param, String fixedText,
			HashMap<String, String> mapEKK0081A010, List<HashMap> listEKK0481B001) throws Exception
	{
		// 開始ログ
		outDebugLog("----- checkNowBsStarChSet Start  -----");

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 戻りコード
		String retCd = JFUStrConst.RET_CD_OK; // "000"：正常
		// 適用有無判断結果
		String rsltCd = RSLT_HNT_KEKKA_0; // "0"：適用無
		// 割引サービス契約.料金プランコード
		String pplanCd_KK0451 = null;
		// 運用日
		String opeDate = JFUBPCommon.getOpeDate(null);

		for (HashMap<String, String> mapEKK0451B001 : listEKK0481B001)
		{

			// ●EKK0451A010_割引サービス契約一意照会
			// ユーザデータ初期化
			JFUBPCommon.initData(param, fixedText, IN_COL_LIST_EKK0451A010);
			// 上りマッピング
			setInMapEKK0451A010(param, fixedText, mapEKK0451B001.get(EKK0451B001CBSMsg1List.WRIB_SVC_KEI_NO));
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			JFUBPCommon.executeSC(handle, param, fixedText, TEMP_ID_EKK0451A010, TEMP_ID_DTL_EKK0451A010, IN_COL_LIST_EKK0451A010,
					ERR_COL_EKK0451A010);
			// 割引サービス契約マップ
			HashMap<String, String> mapEKK0451A010 =
					getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0451A010), TEMP_ID_DTL_EKK0451A010, JFUStrConst.I_ZERO);

			// サービス契約.サービス契約ステータス
			String svcKeiStat = mapEKK0081A010.get(EKK0081A010CBSMsg1List.SVC_KEI_STAT);
			// サービス契約.料金コースコード
			String pcrsCd_KK0081 = mapEKK0081A010.get(EKK0081A010CBSMsg1List.PCRS_CD);
			// サービス契約.サービス解約起算年月日
			String svcDslKisanYmd = mapEKK0081A010.get(EKK0081A010CBSMsg1List.SVC_DSL_KISAN_YMD);
			// 割引サービス契約.割引サービスコード
			String wribSvcCd = mapEKK0451A010.get(EKK0451A010CBSMsg1List.WRIB_SVC_CD);
			// 割引サービス契約.料金コースコード
			String pcrsCd_KK0451 = mapEKK0451A010.get(EKK0451A010CBSMsg1List.PCRS_CD);
			// 割引サービス契約.料金プランコード
			pplanCd_KK0451 = mapEKK0451A010.get(EKK0451A010CBSMsg1List.PPLAN_CD);
			// 割引サービス契約.割引サービス契約ステータス
			String wribSvcKeiStat = mapEKK0451A010.get(EKK0451A010CBSMsg1List.WRIB_SVC_KEI_STAT);
			// 割引サービス契約.サービス利用開始希望年月日
			String svcUseStaKiboYmd = mapEKK0451A010.get(EKK0451A010CBSMsg1List.SVC_USE_STA_KIBO_YMD);
			// 割引サービス契約.サービス解約年月日
			String svcDslYmd = mapEKK0451A010.get(EKK0451A010CBSMsg1List.SVC_DSL_YMD);

			// 以下の条件の場合に、適用するかどうかの判定を行う。下記条件以外は適用外。
			// 　サービス契約.料金コースコード＝"A37"(地デジ・ＢＳコース）
			// 　且つ 割引サービス契約.割引サービスコード＝"W00000009"(ＢＳスターチャンネルセット）
			// 　且つ 割引サービス契約.料金コースコード＝"F05"(ＢＳスターチャンネルセット）
			// 　且つ 割引サービス契約.料金プランコード＝"PF0501"(ＢＳスターチャンネルセット）
			// 　且つ 割引サービス契約.料金プランコード＝("300"(適用済）、"920"(キャンセル済) )以外
			if (JFUStrConst.CD00134_A37.equals(pcrsCd_KK0081) && JFUStrConst.KK0841_WRIB_SVC_CD_CDBS_STCH_SET.equals(wribSvcCd)
					&& JFUStrConst.CD00134_F05.equals(pcrsCd_KK0451) && JFUStrConst.CD00565_PF0501.equals(pplanCd_KK0451)
					&& !WRIB_SVC_KEI_STAT_MUKO.contains(wribSvcKeiStat))
			{

				// ★割引サービス契約ステータス＝"910"(解約済)の場合は、サービス契約＝"910"(解約済)以外の場合はスキップ
				if (JFUStrConst.CD00055_910.equals(wribSvcKeiStat) && !JFUStrConst.CD00037_910.equals(svcKeiStat))
				{
					continue;
				}

				// 割引の適用判定
				if (JFUStrConst.CD01616_010.equals(svcKeiStat) || JFUStrConst.CD01616_020.equals(svcKeiStat)
						|| JFUStrConst.CD01616_030.equals(svcKeiStat))
				{
					// 割引サービス契約ステータス＝"010の場合
					if (JFUStrConst.CD00055_010.equals(wribSvcKeiStat))
					{
						rsltCd = RSLT_HNT_KEKKA_1; // "1"：適用有
						break;
					}
					else
					{
						retCd = JFUStrConst.RET_CD_DATA_ERR; // "999"：その他異常終了
						break;
					}
				}
				else if (JFUStrConst.CD01616_100.equals(svcKeiStat) || JFUStrConst.CD01616_210.equals(svcKeiStat)
						|| JFUStrConst.CD01616_220.equals(svcKeiStat))
				{
					rsltCd = RSLT_HNT_KEKKA_1; // "1"：適用有
					break;

				}
				else if (JFUStrConst.CD01616_910.equals(svcKeiStat))
				{
					// サービス契約.サービス解約起算年月日、割引サービス契約.サービス解約年月日のどちらかがNULLの場合は、スキップ
					if (JFUBPCommon.isNull(svcDslKisanYmd) || JFUBPCommon.isNull(svcDslYmd))
					{
						continue;
					}
					// サービス契約.サービス解約起算年月日＝割引サービス契約.サービス解約年月日
					if (svcDslKisanYmd.equals(svcDslYmd))
					{
						rsltCd = RSLT_HNT_KEKKA_1; // "1"：適用有
						break;
					}
				}
			}

			// 以下の条件の場合に、適用するかどうかの判定を行う。下記条件以外は適用外。
			// 　サービス契約.料金コースコード＝"A37"(地デジ・ＢＳコース）
			// 　且つ 割引サービス契約.割引サービスコード＝"W00000009"(ＢＳスターチャンネルセット）
			// 　且つ 割引サービス契約.料金コースコード＝"F06"(ＢＳスターチャンネルセット 割引無）
			// 　且つ 割引サービス契約.料金プランコード＝"PF0601"(ＢＳスターチャンネルセット 割引無）
			// 　且つ 割引サービス契約.料金プランコード＝("300"(適用済）、"920"(キャンセル済) )以外
			if (JFUStrConst.CD00134_A37.equals(pcrsCd_KK0081) && JFUStrConst.KK0841_WRIB_SVC_CD_CDBS_STCH_SET.equals(wribSvcCd)
					&& JFUStrConst.CD00134_F06.equals(pcrsCd_KK0451) && JFUStrConst.CD00565_PF0601.equals(pplanCd_KK0451)
					&& !WRIB_SVC_KEI_STAT_MUKO.contains(wribSvcKeiStat))
			{
				// ★割引サービス契約.割引サービス契約ステータス＝"910"(解約済)かつ、サービス契約.サービス契約ステータス＝"910"(解約済)以外の場合はスキップ
				if (JFUStrConst.CD00055_910.equals(wribSvcKeiStat) && !JFUStrConst.CD00037_910.equals(svcKeiStat))
				{
					continue;
				}

				// 割引の適用判定
				if (JFUStrConst.CD01616_010.equals(svcKeiStat) || JFUStrConst.CD01616_020.equals(svcKeiStat)
						|| JFUStrConst.CD01616_030.equals(svcKeiStat))
				{
					// 割引サービス契約ステータス＝"010の場合
					if (JFUStrConst.CD00055_010.equals(wribSvcKeiStat))
					{
						rsltCd = RSLT_HNT_KEKKA_2; // "2"：変換はあるが割引無
						break;
					}
					else
					{
						retCd = JFUStrConst.RET_CD_DATA_ERR; // "999"：その他異常終了
						break;
					}
				}
				else if (JFUStrConst.CD01616_100.equals(svcKeiStat) || JFUStrConst.CD01616_210.equals(svcKeiStat)
						|| JFUStrConst.CD01616_220.equals(svcKeiStat))
				{
					rsltCd = RSLT_HNT_KEKKA_2; // "2"：変換はあるが割引無
					break;

				}
				else if (JFUStrConst.CD01616_910.equals(svcKeiStat))
				{
					// サービス契約.サービス解約起算年月日、割引サービス契約.サービス解約年月日のどちらかがNULLの場合は、スキップ
					if (JFUBPCommon.isNull(svcDslKisanYmd) || JFUBPCommon.isNull(svcDslYmd))
					{
						continue;
					}
					// サービス契約.サービス解約起算年月日＝割引サービス契約.サービス解約年月日
					if (svcDslKisanYmd.equals(svcDslYmd))
					{
						rsltCd = RSLT_HNT_KEKKA_2; // "2"：変換はあるが割引無
						break;
					}
				}

			}

		}

		// リクエストパラメータにセット
		inMap.put(NOW_APLY_SVC_RSLT_CD, rsltCd);
		inMap.put(NOW_APLY_SVC_RET_CD, retCd);
		inMap.put(NOW_APLY_SVC_PPLAN_CD, pplanCd_KK0451);

		// 終了ログ
		outDebugLog("----- checkNowBsStarChSet End  -----");
	}

	/**
	 * 上りマッピング項目設定(サービス契約一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0081A010(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// 機能コード設定(2:カレント)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 上りマッピング項目設定(割引サービス対象契約一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0481B001(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1:割引サービス対象契約一覧照会)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0451B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 上りマッピング項目設定(割引サービス契約一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0451A010(IRequestParameterReadWrite param, String fixedText, String wribSvcKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(2:カレント)
		JFUBPCommon.setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ＫＥＹ＿割引サービス契約番号
		inMap.put(EKK0451A010CBSMsg.KEY_WRIB_SVC_KEI_NO, wribSvcKeiNo);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0451A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));

	}

	/**
	 * 未来適用サービスデータ判定処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	public void chkFtAplySvcDataJudgeProc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String svcKeiNo,
			String svcKeiUcwkNo) throws Exception
	{
		// 開始ログ
		outDebugLog("----- chkFtAplySvcDataJudgeProc Start  -----");

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●EKK1681B001_異動予約一覧照会 ※ＢＳ⇔ＨＤ用
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EKK1681B001);
		// 上りマッピング
		setInMapEKK1681B001(param, fixedText, svcKeiNo);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK1681B001, TEMP_ID_DTL_EKK1681B001, IN_COL_LIST_EKK1681B001, ERR_COL_EKK1681B001);
		// データリスト取得
		List<HashMap> listEKK1681B001 =
				getTemplateList(inMap, JFUBPCommon.getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK1681B001), TEMP_ID_DTL_EKK1681B001);

		//  ■地デジ・ＢＳコーススターチャンネルセット表示切替判定（未来適用）
		checkFtBsStarChSet(handle, param, fixedText, listEKK1681B001);

		// 開始ログ
		outDebugLog("----- chkFtAplySvcDataJudgeProc End  -----");
	}

	/**
	 * 地デジ・ＢＳコーススターチャンネルセット表示切替判定（未来適用）
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param listEKK1681B001 異動予約リスト
	 * @throws Exception 例外
	 */
	private void checkFtBsStarChSet(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, List<HashMap> listEKK1681B001)
			throws Exception
	{
		// 開始ログ
		outDebugLog("----- checkFtBsStarChSet Start  -----");

		// 戻りコード
		String retCd = JFUStrConst.RET_CD_OK; // "000"：正常
		// 適用有無判断結果
		String rsltCd = RSLT_HNT_KEKKA_0; // "0"：適用無
		// 異動予約新料金コースコード
		String idoRsvNewPcrsCd = JFUStrConst.EMPTY; // ""

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		for (HashMap<String, String> mapEKK1681B001 : listEKK1681B001)
		{
			// 異動予約新料金コード（返却用）※コース変更の予約中のデータがあれば返却を行う。
			idoRsvNewPcrsCd = mapEKK1681B001.get(EKK1681B001CBSMsg1List.NEW_PCRS_CD);

			// ●EKK2931B502_申込時登録不可契約予約一覧照会（申込明細番号）
			// ユーザデータ初期化
			JFUBPCommon.initData(param, fixedText, IN_COL_LIST_EKK2931B502);
			// 上りマッピング
			setInMapEKK2931B502(param, fixedText, mapEKK1681B001.get(EKK1681B001CBSMsg1List.MSKM_DTL_NO));
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			JFUBPCommon.executeSC(handle, param, fixedText, TEMP_ID_EKK2931B502, TEMP_ID_DTL_EKK2931B502, IN_COL_LIST_EKK2931B502,
					ERR_COL_EKK2931B502);
			for (HashMap<String, String> mapEKK2931B5021 : getTemplateList(inMap,
					JFUBPCommon.getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK2931B502), TEMP_ID_DTL_EKK2931B502))
			{

				// 異動予約.新料金コースコード
				String newPcrsCd_KK1681 = mapEKK1681B001.get(EKK1681B001CBSMsg1List.NEW_PCRS_CD);
				// 申込時登録不可契約予約.割引サービスコード
				String wribSvcCd_KK2931 = mapEKK2931B5021.get(EKK2931B502CBSMsg1List.WRIB_SVC_CD);
				// 申込時登録不可契約予約.料金コースコード
				String pcrsCd_KK2931 = mapEKK2931B5021.get(EKK2931B502CBSMsg1List.PCRS_CD);
				// 申込時登録不可契約予約.料金プランコード
				String pplanCd_KK2931 = mapEKK2931B5021.get(EKK2931B502CBSMsg1List.PPLAN_CD);
				// 申込時登録不可契約予約.申込時登録不可サービス契約状態コード
				String mkjAddfKeiRvStatCd_KK2931 = mapEKK2931B5021.get(EKK2931B502CBSMsg1List.MKJ_ADDF_KEI_RV_STAT_CD);

				// 以下の条件の場合に、適用するかどうかの判定を行う。下記条件以外は適用外。
				// 　異動予約.料金コースコード＝"A37"(地デジ・ＢＳコース）
				// 　且つ 申込時登録不可契約予約.割引サービスコード＝"W00000009"(ＢＳスターチャンネルセット）
				// 　且つ 申込時登録不可契約予約.料金コースコード＝"F05"(ＢＳスターチャンネルセット）
				// 　且つ 申込時登録不可契約予約.料金プランコード＝"PF0501"(ＢＳスターチャンネルセット）
				// 　且つ 申込時登録不可契約予約.申込時登録不可契約予約状態コード＝"1"(反映済）、"2"(取消済)以外
				if (JFUStrConst.CD00134_A37.equals(newPcrsCd_KK1681) && JFUStrConst.KK0841_WRIB_SVC_CD_CDBS_STCH_SET.equals(wribSvcCd_KK2931)
						&& JFUStrConst.CD00134_F05.equals(pcrsCd_KK2931) && JFUStrConst.CD00565_PF0501.equals(pplanCd_KK2931)
						&& !MKJ_ADDF_KEI_RV_STAT_SUMI.contains(mkjAddfKeiRvStatCd_KK2931))
				{
					rsltCd = RSLT_HNT_KEKKA_1; // "1"：適用有;
				}
			}
		}

		// 複数件存在する場合エラー
		if (listEKK1681B001.size() > 1)
		{
			retCd = JFUStrConst.RET_CD_IDO_RSV_ERR; // 030:異動予約データエラー
		}
		inMap.put(FT_APLY_SVC_RSLT_CD, rsltCd);
		inMap.put(FT_APLY_SVC_RET_CD, retCd);
		inMap.put(IDO_RSV_NEW_PCRS_CD, idoRsvNewPcrsCd);

		// 開始ログ
		outDebugLog("----- checkFtBsStarChSet End  -----");
	}

	/**
	 * 上りマッピング項目設定(異動予約一覧照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK1681B001(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1:一覧照会)
		JFUBPCommon.setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿異動予約詳細コード
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, JFUStrConst.CD01167_003); // "003":コース変更
		// ＫＥＹ＿異動予約状態コード
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, JFUStrConst.CD01168_00 + "," + JFUStrConst.CD01168_03); // "00":未反映、"03"：予約手続中
		// ＫＥＹ＿ソート項目Ｎｏ
		inMap.put(EKK1681B001CBSMsg.KEY_SORT_ITEM_NO, SORT_IDO_RSV_NO); // "1":異動予約番号

		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK1681B001CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);

	}

	/**
	 * 上りマッピング項目設定(申込時登録不可契約予約一覧照会（申込明細番号）)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param mskmDtlNo 申込明細番号
	 * @throws RequestParameterException
	 */
	private void setInMapEKK2931B502(IRequestParameterReadWrite param, String fixedText, String mskmDtlNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1:一覧照会)
		JFUBPCommon.setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿申込明細番号
		inMap.put(EKK2931B502CBSMsg.KEY_MSKM_DTL_NO, mskmDtlNo);

	}

	/**
	 * 返却処理<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	public void rtnDataProc(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// 開始ログ
		outDebugLog("----- chkNowAplySvcDataJudge Start  -----");

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●判定値取得
		// 適用中サービス結果コード
		String nowAplySvcRsltCd = (String)inMap.get(NOW_APLY_SVC_RSLT_CD);
		// 適用中サービス戻りコード
		String nowAplySvcRetCd = (String)inMap.get(NOW_APLY_SVC_RET_CD);
		// 適用中サービスプランコード
		String nowAplySvcPplanCd = (String)inMap.get(NOW_APLY_SVC_PPLAN_CD);
		// 未来適用サービス結果コード
		String ftAplySvcRsltCd = (String)inMap.get(FT_APLY_SVC_RSLT_CD);
		// 未来適用サービス戻りコード
		String ftAplySvcRetCd = (String)inMap.get(FT_APLY_SVC_RET_CD);

		// ■地デジ・ＢＳコース スターチャンネルセット用
		// ●業務パラメータ管理（テレビコースセットパック名称０１）
		String fuTvPackNm01 = getWorkParamSetteValue(handle, param, fixedText, JFUStrConst.FU_TV_PACK_NM_01);
		// ●業務パラメータ管理（テレビコースセットパック略称０１）
		String fuTvPackRknm01 = getWorkParamSetteValue(handle, param, fixedText, JFUStrConst.FU_TV_PACK_RKNM_01);
		// ●業務パラメータ管理（テレビコースセットパック料金コース（ダミー）０１）
		String fuTvPackPcrcd01 = getWorkParamSetteValue(handle, param, fixedText, JFUStrConst.FU_TV_PACK_PCRCD_01);
		// ●業務パラメータ管理（テレビコースセットパック料金プラン（ダミー）０１）
		String fuTvPackPplan01 = getWorkParamSetteValue(handle, param, fixedText, JFUStrConst.FU_TV_PACK_PPLAN_01);
		// ●業務パラメータ管理（テレビコースセットパック料金プラン（ダミー）０２）
		String fuTvPackPplan02 = getWorkParamSetteValue(handle, param, fixedText, JFUStrConst.FU_TV_PACK_PPLAN_02);


		// ■返却処理
		// 適用中データ
		if (RSLT_CD_NON.equals(nowAplySvcRsltCd))
		{
			// 適用中サービス結果コード＝"0"(変換無)の場合
			inMap.put(OUT_CHBF_PCRS_CD, null);
			inMap.put(OUT_CHBF_PPLAN_CD, null);
			inMap.put(OUT_CHBF_SVC_NM, null);
			inMap.put(OUT_CHBF_SVC_NM_ALI, null);
			inMap.put(OUT_CHBF_WRIB_SVC_PPLAN_CD, null);
		}
		else if (RSLT_CD_BS_STAR.equals(nowAplySvcRsltCd))
		{
			// 適用中サービス結果コード＝"1"(地デジ・ＢＳコース スターチャンネルセット)の場合
			inMap.put(OUT_CHBF_PCRS_CD, fuTvPackPcrcd01);
			inMap.put(OUT_CHBF_PPLAN_CD, fuTvPackPplan01);
			inMap.put(OUT_CHBF_SVC_NM, fuTvPackNm01);
			inMap.put(OUT_CHBF_SVC_NM_ALI, fuTvPackRknm01);
			inMap.put(OUT_CHBF_WRIB_SVC_PPLAN_CD, nowAplySvcPplanCd);
		}
		else if (RSLT_CD_BS_STAR_WBN.equals(nowAplySvcRsltCd))
		{
			// 適用中サービス結果コード＝"2"(地デジ・ＢＳコース スターチャンネルセット 割引無)の場合
			inMap.put(OUT_CHBF_PCRS_CD, fuTvPackPcrcd01);
			inMap.put(OUT_CHBF_PPLAN_CD, fuTvPackPplan02);
			inMap.put(OUT_CHBF_SVC_NM, fuTvPackNm01);
			inMap.put(OUT_CHBF_SVC_NM_ALI, fuTvPackRknm01);
			inMap.put(OUT_CHBF_WRIB_SVC_PPLAN_CD, nowAplySvcPplanCd);
		}

		// 未来適用データ
		if (RSLT_CD_NON.equals(ftAplySvcRsltCd))
		{
			// 未来適用サービス結果コード＝"0"(変換無)の場合
			inMap.put(OUT_CHAF_PCRS_CD, null);
			inMap.put(OUT_CHAF_PPLAN_CD, null);
			inMap.put(OUT_CHAF_SVC_NM, null);
			inMap.put(OUT_CHAF_SVC_NM_ALI, null);
		}
		else if (RSLT_CD_BS_STAR.equals(ftAplySvcRsltCd))
		{
			// 未来適用サービス結果コード＝"1"(地デジ・ＢＳコース スターチャンネルセット)の場合
			inMap.put(OUT_CHAF_PCRS_CD, fuTvPackPcrcd01);
			inMap.put(OUT_CHAF_PPLAN_CD, fuTvPackPplan01);
			inMap.put(OUT_CHAF_SVC_NM, fuTvPackNm01);
			inMap.put(OUT_CHAF_SVC_NM_ALI, fuTvPackRknm01);
		}

		// 戻りコード
		if (JFUStrConst.RET_CD_DATA_ERR.equals(nowAplySvcRetCd) || JFUStrConst.RET_CD_DATA_ERR.equals(ftAplySvcRetCd))
		{
			inMap.put(OUT_RET_CD, JFUStrConst.RET_CD_DATA_ERR); // "999":データ不正
		}
		else if (JFUStrConst.RET_CD_IDO_RSV_ERR.equals(ftAplySvcRetCd))
		{
			inMap.put(OUT_RET_CD, JFUStrConst.RET_CD_IDO_RSV_ERR); // "030":異動予約データエラー
		}
		else
		{
			inMap.put(OUT_RET_CD, JFUStrConst.RET_CD_OK); // "000":正常終了
		}

		// 異動予約料金コースコード（※コース変更の予約があれば返却する）
		inMap.put(IDO_RSV_NEW_PCRS_CD, (String)inMap.get(IDO_RSV_NEW_PCRS_CD));

	}

	/**
	 * 業務パラメータ管理の業務パラメータ設定値の取得<br>
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param workParamId 業務パラメータID
	 * @return 業務パラメータ設定値
	 * @throws Exception 例外
	 */
	private String getWorkParamSetteValue(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String workParamId)
			throws Exception
	{

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●サービス契約一意照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_COL_LIST_EZM0321A010);
		// 上りマッピング
		setInMapEZM0321A010(param, fixedText, workParamId);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EZM0321A010, TEMP_ID_DTL_EZM0321A010, IN_COL_LIST_EZM0321A010, ERR_COL_EZM0321A010);

		return getTemplateListValue(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EZM0321A010), TEMP_ID_DTL_EZM0321A010,
				EZM0321A010CBSMsg1List.WORK_PARAM_SETTE_VALUE, JFUStrConst.I_ZERO);

	}

	/**
	 * 上りマッピング項目設定(業務パラメータ管理一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param workParamId 業務パラメータ管理ID
	 * @throws RequestParameterException
	 */
	private void setInMapEZM0321A010(IRequestParameterReadWrite param, String fixedText, String workParamId) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定(1:カレント)
		JFUBPCommon.setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ＫＥＹ＿業務パラメータID
		inMap.put(EZM0321A010CBSMsg.KEY_WORK_PARAM_ID, workParamId);

	}

	/**
	 * チェック処理（共通処理）
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}

	/**
	 * デバッグ出力処理です。
	 * 
	 * <br>
	 * @param obj 出力内容
	 */
	private void outDebugLog(Object obj)
	{
		// デバッグ出力
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), obj, null, null, null);
	}
}
