/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：ZMW10904SFLogic
*   ソースファイル名：ZMW10904SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月22日
*＜機能概要＞
*   データ一括登録結果確認画面の画面制御を行います。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/22   FJ) 宮前    新規作成
*   v5.00.00    2013/07/10   FJ) 岩元    【LT-2013-0000376】データ一括登録コンボボックス値復帰処理対応
*
**********************************************************************/
package eo.web.webview.ZMW10904SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.common.JZMWebCommon;
import eo.web.webview.common.JZMWebConst;
import eo.web.webview.mapping.ZMSV0026_ZMSV0026OPDBMapper;
import eo.web.webview.mapping.ZMSV0027_ZMSV0027OPDBMapper;


/**
 * <dd>クラス名：データ一括登録結果確認 Viewロジック
 * <dd>クラス説明：データ一括登録結果確認画面のViewロジック。
 * <dd>備考：
 * @version  1.0 2011/05/21
 * @author   FJ
 */
public class ZMW10904SFLogic extends JCCWebBusinessLogic 
{

	/** 最大検索件数 KEY */
	private static final String KEY_MAX_SHOW_CNT = "ZMW10904_MAX_SHOW_CNT";
	
	/** 一括登録処理コード */
	private static final String KEY_IKT_IKT_TRN_CD = "key_ikt_ikt_trn_cd";
	
	/** 権限コード */
	private static final String KEY_AUTHORITY_CD = "key_authority_cd";
	
	/** 依頼日時−開始 */
	private static final String KEY_TRN_REQ_DTM_FROM = "key_trn_req_dtm_from";
	
	/** 依頼日時−終了 */
	private static final String KEY_TRN_REQ_DTM_TO = "key_trn_req_dtm_to";
	
	/** 処理管理番号 */
	private static final String KEY_TRN_KANRI_NO = "key_trn_kanri_no";
	
	/** ディレイド処理結果コード */
	private static final String KEY_TRN_JOKYO_CD = "key_trn_jokyo_cd";
	
	/** 処理依頼者オペレータアカウント */
	private static final String KEY_IRAISHA = "key_iraisya";
	
	/** ソートフラグ */
	private static final String KEY_SORT_FLG = "key_sort_flg";
	
	/** 検索条件取得用 配列 */
	private static final String[][] SEARCH_KEYS = 
	{
		
		// 一括登録処理コード
		{KEY_IKT_IKT_TRN_CD, ZMW10904SFConst.KEY_IKT_IKT_TRN_CD}, 
		
		// 権限コード
		{KEY_AUTHORITY_CD, ZMW10904SFConst.KEY_AUTHORITY_CD}, 
		
		// 依頼日時−開始
		{KEY_TRN_REQ_DTM_FROM, ZMW10904SFConst.KEY_TRN_REQ_DTM_FROM}, 
		
		// 依頼日時−終了
		{KEY_TRN_REQ_DTM_TO, ZMW10904SFConst.KEY_TRN_REQ_DTM_TO}, 
		
		// 処理管理番号
		{KEY_TRN_KANRI_NO, ZMW10904SFConst.KEY_TRN_KANRI_NO}, 
		
		// ディレイド処理結果コード
		{KEY_TRN_JOKYO_CD, ZMW10904SFConst.KEY_TRN_JOKYO_CD}, 
		
		// 処理依頼者オペレータアカウント
		{KEY_IRAISHA, ZMW10904SFConst.KEY_IRAISHA}, 
		
		// ソート判定フラグ
		{KEY_SORT_FLG, ZMW10904SFConst.SORT_FLG}
	};
	
	/** 検索条件取得用 配列Index HashMap Key */
	private static final int HASHMAP_KEYS_INDEX = 0;
	
	/** 検索条件取得用 配列Index サービスフォームBean */
	private static final int SERVICE_FROM_BEAN_INDEX = 1;
	
	/** 実行判定フラグ OFF */
	private static final String EXEC_FLG_OFF = "0";
	
	/** 実行判定フラグ ON */
	private static final String EXEC_FLG_ON = "1";
	
	/** ソートフラグ初期値 */
	private static final String SORT_FLG_INIT = "1";
	
	/** データ一括登録結果初期表示サービスID */
	private static final String USECASE_ID_26 = "ZMSV0026";
	
	/** データ一括登録結果一覧取得サービスID */
	private static final String USECASE_ID_27 = "ZMSV0027";
	
	/** データ一括登録結果確認一覧照会サービスインターフェイスID */
	private static final String TEMP_ID = "ZMSV002701SC";
	
	/** ページリンク用検索コマンドID */
	private static final String SEARCH_COMMAND_FOR_PAGELINK = "paging";
	
