/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：FUW12201SFLogic
*   ソースファイル名：FUW12201SFLogic.java
*   作成者          ：富士通
*   日付            ：2018年06月15日
*＜機能概要＞
*    mineoセット割申込画面サービスフォームBeanビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v38.00      2018/06/15  FJ) 美濃原    【ANK-3436-00-00】eo光×eo電気×mineoセット割対応
*   v57.00      2022/01/26  FJ）新谷      【ANK-4195-00-00】eo光ネット×mineoセット割施策開始対応
*
**********************************************************************/
package eo.web.webview.FUW12201SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.text.ParseException;
import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.common.JSYLogBase;
import com.fujitsu.futurity.common.JSYwebLog;
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 com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JFUCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.FUW00144SF.FUW00144SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JFUCommonRelationCheck;
import eo.web.webview.common.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
//import eo.web.webview.mapping.FUSV0318_FUSV0318OPDBMapper;
//import eo.web.webview.mapping.FUSV0319_FUSV0319OPDBMapper;
import eo.web.webview.mapping.FUSV0318_FUSV0318OPDBMapper;
import eo.web.webview.mapping.FUSV0319_FUSV0319OPDBMapper;
import eo.web.webview.mapping.FUSV0320_FUSV0320OPDBMapper;

/**
 * mineoセット割申込画面サービスフォームBeanビューロジック
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW12201SFLogic extends JCCWebBusinessLogic
{

	/** サービスユースケースID：mineoセット割申込(申込) 共通関連チェック用 */
	private static final String USECASE_ID_FUSV0318 = "FUSV0318";

	/** サービスユースケースID：mineoセット割申込(初期表示) */
	private static final String USECASE_ID_FUSV0320_INIT = "FUSV0320";
	/** サービスユースケースID：mineoセット割適用可否照会・変更依頼 */
	private static final String USECASE_ID_FUSV0319_CFM = "FUSV0319";
	/** サービスユースケースID：mineoセット割申込(申込) */
	private static final String USECASE_ID_FUSV0318_MSKM = "FUSV0318";

	/** DataBean操作種別：項目値設定 */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;
	/** DataBean操作種別：項目値取得 */
	private static final String GET = X31CWebConst.DATABEAN_GET_VALUE;

	/** メッセージID EKF2020-NW */
	private static final String MSG_EKF2020_NW = "EKF2020-NW";
	/** メッセージID EKF2030-NW */
	private static final String MSG_EKF2030_NW = "EKF2030-NW";

	/** 文言表示フラグ 0：非表示（初期値）*/
	private static final String MESSAGE_DSP_FLG_OFF = "0";
	/** 文言表示フラグ 1：メンテナンスエラー表示*/
	private static final String MNT_ERR_DSP_FLG_ON = "1";
	/** 文言表示フラグ 2：期限超過エラー表示*/
	private static final String KIGEN_ERR_DSP_FLG_ON = "2";

	/** 更新区分(変更) */
	private static final String KSN_KBN_UPDATE = "2";
	/** エラーテンプレートID：個別割引適用可否照会・変更依頼のエラー用 */
	private static final String EKKA0070001 = "EKKA0070001";

	/**
	 * 初期処理
	 * <br>
	 * @return	処理結果
	 * @throws Exception	例外
	 */
	public boolean init() throws Exception
	{
		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(INIT) START★★★★★");

		// ■設備卸チェック
		JFUWebCommon.checkOrosi(this);

		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// 共通フォームBean.ＷＥＢ変更情報
		X31SDataBeanAccess webChgInfo = getWebChgInfoBean(commonInfoBean);
		// 共通フォームBean.ＷＥＢ変更情報.ＳＳＯ情報
		X31SDataBeanAccessArray ssoInfoArray = webChgInfo.getDataBeanArray(CommonInfoCFConst.SSO_INFO);
		X31SDataBeanAccess ssoInfoBean = ssoInfoArray.getDataBean(0);
		String svcKeiNo = ssoInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_21, GET);
		// 共通フォームBean.ＷＥＢ変更情報.現顧客契約情報
		X31SDataBeanAccess genCustKeiInfoBean = genCustKeiInfoBean(webChgInfo);
		// 共有フォームBean.ＷＥＢ変更情報.現顧客契約情報.サービス契約情報
		X31SDataBeanAccessArray svcKeiInfoArray = genCustKeiInfoBean.getDataBeanArray(CommonInfoCFConst.SVC_KEI_INFO);

		// ■ＳＳＯ情報のサービス契約番号を元にネットの情報を取得する
		X31SDataBeanAccess netSvcKeiInfoBean = getNetSvcKeiInfoBean(svcKeiInfoArray, svcKeiNo);

		// ■契約状態チェック
		if (netSvcKeiInfoBean == null)
		{
			DEBUG_LOG.debug("★★★★★mineoセット割申込(FUW12201) ネット契約無しのためエラー★★★★★");
			// 契約状態エラー（共通関連チェックで制御されるためとれないことはないはず）
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
		}
		String prcGrpCd = netSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.PRC_GRP_CD_23, GET);
		String kanyuKeiPayHoshikiCd = netSvcKeiInfoBean.sendMessageString(CommonInfoCFConst.KANYU_KEI_PAY_HOSHIKI_CD_23, GET);
		if (JFUStrConst.CD00133_04.equals(prcGrpCd))
		{
			if (!JFUStrConst.CD01216_001.equals(kanyuKeiPayHoshikiCd) && !JFUStrConst.CD01216_002.equals(kanyuKeiPayHoshikiCd))
			{
				// 「共有フォームBean.ＷＥＢ変更情報.現顧客契約情報.サービス契約情報.料金グループコード」が「04:eo光ネットマンションタイプ」で
				// 「共有フォームBean.ＷＥＢ変更情報.現顧客契約情報.サービス契約情報.加入契約支払方式コード」が 「001：ベース」か「002：個別」 以外の場合はエラーとする
				DEBUG_LOG.debug("★★★★★mineoセット割申込(FUW12201) マンションの場合は、[個別]以外はエラー★★★★★");
				// 契約状態エラー
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
			}
		}

