/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：DKW06201SFLogic
*	ソースファイル名：DKW06201SFLogic.java
*	作成者			：FJ
*	日付			：2012年07月10日
*＜機能概要＞
*	TUW02401のビューロジック
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/07/10	FJ)大戸		新規作成
********************************************************************************/
package eo.web.webview.DKW06201SF;

import static eo.web.webview.DKW00101SF.DKW00101SFConst.I_CD_CD_03;
import static eo.web.webview.DKW00101SF.DKW00101SFConst.I_CD_CD_LIST_03;
import static eo.web.webview.DKW00101SF.DKW00101SFConst.I_CD_INDEX_03;
import static eo.web.webview.DKW00101SF.DKW00101SFConst.I_CD_NM_03;
import static eo.web.webview.DKW00101SF.DKW00101SFConst.I_CD_NM_LIST_03;
import static eo.web.webview.DKW00101SF.DKW00101SFConst.I_SEARCH_JOKEN_KMK_CD;
import static eo.web.webview.common.JDKWebCommon.storePullDown;

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.JDKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.constant.JTUStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JDKScreenConst;
import eo.web.webview.common.JDKWebCommon;
import eo.web.webview.mapping.DKSV0131_DKSV0131OPDBMapper;
import eo.web.webview.mapping.DKSV0132_DKSV0132OPDBMapper;

/**
 * DKW06201のビューロジック
 * @author FJ
 *
 */
