/*********************************************************************
* All Rights reserved.Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：顧客管理システム
*   モジュール名    ：eoID変更履歴一覧照会
*   ソースファイル名：CKW02601SFLogic.java
*   作成者          ：FJ
*   日付            ：2011年12月03日
*＜機能概要＞
*   eoID変更履歴一覧照会部品です。
*＜修正履歴＞
*	バージョン	修正日			修正者		修正内容
*	v1.00		2011/12/03		FJ）		新規作成
*	v4.00		2013/01/30		FJ)近藤		IT1-2013-0000180 ページリンク情報取得方法改修
*	v5.00		2013/09/17		FJ)砂川		OM-2013-0002212 対応履歴Ｓから呼び出される場合の対応
*	v8.00		2014/03/12		FJ)鈴木		IT2-2014-0000161 ページリンク情報が正しく取得できない場合の対処を追加
*
**********************************************************************/
package eo.web.webview.CKW02601SF;

import java.util.HashMap;
import com.fujitsu.futurity.common.JSYwebLog;
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.X33CUtil;

import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JKKCommonConst;
//import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.CKSV0022_CKSV0022OPDBMapper;
import eo.web.webview.mapping.CKSV0023_CKSV0023OPDBMapper;

/**
 * eoID変更履歴一覧照会を行います。<p>
 * <BR>
 * @author FJ
 */
@SuppressWarnings("serial")
public class CKW02601SFLogic extends JCCWebBusinessLogic
{
	/** eoID変更履歴一覧照会画面 最大検索件数 外部定義キー */
	private static final String MAX_SHOW_CNT_KEY = "CKW02601_MAX_SHOW_CNT";
	
	/** eoID変更履歴一覧照会画面 一覧表示件数 外部定義キー */
	private static final String ROW_PER_PAGE_KEY = "CKW02601_ROW_PER_PAGE";
	
	/** eoID変更履歴一覧照会画面 最大検索件数 */
	private String max_show_cnt = null;
	
	/** eoID変更履歴一覧照会画面 一覧表示件数 */
	private String row_per_page = null;
	
	/** ページングのCCタイトル */
	private static final String PAGING_TEMPLATE_ID = "EoidCgrrkIcrnShokaiCC";
	
	/** ページングのコマンドマップID */
	private static final String PAGING_COMMAND_ID = "paging";
	
	/** ページングの表番号 */
	private static final String TABLE_INDEX_0 = "0";
	
//	/** セッションページングマップ */
//	private static final String MENU_OPEN = "menu_open";
	
	/** ソート区分：昇順 */
	private static final String SORT_DIV_ASC = "1";
	
	/** ソート区分：降順 */
	private static final String SORT_DIV_DESC = "2";
	
	/** ソート番号：変更日時降順 */
	private static final String SORT_NUM_CHG_YMD_DESC = "1";
	
	/** ソート番号：変更日時昇順 */
	private static final String SORT_NUM_CHG_YMD_ASC = "2";
	
