/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW00828SFLogic
*   ソースファイル名：KKW00828SFLogic.java
*   作成者          ：FJ
*   日付            ：2012年02月24日
*＜機能概要＞
*   (1)ｅｏ光テレビガイド誌オプションの登録を行う。
*
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/24	FJ）川田	新規作成
*	v4.00.00	2012/08/29	FJ）稲岡	【ANK-0524-00-00】対応
*	v4.01.00	2012/10/22	FJ）庭山	【IT1-2012-0001619】対応
*	v4.02.00	2012/11/08	FJ）庭山	【IT2-2012-0001650】対応
*	v4.03.00	2012/11/27	FJ）庭山	【IT2-2012-0001794】対応
*	v4.04.00	2012/12/21	FJ）野口	【IT1-2012-0002486】対応
*	v5.00.00	2013/01/10	FJ）稲岡	【ANK-1385-00-00】対応
*	v4.05.00	2013/02/16	FJ）野口	【ST3-2013-0000040】対応
*	v4.06.00	2013/02/28	FJ）稲岡	【ST1-2013-0000253】対応
*	v4.07.00	2013/03/07	FJ）稲岡	【IT1-2013-0000404】対応
*	v6.00.00	2013/12/29	FJ）磯俣	【OM-2013-04054】clearSohusAdInfoへのパラメタtrueに変更
*
**********************************************************************/

package eo.web.webview.KKW00828SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

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 com.fujitsu.futurity.web.x31.X31SRuntimeException;

import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW02522SF.KKW02522SFConst;
import eo.web.webview.ZMW10601SF.ZMW10601SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.KKSV0523_KKSV0523OPDBMapper;
import eo.web.webview.mapping.KKSV0524_KKSV0524OPDBMapper;
import eo.web.webview.mapping.KKSV0525_KKSV0525OPDBMapper;

/**
 * 
 * ｅｏ光テレビガイド誌オプションの登録を行います。
 * 
 * <BR>
 * @author 富士通
 */
public class KKW00828SFLogic extends JCCWebBusinessLogic
{
	
	/** 顧客契約引継情報項目キー */
	private static final String[] CUST_KEI_HKTGI_KEYS = {
		JKKCommonConst.HKTGI_SYSID,
		JKKCommonConst.HKTGI_SVC_KEI_NO,
		JKKCommonConst.HKTGI_IDO_DIV,
		JKKCommonConst.HKTGI_IDO_RSN_CD,
/* ++++++++++ v4.04.00 追加開始 ++++++++++ */
		JKKCommonConst.HKTGI_IDO_RSN_MEMO,
/* ++++++++++ v4.04.00 追加終了 ++++++++++ */
		JKKCommonConst.HKTGI_OP_SVC_KEI_NO,
		JKKCommonConst.HKTGI_TRAN_DIV,
		JKKCommonConst.HKTGI_MSKM_NO,
		JKKCommonConst.HKTGI_MSKM_DTL_NO,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_NM,
		JKKCommonConst.HKTGI_TOKUTEI_ID_KMK_VALUE
	};
	
	/** イベントＩＤ コピー */
	private static final String EVENT_ID_COPY = "copy";
	
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
	/** HasnKey */
	private static final String HASH_KEY_ADD_CC = "EohTvGuideAddCC";
	/** eo光テレビガイド誌申込数「０」 */
	private static final String TV_GUIDE_MSKM_CNT_ZERO = "0";
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
	
/* ++++++++++ v4.05.00 追加開始 ++++++++++ */
	/** 住所チェック警告値 */
	private static final String STATUS_WARNING = "WA";
	/** 住所チェック対象リスト */
	private static final String[] AD_CHK_LV_ERR = {"guidemg_sohus_ad_chk_lv_err"};
	/** 住所チェック置き換え文字リスト */
	private static final String[] AD_CHK_LV_ERR_CHG = {"ガイド誌送付先住所"};
/* ++++++++++ v4.05.00 追加終了 ++++++++++ */
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/** チェックエラー */
	private static final String STATUS_ERROR = "1";
	/** HasnKey */
	private static final String HASH_KEY_TARGET_ERR_FLG = "target_err_flg";
	/** HasnKey */
	private static final String HASH_KEY_EXIST_ERR_FLG = "exist_err_flg";
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return boolean:処理結果
	 * @exception Exception：例外が発生した場合。
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 引継ぎ情報の取得
		JCCWebCommon.getScreenInfo(this);
		
