/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：問合せモニタ一覧照会(カテゴリー別)ビューロジック
*   ソースファイル名：CRW05002SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年09月09日
*＜機能概要＞
*   問合せモニタ一覧照会(カテゴリー別)画面のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/09/09   FJ）        新規作成
*
**********************************************************************/

package eo.web.webview.CRW05002SF;

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.CRW05101SF.CRW05101SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0169_CRSV0169OPDBMapper;
import eo.web.webview.mapping.CRSV0170_CRSV0170OPDBMapper;
import eo.web.webview.mapping.CRSV0171_CRSV0171OPDBMapper;

/**
 * 問合せモニタ一覧照会（カテゴリー別）ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW05002SFLogic 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 initCategory() 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)引継情報の取得
		// (a)画面情報取得部品（JCCWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		JCRWebCommon.getScreenInfo(this);

		// (2)サービスフォームBeanの設定
		//システム日付の取得
		String opeDate = JCRWebCommon.getSysDate();
		// 運用日付(システム日付を設定)
		bean.sendMessageString(CRW05002SFConst.OPERATION_DATE, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		// ＫＥＹ＿業務パラメータＩＤ
		bean.sendMessageString(CRW05002SFConst.KEY_WORK_PARAM_ID, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.CR_MNT_SHUK_DAYS);

		// 戻り検索フラグが"1"でない場合、サービスフォームBeanの設定を行う。
		if(!JCRStrConst.RETURN_SEARCH_FLG_ON.equals(bean.sendMessageString(CRW05002SFConst.RETURN_SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 発生年（自）
			bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toYearFromYmd(opeDate));
			// 発生月（自）
			bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toMonthFromYmd(opeDate));
			// 発生日（自）
			bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_STAT, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toDayFromYmd(opeDate));
			// 発生年（至）
			bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_END, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toYearFromYmd(opeDate));
			// 発生月（至）
			bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_END, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toMonthFromYmd(opeDate));
			// 発生日（至）
			bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_END, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.toDayFromYmd(opeDate));
			// ソート指定項目
			bean.sendMessageString(CRW05002SFConst.SORT_SHITEI_KMK, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.CTGR_NM);
			// ソート順
			bean.sendMessageString(CRW05002SFConst.SORT_ORDER, X31CWebConst.DATABEAN_SET_VALUE, JPCModelConstant.FUNC_CD_1);
			// ＫＥＹ＿業務個別設定組織コード
			StringBuilder keyWkkbtOrgCd = new StringBuilder();
			keyWkkbtOrgCd.append(JCRStrConst.STR_HALF_SINGLE_QUOTATION)
						.append(JCRWebCommon.getWkkbtOrgCd(commoninfoBean))
						.append(JCRStrConst.STR_HALF_SINGLE_QUOTATION);
			bean.sendMessageString(CRW05002SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, keyWkkbtOrgCd.toString());
		}

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0169");

		// マッピングクラス
		CRSV0169_CRSV0169OPDBMapper mapper = new CRSV0169_CRSV0169OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV016901SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV016902SC(paramBean, dataMap, bean.sendMessageString(CRW05002SFConst.SORT_ORDER, X31CWebConst.DATABEAN_GET_VALUE));
		mapper.setGETWKKBTGRCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)マッピング処理（下り）
		mapper.getCRSV016901SC(paramBean, outputMap);
		mapper.getCRSV016902SC(paramBean, outputMap);
		mapper.getGETWKKBTGRCC(paramBean, outputMap);

		// (b)退避項目の設定
		// 退避用絞込ワークグループ名
		bean.sendMessageString(CRW05002SFConst.BK_SEARH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用発生年（自）
		bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用発生月（自）
		bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用発生日（自）
		bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用発生年（至）
		bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_END, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_END, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用発生月（至）
		bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_END, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_END, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用発生日（至）
		bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_END, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_END, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用ソート指定項目
		bean.sendMessageString(CRW05002SFConst.BK_SORT_SHITEI_KMK, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.SORT_SHITEI_KMK, X31CWebConst.DATABEAN_GET_VALUE));
		// 退避用ＫＥＹ＿業務個別設定組織コード
		bean.sendMessageString(CRW05002SFConst.BK_KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		// (c)戻り検索フラグが1のとき、searchWkgrp()を呼出し、詳細画面遷移前のワークグループの絞込み結果を表示する
		// 戻り検索フラグが"1"のとき、詳細画面への遷移前のワークグループの絞込み結果を表示する。
		if(JCRStrConst.RETURN_SEARCH_FLG_ON.equals(bean.sendMessageString(CRW05002SFConst.RETURN_SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// ワークグループ検索処理
			searchWkgrp();
		}
		
		// (d)サービスフォームBean項目の設定
		// 初期選択フラグ設定
		selectedFlgSet();

		// 検索結果表示フラグ：TRUE
		bean.sendMessageBoolean(CRW05002SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);

		// 表示フラグ設定処理
		setDpsFlg();

		// 行スタイル設定処理
		setLineStyleClass();
		
		// 集計件数合計設定処理
		setSumShukCnt();

		// 検索エラーフラグ(0件)
		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(bean.sendMessageString(CRW05002SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			///検索結果:指定されたデータが存在しません。
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, new String[]{""});
		}
		
		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05002);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05002);

		return true;
	}

	/**
	 * 検索ボタン押下.<br>
	 * ユーザー別問合せモニタの一覧検索する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean search() throws Exception
	{
		sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.CTGR_NM, JCRStrConst.EVENT_SEARCH);
		
		return true;

	}
	
	/**
	 * ワークグループ検索処理。<br>
	 * <br>
	 * 画面初期表示時に取得した全ワークグループのリストから、
	 * 検索キーとして入力されたワークグループ名をマッチングし、ヒットした名称のリストを返します。
	 * 
	 * @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(CRW05002SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 退避している全ワークグループリスト
		X31SDataBeanAccessArray allList = bean.getDataBeanArray(CRW05002SFConst.INIT_WKKBT_ORG_LIST);
		
		// ワークグループリストをクリア
		bean.getDataBeanArray(CRW05002SFConst.WKKBT_ORG_LIST).clearArray();
		
		// ワークグループリストに空行を追加
		X31SDataBeanAccessArray wgList = bean.getDataBeanArray(CRW05002SFConst.WKKBT_ORG_LIST);
		X31SDataBeanAccess wgBean = wgList.addDataBean();
		wgBean.sendMessageString(CRW05002SFConst.L0_WKKBT_ORG_CD_01, X31CWebConst.DATABEAN_SET_VALUE, " ");
		wgBean.sendMessageString(CRW05002SFConst.L0_WKKBT_ORG_NM_01, X31CWebConst.DATABEAN_SET_VALUE, " ");

		// 退避している全ワークグループリストからマッチング
		// ワークグループのリストボックスの1行目にはブランク列が存在するため、i=1から検索を行う
		for (int i = 1; i <  allList.getCount(); i++)
		{
			X31SDataBeanAccess orgBean = allList.getDataBean(i);
			String orgCd = orgBean.sendMessageString(CRW05002SFConst.L3_INIT_WKKBT_ORG_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
			String orgNm = orgBean.sendMessageString(CRW05002SFConst.L3_INIT_WKKBT_ORG_NM_04, X31CWebConst.DATABEAN_GET_VALUE);

			int indexOf = -1;
			if(!JCRUtilCommon.isNull(keyOrgNm))
			{
				indexOf = orgNm.lastIndexOf(keyOrgNm);
			}
			// キーの指定がない場合、もしくはキーの指定がありキーと一致した場合設定
			if (JCRUtilCommon.isNull(keyOrgNm) || (indexOf > -1))
			{
				wgBean = wgList.addDataBean();
				wgBean.sendMessageString(CRW05002SFConst.L0_WKKBT_ORG_CD_01, X31CWebConst.DATABEAN_SET_VALUE, orgCd);
				wgBean.sendMessageString(CRW05002SFConst.L0_WKKBT_ORG_NM_01, X31CWebConst.DATABEAN_SET_VALUE, orgNm);
			}
		}
		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームBeanの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05002);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05002);

		return true;
	}
	
	/**
	 * カテゴリー名昇順.<br>
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortAscCategory() throws Exception
	{

		sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.CTGR_NM, JCRStrConst.EVENT_SORT);
		
		return true;

	}
	
	/**
	 * カテゴリー名降順.<br>
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortDescCategory() throws Exception
	{

		sort(JPCModelConstant.FUNC_CD_2, JCRStrConst.CTGR_NM, JCRStrConst.EVENT_SORT);
		
		return true;

	}
	
	/**
	 * 新規作成集計件数昇順.<br>
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortAscInsCnt() throws Exception
	{

		sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.NEW_SAKSEI_SHUK_CNT, JCRStrConst.EVENT_SORT);
		
		return true;

	}
	
	/**
	 * 新規作成集計件数降順.<br>
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortDescInsCnt() throws Exception
	{

		sort(JPCModelConstant.FUNC_CD_2, JCRStrConst.NEW_SAKSEI_SHUK_CNT, JCRStrConst.EVENT_SORT);
		
		return true;

	}
	
	/**
	 * NGワード集計件数昇順.<br>
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortAscNgwordCnt() throws Exception
	{

		sort(JPCModelConstant.FUNC_CD_1, JCRStrConst.NG_WORD_SHUK_CNT, JCRStrConst.EVENT_SORT);
		
		return true;

	}
	
	/**
	 * NGワード集計件数降順.<br>
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean sortDescNgwordCnt() throws Exception
	{

		sort(JPCModelConstant.FUNC_CD_2, JCRStrConst.NG_WORD_SHUK_CNT, JCRStrConst.EVENT_SORT);
		
		return true;

	}
	
	/**
	 * 新規作成集計件数リンク押下
	 * @return boolean
	 */
	public boolean clickLinkInsCnt()
	{
		clickLink(JCRStrConst.DATA_SBT_CD_NEW);
		return true;
	}
	
	/**
	 * NGワード集計件数リンク押下
	 * @return boolean
	 */
	public boolean clickLinkNgwordCnt()
	{
		clickLink(JCRStrConst.DATA_SBT_CD_NGWORD);
		return true;
	}
	
	/**
	 * クリア処理
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clear() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// (1)引継情報の設定
		// なし。
		
		// (2)サービスフォームBeanの設定
		// サービスフォームBeanの項目をクリアする
		bean.sendMessage(CRW05002SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.HASSEI_DAY_STAT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.HASSEI_YEAR_END, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.HASSEI_MONTH_END, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.HASSEI_DAY_END, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.SORT_SHITEI_KMK, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.SORT_ORDER, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.MAX_SHITEI_SCOPE_DAYS, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.OPERATION_DATE, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.TOTAL_NUM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessageBoolean(CRW05002SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		bean.sendMessage(CRW05002SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.RETURN_SEARCH_FLG, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_SEARH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_HASSEI_DAY_STAT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_HASSEI_YEAR_END, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_HASSEI_MONTH_END, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_HASSEI_DAY_END, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_SORT_SHITEI_KMK, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.BK_KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.KEY_DATA_SBT_CD, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.KEY_DATA_TRN_CD, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.KEY_SLCT_CTGR_LV, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.KEY_SLCT_CTGR_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.KEY_SLCT_JOI_RNKT_CTGR_NM, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.KEY_WORK_PARAM_ID, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.SUM_NEW_SAKSEI_SHUK_CNT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.SUM_NG_WORD_SHUK_CNT, X31CWebConst.DATABEAN_CLEAR);
		bean.sendMessage(CRW05002SFConst.SLCT_DETAIL_INDEX, X31CWebConst.DATABEAN_CLEAR);

		bean.getDataBeanArray(CRW05002SFConst.WKKBT_ORG_LIST).clearArray();
		bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST).clearArray();
		bean.getDataBeanArray(CRW05002SFConst.ECR0261B020CBSMSG1LIST).clearArray();
		bean.getDataBeanArray(CRW05002SFConst.INIT_WKKBT_ORG_LIST).clearArray();

		// (3)サービス呼出し処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。
		
		// (6)共有フォームビーンの設定
		// なし。
		
		// (7)その他
		// 「3.1 初期表示(initCategory())」を行う。
		initCategory();
	
		return true;
	}
	
	/**
	 * 全展開ボタン押下 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean expandAll() throws Exception
	{
		
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)サービスフォームBeanのキー項目に検索時に退避した項目を再設定する。
		// 絞込ワークグループ名
		bean.sendMessageString(CRW05002SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_SEARH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 発生年（自）
		bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		// 発生月（自）
		bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		// 発生日（自）
		bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		// 発生年（至）
		bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_END, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_END, X31CWebConst.DATABEAN_GET_VALUE));
		// 発生月（至）
		bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_END, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_END, X31CWebConst.DATABEAN_GET_VALUE));
		// 発生日（至）
		bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_END, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_END, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿業務個別設定組織コード
		bean.sendMessageString(CRW05002SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW05002SFConst.BK_KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// (b)ワークグループ検索処理
		searchWkgrp();

		// (c)サービスフォームBean項目の設定
		
		// 問合せモニタ一覧照会(カテゴリー別)明細リスト取得
		X31SDataBeanAccessArray ecr0321b010cbsmsg1list = bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST);

		// 表示フラグ、展開フラグ設定
		for (int i = 0; i < ecr0321b010cbsmsg1list.getCount(); i++)
		{
			// 問合せモニタ一覧照会(カテゴリー別)明細Bean
			X31SDataBeanAccess detailBean = ecr0321b010cbsmsg1list.getDataBean(i);
		
			// 表示フラグ設定
			detailBean.sendMessageBoolean(CRW05002SFConst.L1_DSP_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			
			// 下位カテゴリー有無チェック
			if (JCRStrConst.KAI_CTGR_UM_ON.equals(detailBean.sendMessageString(CRW05002SFConst.L1_KAI_CTGR_UM_02, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 展開フラグ設定
				detailBean.sendMessageBoolean(CRW05002SFConst.L1_EXPAND_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			}
		}

		// 初期選択フラグ設定
		selectedFlgSet();
		
		// 行スタイル設定処理
		setLineStyleClass();
		
		// 集計件数合計設定処理
		setSumShukCnt();

		// 検索エラーフラグ(0件)
		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(bean.sendMessageString(CRW05002SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			//検索結果:指定されたデータが存在しません。
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, new String[]{""});
		}
		
		// (3)サービス呼出し処理
		// なし。
		
		// (4)サービス処理結果の設定
		// なし。
		
		// (5)引継情報の設定
		// なし。
		
		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05002);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05002);

		return true;
	}
	
	/**
	 * カテゴリーリンク押下
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean clickLinkCategory() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// 選択された問合せモニタ一覧照会(カテゴリー別)明細インデックス取得
		int nSlctDetailIndex = Integer.valueOf(bean.sendMessageString(CRW05002SFConst.SLCT_DETAIL_INDEX, X31CWebConst.DATABEAN_GET_VALUE)).intValue();

		// 問合せモニタ一覧照会(カテゴリー別)明細リスト取得
		X31SDataBeanAccessArray ecr0321b010cbsmsg1list = bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST);

		// 選択された問合せモニタ一覧照会(カテゴリー別)明細取得
		X31SDataBeanAccess detailBean = ecr0321b010cbsmsg1list.getDataBean(nSlctDetailIndex);
		
		// 選択された問合せモニタ一覧照会(カテゴリー別)明細のカテゴリーレベル取得
		int nCtgrLv = Integer.valueOf(detailBean.sendMessageString(CRW05002SFConst.L1_CTGR_LV_02, X31CWebConst.DATABEAN_GET_VALUE)).intValue();

		// 展開フラグチェック
		if (detailBean.sendMessageBoolean(CRW05002SFConst.L1_EXPAND_FLG_02, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 展開フラグ設定
			detailBean.sendMessageBoolean(CRW05002SFConst.L1_EXPAND_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);

			// 下位カテゴリーの表示フラグ設定
			for (int i = nSlctDetailIndex + 1; i < ecr0321b010cbsmsg1list.getCount(); i++)
			{
				
				// 下位カテゴリー取得
				X31SDataBeanAccess childBean = ecr0321b010cbsmsg1list.getDataBean(i);
				
				// 下位カテゴリーのカテゴリーレベル取得
				int nChildCtgrLv = Integer.valueOf(childBean.sendMessageString(CRW05002SFConst.L1_CTGR_LV_02, X31CWebConst.DATABEAN_GET_VALUE)).intValue();
				
				// カテゴリーレベルチェック
				if (nCtgrLv >= nChildCtgrLv)
				{
					break;
				}
				
				// 表示フラグ設定
				childBean.sendMessageBoolean(CRW05002SFConst.L1_DSP_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);

				// 下位カテゴリーチェック
				if (JCRStrConst.KAI_CTGR_UM_ON.equals(childBean.sendMessageString(CRW05002SFConst.L1_KAI_CTGR_UM_02, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 展開フラグ設定
					childBean.sendMessageBoolean(CRW05002SFConst.L1_EXPAND_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
					
				}
			}
		}
		else
		{
			// 展開フラグ設定
			detailBean.sendMessageBoolean(CRW05002SFConst.L1_EXPAND_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);

			// 下位カテゴリーの表示フラグ設定
			for (int i = nSlctDetailIndex + 1; i < ecr0321b010cbsmsg1list.getCount(); i++)
			{
				
				// 下位カテゴリー取得
				X31SDataBeanAccess childBean = ecr0321b010cbsmsg1list.getDataBean(i);
				
				// 下位カテゴリーのカテゴリーレベル取得
				int nChildCtgrLv = Integer.valueOf(childBean.sendMessageString(CRW05002SFConst.L1_CTGR_LV_02, X31CWebConst.DATABEAN_GET_VALUE)).intValue();
				
				// カテゴリーレベルチェック
				if (nCtgrLv >= nChildCtgrLv)
				{
					break;
				}
				if ((nCtgrLv + 1) != nChildCtgrLv)
				{
					continue;
				}
				
				// 表示フラグ設定
				childBean.sendMessageBoolean(CRW05002SFConst.L1_DSP_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
				
				// 下位カテゴリーチェック
				if (JCRStrConst.KAI_CTGR_UM_ON.equals(childBean.sendMessageString(CRW05002SFConst.L1_KAI_CTGR_UM_02, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 展開フラグ設定
					childBean.sendMessageBoolean(CRW05002SFConst.L1_EXPAND_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
					
				}
			}
		}

		// 行スタイルクラス設定処理
		setLineStyleClass();
		
		// 集計件数合計設定処理
		setSumShukCnt();
	
		// (3)サービス呼出し処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。
		
		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05002);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05002);

		return true;
	}

	/**
	 * サービスの呼出し
	 * @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の設定
		// (a)問合せモニタ一覧照会(カテゴリー別)明細リストをクリアする
		bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST).clearArray();
		// (b)ソート指定項目の設定
		bean.sendMessageString(CRW05002SFConst.SORT_SHITEI_KMK, X31CWebConst.DATABEAN_SET_VALUE, sortKey);
		bean.sendMessageString(CRW05002SFConst.SORT_ORDER, X31CWebConst.DATABEAN_SET_VALUE, func);
		if (JCRStrConst.EVENT_SEARCH.equals(eventId))
		{
			// 検索処理のとき検索キーを退避項目に退避する
			// 退避用絞込ワークグループ名
			bean.sendMessageString(CRW05002SFConst.BK_SEARH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用発生年（自）
			bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用発生月（自）
			bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用発生日（自）
			bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_STAT, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用発生年（至）
			bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_END, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_END, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用発生月（至）
			bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_END, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_END, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用発生日（至）
			bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_END, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_END, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用ソート指定項目
			bean.sendMessageString(CRW05002SFConst.BK_SORT_SHITEI_KMK, X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW05002SFConst.SORT_SHITEI_KMK, X31CWebConst.DATABEAN_GET_VALUE));
			// 退避用ＫＥＹ＿業務個別設定組織コード
			bean.sendMessageString(CRW05002SFConst.BK_KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE));

			// 初期選択フラグ設定
			selectedFlgSet();
		}
		else
		{
			// ソート処理のとき退避項目から検索キーに設定する
			// 絞込ワークグループ名
			bean.sendMessageString(CRW05002SFConst.SEARCH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_SEARH_WKKBT_ORG_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 発生年（自）
			bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_STAT, X31CWebConst.DATABEAN_GET_VALUE));
			// 発生月（自）
			bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_STAT, X31CWebConst.DATABEAN_GET_VALUE));
			// 発生日（自）
			bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_STAT, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_STAT, X31CWebConst.DATABEAN_GET_VALUE));
			// 発生年（至）
			bean.sendMessageString(CRW05002SFConst.HASSEI_YEAR_END, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_END, X31CWebConst.DATABEAN_GET_VALUE));
			// 発生月（至）
			bean.sendMessageString(CRW05002SFConst.HASSEI_MONTH_END, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_END, X31CWebConst.DATABEAN_GET_VALUE));
			// 発生日（至）
			bean.sendMessageString(CRW05002SFConst.HASSEI_DAY_END, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_END, X31CWebConst.DATABEAN_GET_VALUE));
			// ＫＥＹ＿業務個別設定組織コード
			bean.sendMessageString(CRW05002SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					bean.sendMessageString(CRW05002SFConst.BK_KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE));
			
			// ソート項目を退避ソート項目に設定する
			bean.sendMessageString(CRW05002SFConst.BK_SORT_SHITEI_KMK, X31CWebConst.DATABEAN_SET_VALUE,
					bean.sendMessageString(CRW05002SFConst.SORT_SHITEI_KMK, X31CWebConst.DATABEAN_GET_VALUE));

			// ワークグループ検索処理
			searchWkgrp();

			// 初期選択フラグ設定
			selectedFlgSet();
		}
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0170");

		// マッピングクラス
		CRSV0170_CRSV0170OPDBMapper mapper = new CRSV0170_CRSV0170OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV017001SC(paramBean, dataMap, func);
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// (4)サービス処理結果の設定
		// マッピング処理（下り）
		mapper.getCRSV017001SC(paramBean, outputMap);
		
		// (d)サービスフォームBean項目の設定
		
		// 検索結果表示フラグ：TRUE
		bean.sendMessageBoolean(CRW05002SFConst.SEARCH_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);

		// 表示フラグ設定処理
		setDpsFlg();

		// 行スタイル設定処理
		setLineStyleClass();
		
		// 集計件数合計設定処理
		setSumShukCnt();
		
		// 検索エラーフラグ(0件)
		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(bean.sendMessageString(CRW05002SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			///検索結果:指定されたデータが存在しません。
			JCRWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I, new String[]{""});
		}

		// (5)引継情報の設定
		// なし。
		
		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05002);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05002);

		return true;
	}
	
	/**
	 * 件数リンク押下時の処理を行う
	 * @param dataSbtCd データ種別コード
	 * @return なし
	 */
	private void clickLink(String dataSbtCd)
	{
		// サービスフォーム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.getDataBeanArray(CRW05002SFConst.ECR0261B020CBSMSG1LIST).clearArray();

		// (b)サービスフォームBeanのキー項目に検索時に退避した項目および選択された明細情報を再設定する。
		// 選択された問合せモニタ一覧照会(カテゴリー別)明細インデックス取得
		int nSlctDetailIndex = Integer.valueOf(bean.sendMessageString(CRW05002SFConst.SLCT_DETAIL_INDEX, X31CWebConst.DATABEAN_GET_VALUE)).intValue();

		// 問合せモニタ一覧照会(カテゴリー別)明細リスト取得
		X31SDataBeanAccessArray ecr0321b010cbsmsg1list = bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST);

		// 選択された問合せモニタ一覧照会(カテゴリー別)明細取得
		X31SDataBeanAccess detailBean = ecr0321b010cbsmsg1list.getDataBean(nSlctDetailIndex);

		// ＫＥＹ＿業務個別設定組織コード
		bean.sendMessageString(CRW05002SFConst.KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_SET_VALUE,
			bean.sendMessageString(CRW05002SFConst.BK_KEY_WKKBT_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿データ種別コード
		bean.sendMessageString(CRW05002SFConst.KEY_DATA_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, dataSbtCd);
		// ＫＥＹ＿データ処理コード
		bean.sendMessageString(CRW05002SFConst.KEY_DATA_TRN_CD, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DATA_TRN_CD_SHORIZUMI);
		// ＫＥＹ＿カテゴリーレベル
		bean.sendMessageString(CRW05002SFConst.KEY_SLCT_CTGR_LV, X31CWebConst.DATABEAN_SET_VALUE, 
				detailBean.sendMessageString(CRW05002SFConst.L1_CTGR_LV_02, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿カテゴリー名
		bean.sendMessageString(CRW05002SFConst.KEY_SLCT_CTGR_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				detailBean.sendMessageString(CRW05002SFConst.L1_CTGR_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿上位連結カテゴリー名
		bean.sendMessageString(CRW05002SFConst.KEY_SLCT_JOI_RNKT_CTGR_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				detailBean.sendMessageString(CRW05002SFConst.L1_JOI_RNKT_CTGR_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
		
		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0171");

		// マッピングクラス
		CRSV0171_CRSV0171OPDBMapper mapper = new CRSV0171_CRSV0171OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV017101SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, dataMap, outputMap);
		
		// (4)サービス処理結果の設定
		// マッピング処理（下り）
		mapper.getCRSV017101SC(paramBean, outputMap);
		
		// (5)引継情報の設定
		// (a)次画面への引継情報(dataMap)を作成する。
		HashMap<String, Object> dataMap2 = new HashMap<String, Object>();
		// 対応記録番号リスト
		dataMap2.put(CRW05101SFConst.TAIO_KIROK_NO_LIST, JCRWebCommon.getArrayList(bean.getDataBeanArray(CRW05002SFConst.ECR0261B020CBSMSG1LIST)));
		// 絞込ワークグループ名
		dataMap2.put(CRW05101SFConst.SEARCH_WKKBT_ORG_NM, bean.sendMessageString(CRW05002SFConst.BK_SEARH_WKKBT_ORG_NM,
				X31CWebConst.DATABEAN_GET_VALUE));
		// 初期表示時ワークグループリスト
		dataMap2.put(CRW05101SFConst.INIT_WKKBT_ORG_LIST, JCRWebCommon.getArrayList(bean.getDataBeanArray(CRW05002SFConst.INIT_WKKBT_ORG_LIST)));
		// 発生年（自）
		dataMap2.put(CRW05101SFConst.HASSEI_YEAR_STAT, bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_STAT, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// 発生月（自）
		dataMap2.put(CRW05101SFConst.HASSEI_MONTH_STAT, bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_STAT, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// 発生日（自）
		dataMap2.put(CRW05101SFConst.HASSEI_DAY_STAT, bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_STAT, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// 発生年（至）
		dataMap2.put(CRW05101SFConst.HASSEI_YEAR_END, bean.sendMessageString(CRW05002SFConst.BK_HASSEI_YEAR_END, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// 発生月（至）
		dataMap2.put(CRW05101SFConst.HASSEI_MONTH_END, bean.sendMessageString(CRW05002SFConst.BK_HASSEI_MONTH_END, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// 発生日（至）
		dataMap2.put(CRW05101SFConst.HASSEI_DAY_END, bean.sendMessageString(CRW05002SFConst.BK_HASSEI_DAY_END, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// ソート指定項目
		dataMap2.put(CRW05101SFConst.SORT_SHITEI_KMK, bean.sendMessageString(CRW05002SFConst.BK_SORT_SHITEI_KMK, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// ソート順
		dataMap2.put(CRW05101SFConst.SORT_ORDER, bean.sendMessageString(CRW05002SFConst.SORT_ORDER, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// ＫＥＹ＿業務個別設定組織コード
		dataMap2.put(CRW05101SFConst.KEY_WKKBT_ORG_CD, bean.sendMessageString(CRW05002SFConst.BK_KEY_WKKBT_ORG_CD, 
				X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せモニタ一覧照会(カテゴリー別)明細
		dataMap2.put(CRW05101SFConst.ECR0321B010CBSMSG1LIST, JCRWebCommon.getArrayList(bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST)));
		
		// (b)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		// 次画面に渡す情報を設定
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW05101, dataMap2);
		
		// (c)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		// 次画面に自画面の画面IDを設定
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW05101, JCRScreenConst.SCREEN_ID_CRW05002);
		
		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW05101);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW05101);
	}
	
	/**
	 * ワークグループのリストボックス初期選択フラグ設定処理を行う。
	 * 
	 */
	private void selectedFlgSet()
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		X31SDataBeanAccessArray orgList = bean.getDataBeanArray(CRW05002SFConst.WKKBT_ORG_LIST);
		// 初期選択フラグ初期化
		for(int i = 0; i < orgList.getCount(); i++)
		{
			X31SDataBeanAccess orgBean = orgList.getDataBean(i);
			orgBean.sendMessageBoolean(CRW05002SFConst.L0_SELECTED_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, Boolean.FALSE);
		}
		// ＫＥＹ＿業務個別設定組織コードをカンマ区切りで配列に格納
		String slctWkkbt = bean.sendMessageString(CRW05002SFConst.KEY_WKKBT_ORG_CD
				, X31CWebConst.DATABEAN_GET_VALUE).replace(JCRStrConst.STR_HALF_SINGLE_QUOTATION, "");
		String[] slctWkkbtList = slctWkkbt.split(JCRStrConst.STR_HALF_COMMA);
		int slctListLength = slctWkkbtList.length;
		// 画面から受け取った選択されたワークグループの項目と、初期表示時のワークグループの項目を比較する
		for(int i = 0; i < orgList.getCount() ; i++)
		{
			X31SDataBeanAccess machOrgBean = orgList.getDataBean(i);
			String matchOrgCd = machOrgBean.sendMessageString(CRW05002SFConst.L0_WKKBT_ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			
			for(int j = 0; j < slctListLength ; j++)
			{
				if(matchOrgCd.equals(slctWkkbtList[j]))
				{
					// 選択されたワークグループ項目とワークグループリストがマッチしたとき、初期選択フラグをTRUEにする
					machOrgBean.sendMessageBoolean(CRW05002SFConst.L0_SELECTED_FLG_01, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
				}
			}
		}
	}

	/**
	 * 表示フラグ設定処理を行う。<br>
	 * <br>
	 * 一覧出力データを総嘗めし、表示フラグを設定する。
	 * 
	 */
	private void setDpsFlg() 
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 問合せモニタ一覧照会(カテゴリー別)明細リスト取得
		X31SDataBeanAccessArray detailBeanList = bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST);
		
		// 表示フラグを設定する
		for (int i = 0; i < detailBeanList.getCount(); i++)
		{
			// 問合せモニタ一覧照会(カテゴリー別)明細取得
			X31SDataBeanAccess detailBean = detailBeanList.getDataBean(i);
			
			// カテゴリーレベルチェック
			if (JCRStrConst.CTGR_LV_001.equals(detailBean.sendMessageString(CRW05002SFConst.L1_CTGR_LV_02, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 問合せモニタ一覧照会（カテゴリー別）明細.表示フラグ ← TRUE
				detailBean.sendMessageBoolean(CRW05002SFConst.L1_DSP_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);
			}
		}
	}
	
	/**
	 * 行スタイルクラス設定処理を行う。<br>
	 * <br>
	 * 一覧出力データを総嘗めし、行スタイルクラスを設定する。
	 * 
	 */
	private void setLineStyleClass() 
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 問合せモニタ一覧照会(カテゴリー別)明細リスト取得
		X31SDataBeanAccessArray detailBeanList = bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST);
		
		// 行スタイルを設定する
		int line = 0;
		for (int i = 0; i < detailBeanList.getCount(); i++)
		{
			// 問合せモニタ一覧照会(カテゴリー別)明細取得
			X31SDataBeanAccess detailBean = detailBeanList.getDataBean(i);
			
			// 表示フラグチェック
			if (!detailBean.sendMessageBoolean(CRW05002SFConst.L1_DSP_FLG_02, X31CWebConst.DATABEAN_GET_VALUE))
			{
				continue;
			}
			
			// 問合せモニタ一覧照会（カテゴリー別）明細.行スタイルクラス ← 部品呼び出し
			detailBean.sendMessageString(CRW05002SFConst.L1_LINE_STYLE_CLASS_02,
					X31CWebConst.DATABEAN_SET_VALUE, eo.web.webview.common.JCRWebCommon.getLineStyle(++line));
		}
	}

	/**
	 * 集計件数合計設定処理を行う。<br>
	 * <br>
	 * 一覧出力データを総嘗めし、集計件数を設定する。
	 * 
	 */
	private void setSumShukCnt() 
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 問合せモニタ一覧照会(カテゴリー別)明細リスト取得
		X31SDataBeanAccessArray detailBeanList = bean.getDataBeanArray(CRW05002SFConst.ECR0321B010CBSMSG1LIST);
		
		int newShukCntTotal = 0;
		int ngWordShukCntTotal = 0;

		// 集計件数を設定する
		for (int i = 0; i < detailBeanList.getCount(); i++)
		{
			// 問合せモニタ一覧照会(カテゴリー別)明細取得
			X31SDataBeanAccess detailBean = detailBeanList.getDataBean(i);
			
			// カテゴリーレベルチェック
			if (JCRStrConst.CTGR_LV_001.equals(detailBean.sendMessageString(CRW05002SFConst.L1_CTGR_LV_02, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 問合せモニタ一覧照会（カテゴリー別）明細.新規作成集計件数合計算出
				newShukCntTotal += Integer.parseInt(detailBean.sendMessageString(CRW05002SFConst.L1_NEW_SAKSEI_SHUK_CNT_02, X31CWebConst.DATABEAN_GET_VALUE));
				// 問合せモニタ一覧照会（カテゴリー別）明細.ＮＧワード集計件数算出
				ngWordShukCntTotal += Integer.parseInt(detailBean.sendMessageString(CRW05002SFConst.L1_NG_WORD_SHUK_CNT_02, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}

		// 新規作成集計件数合計設定
		bean.sendMessageString(CRW05002SFConst.SUM_NEW_SAKSEI_SHUK_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(newShukCntTotal));
		// NGワード集計件数合計設定
		bean.sendMessageString(CRW05002SFConst.SUM_NG_WORD_SHUK_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(ngWordShukCntTotal));
	}
	
}