	/**
	 * 初期表示処理<br>
	 * <br>
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionInit() throws Exception
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// セッション情報取得・引継情報をDataBeanにセット
		getSessionCKW02601SFBean(paramBean[0]);
		
		// 共有フォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		// 自画面名設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_NAME_CKW02601);
		
		// 運用年月日 ← JCCWebCommon.getOpeDate
		String unyo_ymd = JCCWebCommon.getOpeDate(this, null);
		paramBean[0].sendMessageString(CKW02601SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, unyo_ymd);
		// 一覧表示フラグ ← TRUE
		paramBean[0].sendMessageBoolean(CKW02601SFConst.ICRN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		// ソート区分 ← 降順
		paramBean[0].sendMessageString(CKW02601SFConst.SORT_DIV, X31CWebConst.DATABEAN_SET_VALUE, SORT_DIV_DESC);
		
		// eoID変更履歴一覧情報のクリア
		paramBean[0].getDataBeanArray(CKW02601SFConst.EOID_CHG_RRK_INFO).clearArray();
		
		// eoID変更履歴一覧照会初期表示サービス
		paramMap = new HashMap<String, Object>(); // パラメタ設定用マップ
		inputMap = new HashMap<String, Object>(); // 入力用マップ
		outputMap = new HashMap<String, Object>(); // 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0022");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		CKSV0022_CKSV0022OPDBMapper mapper = new CKSV0022_CKSV0022OPDBMapper();
		
		mapper.setCKSV002201SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		mapper.setCKSV002202SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCKSV002203SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setEoidCgrrkIcrnShokaiCC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, TABLE_INDEX_0, PAGING_TEMPLATE_ID, inputMap);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// eoID変更履歴一覧照会サービス
		invokeService(paramMap, inputMap, outputMap);
		
		// 取得情報の下りマッピング
		mapper.getCKSV002201SC(paramBean, outputMap);
		mapper.getCKSV002202SC(paramBean, outputMap);
		mapper.getCKSV002203SC(paramBean, outputMap);
		mapper.getEoidCgrrkIcrnShokaiCC(paramBean, outputMap);
		
		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, TABLE_INDEX_0, PAGING_TEMPLATE_ID, outputMap);
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, PAGING_COMMAND_ID);
		
		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(PAGING_TEMPLATE_ID, outputMap);
		
		// 検索結果が0件の場合の処理
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			// エラーメッセージ
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			// 一覧表示フラグ
			paramBean[0].sendMessageBoolean(CKW02601SFConst.ICRN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		// 検索結果が最大検索件数超えの場合の処理
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			// 処理なし（CCから最大検索件数分のリストが返却されることが前提）
		}
		// 表示ページに該当するデータがない場合の処理
		else if(JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			// 処理なし
		}
		
		// ページング処理を実行
		actionPaging();
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 検索ボタン押下<br>
	 * @return 正常／異常
	 * @throws Exception
	 */
	public boolean actionSearch() throws Exception
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 一覧表示フラグ
		paramBean[0].sendMessageBoolean(CKW02601SFConst.ICRN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		
		// eoID変更履歴一覧照会サービス
		paramMap = new HashMap<String, Object>(); // パラメタ設定用マップ
		inputMap = new HashMap<String, Object>(); // 入力用マップ
		outputMap = new HashMap<String, Object>(); // 結果格納用マップ
		
		// 変更履歴コード
		String cgrrk_cd = getPulldownCode(CKW02601SFConst.KN_CGRRK_INFO);
		paramBean[0].sendMessageString(CKW02601SFConst.KN_CGRRK_CD, X31CWebConst.DATABEAN_SET_VALUE, cgrrk_cd);
		
		// 変更項目コード
		String chg_kmk_cd = getPulldownCode(CKW02601SFConst.KN_CHG_KMK_INFO);
		paramBean[0].sendMessageString(CKW02601SFConst.KN_CHG_KMK_CD, X31CWebConst.DATABEAN_SET_VALUE, chg_kmk_cd);
		
		// 変更日時TO
		String chg_year_to = paramBean[0].sendMessageString(CKW02601SFConst.CHG_YEAR_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_mon_to = paramBean[0].sendMessageString(CKW02601SFConst.CHG_MON_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_day_to = paramBean[0].sendMessageString(CKW02601SFConst.CHG_DAY_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_hh_to = paramBean[0].sendMessageString(CKW02601SFConst.CHG_HH_TO, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_mm_to = paramBean[0].sendMessageString(CKW02601SFConst.CHG_MM_TO, X31CWebConst.DATABEAN_GET_VALUE);
		// 年月日に入力があり、時分に入力がない場合、時分は0000で埋める
		if(!"".equals(chg_year_to + chg_mon_to + chg_day_to) && "".equals(chg_hh_to + chg_mm_to))
		{
			chg_hh_to = "00";
			chg_mm_to = "00";
		}
		String chg_to = chg_year_to + chg_mon_to + chg_day_to + chg_hh_to + chg_mm_to;
		// 入力があれば、秒とミリ秒を付加する
		if(chg_to != null && !("".equals(chg_to)))
		{
			String chg_ss_to = "00";
			String chg_sss_to = "000";
			chg_to = chg_to + chg_ss_to + chg_sss_to;
		}
		paramBean[0].sendMessageString(CKW02601SFConst.CHG_TO, X31CWebConst.DATABEAN_SET_VALUE, chg_to);
		
		// 変更日時FROM
		String chg_year_from = paramBean[0].sendMessageString(CKW02601SFConst.CHG_YEAR_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_mon_from = paramBean[0].sendMessageString(CKW02601SFConst.CHG_MON_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_day_from = paramBean[0].sendMessageString(CKW02601SFConst.CHG_DAY_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_hh_from = paramBean[0].sendMessageString(CKW02601SFConst.CHG_HH_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		String chg_mm_from = paramBean[0].sendMessageString(CKW02601SFConst.CHG_MM_FROM, X31CWebConst.DATABEAN_GET_VALUE);
		// 年月日に入力があり、時分に入力がない場合、時分は0000で埋める
		if(!"".equals(chg_year_from + chg_mon_from + chg_day_from) && "".equals(chg_hh_from + chg_mm_from))
		{
			chg_hh_from = "00";
			chg_mm_from = "00";
		}
		String chg_from = chg_year_from + chg_mon_from + chg_day_from + chg_hh_from + chg_mm_from;
		// 入力があれば、秒とミリ秒を付加する
		if(chg_from != null && !("".equals(chg_from)))
		{
			String chg_ss_from = "00";
			String chg_sss_from = "000";
			chg_from = chg_from + chg_ss_from + chg_sss_from;
		}
		paramBean[0].sendMessageString(CKW02601SFConst.CHG_FROM, X31CWebConst.DATABEAN_SET_VALUE, chg_from);
		
		// ソート区分 ← 降順
		paramBean[0].sendMessageString(CKW02601SFConst.SORT_DIV, X31CWebConst.DATABEAN_SET_VALUE, SORT_DIV_DESC);
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0023");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		CKSV0023_CKSV0023OPDBMapper mapper = new CKSV0023_CKSV0023OPDBMapper();
		
		mapper.setEoidCgrrkIcrnShokaiCC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// eoID変更履歴一覧情報のクリア
		paramBean[0].getDataBeanArray(CKW02601SFConst.EOID_CHG_RRK_INFO).clearArray();
		
		// ページ情報のクリア
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW02601 + "0PJP");
		
		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, TABLE_INDEX_0, PAGING_TEMPLATE_ID, inputMap);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// eoID変更履歴一覧照会サービス
		invokeService(paramMap, inputMap, outputMap);
		
		// 取得情報の下りマッピング
		mapper.getEoidCgrrkIcrnShokaiCC(paramBean, outputMap);
		
		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(PAGING_TEMPLATE_ID, outputMap);
		
		// 検索結果が0件の場合の処理
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			// エラーメッセージ
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			// 一覧表示フラグ
			paramBean[0].sendMessageBoolean(CKW02601SFConst.ICRN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		// 検索結果が最大検索件数超えの場合の処理
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			// エラーメッセージ
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, new String[]{getMaxShowCnt()});
			// 一覧表示フラグ
			paramBean[0].sendMessageBoolean(CKW02601SFConst.ICRN_DISP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		// 表示ページに該当するデータがない場合の処理
		else if(JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			// 処理なし
		}
		
		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, TABLE_INDEX_0, PAGING_TEMPLATE_ID, outputMap);
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, PAGING_COMMAND_ID);
		
		// ページング処理を実行
		actionPaging();
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * ページングリンク処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	@SuppressWarnings("unchecked")
	public boolean actionPaging() throws Exception
	{
// IT2-2014-0000161 2014.03.12 add start
		int displayPageNum = 1;
		try {
// IT2-2014-0000161 2014.03.12 add end
		// 表示ページ番号
		// セッションID取得
		String sessionId = this.getSession().getViewParamId().getSessionID();
		// セッションのページリンク情報格納Mapから表示ページ番号を取得
		HashMap pageLinkInfoBaseMap = (HashMap)X33CUtil.getSession(sessionId).getSession().getAttribute("pageLinkInfo");
		// v4.00 IT1-2013-0000180 MOD START
//		HashMap menuMap = (HashMap)pageLinkInfoBaseMap.get(JZMScreenConst.SCREEN_ID_ZMW06901 + "0PJP_" + MENU_OPEN);
		HashMap menuMap = (HashMap)pageLinkInfoBaseMap.get("MenuFrame_child");
		// 2013/9/17 OM-2013-0002212 Add Start
		if(null == menuMap)
		{
			// 対応履歴Ｓからの呼び出し
			menuMap = (HashMap)pageLinkInfoBaseMap.get("MenuFrame_CR_child");
		}
		// 2013/9/17 OM-2013-0002212 Add End
		// v4.00 IT1-2013-0000180 MOD END
		HashMap targetPageLinkInfoMap = (HashMap)menuMap.get(JCKScreenConst.SCREEN_ID_CKW02601 + "0PJP_" + TABLE_INDEX_0);
// IT2-2014-0000161 2014.03.12 mod start
//		int displayPageNum = Integer.parseInt((String)targetPageLinkInfoMap.get("display_page_num"));
		displayPageNum = Integer.parseInt((String)targetPageLinkInfoMap.get("display_page_num"));
// IT2-2014-0000161 2014.03.12 mod end
// IT2-2014-0000161 2014.03.12 add start
		} catch (Exception e) {
			displayPageNum = 1;
		}
// IT2-2014-0000161 2014.03.12 add start
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 表示件数
		int disp_cnt = Integer.parseInt(getRowPerPage());
		
		// 取得開始配列番号
		int start_num = (displayPageNum - 1) * disp_cnt;
		
		// 取得終了配列番号
		int end_num = start_num + disp_cnt - 1;
		
		// eoID変更履歴一覧情報(全件)
		X31SDataBeanAccessArray eoid_chg_rrk_list =  paramBean[0].getDataBeanArray(CKW02601SFConst.EOID_CHG_RRK_INFO);
		
		// eoID変更履歴一覧情報(全件)の件数
		int eoid_chg_rrk_list_cnt = eoid_chg_rrk_list.getCount();
		
		// 取得終了配列番号が最大件数より多い場合
		if(end_num > eoid_chg_rrk_list_cnt - 1)
		{
			// 取得終了配列番号は最大件数までとする
			end_num = eoid_chg_rrk_list_cnt - 1;
		}
		
		//  eoID変更履歴情報一覧表示用のクリア
		paramBean[0].getDataBeanArray(CKW02601SFConst.EOID_CHG_RRK_INFO_ICRN_DISP).clearArray();
		
		// eoID変更履歴情報一覧表示用
		X31SDataBeanAccessArray eoid_chg_rrk_list_disp =  paramBean[0].getDataBeanArray(CKW02601SFConst.EOID_CHG_RRK_INFO_ICRN_DISP);
		
		// CCから取得した全件のデータのうち、一覧表示用分取得する
		// i は 0 〜 終了番号 - 開始番号まで
		for(int i = 0; i <= end_num - start_num; i++)
		{
			// 一覧表示用リストに要素を追加する
			eoid_chg_rrk_list_disp.addDataBean();
			// 追加した要素を取得する
			X31SDataBeanAccess eoid_chg_rrk_list_disp_subbean = eoid_chg_rrk_list_disp.getDataBean(i);
			// eoID変更履歴一覧情報(全件)の要素を取得する
			X31SDataBeanAccess eoid_chg_rrk_list_subbean = eoid_chg_rrk_list.getDataBean(start_num + i);
			
			// 一覧表示用の要素に、一覧情報(全件)の要素を設定
			setEoidChgRrkInfoCopy(eoid_chg_rrk_list_disp_subbean, eoid_chg_rrk_list_subbean);
		}
		
		return true;
	}
	
	/**
	 * ソート処理を行います。<br>
	 * eoID変更履歴情報（全件）をソートします。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionSort() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ソート番号
		String sort_num = paramBean[0].sendMessageString(CKW02601SFConst.SORT_NUM, X31CWebConst.DATABEAN_GET_VALUE);
		// ソート区分
		String sort_div = paramBean[0].sendMessageString(CKW02601SFConst.SORT_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		// !!!!! ソート項目は変更日時のみしかない前提とする !!!!!
		// ソート番号が変更日時降順
		if(SORT_NUM_CHG_YMD_DESC.equals(sort_num))
		{
			// 変更日時降順が指定され、現在の並び順が変更日時昇順の場合
			if(SORT_DIV_ASC.equals(sort_div))
			{
				// eoID変更履歴一覧情報の並び順を逆転する
				setEoidChgRrkInfoGyktn();
				// ソート区分に降順を設定（今の並び順を降順で記憶）
				paramBean[0].sendMessageString(CKW02601SFConst.SORT_DIV, X31CWebConst.DATABEAN_SET_VALUE, SORT_DIV_DESC);
			}
			// 変更日時降順が指定され、現在の並び順が変更日時降順なら何もしない
		}
		// ソート番号が変更日時昇順
		else if(SORT_NUM_CHG_YMD_ASC.equals(sort_num))
		{
			// 変更日時昇順が指定され、現在の並び順が変更日時降順の場合
			if(SORT_DIV_DESC.equals(sort_div))
			{
				// eoID変更履歴一覧情報の並び順を逆転する
				setEoidChgRrkInfoGyktn();
				// ソート区分に昇順を設定（今の並び順を昇順で記憶）
				paramBean[0].sendMessageString(CKW02601SFConst.SORT_DIV, X31CWebConst.DATABEAN_SET_VALUE, SORT_DIV_ASC);
			}
			// 変更日時昇順が指定され、現在の並び順が変更日時昇順なら何もしない
		}
		
		// ページング処理を実行
		actionPaging();
		
		return true;
	}
	
	/**
	 * 引き継ぎ情報を取得し、eoID変更履歴一覧照会サービスフォームBeanに設定する
	 * @param  svcFormBean  DataBeanアクセスクラス
	 * @throws Exception
	 */
	private void getSessionCKW02601SFBean(X31SDataBeanAccess svcFormBean) throws Exception
	{
		//セッションデータ取得
		JCCWebCommon.getScreenInfo(this);
		
		// 引継情報を取得
		X31SDataBeanAccessArray custKeiHktgiList =  svcFormBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		
		// ＳＹＳＩＤ
		String sys_id = custKeiHktgiInf.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継情報をDataBeanに設定
		svcFormBean.sendMessageString(CKW02601SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, sys_id); // ＳＹＳＩＤ
	}
	
	/**
	 * プルダウンの選択コードを取得する。
	 * @param key_info:取得するプルダウン情報のKey
	 * @return value:プルダウン選択コード
	 * @throws Exceptionがスローされます
	 */
	private String getPulldownCode(String key_info) throws Exception
	{
		String value = null; // 選択名称
		String index = null; // 添え字
		
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// プルダウン取得用作業変数
		X31SDataBeanAccessArray list = null;
		X31SDataBeanAccess subbean = null;
		
		list = bean.getDataBeanArray(key_info);
		subbean = list.getDataBean(0);
		index = subbean.sendMessageString(CKW02601SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		if(index == null)
		{
			index = "0";
		}
		value = subbean.sendMessageString(CKW02601SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
		
		return value;
	}
	
	/**
	 * eoID変更履歴一覧照会画面の最大検索件数を返します。
	 * @return eoID変更履歴一覧照会画面の最大検索件数
	 */
	private String getMaxShowCnt()
	{
		if(max_show_cnt == null)
		{
			max_show_cnt = JCCWebCommon.getSearchConst(MAX_SHOW_CNT_KEY);
		}
		return max_show_cnt;
	}
	
	/**
	 * eoID変更履歴一覧照会画面の一覧表示件数を返します。
	 * @return eoID変更履歴一覧照会画面の一覧表示件数
	 */
	private String getRowPerPage()
	{
		if(row_per_page == null)
		{
			row_per_page = JCCWebCommon.getSearchConst(ROW_PER_PAGE_KEY);
		}
		return row_per_page;
	}
	
	/**
	 * eoID変更履歴情報の要素の全項目を設定します。
	 * @param set_s 設定先DataBean
	 * @param set_m 設定元DataBean
	 */
	private void setEoidChgRrkInfoCopy(X31SDataBeanAccess set_s, X31SDataBeanAccess set_m)
	{
		// コピー元要素の全項目を取得
		String chg_ymd = set_m.sendMessageString(CKW02601SFConst.CHG_YMD_02, X31CWebConst.DATABEAN_GET_VALUE); // 変更日時
		String eoid = set_m.sendMessageString(CKW02601SFConst.EOID_02, X31CWebConst.DATABEAN_GET_VALUE);       // eoID
		String busho = set_m.sendMessageString(CKW02601SFConst.BUSHO_02, X31CWebConst.DATABEAN_GET_VALUE);     // 部署名
		String tntsha = set_m.sendMessageString(CKW02601SFConst.TNTSHA_02, X31CWebConst.DATABEAN_GET_VALUE);   // 担当者
		String cgrrk = set_m.sendMessageString(CKW02601SFConst.CGRRK_02, X31CWebConst.DATABEAN_GET_VALUE);     // 変更履歴
		String chg_kmk = set_m.sendMessageString(CKW02601SFConst.CHG_KMK_02, X31CWebConst.DATABEAN_GET_VALUE); // 変更項目
		String chbf = set_m.sendMessageString(CKW02601SFConst.CHBF_02, X31CWebConst.DATABEAN_GET_VALUE);       // 変更前
		String chaf = set_m.sendMessageString(CKW02601SFConst.CHAF_02, X31CWebConst.DATABEAN_GET_VALUE);       // 変更後
		
		// コピー先要素にコピー元要素の全項目を設定
		set_s.sendMessageString(CKW02601SFConst.CHG_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, chg_ymd);         // 変更日時
		set_s.sendMessageString(CKW02601SFConst.EOID_02, X31CWebConst.DATABEAN_SET_VALUE, eoid);               // eoID
		set_s.sendMessageString(CKW02601SFConst.BUSHO_02, X31CWebConst.DATABEAN_SET_VALUE, busho);             // 部署名
		set_s.sendMessageString(CKW02601SFConst.TNTSHA_02, X31CWebConst.DATABEAN_SET_VALUE, tntsha);           // 担当者
		set_s.sendMessageString(CKW02601SFConst.CGRRK_02, X31CWebConst.DATABEAN_SET_VALUE, cgrrk);             // 変更履歴
		set_s.sendMessageString(CKW02601SFConst.CHG_KMK_02, X31CWebConst.DATABEAN_SET_VALUE, chg_kmk);         // 変更項目
		set_s.sendMessageString(CKW02601SFConst.CHBF_02, X31CWebConst.DATABEAN_SET_VALUE, chbf);               // 変更前
		set_s.sendMessageString(CKW02601SFConst.CHAF_02, X31CWebConst.DATABEAN_SET_VALUE, chaf);               // 変更後
	}
	
	/**
	 * eoID変更履歴情報（全件）の要素の並び順を逆転します。<br>
	 * 例<br>
	 * 1:要素A、2:要素B、3:要素C、4:要素D、5:要素E、6:要素F<br>
	 *                          ↓<br>
	 * 1:要素F、2:要素E、3:要素D、4:要素C、5:要素B、6:要素A<br>
	 */
	private void setEoidChgRrkInfoGyktn()
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// eoID変更履歴情報
		X31SDataBeanAccessArray eoid_chg_rrk_list =  paramBean[0].getDataBeanArray(CKW02601SFConst.EOID_CHG_RRK_INFO);
		
		// eoID変更履歴情報の要素数
		int list_num = eoid_chg_rrk_list.getCount();
		
		// 並び替え処理
		// 要素の追加を行っているが、コピー終了後要素の削除を行っている為
		// ループを回っても新しい要素の位置は必ずlist_num( - 1 + 1 )になる
		for(int i = 0; i < list_num; i++)
		{
			int new_bean_pos = list_num;         // 移動先要素配列番号
			int old_bean_pos = list_num - 1 - i; // 移動元要素配列番号
			eoid_chg_rrk_list.addDataBean();      // 新しい要素の追加（移動先）
			X31SDataBeanAccess new_bean = eoid_chg_rrk_list.getDataBean(new_bean_pos); // 移動先要素
			X31SDataBeanAccess old_bean = eoid_chg_rrk_list.getDataBean(old_bean_pos); // 移動元要素
			setEoidChgRrkInfoCopy(new_bean, old_bean); // 移動先要素の項目に、移動元要素の項目を設定
			eoid_chg_rrk_list.removeDataBean(old_bean_pos); // 移動完了したので、移動元要素を削除
		}
	}
}