		// 運用日付の設定
		setValue(srvBean, KKW00828SFConst.OPE_DATE, JCCWebCommon.getOpeDate(this, null));
		setValue(srvBean, KKW00828SFConst.OPE_DATE_TIME_STAMP, JCCWebCommon.getOpeDateTimeStamp(this, null));
		
/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		// ワンストップメニューから遷移時
		if(JCRScreenConst.SCREEN_ID_CRW10601.equals(JCCWebCommon.getScreenId(this)))
		{
			// ワンストップフラグ
			setValue(srvBean, KKW00828SFConst.ONE_STOP_FLG, "1");
		}
/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		
		// ■ サービス呼び出し準備
		X31SDataBeanAccess[] paramBean = { srvBean };
		HashMap< String, Object > paramMap = new HashMap< String, Object >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0523");
		
		HashMap< String, Object > inputMap = new HashMap< String, Object >();
		HashMap< String, Object > outputMap = new HashMap< String, Object >();
		
		// ■ パラメータ設定
		KKSV0523_KKSV0523OPDBMapper mapper = new KKSV0523_KKSV0523OPDBMapper();
		mapper.setKKSV052301CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// ■ サービス結果の転記
		mapper.getKKSV052301CC(paramBean, outputMap);
		
/* ++++++++++ v4.06.00 変更開始 ++++++++++ */
		// 対象チェック
		if (hasTargetErr(outputMap))
		{
			// メッセージの設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB1420_NW, new String[]{"登録"});
			setValue(srvBean, KKW00828SFConst.KRN_CHK_ERR_FLG, "1");
		}
		// 存在チェック
		else if (hasExistErr(outputMap))
		{
			// メッセージの設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2230_KW, new String[]{"オプション契約"});
			setValue(srvBean, KKW00828SFConst.KRN_CHK_ERR_FLG, "1");
		}
/* ++++++++++ v4.06.00 変更終了 ++++++++++ */
		
/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
		// 利用開始月 初期選択値 = 「次月より」
		setValue(srvBean, KKW00828SFConst.USE_STAYM, "2");
/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
		
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
		// 初期表示フラグ
		setValue(srvBean, KKW00828SFConst.INIT_FLG, "1");
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
	
	/**
	 * 住所情報を画面項目にコピーします。
	 * <br>
	 * @return boolean:処理結果
	 * @exception Exception：例外が発生した場合。
	 */
	public boolean copy() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 送付先住所情報クリア
		clearSohusAdInfo(srvBean, true);
		
		// イベントＩＤ格納
		srvBean.sendMessageString(KKW02522SFConst.EVENTID, X31CWebConst.DATABEAN_SET_VALUE, EVENT_ID_COPY);
		
		// サービス呼出
		X31SDataBeanAccess[] paramBean = { srvBean };
		HashMap< String, String > paramMap = new HashMap< String, String >();
		HashMap< String, Object > inputMap = new HashMap< String, Object >();
		HashMap< String, Object > outputMap = new HashMap< String, Object >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0524");
		
		// 上りマッピング
		KKSV0524_KKSV0524OPDBMapper mapper = new KKSV0524_KKSV0524OPDBMapper();
		mapper.setKKSV052401CC(paramBean, inputMap);
		
		// サービス呼び出し
		X31CMessageResult result = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(result != null)
		{
			JCCWebCommon.setMessageInfo(this, result);
			return true;
		}
		
		// 下りマッピング
		mapper.getKKSV052401CC(paramBean, outputMap);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
	
