/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：ZMW10601SFLogic
*   ソースファイル名：ZMW10601SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*   住所検索画面 Viewロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00       2011/04/01   FJ）宮前    新規作成
*   v1.01       2012/05/28   FJ) 宮前    【IT2-2012-0000546】対応
*   v1.02       2012/06/05   FJ) 宮前    【IT2-2012-0000646】対応
*   v3.00       2012/06/07   FJ) 宮前    【TAI-2012-0000049】 住所検索画面 適用開始終了対応
*
**********************************************************************/

package eo.web.webview.ZMW10601SF;

import java.util.HashMap;

import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
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.constant.JPCOnlineMessageConstant;
import eo.common.constant.JZMStrConst;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.ZMSV0006_ZMSV0006OPDBMapper;

/**
 * 住所検索画面 Viewロジックです。
 * @author FJ
 */
public class ZMW10601SFLogic extends JCCWebBusinessLogic
{
	/** KEY 最大検索件数 プロパティ */
	private static final String KEY_MAX_SHOW_CNT = "ZMW10601_MAX_SHOW_CNT";

	/** ユースケースID */
	private static final String USECASE_ID = "ZMSV0006";
	
	/** サービスインターフェイスID */
	private static final String TEMP_ID = "EZM0081B011";
	
	/** 基準年月日 Key項目名称 */
	private static final String KIJUN_YMD = "key_ymd";
	
	/** ページリンク用 */
	private static final String PAGE_LINK_PROC = "pageLink";
	
	/** ラジオボタン デフォルト選択行 */
	private static final String RADIO_DEFAULT_SELECT = "0";
	
