/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：WCW01601SFLogic
*	ソースファイル名：WCW01601SFLogic.java
*	作成者			：富士通
*	日付			：2011年08月16日
*＜機能概要＞
*	デジタルティア設定のビューロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/16	富士通		新規作成
*	v5.00.00	2013/11/14	富士通		IT2-2013-0000757
*
**********************************************************************/
package eo.web.webview.WCW01601SF;

import static eo.common.util.JDKCommonUtil.join;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.constant.JWCStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.WCW01606SF.WCW01606SFConst;
import eo.web.webview.WCW01609SF.WCW01609SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JWCCommonConst;
import eo.web.webview.common.JWCScreenConst;
import eo.web.webview.mapping.WCSV0026_WCSV0026OPDBMapper;
import eo.web.webview.mapping.WCSV0062_WCSV0062OPDBMapper;
import eo.common.constant.JPCModelConstant;

/**
 * デジタルティア一覧照会を行う。
 *
 * @author 富士通
 */

public class WCW01601SFLogic extends JCCWebBusinessLogic
{
	// エラーメッセージ表示用定数定義
	private String Error_Mode_1 = "1";
	private String Error_Mode_2 = "2";
	
	// 選択項目初期表示
	private String SELECT_DEF = "0";
	
	/**
	 * 一覧照会画面初期表示処理
	 * @author 富士通
	 * @return 
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{

		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		///// 遷移先画面設定処理 /////
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01603,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01604,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01605,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01606,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01607,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01608,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01609,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01610,  JWCScreenConst.SCREEN_ID_WC01601);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC01601);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC01601);


		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();
		

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0062");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0062OP");
		
		// 視聴制御初期表示サービス呼出処理
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		} 

		// 視聴制御初期表示下りマッピング定義
		mappingForDB_BP_WCSV0062_GET(paramBean, outputMap);

		// 局検索エラー
		X31SDataBeanAccessArray kykBeanArray = bean.getDataBeanArray(WCW01601SFConst.KYOKU_INFO);
		if (kykBeanArray.getCount() == 0 ||kykBeanArray.getDataBean(0) == null)
		{
			error_Message(Error_Mode_1);
			return true;
		}
		// 制御エリア検索エラー
		X31SDataBeanAccessArray ctrlBeanArray = bean.getDataBeanArray(WCW01601SFConst.CTRL_AREA_INFO);
		if (ctrlBeanArray.getCount() == 0 ||ctrlBeanArray.getDataBean(0) == null)
		{
			error_Message(Error_Mode_2);
			return true;
		}
		
		bean.sendMessageString(WCW01601SFConst.SELECT_FLG, X31CWebConst.DATABEAN_SET_VALUE, SELECT_DEF);
		
		return get_searchData();
	}
	

	/**
	 * 登録ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean create() throws Exception 
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		String MESSAGE_ID = "EKB7030--I";
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "ティア情報";

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC01603);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC01603);
		
		return true;
	}
	
	/**
	 * 更新ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean update() throws Exception 
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 選択値と同値を持つ一覧の格納位置から情報を取得し、詳細画面へ受け渡す制御項目の設定を行う。
		String sel = paramBean[0].sendMessageString(WCW01601SFConst.SELECT_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択値より、番号を取得
		X31SDataBeanAccessArray grp_id_list = paramBean[0].getDataBeanArray(WCW01601SFConst.TIA_INFO);
		X31SDataBeanAccess grp_id_list_subbean = grp_id_list.getDataBean(Integer.parseInt(sel));

		// パラメータ作成
		String str_tia_no = grp_id_list_subbean.sendMessageString(WCW01601SFConst.TIA_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_tia_sbt = grp_id_list_subbean.sendMessageString(WCW01601SFConst.TIA_SBT_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_tia_nm = grp_id_list_subbean.sendMessageString(WCW01601SFConst.TIA_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_dsp_flg = grp_id_list_subbean.sendMessageString(WCW01601SFConst.DSP_FLG_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_upd_dtm = grp_id_list_subbean.sendMessageString(WCW01601SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);

		X31SDataBeanAccessArray kyoku_list = paramBean[0].getDataBeanArray(WCW01601SFConst.KYOKU_INFO);
		X31SDataBeanAccess kyoku_list_subbean = kyoku_list.getDataBean(0);
		String str_kyoku_cd = kyoku_list_subbean.sendMessageString(WCW01601SFConst.KYOKU_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		
		// 引き継ぎの情報を格納するMAPを生成する。 
		HashMap<String, Object> dataMap = new HashMap<String, Object>(); 

		// 引き継ぎを行う情報をdataMapに転記する。 
		dataMap.put( WCW01606SFConst.DGTIA_CD , str_tia_no);
		dataMap.put( WCW01606SFConst.DGTIA_NM , str_tia_nm);
		dataMap.put( WCW01606SFConst.DSP_FLG , str_dsp_flg);
		dataMap.put( WCW01606SFConst.TIA_SBT_CD , str_tia_sbt);
		dataMap.put( WCW01606SFConst.CTRL_KYOKU_CD , str_kyoku_cd);
		dataMap.put( WCW01606SFConst.UPD_DTM , str_upd_dtm);

		JCCWebCommon.setScreenInfo( this, JWCScreenConst.SCREEN_ID_WC01606,  dataMap);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01606,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.getScreenInfo(this);
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		String MESSAGE_ID = "EKB7040--I";
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "訂正項目";

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC01606);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC01606);
		
		return true;
	}
	

	/**
	 * 削除ボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean delete() throws Exception 
	{


		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		// 選択値と同値を持つ一覧の格納位置から情報を取得し、詳細画面へ受け渡す制御項目の設定を行う。
		String sel = paramBean[0].sendMessageString(WCW01601SFConst.SELECT_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択値より、番号を取得
		X31SDataBeanAccessArray grp_id_list = paramBean[0].getDataBeanArray(WCW01601SFConst.TIA_INFO);
		X31SDataBeanAccess grp_id_list_subbean = grp_id_list.getDataBean(Integer.parseInt(sel));

		// パラメータ作成
		String str_tia_no = grp_id_list_subbean.sendMessageString(WCW01601SFConst.TIA_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_tia_sbt = grp_id_list_subbean.sendMessageString(WCW01601SFConst.TIA_SBT_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_tia_sbt_nm = grp_id_list_subbean.sendMessageString(WCW01601SFConst.TIA_SBT_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_tia_nm = grp_id_list_subbean.sendMessageString(WCW01601SFConst.TIA_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_dsp_flg = grp_id_list_subbean.sendMessageString(WCW01601SFConst.DSP_FLG_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_dsp_flg_nm = grp_id_list_subbean.sendMessageString(WCW01601SFConst.DSP_FLG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		String str_upd_dtm = grp_id_list_subbean.sendMessageString(WCW01601SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE);

		X31SDataBeanAccessArray kyoku_list = paramBean[0].getDataBeanArray(WCW01601SFConst.KYOKU_INFO);
		X31SDataBeanAccess kyoku_list_subbean = kyoku_list.getDataBean(0);
		String str_kyoku_cd = kyoku_list_subbean.sendMessageString(WCW01601SFConst.KYOKU_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		
		
		// 引き継ぎの情報を格納するMAPを生成する。 
		HashMap<String, Object> dataMap = new HashMap<String, Object>(); 

		// 引き継ぎを行う情報をdataMapに転記する。 
		dataMap.put( WCW01609SFConst.DGTIA_CD , str_tia_no);
		dataMap.put( WCW01609SFConst.DGTIA_NM , str_tia_nm);
		dataMap.put( WCW01609SFConst.DSP_FLG , str_dsp_flg);
		dataMap.put( WCW01609SFConst.DSP_FLG_NM , str_dsp_flg_nm);
		dataMap.put( WCW01609SFConst.TIA_SBT_CD , str_tia_sbt);
		dataMap.put( WCW01609SFConst.TIA_SBT_CD_NM , str_tia_sbt_nm);
		dataMap.put( WCW01609SFConst.UPD_DTM , str_upd_dtm);
		dataMap.put( WCW01609SFConst.KYOKU_CD , str_kyoku_cd);

		JCCWebCommon.setScreenInfo( this, JWCScreenConst.SCREEN_ID_WC01609,  dataMap);
		JCCWebCommon.setScreenId( this, JWCScreenConst.SCREEN_ID_WC01609,  JWCScreenConst.SCREEN_ID_WC01601);
		JCCWebCommon.getScreenInfo(this);
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		String MESSAGE_ID = "EKB0370--I";
		String[] stringArray;
		stringArray = new String[1];
		stringArray[0] = "デジタルティア設定削除";

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_ID_WC01609);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JWCScreenConst.SCREEN_NAME_WC01609);
		
		return true;
	}

	/**
	 * csvボタン押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean csv() throws Exception 
	{

		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		mappingForDB_BP_WCSV0047_SET(paramBean, inputMap, "1");

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0047");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0047OP");
		///// サービス呼出処理 /////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
			// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		HashMap parentMap = null;
		if(outputMap.containsKey("WCSV004701SC")){
			parentMap = (HashMap)outputMap.get("WCSV004701SC");
		}
		ArrayList childList = null;
		if(parentMap != null && parentMap.containsKey("EWC0211B010CBSMsg1List") && parentMap.get("EWC0211B010CBSMsg1List") != null)
		{
			childList = (ArrayList)parentMap.get("EWC0211B010CBSMsg1List");
		}
		
		StringBuffer bodyRecords = new StringBuffer();
		int size = childList.size();
		for (int i = 0 ; i < size ; i++)
		{
			HashMap childMap = (HashMap)childList.get(i);
			if (bodyRecords.length() > 0)
			{
				bodyRecords.append("\r\n");
			}
			String record =
				    join(",",
					dqot((String)childMap.get("dgtia_cd")),
					dqot((String)childMap.get("dgtia_nm")),
					dqot((String)childMap.get("dgtia_sbt_cd")),
					dqot((String)childMap.get("dgtia_sbt_cd_nm")),
					dqot((String)childMap.get("channel_cd")),
					dqot((String)childMap.get("dgtia_map_tstaymd")),
					dqot((String)childMap.get("dgtia_map_tendymd")));
			bodyRecords.append(record);
		}
		
		String file = join("\r\n",
							buildHeaderRecord(),
							bodyRecords.toString());
		
		String fileName = "デジタルティアマップ情報.csv";
		byte[] downloadfile = file.getBytes("MS932");
		
		JCCWebCommon.setTempDownloadFile(this, downloadfile, fileName);

		return true;
	}
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0026_WCSV0026OPDBMapper mapper = new WCSV0026_WCSV0026OPDBMapper();
		mapper.setWCSV002602SC(paramBean, inputMap, func_code);

		return;
	}
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  outputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0026_WCSV0026OPDBMapper mapper = new WCSV0026_WCSV0026OPDBMapper();
		
		mapper.getWCSV002601SC(paramBean, outputMap);
		mapper.getWCSV002602SC(paramBean, outputMap);
		return;
	}
	/**
	 * サービスフォームBean項目とサービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   上りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0047_SET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> inputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		// 検索系 共通部
		parentMap.put("search_type", String.valueOf("1"));
		parentMap.put("display_page_num", String.valueOf("1000"));
		parentMap.put("max_search_num", String.valueOf("1000"));
		parentMap.put("display_num",String.valueOf("1"));
		
		inputMap.put("WCSV004701SC", parentMap);
		
		return;
	}
	
	/**
	 * サービスフォームBean項目と手動リンク一覧照会サービス項目のマッピングを行う
	 * @param  paramBean  DataBean項目の配列
	 * @param  inputMap   下りデータマップ
	 * @param  func_code  機能コード
	 */
	private void mappingForDB_BP_WCSV0062_GET(X31SDataBeanAccess[] paramBean, HashMap<String, Object> outputMap)
	{
		// DataBean-BPマッピングクラス生成
		WCSV0062_WCSV0062OPDBMapper mapper = new WCSV0062_WCSV0062OPDBMapper();

		mapper.getWCSV006201SC(paramBean, outputMap);
		mapper.getWCSV006202SC(paramBean, outputMap);
		return;
	}

	
	public boolean error_Message(String strFlg) throws Exception
	{
		String MESSAGE_ID = "";
		String[] stringArray = new String[0];
		
		if(strFlg.equals(Error_Mode_1))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9230_KW;
			stringArray = new String[1];
			stringArray[0] = "局";
		}
		else if(strFlg.equals(Error_Mode_2))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB9230_KW;
			stringArray = new String[1];
			stringArray[0] = "制御エリア";
		}

		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID,stringArray,"");
		return true;
	}
	
	/**
	 * csvのヘッダ行を生成します。
	 * @return ヘッダ文字列
	 */
	private String buildHeaderRecord()
	{
		return join(",",
					dqot("デジタルティアコード"),
					dqot("デジタルティア名"),
					dqot("デジタルティア種別コード"),
					dqot("デジタルティア種別名"),
					dqot("チャンネルコード"),
					dqot("デジタルティアマップ適用開始年月日"),
					dqot("デジタルティアマップ適用終了年月日"));
	}
	
	/**
	 * 文字列をダブルクォーテッドする
	 * @param src 囲まれる文字列
	 * @return \"囲まれる文字列\"
	 */
	private String dqot(String src)
	{
		return String.format("\"%s\"", src);
	}

	/**
	 * ページング押下処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean paging() throws Exception
	{
		return get_searchData();
	}

	/**
	 * 検索処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean get_searchData() throws Exception
	{
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;

		paramMap = new HashMap<String, Object>();
		inputMap = new HashMap<String, Object>();
		outputMap = new HashMap<String, Object>();

		///// 共有フォームBean設定/////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		bean.getDataBeanArray(WCW01601SFConst.TIA_INFO).clearArray();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};

		mappingForDB_BP_SET(paramBean, inputMap, JWCCommonConst.FUNC_CODE_1);

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "WCSV002602SC", inputMap, "WCW016010PJP");

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "WCSV0026");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "WCSV0026OP");
		///// サービス呼出処理 /////
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

			// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		// 下りマッピング定義
		mappingForDB_BP(paramBean, outputMap);

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this,  "WCSV002602SC", outputMap, "WCW016010PJP");

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "paging", "WCW016010PJP");

		String MESSAGE_ID = "";
		String[] stringArray = new String[1];

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("WCSV002602SC", outputMap);
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0330__I;
			stringArray = new String[1];
			stringArray[0] = "";
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0340__I;
			stringArray = new String[1];
			stringArray[0] = "";
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB0350__I;
			stringArray = new String[1];
			stringArray[0] = "";
		}
		else
		{
			MESSAGE_ID = JPCOnlineMessageConstant.EKB6950__I;
			stringArray = new String[1];
			stringArray[0] = "";
		}

		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTをクリアする。
		commonBeanArray.clearArray();
		JCCWebCommon.setMessageInfo( this, MESSAGE_ID, stringArray, "");

		X31SDataBeanAccessArray beanArray = bean.getDataBeanArray(WCW01601SFConst.TIA_INFO);
		for(int i = 0; i < beanArray.getCount(); i++)
		{
			if(i % 2 == 1)
			{
				beanArray.getDataBean(i).sendMessageString(WCW01601SFConst.RT_CLASS_01, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.ROW_STYLE_EVEN);
			}
			else
			{
				beanArray.getDataBean(i).sendMessageString(WCW01601SFConst.RT_CLASS_01, X31CWebConst.DATABEAN_SET_VALUE, JWCStrConst.ROW_STYLE_ODD);
			}
		}
		return true;
	}

	/**
	 * 戻るボタン完了処理
	 * @return 
	 * @throws Exception 
	 */
	public boolean back() throws Exception
	{
		
		///// 共有フォームBean設定（遷移先画面） /////
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonBean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);

		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		return true;
	}
}