	/**
	 * 住所検索画面を表示します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean openAdSch() throws Exception
	{
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// パラメータの設定
		X31SDataBeanAccessArray arraybean = srvBean.getDataBeanArray(KKW00828SFConst.PCD);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		
		// 郵便番号
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_1, getValue(subBean, KKW00828SFConst.PCD_1_02));
		paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_2, getValue(subBean, KKW00828SFConst.PCD_2_02));
		
		// 次画面ＩＤをキーに情報設定を行う
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601, paramMap);
		
		// セッションへセット
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601, JKKScreenConst.SCREEN_ID_KKW00828);
		
		// 共有フォームBean
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JZMScreenConst.SCREEN_ID_ZMW10601);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JZMScreenConst.SCREEN_NAME_ZMW10601);
		
		return true;
	}
	
	/**
	 * 住所検索結果を設定します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean closeAdSch() throws Exception
	{
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		
		HashMap<String, Object> resultMap = JCCWebCommon.getScreenInfo(this);
		
		// 住所コード
		X31SDataBeanAccessArray arraybean = srvBean.getDataBeanArray(KKW00828SFConst.AD_CD);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		setValue(subBean, KKW00828SFConst.AD_CD1_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_1));
		setValue(subBean, KKW00828SFConst.AD_CD2_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_2));
		setValue(subBean, KKW00828SFConst.AD_CD3_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_3));
		setValue(subBean, KKW00828SFConst.AD_CD4_03, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_4));
		
		// 郵便番号
		arraybean = srvBean.getDataBeanArray(KKW00828SFConst.PCD);
		subBean = arraybean.getDataBean(0);
		setValue(subBean, KKW00828SFConst.PCD_1_02, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_1));
		setValue(subBean, KKW00828SFConst.PCD_2_02, (String)resultMap.get(ZMW10601SFConst.SESSION_RET_PCD_2));
		
		// 住所
		String state = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_STATE_NM);
		String city = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_CITY_NM);
		String oaztsu = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_OAZTSU_NM);
		String azcho = (String)resultMap.get(ZMW10601SFConst.SESSION_RET_AZCHO_NM);
		
		if("00".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_1)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, "");
			setValue(srvBean, KKW00828SFConst.CITY, "");
			setValue(srvBean, KKW00828SFConst.OAZTSU, "");
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO, state + city + oaztsu + azcho);
		}
		else if("000".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_2)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, "");
			setValue(srvBean, KKW00828SFConst.OAZTSU, "");
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO, city + oaztsu + azcho);
		}
		else if("000".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_3)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, city);
			setValue(srvBean, KKW00828SFConst.OAZTSU, "");
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO,  oaztsu + azcho);
		}
		else if("000".equals((String)resultMap.get(ZMW10601SFConst.SESSION_RET_AD_CD_4)))
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, city);
			setValue(srvBean, KKW00828SFConst.OAZTSU, oaztsu);
			setValue(srvBean, KKW00828SFConst.AZCHO, "");
			
			setValue(srvBean, KKW00828SFConst.BNCHIGO, azcho);
		}
		else
		{
			setValue(srvBean, KKW00828SFConst.STATE, state);
			setValue(srvBean, KKW00828SFConst.CITY, city);
			setValue(srvBean, KKW00828SFConst.OAZTSU, oaztsu);
			setValue(srvBean, KKW00828SFConst.AZCHO, azcho);
		}
		
		// 住所情報プルダウン ⇒ 空白選択(共通仕様)
		arraybean = srvBean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		subBean = arraybean.getDataBean(0);
		setValue(subBean, KKW00828SFConst.SELECT_INDEX_01, "0");
		
		// 手動入力 ⇒ チェックなし(共通仕様)
		srvBean.sendMessageBoolean(KKW00828SFConst.EX, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// 制御のために住所検索戻りフラグを設定
		setValue(srvBean, KKW00828SFConst.AD_RETURN_FLG, "1");
		
		// 共有フォームBean
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
	
	/**
	 * eo光テレビガイド誌登録確認画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardAddCfm() throws Exception
	{
		/// 共有フォームBean
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		
		// 住所情報選択インデックス
		X31SDataBeanAccessArray listBean = srvBean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		X31SDataBeanAccess subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.SELECT_INDEX_01, getValue(srvBean, KKW00828SFConst.AD_INFO_SEL_IDX));
		
		// 入力された情報を登録用に編集
		editParamForAdd(srvBean);
		
		// サービス呼出処理
		if(!executeInvokeService(commonBean, srvBean, JKKCommonConst.FUNC_CODE_2))
		{
			return true;
		}
		
		// 入力された情報を表示用に編集
		editParamForDisp(srvBean);
		
		// メッセージの設定
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKK0370__I, new String[]{"eo光テレビガイド誌登録"});
		
		// 遷移遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00829);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00829);
		
		return true;
	}
	
	/**
	 * eo光テレビガイド誌登録完了画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardFix() throws Exception
	{
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		//サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();
		
		// サービス呼出処理
		if(!executeInvokeService(commonBean, srvBean, JKKCommonConst.FUNC_CODE_1))
		{
			return true;
		}
		
		// メッセージの設定
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"eo光テレビガイド誌登録"});
		
		// 遷移遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00830);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00830);
		
		return true;
	}
	
	
	/**
	 * サービス呼出処理。
	 * <br>
	 * @param  commonBean
	 * @param  srvBean
	 * @param  funcCode
	 * 
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	private boolean executeInvokeService(X31SDataBeanAccess commonBean, X31SDataBeanAccess srvBean, String funcCode) throws Exception
	{
		// サービス呼出
		X31SDataBeanAccess[] paramBean = { srvBean };
		HashMap< String, Object > paramMap = new HashMap< String, Object >();
		HashMap< String, Object > inputMap = new HashMap< String, Object >();
		HashMap< String, Object > outputMap = new HashMap< String, Object >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0525");
		
		// ■ パラメータ設定
		KKSV0525_KKSV0525OPDBMapper mapper = new KKSV0525_KKSV0525OPDBMapper();
		
/* ++++++++++ v5.00.00 変更開始 ++++++++++ */
		X31SDataBeanAccess[] paramBeans = {srvBean, commonBean};					// ワンストップ対応履歴登録CC用Bean配列
		String svcKeiStat = getValue(srvBean, KKW00828SFConst.SVC_KEI_STAT);		// 契約ステータス
		String oneStopFlg = getValue(srvBean, KKW00828SFConst.ONE_STOP_FLG);		// ワンストップフラグ
/* ++++++++++ v4.06.00 追加・変更開始 ++++++++++ */
		boolean usePcAdDoitsu = srvBean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_GET_VALUE);
		mapper.setEohTvGuideAddCC(paramBean, inputMap, paramBeans, svcKeiStat, oneStopFlg, usePcAdDoitsu);
