/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：キューBOX情報一覧照会ビューロジック
*   ソースファイル名：CRW06301SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年06月24日
*＜機能概要＞
*   キューBOX情報一覧照会画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/01/05   FJ）垣内    新規作成
*
**********************************************************************/

package eo.web.webview.CRW06301SF;

import java.util.EventObject;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CID;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x33.X33SException;

import eo.common.constant.JCRStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CRW06403SF.CRW06403SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0231_CRSV0231OPDBMapper;
import eo.web.webview.mapping.CRSV0232_CRSV0232OPDBMapper;
import eo.web.webview.mapping.CRSV0233_CRSV0233OPDBMapper;

/**
 * キューBOX情報一覧照会ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW06301SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,
			EventObject arg2) throws X33SException
	{
		return false;
	}

	/**
	 * 初期表示処理.<br>
	 * 初期表示を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean init() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)サービスフォームBeanの全項目をクリアする。
		
		bean.sendMessage(CRW06301SFConst.TOTAL_NUM, X31CWebConst.DATABEAN_CLEAR);
		bean.getDataBeanArray(CRW06301SFConst.QUE_BOX).clearArray();
		bean.getDataBeanArray(CRW06301SFConst.INIT_QUE_BOX).clearArray();
		bean.getDataBeanArray(CRW06301SFConst.QUE_TYPE).clearArray();
		bean.getDataBeanArray(CRW06301SFConst.WKKBT_ORG).clearArray();
		bean.getDataBeanArray(CRW06301SFConst.INIT_WKKBT_ORG).clearArray();
		bean.sendMessage(CRW06301SFConst.SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.KEY_QUE_BOX_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.SLCT_DETAIL_INDEX, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.BK_SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.BK_QUE_BOX_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.BK_QUE_TYPE_CD_IDX, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.BK_SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.BK_WKKBT_ORG_CD, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW06301SFConst.SEARCHED_FLG, X31CWebConst.DATABEAN_CLEAR);
		
		// 一覧のクリア
		bean.getDataBeanArray(CRW06301SFConst.ECR0111B010CBSMSG1LIST).clearArray();

		// (b)検索条件の設定
		// 見出し表示フラグ
		bean.sendMessageBoolean(CRW06301SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0231");

		// マッピングクラス
		CRSV0231_CRSV0231OPDBMapper mapper = new CRSV0231_CRSV0231OPDBMapper();

		// マッピング処理（上り）
		mapper.setGETWKKBTGRCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV023101SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV023102SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// サービスの処理結果を取得する。
		// マッピング処理（下り）
		mapper.getGETWKKBTGRCC(paramBean, outputMap);
		mapper.getCRSV023101SC(paramBean, outputMap);
		mapper.getCRSV023102SC(paramBean, outputMap);

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06301);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06301);

		return true;
	}

	/**
	 * 絞込対象キューKeyUp処理。
	 * 画面初期表示時に取得した全キューBOXのリストから、
	 * 検索キーとして入力されたキューBOX名をマッチングし、ヒットした名称のリストを返します。
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean searchQueBox() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		
		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		
		// 画面入力されたキューBOX名
		String keyQueNm = bean.sendMessageString(CRW06301SFConst.SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 退避している全キューBOXリスト
		X31SDataBeanAccessArray initQueList = bean.getDataBeanArray(CRW06301SFConst.INIT_QUE_BOX);
		
		// キューBOXリスト
		X31SDataBeanAccessArray queList = bean.getDataBeanArray(CRW06301SFConst.QUE_BOX);
		
		// キューBOXをクリア
		queList.clearArray();
		
		// キューBOXリストに空行を追加
		X31SDataBeanAccess queBean = queList.addDataBean();
		queBean.sendMessageString(CRW06301SFConst.L0_QUE_BOX_NO_01, X31CWebConst.DATABEAN_SET_VALUE, " ");
		queBean.sendMessageString(CRW06301SFConst.L0_QUE_BOX_NM_01, X31CWebConst.DATABEAN_SET_VALUE, " ");

		// 退避している全キューBOXリストからマッチング
		for (int i = 1; i < initQueList.getCount(); i++)
		{
			X31SDataBeanAccess orgBean = initQueList.getDataBean(i);
			String queNo = orgBean.sendMessageString(CRW06301SFConst.L4_INIT_QUE_BOX_NO_05, X31CWebConst.DATABEAN_GET_VALUE);
			String queNm = orgBean.sendMessageString(CRW06301SFConst.L4_INIT_QUE_BOX_NM_05, X31CWebConst.DATABEAN_GET_VALUE);

			// キーの指定がない場合、もしくはキーの指定がありキーと一致した場合設定
			if ((JCRUtilCommon.isNull(keyQueNm)) || (queNm.lastIndexOf(keyQueNm) > -1))
			{
				queBean = queList.addDataBean();
				queBean.sendMessageString(CRW06301SFConst.L0_QUE_BOX_NO_01, X31CWebConst.DATABEAN_SET_VALUE, queNo);
				queBean.sendMessageString(CRW06301SFConst.L0_QUE_BOX_NM_01, X31CWebConst.DATABEAN_SET_VALUE, queNm);
			}
		}

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06301);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06301);
		
		return true;
	}

	/**
	 * 絞込対象ワークグループKeyUp処理。
	 * 画面初期表示時に取得した全ワークグループのリストから、
	 * 検索キーとして入力されたワークグループ名をマッチングし、ヒットした名称のリストを返します。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean searchWkgrp() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		
		// 画面入力されたワークグループ名
		String keyOrgNm = bean.sendMessageString(CRW06301SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 退避している全ワークグループリスト
		X31SDataBeanAccessArray initWgList = bean.getDataBeanArray(CRW06301SFConst.INIT_WKKBT_ORG);

		X31SDataBeanAccessArray wgList = bean.getDataBeanArray(CRW06301SFConst.WKKBT_ORG);
		
		// ワークグループリストをクリア
		wgList.clearArray();
		
		// ワークグループリストに空行を追加
		X31SDataBeanAccess wgBean = wgList.addDataBean();
		wgBean.sendMessageString(CRW06301SFConst.L2_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_SET_VALUE, " ");
		wgBean.sendMessageString(CRW06301SFConst.L2_WKKBT_ORG_CD_NM_03, X31CWebConst.DATABEAN_SET_VALUE, " ");

		// 退避している全ワークグループリストからマッチング
		for (int i = 1; i < initWgList.getCount(); i++)
		{
			X31SDataBeanAccess orgBean = initWgList.getDataBean(i);
			String orgCd = orgBean.sendMessageString(CRW06301SFConst.L5_INIT_WKKBT_ORG_CD_06, X31CWebConst.DATABEAN_GET_VALUE);
			String orgNm = orgBean.sendMessageString(CRW06301SFConst.L5_INIT_WKKBT_ORG_CD_NM_06, X31CWebConst.DATABEAN_GET_VALUE);

			// キーの指定がない場合、もしくはキーの指定がありキーと一致した場合設定
			if ((JCRUtilCommon.isNull(keyOrgNm)) || (orgNm.lastIndexOf(keyOrgNm) > -1))
			{
				wgBean = wgList.addDataBean();
				wgBean.sendMessageString(CRW06301SFConst.L2_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
				wgBean.sendMessageString(CRW06301SFConst.L2_WKKBT_ORG_CD_NM_03, X31CWebConst.DATABEAN_SET_VALUE, orgNm);
			}
		}
		
		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06301);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06301);
		
		return true;
	}
	
	
	/**
	 * 検索ボタン押下.<br>
	 * キューBOX情報の一覧検索する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean search() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();


		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		
		if (!JCRStrConst.SEARCH_FLG_ON.equals(bean.sendMessageString(CRW06301SFConst.SEARCHED_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{

			// (1)3.1 初期表示処理(init())を行う。
			// (a)一度も検索を行っていない場合（検索キー退避項目が全てNULLの場合）、3.1 初期表示(init())を行い、以降の処理は行わない。
			if (JCRUtilCommon.isNull(bean.sendMessageString(CRW06301SFConst.BK_QUE_BOX_NO, X31CWebConst.DATABEAN_GET_VALUE))
				&& JCRUtilCommon.isNull(bean.sendMessageString(CRW06301SFConst.BK_QUE_TYPE_CD_IDX, X31CWebConst.DATABEAN_GET_VALUE))
				&& JCRUtilCommon.isNull(bean.sendMessageString(CRW06301SFConst.BK_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				return this.init();
			}

			// (b) 検索キー退避項目の保持を行う。
			String bkSearchQueBoxNm = bean.sendMessageString(CRW06301SFConst.BK_SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_GET_VALUE);
			String bkQueBoxNo = bean.sendMessageString(CRW06301SFConst.BK_QUE_BOX_NO, X31CWebConst.DATABEAN_GET_VALUE);
			String bkQueTypeCdIdx = bean.sendMessageString(CRW06301SFConst.BK_QUE_TYPE_CD_IDX, X31CWebConst.DATABEAN_GET_VALUE);
			String bkSearchWkkbtOrgNm = bean.sendMessageString(CRW06301SFConst.BK_SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE);
			String bkQkkbtOrgCd = bean.sendMessageString(CRW06301SFConst.BK_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE);

			// (c) 3.1 初期表示(init())を行なう。
			this.init();
			
			// (d) (b)で保持した、検索キー退避項目の復元を行う。
			bean.sendMessageString(CRW06301SFConst.BK_SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_SET_VALUE, bkSearchQueBoxNm);
			bean.sendMessageString(CRW06301SFConst.BK_QUE_TYPE_CD_IDX, X31CWebConst.DATABEAN_SET_VALUE, bkQueTypeCdIdx);
			bean.sendMessageString(CRW06301SFConst.BK_SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, bkSearchWkkbtOrgNm);

			// (e) 検索済みの場合、検索キー退避項目より検索キーを取得し、サービスフォームビーンに設定する。
			bean.sendMessageString(CRW06301SFConst.SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW06301SFConst.BK_SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_GET_VALUE));
			String queTypeCdIdx = bean.sendMessageString(CRW06301SFConst.BK_QUE_TYPE_CD_IDX, X31CWebConst.DATABEAN_GET_VALUE);
			X31SDataBeanAccess queTypeBean = bean.getDataBeanArray(CRW06301SFConst.QUE_TYPE).getDataBean(0);
			queTypeBean.sendMessageString(CRW06301SFConst.L1_QUE_TYPE_CD_IDX_02, X31CWebConst.DATABEAN_SET_VALUE, queTypeCdIdx);
			bean.sendMessageString(CRW06301SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE
					, bean.sendMessageString(CRW06301SFConst.BK_SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE));

			// (f) 3.2 絞込キューBOX名KeyUp(searchQueBox())を行なう。
			this.searchQueBox();

			// (g) 3.3 絞込ワークグループKeyUp(searchWkgrp())を行なう。
			this.searchWkgrp();

			// (h) KEY_キューBOX番号、KEY_業務個別設定組織コードの設定を行う。
			// キューBOXリスト
			X31SDataBeanAccessArray queBoxList = bean.getDataBeanArray(CRW06301SFConst.QUE_BOX);
			String queBoxNo = "";
			for (int i = 0; i < queBoxList.getCount(); i++)
			{
				X31SDataBeanAccess queBoxBean = queBoxList.getDataBean(i);
				if (bkQueBoxNo.equals(queBoxBean.sendMessageString(CRW06301SFConst.L0_QUE_BOX_NO_01, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					queBoxNo = queBoxBean.sendMessageString(CRW06301SFConst.L0_QUE_BOX_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
				}
			}
			bean.sendMessageString(CRW06301SFConst.KEY_QUE_BOX_NO, X31CWebConst.DATABEAN_SET_VALUE, queBoxNo);

			// ワークグループリスト
			X31SDataBeanAccessArray wkkbtOrgList = bean.getDataBeanArray(CRW06301SFConst.WKKBT_ORG);
			String wkkbtOrgCd = "";
			for (int i = 0; i < wkkbtOrgList.getCount(); i++)
			{
				X31SDataBeanAccess wkkbtOrgBean = wkkbtOrgList.getDataBean(i);
				if (bkQkkbtOrgCd.equals(wkkbtOrgBean.sendMessageString(CRW06301SFConst.L2_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					wkkbtOrgCd = wkkbtOrgBean.sendMessageString(CRW06301SFConst.L2_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
				}
			}

			bean.sendMessageString(CRW06301SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, wkkbtOrgCd);


		}
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0232");

		// マッピングクラス
		CRSV0232_CRSV0232OPDBMapper mapper = new CRSV0232_CRSV0232OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV023201SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)キューBOX情報一覧明細リストをクリアする。
		bean.getDataBeanArray(CRW06301SFConst.ECR0111B010CBSMSG1LIST).clearArray();

		// (b)サービスの処理結果を取得する。
		// マッピング処理（下り）
		mapper.getCRSV023201SC(paramBean, outputMap);

		// (c)サービスフォームBean項目の設定
		// 検索結果フラグに"TRUE"設定する
		bean.sendMessageBoolean(CRW06301SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
		
		// 検索済みフラグに"0"(検索なし)を設定する。
		bean.sendMessageString(CRW06301SFConst.SEARCHED_FLG, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.SEARCH_FLG_OFF);

		// 検索結果が0件の場合
		if (JCRStrConst.TOTAL_SEARCH_NUM_ZERO.equals(bean.sendMessageString(CRW06301SFConst.TOTAL_NUM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			//検索結果:指定されたデータが存在しません。
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, new String[]{""});
		}

		// (d)検索キーの退避。
		bean.sendMessageString(CRW06301SFConst.BK_SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW06301SFConst.SEARCH_QUE_BOX_NM, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW06301SFConst.BK_QUE_BOX_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW06301SFConst.KEY_QUE_BOX_NO, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess queTypeBean = bean.getDataBeanArray(CRW06301SFConst.QUE_TYPE).getDataBean(0);
		bean.sendMessageString(CRW06301SFConst.BK_QUE_TYPE_CD_IDX, X31CWebConst.DATABEAN_SET_VALUE, 
				queTypeBean.sendMessageString(CRW06301SFConst.L1_QUE_TYPE_CD_IDX_02, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW06301SFConst.BK_SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW06301SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW06301SFConst.BK_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW06301SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// (5)引継情報の設定
		// なし。

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06301);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06301);

		return true;
	}

	/**
	 * キューBOX番号リンク押下.<br>
	 * 押下されたキューBOX番号の存在チェックを行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clickLinkQueBoxNo() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		String slctDetailIndex = bean.sendMessageString(CRW06301SFConst.SLCT_DETAIL_INDEX
				, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray detailBeanList = bean.getDataBeanArray(CRW06301SFConst.ECR0111B010CBSMSG1LIST);
		X31SDataBeanAccess detailBean = detailBeanList.getDataBean(Integer.parseInt(slctDetailIndex));
		
		String slctQueBoxNo = detailBean.sendMessageString(CRW06301SFConst.L3_QUE_BOX_NO_04, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(CRW06301SFConst.SLCT_QUE_BOX_NO, X31CWebConst.DATABEAN_SET_VALUE, slctQueBoxNo);

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0233");

		// マッピングクラス
		CRSV0233_CRSV0233OPDBMapper mapper = new CRSV0233_CRSV0233OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV023301SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)サービスの処理結果を取得する。
		mapper.getCRSV023301SC(paramBean, outputMap);

		// (b)対象データの有無を判定する。
		// 対象データが存在する場合、サービスフォームBeanを設定する。
		if("".equals(bean.sendMessageString(CRW06301SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(CRW06301SFConst.SUB_WINDOW_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		// (b)対象データが存在しない場合
		// エラーメッセージを設定する
		else
		{
			JCRWebCommon.setMessageInfo(this, "EKB0300-KW", new String[]{"キューBOX", "キューBOX番号"});
		}

		// (5)引継情報の設定
		// なし。

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06301);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06301);

		return true;
	}

	/**
	 * 新規登録ボタン押下.<br>
	 * キューBOX情報登録画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean insert() throws Exception
	{

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// 戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW06401
				, JCRScreenConst.SCREEN_ID_CRW06301);
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW06402
				, JCRScreenConst.SCREEN_ID_CRW06301);

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06401);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06401);

		return true;
	}

	/**
	 * クリアボタン押下.<br>
	 * 画面をクリアする。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clear() throws Exception
	{
		// (1)3.1 初期表示処理(init())を行う。
		return this.init();
	}

	/**
	 * サブ画面表示.<br>
	 * キューBOX情報更新画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean showWindow() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// 子画面に渡す情報用HashMap
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// 選択業務個別設定組織コード
		String queboxno = bean.sendMessageString(CRW06301SFConst.SLCT_QUE_BOX_NO
				, X31CWebConst.DATABEAN_GET_VALUE);

		// (a)次画面への引継情報(dataMap)を作成する。
		// 子画面に渡す情報をHashMapに設定する
		paramMap.put(CRW06403SFConst.KEY_QUE_BOX_NO, queboxno);

		// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		// 子画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW06403, paramMap);

		// (c)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW06403
				, JCRScreenConst.SCREEN_ID_CRW06301);

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW06403);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW06403);

		return true;
	}

}