	/**
	 * 住所検索画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
		
		// サービスフォームBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// マッピングクラスに渡す配列
		X31SDataBeanAccess[] paramBeans = {bean};

		// セッションから検索条件を取得
		HashMap<String, Object> searchInfo = JCCWebCommon.getScreenInfo(this);
		
		if(isConditionSetting(searchInfo))
		{
			
			// 検索処理実行
			// サービスフォームBeanへ検索条件を設定
			setServiceFormBeanFromSession(getServiceFormBean(), searchInfo);
			
			// 検索処理実行
			// １．マッピング（上り）
			// ２．基準日セット
			// ３．ページリンク処理（上り）
			// ４．サービス呼び出し
			// ５．マッピング（下り）
			// ６．ページリンク処理（下り）
			boolean blnRet = executeSearch(paramBeans);
			if(blnRet)
			{
				
				// 検索コマンドIDセット
				JCCWebCommon.setSearchCommand(this, PAGE_LINK_PROC);
			}
		}
		
		// 画面遷移（自分自身へ）
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
		
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10601);

		return true;
	}
	
	/**
	 * 検索ボタン押下処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean search() throws Exception
	{
		
		// 共有フォームBean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// マッピングクラスに渡す配列
		X31SDataBeanAccess[] paramBeans = {bean};

		// 検索条件の組み立て（入力項目から検索用項目へセット
		setServiceFormBeanFromSF(bean);
		
		// 検索処理実行
		// １．マッピング（上り）
		// ２．基準日セット
		// ３．ページリンク処理（上り）
		// ４．サービス呼び出し
		// ５．マッピング（下り）
		// ６．ページリンク処理（下り）
		executeSearch(paramBeans);
		
		// 検索コマンドIDセット
		JCCWebCommon.setSearchCommand(this, PAGE_LINK_PROC);
		
		// 画面遷移（自分自身へ）
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10601);
		
		return true;
	}
	
	/**
	 * 設定ボタン押下処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean setAd() throws Exception
	{
		
		// 共有フォームBean
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();
		String radio_chk = "";
		
		// 画面で選択されたラジオボタンのValue
		
		radio_chk = bean.sendMessageString(ZMW10601SFConst.SELECT_ITEM, X31CWebConst.DATABEAN_GET_VALUE);
		
		// セッションへ詰め込むHashMap生成
		HashMap<String, Object> paramMap = setSelectAdInfo(bean, radio_chk);
		
		// 親画面に渡す情報のセット
		// 親画面IDを取得
		String parentScreenId = JCCWebCommon.getScreenId(this);
		
		// 親画面に渡す情報のセット
		JCCWebCommon.setScreenInfo(this, parentScreenId, paramMap);

		// モーダル用反映画面へ画面遷移
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, "CCW00105");
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, "モーダル用反映画面");

		return true;
	}

	/**
	 * ページリンク処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean pageLink() throws Exception
	{
		
		// サービスフォームBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// マッピングクラスに渡す配列
		X31SDataBeanAccess[] paramBeans = {bean};
		
		// 検索処理実行
		// １．マッピング（上り）
		// ２．基準日セット
		// ３．ページリンク処理（上り）
		// ４．サービス呼び出し
		// ５．マッピング（下り）
		// ６．ページリンク処理（下り）
		
		executeSearch(paramBeans);
	
		return true;
	}
	
	/**
	 * セッションから取得したHashMapに検索条件が格納されているか判定する。
	 * @param inMap 検索条件が格納されているHashMap
	 * @return boolean true:検索条件あり false:検索条件なし
	 */
	private boolean isConditionSetting(HashMap<String, Object> inMap)
	{
		boolean blnRet = false;
		String strValue = "";
		String[] keys = {
				JZMStrConst.key_ad_cd_1,
				JZMStrConst.key_ad_cd_2,
				JZMStrConst.key_ad_cd_3,
				JZMStrConst.key_ad_cd_4,
				JZMStrConst.key_pcd_1,
				JZMStrConst.key_pcd_2,
				JZMStrConst.key_state_nm,
				JZMStrConst.key_city_nm,
				JZMStrConst.key_oaztsu_nm,
				JZMStrConst.key_azcho_nm
		};
		X31SDataBeanAccess bean = getServiceFormBean();

		if(inMap != null)
		{
			
			// 機能コード
			String funcCd = nval((String)inMap.get(JZMStrConst.key_func_cd));
			if(JPCModelConstant.FUNC_CD_1.equals(funcCd) || JPCModelConstant.FUNC_CD_2.equals(funcCd))
			{
				bean.sendMessageString(ZMW10601SFConst.FUNC_CODE, X31CWebConst.DATABEAN_SET_VALUE, funcCd);
			}
			else
			{
				bean.sendMessageString(ZMW10601SFConst.FUNC_CODE, X31CWebConst.DATABEAN_SET_VALUE, JPCModelConstant.FUNC_CD_2);
			}

			for(int iCnt = 0; iCnt < keys.length; iCnt++)
			{
				strValue = (String)inMap.get(keys[iCnt]);
				
				// 2011.06.13 HashMapにKeyが設定されているが、値が空文字もしくは
				//  Keyそのものが設定されていない場合に対応
				if(strValue != null && !("".equals(strValue)))
				{
					blnRet = true;
					break;
				}
			}
		}
		else
		{
			bean.sendMessageString(ZMW10601SFConst.FUNC_CODE, X31CWebConst.DATABEAN_SET_VALUE, JPCModelConstant.FUNC_CD_2);
		}
		
		return blnRet;
	}
	
