/*******************************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：TUW02101SFLogic
*	ソースファイル名：TUW02101SFLogic.java
*	作成者			：FJ
*	日付			：2011年06月13日
*＜機能概要＞
*	TUW02101のビューロジック
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/06/13	FJ)宮本		新規作成
*	v47.00.00	2019/12/26	FJ)後藤	【ANK-3798-00-00】オペレータ支援システムの表示改善対応（2020年1月リリース分)
********************************************************************************/
package eo.web.webview.TUW02101SF;

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.common.constant.JTUStrConst;
import eo.common.util.JKUCommonUtil;
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.JTUScreenConst;
import eo.web.webview.common.JTUWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.TUSV0044_TUSV0044OPDBMapper;

/**
 * TUW02101のビューロジック
 * @author FJ
 *
 */
public class TUW02101SFLogic extends JCCWebBusinessLogic
{
	
	/**
	 * 判定処理ユースケースID
	 */
	private static final String JUDGE_USECASE_ID = "TUSV0044";
	
	/**
	 * 判定処理SCタイトル01
	 */
	private static final String JUDGE_SC_TITLE01 = "TUSV004401SC";
	
	// ANK-3798-00-00 ADD START
	/** 戻るボタン表示要否 */
	private static final String CLOSE_BTN_DSP_FLG = "CLOSE_BTN_DSP_FLG";
	// ANK-3798-00-00 ADD END
	
	/**
	 * 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_init() throws Exception
	{
		return tuw02101_init();
	}
	
	
	/**
	 * 初期化処理
	 * @return boolean
	 */
	private boolean tuw02101_init()
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
								, X31CWebConst.DATABEAN_SET_VALUE, JTUScreenConst.SCREEN_NAME_TUW02101);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * DataBean設定処理
		 */
		// 戻るボタンの表示要否判定
		bean.sendMessageString(TUW02101SFConst.BACK_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE
				, JTUWebCommon.getBackDispFlg(this, JTUScreenConst.SCREEN_ID_TUW02101));
		
		// ANK-3798-00-00 ADD START
		// 閉じるボタンの表示要否判定
		String closeBtnDisp = "0";
		HashMap<String, Object> sessionInfo = JCCWebCommon.getScreenInfo(this);
		if (sessionInfo != null) 
		{
			closeBtnDisp = (String)sessionInfo.get(CLOSE_BTN_DSP_FLG);
		}
		bean.sendMessageString(TUW02101SFConst.CLOSE_BTN_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, closeBtnDisp);
		// ANK-3798-00-00 ADD END
		
		return true;
	}
	
	/**
	 * 判定処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_judge() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {bean};
		
		/**
		 * DataBean設定処理
		 */
		bean.sendMessageString(TUW02101SFConst.JUDGE_KYOKU_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 判定局番の設定
		String tel_no = bean.sendMessageString(TUW02101SFConst.TEL_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if(!"".equals(tel_no))
		{
			if(tel_no.length() > 7)
			{
				bean.sendMessageString(TUW02101SFConst.JUDGE_KYOKU_NO, X31CWebConst.DATABEAN_SET_VALUE, tel_no.substring(0, 7));
			}
			else
			{
				bean.sendMessageString(TUW02101SFConst.JUDGE_KYOKU_NO, X31CWebConst.DATABEAN_SET_VALUE, tel_no);
			}
		}
		/**
		 * サービス呼出処理
		 */
		//  ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, JUDGE_USECASE_ID);

		// マッピングクラスのインスタンスを生成
		TUSV0044_TUSV0044OPDBMapper mapper = new TUSV0044_TUSV0044OPDBMapper();
		// 上り格納マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 下り格納マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		/**
		 * 上りマッピング
		 */
		// マッピングクラスの呼び出し
		mapper.setTUSV004401SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		/**
		 * サービス呼出 
		 */
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);	
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		/**
		 * サービス処理結果の取得
		 */
		/**
		 * 下りマッピング
		 */ 
		// マッピングクラスの呼び出し
		mapper.getTUSV004401SC(paramBean, outputMap);

		/**
		 * 取得データ件数チェック
		 */
		// 検索エラー取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(JUDGE_SC_TITLE01, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			//0件の場合
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1080__I);
		}
		else
		{
			//エラーなし
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1070__I);
		}

		return true;
	}
	
	/**
	 * 先頭画面 戻る遷移処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean action_top_back() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		/**
		 * DataBean設定処理
		 */
		// 遷移先の情報を共有フォームBeanの項目に設定する。
		JTUWebCommon.setNextScreenInfo(commoninfoBean, JTUWebCommon.getScreenId(this), "");
		
		return true;
	}
}
	