//		// ■mineoセット割が申込可能か判定
//		if (!isCheckPropOK())
//		{
//			// 契約状態エラー
//			DEBUG_LOG.debug("★★★★★mineoセット割申込(FUW12201) mineoセット割の申込不可エラー★★★★★");
//			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0102);
//		}

		// 初期設定
		JCCWebCommon.getScreenInfo(this);

		// ■サービスの呼び出しを行います。 割引サービス情報取得(表示用キャンペーンコード)
		invokeServiceFusv0320Init();

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW12201);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW12201);

		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(INIT) END★★★★★");
		return true;
	}

	/**
	 * 申込画面の確認ボタン押下時の処理です。
	 * 
	 * @return 必ずtrue
	 * @throws Exception
	 */
	public boolean cfm() throws Exception
	{
		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(CFM) START★★★★★");

		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = { commonInfoBean, serviceInfoBean };

		// ●検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0319_CFM);

		FUSV0319_FUSV0319OPDBMapper mapper = new FUSV0319_FUSV0319OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();

		// ●上りマッピング
		// mineoセット割適用可否照会・変更依頼CC
		String opeDateTimeStamp = JCCWebCommon.getOpeDateTimeStamp(this, null);
		mapper.setFUSV031901CC(paramBean, inputMap, KSN_KBN_UPDATE, opeDateTimeStamp);

		// ●サービスの呼び出し
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 例外詳細情報を取得
			X31CMessageMoreInfo[] moreInfo = se.getMessageList().getMessageMoreInfoList();
			// メッセージ詳細情報クラスを取得
			// (関連チェック系は必ずエラーが1つのため0番目から取得する)
			X31CMessageMoreInfo info = moreInfo[0];

			String templateid = info.getTemplateId();
			String itemid = info.getItemId();
			String status = info.getStatus();
			String errFlg = info.getItemCheckErr();

			if (String.valueOf(JPCModelConstant.RELATION_ERR).equals(status))
			{
				// EKKA0070001 個別割引適用可否照会・変更依頼
				if (EKKA0070001.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
				{
					if ("shokai".equals(itemid) || "else".equals(itemid)) {
						// 単項目チェックエラーとしてユーザーに入力内容確認を促す。
						JCCWebCommon.setMessageInfo(this, MSG_EKF2020_NW, "mineo_setplan");
						return true;
					} else if ("nodata".equals(itemid)) {
						// 単項目チェックエラーとしてユーザーに入力内容確認を促す。
						JCCWebCommon.setMessageInfo(this, MSG_EKF2030_NW, "mineo_setplan");
						return true;
					}
				}
			}
			// 上記以外の場合 単項目チェックエラーとしてユーザーに入力内容確認を促す。
			JCCWebCommon.setMessageInfo(this, MSG_EKF2020_NW, "mineo_setplan");
			return true;
		}
		// メッセージの初期化
		serviceInfoBean.sendMessageString(FUW12201SFConst.MESSAGE_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MESSAGE_DSP_FLG_OFF);

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW12202);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW12202);

		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(CFM) END★★★★★");
		return true;
	}

	/**
	 * 申込確認画面の申し込むボタン押下時の処理です。
	 * 
	 * @return 必ずtrue
	 * @throws Exception
	 */
	public boolean mskm() throws Exception
	{
		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(MSKM) START★★★★★");

		// ●共通関連チェック
		JFUCommonRelationCheck.checkCommonRelation(this, USECASE_ID_FUSV0318);

		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceInfoBean = super.getServiceFormBean();

		// 初期化
		initMskmItem(serviceInfoBean);

		if (!chkMskm1(serviceInfoBean, commonInfoBean))
		{
			// 変更系受付終了年月日 < 運用年月日の場合、エラー
			serviceInfoBean.sendMessageString(FUW12201SFConst.MESSAGE_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, KIGEN_ERR_DSP_FLG_ON);
			return true;
		}

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = { commonInfoBean, serviceInfoBean };

		// ●検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0318_MSKM);

		FUSV0318_FUSV0318OPDBMapper mapper = new FUSV0318_FUSV0318OPDBMapper();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();

		// ●上りマッピング
		String opeDateTimeStamp = JCCWebCommon.getOpeDateTimeStamp(this, null);
		// mineoセット割適用可否照会・変更依頼CC
		mapper.setFUSV031801CC(paramBean, inputMap, opeDateTimeStamp);
		// 進捗登録SC
		mapper.setFUSV031801SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1, opeDateTimeStamp);

		// ●サービスの呼び出し
		try
		{
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException se)
		{
			// 例外詳細情報を取得
			X31CMessageMoreInfo[] moreInfo = se.getMessageList().getMessageMoreInfoList();
			// メッセージ詳細情報クラスを取得
			// (関連チェック系は必ずエラーが1つのため0番目から取得する)
			X31CMessageMoreInfo info = moreInfo[0];

			String templateid = info.getTemplateId();
			String itemid = info.getItemId();
			String status = info.getStatus();
			String errFlg = info.getItemCheckErr();

			if (String.valueOf(JPCModelConstant.RELATION_ERR).equals(status))
			{
				// EKKA0070001 個別割引適用可否照会・変更依頼
				if (EKKA0070001.equals(templateid) && JFUStrConst.RELATION_CHECK_ERR_EA.equals(errFlg))
				{
					if ("touroku".equals(itemid) || "else".equals(itemid)) {
						// 個別割引変更依頼の処理結果が("0"：登録・削除完了)以外の場合
						// システムエラー
						throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
					} else if ("mente".equals(itemid)) {
						// セット割管理システムがメンテナンス中の場合
						// メンテナンス中のメッセージを表示する
						serviceInfoBean.sendMessageString(FUW12201SFConst.MESSAGE_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MNT_ERR_DSP_FLG_ON);
						return true;
					}
				}
			}
			// 上記以外の場合、システムエラー
			DEBUG_LOG.debug("★★★★★mineoセット割申込(FUW12201) システムエラー★★★★★");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW12203);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW12203);

		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(MSKM) END★★★★★");
		return true;
	}

	/**
	 * 申込確認画面の戻るボタン押下時の処理です。
	 * 
	 * @return 必ずtrue
	 * @throws Exception
	 */
	public boolean back() throws Exception
	{
		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(BACK) START★★★★★");

		// 共有フォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW12201);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW12201);

		DEBUG_LOG.debug("★★★★★mineoセット割申込のビューロジック処理(BACK) END★★★★★");
		return true;
	}

	/**
	 * サービスの呼び出しを行います。
	 * 割引サービス情報取得(表示用キャンペーンコード)
	 */
	@SuppressWarnings("unchecked")
	private void invokeServiceFusv0320Init()
	{
		// 共有フォームBean
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();
		// サービスフォームBean
		X31SDataBeanAccess serviceInfoBean = getServiceFormBean();

		// サービスフォームBeanの基準日に運用日付を設定する。
		serviceInfoBean.sendMessageString(FUW00144SFConst.STDARD_DAY, SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		// ■サービスIDをparamにセット
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_FUSV0320_INIT);

		// DataBean-BPマッピング
		FUSV0320_FUSV0320OPDBMapper mapper = new FUSV0320_FUSV0320OPDBMapper();

		HashMap inputMap = new HashMap();
		HashMap outputMap = new HashMap();

		X31SDataBeanAccess[] paramBean = { commonInfoBean, serviceInfoBean };

		// 機能コード「1」を設定
		// 業務パラメータ
		mapper.setFUSV032001CC(inputMap, JPCModelConstant.FUNC_CD_1);
		// ■サービス呼び出し
		invokeService(paramMap, inputMap, outputMap);

		// ■サービスからの戻りデータをBeanにセット
		mapper.getFUSV032001CC(paramBean, outputMap);

		String dsp_campaign_cd = serviceInfoBean.sendMessageString(FUW12201SFConst.MINEO_SETPLAN_DSP_CAMPAIGN_CD, GET);
		String wrib_svc_cd = serviceInfoBean.sendMessageString(FUW12201SFConst.MINEO_SETPLAN_WRIB_SVC_CD, GET);
		if (isNullEmpty(dsp_campaign_cd) || isNullEmpty(wrib_svc_cd))
		{
			DEBUG_LOG.debug("★★★★★mineoセット割申込(FUW12201) キャンペーンコード取得エラー★★★★★");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0141);
		}
	}

	/**
	 * 
	 * 【確認画面】申込ボタン押下時の初期化
	 * 
	 * <br>
	 * @param serviceInfoBean サービスフォームBean
	 */
	private void initMskmItem(X31SDataBeanAccess serviceInfoBean)
	{

		serviceInfoBean.sendMessageString(FUW12201SFConst.MESSAGE_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, MESSAGE_DSP_FLG_OFF);

	}

	/**
	 * 
	 * 【確認画面】申込ボタン押下時のチェック１
	 * 
	 * @param serviceInfoBean サービスフォームBean
	 * @param commonInfoBean 共有フォームBean
	 * @return チェック結果 true：正常、false：エラー
	 */
	private boolean chkMskm1(X31SDataBeanAccess serviceInfoBean, X31SDataBeanAccess commonInfoBean)
	{

		// 『運用日が、受付終了日＋１ヶ月以内でなければ受付期間終了のメッセージ表示を行い、処理を継続する。』
		// 変更系受付終了年月日 < 運用年月日の場合、エラー
		String end = serviceInfoBean.sendMessageString(FUW12201SFConst.MINEO_SETPLAN_HK_UK_END_YMD, X31CWebConst.DATABEAN_GET_VALUE);

		String oDate = JCCWebCommon.getOpeDate(this, null);
		if (Long.parseLong(end) < Long.parseLong(oDate))
		{
			return false;
		}

		return true;
	}

	/**
	 * WEB変更情報Bean取得処理です。
	 * 
	 * <br>
	 * @param commonInfoBean 共有フォームBean
	 * @return WEB変更情報Bean
	 */
	private X31SDataBeanAccess getWebChgInfoBean(X31SDataBeanAccess commonInfoBean)
	{
		X31SDataBeanAccess webChgInfo = null;

		// 共通フォームBean.ＷＥＢ変更情報
		X31SDataBeanAccessArray webChgInfoArray = commonInfoBean.getDataBeanArray(CommonInfoCFConst.WEB_CHG_INFO);
		if (webChgInfoArray.getCount() == 0)
		{
			webChgInfo = webChgInfoArray.addDataBean();
		}
		else
		{
			webChgInfo = webChgInfoArray.getDataBean(0);
		}

		return webChgInfo;
	}

	/**
	 * 現顧客契約情報Bean取得処理です。
	 * 
	 * <br>
	 * @param commonInfoBean WEB変更情報Bean
	 * @return 現顧客契約情報Bean
	 */
	private X31SDataBeanAccess genCustKeiInfoBean(X31SDataBeanAccess webChgInfo)
	{
		X31SDataBeanAccess genCustKeiInfo = null;

		// 共通フォームBean.ＷＥＢ変更情報
		X31SDataBeanAccessArray genCustKeiInfoAry = webChgInfo.getDataBeanArray(CommonInfoCFConst.GEN_CUST_KEI_INFO);
		if (genCustKeiInfoAry.getCount() == 0)
		{
			genCustKeiInfo = genCustKeiInfoAry.addDataBean();
		}
		else
		{
			genCustKeiInfo = genCustKeiInfoAry.getDataBean(0);
		}

		return genCustKeiInfo;
	}

	/**
	 * ネットのサービス契約情報取得。
	 * <br>
	 * @param arraybean 共有フォームBean.ＷＥＢ変更情報.現顧客契約情報.サービス契約情報
	 * @param svc_kei_no ＳＳＯ情報のサービス契約番号
	 * @return ネットのサービス契約情報
	 */
	private X31SDataBeanAccess getNetSvcKeiInfoBean(X31SDataBeanAccessArray arraybean, String svcKeiNo)
	{

		for (int i = 0; i < arraybean.getCount(); i++)
		{
			X31SDataBeanAccess subbean = arraybean.getDataBean(i);

			// ＳＳＯ情報のサービス契約番号はネットのはず
			String currentSvcKeiNo = subbean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE);
			if (svcKeiNo.equals(currentSvcKeiNo))
			{
				return subbean;
			}
		}

		return null;
	}

	/**
	 * null値 又は 空文字か判定を行う。
	 * 
	 * <br>
	 * @param val 文字列
	 * @return true：null値 又は 空文字
	 */
	private boolean isNullEmpty(String val)
	{
		if (val == null)
		{
			return true;
		}
		if (JFUStrConst.EMPTY.equals(val))
		{
			return true;
		}
		return false;
	}
}