/* ++++++++++ v4.06.00 追加・変更終了 ++++++++++ */
		mapper.setKKSV0525WORK01(paramBean, inputMap, funcCode);
/* ++++++++++ v5.00.00 変更終了 ++++++++++ */
		
		// サービス呼出
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
		// 登録確認時
		if (JKKCommonConst.FUNC_CODE_2.equals(funcCode))
		{
			// eo光テレビガイド誌冊数上限チェック判定
			if (hasErrTvGuideMskmCnt(srvBean, outputMap))
			{
				return false;
			}
		}
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
		
/* ++++++++++ v4.05.00 追加開始 ++++++++++ */
		//ワーニング判定
		warningChk(outputMap);
/* ++++++++++ v4.05.00 追加終了 ++++++++++ */
		
		return true;
	}
	
	/**
	 * 遷移元画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean back() throws Exception
	{
		// 遷移元に画面遷移
		setValue(super.getCommonInfoBean(), CommonInfoCFConst.NEXT_SCREEN_ID, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * 画面項目を初期表示の状態に戻します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean clear() throws Exception
	{
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
		// 画面を初期表示状態に設定
		reInitScreen();
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
		
		return true;
	}
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * 「利用場所と同じ」チェックボックス変更。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean usepcadDoitsuChange() throws Exception
	{
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
		// 画面を初期表示状態に設定
		reInitScreen();
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
		
		return true;
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	/**
	 * eo光テレビガイド誌登録画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardShusei() throws Exception
	{
		/// 共有フォームBean
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 遷移先画面IDを設定
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
		
		return true;
	}
	
	/**
	 * 遷移元画面に画面遷移します。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean forwardFin() throws Exception
	{
		// 顧客契約内引継ぎデータセット
		HashMap<String, Object> dataMap = getHktgiDataMap(super.getServiceFormBean(), KKW00828SFConst.CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);
		
		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW02301, dataMap);
		
		// 遷移先画面IDを設定
		setValue(super.getCommonInfoBean(), CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW02301);
		
		return true;
	}
	
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
	/**
	 * 画面を初期表示状態に設定
	 */
	private void reInitScreen()
	{
		//サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 送付先住所情報クリア
		clearSohusAdInfo(bean, true);
		
		// 初期表示の状態
		reInitSohusAdInfo(bean);
		
		// 初期表示フラグ
		setValue(bean, KKW00828SFConst.INIT_FLG, "1");
		
		/// 共有フォームBean
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		
		// 画面遷移
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_ID, JKKScreenConst.SCREEN_ID_KKW00828);
		setValue(commonBean, CommonInfoCFConst.NEXT_SCREEN_NAME, JKKScreenConst.SCREEN_NAME_KKW00828);
	}
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
	
	/**
	 * 送付先住所情報をクリアします。
	 * @param bean			画面情報
	 * @param clrEvFlg		クリアイベントフラグ
	 */
	private void clearSohusAdInfo(X31SDataBeanAccess bean, boolean clrEvFlg)
	{
		// 郵便番号
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.PCD);
		X31SDataBeanAccess subbean = listBean.getDataBean(0);
		subbean.sendMessage(KKW00828SFConst.PCD_1_02, X31CWebConst.DATABEAN_CLEAR);			// 郵便番号１（上３桁）
		subbean.sendMessage(KKW00828SFConst.PCD_2_02, X31CWebConst.DATABEAN_CLEAR);			// 郵便番号２（下４桁）
		subbean.sendMessage(KKW00828SFConst.PCD_02, X31CWebConst.DATABEAN_CLEAR);			// 郵便番号
		subbean.sendMessage(KKW00828SFConst.PCD_DISP_02, X31CWebConst.DATABEAN_CLEAR);		// 郵便番号(表示用)
		
		// 住所コード
		listBean = bean.getDataBeanArray(KKW00828SFConst.AD_CD);
		subbean = listBean.getDataBean(0);
		subbean.sendMessage(KKW00828SFConst.AD_CD1_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード１
		subbean.sendMessage(KKW00828SFConst.AD_CD2_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード２
		subbean.sendMessage(KKW00828SFConst.AD_CD3_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード３
		subbean.sendMessage(KKW00828SFConst.AD_CD4_03, X31CWebConst.DATABEAN_CLEAR);		// 住所コード４
		subbean.sendMessage(KKW00828SFConst.AD_CD_03, X31CWebConst.DATABEAN_CLEAR);			// 住所コード
		subbean.sendMessage(KKW00828SFConst.AD_CD_DISP_03, X31CWebConst.DATABEAN_CLEAR);	// 住所コード(表示用)
		
		// 住所情報
		bean.sendMessage(KKW00828SFConst.STATE, X31CWebConst.DATABEAN_CLEAR);				// 都道府県
		bean.sendMessage(KKW00828SFConst.CITY, X31CWebConst.DATABEAN_CLEAR);				// 市区町村
		bean.sendMessage(KKW00828SFConst.OAZTSU, X31CWebConst.DATABEAN_CLEAR);				// 大字通称名
		bean.sendMessage(KKW00828SFConst.AZCHO, X31CWebConst.DATABEAN_CLEAR);				// 字丁目
		bean.sendMessage(KKW00828SFConst.BNCHIGO, X31CWebConst.DATABEAN_CLEAR);				// 番地・号
		
		if(clrEvFlg)
		{
			bean.sendMessage(KKW00828SFConst.ADRTTM, X31CWebConst.DATABEAN_CLEAR);			// 建物名
			bean.sendMessage(KKW00828SFConst.ADRRM, X31CWebConst.DATABEAN_CLEAR);			// 部屋番号
			bean.sendMessage(KKW00828SFConst.TELNO, X31CWebConst.DATABEAN_CLEAR);			// 電話番号
		}
		
		// 住所情報コンボの名称
		listBean = bean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		subbean = listBean.getDataBean(0);
		subbean.sendMessage(KKW00828SFConst.CD_DIV_NM_01, X31CWebConst.DATABEAN_CLEAR);
		
		setValue(bean, KKW00828SFConst.TV_GUIDE_MSKM_CNT, "1");								// eo光テレビガイド誌申込数
		setValue(bean, KKW00828SFConst.USE_STAYM, "2");										// 利用開始月 初期選択値 = 「次月より」
		bean.sendMessage(KKW00828SFConst.EVENTID, X31CWebConst.DATABEAN_CLEAR);				// イベントＩＤ
		bean.sendMessage(KKW00828SFConst.AD_RETURN_FLG, X31CWebConst.DATABEAN_CLEAR);		// 住所検索戻りフラグ
	}
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * 送付先住所情報を初期表示状態にします。
	 * @param bean			画面情報
	 */
	private void reInitSohusAdInfo(X31SDataBeanAccess bean)
	{
		// ■送付先住所
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		X31SDataBeanAccess subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.SELECT_INDEX_01, "1");										// 住所情報コンボ
		
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
		bean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_SET_VALUE, true);	// 利用場所と同じ
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
		
		listBean = bean.getDataBeanArray(KKW00828SFConst.PCD);
		subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.PCD_1_02, 
				getDataBeanArrayValue(bean, KKW00828SFConst.PCD, KKW00828SFConst.KEISHA_PCD_1_02));		// 郵便番号
		setValue(subbean, KKW00828SFConst.PCD_2_02, 
				getDataBeanArrayValue(bean, KKW00828SFConst.PCD, KKW00828SFConst.KEISHA_PCD_2_02));
		
		bean.sendMessageBoolean(KKW00828SFConst.EX, X31CWebConst.DATABEAN_SET_VALUE, false);			// 手動入力
		
		listBean = bean.getDataBeanArray(KKW00828SFConst.AD_CD);
		subbean = listBean.getDataBean(0);
		setValue(subbean, KKW00828SFConst.AD_CD1_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD1_03));	// 住所コード
		setValue(subbean, KKW00828SFConst.AD_CD2_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD2_03));
		setValue(subbean, KKW00828SFConst.AD_CD3_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD3_03));
		setValue(subbean, KKW00828SFConst.AD_CD4_03, 
				getDataBeanArrayValue(bean, KKW00828SFConst.AD_CD, KKW00828SFConst.KEISHA_AD_CD4_03));
		setValue(bean, KKW00828SFConst.STATE, getValue(bean, KKW00828SFConst.BK_KEISHA_STATE));			// 都道府県
		setValue(bean, KKW00828SFConst.CITY, getValue(bean, KKW00828SFConst.BK_KEISHA_CITY));			// 市区町村
		setValue(bean, KKW00828SFConst.OAZTSU, getValue(bean, KKW00828SFConst.BK_KEISHA_OAZTSU));		// 大字通称名
		setValue(bean, KKW00828SFConst.AZCHO, getValue(bean, KKW00828SFConst.BK_KEISHA_AZCHO));			// 字丁目
		setValue(bean, KKW00828SFConst.BNCHIGO, getValue(bean, KKW00828SFConst.BK_KEISHA_BNCHIGO));		// 番地・号
		setValue(bean, KKW00828SFConst.ADRTTM, getValue(bean, KKW00828SFConst.BK_KEISHA_ADRTTM));		// 建物名
		setValue(bean, KKW00828SFConst.ADRRM, getValue(bean, KKW00828SFConst.BK_KEISHA_ADRRM));			// 部屋番号
		setValue(bean, KKW00828SFConst.TELNO, getValue(bean, KKW00828SFConst.BK_KEISHA_TELNO));			// 電話番号
		
		// ■送付先氏名
		setValue(bean, KKW00828SFConst.SHS_NM, getValue(bean, KKW00828SFConst.BK_KEISHA_SHS_NM));		// 送付先名
		setValue(bean, KKW00828SFConst.SHS_KANA, getValue(bean, KKW00828SFConst.BK_KEISHA_SHS_KANA));	// 送付先カナ名
	}
	
	/**
	 * 退避している項目を取得します。
	 * @param bean			画面情報
	 * @param String
	 */
	private String getDataBeanArrayValue(X31SDataBeanAccess bean, String arrayNm, String ItemNm)
	{
		X31SDataBeanAccessArray arraybean = bean.getDataBeanArray(arrayNm);
		X31SDataBeanAccess subBean = arraybean.getDataBean(0);
		
		return getValue(subBean, ItemNm);
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	/**
	 * 入力された情報を登録用に編集します。
	 * <br>
	 * @param bean 画面情報
	 */
	private void editParamForAdd(X31SDataBeanAccess bean)
	{
		// 住所情報
		String adInfNm = JKKWebCommon.getPullDownName(bean,
														KKW00828SFConst.AD_INFO,
														KKW00828SFConst.SELECT_INDEX_01,
														KKW00828SFConst.CD_DIV_CD_LIST_01,
														KKW00828SFConst.CD_DIV_NM_LIST_01);
		setValue(bean.getDataBeanArray(KKW00828SFConst.AD_INFO).getDataBean(0), KKW00828SFConst.CD_DIV_NM_01, adInfNm);
		
		X31SDataBeanAccess subbean = null;
		
		// 郵便番号
		subbean = getBeanPcd(bean);
		String pcd = JPCUtilCommon.concatPcd(getValue(subbean, KKW00828SFConst.PCD_1_02), getValue(subbean, KKW00828SFConst.PCD_2_02));
		setValue(subbean, KKW00828SFConst.PCD_02, pcd);
		
		// 住所コード
		subbean = getBeanAdCd(bean);
		setValue(subbean, KKW00828SFConst.AD_CD_03, getEditAdCd(subbean));
	}
	
	/**
	 * 入力された情報を表示用に編集します。
	 * <br>
	 * @param bean 画面情報
	 */
	private void editParamForDisp(X31SDataBeanAccess bean)
	{
		// 表示＿住所情報
		setValue(bean, KKW00828SFConst.DISP_AD_INFO, getAdInfoSelName(bean));
		
		// 郵便番号
		X31SDataBeanAccess subbean = null;
		subbean = getBeanPcd(bean);
		String pcd = JPCUtilCommon.concatPcd(getValue(subbean, KKW00828SFConst.PCD_1_02), getValue(subbean, KKW00828SFConst.PCD_2_02));
		setValue(subbean, KKW00828SFConst.PCD_DISP_02, JPCUtilCommon.hyhunPcd(pcd));
		
		// 住所コード
		subbean = getBeanAdCd(bean);
		setValue(subbean, KKW00828SFConst.AD_CD_DISP_03, JPCUtilCommon.hyhunAdCd(getEditAdCd(subbean)));
		
		// 利用開始月
		String useStaYM = getValue(bean, KKW00828SFConst.USE_STAYM);
		
		// 表示＿利用終了月
		if("1".equals(useStaYM))
		{
			// 即時
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "即時");
		}
		else if("2".equals(useStaYM))
		{
			// 次月より
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "次月より");
		}
		else if("3".equals(useStaYM))
		{
			// 次々月より
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "次々月より");
		}
		else
		{
			setValue(bean, KKW00828SFConst.DISP_USE_STAYM, "");
		}
	}
	
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * コンボボックス選択表示文字列を設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.選択インデックスを取得します。<br>
	 *
	 * 2.選択インデックスの表示文字列を取得します。<br>
	 *
	 * </pre>
	 * <p>
	 * @param srvBean 設定する画面のBean
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getAdInfoSelName(X31SDataBeanAccess srvBean)
	{
		String result = "";
		X31SDataBeanAccessArray comboArray = srvBean.getDataBeanArray(KKW00828SFConst.AD_INFO);
		X31SDataBeanAccess subbean = comboArray.getDataBean(0);
		String index = "";
		if (srvBean.sendMessageBoolean(KKW00828SFConst.USEPCAD_DOITSU, X31CWebConst.DATABEAN_GET_VALUE))
		{
			index = "1";
		}
		else
		{
			index = subbean.sendMessageString(KKW00828SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		if(null != index && index.length() > 0)
		{
			result = subbean.sendMessageString(KKW00828SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));
			if (result.length() > 3) {
				return result.substring(2);
			}
			
		}
		
		return result;
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
	
	/**
	 * 郵便番号を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @return bean
	 */
	private X31SDataBeanAccess getBeanPcd(X31SDataBeanAccess bean)
	{
		// 郵便番号
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.PCD);
		
		return listBean.getDataBean(0);
	}
	
	/**
	 * 住所コードを取得します。
	 * <br>
	 * @param bean 画面情報
	 * @return bean
	 */
	private X31SDataBeanAccess getBeanAdCd(X31SDataBeanAccess bean)
	{
		// 住所コード
		X31SDataBeanAccessArray listBean = bean.getDataBeanArray(KKW00828SFConst.AD_CD);
		
		return listBean.getDataBean(0);
	}
	
	/**
	 * 連結した住所コードを取得します。
	 * <br>
	 * @param bean 画面情報
	 * @return string
	 */
	private String getEditAdCd(X31SDataBeanAccess subbean)
	{
		StringBuilder sb = new StringBuilder();
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD1_03));
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD2_03));
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD3_03));
		sb.append(getValue(subbean, KKW00828SFConst.AD_CD4_03));
		
		return sb.toString();
	}
	
	/**	
	 * <dd>メソッド名：引継情報データマップ取得
	 * <dd>メソッド説明：引数のサービスフォームBeanより引継情報データマップの生成を行う。
	 * <dd>備考：引継情報データタイプの可変項目はString[]のみ対応。
	 * @param bean サービスフォームBean
	 * @param hktgiKey 引継情報データタイプのキー
	 * @param hktgiPrmKeys 引継情報データタイプの項目キーリスト	
	 * @return HashMap<String, Object> 引継情報データマップ
	 */
	private HashMap<String, Object> getHktgiDataMap(X31SDataBeanAccess bean, String hktgiKey, String[] hktgiPrmKeys)
	{
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		List<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
		
		X31SDataBeanAccessArray infList =  bean.getDataBeanArray(hktgiKey);
		HashMap<String, Object> inMap = null;
		for (int i = 0; i < infList.getCount(); i++)
		{
			inMap = new HashMap<String, Object>();
			X31SDataBeanAccess inf = infList.getDataBean(i);
			for (int j = 0; j < hktgiPrmKeys.length; j++)
			{
				try
				{
					inMap.put(hktgiPrmKeys[j], inf.sendMessageObject(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE));
				}
				catch (X31SRuntimeException ex)
				{
					// 可変項目の場合(String[]のみ対応)	
					int length = (Integer)inf.sendMessage(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_COUNT);
					String[] obj = new String[length];
					for (int k = 0; k < length; k++)
					{
						obj[k] = inf.sendMessageString(hktgiPrmKeys[j], X31CWebConst.DATABEAN_GET_VALUE, k);
					}
					inMap.put(hktgiPrmKeys[j], obj);
				}
			}
			dataList.add(inMap);
		}
		dataMap.put(hktgiKey, dataList);
		return dataMap;	
	}
	
