/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：認証ID詳細情報
*   ソースファイル名：KKW02528SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年10月24日
*＜機能概要＞
*   
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00       2011/10/24   FJ          新規作成
*   v5.00       2013/07/23   FJ)砂川     【IT1-2013-0001425】ページングの不備対応
*
**********************************************************************/

package eo.web.webview.KKW02528SF;

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 eo.common.constant.JPCModelConstant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0389_KKSV0389OPDBMapper;


/**
 * <dd>クラス名：KKW02528SFLogic
 * <dd>クラス説明：認証IDの履歴情報を照会する。
 * <dd>備考：なし。
 * @version 1.00.00 2011/10/24
 * @author FJ
 */
@SuppressWarnings("serial")
public class KKW02528SFLogic extends JCCWebBusinessLogic 
{
	/** 空文字*/
	private static final String STR_EMPTY = "";
	/** ゼロ*/
	private static final String STR_ZERO = "0";
	/** 表示件数*/
	private static final String STR_DISPLAY_NUM = "display_num";
	/** 表示ページ番号*/
	private static final String STR_DISPLAY_PAGE_NUM = "display_page_num";
	/** サーチコマンド(paging)*/
	private static final String SEARCH_COMMAND_PAGING = "paging";
	/** サービスコンポーネント(KKSV038901SC)*/
	private static final String SVC_COMP_KKSV038901SC = "KKSV038901SC";
	
	
	/**
	 * <dd>メソッド名：初期表示処理
	 * <dd>メソッド説明：認証ID詳細情報の初期表示を行う。
	 * <dd>備考：なし。
	 * @return boolean　true
	 * @throws Exception 例外
	 */
	public boolean actionInit() throws Exception 
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 引継情報を取得
		JCCWebCommon.getScreenInfo(this);
		X31SDataBeanAccessArray custKeiHktgiList =  bean.getDataBeanArray(KKW02528SFConst.CUST_KEI_HKTGI_LIST);
		X31SDataBeanAccess custKeiHktgiInf = custKeiHktgiList.getDataBean(0);
		String svcKeiNo = custKeiHktgiInf.sendMessageString(KKW02528SFConst.SVC_KEI_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 引継情報をDataBeanに設定
		bean.sendMessageString(KKW02528SFConst.SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, svcKeiNo);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// 一覧検索処理
		searchList(bean, true);
		
		// 遷移先情報の設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW02528);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW02528);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
		
	}
	
	/**
	 * <dd>メソッド名：ページング処理
	 * <dd>メソッド説明：eo電話番号発番登録画面でページングリンク時の処理を行う。
	 * <dd>備考：なし。
	 * @return boolean true
	 * @throws Exception 例外
	 */
	public boolean actionPaging() throws Exception 
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		// 2013/7/23 IT1-2013-0001425 Add Start
		// 認証ID内訳リストの初期化
		X31SDataBeanAccessArray ninshoIdUchwkList = bean.getDataBeanArray(KKW02528SFConst.NINSHO_ID_UCWK_LIST);
		ninshoIdUchwkList.clearArray();
		// 2013/7/23 IT1-2013-0001425 Add End
		
		// 一覧検索処理
		searchList(bean, false);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * <dd>メソッド名：一覧検索処理
	 * <dd>メソッド説明：一覧検索を行う。
	 * <dd>備考：なし。
	 * @param bean サービスフォームBean
	 * @param pageReset ページングのリセット
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private void searchList(X31SDataBeanAccess bean, boolean pageReset) throws Exception 
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>(); // パラメタ設定用マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>(); // 入力情報格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>(); // 結果格納用マップ
		X31SDataBeanAccess[] paramBean = {bean};
		
		// パラメータ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JKKCommonConst.UCID_KKSV0389);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, JKKCommonConst.OPID_KKSV0389OP);
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0389_KKSV0389OPDBMapper mapper = new KKSV0389_KKSV0389OPDBMapper();
		mapper.setKKSV038901SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		//ページ番号のリセット
		if (pageReset) 
		{
			JCCWebCommon.clearPageLinkInfo(this, JKKScreenConst.SCREEN_ID_KKW02528);
		}
		
		// ページリンク情報の上りマッピング
		// 2013/7/23 IT1-2013-0001425 Mod Start
//		JCCWebCommon.upmapperPageLinkInfo(this, STR_ZERO, SVC_COMP_KKSV038901SC, inputMap);
		JCCWebCommon.upmapperPageLinkInfo(this, SVC_COMP_KKSV038901SC, inputMap, JKKScreenConst.SCREEN_ID_KKW02528);
		// 2013/7/23 IT1-2013-0001425 Mod End
		
		// 認証ID情報詳細初期表示サービスを実施
		invokeService(paramMap, inputMap, outputMap);
		// TODO_ SI待ち
//		test(outputMap);
		
		// ページング情報の設定
		// 2013/7/23 IT1-2013-0001425 Mod Start
//		JCCWebCommon.downmapperPageLinkInfo(this, STR_ZERO, SVC_COMP_KKSV038901SC, outputMap);
		JCCWebCommon.downmapperPageLinkInfo(this, SVC_COMP_KKSV038901SC, outputMap, JKKScreenConst.SCREEN_ID_KKW02528);
		// 2013/7/23 IT1-2013-0001425 Mod End
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, SEARCH_COMMAND_PAGING);
		
		// 取得情報の下りマッピング
		mapper.getKKSV038901SC(paramBean, outputMap);

		// 認証ID内訳リストの補完処理
		X31SDataBeanAccessArray ninshoIdUchwkList = bean.getDataBeanArray(KKW02528SFConst.NINSHO_ID_UCWK_LIST);
		HashMap<String, Object> pageInfoMap = (HashMap<String, Object>)inputMap.get(SVC_COMP_KKSV038901SC);
		String displayNum = (String)pageInfoMap.get(STR_DISPLAY_NUM);
		String displayPageNum = (String)pageInfoMap.get(STR_DISPLAY_PAGE_NUM);
		int no = (Integer.parseInt(displayPageNum) - 1) * Integer.parseInt(displayNum) + 1;
		for (int i = 0; i < ninshoIdUchwkList.getCount(); i++)
		{
			X31SDataBeanAccess ninshoIdUchwk = ninshoIdUchwkList.getDataBean(i);
			
			// No
			ninshoIdUchwk.sendMessageString(KKW02528SFConst.NO_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(no));
			// 利用開始日
			ninshoIdUchwk.sendMessageString(KKW02528SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_SET_VALUE, 
					JPCUtilCommon.formatDate(ninshoIdUchwk.sendMessageString(KKW02528SFConst.USE_STAYMD_02, X31CWebConst.DATABEAN_GET_VALUE)));
			// 利用終了日
			String useEndymd = ninshoIdUchwk.sendMessageString(KKW02528SFConst.USE_ENDYMD_02, X31CWebConst.DATABEAN_GET_VALUE);
			if (JKKCommonConst.MAX_YMD.equals(useEndymd))
			{
				ninshoIdUchwk.sendMessageString(KKW02528SFConst.USE_ENDYMD_02, X31CWebConst.DATABEAN_SET_VALUE, STR_EMPTY);
			}
			else
			{
				ninshoIdUchwk.sendMessageString(KKW02528SFConst.USE_ENDYMD_02, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.formatDate(useEndymd));
			}
			// 奇数行フラグ
			ninshoIdUchwk.sendMessageBoolean(KKW02528SFConst.KISU_GYO_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, (i % 2 == 0));
		
			// Noを加算
			no++;
		}
		
	}

}
