/*********************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名		：CR
 *	モジュール名	：JCRGetQueTaioKirokCCReqChk
 *	ソースファイル名：JCRGetQueTaioKirokCCReqChk.java
 *	作成者			：FJ
 *	日付			：2013年10月28日
 *＜機能概要＞
 *	対応記録一覧照会(キューBOX)取得CC実行判定クラスです。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v6.00.00	2013/10/28	FJ			新規作成
 *
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.bp.x21.bpm.common.AbstractCustomReqChk;
import com.fujitsu.futurity.bp.x21.bpm.common.IConditionValue;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.reqchk.exception.ReqChkException;

/**
 * BPから呼び出すサービスIFの
 * サービスIFの実行判定を実施する。
 * @author FJ
 */
public class JCRGetQueTaioKirokCCReqChk extends AbstractCustomReqChk
{

	/**
	 * サービスIFの実行判定を実施する。
	 * @param irp リクエストパラメータ
	 * @param conditionvalue 判定値格納クラス
	 * @return 判定結果
	 * @throws ReqChkException
	 */
	@SuppressWarnings("unchecked")
	public boolean checkExecution(IRequestParameterReadOnly irp, IConditionValue conditionvalue) throws ReqChkException
	{
		try
		{
			HashMap<String, Object> inMap = (HashMap)irp.getData(conditionvalue.get("value"));
			HashMap<String, Object> wkkbtOrgMap = (HashMap<String, Object>)irp.getData("GETWKKBTGRCC");

			if (wkkbtOrgMap != null)
			{
				ArrayList<HashMap<String, Object>> dataList = (ArrayList)wkkbtOrgMap.get("EZM0151B020CBSMsg1List");

				if (dataList != null)
				{
					for (int i = 0; i < dataList.size(); i++)
					{
						HashMap<String, Object> childMap = (HashMap<String, Object>)dataList.get(i);

						// 業務個別設定組織コードリストにＫＥＹ＿業務個別設定組織コードが存在する場合
						if (inMap.get("key_wkkbt_org_cd").equals(childMap.get("wkkbt_org_cd")))
						{
							return true;
						}
					}
				}
			}
		} 
		catch (RequestParameterException e) 
		{
			throw new ReqChkException(e.getMessage(), e);
		}

		return false;
	}
}
