//***********************************************************************************************
//*  CRW04001SFLogic.java                 All Rights reserved,Copyright (c) K-Opticom   *
//***********************************************************************************************
/*
履歴：
	NO	日付			更新者								    内容
	01	2011.04.01		Webクライアント定義ツール 2.0.28		新規作成
*/

/**
 * <DL>
 * <DT>名前
 * <p>
 * <DT>説明: 
 * <DD>データの初期化.
 * <DD> generated by Web Client tool V01/L01.
 * </DL>
*/
package eo.web.webview.CRW04001SF;

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.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CRW04003SF.CRW04003SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCScreenConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0068_CRSV0068OPDBMapper;
import eo.web.webview.mapping.CRSV0069_CRSV0069OPDBMapper;
import eo.web.webview.mapping.CRSV0070_CRSV0070OPDBMapper;
import eo.web.webview.mapping.CRSV0083_CRSV0083OPDBMapper;

/**
 * 対応記録エスカレーション実行ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW04001SFLogic 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>
	 * <br>
	 * エスカレーション実行画面の初期表示を行います。
	 * 
	 * @return boolean
	 * @exception Exception Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean initEscla() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap paramMap = new HashMap();

		// マッピング用Map
		HashMap dataMap = new HashMap();

		// サービス実行結果データ用Map
		HashMap outputMap = new HashMap();
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		JCCWebCommon.getScreenInfo(this);

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// (a)サービスフォームBeanの全項目をクリアする。
		bean.sendMessage(CRW04001SFConst.ESCLA_RUN_BTN, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW04001SFConst.ESCLA_SAKI_QUE_BOX_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW04001SFConst.ESCLA_SAKI_QUE_BOX_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW04001SFConst.ESCLA_SAKI_USER_NM_FLG, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW04001SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW04001SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW04001SFConst.ESCLA_SAKI_WKSO_SEARCH, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW04001SFConst.SLCT_WKKBT_ORG_CD, X31CWebConst.DATABEAN_CLEAR);
		
		bean.getDataBeanArray(CRW04001SFConst.QUE_BOX_LIST).clearArray();
		bean.getDataBeanArray(CRW04001SFConst.WKKBT_ORG_LIST).clearArray();

		// (b)サービスフォームBean項目の設定
		// ログインユーザーの機能権限によりボタンを制御する。
		bean.sendMessageBoolean(CRW04001SFConst.ESCLA_SAKI_USER_NM_FLG, X31CWebConst.DATABEAN_SET_VALUE,
				JCRWebCommon.checkAuthority(this, this.getGamenId() + ";" + JCRStrConst.AUTHORITY_KEY_CRW04001_DSP_ESCLA_USER_FLG));
		
		// 基準年月日設定
		bean.sendMessageString(CRW04001SFConst.KEY_STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, 
				JCRWebCommon.getSysDate());
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0070");
		
		// マッピングクラス
		CRSV0070_CRSV0070OPDBMapper mapper = new CRSV0070_CRSV0070OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV007001SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV007002SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// マッピング処理（下り）
		mapper.getCRSV007001SC(paramBean, outputMap);
		mapper.getCRSV007002SC(paramBean, outputMap);

		// 初期選択のワークグループを設定
		bean.sendMessageString(CRW04001SFConst.SLCT_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.getWkkbtOrgCd(commoninfoBean));

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04001);

		return true;
	}

	/**
	 * 絞込対象ワークグループKeyUp
	 * 絞込対象ワークグループに入力された値でワークグループプルダウンを
	 * 部分一致で絞り込み再設定する
	 * 
	 * @return boolean
	 * @throws Exception
	 */
	public boolean searchWkgrp() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBean
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// 画面入力されたワークグループ名
		String keyOrgNm = bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_WKSO_SEARCH, X31CWebConst.DATABEAN_GET_VALUE);

		// 退避している全ワークグループリスト
		X31SDataBeanAccessArray allList = bean.getDataBeanArray(CRW04001SFConst.BK_WKKBT_ORG_LIST);

		// ワークグループリストをクリア
		bean.getDataBeanArray(CRW04001SFConst.WKKBT_ORG_LIST).clearArray();

		// ワークグループリストに空行を追加
		X31SDataBeanAccessArray wgList = bean.getDataBeanArray(CRW04001SFConst.WKKBT_ORG_LIST);
		wgList.addDataBean();
		X31SDataBeanAccess wgBean = wgList.getDataBean(0);
		wgBean.sendMessageString(CRW04001SFConst.L1_WKKBT_ORG_CD_02, X31CWebConst.DATABEAN_SET_VALUE, "");
		wgBean.sendMessageString(CRW04001SFConst.L1_WKKBT_ORG_CD_NM_02, X31CWebConst.DATABEAN_SET_VALUE, "");

		int allCount = allList.getCount();

		// 退避している全ワークグループリストからマッチング
		for (int i = 1; i < allCount; i++)
		{
			X31SDataBeanAccess orgBean = allList.getDataBean(i);
			String orgCd = orgBean.sendMessageString(CRW04001SFConst.L3_WKKBT_ORG_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
			String orgNm = orgBean.sendMessageString(CRW04001SFConst.L3_WKKBT_ORG_NM_04, X31CWebConst.DATABEAN_GET_VALUE);

			int indexOf = orgNm.lastIndexOf(keyOrgNm);

			// キーの指定がない場合、もしくはキーの指定がありキーと一致した場合設定
			if ((JCRUtilCommon.isNull(keyOrgNm)) || (indexOf > -1))
			{
				wgList.addDataBean();
				wgBean = wgList.getDataBean(wgList.getCount() - 1);
				wgBean.sendMessageString(CRW04001SFConst.L1_WKKBT_ORG_CD_02, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
				wgBean.sendMessageString(CRW04001SFConst.L1_WKKBT_ORG_CD_NM_02, X31CWebConst.DATABEAN_SET_VALUE, orgNm);
			}
		}

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04001);
		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04001);

		return true;
	}
	
	/**
	 * 絞込ワークグループ対応キューBOX
	 * ワークグループプルダウンで選択されている業務個別設定組織コードから
	 * キューBOXプルダウンを絞り込む
	 * 
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean choiceWkgroup() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		// ユースケースID格納用マップ
		HashMap paramMap = new HashMap();

		// マッピング用Map
		HashMap dataMap = new HashMap();

		// サービス実行結果データ用Map
		HashMap outputMap = new HashMap();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。
		
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// キューBOXプルダウンのクリア
		bean.getDataBeanArray(CRW04001SFConst.QUE_BOX_LIST).clearArray();

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0083");
		
		// マッピングクラス
		CRSV0083_CRSV0083OPDBMapper mapper = new CRSV0083_CRSV0083OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV008301SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// マッピング処理（下り）
		mapper.getCRSV008301SC(paramBean, outputMap);
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。
		
		// -------------------------------------------------- //
		// (6)共有フォームビーンの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04001);

		return true;
	}
	
	/**
	 * エスカレーション実行確認（キューＢＯＸ）処理を行う。<br>
	 * <br>
	 * 入力チェックを行い、エラーがない場合は、エスカレーション実行確認画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean escalateQue() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// サービスフォームBeanの制御項目の設定
		// エスカレーション実行ボタン押下内容(1:キューBOX)
		bean.sendMessageString(CRW04001SFConst.ESCLA_RUN_BTN, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.ESCLA_RUN_BTN_QUE_BOX);
		// エスカレーション先キューBOX番号
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_QUE_BOX_NO, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownCode(bean, CRW04001SFConst.QUE_BOX_LIST, CRW04001SFConst.L0_QUE_BOX_NO_IDX_01
				, CRW04001SFConst.L0_QUE_BOX_NO_01));
		// エスカレーション先キューBOX名
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_QUE_BOX_NM, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(bean, CRW04001SFConst.QUE_BOX_LIST, CRW04001SFConst.L0_QUE_BOX_NO_IDX_01
				, CRW04001SFConst.L0_QUE_BOX_NO_01, CRW04001SFConst.L0_QUE_BOX_NM_01));
		// エスカレーション先業務種別設定組織コード
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(bean, CRW04001SFConst.QUE_BOX_LIST, CRW04001SFConst.L0_QUE_BOX_NO_IDX_01
				, CRW04001SFConst.L0_QUE_BOX_NO_01, CRW04001SFConst.L0_WKKBT_ORG_CD_01));
		// エスカレーション先業務種別設定組織名称
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_SET_VALUE
				, JCRWebCommon.getPullDownName(bean, CRW04001SFConst.QUE_BOX_LIST, CRW04001SFConst.L0_QUE_BOX_NO_IDX_01
				, CRW04001SFConst.L0_WKKBT_ORG_CD_01, CRW04001SFConst.L0_WKKBT_ORG_CD_NM_01));
		

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0068");

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// マッピングクラス
		CRSV0068_CRSV0068OPDBMapper mapper = new CRSV0068_CRSV0068OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV006801SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04002);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04002);

		return true;
	}

	/**
	 * エスカレーション実行確認（ユーザー）処理を行う。<br>
	 * <br>
	 * 入力チェックを行い、エラーがない場合は、エスカレーション実行確認画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean escalateUser() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		JCCWebCommon.getScreenInfo(this);

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// エスカレーション実行ボタン押下内容(2：ユーザー)
		bean.sendMessageString(CRW04001SFConst.ESCLA_RUN_BTN, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.ESCLA_RUN_BTN_USER);
		// ユーザーリスト
		X31SDataBeanAccess detailBean = bean.getDataBeanArray(CRW04001SFConst.RET_USER_LIST).getDataBean(0);
		// エスカレーション先ユーザーID
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_USER_ID, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_USER_ID_03, X31CWebConst.DATABEAN_GET_VALUE));
		// エスカレーション先ユーザー名
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_USER_NM, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_USER_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
		// エスカレーション先業務個別設定組織コード
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
		// エスカレーション先業務個別設定組織名
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_WKKBT_ORG_NM_03, X31CWebConst.DATABEAN_GET_VALUE));

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0069");

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// マッピングクラス
		CRSV0069_CRSV0069OPDBMapper mapper = new CRSV0069_CRSV0069OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV006901SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04002);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04002);

		return true;
	}

	/**
	 * ユーザー選択処理を行う。<br>
	 * <br>
	 * 入力チェックを行い、エラーがない場合は、ユーザー選択画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean choiceUser() throws Exception
	{

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。


		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// 子画面に渡す情報用HashMap
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// 子画面に渡す情報をHashMapに設定する
		paramMap.put(CRW04003SFConst.OUTPUT_MODE, JCRStrConst.OUTPUT_MODE_SINGLE);
		String removeWkkbtPositionCd = "'" + JCRStrConst.WKKBT_POSITION_CD_RO + "'";
		paramMap.put(CRW04003SFConst.KEY_REMOVE_WKKBT_POSITION, removeWkkbtPositionCd);

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 子画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW04003, paramMap);
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW04003
				, JCRScreenConst.SCREEN_ID_CRW04001);
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04003);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04003);

		return true;
	}
	

	/**
	 * 確定ボタン押下.<br>
	 * エスカレーション内容を登録する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean fix() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// エスカレーション実行ボタン押下内容を取得
		String escla_run_mode = bean.sendMessageString(CRW04001SFConst.ESCLA_RUN_BTN
				, X31CWebConst.DATABEAN_GET_VALUE);
		

		// エスカレーション実行ボタン押下内容によって呼び出すサービスを変更する
		if (JCRStrConst.ESCLA_RUN_BTN_QUE_BOX.equals(escla_run_mode))
		{
			// マッピングクラス
			CRSV0068_CRSV0068OPDBMapper mapper1 = new CRSV0068_CRSV0068OPDBMapper();
			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0068");
			// マッピング処理（上り）
			mapper1.setCRSV006801SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		}
		else if (JCRStrConst.ESCLA_RUN_BTN_USER.equals(escla_run_mode))
		{
			// マッピングクラス
			CRSV0069_CRSV0069OPDBMapper mapper2 = new CRSV0069_CRSV0069OPDBMapper();
			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0069");
			// マッピング処理（上り）
			mapper2.setCRSV006901SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		}
		
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)遷移先画面の設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCCScreenConst.SCREEN_ID_CCW00104);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCCScreenConst.SCREEN_NAME_CCW00104);

		return true;
	}

	/**
	 * キャンセル処理を行う。<br>
	 * <br>
	 * エスカレーション実行画面に戻る。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean cancel() throws Exception
	{

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)遷移先画面の設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04001);

		return true;
	}

	/**
	 * リフレッシュ。<br>
	 * <br>
	 * ユーザー選択の結果を反映します。
	 * 
	 * @return boolean
	 * @exception Exception Exception
	 */
	public boolean refresh() throws Exception
	{
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		JCCWebCommon.getScreenInfo(this);

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// ユーザーリスト
		X31SDataBeanAccess detailBean = bean.getDataBeanArray(CRW04001SFConst.RET_USER_LIST).getDataBean(0);
		// エスカレーション先ユーザーID
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_USER_ID, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_USER_ID_03, X31CWebConst.DATABEAN_GET_VALUE));
		// エスカレーション先ユーザー名
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_USER_NM, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_USER_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
		// エスカレーション先業務個別設定組織コード
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_WKSO_CD, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_WKKBT_ORG_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
		// エスカレーション先業務個別設定組織名
		bean.sendMessageString(CRW04001SFConst.ESCLA_SAKI_WKSO_NM, X31CWebConst.DATABEAN_SET_VALUE,
				detailBean.sendMessageString(CRW04001SFConst.RET_WKKBT_ORG_NM_03, X31CWebConst.DATABEAN_GET_VALUE));
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_ID_CRW04001);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JCRScreenConst.SCREEN_NAME_CRW04001);

		return true;
	}
}
