/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：マンション検索2(市区町村)
*   ソースファイル名：FUW00132SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年09月15日
*＜機能概要＞
*  マンション検索2（市区町村）のビューロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/07/20   FJ）大塚    新規作成
*   v3.00.00    2012/04/13   FJ）池田    府県ボタンによる検索処理の追加に対応
*
**********************************************************************/
package eo.web.webview.FUW00132SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;

import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0138_FUSV0138OPDBMapper;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW00131SF.FUW00131SFConst;
import eo.web.webview.FUW00132SF.FUW00132SFConst;

/**
 * マンション検索2(市区町村)のビューロジッククラスです。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00132SFLogic extends JCCWebBusinessLogic
{
	/** 空白 */
	private static final String EMP = "";
	
	/** ユースケースID（FUSV0138） */
	private static final String USECASE_ID_FUSV0138 = "FUSV0138";

	/** マンション情報.検索・市区町村：空白 */
	private static final String CITY_EMP = "";

	/** マンション情報.検索・市区町村カナ：空白 */
	private static final String CITY_KANA_EMP = "";

	/** マンション情報.検索・市区町村カナ：a */
	private static final String CITY_EN_A = "a";

	/** マンション情報.検索・市区町村カナ：ｱ */
	private static final String CITY_KANA_A = "ｱ";

	/** マンション情報.検索・市区町村カナ：ｲ */
	private static final String CITY_KANA_I = "ｲ";

	/** マンション情報.検索・市区町村カナ：ｳ */
	private static final String CITY_KANA_U = "ｳ";

	/** マンション情報.検索・市区町村カナ：ｴ */
	private static final String CITY_KANA_E = "ｴ";

	/** マンション情報.検索・市区町村カナ：ｵ */
	private static final String CITY_KANA_O = "ｵ";

	/** マンション情報.検索・市区町村カナ：ka */
	private static final String CITY_EN_KA = "ka";

	/** マンション情報.検索・市区町村カナ：ｶ */
	private static final String CITY_KANA_KA = "ｶ";

	/** マンション情報.検索・市区町村カナ：ｷ */
	private static final String CITY_KANA_KI = "ｷ";

	/** マンション情報.検索・市区町村カナ：ｸ */
	private static final String CITY_KANA_KU = "ｸ";

	/** マンション情報.検索・市区町村カナ：ｹ */
	private static final String CITY_KANA_KE = "ｹ";

	/** マンション情報.検索・市区町村カナ：ｺ */
	private static final String CITY_KANA_KO = "ｺ";

	/** マンション情報.検索・市区町村カナ：sa */
	private static final String CITY_EN_SA = "sa";

	/** マンション情報.検索・市区町村カナ：ｻ */
	private static final String CITY_KANA_SA = "ｻ";

	/** マンション情報.検索・市区町村カナ：ｼ */
	private static final String CITY_KANA_SHI = "ｼ";

	/** マンション情報.検索・市区町村カナ：ｽ */
	private static final String CITY_KANA_SU = "ｽ";

	/** マンション情報.検索・市区町村カナ：ｾ */
	private static final String CITY_KANA_SE = "ｾ";

	/** マンション情報.検索・市区町村カナ：ｿ */
	private static final String CITY_KANA_SO = "ｿ";

	/** マンション情報.検索・市区町村カナ：ta */
	private static final String CITY_EN_TA = "ta";

	/** マンション情報.検索・市区町村カナ：ﾀ */
	private static final String CITY_KANA_TA = "ﾀ";

	/** マンション情報.検索・市区町村カナ：ﾁ */
	private static final String CITY_KANA_CHI = "ﾁ";

	/** マンション情報.検索・市区町村カナ：ﾂ */
	private static final String CITY_KANA_TSU = "ﾂ";

	/** マンション情報.検索・市区町村カナ：ﾃ */
	private static final String CITY_KANA_TE = "ﾃ";

	/** マンション情報.検索・市区町村カナ：ﾄ */
	private static final String CITY_KANA_TO = "ﾄ";

	/** マンション情報.検索・市区町村カナ：na */
	private static final String CITY_EN_NA = "na";

	/** マンション情報.検索・市区町村カナ：ﾅ */
	private static final String CITY_KANA_NA = "ﾅ";

	/** マンション情報.検索・市区町村カナ：ﾆ */
	private static final String CITY_KANA_NI = "ﾆ";

	/** マンション情報.検索・市区町村カナ：ﾇ */
	private static final String CITY_KANA_NU = "ﾇ";

	/** マンション情報.検索・市区町村カナ：ﾈ */
	private static final String CITY_KANA_NE = "ﾈ";

	/** マンション情報.検索・市区町村カナ：ﾉ */
	private static final String CITY_KANA_NO = "ﾉ";

	/** マンション情報.検索・市区町村カナ：ha */
	private static final String CITY_EN_HA = "ha";

	/** マンション情報.検索・市区町村カナ：ﾊ */
	private static final String CITY_KANA_HA = "ﾊ";

	/** マンション情報.検索・市区町村カナ：ﾋ */
	private static final String CITY_KANA_HI = "ﾋ";

	/** マンション情報.検索・市区町村カナ：ﾌ */
	private static final String CITY_KANA_FU = "ﾌ";

	/** マンション情報.検索・市区町村カナ：ﾍ */
	private static final String CITY_KANA_HE = "ﾍ";

	/** マンション情報.検索・市区町村カナ：ﾎ */
	private static final String CITY_KANA_HO = "ﾎ";

	/** マンション情報.検索・市区町村カナ：ma */
	private static final String CITY_EN_MA = "ma";

	/** マンション情報.検索・市区町村カナ：ﾏ */
	private static final String CITY_KANA_MA = "ﾏ";

	/** マンション情報.検索・市区町村カナ：ﾐ */
	private static final String CITY_KANA_MI = "ﾐ";

	/** マンション情報.検索・市区町村カナ：ﾑ */
	private static final String CITY_KANA_MU = "ﾑ";

	/** マンション情報.検索・市区町村カナ：ﾒ */
	private static final String CITY_KANA_ME = "ﾒ";

	/** マンション情報.検索・市区町村カナ：ﾓ */
	private static final String CITY_KANA_MO = "ﾓ";

	/** マンション情報.検索・市区町村カナ：ya */
	private static final String CITY_EN_YA = "ya";

	/** マンション情報.検索・市区町村カナ：ﾔ */
	private static final String CITY_KANA_YA = "ﾔ";

	/** マンション情報.検索・市区町村カナ：ﾕ */
	private static final String CITY_KANA_YU = "ﾕ";

	/** マンション情報.検索・市区町村カナ：ﾖ */
	private static final String CITY_KANA_YO = "ﾖ";

	/** マンション情報.検索・市区町村カナ：ra */
	private static final String CITY_EN_RA = "ra";

	/** マンション情報.検索・市区町村カナ：ﾗ */
	private static final String CITY_KANA_RA = "ﾗ";

	/** マンション情報.検索・市区町村カナ：ﾘ */
	private static final String CITY_KANA_RI = "ﾘ";

	/** マンション情報.検索・市区町村カナ：ﾙ */
	private static final String CITY_KANA_RU = "ﾙ";

	/** マンション情報.検索・市区町村カナ：ﾚ */
	private static final String CITY_KANA_RE = "ﾚ";

	/** マンション情報.検索・市区町村カナ：ﾛ */
	private static final String CITY_KANA_RO = "ﾛ";

	/** マンション情報.検索・市区町村カナ：wa */
	private static final String CITY_EN_WA = "wa";

	/** マンション情報.検索・市区町村カナ：ﾜ */
	private static final String CITY_KANA_WA = "ﾜ";

	/** マンション情報.検索・市区町村カナ：ｦ */
	private static final String CITY_KANA_WO = "ｦ";

	/** マンション情報.検索・市区町村カナ：ﾝ */
	private static final String CITY_KANA_NN = "ﾝ";

	/**
	 * 初期表示処理
	 * 
	 * @return boolean
	 */
	public boolean init()
	{
		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccessArray web_new_info = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);

		// WEB新規情報 >マンション情報
		X31SDataBeanAccessArray mansionInfo = web_new_infobean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		X31SDataBeanAccess mansionInfoBean = mansionInfo.getDataBean(0);

		// マンション情報．検索・郵便番号の初期化
		mansionInfoBean.sendMessage(CommonInfoCFConst.SEARCH_PCD1_16, X31CWebConst.DATABEAN_CLEAR);
		mansionInfoBean.sendMessage(CommonInfoCFConst.SEARCH_PCD2_16, X31CWebConst.DATABEAN_CLEAR);

		// マンション情報から検索・府県を取得
		String state = mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_STATE_16, X31CWebConst.DATABEAN_GET_VALUE);

		// サービスフォームBean取得
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// 共有フォームBeanから取得した件名をＫＥＹ＿都道府県名にセット
		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, state);

		// マンション情報から検索・市区町村カナを取得
		String city_kana = mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_CITY_KN_16, X31CWebConst.DATABEAN_GET_VALUE);

		String[] kana = new String[5];

		// 対象行のカナを取得する
		kana = this.kanaArray(city_kana);

		// サービスフォームBeanにカナを設定する
		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_1, X31CWebConst.DATABEAN_SET_VALUE, kana[0]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_2, X31CWebConst.DATABEAN_SET_VALUE, kana[1]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_3, X31CWebConst.DATABEAN_SET_VALUE, kana[2]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_4, X31CWebConst.DATABEAN_SET_VALUE, kana[3]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_5, X31CWebConst.DATABEAN_SET_VALUE, kana[4]);

		// コード種別をセット
		serviceInfoBean.sendMessageString(FUW00131SFConst.CODE_SBT, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD_SBT_CD00691);
		// 基準日をセット
		serviceInfoBean.sendMessageString(FUW00131SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getOpeDate(this,null));

		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0138);

		// DataBean-BPマッピング
		FUSV0138_FUSV0138OPDBMapper mapper = new FUSV0138_FUSV0138OPDBMapper();

		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean };

		// 機能コード「1」を設定
		mapper.setFUSV013801SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setMskmUcwkMap(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// システムエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		X31SDataBeanAccess[] paramBeanOut = { serviceInfoBean };

		// サービスからの戻りデータをBeanにセット(下りマッピング)
		mapper.getFUSV013801SC(paramBeanOut, outputMap);
		mapper.getMskmUcwkMap(paramBeanOut, outputMap);

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey("FUSV013801SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV013801SC");
		}

		outputMap.containsKey("EZM0081B030CBSMsg1List");

		ArrayList<Object> childList = (ArrayList)parentMap.get("EZM0081B030CBSMsg1List");

		// 該当行に市区町村名があるかどうか。ない場合は、「対象行エラーを表示」
		if (childList.size() == 0)
		{
			// 対象行エラー取得
			String err_kana = errCheck(city_kana);

			serviceInfoBean.sendMessageString(FUW00132SFConst.SELECT_CHAR_ERR, X31CWebConst.DATABEAN_SET_VALUE, err_kana);

			return true;
		}

		// 申込受付実績登録部品実行
		JFUWebCommon.executeWebMskmUkJskAdd(this);

		parentMap = null;
		if (outputMap.containsKey("MskmUcwkMap"))
		{
			parentMap = (HashMap)outputMap.get("MskmUcwkMap");
		}

		// コード名称管理一意照会マップをサービスフォームBeanにセット
		serviceInfoBean.sendMessageObject(FUW00132SFConst.MSKMUCWKMAP, X31CWebConst.DATABEAN_SET_VALUE, parentMap);

		return true;
	}

	/**
	 * あ〜わ行リンク押下ボタン押下時
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean selectChar() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// 対象行エラーの初期化を行う。
		serviceInfoBean.sendMessageString(FUW00132SFConst.SELECT_CHAR_ERR, X31CWebConst.DATABEAN_SET_VALUE, CITY_KANA_EMP);

		// サービスフォームBeanの住所一覧照会明細の初期化
		X31SDataBeanAccessArray addressList = serviceInfoBean.getDataBeanArray(FUW00132SFConst.EZM0081B030CBSMSG1LIST);

		addressList.clearArray();

		// 市区町村 市区町村カナ名を取得
		String city_kana = serviceInfoBean.sendMessageString(FUW00132SFConst.CHOICE_CHAR, X31CWebConst.DATABEAN_GET_VALUE);

		String[] kana = new String[5];

		// 対象行のカナを取得する
		kana = kanaArray(city_kana);

		// サービスフォームBeanにカナを設定する
		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_1, X31CWebConst.DATABEAN_SET_VALUE, kana[0]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_2, X31CWebConst.DATABEAN_SET_VALUE, kana[1]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_3, X31CWebConst.DATABEAN_SET_VALUE, kana[2]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_4, X31CWebConst.DATABEAN_SET_VALUE, kana[3]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_5, X31CWebConst.DATABEAN_SET_VALUE, kana[4]);

		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0138);

		// DataBean-BPマッピング
		FUSV0138_FUSV0138OPDBMapper mapper = new FUSV0138_FUSV0138OPDBMapper();

		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean };

		// 機能コード「1」を設定
		mapper.setFUSV013801SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setMskmUcwkMap(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// システムエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey("FUSV013801SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV013801SC");
		}

		ArrayList<Object> childList = null;

		outputMap.containsKey("EZM0081B030CBSMsg1List");

		childList = null;

		childList = (ArrayList)parentMap.get("EZM0081B030CBSMsg1List");

		// 該当行に市区町村名があるかどうか。ない場合は、「対象行エラーを表示」
		if (childList.size() == 0)
		{
			// 対象行エラー取得
			String err_kana = errCheck(city_kana);

			serviceInfoBean.sendMessageString(FUW00132SFConst.SELECT_CHAR_ERR, X31CWebConst.DATABEAN_SET_VALUE, err_kana);

			return true;

		}
		X31SDataBeanAccess[] paramBeanOut = { serviceInfoBean };

		// サービスからの戻りデータをBeanにセット(下りマッピング)
		mapper.getFUSV013801SC(paramBeanOut, outputMap);
		mapper.getMskmUcwkMap(paramBeanOut, outputMap);

		return true;
	}

	/**
	 * 市区町村名リンクボタン押下時
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean selectCity() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess serviceformBean = getServiceFormBean();

		// 選択市区町村名取得
		String cityName = serviceformBean.sendMessageString(FUW00132SFConst.CHOICE_CITY, X31CWebConst.DATABEAN_GET_VALUE);

		// 選択行取得
		String cityKana = serviceformBean.sendMessageString(FUW00132SFConst.CHOICE_CHAR, X31CWebConst.DATABEAN_GET_VALUE);

		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccessArray web_new_info = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);

		// WEB新規情報>マンション情報
		X31SDataBeanAccessArray mansionInfo = web_new_infobean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		X31SDataBeanAccess mansionInfoBean = mansionInfo.getDataBean(0);

		// 共有フォームBeanへ設定
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_CITY_16, X31CWebConst.DATABEAN_SET_VALUE, cityName);
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_CITY_KN_16, X31CWebConst.DATABEAN_SET_VALUE, cityKana);
		// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 START-----
		if(!EMP.equals(cityKana))
		{
			mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_CITY_KN_16, X31CWebConst.DATABEAN_SET_VALUE, cityKana);
		}
		// -----ST2-2012-0001440 2012/08/08 h.iwamoto 戻り遷移方法修正 END-----

		// ------次画面IDの設定-------

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。(設定値：FUW00133)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00133);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。(設定値：マンション検索3(町域))
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00133);

		return true;
	}

	/**
	 * 府県リンクボタン押下時
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean selectStateNm() throws Exception
	{

		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccessArray web_new_info = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);

		// WEB新規情報 >マンション情報
		X31SDataBeanAccessArray mansionInfo = web_new_infobean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		X31SDataBeanAccess mansionInfoBean = mansionInfo.getDataBean(0);

		// マンション情報．検索・郵便番号の初期化
		mansionInfoBean.sendMessage(CommonInfoCFConst.SEARCH_PCD1_16, X31CWebConst.DATABEAN_CLEAR);
		mansionInfoBean.sendMessage(CommonInfoCFConst.SEARCH_PCD2_16, X31CWebConst.DATABEAN_CLEAR);

		// サービスフォームBean取得
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// 対象行エラーの初期化を行う。
		serviceInfoBean.sendMessage(FUW00132SFConst.SELECT_CHAR_ERR, X31CWebConst.DATABEAN_CLEAR);

		// 選択府県取得
		String pref = serviceInfoBean.sendMessageString(FUW00132SFConst.CHOICE_PREF, X31CWebConst.DATABEAN_GET_VALUE);

		// 共有フォームBeanから取得した件名をＫＥＹ＿都道府県名にセット
		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, pref);

		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_STATE_16, X31CWebConst.DATABEAN_SET_VALUE, pref);

		// サービスフォームBeanの住所一覧照会明細の初期化
		X31SDataBeanAccessArray addressList = serviceInfoBean.getDataBeanArray(FUW00132SFConst.EZM0081B030CBSMSG1LIST);

		addressList.clearArray();

		// マンション情報から検索・市区町村カナを取得
		String city_kana = mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_CITY_KN_16, X31CWebConst.DATABEAN_GET_VALUE);

		String[] kana = new String[5];

		// 対象行のカナを取得する
		kana = kanaArray(city_kana);

		// サービスフォームBeanにカナを設定する
		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_1, X31CWebConst.DATABEAN_SET_VALUE, kana[0]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_2, X31CWebConst.DATABEAN_SET_VALUE, kana[1]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_3, X31CWebConst.DATABEAN_SET_VALUE, kana[2]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_4, X31CWebConst.DATABEAN_SET_VALUE, kana[3]);

		serviceInfoBean.sendMessageString(FUW00132SFConst.KEY_CITY_KANA_5, X31CWebConst.DATABEAN_SET_VALUE, kana[4]);

		// コード種別をセット
		serviceInfoBean.sendMessageString(FUW00131SFConst.CODE_SBT, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.CD_SBT_CD00691);
		// 基準日をセット
		serviceInfoBean.sendMessageString(FUW00131SFConst.STDARDYMD, X31CWebConst.DATABEAN_SET_VALUE, JFUWebCommon.getOpeDate(this,null));

		// サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0138);

		// DataBean-BPマッピング
		FUSV0138_FUSV0138OPDBMapper mapper = new FUSV0138_FUSV0138OPDBMapper();

		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		X31SDataBeanAccess[] paramBean = { serviceInfoBean };

		// 機能コード「1」を設定
		mapper.setFUSV013801SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setMskmUcwkMap(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);

		try
		{
			// サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// システムエラー
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		X31SDataBeanAccess[] paramBeanOut = { serviceInfoBean };

		// サービスからの戻りデータをBeanにセット(下りマッピング)
		mapper.getFUSV013801SC(paramBeanOut, outputMap);
		mapper.getMskmUcwkMap(paramBeanOut, outputMap);
		
		// 共有フォームBeanへ設定
		mansionInfoBean.sendMessageString(CommonInfoCFConst.SEARCH_STATE_16, X31CWebConst.DATABEAN_SET_VALUE, pref);
		
		JFUWebCommon.comClear(this);

		HashMap<String, Object> parentMap = null;
		if (outputMap.containsKey("FUSV013801SC"))
		{
			parentMap = (HashMap)outputMap.get("FUSV013801SC");
		}

		outputMap.containsKey("EZM0081B030CBSMsg1List");

		ArrayList<Object> childList = (ArrayList)parentMap.get("EZM0081B030CBSMsg1List");

		// 該当行に市区町村名があるかどうか。ない場合は、「対象行エラーを表示」
		if (childList.size() == 0)
		{
			// 対象行エラー取得
			String err_kana = errCheck(city_kana);

			serviceInfoBean.sendMessageString(FUW00132SFConst.SELECT_CHAR_ERR, X31CWebConst.DATABEAN_SET_VALUE, err_kana);

			return true;
		}

		// コード名称管理一意照会マップをサービスフォームBeanにセット
		//ArrayList MskmUcwkMap = (ArrayList)serviceInfoBean.sendMessageObject(FUW00132SFConst.MSKMUCWKMAP,	X31CWebConst.DATABEAN_GET_VALUE);

		JFUWebCommon.setScreenId(this, JFUScreenConst.SCREEN_ID_FUW00133, JFUScreenConst.SCREEN_ID_FUW00132);
		// ------次画面IDの設定-------

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。(設定値：FUW00132)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00132);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。(設定値：マンション検索3(町域)(量販・訪販))
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00132);

		return true;
	}

	/**
	 * 戻るボタン押下時
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean back() throws Exception
	{
		// 共有フォームBean取得
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// WEB新規情報
		X31SDataBeanAccessArray web_new_info = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_NEW_INFO);
		X31SDataBeanAccess web_new_infobean = web_new_info.getDataBean(0);

		// WEB新規情報>マンション情報
		X31SDataBeanAccessArray mansionInfo = web_new_infobean.getDataBeanArray(CommonInfoCFConst.MANSION_INFO);
		X31SDataBeanAccess mansionInfoBean = mansionInfo.getDataBean(0);

		// 共有フォームBeanへ設定
		mansionInfoBean.sendMessage(CommonInfoCFConst.SEARCH_CITY_16, X31CWebConst.DATABEAN_CLEAR);
		mansionInfoBean.sendMessage(CommonInfoCFConst.SEARCH_CITY_KN_16, X31CWebConst.DATABEAN_CLEAR);

		// ------次画面IDの設定-------

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。(設定値：FUW00131)
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00131);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。(設定値：マンション検索1(府県))
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00131);

		return true;
	}

	/**
	 * 対象行のカナを取得する
	 * 
	 * @param city_kana 市区町村カナ
	 * 
	 * @return String[] 対象行のカナ
	 */
	private String[] kanaArray(String city_kana)
	{
		String[] kana = new String[5];

		// 画面遷移が初回の場合、「あ行」を選択した状態にする。
		if (city_kana.equals(CITY_EN_A) || city_kana.length() == 0)
		{
			// あ行選択
			kana[0] = CITY_KANA_A;

			kana[1] = CITY_KANA_I;

			kana[2] = CITY_KANA_U;

			kana[3] = CITY_KANA_E;

			kana[4] = CITY_KANA_O;
		}
		else if (city_kana.equals(CITY_EN_KA))
		{
			// か行選択
			kana[0] = CITY_KANA_KA;

			kana[1] = CITY_KANA_KI;

			kana[2] = CITY_KANA_KU;

			kana[3] = CITY_KANA_KE;

			kana[4] = CITY_KANA_KO;
		}
		else if (city_kana.equals(CITY_EN_SA))
		{
			// さ行選択
			kana[0] = CITY_KANA_SA;

			kana[1] = CITY_KANA_SHI;

			kana[2] = CITY_KANA_SU;

			kana[3] = CITY_KANA_SE;

			kana[4] = CITY_KANA_SO;
		}
		else if (city_kana.equals(CITY_EN_TA))
		{
			// た行選択
			kana[0] = CITY_KANA_TA;

			kana[1] = CITY_KANA_CHI;

			kana[2] = CITY_KANA_TSU;

			kana[3] = CITY_KANA_TE;

			kana[4] = CITY_KANA_TO;
		}
		else if (city_kana.equals(CITY_EN_NA))
		{
			// な行選択
			kana[0] = CITY_KANA_NA;

			kana[1] = CITY_KANA_NI;

			kana[2] = CITY_KANA_NU;

			kana[3] = CITY_KANA_NE;

			kana[4] = CITY_KANA_NO;
		}
		else if (city_kana.equals(CITY_EN_HA))
		{
			// は行選択
			kana[0] = CITY_KANA_HA;

			kana[1] = CITY_KANA_HI;

			kana[2] = CITY_KANA_FU;

			kana[3] = CITY_KANA_HE;

			kana[4] = CITY_KANA_HO;
		}
		else if (city_kana.equals(CITY_EN_MA))
		{
			// ま行選択
			kana[0] = CITY_KANA_MA;

			kana[1] = CITY_KANA_MI;

			kana[2] = CITY_KANA_MU;

			kana[3] = CITY_KANA_ME;

			kana[4] = CITY_KANA_MO;
		}
		else if (city_kana.equals(CITY_EN_YA))
		{
			// や行選択
			kana[0] = CITY_KANA_YA;

			kana[1] = CITY_KANA_YU;

			kana[2] = CITY_KANA_YO;

			kana[3] = CITY_KANA_EMP;

			kana[4] = CITY_KANA_EMP;
		}
		else if (city_kana.equals(CITY_EN_RA))
		{
			// ら行選択
			kana[0] = CITY_KANA_RA;

			kana[1] = CITY_KANA_RI;

			kana[2] = CITY_KANA_RU;

			kana[3] = CITY_KANA_RE;

			kana[4] = CITY_KANA_RO;
		}
		else if (city_kana.equals(CITY_EN_WA))
		{
			// わ行選択
			kana[0] = CITY_KANA_WA;

			kana[1] = CITY_KANA_WO;

			kana[2] = CITY_KANA_NN;

			kana[3] = CITY_KANA_EMP;

			kana[4] = CITY_KANA_EMP;
		}

		return kana;
	}

	/**
	 * 対象行エラーを表示
	 * 
	 * @param city_kana 市区町村カナ
	 * 
	 * @return String エラー行のカナ
	 */
	private String errCheck(String city_kana)
	{
		if (city_kana.equals(CITY_EN_A))
		{
			return CITY_KANA_A;
		}
		else if (city_kana.equals(CITY_EN_KA))
		{
			return CITY_KANA_KA;
		}
		else if (city_kana.equals(CITY_EN_SA))
		{
			return CITY_KANA_SA;
		}
		else if (city_kana.equals(CITY_EN_TA))
		{
			return CITY_KANA_TA;
		}
		else if (city_kana.equals(CITY_EN_NA))
		{
			return CITY_KANA_NA;
		}
		else if (city_kana.equals(CITY_EN_HA))
		{
			return CITY_KANA_HA;
		}
		else if (city_kana.equals(CITY_EN_MA))
		{
			return CITY_KANA_MA;
		}
		else if (city_kana.equals(CITY_EN_YA))
		{
			return CITY_KANA_YA;
		}
		else if (city_kana.equals(CITY_EN_RA))
		{
			return CITY_KANA_RA;
		}
		else if (city_kana.equals(CITY_EN_WA))
		{
			return CITY_KANA_WA;
		}
		else
		{
			// 何もないときはあ行のエラーを表示
			return CITY_KANA_A;
		}
	}

}
