/*******************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：CRW01501SFLogic
 *	ソースファイル名：CRW01501SFLogic.java
 *	作成者			：富士通
 *	日付			：2011年04月01日
 *＜機能概要＞
 *	問合せ情報一覧照会ビューロジック
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	ｖ1.00.00   2011/04/01	富士通		新規作成
 *	ｖ3.00.00   2012/02/10	富士通		あいまい検索対応（eoID、整理番号による検索機能の追加）
 *	ｖ5.00.00	2013/06/20	FJ)伊藤		LT-2013-0000031関連対応
 *	ｖ51.00.00	2020/11/05	FJ)謝		【ANK-3927-00-00】オペレータ支援向けAPI機能変更(2020年12月中旬リリース)
 ********************************************************************************/

package eo.web.webview.CRW01501SF;
 
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.CRW01201SF.CRW01201SFConst;
import eo.web.webview.CRW01601SF.CRW01601SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.CRSV0008_CRSV0008OPDBMapper;
import eo.web.webview.mapping.CRSV0014_CRSV0014OPDBMapper;
 
/**
 * シリアライズ警告
 * 
 * @author FJ
 * */
@SuppressWarnings("serial")
public class CRW01501SFLogic 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
	 * @throws Exception Exception
	 */
	public boolean init() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// 遷移元画面ID取得
		String previousScreenID = JCRWebCommon.getScreenId(this, JCRScreenConst.SCREEN_ID_CRW01501);

		// (1)引継情報の取得
		JCRWebCommon.getScreenInfo(this);
		
		// (2)サービスフォームBeanの設定
		// (a)サービスフォームBeanの全項目をクリアする
// ANK-3927-00-00 MOD START
//		bean.sendMessage(CRW01501SFConst.KEY_TAIO_KIROK_NO, X31CWebConst.DATABEAN_CLEAR);
		// ODW00101_オーダリング連携リダイレクト画面以外から遷移した場合
		if (!JZMScreenConst.SCREEN_ID_ODW00101.equals(previousScreenID))
		{
			bean.sendMessage(CRW01501SFConst.KEY_TAIO_KIROK_NO, X31CWebConst.DATABEAN_CLEAR);
		}
