/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：TELvisionユーザー公衆通話設定
*   ソースファイル名：FUW04701SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年01月13日
*＜機能概要＞
*  TELvisionユーザー公衆通話設定のビューロジッククラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/01/13   FJ）赤井    新規作成
*   v4.00.00    2012/06/21   FJ）大島    【ANK-0381-00-00】 IPv6無料文言不備
*   v8.00       2014/01/27   FJ) 文元    【ANK-1589-00-00】消費増税に伴う料金施策
*
**********************************************************************/

package eo.web.webview.FUW04701SF;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
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.JFUScreenConst;
import eo.web.webview.common.JFUWebCommon;
import eo.web.webview.mapping.FUSV0144_FUSV0144OPDBMapper;

/**
 * TELvisionユーザー公衆通話設定のビューロジッククラスです。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class FUW04701SFLogic extends JCCWebBusinessLogic
{
	/** DataBean操作種別：項目値設定 */
	private static final String SET = X31CWebConst.DATABEAN_SET_VALUE;

	/** 公衆番号を設定されているVoipユーザーが存在しない場合に使用 */
	private static final String NO_SET_USER = "なし";

	/** サービスユースケースID：TELvisionユーザー公衆通話設定(初期表示) */
	private static final String SVC_USECASE_ID_FUSV0144 = "FUSV0144";

	/** 料金プラン固定単価（オプション申込料金）一覧照会 */
	private static final String SC_TITLE_FUSV014401 = "FUSV014401SC";

	/** 料金プラン固定単価（基本料金）明細 */
	private static final String SC_LIST_FUSV014401 = "EKK0601B001CBSMsg1List";

	/** 料金プラン固定単価 */
	private static final String SC_AMNT_FUSV014401 = "pplan_kotei_amnt";

	/** 外部コマンド正常終了 */
	private static final String SUCCESS = "0";

	/** 登録完了フラグ：完了 */
	private static final String ADD_FIN_FLG_ON = "1";

	/** ステータス：情報取得成功 */
	private static final String STAT_000 = "000";

	/** ステータス：指定されたeoユーザーIDが存在しない */
	private static final String STAT_501 = "501";

	/** ステータス：指定されたeoユーザーIDに対する、指定されたVoIPユーザーIDが存在しない */
	private static final String STAT_502 = "502";

	/** ステータス：指定したVoIPユーザーIDには公衆番号設定済み */
	private static final String STAT_504 = "504";

	/** ステータス：指定したeoユーザーIDには公衆番号が存在しない */
	private static final String STAT_507 = "507";

	/** ステータス：利用停止中のVoIPユーザーが存在する */
	private static final String STAT_510 = "510";

	/** サービスID(共通関連チェック用：督促チェックのみ) */
	private static final String SERVICE_ID_FUSV0144 = "FUSV0144";

	/** 固定値：0円/ID */
	private static final String ZERO_YEN = "0";

	/** 有料フラグ設定("true"：有料) */
	private static final boolean PAY_FLG_ON = true;

	/** マンション区分設定("true"：マンション) */
	private static final boolean MANSION_DIV_ON = true;

	/** マンション区分設定("true"：マンション) */
	private static final boolean MANSION_DIV_OFF = false;

	/**
	 * 初期表示処理
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- init_FUW04701SFLogic Start -----");

		// 共有フォームBean保持
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// サービスフォームBean保持
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// -------------------------------------------------
		// 利用可能サービスチェック
		// -------------------------------------------------
		JFUWebCommon.checkCommonRelation(this, SERVICE_ID_FUSV0144);

		// 画面情報を取得し、サービスフォームBeanに設定
		JFUWebCommon.getScreenInfo(this);

		// 現在設定されているユーザーＩＤを設定
		setNowSetUserId(serviceFormBean);

		// ユーザーＩＤリストを設定
		setVoipUserIdList(serviceFormBean);

		// サービス検索条件格納用マップ
		HashMap<String, HashMap<String, String>> inputMap = new HashMap<String, HashMap<String, String>>();
		// サービス処理結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// サービスパラメータ生成
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_FUSV0144);

		// DataBean-BPマッピングクラス生成
		FUSV0144_FUSV0144OPDBMapper mapper = new FUSV0144_FUSV0144OPDBMapper();
		// 上り/下りマッピング用パラメータ生成
		X31SDataBeanAccess[] serviceFormBeanArray = { serviceFormBean };

		// TELvisionユーザー公衆通話設定(初期表示)上りマッピング
		mapper.setFUSV014401SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);

		try
		{
			// TELvisionユーザー公衆通話設定(初期表示)サービス呼び出し
			invokeService(paramMap, inputMap, outputMap);
		}
		catch (JCCWebServiceException jccexception)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}
		//---------------
		//無料文言の設定
		//---------------
		String pplanKoteiAmnt = null;
		HashMap parentMap = null;
		if (outputMap.containsKey(SC_TITLE_FUSV014401))
		{
			parentMap = (HashMap)outputMap.get(SC_TITLE_FUSV014401);
		}

		if (null != parentMap && parentMap.containsKey(SC_LIST_FUSV014401))
		{
			ArrayList childList = (ArrayList)parentMap.get(SC_LIST_FUSV014401);

			if (childList != null)
			{
				HashMap childMap = (HashMap)childList.get(0);
				pplanKoteiAmnt = (String)childMap.get(SC_AMNT_FUSV014401);
			}
		}

		if (ZERO_YEN.equals(pplanKoteiAmnt))
		{
			// 無料の場合
			// 無料表示用の基本料金情報を設定する。
			JFUWebCommon.setFreePrcInfoMap(outputMap, SC_TITLE_FUSV014401);
		}
		else
		{
			// 有料フラグをサービスフォームbeanに設定
			// 有料フラグ設定("true"：有料)
			serviceFormBean.sendMessageBoolean(FUW04701SFConst.PAY_FLG, SET, PAY_FLG_ON);
		}

		// サービス契約情報を取得
		X31SDataBeanAccess svcKeiInfo = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.SVC_KEI_INFO);

		// サービス契約情報.料金グループコードが"04"(eo光ネットマンションタイプ)の場合
		if (JFUStrConst.CD00133_04.equals(JFUWebCommon.getDataBeanItemByPath(svcKeiInfo, CommonInfoCFConst.PRC_GRP_CD_23)))
		{
			// さらに有料の場合
			if (!ZERO_YEN.equals(pplanKoteiAmnt))
			{
				// マンション区分設定("true"：マンション)
				serviceFormBean.sendMessageBoolean(FUW04701SFConst.MANSION_DIV, SET, MANSION_DIV_ON);
			}
			else
			{
				// マンション区分設定("false"：マンション)
				serviceFormBean.sendMessageBoolean(FUW04701SFConst.MANSION_DIV, SET, MANSION_DIV_OFF);
			}
		}

		// ----------------------------------------------
		// 料金表情報の設定(共通メソッド)
		// ----------------------------------------------
		JFUWebCommon.setPrcInfoArea(serviceFormBean, outputMap, SC_TITLE_FUSV014401, JFUStrConst.EMPTY, JFUScreenConst.SCREEN_ID_FUW04701);

		// 料金表表示現在日設定処理
		JFUWebCommon.setPrcDspNowDay(this);

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW04701);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW04701);

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- init_FUW04701SFLogic End -----");

		return true;

	}

	/**
	 * 確認ボタン押下時処理
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean cfm() throws Exception
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- cfm_FUW04701SFLogic Start -----");

		// 共有フォームBean保持
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// サービスフォームBean保持
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		X31SDataBeanAccessArray array = serviceFormBean.getDataBeanArray(FUW04701SFConst.VOIP_USER_ID_LIST_INFO);

		X31SDataBeanAccess userIdListBean = array.getDataBean(0);

		// ユーザーID選択値（index）
		Object co = userIdListBean.sendMessageObject(FUW04701SFConst.USER_ID_SEL_VALUE_02, X31CWebConst.DATABEAN_GET_VALUE);
		// NULL値対策
		int idx = (co != null) ? (Integer.parseInt(co.toString())) : 0;

		//変更後のユーザーIDをサービスフォームBeanに保持する
		String setUserId = userIdListBean.sendMessageString(FUW04701SFConst.USER_ID_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, idx);
		serviceFormBean.sendMessageString(FUW04701SFConst.SET_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, setUserId);

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW04702);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW04702);

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- cfm_FUW04701SFLogic End -----");

		return true;
	}

	/**
	 * 申し込むボタン押下時処理
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean mskm() throws Exception
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- mskm_FUW04701SFLogic Start -----");

		// 共有フォームBean保持
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// サービスフォームBean保持
		X31SDataBeanAccess serviceFormBean = getServiceFormBean();

		// -------------------------------------------------
		// 利用可能サービスチェック（督促チェックのみ）
		// -------------------------------------------------
		JFUWebCommon.checkCommonRelation(this, SERVICE_ID_FUSV0144);

		// 共有フォームBean.サービス契約情報
		X31SDataBeanAccess svcKeiInfoBean = JFUWebCommon.getDataBeanTypeByPath(commonInfoBean, JFUWebCommon.SVC_KEI_INFO);

		// -------------------------------------------------
		// TELvisionユーザー公衆通話設定
		// -------------------------------------------------
		// サービス契約情報.サービス契約番号
		String svcKeiNo = svcKeiInfoBean.sendMessageString(CommonInfoCFConst.SVC_KEI_NO_23, X31CWebConst.DATABEAN_GET_VALUE);

		// 外部API呼出処理
		execSync(serviceFormBean, svcKeiNo);

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW04703);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW04703);

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- mskm_FUW04701SFLogic End -----");

		return true;
	}

	/**
	 * 戻るボタン押下時処理
	 * 
	 * @return 処理結果
	 * @throws Exception 例外
	 */
	public boolean back() throws Exception
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- back_FUW04701SFLogic Start -----");

		// 共有フォームBean保持
		X31SDataBeanAccess commonInfoBean = getCommonInfoBean();

		// 遷移先画面IDを設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_ID_FUW04701);
		// 遷移先画面名を設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JFUScreenConst.SCREEN_NAME_FUW04701);

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- back_FUW04701SFLogic End -----");

		return true;
	}

	/**
	 * 現在設定されているユーザーＩＤを設定します
	 * <br>
	 * @param serviceFormBean サービスフォームBean
	 */
	private void setNowSetUserId(X31SDataBeanAccess serviceFormBean)
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- setNowSetUserId_FUW04701SFLogic Start -----");

		// ＶｏＩＰユーザー情報を保持
		X31SDataBeanAccessArray voipUserInfoArray = serviceFormBean.getDataBeanArray(FUW04701SFConst.VOIP_USER_INFO);

		if (voipUserInfoArray != null && voipUserInfoArray.getCount() > 0)
		{
			// VOIPユーザーID
			String voipUserId = JFUStrConst.EMPTY;
			// 公衆番号
			String koshuNo = JFUStrConst.EMPTY;

			boolean nowSetUserSetFlg = false;

			// ＶｏＩＰユーザー情報をループし、ユーザーＩＤリストを作成
			for (int i = 0; i < voipUserInfoArray.getCount(); i++)
			{
				X31SDataBeanAccess voipUserInfoBean = voipUserInfoArray.getDataBean(i);
				// VOIPユーザーID
				voipUserId = voipUserInfoBean.sendMessageString(FUW04701SFConst.VOIP_USER_ID_01, X31CWebConst.DATABEAN_GET_VALUE);
				// 公衆番号保持
				koshuNo = voipUserInfoBean.sendMessageString(FUW04701SFConst.KOSHU_NO_01, X31CWebConst.DATABEAN_GET_VALUE);

				// サービスフォームBean.ＶｏＩＰユーザー情報から公衆番号が""：ブランクでないＶｏＩＰユーザーIDを設定する。
				if (!JFUStrConst.EMPTY.equals(koshuNo))
				{
					serviceFormBean.sendMessageString(FUW04701SFConst.NOW_SET_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, voipUserId);
					nowSetUserSetFlg = true;
				}
			}

			// 該当するデータが存在しない場合、「なし」を設定する。
			if (!nowSetUserSetFlg)
			{
				serviceFormBean.sendMessageString(FUW04701SFConst.NOW_SET_USER_ID, X31CWebConst.DATABEAN_SET_VALUE, NO_SET_USER);
			}
		}

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- setNowSetUserId_FUW04701SFLogic End -----");
	}

	/**
	 * ユーザーＩＤリストを設定します
	 * <br>
	 * @param serviceFormBean サービスフォームBean
	 */
	private void setVoipUserIdList(X31SDataBeanAccess serviceFormBean)
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- setVoipUserIdList_FUW04701SFLogic Start -----");

		// ユーザーＩＤリスト
		X31SDataBeanAccessArray voipUserIdList = serviceFormBean.getDataBeanArray(FUW04701SFConst.VOIP_USER_ID_LIST_INFO);
		X31SDataBeanAccess voipUserIdBean = voipUserIdList.getDataBean(0);

		// ＶｏＩＰユーザー情報を保持
		X31SDataBeanAccessArray voipUserInfoArray = serviceFormBean.getDataBeanArray(FUW04701SFConst.VOIP_USER_INFO);

		if (voipUserInfoArray != null && voipUserInfoArray.getCount() > 0)
		{
			// VOIPユーザーID
			String voipUserId = JFUStrConst.EMPTY;
			// 公衆番号
			String koshuNo = JFUStrConst.EMPTY;
			// 登録完了フラグ
			String addFinFlg = JFUStrConst.EMPTY;

			// ＶｏＩＰユーザー情報をループし、ユーザーＩＤリストを作成
			for (int i = 0; i < voipUserInfoArray.getCount(); i++)
			{
				X31SDataBeanAccess voipUserInfoBean = voipUserInfoArray.getDataBean(i);
				// VOIPユーザーID
				voipUserId = voipUserInfoBean.sendMessageString(FUW04701SFConst.VOIP_USER_ID_01, X31CWebConst.DATABEAN_GET_VALUE);
				// 公衆番号保持
				koshuNo = voipUserInfoBean.sendMessageString(FUW04701SFConst.KOSHU_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
				// 登録完了フラグ
				addFinFlg = voipUserInfoBean.sendMessageString(FUW04701SFConst.ADD_FIN_FLG_01, X31CWebConst.DATABEAN_GET_VALUE);

				// 公衆番号が""：ブランク（公衆設定されていない）、かつ登録完了フラグが"1":完了のＶｏＩＰユーザー情報.ＶｏＩＰユーザーＩＤを追加
				if (JFUStrConst.EMPTY.equals(koshuNo) && ADD_FIN_FLG_ON.equals(addFinFlg))
				{
					voipUserIdBean.sendMessageString(FUW04701SFConst.USER_ID_LIST_02, X31CWebConst.DATABEAN_ADD_VALUE, voipUserId);
				}

			}
		}

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- setVoipUserIdList_FUW04701SFLogic End -----");
	}

	/**
	 * 外部API呼出処理を行います。 <BR>
	 * 
	 * @param serviceFormBean サービスフォームBean
	 * @param strSvcKeiNo サービス契約番号
	 */
	private void execSync(X31SDataBeanAccess serviceFormBean, String strSvcKeiNo)
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- execSync_FUW04701SFLogic Start -----");

		// 実行結果
		List<String> dataList = null;

		// 外部コマンド実行標準出力格納
		StringBuffer outPut = new StringBuffer();

		// 外部コマンド情報
		String[] cmd =
				{ JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_CMD_NM), JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_CMD_OP1),
						JFUWebCommon.getApplicationConst(JFUStrConst.FUIFE014_PARAM1), strSvcKeiNo,
						serviceFormBean.sendMessageString(FUW04701SFConst.SET_USER_ID, X31CWebConst.DATABEAN_GET_VALUE),
						JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_CMD_OP2), JFUWebCommon.getApplicationConst(JFUStrConst.VOIP_ENV) };

		// (デバッグログ)
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("★ コマンドライン引数配列 ★：＝" + Arrays.toString(cmd));

		// 外部コマンド実行処理
		String execSyncCode =
				JFUWebCommon.execSync(cmd, outPut, Integer.parseInt(JFUWebCommon.getApplicationConst(JFUStrConst.REMOTE_EXEC_TIME_OUT)));

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("★ リターンコード ★：＝" + execSyncCode);

		// 外部コマンド実行結果
		if (SUCCESS.equals(execSyncCode))
		{
			if (0 < outPut.length())
			{
				// デバッグログ
				com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("★ 外部コマンド実行結果 ★：＝" + outPut.toString());

				// 出力結果をListに詰め直す。
				dataList = Arrays.asList(outPut.toString().split(JFUWebCommon.LINE_SEPARATOR));
			}
			else
			{
				// "0002"（システムエラー）
				com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("★ 外部コマンド実行結果なしエラー ★");
				throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
			}
		}
		else
		{
			// "0002"（システムエラー）
			com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("★ リターンコードエラー ★");
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// 出力結果をサービスフォームBeanに設定
		setServiceFormBean(serviceFormBean, dataList);

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- execSync_FUW04701SFLogic End -----");

	}

	/**
	 * サービスフォームBeanの設定です。 <BR>
	 * 
	 * @param serviceFormBean サービスフォームBean
	 * @param dataList 出力結果
	 */
	private void setServiceFormBean(X31SDataBeanAccess serviceFormBean, List<String> dataList)
	{
		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- setServiceFormBean_FUW04701SFLogic Start -----");

		// ステータス
		String stat = JFUStrConst.EMPTY;
		// 公衆番号
		String koshuNo = JFUStrConst.EMPTY;

		// -------------------------------------------------
		// 出力結果から値の取得
		// -------------------------------------------------
		// ステータス
		stat = dataList.get(0);

		if (STAT_000.equals(stat))
		{
			// 公衆番号
			koshuNo = dataList.get(1);

			// -------------------------------------------------
			// サービスフォームBeanへ設定
			// -------------------------------------------------
			// サービスフォームBean.加入属性
			serviceFormBean.sendMessageString(FUW04701SFConst.TEL_NO, X31CWebConst.DATABEAN_SET_VALUE, koshuNo);
		}
		else if (STAT_501.equals(stat) || STAT_502.equals(stat) || STAT_504.equals(stat))
		{
			// デバッグログ
			com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- ★ ステータスエラー ★ 外部インターフェイス出力結果ステータス=" + stat + " -----");

			// ステータスが"501"、"502"、"504"、"507"、"510"の場合、エラーパターンIDに"0201"（お客様情報変更エラー）を設定し、
			// 業務用例外クラスをthrowする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
		}
		else if (STAT_507.equals(stat) || STAT_510.equals(stat))
		{
			// デバッグログ
			com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- ★ ステータスエラー ★ 外部インターフェイス出力結果ステータス=" + stat + " -----");

			// ステータスが"501"、"502"、"504"、"507"、"510"の場合、エラーパターンIDに"0201"（お客様情報変更エラー）を設定し、
			// 業務用例外クラスをthrowする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0201);
		}
		else
		{
			// デバッグログ
			com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- ★ ステータスエラー ★ 外部インターフェイス出力結果ステータス=" + stat + " -----");

			// ステータスが"000"、"501"、"502"、"504"、"507"、"510"以外の場合、エラーパターンIDに"0002"（システムエラー）を設定し、
			// 業務用例外クラスをthrowする。
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// デバッグログ
		com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG.debug("----- setServiceFormBean_FUW04701SFLogic End -----");
	}
}