public class DKW06201SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 初期表示ユースケースID
	 */
	private static final String INIT_USECASE_ID = "DKSV0131";
	
	/**
	 * 初期表示SCタイトル01
	 */
	private static final String INIT_SC_TITLE01 = "DKSV013101SC";
	/**
	 * 初期表示SCタイトル02
	 */
	private static final String INIT_SC_TITLE02 = "DKSV013102SC";
	/**
	 * 初期表示CCタイトル01
	 */
	private static final String INIT_CC_TITLE01 = "DKSV013101CC";
	
	/**
	 * 検索ユースケースID
	 */
	private static final String SEARCH_USECASE_ID = "DKSV0132";
	
	/**
	 * 検索SCタイトル01
	 */
	private static final String SEARCH_SC_TITLE01 = "DKSV013201SC";
	
	/**
	 * 検索処理最大検索件数
	 */
	private static final String SEARCH_MAX_SHOW_CNT = "DKW06201_MAX_SHOW_CNT";
	
	/**
	 * 検索処理ページ表示件数
	 */
	private static final String SEARCH_ROW_PER_PAGE = "DKW06201_ROW_PER_PAGE";
	
	/**  再検索フラグ */

	public static final String RESEARCH_FLG_NM = "re_search_flg";

	/**
	 * 再検索フラグ　不要
	 */
	
	private static final String RE_SEARCH_FLG_FALSE = "0";
	
	/**
	 * 再検索フラグ　要
	 */
	
	private static final String RE_SEARCH_FLG_TRUE = "1";
	/**
	 * 画面表示区分１
	 */
	private static final String SCREEN_DSP_DIV_1 = "1";	

	/**
	 * 画面表示区分２
	 */
	private static final String SCREEN_DSP_DIV_2 = "2";	

	/**
	 * 画面表示区分３
	 */
	private static final String SCREEN_DSP_DIV_3 = "3";	

	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		return dkw06201_init();
	}
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean dkw06201_init() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
								, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW06201);


		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();

		bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_1);
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * DataBean設定処理
		 */
		// セッション情報取得
		HashMap<String, Object> searchInfo = JCCWebCommon.getScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW06201);
		
		String re_search_flg = RE_SEARCH_FLG_FALSE;
		int model_idx = 0;
		int sbt_idx = 0;
		String screenId = JCCWebCommon.getScreenId(this);

		//再検索フラグ判定
		if (screenId != null)
		{
			if(screenId.equals(JDKScreenConst.SCREEN_ID_DKW06202)    
					|| screenId.equals(JDKScreenConst.SCREEN_ID_DKW06204) 
					|| screenId.equals(JDKScreenConst.SCREEN_ID_DKW06205)
					|| screenId.equals(JDKScreenConst.SCREEN_ID_DKW06207)
					|| screenId.equals(JDKScreenConst.SCREEN_ID_DKW06208)
					|| screenId.equals(JDKScreenConst.SCREEN_ID_DKW06209))
			{
				re_search_flg = RE_SEARCH_FLG_TRUE;
			}	
		}
		
		if(searchInfo != null)
		{
			//再検索フラグ取得
			if(re_search_flg.equals(RE_SEARCH_FLG_TRUE))    
			{
				
				// 宅内機器型式コード（保存用）保持
				bean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD_SAVE, X31CWebConst.DATABEAN_SET_VALUE,
						searchInfo.get("taknkiki_model_cd_save").toString());
				// 機器提供種別コード（保存用）保持
				bean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD_SAVE, X31CWebConst.DATABEAN_SET_VALUE,
						searchInfo.get("kktk_sbt_cd_save").toString());
				// 宅内機器型式コード保持
				bean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_SET_VALUE,
						searchInfo.get("taknkiki_model_cd_re_search").toString());
				// 機器提供種別コード保持
				bean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE,
						searchInfo.get("kktk_sbt_cd_re_search").toString());
				// 型式対象機器提供主熱適用開始年月日保持
				bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TSTAYMD, X31CWebConst.DATABEAN_SET_VALUE,
						searchInfo.get("mdl_tg_kktk_sbt_tstaymd_re_search").toString());
				// 型式対象機器提供主熱適用終了年月日保持
				bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TENDYMD, X31CWebConst.DATABEAN_SET_VALUE,
						searchInfo.get("mdl_tg_kktk_sbt_tendymd_re_search").toString());
			}
		}
		// セッション再保持
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW06201, searchInfo);

		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, INIT_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		DKSV0131_DKSV0131OPDBMapper mapper = new DKSV0131_DKSV0131OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// オペレーション日付取得
		String opeDate = JCCWebCommon.getOpeDate(this, null); 

		// 上りマッピングの呼び出し
		mapper.setDKSV013102SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_3);
		
		
		if(re_search_flg.equals(RE_SEARCH_FLG_TRUE))    
		{
			// 上りマッピングの呼び出し
			mapper.setDKSV013101CC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		}

		if (inputMap.containsKey(INIT_CC_TITLE01))
		{
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put(RESEARCH_FLG_NM, re_search_flg);
			//検索条件をマップにセット
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("taknkiki_model_cd_save"
					, bean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD_SAVE, X31CWebConst.DATABEAN_GET_VALUE));
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("kktk_sbt_cd_save"
					, bean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD_SAVE, X31CWebConst.DATABEAN_GET_VALUE));
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("taknkiki_model_cd"
					, bean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_GET_VALUE));
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("kktk_sbt_cd"
					, bean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("mdl_tg_kktk_sbt_tstaymd"
					, bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TSTAYMD, X31CWebConst.DATABEAN_GET_VALUE));
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("mdl_tg_kktk_sbt_tendymd"
					, bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TENDYMD, X31CWebConst.DATABEAN_GET_VALUE));
			// 一覧照会共通部設定
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("search_type", JPCModelConstant.SAERCH_TYPE_BBN);
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("max_search_num", JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT));
			((HashMap<String, Object>)inputMap.get(INIT_CC_TITLE01)).put("display_num", JCCWebCommon.getSearchConst(SEARCH_ROW_PER_PAGE));
			
			// ページリンク情報のマッピング
			JCCWebCommon.upmapperPageLinkInfo(this, INIT_CC_TITLE01, inputMap);
		}
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * サービス処理結果の取得
		 */
		// 下りマッピングの呼び出し
		mapper.getDKSV013101SC(paramBean, outputMap);
		mapper.getDKSV013102SC(paramBean, outputMap);
		if(re_search_flg.equals(RE_SEARCH_FLG_TRUE))    
		{
			mapper.getDKSV013101CC(paramBean, outputMap);
		}

		if (re_search_flg.equals(RE_SEARCH_FLG_TRUE))
		{
		
			// 保持しているコンボのインデックスをセット
			
			X31SDataBeanAccess listDataBean = bean.getDataBeanArray(DKW06201SFConst.TAKNKIKI_MODEL_INFO).getDataBean(0);
			ArrayList<String> modelCdArray = new ArrayList<String>(); // 型式コード
			int modelCdCnt = (Integer)listDataBean.sendMessage(DKW06201SFConst.TAKNKIKI_MODEL_CD_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);
			for (int i = 0; i < modelCdCnt; i++)
			{
				if (listDataBean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD_LIST_01, 
						X31CWebConst.DATABEAN_GET_VALUE, i).equals(searchInfo.get("taknkiki_model_cd_re_search").toString()))
				{
					listDataBean.sendMessageString(DKW06201SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
							break;	
				}
			}
			listDataBean = bean.getDataBeanArray(DKW06201SFConst.KKTK_SBT_INFO).getDataBean(0);
			modelCdArray = new ArrayList<String>(); // 種別コード
			int sbtCdCnt = (Integer)listDataBean.sendMessage(DKW06201SFConst.KKTK_SBT_CD_LIST_02, X31CWebConst.DATABEAN_GET_COUNT);
			for (int i = 0; i < sbtCdCnt; i++)
			{
				if (listDataBean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD_LIST_02,
						X31CWebConst.DATABEAN_GET_VALUE, i).equals(searchInfo.get("kktk_sbt_cd_re_search").toString()))
				{
					listDataBean.sendMessageString(DKW06201SFConst.INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
							break;	
				}
			}
			

			String tstaYmd =  bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TSTAYMD, X31CWebConst.DATABEAN_GET_VALUE);
			if (tstaYmd != null && tstaYmd.length()  == 8)
			{
				bean.sendMessageString(DKW06201SFConst.TSTAYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, tstaYmd.substring(0, 4));
				bean.sendMessageString(DKW06201SFConst.TSTAYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, tstaYmd.substring(4, 6));
				bean.sendMessageString(DKW06201SFConst.TSTAYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, tstaYmd.substring(6, 8));
			}
			String tendYmd =  bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TENDYMD, X31CWebConst.DATABEAN_GET_VALUE);
			if (tendYmd != null && tendYmd.length()  == 8)
			{
				bean.sendMessageString(DKW06201SFConst.TENDYMD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, tendYmd.substring(0, 4));
				bean.sendMessageString(DKW06201SFConst.TENDYMD_MON, X31CWebConst.DATABEAN_SET_VALUE, tendYmd.substring(4, 6));
				bean.sendMessageString(DKW06201SFConst.TENDYMD_DAY, X31CWebConst.DATABEAN_SET_VALUE, tendYmd.substring(6, 8));
			}
			

		/**
		 * 取得データ件数チェック
		 */
		bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_3);

		HashMap<String, Object> ccMap = null;
		if(outputMap.containsKey(INIT_CC_TITLE01))
		{
			ccMap = (HashMap<String, Object>)outputMap.get(INIT_CC_TITLE01);
		}
		
		// 検索エラー取得

		String searchErrFlg = JCCWebCommon.getSearchErrFlg(INIT_CC_TITLE01, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_2);
			return true;
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			//最大件数を超えた場合
			String[] msgRpl = new String[]{JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT)};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msgRpl);
			bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_1);
			return true;
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
				//表示ページに該当するデータがない場合
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
				bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_2);
				return true;
		}
			// 行スタイル設定
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(DKW06201SFConst.MDL_TG_KKTK_SBT_INFO);
		int len = listBean.getCount();
		X31SDataBeanAccess childBean = null;
		for(int i = 0; i < len; i++)
		{
			childBean = listBean.getDataBean(i);
			childBean.sendMessageString(DKW06201SFConst.ROW_STYLE_03, X31CWebConst.DATABEAN_SET_VALUE
					, (i + 1) % 2 == 0 ? JTUStrConst.ROW_STYLE_EVEN : JTUStrConst.ROW_STYLE_ODD);
		}

			// 明細のラジオボタンの初期値設定
			setDispRadio(bean);
		
		}
			
		return true;
	}
	
	
	/**
	 * 検索ボタン押下イベント
	 * @return boolean
	 * @throws Exception
	 */
	public boolean search() throws Exception
	{
		
		//セッション情報を削除 
		JCCWebCommon.removeScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW06201);
		JCCWebCommon.clearPageLinkInfo(this, JDKScreenConst.SCREEN_ID_DKW06201);
		// 遷移先画面IDの設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW06201);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW06201);
		
		return dkw06201_search();

	}
	
	
	/**
	 * ページング処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean paging() throws Exception
	{
		return dkw06201_search();
	}

	/**
	 * 検索処理
	 * @return boolean
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean dkw06201_search() throws Exception
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 検索条件項目の編集
		setBeanSearchInfo(bean);
		
		//検索条件をセッションへ格納
		saveSessionSearchInfo();
		
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SEARCH_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		DKSV0132_DKSV0132OPDBMapper mapper = new DKSV0132_DKSV0132OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 上りマッピングの呼び出し
		mapper.setDKSV013201SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		
		// 一覧照会共通部設定
		((HashMap<String, Object>)inputMap.get(SEARCH_SC_TITLE01)).put("search_type", JPCModelConstant.SAERCH_TYPE_BBN);
		((HashMap<String, Object>)inputMap.get(SEARCH_SC_TITLE01)).put("max_search_num", JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT));
		((HashMap<String, Object>)inputMap.get(SEARCH_SC_TITLE01)).put("display_num", JCCWebCommon.getSearchConst(SEARCH_ROW_PER_PAGE));
		
		// ページリンク情報のマッピング
		JCCWebCommon.upmapperPageLinkInfo(this, SEARCH_SC_TITLE01, inputMap);
		
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		
		/**
		 * サービス処理結果の取得
		 */
		
		// 一覧情報のクリア
		X31SDataBeanAccessArray beanList = paramBean[0].getDataBeanArray(DKW06201SFConst.MDL_TG_KKTK_SBT_INFO);
		if(beanList.getCount() != 0)
		{
			
			beanList.clearArray();
		}
		
		// 下りマッピングの呼び出し
		mapper.getDKSV013201SC(paramBean, outputMap);

		// ページリンク情報のマッピング
		JCCWebCommon.downmapperPageLinkInfo(this, SEARCH_SC_TITLE01, outputMap);
		
		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(SEARCH_SC_TITLE01, outputMap);
		bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_3);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_2);
			return false;
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			//最大件数を超えた場合
			String[] msgRpl = new String[]{JCCWebCommon.getSearchConst(SEARCH_MAX_SHOW_CNT)};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msgRpl);
			bean.sendMessageString(DKW06201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_1);
			return  false;
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			//表示ページに該当するデータがない場合
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
			return  false;
		}
		else
		{
			JCCWebCommon.downmapperPageLinkInfo(this, SEARCH_SC_TITLE01, outputMap);
			
			// 行選択設定処理
			paramBean[0].sendMessageString(DKW06201SFConst.SELECTROW, X31CWebConst.DATABEAN_SET_VALUE, "0");
			
			// 行スタイル設定
			X31SDataBeanAccessArray listBean = bean.getDataBeanArray(DKW06201SFConst.MDL_TG_KKTK_SBT_INFO);
			int len = listBean.getCount();
			X31SDataBeanAccess childBean = null;
			for(int i = 0; i < len; i++)
			{
				childBean = listBean.getDataBean(i);
				childBean.sendMessageString(DKW06201SFConst.ROW_STYLE_03, X31CWebConst.DATABEAN_SET_VALUE
						, (i + 1) % 2 == 0 ? JTUStrConst.ROW_STYLE_EVEN : JTUStrConst.ROW_STYLE_ODD);
			}
			
			// 検索のコマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, "pageLink");
		}
		
		
		return true;
	}
	
	/**
	 * 新規登録遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean showNewCreate() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		/**
		 * DataBean設定処理
		 */
		
		saveSelectedInfo(JDKScreenConst.SCREEN_ID_DKW06202);
		
		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW06202, JDKScreenConst.SCREEN_ID_DKW06201);
		
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW06202);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW06202);
		
		return true;
	}
	
	/**
	 * 更新遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean showUpdate() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();

		/**
		 * DataBean設定処理
		 */
		saveSelectedInfo(JDKScreenConst.SCREEN_ID_DKW06205);
		
		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW06205, JDKScreenConst.SCREEN_ID_DKW06201);
		
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW06205);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW06205);
		
		return true;
	}
	
	/**
	 * 削除遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean showDelete() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		/**
		 * DataBean設定処理
		 */
		
		saveSelectedInfo(JDKScreenConst.SCREEN_ID_DKW06208);
		
		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW06208, JDKScreenConst.SCREEN_ID_DKW06201);
		
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW06208);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW06208);
		
		return true;
	}
	
	/**
	 * 検索条件を設定
	 * @param bean
	 */
	private void setBeanSearchInfo(X31SDataBeanAccess bean)
	{
		/**
		 * DataBean設定処理
		 */
		// 宅内機器型式コード
		X31SDataBeanAccess pulldown = this.getServiceFormBean().getDataBeanArray(DKW06201SFConst.TAKNKIKI_MODEL_INFO).getDataBean(0);
		String selectedCode = "";
		if ((Integer)pulldown.sendMessage(DKW06201SFConst.TAKNKIKI_MODEL_CD_LIST_01, X31CWebConst.DATABEAN_GET_COUNT) != 0)
		{
			selectedCode = pulldown.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD_LIST_01,
														X31CWebConst.DATABEAN_GET_VALUE,
														Integer.valueOf(pulldown.sendMessageString(DKW06201SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE)));
			
		}
		// 宅内機器型式コード保持
		bean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_SET_VALUE, selectedCode);

		// 機器提供種別コード
		pulldown = this.getServiceFormBean().getDataBeanArray(DKW06201SFConst.KKTK_SBT_INFO).getDataBean(0);
		selectedCode = "";
		if ((Integer)pulldown.sendMessage(DKW06201SFConst.KKTK_SBT_CD_LIST_02, X31CWebConst.DATABEAN_GET_COUNT) != 0)
		{
			selectedCode = pulldown.sendMessageString(DKW06201SFConst.KKTK_SBT_CD_LIST_02,
														X31CWebConst.DATABEAN_GET_VALUE,
														Integer.valueOf(pulldown.sendMessageString(DKW06201SFConst.INDEX_02, X31CWebConst.DATABEAN_GET_VALUE)));
			
		}
		// 機器提供種別コード保持
		bean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, selectedCode);

		// 型式対象機器提供種別適用開始年月日
		String tStaYmd = 
			bean.sendMessageString(DKW06201SFConst.TSTAYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW06201SFConst.TSTAYMD_MON, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW06201SFConst.TSTAYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		
		bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TSTAYMD , X31CWebConst.DATABEAN_SET_VALUE, tStaYmd);
		
		// 型式対象機器提供種別適用終了年月日
		String tEndYmd = 
			bean.sendMessageString(DKW06201SFConst.TENDYMD_YEAR, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW06201SFConst.TENDYMD_MON, X31CWebConst.DATABEAN_GET_VALUE) + 
			bean.sendMessageString(DKW06201SFConst.TENDYMD_DAY, X31CWebConst.DATABEAN_GET_VALUE);

		bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TENDYMD , X31CWebConst.DATABEAN_SET_VALUE, tEndYmd);

	}
	
	/**
	 * 検索条件をセッションに保持
	 */
	private void saveSessionSearchInfo()
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		/**
		 * セッション設定処理
		 */
		// 引き継ぎ情報を格納するMAP
		HashMap<String, Object> hktgiMap = new HashMap<String, Object>();
		
		// 検索済み
		hktgiMap.put(RESEARCH_FLG_NM, RE_SEARCH_FLG_TRUE);
		
		// 検索条件の保持
		hktgiMap.put("taknkiki_model_cd_re_search", 
				bean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put("kktk_sbt_cd_re_search", 
				bean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put("mdl_tg_kktk_sbt_tstaymd_re_search", 
				bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TSTAYMD, X31CWebConst.DATABEAN_GET_VALUE));
		hktgiMap.put("mdl_tg_kktk_sbt_tendymd_re_search", 
				bean.sendMessageString(DKW06201SFConst.MDL_TG_KKTK_SBT_TENDYMD, X31CWebConst.DATABEAN_GET_VALUE));

		/**
		 * 引継情報の設定
		 */
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW06201, hktgiMap);
	}

	
	/**
	 * 選択された情報が存在すれば初期値に設定
	 * @param bean
	 */
	private void setDispRadio(X31SDataBeanAccess bean)
	{
		
		String model_cd = bean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD_SAVE, X31CWebConst.DATABEAN_GET_VALUE);
		String sbt_cd = bean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD_SAVE, X31CWebConst.DATABEAN_GET_VALUE);

				String choice = "0";
		
		if(model_cd == null)
		{
			bean.sendMessageString(DKW06201SFConst.SELECTROW, X31CWebConst.DATABEAN_SET_VALUE, choice);//
			return;
		}
		
		X31SDataBeanAccessArray listDataBean = bean.getDataBeanArray(DKW06201SFConst.MDL_TG_KKTK_SBT_INFO);
		int len = listDataBean.getCount();
		X31SDataBeanAccess childBean = null;
		String tmp_model_cd = "";
		String tmp_sbt_cd = "";
		for(int i = 0; i < len; i++)
		{
			childBean = listDataBean.getDataBean(i);
			tmp_model_cd = childBean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			tmp_sbt_cd = childBean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
			if(model_cd.equals(tmp_model_cd) && sbt_cd.equals(tmp_sbt_cd))
			{
				choice = String.valueOf(i);
				break;
			}
		}
		
		bean.sendMessageString(DKW06201SFConst.SELECTROW, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(choice));
		return;
		
	}
	
	/**
	 * 選択された情報をセッションに保持
	 * @param screenId
	 */
	private void saveSelectedInfo(String screenId)
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccessArray listDataBean = bean.getDataBeanArray(DKW06201SFConst.MDL_TG_KKTK_SBT_INFO);
		
		int len = listDataBean.getCount();

		// 引き継ぎ情報を格納するMAP
		HashMap<String, Object> hktgiMap = JCCWebCommon.getScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW06201);

		//登録時は空のｓaveが必要
		if(JDKScreenConst.SCREEN_ID_DKW06202.equals(screenId))
		{
			// 登録時
			hktgiMap.put("taknkiki_model_cd_save", "");
			hktgiMap.put("kktk_sbt_cd_save", "");
		}
		
		// 一覧選択情報の保持
		if(len > 0)
		{
			// 検索結果一覧が表示されている場合、以下の処理を行う
			X31SDataBeanAccessArray beanList = bean.getDataBeanArray(DKW06201SFConst.MDL_TG_KKTK_SBT_INFO);
			
			X31SDataBeanAccess childbean = null;
			
			Long li = bean.sendMessageLong(DKW06201SFConst.SELECTROW, X31CWebConst.DATABEAN_GET_VALUE);
						
			childbean = beanList.getDataBean(li.intValue());
			
			/**
			 * セッション設定処理
			 */
			if(JDKScreenConst.SCREEN_ID_DKW06202.equals(screenId))
			{
				// 登録時
				hktgiMap.put("taknkiki_model_cd_save"
						, childbean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_GET_VALUE));
				hktgiMap.put("kktk_sbt_cd_save"
						, childbean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));
			}
			if(JDKScreenConst.SCREEN_ID_DKW06205.equals(screenId))
			{
				// 更新時
				hktgiMap.put("taknkiki_model_cd_save"
						, childbean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_GET_VALUE));
				hktgiMap.put("kktk_sbt_cd_save"
						, childbean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));

			}
			else if(JDKScreenConst.SCREEN_ID_DKW06208.equals(screenId))
			{
				// 削除時
				hktgiMap.put("taknkiki_model_cd_save"
						, childbean.sendMessageString(DKW06201SFConst.TAKNKIKI_MODEL_CD, X31CWebConst.DATABEAN_GET_VALUE));
				hktgiMap.put("kktk_sbt_cd_save"
						, childbean.sendMessageString(DKW06201SFConst.KKTK_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));
			}
			
		}
		
		/**
		 * 引継情報の設定
		 */
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW06201, hktgiMap);
		

	}
}
	
