/*********************************************************************
 * All Rights reserved, Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JFUWctrlOrderSendCC
 *   ソースファイル名：JFUWctrlOrderSendCC.java
 *   作成者          ：富士通
 *   日付            ：20121年07月26日
 *＜機能概要＞
 *   視聴制御オーダ送信ＣＣ呼出前処理コモンコンポーネント部品です。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v4.00       2012/07/26   FJ）大野    新規作成
 *
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;

import eo.ejb.cbs.cbsmsg.EKK0161B506CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B506CBSMsg1List;

/**
 * 視聴制御オーダ送信ＣＣ呼出前処理です。
 * <br>
 * @author 富士通
 */
public class JFUWctrlOrderSendCC extends JKKWctrlOrderSendCC
{
	/** インマップID */
	public static final String WCTRL_ORDER_SEND_MAP = "WctrlOrderSendMap";
	/** インリストID */
	public static final String EWC0161D010CBSMSG1LIST = "wc01611_EWC0161D010CBSMsg1List";
	/** デジタルティアグループコード */
	public static final String WC_DGTIA_GRP_CD = "wc01611_dgtia_grp_cd";
	/** SCタイトル */
	public static final String SC_TITLE = "FUSV012705SC";

	/**
	 * 視聴制御オーダ送信ＣＣ呼出前処理を実施します。<br>
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	public IRequestParameterReadWrite sendWctrlOrder(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// ユーザデータ情報を取得します。
		HashMap<String, Object> inMap_FUSV012701SC = (HashMap<String, Object>)(param.getData(fixedText));
		// 上りマッピングの処理結果を取得し、視聴制御オーダ送信コモンコンポーネント部品に渡すマップへ設定します。
		param.setData(WCTRL_ORDER_SEND_MAP, inMap_FUSV012701SC);
		// 先行SC（FUSV012705）の処理結果を取得するためのマップを生成します。
		HashMap<String, Object> inMap_FUSV012705SC = new HashMap<String, Object>();
		// 先行SC（FUSV012705）の処理結果を取得します。
		if (fixedText.length() == 12)
		{
			inMap_FUSV012705SC = (HashMap<String, Object>)(param.getData(SC_TITLE));
		}
		else
		{
			inMap_FUSV012705SC = (HashMap<String, Object>)(param.getData(SC_TITLE + fixedText.substring(12, 14)));
		}

		ArrayList<Object> workLst_EKK0161B506CBSMSG1LIST = (ArrayList<Object>)inMap_FUSV012705SC.get(EKK0161B506CBSMsg.EKK0161B506CBSMSG1LIST);

		HashMap<String, Object> inMap_WctrlOrderSendMap = (HashMap<String, Object>)(param.getData(WCTRL_ORDER_SEND_MAP));

		ArrayList<Object> workLst_wc01611_EWC0161D010CBSMsg1NewList =
				(ArrayList<Object>)inMap_FUSV012705SC.get(EKK0161B506CBSMsg.EKK0161B506CBSMSG1LIST);

		for (int i = 0; i < workLst_EKK0161B506CBSMSG1LIST.size(); i++)
		{
			// デジタルティアグループコード一覧照会明細Mapを取得します。
			HashMap<String, Object> workMap_EKK0161B506CBSMSG1LIST = (HashMap<String, Object>)workLst_EKK0161B506CBSMSG1LIST.get(i);

			HashMap<String, Object> workMap_Wc01611EWC0161D010CBSMsg1List = (HashMap<String, Object>)workLst_wc01611_EWC0161D010CBSMsg1NewList.get(i);
			// デジタルティアグループコードを取得します。
			workMap_Wc01611EWC0161D010CBSMsg1List.put(WC_DGTIA_GRP_CD, workMap_EKK0161B506CBSMSG1LIST.get(EKK0161B506CBSMsg1List.DGTIA_GRP_CD));
		}
		// 視聴制御オーダ送信コモンコンポーネント部品に渡すマップへリストを設定します。
		inMap_WctrlOrderSendMap.put(EWC0161D010CBSMSG1LIST, workLst_wc01611_EWC0161D010CBSMsg1NewList);
		// 視聴制御オーダ送信コモンコンポーネント部品(JKKWctrlOrderSendCC)呼び出し処理です。
		super.sendWctrlOrder(handle, param, fixedText);
		return param;
	}
}