// ANK-3927-00-00 MOD END
		bean.sendMessage(CRW01501SFConst.KEY_MSKMSHO_NO, X31CWebConst.DATABEAN_CLEAR);
		// CKW00302_不良顧客一意照会画面以外から遷移した場合
		if (!JCKScreenConst.SCREEN_ID_CKW00302.equals(previousScreenID))
		{
			bean.sendMessage(CRW01501SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_CLEAR);
		}
		bean.sendMessage(CRW01501SFConst.KEY_PROSCST_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.KEY_EOID, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.KEY_KEISHA_TELNO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.KEY_SEIRI_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageBoolean(CRW01501SFConst.FUZZY_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		bean.sendMessage(CRW01501SFConst.SORT_SHITEI_KMK_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.TOTAL_SEARCH_NUM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.SLCT_DETAIL_INDEX, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.SLCT_TAIO_KIROK_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.WK_KEY_TAIO_KIROK_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.WK_KEY_MSKMSHO_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.WK_KEY_SEIRI_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.WK_KEY_PROSCST_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.WK_KEY_EOID, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.WK_KEY_KEISHA_TELNO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.WK_KEY_SEIRI_NO, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageBoolean(CRW01501SFConst.WK_FUZZY_SEARCH, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		bean.sendMessage(CRW01501SFConst.WK_SORT_SHITEI_KMK_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW01501SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageBoolean(CRW01501SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		bean.sendMessage(CRW01501SFConst.SUB_WINDOW_DSP_FLG, X31CWebConst.DATABEAN_CLEAR);
		bean.getDataBeanArray(CRW01501SFConst.ECR0011B030CBSMSG1LIST).clearArray();
		
		// (b)サービスフォームBean項目の設定
		// 見出し表示フラグ
		bean.sendMessageBoolean(CRW01501SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);

		// CKW00302_不良顧客一意照会画面から遷移した場合かつ引き継ぎ情報のサービス契約番号がNULLでない場合、検索処理を行う
		if (JCKScreenConst.SCREEN_ID_CKW00302.equals(previousScreenID) &&
			!JCRUtilCommon.isNull(bean.sendMessageString(CRW01501SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			search();
		}
// ANK-3927-00-00 ADD START
		// ODW00101_オーダリング連携リダイレクト画面から遷移した場合かつ引き継ぎ情報の対応記録番号がNULLでない場合、検索処理を行う
		else if (JZMScreenConst.SCREEN_ID_ODW00101.equals(previousScreenID) &&
				!JCRUtilCommon.isNull(bean.sendMessageString(CRW01501SFConst.KEY_TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			search();
		}
// ANK-3927-00-00 ADD END

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// マッピング処理（下り）
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW01501);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW01501);

		return true;
	}

	/**
	 * 検索ボタン押下.<br>
	 * 問合せ情報の一覧検索する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean search() throws Exception 
	{

		return sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.TOIAWASE_STAT_CD, JCRStrConst.EVENT_SEARCH);	

	}

	/**
	 * 問合せIDソート▲リンク押下.<br>
	 * 問合せIDの昇順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortAscTaioKirokNo() throws Exception 
	{

		return sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.KIROK_NO, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * 問合せIDソート▼リンク押下.<br>
	 * 問合せIDの降順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortDescTaioKirokNo() throws Exception
	{

		return sort(JPCModelConstant.FUNC_CD_2, JCRStrConst.KIROK_NO, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * お客さまIDソート▲リンク押下.<br>
	 * サービス契約番号の昇順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortAscSvcKeiNo() throws Exception 
	{

		return sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.SVC_NO, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * お客さまIDソート▼リンク押下.<br>
	 * サービス契約番号の降順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortDescSvcKeiNo() throws Exception 
	{

		return sort(JPCModelConstant.FUNC_CD_2, JCRStrConst.SVC_NO, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * eoIDソート▲リンク押下.<br>
	 * eoIDの昇順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortAscEoid() throws Exception 
	{
		return sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.EOID, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * eoIDソート▼リンク押下.<br>
	 * eoIDの降順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortDescEoid() throws Exception 
	{
		return sort(JPCModelConstant.FUNC_CD_2, JCRStrConst.EOID, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * 問合せ状態ソート▲リンク押下.<br>
	 * 問合せ状態の昇順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortAscToiawaseStatus() throws Exception 
	{

		return sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.TOIAWASE_STAT_CD, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * 問合せ状態ソート▼リンク押下.<br>
	 * 問合せ状態の降順に明細を並べ替える。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortDescToiawaseStatus() throws Exception 
	{
		return sort(JPCModelConstant.FUNC_CD_2, JCRStrConst.TOIAWASE_STAT_CD, JCRStrConst.EVENT_SORT);	

	}

	/**
	 * 問合せIDクリック押下.<br>
	 * 押下された問合せ番号で、存在チェックをする。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clickLinkToiawaseId() 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(CRW01501SFConst.SLCT_DETAIL_INDEX
				, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray detailBeanList = bean.getDataBeanArray(CRW01501SFConst.ECR0011B030CBSMSG1LIST);
		X31SDataBeanAccess detailBean = detailBeanList.getDataBean(Integer.parseInt(slctDetailIndex));
		String slctKeywordNo = detailBean.sendMessageString(CRW01501SFConst.L_TAIO_KIROK_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(CRW01501SFConst.SLCT_TAIO_KIROK_NO, X31CWebConst.DATABEAN_SET_VALUE, slctKeywordNo);

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0014");

		// マッピングクラス
		CRSV0014_CRSV0014OPDBMapper mapper = new CRSV0014_CRSV0014OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV001401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)サービスの処理結果を取得する。
		mapper.getCRSV001401SC(paramBean, outputMap);
		
		// (b)対象データの有無を判定する。
		// 対象データが存在する場合、サービスフォームBeanを設定する。
		if("".equals(bean.sendMessageString(CRW01501SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(CRW01501SFConst.SUB_WINDOW_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		}
		// (b)対象データが存在しない場合
		// エラーメッセージを設定する
		else
		{
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, new String[]{"対応記録", "問合せID"});
		}

		// (5)引継情報の設定
		// なし
		
		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW01501);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW01501);

		return true;

	}

	/**
	 * クリアボタン押下.<br>
	 * 画面をクリアする。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clear() throws Exception 
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// (1)引継情報の設定
		// なし。
		
		// (2)サービスフォームBeanの設定
		// なし。
		
		// (3)サービス呼出し処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。
		
		// (6)共有フォームビーンの設定
		// なし。
		
		// (7)その他
		// (a)3.1 初期表示処理(init())を行う。
		return this.init();

	}

	/**
	 * サービスの呼出し、画面レイアウトの補正を行う。
	 * @param func 機能コード
	 * @param sortKey ソート指定項目
	 * @param eventId イベントID
	 * @return boolean
	 * @throws Exception Exception
	*/
	private boolean sort(String func, String sortKey, String eventId) 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.EVENT_SEARCH.equals(eventId))
		{
			// 検索処理のとき、検索キーを退避する。
			bean.sendMessageString(CRW01501SFConst.WK_KEY_TAIO_KIROK_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.KEY_TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.WK_KEY_MSKMSHO_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.KEY_MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.WK_KEY_SVC_KEI_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.WK_KEY_PROSCST_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.KEY_PROSCST_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.WK_KEY_EOID,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.KEY_EOID, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.WK_KEY_KEISHA_TELNO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.KEY_KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.WK_KEY_SEIRI_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.KEY_SEIRI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageBoolean(CRW01501SFConst.WK_FUZZY_SEARCH,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageBoolean(CRW01501SFConst.FUZZY_SEARCH, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.WK_SORT_SHITEI_KMK_NM,X31CWebConst.DATABEAN_SET_VALUE,sortKey);
			bean.sendMessageString(CRW01501SFConst.SORT_SHITEI_KMK_NM,X31CWebConst.DATABEAN_SET_VALUE,sortKey);
			
		}
		else
		{
			// ソート処理のとき、検索キーを退避エリアから再設定する。
			bean.sendMessageString(CRW01501SFConst.KEY_TAIO_KIROK_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.WK_KEY_TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.KEY_MSKMSHO_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.WK_KEY_MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.KEY_SVC_KEI_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.WK_KEY_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.KEY_PROSCST_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.WK_KEY_PROSCST_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.KEY_EOID,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.WK_KEY_EOID, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.KEY_KEISHA_TELNO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.WK_KEY_KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.KEY_SEIRI_NO,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW01501SFConst.WK_KEY_SEIRI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageBoolean(CRW01501SFConst.FUZZY_SEARCH,X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageBoolean(CRW01501SFConst.WK_FUZZY_SEARCH, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW01501SFConst.SORT_SHITEI_KMK_NM,X31CWebConst.DATABEAN_SET_VALUE,sortKey);
			
		}
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0008");

		// マッピングクラス
		CRSV0008_CRSV0008OPDBMapper mapper = new CRSV0008_CRSV0008OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV000801SC(paramBean, dataMap, func);
		mapper.setSEARCHEOIDCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);  
		
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// (4)サービス処理結果の設定
		// マッピング処理（下り）
		// (a)問合せ情報一覧照会明細リスト、最大桁数項目をクリアする。
		bean.getDataBeanArray(CRW01501SFConst.ECR0011B030CBSMSG1LIST).clearArray();

		// (b)サービスの処理結果を取得する。
		mapper.getCRSV000801SC(paramBean, outputMap);

		// (c)サービスフォームBean項目の設定
		bean.sendMessageBoolean(CRW01501SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);

		// 対応記録問合せ情報一覧照会明細の取得
		X31SDataBeanAccessArray detailBeanList = bean.getDataBeanArray(CRW01501SFConst.ECR0011B030CBSMSG1LIST);

		// (d)取得した対応記録問合せ情報一覧照会明細が0件の場合、メッセージエリア設定部品(JCRWebCommon.setMessageInfo)を使用しメッセージ出力を行う。
		if (detailBeanList.getCount() <= 0)
		{
			// 検索結果:指定されたデータが存在しません。
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, new String[]{""});
		}
		
		// (5)引継情報の設定
		// なし。
		
		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW01501);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW01501);
		
		return true;
	}

	/**
	 * サブ画面表示.<br>
	 * 問合せ情報詳細画面に遷移する。
	 * 
	 * @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 taioKirokNo = bean.sendMessageString(CRW01501SFConst.SLCT_TAIO_KIROK_NO
				, X31CWebConst.DATABEAN_GET_VALUE);

		// (a)次画面への引継情報(dataMap)を作成する。
		// 子画面に渡す情報をHashMapに設定する
		paramMap.put(CRW01601SFConst.TAIO_KIROK_NO, taioKirokNo);

		// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		// 子画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW01601, paramMap);

		// (c)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 子画面に親画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW01601
				, JCRScreenConst.SCREEN_ID_CRW01501);

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW01601);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW01601);

		return true;
	}
	
	/**
	 * 問合せ対応メイン画面の初期表示を行う。<br>
	 * <br>
	 * 問合せ対応メイン画面へ遷移し、
	 * メニューから問合せ対応メイン画面を起動した状態にします。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean transferToMain() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBean
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		JCRWebCommon.getScreenInfo(this);

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし。

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// 画面情報を設定
		// 引き継ぎの情報を格納するMAPを生成する。 
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 対応記録番号
		dataMap.put(CRW01201SFConst.TAIO_KIROK_NO, bean.sendMessageString(CRW01501SFConst.SLCT_TAIO_KIROK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW01201, dataMap);
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW01201, JCRScreenConst.SCREEN_ID_CRW01501);

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW01201);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW01201);

		return true;
	}

}
