/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CNW00201SFLogic
*	ソースファイル名：CNW00201SFLogic.java
*	作成者			：FJ
*	日付			：2011年10月029日
*＜機能概要＞
*	コンテンツサービス解約依頼のViewロジックです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00
*	v4.00.01	2012/12/12  FJ)小林		【ST1-2012-0001033】契約中、強制解約予告済以外のコンテンツ解約は不可とするメッセージ出力を追加。
*	v5.00.00	2013/02/21  FJ)小林		【ST1-2013-0000372】全解約の場合のみAxM連携機能を起動するよう修正
*	v5.00.01	2013/02/21	FJ)小林		【IT1-2013-0000316】水平展開、CCMGAPIエラーハンドリング対応
*	ｖ8.00.00	2013/12/19	FJ)山口		【ANK-1585-00-00】  050電話番号のデータ移送を追加
*   v54.00.00   2021/08/04  FJ)南		【OM-2020-0001148】お客様状態遷移チェックエラーメッセージ出力対応
*	v65.00.00	2023/12/20  FJ)北村     【ANK-4346-00-00】【eo定期】CCMG再構築対応
*  ｖ65.00.01	2024/02/02	FJ)久山		【IT1-2024-0000003】 エラーハンドリング対応
*   v70.00.00	2024/03/15	 FJ)中原	【#84105】SIFエラーがＣＣＭＧエラーとして表示される
********************************************************************************/

package eo.web.webview.CNW00201SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.web.x31.X31CID;
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.x33.X33SException;

import eo.common.constant.JCNStrConst;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKCommonUtil;
import eo.common.util.JKKStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.ACW00602SF.ACW00602SFConst;
import eo.web.webview.CNW00101SF.CNW00101SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCNScreenConst;
import eo.web.webview.common.JCNWebCommon;
import eo.web.webview.mapping.CNSV0007_CNSV0007OPDBMapper;
import eo.web.webview.mapping.CNSV0028_CNSV0028OPDBMapper;

// シリアライズ警告
@SuppressWarnings("serial")

public class CNW00201SFLogic extends JCCWebBusinessLogic
{
	
	/** コンテンツサービス解約 */
	private static final String USECASE_ID_CNSV0007 = "CNSV0007";
	
	/** コンテンツサービス全解約 */
	private static final String USECASE_ID_CNSV0028 = "CNSV0028";
	
	/** オープン会員かつeoモバイル申し込み中のときのエラーコード */
	private static final String OPEN_AND_EO_MOBILE = "1";
	
	/** CCMGのAPIの応答なしのステータス */
	private static final String STAT_NO_RESPONSE = "2";
	
	/** CCMGのAPIのエラーコード*/
	/** コンテンツ契約番号必須チェックエラーコード */
	private static final String CONT_KEI_NO_IS_NULL = "99123";

	/** コンテンツ契約番号書式チェックエラーコード */
	private static final String CONT_KEI_NO_IS_WRONG_FORMAT = "99124";
								
	/** 更新者ID必須チェックエラーコード */
	private static final String USER_ID_IS_NULL = "99145";
				
	/** 更新者ID書式チェックエラーコード */
	private static final String USER_ID_IS_WRONG_FORMAT = "99150";	

	/** 更新者必須チェックエラーコード */
	private static final String USER_IS_NULL = "99153";
			
	/** 更新日時必須チェックエラーコード */
	private static final String UPD_DTM_IS_NULL = "99152";

	/** 更新日時書式チェックエラーコード */
	private static final String UPD_DTM_IS_WRONG_FORMAT = "99066";

	/** コンテンツ契約番号不存在エラーコード */
	private static final String CONT_KEI_NO_NOT_EXIST = "52001";
		
	/** コンテンツ契約番号解約済みエラーコード */
	private static final String CONT_KEI_IS_CANCELED = "52002";
						
	/** SYSID不一致エラーコード */
	private static final String SYSID_IS_NOT_SAME = "52003";
							
	/** 更新日時妥当性エラーコード */
	private static final String UPDATE_DTM_IS_INVALID = "52005";
							
	/** 共連れ解約エラーコード */
	private static final String EXIST_OTHER_CONT = "52006";
	
	/** メール送信NGのときのエラーコード*/
	private static final String SEND_MAIL_NG = "99070";
	
	/** 例外発生エラーコード */
	private static final String OCCUR_EXCEPTION = "99999";
	
	/** 例外発生エラーコード */
	private static final String NOT_EOID_MEMBER = "90006";

	/** 正常終了 */
	private static final String API_OK = "00000";

	/** コンテンツ解約API連携エラー */
	private static final String DLS_API_NG = "コンテンツ解約API連携エラー";
	
