/**********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKSV017021ReqChk
 *   ソースファイル名：JKKSV017021ReqChk.java
 *   作成者          ：FJ)丹羽
 *   日付            ：2016年01月20日
 *＜機能概要＞
 *   工事案件一意照会実行判定クラス
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v20.00.00   2016/01/20   FJ)丹羽     新規作成
**********************************************************************/
package com.fujitsu.futurity.bp.custom.reqchk;

import java.util.HashMap;
import java.util.List;

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;


/**
 * KKSV0170 トーキ初期表示<br>
 * KKSV017021SC 工事案件一意照会SC<br>
 *<br>
 * 住所変更明細一覧照会（変更前識別番号）S-IFから住所変更番号が正常に返却されている場合に実行する。
 * 
 * @author 富士通
 * @since 2016-01-20
 */
public class JKKSV017021ReqChk extends AbstractCustomReqChk {

	
	/**
	 * 工事案件一意照会ＳＣ　実行判定メソッド
	 */
	@SuppressWarnings("unchecked")
	@Override
	public boolean checkExecution(IRequestParameterReadOnly arg0, IConditionValue arg1) throws ReqChkException
	{
		// SCマップから必要な情報を取り出す
		HashMap<String, Object> parentMap;
		try 
		{
			parentMap = (HashMap<String, Object>)arg0.getData("KKSV017017SC");
			if (parentMap != null)
			{
				// 住所変更番号の取得
				List list = (List)parentMap.get("EKK2101B002CBSMsg1List");
				if (list != null && list.size() > 0)
				{
					HashMap childMap = (HashMap)list.get(0);
					if (childMap != null) 
					{
						String adchgNo = (String)childMap.get("adchg_no");
						
						if (null != adchgNo && !"".equals(adchgNo))
						{
							// 工事案件番号が取得できているか
							HashMap<String, Object> ownMap = (HashMap<String, Object>)arg0.getData("KKSV017021SC");
							if (ownMap != null && ownMap.containsKey("key_kojiak_no"))
							{
								return true;
							}
						}
					}
				}
			}
		}
		catch (RequestParameterException e) 
		{
			return false;
		}
		return false;
	}
}
