/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：TUW03205SFLogic
*	ソースファイル名：TUW03205SFLogic.java
*	作成者			：FJ
*	日付			：2011年10月04日
*＜機能概要＞
*	VIEWロジッククラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/10/04	FJ)北村		新規作成
*
**********************************************************************/

package eo.web.webview.TUW03205SF;

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 eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.TUW03205SF.TUW03205SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JTUWebCommon;
import eo.web.webview.common.JTUScreenConst;
import eo.web.webview.mapping.TUSV0073_TUSV0073OPDBMapper;
import eo.web.webview.mapping.TUSV0074_TUSV0074OPDBMapper;

/**
 * TUW03205のビューロジック
 * @author FJ
 *
 */
public class TUW03205SFLogic extends JCCWebBusinessLogic
{
	/** メッセージ置換文字列  */
	private static final 	String[] MESSAGE_VALUE = {"番ポ工事エリアの更新"};
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_init() throws Exception
	{
		return tuw03205_init();
	}
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	private boolean tuw03205_init() throws Exception
	{

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * DataBean設定処理
		 */
		// セッション情報取得
		HashMap<String, Object> searchInfo = JTUWebCommon.getScreenInfo(this);
		
		bean.sendMessageString(TUW03205SFConst.AREACD, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW03205SFConst.AREACD).toString());
		
		bean.sendMessageString(TUW03205SFConst.SHINAI_KYOKU_NO, X31CWebConst.DATABEAN_SET_VALUE
				, searchInfo.get(TUW03205SFConst.SHINAI_KYOKU_NO).toString());
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "TUSV0074");
		
		// マッピングクラスのインスタンスを生成
		TUSV0074_TUSV0074OPDBMapper mapper = new TUSV0074_TUSV0074OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setTUSV007401SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setTUSV007402SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JTUWebCommon.setMessageInfo(this, msgResult);
			
			// 遷移先の情報を共有フォームBeanの項目に設定する。
			JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
			
			setTransferPageId(JTUWebCommon.getScreenId(this) + "0PJP");
			
			return true;
		}
		
		/**
		 * サービス処理結果の取得
		 */
		
		/*
		 * 下りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.getTUSV007401SC(paramBean, outputMap);
		mapper.getTUSV007402SC(paramBean, outputMap);
		
		
		JTUWebCommon.setListNo(bean, TUW03205SFConst.BMP_KOJI_MSKM_JIGSHO_NO_LIST, TUW03205SFConst.CD_NM_01);
		
		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JTUWebCommon.getSearchErrFlg("TUSV007402SC", outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			String[] msgRpl = new String[]{"番ポ工事エリア", "情報"};
			JTUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, msgRpl);
			
			// 遷移先の情報を共有フォームBeanの項目に設定する。
			JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
			
			setTransferPageId(JTUWebCommon.getScreenId(this) + "0PJP");
			return true;
		}
		else
		{
			//表示項目の設定
			setDispInfo(paramBean);
		}
		
		return true;
	}
	
	/**
	 * 更新確認遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_cfm() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		setBeanUpdateInfo(bean);
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "TUSV0073");
		
		// マッピングクラスのインスタンスを生成
		TUSV0073_TUSV0073OPDBMapper mapper = new TUSV0073_TUSV0073OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		mapper.setTUSV007301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_2);
		
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JTUWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * DataBean設定処理
		 */
		JTUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, MESSAGE_VALUE);
		JCCWebCommon.setMessageAreaBackColor(this, "1");
		
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW03206, JTUScreenConst.SCREEN_NAME_TUW03206);
		return true;
	}
	
	/**
	 * 戻る遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
		
		return true;
	}
	
	/**
	 * 確定遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_fix() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		setBeanUpdateInfo(bean);
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * サービス呼出処理
		 */
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "TUSV0073");
		
		// マッピングクラスのインスタンスを生成
		TUSV0073_TUSV0073OPDBMapper mapper = new TUSV0073_TUSV0073OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/*
		 * 上りマッピング
		 */
		mapper.setTUSV007301SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		
		/*
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JTUWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * DataBean設定処理
		 */
		JTUWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, MESSAGE_VALUE);
		
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW03207, JTUScreenConst.SCREEN_NAME_TUW03207);
		return true;
	}

	/**
	 * 修正遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_cancel() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUScreenConst.SCREEN_ID_TUW03205, JTUScreenConst.SCREEN_NAME_TUW03205);
		
		return true;
	}
	
	/**
	 * 完了遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_fin() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
		
		return true;
	}
	
	/**
	 * 表示情報を各項目に保持
	 * @param bean
	 */
	private void setDispInfo(X31SDataBeanAccess[] bean)
	{
		
		String tmp = null;
		X31SDataBeanAccess listDataBean = null;
		
		// 番ポ工事場所
		tmp = bean[0].sendMessageString(TUW03205SFConst.BMP_KOJI_MSKM_JIGSHO_NO, X31CWebConst.DATABEAN_GET_VALUE);
		listDataBean = bean[0].getDataBeanArray(TUW03205SFConst.BMP_KOJI_MSKM_JIGSHO_NO_LIST).getDataBean(0);
		
		if(tmp != null)
		{
			
			for(int i = 0; i < (Integer)listDataBean.sendMessage(TUW03205SFConst.CD_01, X31CWebConst.DATABEAN_GET_COUNT); i++)
			{
				if(tmp.equals(listDataBean.sendMessageString(TUW03205SFConst.CD_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					listDataBean.sendMessageString(TUW03205SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i));
				}
			}
		}
		
	}
	
	/**
	 * 入力内容を設定
	 * @param bean
	 */
	private void setBeanUpdateInfo(X31SDataBeanAccess bean)
	{
		
		String tmp = "";

		// 番ポ工事場所
		tmp = JTUWebCommon.getListSelectedValue(bean, TUW03205SFConst.BMP_KOJI_MSKM_JIGSHO_NO_LIST, TUW03205SFConst.INDEX_01, TUW03205SFConst.CD_01);
		bean.sendMessageString(TUW03205SFConst.BMP_KOJI_MSKM_JIGSHO_NO, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
		tmp = JTUWebCommon.getListSelectedValue(bean, TUW03205SFConst.BMP_KOJI_MSKM_JIGSHO_NO_LIST, TUW03205SFConst.INDEX_01, TUW03205SFConst.CD_NM_01);
		bean.sendMessageString(TUW03205SFConst.BMP_KOJI_MSKM_JIGSHO_NM, X31CWebConst.DATABEAN_SET_VALUE, tmp);
		
	}

}
	