	/** 処理管理番号 */
	private static final String KEY_TRN_NO = "key_trn_kanri_no";
	
	/** ファイル登録日時 開始 */
	private static final String KEY_FILE_ADD_DATE_DTM = "key_trn_req_dtm";

	/**
	 * データ一括登録結果確認画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共有フォームBean
		X31SDataBeanAccess beanCF = getCommonInfoBean();
		
		// マッピングクラスに渡す配列
		X31SDataBeanAccess[] paramBeans = {bean};
		
		// サービスへ渡すHashMap
		HashMap inDataMap = new HashMap();
		
		// 検索結果格納用HashMap
		HashMap outputMap = new HashMap();
		
		// ユースケースID格納用マップを生成
		HashMap paramMap = new HashMap();
		String sortFlg = "";
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		boolean execFlg = getSearchKeys();
		
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		if(execFlg)
		{
			
			// セッションから検索条件が取得できた場合、検索を実施する。
			// 実行判定フラグのセット 検索を実施するので、"1"
			bean.sendMessageString(ZMW10904SFConst.EXECUTE_FLG, X31CWebConst.DATABEAN_SET_VALUE, EXEC_FLG_ON);
			sortFlg = bean.sendMessageString(ZMW10904SFConst.SORT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else
		{
			
			// セッションから検索条件が取得できなかった場合、処理名の一覧のみ取得する。
			// 実行判定フラグのセット 検索を実施しないので、"0"
			bean.sendMessageString(ZMW10904SFConst.EXECUTE_FLG, X31CWebConst.DATABEAN_SET_VALUE, EXEC_FLG_OFF);
			
			// ソート判定フラグ初期化 "1"
			sortFlg = SORT_FLG_INIT;
			bean.sendMessageString(ZMW10904SFConst.SORT_FLG, X31CWebConst.DATABEAN_SET_VALUE, sortFlg);
		}
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// ユースケースID指定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_26);
		
		// マッピング
		ZMSV0026_ZMSV0026OPDBMapper mapper = new ZMSV0026_ZMSV0026OPDBMapper();
		setMappingInfo(paramBeans, inDataMap, mapper, execFlg, sortFlg);
		
		// サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inDataMap, outputMap);
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
		}
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		getMappingInfo(paramBeans, outputMap, mapper, execFlg, sortFlg);
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		
		// 画面ID
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10904);
		
		// 画面名
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10904);
		return true;
	}
	
	/**
	 * データ一括登録結果確認画面 検索ボタン押下およびソートLink押下処理。
	 * @return boolean
	 * @throws Exception
	 */
	public boolean search() throws Exception
	{
		
		// ページリンクのクリア
		JCCWebCommon.clearPageLinkInfo(this, JZMScreenConst.SCREEN_ID_ZMW10904);
		
		// 検索処理
		paging();
		return true;
	}
	
