/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：マンション検索結果確認(量販・訪販)
*   ソースファイル名：FUW00947SFLogic.java
*   作成者          ：富士通
*   日付            ：2020年09月02日
*＜機能概要＞
*  マンション検索結果確認(量販・訪販)のビューロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*  v51.00.00    2020/09/02   FJ）岡井    【ANK-3885-00-00】光化マンションの自動設計対応
*  v60.00       2022/06/20   FJ）美濃原  【ANK-4244-00-00】【eo定期】MT既設賃貸対応
*
**********************************************************************/
package eo.web.webview.FUW00947SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.HashMap;
import java.util.Map;

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.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JFUGetManmosKanri;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0337_FUSV0337OPDBMapper;

/**
 * マンション検索結果確認(量販・訪販)のビューロジッククラスです。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW00947SFLogic extends JCCWebBusinessLogic
{
	/** サービスID */
	private static final String USECASE_ID_FUSV0337 = "FUSV0337";
	
	/** FUSV033701CC */
	private static final String FUSV033701CC = "JFUGetManmosKanriInfoCC";
	
	/** エラーメッセージID：EKF2140-KW */
	private static final String ERR_MSG_ID_EKF0420_TW = "EKF0420-TW";
	/** エラーメッセージID：EKF2140-KW */
	private static final String ERR_MSG_ID_EKF2140_KW = "EKF2140-KW";
	/** エラーメッセージID：EKF2150-KW */
	private static final String ERR_MSG_ID_EKF2150_KW = "EKF2150-KW";
	
	/** エラーメッセージ置換文字1 */
	private static final String[] REP_STR_1 = new String[] {"部屋番号", "正しく選択"};
	/** エラーメッセージ置換文字2 */
	private static final String[] REP_STR_2 = new String[] {"部屋番号と棟情報の組合せ", "正しく選択"};
	
	/** エラー表示項目ID：room_no */
	private static final String ROOM_NO = "room_no";

	/** 定義取得パス */
	private static final String PATH_TEXT = "DISPSETTING/SETTING[@screenId='FUW00947']/DISPTEXT[@groupid='err_msg']";
	/** 属性名 */
	private static final String QUERY_ATTR_NAME = "id";
	/** ID：other_info */
	private static final String OTHER_INFO = "other_info";

	/**
	 * 初期表示処理
	 * @return boolean true(固定)
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
		// 画面表示設定処理
		setDspInfo();
		
		// 申込受付実績登録部品実行
		JFUWebCommon.executeWebMskmUkJskAdd(this);
		
		return true;
	}
	
	/**
	 * お申し込みボタン押下時
	 * @return boolean true(固定)
	 * @throws Exception 
	 */
	public boolean mskm() throws Exception
	{
		// サービスフォームBeanを取得する
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共有フォームBeanを取得する
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		
		// 共有フォームBeanからWEB新規情報を取得する
		X31SDataBeanAccess webNewInfoBean = getX31SDataBeanAccess(commonInfoBean, CommonInfoCFConst.WEB_NEW_INFO);
		
		// WEB新規情報からリダイレクト情報を取得
		X31SDataBeanAccess redirectInfoBean = getX31SDataBeanAccess(webNewInfoBean, CommonInfoCFConst.REDIRECT_INFO);
		
		// WEB新規情報からマンション情報を取得する
		X31SDataBeanAccess mansionInfoBean = getX31SDataBeanAccess(webNewInfoBean, CommonInfoCFConst.MANSION_INFO);
		
		// 各Beanを配列に格納
		X31SDataBeanAccess[] beanArray = { bean, webNewInfoBean, mansionInfoBean };
		
		// ユースケースID格納用マップを生成。
		HashMap<String, String> paramMap = new HashMap<String, String>(16);
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0337);
		
		FUSV0337_FUSV0337OPDBMapper mapper = new FUSV0337_FUSV0337OPDBMapper();
		
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// 上りマッピング
		// MT管理情報照会(MANMOS)照会CC
		mapper.setFUSV033701CC(beanArray, dataMap, JPCModelConstant.FUNC_CD_1);
		
		if (isSeqErr(bean, dataMap))
		{
			// ＭＡＮＭＯＳ管理でＳＥＱが取得出来ない（部屋・棟の組合せエラー）
			DEBUG_LOG.info("※申込上限メッセージ表示確認処理※ＳＥＱ取得エラー※");
			return true;
		}
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// サービスの呼び出しを行う。
		try
		{
			invokeService(paramMap, dataMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		
		// マンション情報チェック
		if (!chkMansData(outputMap))
		{
			return true;
		}
		
		// 画面引継ぎ処理
		setCommonInfo();
		
		// 遷移パターンを取得
		String navigatorPtn = redirectInfoBean.sendMessageString(CommonInfoCFConst.NAVIGATOR_PTN_17, X31CWebConst.DATABEAN_GET_VALUE);
		// 加入契約申込条件コードを取得
		String knykeiMskmJokenCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.KNYKEI_MSKM_JOKEN_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
		// 光テレビ提供状況コードを取得
		String hikariTvTkJokyoCd = mansionInfoBean.sendMessageString(CommonInfoCFConst.HIKARI_TV_TK_JOKYO_CD_16, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 遷移先画面ＩＤ
		String nextScreenId = "";
		
		// 遷移先画面名
		String nextScreenName = "";
		
		// 共有フォームBean.WEB新規情報.マンション情報.加入契約申込条件コードが"13"(全戸一括)の場合
		if (JFUStrConst.KNYKEI_MSKM_JOKEN_IKT.equals(knykeiMskmJokenCd)
				&& !JFUStrConst.HIKARI_TV_TK_JOKYO_CD_TV_TNDK.equals(hikariTvTkJokyoCd))
		{
			nextScreenId = JFUScreenConst.SCREEN_ID_FUW00934;
			nextScreenName = JFUScreenConst.SCREEN_NAME_FUW00934;
		}
		// 共有フォームBean.WEB新規情報.リダイレクト情報.遷移パターンが"2"(料金シミュレーション)の場合
		else if (JFUStrConst.NAVI_PTN_SIML.equals(navigatorPtn))
		{
			nextScreenId = JFUScreenConst.SCREEN_ID_FUW00942;
			nextScreenName = JFUScreenConst.SCREEN_NAME_FUW00942;
		}
		else
		{
			nextScreenId = JFUScreenConst.SCREEN_ID_FUW00911;
			nextScreenName = JFUScreenConst.SCREEN_NAME_FUW00911;
		}
		
		// 画面遷移モード
		webNewInfoBean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.SCREEN_MODE_DEF);
		// 遷移先画面ID
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		// 遷移先画面名
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
		
		return true;
	}
	
	/**
	 * 戻るボタン押下時
	 * @return boolean true(固定)
	 * @throws Exception 
	 */
	public boolean back() throws Exception
	{
		// 共有フォームBeanを取得する
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		
		// 共有フォームBeanからWEB新規情報を取得する
		X31SDataBeanAccess webNewInfoBean = getX31SDataBeanAccess(commonInfoBean, CommonInfoCFConst.WEB_NEW_INFO);
		
		// 共有フォームBeanへ設定
		JFUWebCommon.comClear(this);
		
		// 画面遷移モード
		webNewInfoBean.sendMessageString(CommonInfoCFConst.SCREEN_MODE_06, X31CWebConst.DATABEAN_SET_VALUE, JFUStrConst.SCREEN_MODE_DEF);
		// 遷移先画面ID
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW00910);
		// 遷移先画面名
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW00910);
		
		return true;
	}
	
	/**
	 * 画面表示設定処理です。
	 * 
	 * <br>
	 */
	private void setDspInfo()
	{
		// ANK-3885-00-00 ADD STRAT
		// 共有フォームBeanを取得する
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// サービスフォームBeanを取得する
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共有フォームBeanからWEB新規情報を取得する
		X31SDataBeanAccess webNewInfoBean = getX31SDataBeanAccess(commonInfoBean, CommonInfoCFConst.WEB_NEW_INFO);
		// WEB新規情報からマンション情報を取得する
		X31SDataBeanAccess mansionInfoBean = getX31SDataBeanAccess(webNewInfoBean, CommonInfoCFConst.MANSION_INFO);
		
		// 光化マンションフラグ
		String hikarikaMansFlg = mansionInfoBean.sendMessageString(CommonInfoCFConst.HIKARIKA_MANS_FLG_16, X31CWebConst.DATABEAN_GET_VALUE);
		// 部屋番号(選択)
		String rmNo = mansionInfoBean.sendMessageString(CommonInfoCFConst.RM_NO_16, X31CWebConst.DATABEAN_GET_VALUE);
		// 棟情報(選択)
		String touInfo = mansionInfoBean.sendMessageString(CommonInfoCFConst.TOU_INFO_16, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (JFUStrConst.HIKARIKA_MANS_FLG_1.equals(hikarikaMansFlg))
		{
			// 部屋番号プルダウンの設定
			String rmNoList = mansionInfoBean.sendMessageString(CommonInfoCFConst.RM_NO_LIST_16, X31CWebConst.DATABEAN_GET_VALUE);
			
			X31SDataBeanAccessArray rmListBeanArray = bean.getDataBeanArray(FUW00947SFConst.ROOM_NO);
			rmListBeanArray.clearArray();
			
			String[] tmpRmNoList = null;
			if (!JFUWebCommon.isNull(rmNoList))
			{
				if (rmNoList.contains(JFUStrConst.COMMA))
				{
					tmpRmNoList = rmNoList.split(JFUStrConst.COMMA);
				}
				else
				{
					tmpRmNoList = new String[1];
					tmpRmNoList[0] = rmNoList;
				}
				
				X31SDataBeanAccess rmListBean = rmListBeanArray.addDataBean();
				
				// 1つ目は空文字を設定
				rmListBean.sendMessageString(FUW00947SFConst.SELECT_LABEL_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
				
				// 2つ目以降
				int index = 0;
				for (int i = 0; i < tmpRmNoList.length; i++)
				{
					rmListBean.sendMessageString(FUW00947SFConst.SELECT_LABEL_01, X31CWebConst.DATABEAN_ADD_VALUE, tmpRmNoList[i]);
					
					if (!JFUWebCommon.isNull(rmNo) && rmNo.equals(tmpRmNoList[i]))
					{
						// 選択済の部屋番号と一致するインデックスを設定
						index = i + 1;
					}
				}
				
				// 選択を復元
				X31SDataBeanAccess rmListBean0 = bean.getDataBeanArray(FUW00947SFConst.ROOM_NO).getDataBean(0);
				rmListBean0.sendMessageLong(FUW00947SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_SET_VALUE, 0, Long.valueOf(index));
				
				// 部屋情報表示フラグ(表示)
				bean.sendMessageBoolean(FUW00947SFConst.ROOM_INFO_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
			else
			{
				// 部屋情報表示フラグ(非表示)
				bean.sendMessageBoolean(FUW00947SFConst.ROOM_INFO_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
			
			// 棟情報プルダウンの設定
			String touInfoList = mansionInfoBean.sendMessageString(CommonInfoCFConst.TOU_INFO_LIST_16, X31CWebConst.DATABEAN_GET_VALUE);
			
			X31SDataBeanAccessArray touInfoListBeanArray = bean.getDataBeanArray(FUW00947SFConst.TOU_INFO);
			touInfoListBeanArray.clearArray();
			
			String[] tmpTouInfoList = null;
			if (!JFUWebCommon.isNull(touInfoList))
			{
				if (touInfoList.contains(JFUStrConst.COMMA))
				{
					tmpTouInfoList = touInfoList.split(JFUStrConst.COMMA);
				}
				else
				{
					tmpTouInfoList = new String[1];
					tmpTouInfoList[0] = touInfoList;
				}
				
				X31SDataBeanAccess touInfoListBean = touInfoListBeanArray.addDataBean();
				
				// 1つ目は空文字を設定
				touInfoListBean.sendMessageString(FUW00947SFConst.SELECT_LABEL_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
				
				// 2つ目以降
				int index = 0;
				for (int i = 0; i < tmpTouInfoList.length; i++)
				{
					touInfoListBean.sendMessageString(FUW00947SFConst.SELECT_LABEL_01, X31CWebConst.DATABEAN_ADD_VALUE, tmpTouInfoList[i]);
					
					if (!JFUWebCommon.isNull(touInfo) && touInfo.equals(tmpTouInfoList[i]))
					{
						// 選択済の棟情報と一致するインデックスを設定
						index = i + 1;
					}
				}
				
				// 選択を復元
				X31SDataBeanAccess touInfoListBean0 = bean.getDataBeanArray(FUW00947SFConst.TOU_INFO).getDataBean(0);
				touInfoListBean0.sendMessageLong(FUW00947SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_SET_VALUE, 0, Long.valueOf(index));
				
				// 棟情報表示フラグ(表示)
				bean.sendMessageBoolean(FUW00947SFConst.TOU_INFO_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
			}
			else
			{
				// 棟情報表示フラグ(非表示)
				bean.sendMessageBoolean(FUW00947SFConst.TOU_INFO_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
			}

			// 物件情報が取得出来なかった場合
			if (JFUWebCommon.isNull(rmNoList) && JFUWebCommon.isNull(touInfoList))
			{
				// 部屋情報表示フラグ(表示) ※ＭＡＮＭＯＳ管理物件は必ず存在するはず
				bean.sendMessageBoolean(FUW00947SFConst.ROOM_INFO_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
				// 棟情報表示フラグ(表示)
				bean.sendMessageBoolean(FUW00947SFConst.TOU_INFO_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
				// 部屋情報 1つ目は空文字を設定
				rmListBeanArray.clearArray();
				X31SDataBeanAccess rmListBean = rmListBeanArray.addDataBean();
				rmListBean.sendMessageString(FUW00947SFConst.SELECT_LABEL_01, X31CWebConst.DATABEAN_ADD_VALUE, JFUStrConst.EMPTY);
			}
		}
		else
		{
			// 部屋情報表示フラグ(非表示)
			bean.sendMessageBoolean(FUW00947SFConst.ROOM_INFO_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		// ANK-3885-00-00 ADD END
	}
	
	/**
	 * 画面入力値の引継ぎ処理です。
	 * 
	 * <br>
	 */
	private void setCommonInfo()
	{
		// ANK-3885-00-00 ADD STRAT
		// 共有フォームBeanを取得する
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// サービスフォームBeanを取得する
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共有フォームBeanからWEB新規情報を取得する
		X31SDataBeanAccess webNewInfoBean = getX31SDataBeanAccess(commonInfoBean, CommonInfoCFConst.WEB_NEW_INFO);
		// WEB新規情報からマンション情報を取得する
		X31SDataBeanAccess mansionInfoBean = getX31SDataBeanAccess(webNewInfoBean, CommonInfoCFConst.MANSION_INFO);
		
		// 光化マンションフラグ
		String hikarikaMansFlg = mansionInfoBean.sendMessageString(CommonInfoCFConst.HIKARIKA_MANS_FLG_16, X31CWebConst.DATABEAN_GET_VALUE);
		// 部屋情報表示フラグ
		boolean roomInfoDspFlg = bean.sendMessageBoolean(FUW00947SFConst.ROOM_INFO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (JFUStrConst.HIKARIKA_MANS_FLG_1.equals(hikarikaMansFlg) && roomInfoDspFlg)
		{
			// 部屋番号
			// プルダウン情報
			X31SDataBeanAccess rmNoBean = bean.getDataBeanArray(FUW00947SFConst.ROOM_NO).getDataBean(0);
			// 選択値
			int rmNoSelVal = rmNoBean.sendMessageLong(FUW00947SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_GET_VALUE, 0).intValue();
			// ラベル値
			String selRmNo = rmNoBean.sendMessageString(FUW00947SFConst.SELECT_LABEL_01, X31CWebConst.DATABEAN_GET_VALUE, rmNoSelVal);
			// 共有フォームBean.マンション情報.部屋番号
			mansionInfoBean.sendMessageString(CommonInfoCFConst.RM_NO_16, X31CWebConst.DATABEAN_SET_VALUE, selRmNo);
			
			if (bean.sendMessageBoolean(FUW00947SFConst.TOU_INFO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// 棟情報(表示している場合)
				// プルダウン情報
				X31SDataBeanAccess touInfoBean = bean.getDataBeanArray(FUW00947SFConst.TOU_INFO).getDataBean(0);
				// 選択値
				int touInfoSelVal = touInfoBean.sendMessageLong(FUW00947SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_GET_VALUE, 0).intValue();
				// ラベル値
				String selTouInfo = touInfoBean.sendMessageString(FUW00947SFConst.SELECT_LABEL_01, X31CWebConst.DATABEAN_GET_VALUE, touInfoSelVal);
				// 共有フォームBean.マンション情報.棟情報
				mansionInfoBean.sendMessageString(CommonInfoCFConst.TOU_INFO_16, X31CWebConst.DATABEAN_SET_VALUE, selTouInfo);
			}
		}
		// ANK-3885-00-00 ADD END
	}
	
	/**
	 * マンション情報チェック処理です。
	 * 
	 * <br>
	 * @param outputMap アウトマップ
	 * @return チェック結果
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	private boolean chkMansData(HashMap outputMap) throws Exception
	{
		// 共有フォームBeanを取得する
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// サービスフォームBeanを取得する
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 共有フォームBeanからWEB新規情報を取得する
		X31SDataBeanAccess webNewInfoBean = getX31SDataBeanAccess(commonInfoBean, CommonInfoCFConst.WEB_NEW_INFO);
		// WEB新規情報からマンション情報を取得する
		X31SDataBeanAccess mansionInfoBean = getX31SDataBeanAccess(webNewInfoBean, CommonInfoCFConst.MANSION_INFO);
		
		// 光化マンションフラグ
		String hikarikaMansFlg = mansionInfoBean.sendMessageString(CommonInfoCFConst.HIKARIKA_MANS_FLG_16, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (!JFUStrConst.HIKARIKA_MANS_FLG_1.equals(hikarikaMansFlg))
		{
			// 光化マンション以外はチェックOKとして終了する
			return true;
		}
		
		boolean result = true;

		HashMap<String, Object> resultMap = JFUGetManmosKanri.getManmosKnriInfoFromCC((HashMap)outputMap.get(FUSV033701CC));
		boolean record = (Boolean)resultMap.get("exists");
		String sekouFfg = (String)resultMap.get("sekou_ng_flg");
		String portAkiJokyoCd = (String)resultMap.get("cfm_rslt_cd");
		String cct_set_cd = (String)resultMap.get("cct_set_cd");
		mansionInfoBean.sendMessageString(CommonInfoCFConst.CCT_SET_CD_16, X31CWebConst.DATABEAN_SET_VALUE, cct_set_cd);
		
		if (!record)
		{
			// レコードが存在しない場合
			if (!bean.sendMessageBoolean(FUW00947SFConst.TOU_INFO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// 棟情報表示なし
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF0420_TW, REP_STR_1, ROOM_NO);
				result = false;
			}
			else
			{
				// 棟情報表示あり
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF0420_TW, REP_STR_2, ROOM_NO);
				result = false;
			}
		}
		else
		{
			// レコードが存在する場合
			if (JFUStrConst.CCT_SET_CD_EMPTY.equals(cct_set_cd))
			{
				// コンセント設置内容が空白の場合はエラー
				Map<String, String> msgMap = JFUWebCommon.getDispItemsAsMap(PATH_TEXT, QUERY_ATTR_NAME);
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF2150_KW, new String[] { msgMap.get(OTHER_INFO) }, ROOM_NO);
				result = false;
			}
			else if (JFUStrConst.MANMOS_CFM_RSLT_CD_02.equals(portAkiJokyoCd) || JFUStrConst.MANMOS_SEKOU_NG_FLG_1.equals(sekouFfg))
			{
				// 確認結果コードが「02:空き無し」、または、施工不可フラグが「1:施工不可」の場合はエラー
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF2140_KW, ROOM_NO);
				result = false;
			}
			else if (JFUStrConst.MANMOS_CFM_RSLT_CD_03.equals(portAkiJokyoCd))
			{
				// 確認結果コードが「03:利用中」の場合はエラー
				Map<String, String> msgMap = JFUWebCommon.getDispItemsAsMap(PATH_TEXT, QUERY_ATTR_NAME);
				JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF2150_KW, new String[] { msgMap.get(OTHER_INFO) }, ROOM_NO);
				result = false;
			}
		}
		
		return result;
	}
	
	/**
	 * データBeanリストから0番目のデータBeanを取得する
	 * @param bean データBean
	 * @param componentID データタイプBeanID
	 * @return 取得したデータBean
	 */
	private X31SDataBeanAccess getX31SDataBeanAccess(X31SDataBeanAccess bean, String componentID)
	{
		X31SDataBeanAccessArray subBeanArray = bean.getDataBeanArray(componentID);
		X31SDataBeanAccess subBean = subBeanArray.getDataBean(0);
		if (null == subBean)
		{
			subBeanArray.addDataBean();
			subBean = subBeanArray.getDataBean(0);
		}
		return subBean;
	}

	/**
	 * 
	 * 部屋番号選択時、SEQが取得出来ない場合はエラー。
	 * 
	 * <br>
	 * @param bean サービスフォームBean
	 * @param dataMap サービスIFパラメータ
	 * @return true：エラー
	 */
	@SuppressWarnings("unchecked")
	private boolean isSeqErr(X31SDataBeanAccess bean, HashMap<String, Object> dataMap)
	{
		if (dataMap.containsKey(FUSV033701CC))
		{
			HashMap<String, Object> map = (HashMap<String, Object>)dataMap.get(FUSV033701CC);
			if (JFUWebCommon.isNull(map.get("key_seq")))
			{
				// レコードが存在しない場合
				if (!bean.sendMessageBoolean(FUW00947SFConst.TOU_INFO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 棟情報表示なし
					JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF0420_TW, REP_STR_1, ROOM_NO);
				}
				else
				{
					// 棟情報表示あり
					JCCWebCommon.setMessageInfo(this, ERR_MSG_ID_EKF0420_TW, REP_STR_2, ROOM_NO);
				}
				return true;
			}
		}
		return false;
	}
}