	/**
	 * 検索処理実行<BR>
	 * １．マッピング（上り）<BR>
	 * ２．基準日セット<BR>
	 * ３．ページリンク処理（上り）<BR>
	 * ４．サービス呼び出し<BR>
	 * ５．マッピング（下り）<BR>
	 * ６．ページリンク処理（下り）<BR>
     * <BR>
     * @param paramBeans サービスフォームBean
     * @return boolean
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private boolean executeSearch(X31SDataBeanAccess[] paramBeans) throws Exception
	{
		
		// DataBean→サービス マッピング
		ZMSV0006_ZMSV0006OPDBMapper mapper = new ZMSV0006_ZMSV0006OPDBMapper();
		HashMap inDataMap = new HashMap();
		
		// 機能コード取得
		String funcCode = paramBeans[0].sendMessageString(ZMW10601SFConst.FUNC_CODE, X31CWebConst.DATABEAN_GET_VALUE);
		mapper.setEZM0081B011(paramBeans, inDataMap, funcCode);
		
		// マッピング補正基準日のセット
		
		HashMap hMap = (HashMap)inDataMap.get(TEMP_ID);
		hMap.put(KIJUN_YMD, JCCWebCommon.getSysDate());
		
		// 検索処理パターン
		hMap.put("search_type", "1");
		
		// 最大検索件数
		hMap.put("max_search_num", JCCWebCommon.getSearchConst(KEY_MAX_SHOW_CNT));
		
		// 表示件数
		hMap.put("display_num", JCCWebCommon.getSearchConst("ZMW10601_ROW_PER_PAGE"));
		
		// ページリンク処理（上り）
		JCCWebCommon.upmapperPageLinkInfo(this, TEMP_ID, inDataMap);
		
		// サービス呼び出し準備
		// 検索結果格納用HashMap
		HashMap outputMap = new HashMap();
		
		// ユースケースID格納用マップを生成
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID);
		
		// サービス呼び出し
		X31CMessageResult msgResult = null;
		try
		{
			msgResult = invokeService(paramMap, inDataMap, outputMap);
		}
		catch(JCCWebServiceException exp)
		{
			if(msgResult != null)
			{
				JCCWebCommon.setMessageInfo(this, msgResult);
			}
			return false;
		}
		
		// 検索結果格納用 住所情報一覧のクリア
		X31SDataBeanAccessArray beanList = paramBeans[0].getDataBeanArray(ZMW10601SFConst.AD_LIST);
		if(beanList.getCount() != 0)
		{
			
			// 住所情報一覧のクリア
			beanList.clearArray();
		}
		
		// 下りマッピング サービス→サービスフォームBean
		mapper.getEZM0081B011(paramBeans, outputMap);
		
		// 1行目を選択
		paramBeans[0].sendMessageString(ZMW10601SFConst.SELECT_ITEM, X31CWebConst.DATABEAN_SET_VALUE, RADIO_DEFAULT_SELECT);

		// 検索エラー処理
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(TEMP_ID, outputMap);
		
		if(JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			
			// 0件の場合
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
		}
		else if(JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			
			// 最大件数を超えた場合
			String[] strMsgs = {JCCWebCommon.getSearchConst(KEY_MAX_SHOW_CNT)};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, strMsgs);
		}
		else
		{
			
			// ページリンク処理（下り）
			JCCWebCommon.downmapperPageLinkInfo(this, TEMP_ID, outputMap);
		}
		return true;
	}
	
	/**
	 * 選択された住所情報をHashMapに詰め込む
     * <BR>
     * @param bean サービスフォームBean
     * @param strSelect 画面で選択されたラジオボタンのIndex
     * @return HashMap セッションへセットする情報
	 * @throws Exception 
	 */
	private HashMap<String, Object> setSelectAdInfo(X31SDataBeanAccess bean, String strSelect) throws Exception
	{
		
		// 返却用 HashMap
		HashMap<String, Object> map = new HashMap<String, Object>();
		
		// 住所一覧取得
		X31SDataBeanAccessArray ad_list = bean.getDataBeanArray(ZMW10601SFConst.AD_LIST);
		
		// 親画面へ渡す住所情報の取得
		X31SDataBeanAccess subBean = ad_list.getDataBean(Integer.parseInt(strSelect));
		
		String strValue = "";
		
		// 郵便番号
		strValue = subBean.sendMessageString(ZMW10601SFConst.LIST_PCD_01, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue != null && !"".equals(strValue) && strValue.length() >= 7)
		{
			
			// 郵便番号上3ケタ
			map.put(JZMStrConst.ret_pcd_1, strValue.substring(0, 3));
			
			// 郵便番号下4ケタ
			map.put(JZMStrConst.ret_pcd_2, strValue.substring(3));
		}
		else
		{
			
			// 郵便番号上3ケタ
			map.put(JZMStrConst.ret_pcd_1, "");
			
			// 郵便番号下4ケタ
			map.put(JZMStrConst.ret_pcd_2, "");
		}
		
		// 住所コード
		strValue = subBean.sendMessageString(ZMW10601SFConst.LIST_AD_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue != null && !"".equals(strValue) && strValue.length() >= 11)
		{
			
			// 住所コード１
			map.put(JZMStrConst.ret_ad_cd_1, strValue.substring(0, 2));
			
			// 住所コード２
			map.put(JZMStrConst.ret_ad_cd_2, strValue.substring(2, 5));
			
			// 住所コード３
			map.put(JZMStrConst.ret_ad_cd_3, strValue.substring(5, 8));
			
			// 住所コード４
			map.put(JZMStrConst.ret_ad_cd_4, strValue.substring(8));
		}
		else
		{
			
			// 住所コード１
			map.put(JZMStrConst.ret_ad_cd_1, "");
			
			// 住所コード２
			map.put(JZMStrConst.ret_ad_cd_2, "");
			
			// 住所コード３
			map.put(JZMStrConst.ret_ad_cd_3, "");
			
			// 住所コード４
			map.put(JZMStrConst.ret_ad_cd_4, "");
		}
		
		// 都道府県名
		strValue = subBean.sendMessageString(ZMW10601SFConst.STATE_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_state_nm, strValue);
		
		// カナ
		strValue = subBean.sendMessageString(ZMW10601SFConst.STATE_KANA_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_state_kana, strValue);
		
		// 市区町村名
		strValue = subBean.sendMessageString(ZMW10601SFConst.CITY_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_city_nm, strValue);
		
		// カナ
		strValue = subBean.sendMessageString(ZMW10601SFConst.CITY_KANA_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_city_kana, strValue);
		
		// 大字通称名
		strValue = subBean.sendMessageString(ZMW10601SFConst.OAZTSU_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_oaztsu_nm, strValue);

		// カナ
		strValue = subBean.sendMessageString(ZMW10601SFConst.OAZTSU_KANA_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_oaztsu_kana, strValue);
		
		// 字丁目
		strValue = subBean.sendMessageString(ZMW10601SFConst.AZCHO_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_azcho_nm, strValue);
		
		// カナ
		strValue = subBean.sendMessageString(ZMW10601SFConst.AZCHO_KANA_01, X31CWebConst.DATABEAN_GET_VALUE);
		map.put(JZMStrConst.ret_azcho_kana, strValue);
		
		return map;
	}
	
