/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUDialupRelCheckCC
*   ソースファイル名：JFUDialupRelCheckCC.java
*   作成者          ：富士通
*   日付            ：2012年7月20日
*＜機能概要＞
*   ダイヤルアップ接続関連チェックコモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*  v50.00.00    2020/05/30   FJ)張本     ANK-3862-00-00_【CMP】WEB電話オプション外出し対応
*
**********************************************************************/
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 eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251A010CBSMsg1List;

/**
 * 電話オプションサービス申込関連チェックコモンコンポーネント部品
 * 
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUTelOptSvcMskmRelCheckCC extends JFUBaseNetChgRelCheckCC
{
	/** IN項目:サービス契約番号 */
	protected static final String IN_PARAM_KEY_SVC_KEI_NO = "key_svc_kei_no";
	/** IN項目:サービス契約回線内訳番号 */
	protected static final String IN_PARAM_KEY_SVC_KEI_KAISEN_UCWK_NO = "key_svc_kei_kaisen_ucwk_no";
	/** IN項目:電話番号 */
	protected static final String IN_PARAM_KEY_TELNO = "key_telno";

	/* ■□ EKK0251A010_サービス契約回線内訳一意照会 ■□ */
	/** テンプレートID(サービス契約回線内訳一意照会) */
	private static final String TEMP_ID_EKK0251A010 = "EKK0251A010";
	/** テンプレートID(サービス契約回線内訳一意照会明細) */
	private static final String TEMP_ID_DTL_EKK0251A010 = EKK0251A010CBSMsg.EKK0251A010CBSMSG1LIST;
	/** IN項目リスト(サービス契約回線内訳一意照会) */
	private static final List<String> IN_COL_LIST_EKK0251A010 = Arrays.asList(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO);
	/** 関連チェックエラー項目(サービス契約回線内訳一意照会) */
	private static final String ERR_COL_EKK0251A010 = EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO_ERR;
	/** SC実行結果取得キー(サービス契約回線内訳一意照会) */
	private static final String TEMP_TEMP_KEY_EKK0251A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0251A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/**
	 * VLAN-ID確定済みチェック
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return VLAN-ID確定フラグ
	 * @throws RequestParameterException
	 * @throws Exception
	 */
	protected String checkVlanIdFix(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{

		try
		{
			// ユーザデータ取得
			HashMap inMap = (HashMap)param.getData(fixedText);

			// IN項目:サービス契約回線内訳番号
			String inParamSvcKeiKaisenUcwkNo = (String)inMap.get(IN_PARAM_KEY_SVC_KEI_KAISEN_UCWK_NO);

			// ●VLAN確定済チェック
			// ○EKK0251A010_サービス契約回線内訳一意照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_COL_LIST_EKK0251A010);
			// 上りマッピング
			setInMapEKK0251A010(param, fixedText, inParamSvcKeiKaisenUcwkNo);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0251A010, TEMP_ID_DTL_EKK0251A010, IN_COL_LIST_EKK0251A010, ERR_COL_EKK0251A010);
			// マップを取得
			HashMap EKK0251A010Map = getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0251A010), TEMP_ID_DTL_EKK0251A010, 0);

			// VLAN-ID確定フラグ
			String vlanIdFixFlg = (String)EKK0251A010Map.get(EKK0251A010CBSMsg1List.VLAN_ID_FIX_FLG);

			return vlanIdFixFlg;

		}
		finally
		{
			// 一時領域削除
			super.deleteTempArea(param, fixedText);
		}
	}

	/**
	 * 上りマッピング項目設定(サービス契約回線内訳一意照会)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param pcrsCd
	 * @param pplanCd
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0251A010(IRequestParameterReadWrite param, String fixedText, String svcKeiKaisenUcwkNo)
			throws RequestParameterException
	{
		// 機能コード設定(2)
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿サービス契約回線内訳番号
		inMap.put(EKK0251A010CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);

	}
}
