/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*ƒƒvƒƒOƒ‰ƒ€“à—e„
*	ƒVƒXƒeƒ€–¼		FeoŒÚ‹qŠîŠ²ƒVƒXƒeƒ€
*	ƒ‚ƒWƒ…[ƒ‹–¼	FJKKCustTaikaiKaihkCallCC
*	ƒ\[ƒXƒtƒ@ƒCƒ‹–¼FJKKCustTaikaiKaihkCallCC.java
*	ì¬ŽÒ			FFAP)ˆî‰ª
*	“ú•t			F2012”N10ŒŽ12“ú
*ƒ‹@”\ŠT—v„
*	Œ_–ñ•R•t•ÏX“o˜^‚Ì‚¨‹q—l‘Þ‰ïE‰ñ•œˆ—‹¤’ÊƒRƒ“ƒ|[ƒlƒ“ƒg
*ƒC³—š—ð„
*	ƒo[ƒWƒ‡ƒ“	C³“ú		C³ŽÒ		C³“à—e
*	v4.00.00	2012/10/12	FJjˆî‰ª	V‹Kì¬
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.HashMap;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.common.JCMConstants;


/**
 * ‚¨‹q—l‘Þ‰ïE‰ñ•œ‹¤’ÊCCŒÄoˆ—‚ðs‚¢‚Ü‚·B<p>
 * <BR>
 * @author •xŽm’Ê
 */
public class JKKCustTaikaiKaihkCallCC extends AbstractCommonComponent
{
	
	/** KEY */
	private static final String FIXED_KEY_TAIKAI = "CustTaikaiCmnCC";
	
	/** KEY */
	private static final String FIXED_KEY_KAIHK = "CustKaihkCmnCC";
	
	
	/**
	 * 
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return IRequestParameterReadWrite
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite execute(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// ƒ†[ƒUƒf[ƒ^î•ñ
		HashMap<String, Object> dataMap = (HashMap<String, Object>)param.getData(fixedText);
		
		//****************************************
		// ¡‚¨‹q—l‘Þ‰ï‹¤’ÊCCŽÀs
		//****************************************
		execCustTaikaiCmnCC(handle, param, dataMap);
		
		//****************************************
		// ¡‚¨‹q—l‰ñ•œ‹¤’ÊCCŽÀs
		//****************************************
		execCustKaihkCmnCC(handle, param, dataMap);
		
		return param;
	}
	
	/**
	 * ‚¨‹q—l‘Þ‰ï‹¤’ÊCCŽÀsˆ—
	 * 
	 * @param handle
	 * @param param
	 * @param dataMap
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite execCustTaikaiCmnCC(
															SessionHandle handle, 
															IRequestParameterReadWrite param, 
															HashMap dataMap) throws Throwable
	{
		// ƒpƒ‰ƒ[ƒ^Ši”[
		param.setData(FIXED_KEY_TAIKAI, new HashMap<String, Object>());
		
		HashMap<String, Object> outMap = (HashMap<String, Object>)param.getData(FIXED_KEY_TAIKAI);
		
		// ‹@”\ƒR[ƒh
		outMap.put(JCMConstants.FUNC_CODE_KEY, dataMap.get("func_code"));
		
		// •¹‡Œ³Q‚r‚x‚r‚h‚c
		outMap.put("sysid", dataMap.get("mt_sysid"));
		
		// ‚¨‹q—l‘Þ‰ï‹¤’ÊCC ŽÀsˆ—
		JCKCustTaikaiCmnCC custTaikaiCmnCC = new JCKCustTaikaiCmnCC();
		custTaikaiCmnCC.execute(handle, param, FIXED_KEY_TAIKAI);
		
		param.removeData(FIXED_KEY_TAIKAI);
		
		return param;
	}
	
	/**
	 * ‚¨‹q—l‰ñ•œ‹¤’ÊCCŽÀsˆ—
	 * 
	 * @param handle
	 * @param param
	 * @param dataMap
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite execCustKaihkCmnCC(
															SessionHandle handle, 
															IRequestParameterReadWrite param, 
															HashMap dataMap) throws Throwable
	{
		// ƒpƒ‰ƒ[ƒ^Ši”[
		param.setData(FIXED_KEY_KAIHK, new HashMap<String, Object>());
		
		HashMap<String, Object> outMap = (HashMap<String, Object>)param.getData(FIXED_KEY_KAIHK);
		
		// ‹@”\ƒR[ƒh
		outMap.put(JCMConstants.FUNC_CODE_KEY, (String)dataMap.get("func_code"));
		
		// •¹‡æQ‚r‚x‚r‚h‚c
		outMap.put("sysid", dataMap.get("sk_sysid"));
		
		// •¹‡æQƒT[ƒrƒXŒ_–ñ”Ô†
		outMap.put("svc_kei_no", dataMap.get("sk_svc_kei_no"));
		
		// ‚¨‹q—l‰ñ•œ‹¤’ÊCC ŽÀsˆ—
		JCKCustKaihkCmnCC custKaihkCmnCC = new JCKCustKaihkCmnCC();
		custKaihkCmnCC.execute(handle, param, FIXED_KEY_KAIHK);
		
		param.removeData(FIXED_KEY_KAIHK);
		
		return param;
	}
	
}