	/**
	 * サービスフォームBeanの入力項目から検索用および入力項目<BR>
	 * へセット。
     * <BR>
     * @param bean
	 * @throws Exception 
	 */
	private void setServiceFormBeanFromSF(X31SDataBeanAccess bean) throws Exception
	{
		String strValue1 = "";
		String strValue2 = "";
		String strValue3 = "";
		String strValue4 = "";
		
		// 検索条件設定用サービスフォームBean項目クリア
		
		// 郵便番号
		strValue1 = bean.sendMessageString(ZMW10601SFConst.PCD_1, X31CWebConst.DATABEAN_GET_VALUE);
		strValue2 = bean.sendMessageString(ZMW10601SFConst.PCD_2, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue1 != null &&  strValue2 != null)
		{
			bean.sendMessageString(ZMW10601SFConst.KEY_PCD, X31CWebConst.DATABEAN_SET_VALUE, strValue1 + strValue2);
		}
		
		// 住所コード
		strValue1 = bean.sendMessageString(ZMW10601SFConst.AD_CD_1, X31CWebConst.DATABEAN_GET_VALUE);
		strValue2 = bean.sendMessageString(ZMW10601SFConst.AD_CD_2, X31CWebConst.DATABEAN_GET_VALUE);
		strValue3 = bean.sendMessageString(ZMW10601SFConst.AD_CD_3, X31CWebConst.DATABEAN_GET_VALUE);
		strValue4 = bean.sendMessageString(ZMW10601SFConst.AD_CD_4, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue1 != null &&  strValue2 != null && strValue3 != null && strValue4 != null)
		{
			bean.sendMessageString(ZMW10601SFConst.KEY_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, 
					strValue1 + strValue2 + strValue3 + strValue4);
		}
		
		// 都道府県名
		strValue1 = bean.sendMessageString(ZMW10601SFConst.STATE_NM, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue1 != null)
		{
			bean.sendMessageString(ZMW10601SFConst.KEY_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
		
		// 市区町村名
		strValue1 = bean.sendMessageString(ZMW10601SFConst.CITY_NM, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue1 != null)
		{
			bean.sendMessageString(ZMW10601SFConst.KEY_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
		
		// 大字通称名
		strValue1 = bean.sendMessageString(ZMW10601SFConst.OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue1 != null)
		{
			bean.sendMessageString(ZMW10601SFConst.KEY_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
		
		// 字丁目
		strValue1 = bean.sendMessageString(ZMW10601SFConst.AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE);
		if(strValue1 != null)
		{
			bean.sendMessageString(ZMW10601SFConst.KEY_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
	}
	
	/**
	 * セッションから取得したHashMapからサービスフォームBeanへ検索用および入力項目<BR>
	 * へセット。
     * <BR>
     * @param inBean サービスフォームBean
     * @param searchInfo セッションから取り出したHashMap
	 * @throws Exception 
	 */
	private void setServiceFormBeanFromSession(X31SDataBeanAccess inBean, HashMap<String, Object> searchInfo) throws Exception
	{
		String strValue1 = "";
		String strValue2 = "";
		String strValue3 = "";
		String strValue4 = "";
		
		// 郵便番号
		strValue1 = nval((String)searchInfo.get(JZMStrConst.key_pcd_1));
		strValue2 = nval((String)searchInfo.get(JZMStrConst.key_pcd_2));
		
		// 入力項目セット
		inBean.sendMessageString(ZMW10601SFConst.PCD_1, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		inBean.sendMessageString(ZMW10601SFConst.PCD_2, X31CWebConst.DATABEAN_SET_VALUE, strValue2);
		
		// 検索用項目セット
		inBean.sendMessageString(ZMW10601SFConst.KEY_PCD, X31CWebConst.DATABEAN_SET_VALUE, strValue1 + strValue2);
		
		// 住所コード
		strValue1 = nval((String)searchInfo.get(JZMStrConst.key_ad_cd_1));
		strValue2 = nval((String)searchInfo.get(JZMStrConst.key_ad_cd_2));
		strValue3 = nval((String)searchInfo.get(JZMStrConst.key_ad_cd_3));
		strValue4 = nval((String)searchInfo.get(JZMStrConst.key_ad_cd_4));
		
		// 入力項目セット
		inBean.sendMessageString(ZMW10601SFConst.AD_CD_1, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		inBean.sendMessageString(ZMW10601SFConst.AD_CD_2, X31CWebConst.DATABEAN_SET_VALUE, strValue2);
		inBean.sendMessageString(ZMW10601SFConst.AD_CD_3, X31CWebConst.DATABEAN_SET_VALUE, strValue3);
		inBean.sendMessageString(ZMW10601SFConst.AD_CD_4, X31CWebConst.DATABEAN_SET_VALUE, strValue4);
		
		// 検索用項目セット
		inBean.sendMessageString(ZMW10601SFConst.KEY_AD_CD, X31CWebConst.DATABEAN_SET_VALUE, 
											strValue1 + strValue2 + strValue3 + strValue4);
		
		// 都道府県名
		strValue1 = (String)searchInfo.get(JZMStrConst.key_state_nm);
		if(strValue1 != null && !("".equals(strValue1)))
		{
			
			// 入力項目セット
			inBean.sendMessageString(ZMW10601SFConst.STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
			
			// 検索用項目セット
			inBean.sendMessageString(ZMW10601SFConst.KEY_STATE_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
		
		// 市区町村名
		strValue1 = (String)searchInfo.get(JZMStrConst.key_city_nm);
		if(strValue1 != null && !("".equals(strValue1)))
		{
			
			// 入力項目セット
			inBean.sendMessageString(ZMW10601SFConst.CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
			
			// 検索用項目セット
			inBean.sendMessageString(ZMW10601SFConst.KEY_CITY_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
		
		// 大字通称名
		strValue1 = (String)searchInfo.get(JZMStrConst.key_oaztsu_nm);
		if(strValue1 != null && !("".equals(strValue1)))
		{
			
			// 入力項目セット
			inBean.sendMessageString(ZMW10601SFConst.OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
			
			// 検索用項目セット
			inBean.sendMessageString(ZMW10601SFConst.KEY_OAZTSU_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
		
		// 字丁目
		strValue1 = (String)searchInfo.get(JZMStrConst.key_azcho_nm);
		if(strValue1 != null && !("".equals(strValue1)))
		{
			
			// 入力項目セット
			inBean.sendMessageString(ZMW10601SFConst.AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
			
			// 検索用項目セット
			inBean.sendMessageString(ZMW10601SFConst.KEY_AZCHO_NM, X31CWebConst.DATABEAN_SET_VALUE, strValue1);
		}
	}
	
	/**
	 * Null検索処理
	 * @param value 検査対象
	 * @return 検査対象がnullの場合、空文字("")を返す。
	 */
	private String nval(String value)
	{
		if(value == null)
		{
			return "";
		}
		else
		{
			return value;
		}
	}
}