	/** コンテンツ全解約API連携エラー */
	private static final String ALL_DSL_API_NG = "コンテンツ全解約API連携エラー";
	
	/** コンテンツサービス利用規約 */
	private static final String CNT_SVC_NM ="コンテンツサービス利用規約";
	
	/** ブランク */
	private static final String BLANK_STR = "";
	
	/** AxM会員情報更新依頼サービスID */
	private static final String axmRequestService = "CKSV9001";
	
	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1, EventObject arg2) throws X33SException
	{
		return false;
	}

	/**
	 * コンテンツサービス解約依頼の初期表示を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean action_init() throws Exception
	{
		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

//		// 共通フォームBeanにメッセージIDを設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.MESSAGE_ID_05, X31CWebConst.DATABEAN_SET_VALUE, "EKB5290-KW");
		
		// サービスフォームBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		bean.getDataBeanArray(CNW00201SFConst.CUST_KOBET).clearArray();
		bean.getDataBeanArray(CNW00201SFConst.CONT_SVC_KOBET_LIST).clearArray();

		// お客様個別情報リスト
		X31SDataBeanAccessArray custKobetArray = bean.getDataBeanArray(CNW00201SFConst.CUST_KOBET);
		X31SDataBeanAccess custKobetBean = custKobetArray.addDataBean();
		
		// 前画面の情報を取得する
		HashMap dataMap = JCCWebCommon.getScreenInfo(this);

		// SYSIDのマッピング
		bean.sendMessageString(CNW00201SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.SYSID));
		// 選択番号のマッピング
		bean.sendMessageString(CNW00201SFConst.SELECT_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.SELECT_NO));
		// 選択情報の取得
		bean.sendMessageString(CNW00201SFConst.SELECT_CONT_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.SELECT_CONT_SVC_CD));
		bean.sendMessageString(CNW00201SFConst.SELECT_CONT_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.SELECT_CONT_KEI_NO));
		bean.sendMessageString(CNW00201SFConst.SELECT_ISP_KSSAI_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.SELECT_ISP_KSSAI_SVC_KEI_NO));
		bean.sendMessageString(CNW00201SFConst.SELECT_SEND_MAIL_FLG, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.SELECT_SEND_MAIL_FLG));
		bean.sendMessageString(CNW00201SFConst.SELECT_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.SELECT_UPD_DTM));

		// 顧客情報に表示する項目のマッピング TODO 権限による値のマスキング(前画面でマスキングされた値が送られてくるのであれば、不要)
		// eoIDのマッピング
		custKobetBean.sendMessageString(CNW00201SFConst.EOID_01, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.EOID_04));
		// お客様ステータス名
		custKobetBean.sendMessageString(CNW00201SFConst.CUST_STS_NM_01 , X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.CUST_STS_NM_04));
		// お客様カナ氏名
		custKobetBean.sendMessageString(CNW00201SFConst.CUST_KANA_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.CUST_KANA_NM_04));
		// 会員種別
		custKobetBean.sendMessageString(CNW00201SFConst.MBTYPE_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.MBTYPE_NM_04));
		// お客様氏名
		custKobetBean.sendMessageString(CNW00201SFConst.CUST_NM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.CUST_NM_04));
		// お客様生年月日
		custKobetBean.sendMessageString(CNW00201SFConst.CUST_BD_01, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.CUST_BD_04));
		// 契約者住所
		custKobetBean.sendMessageString(CNW00201SFConst.CUST_ADDR_01, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.CUST_ADDR_04));
		// 更新年月日時分秒
		custKobetBean.sendMessageString(CNW00201SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_SET_VALUE, (String)dataMap.get(CNW00101SFConst.UPD_DTM_04));

		// 一覧領域に表示する項目のマッピング
		// コンテンツサービスのマッピング
		X31SDataBeanAccessArray contSvcKobetList = bean.getDataBeanArray(CNW00201SFConst.CONT_SVC_KOBET_LIST);
		boolean result = contSvcKobetList.clearArray();

		ArrayList list = (ArrayList)dataMap.get(CNW00101SFConst.CONT_SVC_KOBET_LIST);// 前画面のコンテンツサービス個別リストを取得する
// ANK-4346-00-00 ADD START
		String select_no = (String)dataMap.get(CNW00101SFConst.SELECT_NO);
		int list_count = 0;
// ANK-4346-00-00 ADD END
		for (int i = 0; i < list.size(); i++)
		{
			X31SDataBeanAccess contSvcKobetBean = contSvcKobetList.addDataBean();
			HashMap<Object, Object> detail = (HashMap<Object, Object>)list.get(i);
			// コンテンツサービス名
			contSvcKobetBean.sendMessageString(CNW00201SFConst.CONT_SVC_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String)detail.get(CNW00101SFConst.CONT_SVC_NM_01));
			// コンテンツサービスコード
			contSvcKobetBean.sendMessageString(CNW00201SFConst.CONT_SVC_CD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)detail.get(CNW00101SFConst.CONT_SVC_CD_01));
			// コンテンツ契約個別をマッピング
			X31SDataBeanAccessArray contKeiKobetList = contSvcKobetBean.getDataBeanArray(CNW00201SFConst.CONT_KEI_KOBET_LIST);

			ArrayList contKeiList = (ArrayList)detail.get(CNW00101SFConst.CONT_KEI_KOBET_LIST);// 前画面のコンテンツ契約個別リストを取得する。
			for(int j = 0; j < contKeiList.size(); j++)
			{
				X31SDataBeanAccess contKeiKobetBean = contKeiKobetList.addDataBean();
				HashMap contKeiDetail = (HashMap)contKeiList.get(j);

				contKeiKobetBean.sendMessageString("ＣＳＳクラス名",
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CSS_CLASS_NM_03));
				// コンテンツ契約ID
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_ID_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_ID_03));
				// コンテンツ名
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_NM_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_NM_03));
				// コンテンツ契約ステータス
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_KEI_STS_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_KEI_STS_03));
				// コンテンツ契約ステータス和名
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_KEI_STS_NM_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_KEI_STS_NM_03));
				// コンテンツ契約開始日
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_KEI_STA_DTM_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_KEI_STA_DTM_03));
				// コンテンツ契約終了日
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_KEI_END_DTM_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_KEI_END_DTM_03));
				// コンテンツ決済方法
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_KSSAI_WAY_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.PAYWAY_DSP_03));
				// コンテンツ支払い方法コード
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_PAYWAY_CD_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_PAYWAY_CD_03));
				// カード会社コード
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CRECARD_COMP_CD_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CRECARD_COMP_CD_03));
				// カード会社名
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CRECARD_COMP_NM_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CRECARD_COMP_NM_03));
				// クレジットカードＩＤ
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CRECARD_ID_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CRECARD_ID_03));
				
				// 権限
				boolean authFlg = JCNWebCommon.checkAuthority(this, this.getGamenId() + ";" + "CN_PAYWAY_INFO;1");
				
				// クレジットカード番号
				if(authFlg)
				{
					contKeiKobetBean.sendMessageString(CNW00201SFConst.CRECARD_NO_03,
							X31CWebConst.DATABEAN_SET_VALUE,
							(String)contKeiDetail.get(CNW00101SFConst.CRECARD_NO_03));
				}
				else
				{
					contKeiKobetBean.sendMessageString(CNW00201SFConst.CRECARD_NO_03,
							X31CWebConst.DATABEAN_SET_VALUE,
							JCNStrConst.MASK_CARD_NO);
				}
				
				// ＩＳＰ決済サービス契約番号
				contKeiKobetBean.sendMessageString(CNW00201SFConst.ISP_KSSAI_SVC_KEI_NO_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.ISP_KSSAI_SVC_KEI_NO_03));
				// コンテンツ契約番号
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_KEI_NO_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_KEI_NO_03));
				// 更新年月日時分秒
				contKeiKobetBean.sendMessageString(CNW00201SFConst.UPD_DTM_03,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.UPD_DTM_03));
				// コンテンツサービスコード
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CONT_SVC_CD_02,
						X31CWebConst.DATABEAN_SET_VALUE,
						(String)contKeiDetail.get(CNW00101SFConst.CONT_SVC_CD_03));
				// ＣＳＳクラス名
				contKeiKobetBean.sendMessageString(CNW00201SFConst.CSS_CLASS_NM_03,
						X31CWebConst.DATABEAN_SET_VALUE, (String)contKeiDetail.get(CNW00101SFConst.CSS_CLASS_NM_03));
				// 支払方法表示
				contKeiKobetBean.sendMessageString(CNW00201SFConst.SHR_CONT_PAYWAY_03,
						X31CWebConst.DATABEAN_SET_VALUE, (String)contKeiDetail.get(CNW00101SFConst.PAYWAY_DSP_03));
				// メール送信フラグ
				contKeiKobetBean.sendMessageBoolean(CNW00201SFConst.MAIL_SEND_FLG_03,
						X31CWebConst.DATABEAN_SET_VALUE, ((Boolean)contKeiDetail.get(CNW00101SFConst.MAIL_SEND_FLG_03)).booleanValue());
				// ０５０電話番号
				contKeiKobetBean.sendMessageString(CNW00201SFConst.N_050_TELNO_03,
						X31CWebConst.DATABEAN_SET_VALUE, (String)contKeiDetail.get(CNW00101SFConst.N_050_TELNO_03));
// ANK-4346-00-00　ADD START
				// 選択値と同じ場合コンテンツIDを取得する。
				if (list_count == Integer.valueOf(select_no)) {
					String content_id = (String)contKeiDetail.get(CNW00101SFConst.CONT_ID_03);
					if (!JKKCommonUtil.isNull(content_id)) {
						// コンテンツIDより頭4桁を抜き出す
						bean.sendMessageString(CNW00201SFConst.SELECT_CONT_SVC_CD, X31CWebConst.DATABEAN_SET_VALUE, content_id.substring(0, 4));
					}
				}
				list_count++;
//ANK-4346-00-00 ADD END
			}
		}
		
		// 確認メッセージ出力
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB8730__Q);

		return true;
	}
	
	/**
	 * コンテンツサービス解約依頼処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean action_confirm() throws Exception 
	{
		
		// 画面情報の取得
		JCCWebCommon.getScreenInfo(this);
		
		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		//	エラー発生時は次画面に遷移しないので、遷移先の画面として自画面のIDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00201);
		
		// エラー発生時は次画面に遷移しないので、遷移先の画面名として自画面の名前を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00201);
		
		// この画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// MAPの生成
		HashMap paramMap = new HashMap();
		HashMap outputMap = new HashMap();
		HashMap dataMap = new HashMap();
		X31CMessageResult msgResult = new X31CMessageResult();

		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};
		
		// 全解約実行フラグ(true:全解約,false:解約)
		boolean allCanselFlg = true;
		
		// 品質強化対象
		try{
			// Beanのコンテンツ契約番号がブランクかどうかで全解約かどうかを判断する。
			if(!BLANK_STR.equals(bean.sendMessageString(CNW00201SFConst.SELECT_CONT_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// コンテンツサービス解約の場合
				
				allCanselFlg = false;
				
				paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CNSV0007);
				CNSV0007_CNSV0007OPDBMapper mapper = new CNSV0007_CNSV0007OPDBMapper();
				mapper.setCNSV000701SC(paramBean, dataMap, "1");		// コンテンツ契約一意照会SC
				mapper.setCNSV000702SC(paramBean, dataMap, "1");		// コンテンツサービス解約SC
				DEBUG_LOG.debug("***** SCSV0007 invokeService start *****");
	
				try
				{
					msgResult = invokeService(paramMap, dataMap, outputMap);
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
				DEBUG_LOG.debug("***** SCSV0007 invokeService end *****");
	
				
				// 解約サービスの実行結果の確認
				HashMap mapCNSV000702SC = (HashMap)outputMap.get("CNSV000702SC");		
				String rsltCd = (String)mapCNSV000702SC.get("err_cd");					// エラーコード
//				rsltCd = "00000";
				String stat = (String)mapCNSV000702SC.get("stat");						// ステータス
				
				// メッセージ出力用文字列の取得
				String conKeiNum =bean.sendMessageString(CNW00201SFConst.SELECT_CONT_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);	// コンテンツ契約番号
				String sysid = bean.sendMessageString(CNW00201SFConst.SELECT_SYSID, X31CWebConst.DATABEAN_GET_VALUE);	// SYSID
				String updDtm = bean.sendMessageString(CNW00201SFConst.SELECT_UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE);	// 更新年月日時分秒
				String userId = commoninfoBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);	// USERID
				String userName = commoninfoBean.sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);	// USER名
	
				if(!STAT_NO_RESPONSE.equals(stat)) // CCMGのAPIから応答があったときのみ、チェックする。
				{
//					// コンテンツ契約番号がAPI連携されているかチェック
//					if(!isContKeiRight(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9810_TW, 
//								new String[] {"", conKeiNum});
//					}
//	
//					// コンテンツ契約番号の書式が正しいかチェック
//					if(!isContKeiFormatRight(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9820_KW, 
//								new String[] {"", conKeiNum});
//					}
//	
//					// 更新者IDがAPI連携されているかチェック
//					if(!isUserIDRight(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9830_TW , 
//								new String[] {"", userId});
//					}
//	
//					// 更新者IDの書式が正しいかチェック
//					if(!isUserIDFormatRight(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9840_TW,
//								new String[] {"", userId});
//					}
//	
//					// 更新者がAPI連携されているかチェック
//					if(!isUserNameRight(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9850_KW,
//								new String[] {"", userName});
//					}
//	
//					// 更新日時がAPI連携されているかチェック
//					if(!isUpdateDtmRight(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9860_TW, 
//								new String[] {"", updDtm});
//					}
//	
//					// 更新日時の書式が正しいかチェック
//					if(!isUpdateDtmFormatRight(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9870_TW,
//								new String[] {"", updDtm});
//					}
//	
//					// コンテンツ契約番号に対するコンテンツ契約が存在するかチェック
//					if(!existContKei(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9880_KW);
//					}
//	
//					// コンテンツ契約番号に対するコンテンツ契約が解約済みかチェック
//					if(!isNotContKeiCanceld(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9890_KW);
//					}
//	
//					// SYSIDとコンテンツ契約に紐づくSYSIDが同じかチェック
//					if(!isSysIdSame(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9900_KW);
//					}		
//	
//					// コンテンツ契約番号に対するコンテンツ契約の更新日時とAPI連携された
//					// 更新日時が一致するかチェック
//					if(!isUpDateDtmSame(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9910_KW);
//					}
	
					// 共連れ解約となる契約が存在するかチェック
					if(!existOtherContent(rsltCd))
					{
						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9920_KW);
						return true;
					}
					
					// eoID会員存在エラーの場合はメッセージ喚起する。
					if(NOT_EOID_MEMBER.equals(rsltCd))
					{
						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD310_KW);
						return true;
					}
					
//					if(!isSendMailOK(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9930_CE);
//					}
//					if(!isSystemError(rsltCd))
//					{
//						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9930_CE);
//					}
					// IT1-2024-0000003 MOD START
//					// CCMGのエラーの場合、
//					if(!"00000".equals(rsltCd))
//					{
//						// CNIFE053_全コンテンツ契約変更（CCMG）に失敗した場合
//						JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
//								new String[] { "CCMG連携（コンテンツ契約変更）", "CCMGエラーコード:" + rsltCd });
//						return true;
//					}
					// IT1-2024-0000003 MOD END
					// IT1-2024-0000003 ADD START
					// #84105 MOD START
					//String status = (String)mapCNSV000702SC.get("stat");					// ステータス
					//if("1100".equals(status))
					//{
					String ccmg_status = (String)mapCNSV000702SC.get("ccmg_status");
					if("1100".equals(ccmg_status) && JKKStringUtil.isNullEmpty(rsltCd))
					{
					// #84105 MOD END
						// CCMG連携に失敗した場合
						JCCWebCommon.setMessageInfo(this, "EKBF970-KW",
								new String[] {"CCMG連携"});
						
						// 遷移先の画面IDを共有フォームBeanの項目に設定する。
						commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
								X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00201);
						
						// 遷移先の画面名を共有フォームBeanの項目に設定する。
						commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
								X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00201);
						return true;
					}
					else
					{
// ANK-4346-00-00 ADD START
					// CCMGのエラーの場合、
						// #84105 MOD START
						//if(!"0".equals(status))
						if (!API_OK.equals(rsltCd) && !CONT_KEI_IS_CANCELED.equals(rsltCd))
						// #84105 MOD END
						{
							// CNIFE056_コンテンツ契約変更（CCMG）に失敗した場合
							JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
									new String[] { "CCMG連携（コンテンツ契約変更）", "CCMGエラーコード:" + rsltCd });
							return true;
						}
						else
						{
							// CNIFE056_コンテンツ契約変更が正常終了した場合、結果コードを正常"00000"を入れる
							rsltCd = "00000";
						}
					}
					// IT1-2024-0000003 ADD END
// ANK-4346-00-00 ADD END
					
					if(rsltCd.equals(API_OK) || rsltCd.equals(CONT_KEI_IS_CANCELED))
					{
						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB8740__I);
						// エラーがなかったので、遷移先の画面として次画面のIDを共有フォームBeanの項目に設定する。
						commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
								X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00202);
						
						// エラーがなかったので遷移先の画面名として次画面の名前を共有フォームBeanの項目に設定する。
						commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
								X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00202);
					}
					else if(STAT_NO_RESPONSE.equals(stat))
					{
						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9940_CE);
						return true;
					}
					else
					{
						JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9930_CE);
						return true;
					}
					
				}
				else
				{
					// メッセージID 未定を出力する。
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9940_CE);
				}
			}else{
	//		
				//  TODO 全解約のサービスを作ってから有効化する
				// コンテンツサービス全解約の場合
				
				allCanselFlg = true;
				
				paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_CNSV0028);
				
				CNSV0028_CNSV0028OPDBMapper mapper = new CNSV0028_CNSV0028OPDBMapper();
				mapper.setCNSV002801SC(paramBean, dataMap, "1"); // サービス契約内訳<eoモバイル>一覧照会
				
				// 入力パラメータ設定
				HashMap<String, Object> parentMap = new HashMap<String, Object>();
				// 機能コード
				parentMap.put("func_code", "1");
				// SYSID
				parentMap.put("sysid", bean.sendMessageString(CNW00201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
				X31SDataBeanAccess targetBean = null;
				X31SDataBeanAccessArray targetInfo = bean.getDataBeanArray(CNW00201SFConst.CUST_KOBET);
				targetBean = targetInfo.getDataBean(0);
				// eoID
				parentMap.put("eoid", targetBean.sendMessageString(CNW00201SFConst.EOID_01, X31CWebConst.DATABEAN_GET_VALUE));
				// お客様更新年月日時分秒
				parentMap.put("ck_upd_dtm", targetBean.sendMessageString(CNW00201SFConst.UPD_DTM_01, X31CWebConst.DATABEAN_GET_VALUE));
				// サービス契約更新年月日時分秒
				parentMap.put("kk_upd_dtm", bean.sendMessageString(CNW00201SFConst.SELECT_UPD_DTM, X31CWebConst.DATABEAN_GET_VALUE));
				// ユーザID
				parentMap.put("user_id", commoninfoBean.sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
				// ユーザ名
				parentMap.put("user_nm", commoninfoBean.sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE));
				
				dataMap.put("CNSV002801CC", parentMap);
	
				DEBUG_LOG.debug("***** CNSV0028 invokeService start *****");
				
				msgResult = invokeService(paramMap, dataMap, outputMap);
				
				DEBUG_LOG.debug("***** CNSV0028 invokeService end *****");
				
				HashMap ccMap = new HashMap();
				ccMap = (HashMap)outputMap.get("CNSV002801CC");
				
				String resultCd = (String)ccMap.get("return_cd");


				// 全解約サービスの結果の確認(品質強化対象)
				if(!"00".equals(resultCd))
				{
					// 品質強化対象
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9930_CE);
					return true;
				}
				
				// #84105 ADD START
				//// IT1-2024-0000003 ADD START
				//String status = (String)ccMap.get("ccmg_status");					// ステータス
				//String err_cd = (String)ccMap.get("err_cd");						// エラーコード
				//if("1100".equals(status))
				//{
				//	// CCMG連携に失敗した場合
				//	JCCWebCommon.setMessageInfo(this, "EKBF970-KW",
				//			new String[] {"CCMG連携"});
				//	
				//	// 遷移先の画面IDを共有フォームBeanの項目に設定する。
				//	commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				//			X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00201);
				//	
				//	// 遷移先の画面名を共有フォームBeanの項目に設定する。
				//	commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				//			X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00201);
				//	return true;
				//}
				//else
				//{
				//
				//// ANK-4346-00-00 ADD START
				//// CCMGのエラーの場合、
				//	// #84105 MOD START
				//	//if(resultCd.length() == 5)
				//	//{
				//	//	// CNIFE053_全コンテンツ契約変更（CCMG）に失敗した場合
				//	//	JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
				//	//			new String[] { "CCMG連携（全コンテンツ契約変更）", "CCMGエラーコード:" + resultCd });
				//	//	return true;
				//	//}
				//	if(!JKKStringUtil.isNullEmpty(err_cd))
				//	{
				//		// CNIFE053_全コンテンツ契約変更（CCMG）に失敗した場合
				//		JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
				//				new String[] { "CCMG連携（全コンテンツ契約変更）", "CCMGエラーコード:" + err_cd });
				//		return true;
				//	}
				//	// #84105 MOD END
				//	else
				//// ANK-4346-00-00 ADD END
				//	// 全解約サービスの結果の確認(品質強化対象)
				//		if(!"00".equals(resultCd))
				//		{
				//			// 品質強化対象
				//			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9930_CE);
				//			return true;
				//		}
				//}
				//// IT1-2024-0000003 MOD END
				// #84105 ADD END
				// 正常に終了した場合
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB8740__I);
				// エラーがなかったので、遷移先の画面として次画面のIDを共有フォームBeanの項目に設定する。
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
						X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00202);
				
				// エラーがなかったので遷移先の画面名として次画面の名前を共有フォームBeanの項目に設定する。
				commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
						X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00202);
			}
		}
		catch(Exception e)
		{
			/**
			 * Exception電文内容を解析し、SCExceptionの場合は
			 * CCMGAPIリターンコード"90006"eoID会員存在エラーと判定する。
			 * 業務上は発生しないシチュエーションである。
			 */
			if(e != null)
			{
				String strE = e.getMessage();
				
				// OM-2020-0001148 ADD START
				HashMap eaMap = new HashMap();
				eaMap = (HashMap)outputMap.get("CNSV002801CC");
				
				// IT1-2024-0000003 ADD START
				String status = (String)eaMap.get("ccmg_status");					// ステータス
				if("1100".equals(status))
				{
					// CCMG連携に失敗した場合
					JCCWebCommon.setMessageInfo(this, "EKBF970-KW",
							new String[] {"CCMG連携"});
					
					// 遷移先の画面IDを共有フォームBeanの項目に設定する。
					commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
							X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_ID_CNW00201);
					
					// 遷移先の画面名を共有フォームBeanの項目に設定する。
					commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
							X31CWebConst.DATABEAN_SET_VALUE, JCNScreenConst.SCREEN_NAME_CNW00201);
					return true;
				}
				// IT1-2024-0000003 ADD END