/* ++++++++++ v5.00.00 追加開始 ++++++++++ */
	/**
	 * eo光テレビガイド誌申込数チェック処理を行います。
	 * @eo光テレビガイド誌申込数＝０
	 * Aeo光テレビガイド誌申込数上限チェック
	 * <br>
	 * @param bean 画面情報
	 * @param outputMap サービス実行結果
	 * 
	 * @return boolean 処理結果
	 */
	@SuppressWarnings("unchecked")
	private boolean hasErrTvGuideMskmCnt(X31SDataBeanAccess bean, HashMap<String, Object> outputMap)
	{
		String tvGuideMskmCnt = "";
		HashMap parentMap = null;
		
		if(outputMap.containsKey(HASH_KEY_ADD_CC))
		{
			parentMap = (HashMap)outputMap.get(HASH_KEY_ADD_CC);
		}
		
		// @eo光テレビガイド誌申込数「０」チェック
		tvGuideMskmCnt = getValue(bean, KKW00828SFConst.TV_GUIDE_MSKM_CNT);
		if (TV_GUIDE_MSKM_CNT_ZERO.equals(tvGuideMskmCnt))
		{
			// ガイド誌申込数上限
			String tvGuideUpplno = (String)parentMap.get("tv_guide_upplno");
			// メッセージ
			StringBuilder msg = new StringBuilder();
			msg.append("１〜");
			msg.append(halfToFull(tvGuideUpplno));
			
			// エラーメッセージ格納
			// ＜＜　%1%は%2%の範囲で入力してください。＞＞
			JCCWebCommon.setMessageInfo(this, "EKB2100-NW", new String[]{"eo光テレビガイド誌申込数", msg.toString()}, "tv_guide_mskm_cnt");
			return true;
		}
		
		// Aeo光テレビガイド誌申込数上限チェック
		if(parentMap.containsKey("err_msg"))
		{
			if(!isBlank(parentMap.get("err_msg")))
			{
				String errMsg = (String)parentMap.get("err_msg");
				
				// エラーメッセージ格納
				// ＜＜　%1%で登録する冊数が上限値を超えました。＞＞
				JCCWebCommon.setMessageInfo(this, "EKBC930-KW", new String[]{errMsg});
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * 半角数字を全角数字に変換します。
	 * <br>
	 * @param num
	 * <br>
	 * @return String 全角数字
	 */
	private String halfToFull(String num)
	{
		StringBuilder sb = new StringBuilder(num);
		for (int i=0; i<num.length(); i++)
		{
			char c = sb.charAt(i);
			if (c >= '0'&& c <= '9')
			{
				sb.setCharAt(i, (char)(c - '0' + '０'));
			}
		}
		
		return sb.toString();
	}
/* ++++++++++ v5.00.00 追加終了 ++++++++++ */
	
	/**
	 * データBeanから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名
	 * <br>
	 * @return String 項目値
	 */
	private String getValue(X31SDataBeanAccess bean, String itemName)
	{
		return bean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
	/**
	 * データBeanに指定された項目の値を設定します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName 項目名
	 * @param value 設定値
	 */
	private void setValue(X31SDataBeanAccess bean, String itemName, String value)
	{
		bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, value);
	}
	
	/**
	 * 引数に値が設定されているか判定します。
	 * <br>
	 * @param	obj	判定する引数
	 * @return	boolean	引数に値が設定されていない場合はtrue
	 */
	private boolean isBlank(Object obj)
	{
		if (obj == null || obj.equals("")) 
		{
			return true;
		}
		
		return false;
	}
	
/* ++++++++++ v4.05.00 追加開始 ++++++++++ */
	/**
	 * ワーニングチェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private void warningChk(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("EohTvGuideAddCC")){
			parentMap = (HashMap)outputMap.get("EohTvGuideAddCC");
		}
		
		if (null != parentMap)
		{
			for (int i=0;i<AD_CHK_LV_ERR.length;i++) {
			
				if (parentMap.containsKey(AD_CHK_LV_ERR[i]))
				{
					String warningStatus = (String)parentMap.get(AD_CHK_LV_ERR[i]);
					if (STATUS_WARNING.equals(warningStatus))
					{
						JCCWebCommon.setMessageInfo(this, "EKBD290--Q",new String[]{AD_CHK_LV_ERR_CHG[i]});
					}
				}
			}
		}
	}
/* ++++++++++ v4.05.00 追加終了 ++++++++++ */
/* ++++++++++ v4.06.00 追加開始 ++++++++++ */
	/**
	 * 対象チェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private boolean hasTargetErr(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV052301CC")){
			parentMap = (HashMap)outputMap.get("KKSV052301CC");
		}
		
		if (null != parentMap)
		{
			if (parentMap.containsKey(HASH_KEY_TARGET_ERR_FLG))
			{
				if (STATUS_ERROR.equals((String)parentMap.get(HASH_KEY_TARGET_ERR_FLG)))
				{
					return true;
				}
			}
		}
		
		return false;
	}
	
	/**
	 * 存在チェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private boolean hasExistErr(HashMap outputMap)
	{
		// 戻り値
		HashMap parentMap = null;
		
		if(outputMap.containsKey("KKSV052301CC")){
			parentMap = (HashMap)outputMap.get("KKSV052301CC");
		}
		
		if (null != parentMap)
		{
			if (parentMap.containsKey(HASH_KEY_EXIST_ERR_FLG))
			{
				if (STATUS_ERROR.equals((String)parentMap.get(HASH_KEY_EXIST_ERR_FLG)))
				{
					return true;
				}
			}
		}
		
		return false;
	}
/* ++++++++++ v4.06.00 追加終了 ++++++++++ */
}