	/**
	 * データ一括登録結果確認画面 ページング処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public boolean paging() throws Exception
	{
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共有フォームBean
		X31SDataBeanAccess beanCF = getCommonInfoBean();
		
		// マッピングクラスに渡す配列
		X31SDataBeanAccess[] paramBeans = {bean};

		// サービスへ渡すHashMap
		HashMap inDataMap = new HashMap();
		
		// 検索結果格納用HashMap
		HashMap outputMap = new HashMap();
		
		// ユースケースID格納用マップを生成
		HashMap paramMap = new HashMap();
		
		// (a) ソートフラグ
		String sortFlg = bean.sendMessageString(ZMW10904SFConst.SORT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// (b) 検索条件セット
		setSearchKeysForMapping();
		
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// (a) ユースケースID指定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_27);
		
		// (b) マッピング
		ZMSV0027_ZMSV0027OPDBMapper mapper = new ZMSV0027_ZMSV0027OPDBMapper();
		mapper.setEZM0251B010(paramBeans, inDataMap, sortFlg);
		
		// (c) ページング処理 マッピング
		JCCWebCommon.upmapperPageLinkInfo(this, TEMP_ID, inDataMap);
		
		// (d) サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inDataMap, outputMap);
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
		}
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// (a) サービスフォームBean 一覧クリア
		X31SDataBeanAccessArray beanList = bean.getDataBeanArray(ZMW10904SFConst.DATAIKTTRK_RSLT_LIST);
		if(beanList.getCount() != 0)
		{
			
			//一覧のクリア
			beanList.clearArray();
		}
		
		// (b) マッピング
		mapper.getEZM0251B010(paramBeans, outputMap);
		
		// (c) 0件または最大検索数越えの処理
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(TEMP_ID, outputMap); 
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			
			// ・検索結果が0件の場合
			String[] strMsgs = {""};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, strMsgs);
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			
			// ・最大件数越えの場合
			String[] strMsgs = {JCCWebCommon.getSearchConst(KEY_MAX_SHOW_CNT)};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, strMsgs);

		}
		else
		{
			
			// ・ページング処理 マッピング
			JCCWebCommon.downmapperPageLinkInfo(this, TEMP_ID, outputMap);
			
			//  検索コマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, SEARCH_COMMAND_FOR_PAGELINK);
		}
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 画面ID
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10904);
		
		// 画面名
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10904);

		return true;
	}
	
	/**
	 * データ一括登録結果確認画面 一括登録ボタン押下処理。
     * <BR>
	 * @return boolean
	 */
	public boolean dataikttrk()
	{
		
		
		// 遷移先画面から戻ってきた際の引継情報を格納します。
		setTranMap();
		
		
		String selectedItem = getSelectedItem(ZMW10904SFConst.TRN_NM_LIST, ZMW10904SFConst.TRN_KANRI_SELECT, ZMW10904SFConst.TRN_KANRI_NO_01);
		
		// 更新画面引渡し情報格納用HashMapの設定
		HashMap<String, Object> output = new HashMap<String, Object>();
		output.put(JZMWebConst.CHOISE_TRN_NO, selectedItem);
		JZMWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10901, output);
		
		
		X31SDataBeanAccess beanCF = getCommonInfoBean();
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10901);
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10901);
		
		return true;
	}
	
	/**
     * 引継情報を格納します。
	 */
	private void setTranMap() {
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 検索画面情報情報格納用HashMap
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_YYYY_FROM, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_MM_FROM, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_DD_FROM, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_HH_FROM, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_MI_FROM, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_YYYY_TO, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_MM_TO, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_DD_TO, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_HH_TO, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_REQ_MI_TO, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.IRAISHA, true);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_KANRI_SELECT, false);
		putBeanValue(bean, paramMap, ZMW10904SFConst.TRN_JOKYO_SELECT, false);
		
		JZMWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10904, paramMap);
	}
	
	
	/** bean内の指定した項目をparamMapにputします。
	 * @param	bean	DataBean
	 * @param	paramMap paramMap
	 * @param	key	ハップマップキー項目
	 * @param	isBoolean boolean項目かを否かを設定
	 */
	private void putBeanValue(X31SDataBeanAccess bean, 
			HashMap<String, Object> paramMap,
			String key, boolean isBoolean)
	{
		if(isBoolean)
		{
			boolean value = JZMWebCommon.getSendMessageBoolean(bean, key);
			paramMap.put(key, value);
		}
		else
		{
			String value = JZMWebCommon.getSendMessageString(bean, key);
			paramMap.put(key, value);
		}
	}
	
	/**
	 * データダウンロード画面遷移処理
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	public boolean openDl()
	{
		X31SDataBeanAccess svBean = getServiceFormBean();
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		
		// -------------------------------------------------- //
		// (1)引継情報の設定
		// -------------------------------------------------- //
		// データダウンロード画面用検索条件をセッションへ格納する。
		String indexStr = svBean.sendMessageString(ZMW10904SFConst.LIST_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		String iraiDtm = "";
		String trnId = "";
		HashMap dataMap = new HashMap();
		if(indexStr != null && !"".equals(indexStr))
		{
			int index = Integer.parseInt(indexStr);
			X31SDataBeanAccess subBean = svBean.getDataBeanArray(ZMW10904SFConst.DATAIKTTRK_RSLT_LIST).getDataBean(index);
			iraiDtm = subBean.sendMessageString(ZMW10904SFConst.LIST_TRN_REQ_DTM_03, X31CWebConst.DATABEAN_GET_VALUE);
			trnId = svBean.sendMessageString(ZMW10904SFConst.KEY_TRN_KANRI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			dataMap.put(KEY_TRN_NO, trnId);
			dataMap.put(KEY_FILE_ADD_DATE_DTM, iraiDtm);
			
			// (a)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
			JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10801, dataMap);
			
			// (b)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
			JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10801, JZMScreenConst.SCREEN_ID_ZMW10904);
		}
		
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //

		
		// 遷移先画面から戻ってきた際の引継情報を格納します。
		setTranMap();
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW10801);
		
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_NAME_ZMW10801);

		return true;
	}
	
	/**
	 * 入力された検索条件をサービスフォームBeanへセットする。
     * <BR>
	 * @throws Exception 
	 */
	private void setSearchKeysForMapping() throws Exception
	{
		
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		X31SDataBeanAccess beanCF = getCommonInfoBean();

		// 依頼日時−開始
		String trn_req_dtm_yyyy_from = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_YYYY_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_mm_from = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_MM_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_dd_from = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_DD_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_hh_from = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_HH_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_mi_from = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_MI_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(ZMW10904SFConst.KEY_TRN_REQ_DTM_FROM, X31CWebConst.DATABEAN_SET_VALUE, 
				trn_req_dtm_yyyy_from + trn_req_dtm_mm_from + trn_req_dtm_dd_from + trn_req_dtm_hh_from + trn_req_dtm_mi_from);
		
		// 依頼日時−終了
		String trn_req_dtm_yyyy_to = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_YYYY_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_mm_to = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_MM_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_dd_to = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_DD_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_hh_to = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_HH_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String trn_req_dtm_mi_to = bean.sendMessageString(ZMW10904SFConst.TRN_REQ_MI_TO, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(ZMW10904SFConst.KEY_TRN_REQ_DTM_TO, X31CWebConst.DATABEAN_SET_VALUE, 
				trn_req_dtm_yyyy_to + trn_req_dtm_mm_to + trn_req_dtm_dd_to + trn_req_dtm_hh_to + trn_req_dtm_mi_to);
		
		// 処理管理番号
		bean.sendMessageString(ZMW10904SFConst.KEY_TRN_KANRI_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				getSelectedItem(ZMW10904SFConst.TRN_NM_LIST, ZMW10904SFConst.TRN_KANRI_SELECT, ZMW10904SFConst.TRN_KANRI_NO_01));
		
		// ディレイド処理結果コード
		bean.sendMessageString(ZMW10904SFConst.KEY_TRN_JOKYO_CD, X31CWebConst.DATABEAN_SET_VALUE,
				getSelectedItem(ZMW10904SFConst.TRN_JOKYO_LIST, ZMW10904SFConst.TRN_JOKYO_SELECT, ZMW10904SFConst.TRN_JOKYO_CD_02));
		
		// 処理依頼者オペレータアカウント
		if(bean.sendMessageBoolean(ZMW10904SFConst.IRAISHA, X31CWebConst.DATABEAN_GET_VALUE))
		{
			bean.sendMessageString(ZMW10904SFConst.KEY_IRAISHA, X31CWebConst.DATABEAN_SET_VALUE, 
					beanCF.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			bean.sendMessageString(ZMW10904SFConst.KEY_IRAISHA, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
	}
	
	/**
	 * 検索条件をサービスフォームBeanからセッションへセットする。
     * <BR>
	 * @throws Exception 
	 */
	@SuppressWarnings("unused")
	private void setSearchKeys() throws Exception
	{
		String strValue = null;
		
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 検索条件を格納するHashMap
		HashMap<String, Object> map = new HashMap<String, Object>();
		
		for(int iCnt = 0 ; iCnt < SEARCH_KEYS.length ; iCnt++)
		{
			
			// サービスフォームBeanから退避させておく検索条件を取得
			strValue = bean.sendMessageString(SEARCH_KEYS[iCnt][SERVICE_FROM_BEAN_INDEX], X31CWebConst.DATABEAN_GET_VALUE);
			if(strValue != null && !("".equals(strValue)))
			{
				map.put(SEARCH_KEYS[iCnt][SERVICE_FROM_BEAN_INDEX], strValue);
			}
		}
	}
	
	/**
	 * 検索条件をセッションから取得する。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	private boolean getSearchKeys() throws Exception
	{
		boolean blnRet = false;
		String strValue = null;
		
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// セッションから取得した検索条件がセットされているHashMap
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		
		
		if(map != null)
		{
			for(int iCnt = 0 ; iCnt < SEARCH_KEYS.length ; iCnt++)
			{
				
				// セッションから取得したHashMapから検索条件を取得
				strValue = (String)map.get(SEARCH_KEYS[iCnt][HASHMAP_KEYS_INDEX]);
				if(strValue != null && !("".equals(strValue)))
				{
					
					// サービスフォームBeanの検索条件へセット
					bean.sendMessageString(SEARCH_KEYS[iCnt][SERVICE_FROM_BEAN_INDEX], X31CWebConst.DATABEAN_SET_VALUE, strValue);
					blnRet = true;
				}
			}
		}
		
		return blnRet;
	}
	
	/**
	 * サービス呼び出し用マッピング処理（上り）。
	 * 1.初期表示処理の場合
	 *   処理管理一覧照会 マッピング
	 *   コード名称一覧照会 マッピング
	 * 2.初期表示処理の場合（検索結果も表示する場合）
	 *   処理管理一覧照会 マッピング
	 *   コード名称一覧照会 マッピング
	 *   データ一括登録結果一覧照会用マッピング
	 * 3.検索ボタンおよびソートLink
	 *   データ一括登録結果一覧照会用マッピング
     * <BR>
     * @param paramBeans サービスフォームBean
     * @param inMap サービスに渡すHashMap
     * @param mapper マッピングクラス インスタンス
     * @param execFlg 処理管理一覧照会、コード名称一覧照会 false
     *                 処理管理一覧照会、データ一括登録結果一覧照会 true
     * @param sortFlg データ一括登録結果一覧照会 ソート
     * @param execMode 動作状況（0：初期処理 1：検索ボタン押下処理）
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void setMappingInfo(X31SDataBeanAccess[] paramBeans, HashMap inMap, ZMSV0026_ZMSV0026OPDBMapper mapper, 
									boolean execFlg, String sortFlg) throws Exception
	{
		
		// 処理管理一覧照会用マッピング
		mapper.setZMSV002601SC(paramBeans, inMap, JPCModelConstant.FUNC_CD_1);
		
		// コード名称一覧照会用マッピング（ディレイド処理依頼ステータス）
		mapper.setZMSV002602SC(paramBeans, inMap, JPCModelConstant.FUNC_CD_1);
		
		// データ一括登録結果一覧照会用マッピング
		if(execFlg)
		{
			
			// データ一括登録結果一覧照会用
			mapper.setZMSV002603SC(paramBeans, inMap, sortFlg);
			
			// ページング処理 マッピング
			JCCWebCommon.upmapperPageLinkInfo(this, TEMP_ID, inMap);
			
		}
	}
	
	/**
	 * サービス呼び出し用マッピング処理（下り）。
	 * 1.初期表示処理の場合
	 *   処理管理一覧照会 マッピング
	 *   コード名称一覧照会 マッピング
	 * 2.初期表示処理の場合（検索結果も表示する場合）
	 *   処理管理一覧照会 マッピング
	 *   コード名称一覧照会 マッピング
	 *   データ一括登録結果一覧照会用マッピング
	 * 3.検索ボタンおよびソートLink
	 *   データ一括登録結果一覧照会用マッピング
     * <BR>
     * @param paramBeans サービスフォームBean
     * @param outMap サービスに渡すHashMap
     * @param mapper マッピングクラス インスタンス
     * @param execFlg 処理管理一覧照会、コード名称一覧照会 false
     * データ一括登録結果一覧照会を行う場合、true
     * @param sortFlg データ一括登録結果一覧照会 ソート
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void getMappingInfo(X31SDataBeanAccess[] paramBeans, HashMap outMap, ZMSV0026_ZMSV0026OPDBMapper mapper, 
			boolean execFlg, String sortFlg) throws Exception
	{
		
		// 処理管理一覧照会用マッピング
		mapper.getZMSV002601SC(paramBeans, outMap, this);
		
		// コード名称一覧照会用マッピング（ディレイド処理依頼ステータス）
		mapper.getZMSV002602SC(paramBeans, outMap);
		
		// データ一括登録結果一覧照会用マッピング
		if(execFlg)
		{
			
			// データ一括登録結果一覧照会用
			mapper.getZMSV002603SC(paramBeans, outMap);
			
			// ページング処理 マッピング
			JCCWebCommon.downmapperPageLinkInfo(this, TEMP_ID, outMap);
			
			// 検索コマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, SEARCH_COMMAND_FOR_PAGELINK);
		}
	}
	
	/**
	 * プルダウンで選択されたデータで、引数で指定した項目を返す。
     * <BR>
     * @param list_kind 対象となるプルダウンList名
     * @param list_select_kind 対象となるプルダウン選択項目
     * @param ret_kind 取得したい項目名
     * @return String
	 */
	private String getSelectedItem(String list_kind, String list_select_kind, String ret_kind)
	{
		X31SDataBeanAccess bean = getServiceFormBean();
		String strRetValue = null;
		
		// プルダウンで選択されたIndexを取得
		String strSelectItem = bean.sendMessageString(list_select_kind, X31CWebConst.DATABEAN_GET_VALUE);
		int intSelectItem = Integer.parseInt(strSelectItem);
		
		// 取得したIndexに応じたSubBeanを取得し、処理名を取得
		X31SDataBeanAccess subBean = bean.getDataBeanArray(list_kind).getDataBean(0);
		strRetValue = subBean.sendMessageString(ret_kind, X31CWebConst.DATABEAN_GET_VALUE, intSelectItem);

		return strRetValue;
	}

}