// ANK-4346-00-00 ADD START
				// エラーフラグ取得
				String errFlg = "";
				String errCd = "";
				if (eaMap != null) {
					errFlg = (String)eaMap.get("err_flg");
					errCd = (String)eaMap.get("err_cd");
					if("CCMG_ERR".equals(errFlg))
					{
						// CNIFE053_全コンテンツ契約変更（CCMG）に失敗した場合
						JCCWebCommon.setMessageInfo(this, "EKB8230-KW",
								new String[] { "CCMG連携（全コンテンツ契約変更）", "CCMGエラーコード:" + errCd });
						return false;
					}
				}
// ANK-4346-00-00 ADD END

				String sysidErr = (String)eaMap.get("sysid_err");
				
				// お客様状態遷移チェックエラーメッセージ出力
				if("EA".equals(sysidErr))
				{
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0290_JW ,new String[] {"お客様","`登録済`以外","お客様退会"});
				}
				// OM-2020-0001148 ADD END
				
				// OM-2020-0001148 MOD START
				// if(!strE.startsWith("X3"))
				else if(!strE.startsWith("X3"))
				// OM-2020-0001148 MOD END
				{
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBD310_KW);
				}
				else
				{
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB9930_CE);
				}
			}
			return true;
		}
		
		// 全解約時のみ実行する。
		if(allCanselFlg)
		{
			/************************
			 * AxM会員情報連携
			 ************************/
	
			HashMap paramMap4AxmReq = new HashMap();
			HashMap inputMap4AxmReq = new HashMap();
			HashMap outputMap4AxmReq = new HashMap();
	
			// サービスへのデータセット
			paramMap4AxmReq.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, axmRequestService);
			paramMap4AxmReq.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, axmRequestService + "OP");
			
			HashMap<String, Object> mapAxmCc = new HashMap<String, Object>();
			mapAxmCc.put("upd_trgt_sysid", bean.sendMessageString(CNW00201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
			inputMap4AxmReq.put("CKSV900101CC", mapAxmCc);
			
			// サービスの呼出
			X31CMessageResult msgResult4AxmReq = invokeService(paramMap4AxmReq, inputMap4AxmReq, outputMap4AxmReq);
	
			// エラー処理
			String errFlgAxm = (String)getParamFromMap(outputMap4AxmReq, "CKSV900101CC", "err_flg");
			if ((msgResult4AxmReq != null)||(!"0".equals(errFlgAxm)))
			{
				JCCWebCommon.setMessageInfo(this, "AxM会員情報連携サービスにてエラーが発生しました。");
				
				DEBUG_LOG.info("AxM会員情報連携サービスにてエラーが発生しました。");
			}
		}

		return true;
	}
	
	/**
	 * 戻るボタン押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_back() throws Exception
	{
		// 画面情報の取得
		JCCWebCommon.getScreenInfo(this);

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW00201SFConst.SYSID, bean.sendMessageString(CNW00201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 遷移元の画面ID取得
		String nextScreenId = JCCWebCommon.getScreenId(this);
		String nextScreenNm = "";

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, nextScreenId, dataMap);
		JCCWebCommon.setScreenId(this, nextScreenId, JCNScreenConst.SCREEN_ID_CNW00201);
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenNm);

		return true;
	}
	
	/**
	 * 完了ボタン押下時の処理を行います。<br>
	 * 
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws Exception
	 */
	public boolean action_finish() throws Exception
	{

		// 画面情報の取得
		JCCWebCommon.getScreenInfo(this);

		// 共通Bean取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 親画面のBean取得
		X31SDataBeanAccess bean = super.getServiceFormBean();

		// 次画面移送用のマップ作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// 移送データ設定
		dataMap.put(CNW00201SFConst.SYSID, bean.sendMessageString(CNW00201SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 遷移元の画面ID取得
		String nextScreenId = JCCWebCommon.getScreenId(this);
		String nextScreenNm = "";

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, nextScreenId, dataMap);
		JCCWebCommon.setScreenId(this, nextScreenId, JCNScreenConst.SCREEN_ID_CNW00202);
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		
		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenNm);

		return true;
	}
	
	/**
	 * オープン会員でeoモバイルを申し込み中かチェックします。
	 * 
	 * @param rsltCd 実行結果
	 * @return 条件に合致する場合true
	 */
	private boolean isOpenAndEOMobile(String rsltCd) 
	{
		if(OPEN_AND_EO_MOBILE.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	


	/**
	 * コンテンツ契約番号がAPI連携されているかチェックする。
	 * 
	 * @param rsltCd 実行結果
	 * @return 条件に合致する場合true
	 */
	private boolean isContKeiRight(String rsltCd) 
	{
		if(CONT_KEI_NO_IS_NULL.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * コンテンツ契約番号の書式が誤りがあるかチェックする。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isContKeiFormatRight(String rsltCd) 
	{
		if(CONT_KEI_NO_IS_WRONG_FORMAT.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * 更新者IDがAPI連携されているかチェックする。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isUserIDRight(String rsltCd) 
	{
		if(USER_ID_IS_NULL.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}

	/**
	 * 更新者IDの書式が正しいかチェックする。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isUserIDFormatRight(String rsltCd) 
	{
		if(USER_ID_IS_WRONG_FORMAT.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * 更新者がAPI連携されているかチェックする。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isUserNameRight(String rsltCd) 
	{
		if(USER_IS_NULL.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * 更新日時がAPI連携されているかチェックする。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isUpdateDtmRight(String rsltCd) 
	{
		if(UPD_DTM_IS_NULL.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * 更新日時の書式が正しいかチェックする。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isUpdateDtmFormatRight(String rsltCd) 
	{
		if(UPD_DTM_IS_WRONG_FORMAT.equals(rsltCd))
		{
			return false;
		}
		else
		{
		return true;
		}
	}

	/**
	 * コンテンツ契約番号に対するコンテンツ契約が存在するか確認する。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean existContKei(String rsltCd) 
	{
		if(CONT_KEI_NO_NOT_EXIST.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * コンテンツ契約番号に対するコンテンツ契約が解約済みか確認する。
	 * 
	 * @param rsltCd 選択行
	 * @return 解約済みでない場合true
	 */
	private boolean isNotContKeiCanceld(String rsltCd) 
	{
		if(CONT_KEI_IS_CANCELED.equals(rsltCd))
		{
			return false;
		}
		{
			return true;
		}
		
	}
	
	/**
	 * SYSIDとコンテンツ契約番号に紐づくSYSIDが一致しているか確認する。
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isSysIdSame(String rsltCd) 
	{
		if(SYSID_IS_NOT_SAME.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}

	/**
	 * コンテンツ契約番号に対するコンテンツ契約の更新日時とAPI連携された更新日時が一致するか
	 * 確認する
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isUpDateDtmSame(String rsltCd) 
	{
		if(UPDATE_DTM_IS_INVALID.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * 共連れ解約となる契約が存在するか確認する
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致しない場合true
	 */
	private boolean existOtherContent(String rsltCd) 
	{
		if(EXIST_OTHER_CONT.equals(rsltCd))
		{
			return false;
		}
		else
		{
			return true;
		}
	}

	/**
	 * メール送信が成功したか確認する
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致する場合true
	 */
	private boolean isSendMailOK(String rsltCd) 
	{
		if(SEND_MAIL_NG.equals(rsltCd))
		{
			return false;
		}
		{
			return true;
		}
		
	}
	
	/**
	 * その他例外が発生しているか確認する
	 * 
	 * @param rsltCd 結果コード
	 * @return 条件に合致しない場合true
	 */
	private boolean isSystemError(String rsltCd) 
	{
		if(OCCUR_EXCEPTION.equals(rsltCd))
		{
			return false;
		}
		{
			return true;
		}
	}
	
	/**
	 * マップから指定されたキーの値を取得する。
	 * (使用例）<BR/>
	 *     getParamFromXml("LKA11020_RECEIVE", "PROCESS_DIV");<BR/>
	 * 
	 * @param map マップ
	 * @param allKeys キー名
	 * @return 値
	 */
	@SuppressWarnings("unchecked")
	private static Object getParamFromMap(Map map, String...allKeys)
	{

		Map nowMap = map;
		Object returnVal = null;
		for (int i = 0; i < allKeys.length; i++)
		{
			String key = allKeys[i];
			int idx = -1;
			if (key.matches("[a-zA-Z0-9_\\-]+\\[[0-9]+\\]"))
			{
				idx = new Integer(key.replaceFirst("^[a-zA-Z0-9_\\-]+\\[", "").replace("]", ""));
				key = key.replaceFirst("\\[[0-9]+\\]", "");
			}
			if (nowMap.containsKey(key))
			{
				Object val = nowMap.get(key);
				if ((val instanceof List) && (idx >= 0))
				{
					List nowList = (List)val;
					val = nowList.get(idx);
				}
				if (val instanceof Map)
				{
					nowMap = (Map)val;
				}
				if (i == allKeys.length - 1)
				{
					returnVal = val;
				}
			}
			else
			{
				return null;
			}
		}

		return returnVal;
	}
}
