/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：CKW00201SFLogic
*   ソースファイル名：CKW00201SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月19日
*＜機能概要＞
*   お客様一覧を表示します。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v1.00.00    2011/05/19   FJ）川田    新規作成
*   v4.00.00    2012/08/22   FJ）稲岡    ANK-0406-03-00 対応
*   v4.01.00    2012/08/24   FJ）稲岡    ANK-0035-00-00 対応
*   v4.02.00    2012/09/21   FJ）稲岡    ANK-0546-00-00 対応
*   v4.03.00    2012/09/27   FJ）稲岡    ANK-0024-05-00 対応
*   v4.04.00    2012/11/13   FJ）赤穂    IT1-2012-0002054 対応
*	v4.05.00	2012/12/10	FJ）庭山	【IT1-2012-0002197】対応
*	v4.06.00	2012/12/21	FJ）庭山	【IT1-2012-0002526】対応
*	v4.07.00	2013/02/16   FJ）野口   【ST3-2013-0000040】対応
*	v4.08.00	2013/05/29   FJ）稲岡   【IT2-2013-0000476】対応
*   v4.09.00	2013/06/24   FJ）辛     【IT1-2013-0001280】対応
*	v5.00.00	2013/10/14	 FJ)稲岡	【OM-2013-0003150】対応
*	v8.00.00	2014/03/25	 FJ)石橋	【IT2-2014-0000154】対応
*   v10.00.00   2014/11/04	 FJ)舩橋     ANK-2273-00-00
*   v10.00.01   2014/11/06	 FJ)舩橋    【IT1-2014-0000361】対応
*   v11.00.00   2014/12/22	 FJ)舩橋    【IT1-2014-0000390】対応
*   v16.00.00	2015/05/01	FJ)頼経		【ANK-2480-00-00】対応 新電力
*   v29.00.00   2017/04/21	 FJ)クウン	【ANK-3132-00-00】バックヤード画面へのコンテンツ同意登録機能の追加
*   v29.00.00   2017/05/09	 FJ)クウン	【IT1-2017-0000035】対応
*	v39.00.00	2018/10/30	FJ）大崎	【ANK-3478-00-00】eo光設備卸対応(サービス開始対応)
*	v45.00.00	2019/08/01	FJ)Dave		【ANK-3699-00-00】
*	v59.00.00	2022/06/06	FJ)西窪		【ANK-4296-00-00】成人年齢引き下げに伴うバックヤード改修対応
**********************************************************************/

package eo.web.webview.CKW00201SF;

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.JCKStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ZMW10601SF.ZMW10601SFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKCommonConst;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JCKWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.CKSV0003_CKSV0003OPDBMapper;
import eo.web.webview.mapping.CKSV0004_CKSV0004OPDBMapper;
import eo.web.webview.mapping.CKSV0005_CKSV0005OPDBMapper;
import eo.web.webview.mapping.CKSV0006_CKSV0006OPDBMapper;

/**
 * お客様情報の新規登録を行います。<p>
 * <BR>
 * @author 富士通
 */
public class CKW00201SFLogic extends JCCWebBusinessLogic
{
	/** 顧客契約引継情報項目キー */
	private static final String[] CUST_KEI_HKTGI_KEYS = {
		JCKCommonConst.HKTGI_SYSID,
		JCKCommonConst.HKTGI_SVC_KEI_NO,
		JCKCommonConst.HKTGI_IDO_DIV,
		JCKCommonConst.HKTGI_IDO_RSN_CD,
		JCKCommonConst.HKTGI_IDO_RSN_MEMO,
		JCKCommonConst.HKTGI_OP_SVC_KEI_NO,
		JCKCommonConst.HKTGI_TRAN_DIV,
		JCKCommonConst.HKTGI_MSKM_NO,
		JCKCommonConst.HKTGI_MSKM_DTL_NO,
		JCKCommonConst.HKTGI_TOKUTEI_ID_KMK_NM,
		JCKCommonConst.HKTGI_TOKUTEI_ID_KMK_VALUE,
		JCKCommonConst.HKTGI_POPUP_MODE,
		JCKCommonConst.HKTGI_MSKM_SVC_KEI_NO
	};
	
	/** 家族認証方法 1：ファミリーコード */
	private static final String FMY_NIN_WAY_FAMILY_CD = "1";
	/** 家族認証方法 2：ＰＯＰＩＤ */
	private static final String FMY_NIN_WAY_POPID = "2";
	
	/** eoID プレフィックス文字 */
	private static final String PREFIX_STR = "51";
	/** エイジングステータス（使用中） */
	private static final String AGING_STAT_100 = "100";
	/** エイジングステータス（回復可能） */
	private static final String AGING_STAT_200 = "200";
	/** エイジングステータス（エージング中） */
	private static final String AGING_STAT_300 = "300";
	
	/** 住所検索部品 戻り値 "00" */
	private static final String RTN_AD_CD_00 = "00";
	/** 住所検索部品 戻り値 "000" */
	private static final String RTN_AD_CD_000 = "000";
	/** ""：空白 */
	private static final String DATABEAN_BLANK = "";
	
	/* ++++++++++ v4.00.00 追加開始 ++++++++++ */
	/** 契約譲渡手数料制御フラグ 0：非活性 */
	private static final String CTRL_FLG_NOT_USE = "0";
	/** 契約譲渡手数料制御フラグ 1：活性 */
	private static final String CTRL_FLG__USE = "1";
	/* ++++++++++ v4.00.00 追加終了 ++++++++++ */
	
	/** 契約者住所コード項目リスト */
	private static final String[] CUST_ADCD = {CKW00201SFConst.KSH_AD_CD_1,
													CKW00201SFConst.KSH_AD_CD_2,
													CKW00201SFConst.KSH_AD_CD_3,
													CKW00201SFConst.KSH_AD_CD_4};
	
	/** 親権者住所コード項目リスト */
	private static final String[] SKSHA_ADCD = {CKW00201SFConst.SKSHA_AD_CD_1,
													CKW00201SFConst.SKSHA_AD_CD_2,
													CKW00201SFConst.SKSHA_AD_CD_3,
													CKW00201SFConst.SKSHA_AD_CD_4};
	
	/** 契約者郵便番号項目リスト */
	private static final String[] CUST_PCD = {CKW00201SFConst.KSH_PCD_KAMI3, CKW00201SFConst.KSH_PCD_SHIMO4};
	/** 親権者郵便番号項目リスト */
	private static final String[] SKSHA_PCD = {CKW00201SFConst.SKSHA_PCD_KAMI3, CKW00201SFConst.SKSHA_PCD_SHIMO4};
	/** コンテンツ郵便番号項目リスト */
	private static final String[] CONT_PCD = {CKW00201SFConst.CONT_CUST_PCD_KAMI3, CKW00201SFConst.CONT_CUST_PCD_SHIMO4};
	
	/** 契約者生年月日項目リスト */
	private static final String[] CUST_BIRTHD = {CKW00201SFConst.CUST_BIRTHD_NENGO,
													CKW00201SFConst.CUST_BIRTHD_YEAR,
													CKW00201SFConst.CUST_BIRTHD_MON,
													CKW00201SFConst.CUST_BIRTHD_DAY};
	
	/** 親権者生年月日項目リスト */
	private static final String[] SKSHA_BIRTHD = {CKW00201SFConst.SKSHA_BIRTHD_NENGO,
													CKW00201SFConst.SKSHA_BIRTHD_YEAR,
													CKW00201SFConst.SKSHA_BIRTHD_MON,
													CKW00201SFConst.SKSHA_BIRTHD_DAY};
	
	/** コンテンツ生年月日項目リスト */
	private static final String[] CONT_BIRTHD = {CKW00201SFConst.CONT_CUST_BIRTHD_NENGO,
													CKW00201SFConst.CONT_CUST_BIRTHD_YEAR,
													CKW00201SFConst.CONT_CUST_BIRTHD_MON,
													CKW00201SFConst.CONT_CUST_BIRTHD_DAY};
	
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
	/** 住所チェック警告値 */
	private static final String STATUS_WARNING = "WA";

	/** 住所チェック対象リスト */
	private static final String[] AD_CHK_LV_ERR = {"keisha_ad_chk_lv_err","sksha_ad_chk_lv_err"};

	/** 住所チェック置き換え文字リスト */
	private static final String[] AD_CHK_LV_ERR_CHG = { "契約者住所","親権者住所" };
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
	
/* ++++++++++ v4.09.00 追加開始 ++++++++++ */
	/** 料金グループコード（eoメールアドレス） */
	private static final String PRC_GRP_CD_16 = "16";
/* ++++++++++ v4.09.00 追加終了 ++++++++++ */
	
	//---------v29.00.00 IT1-2017-0000035 ADD START---------//
	/** 料金グループコード（mineo） */
	private static final String PRC_GRP_CD_51 = "51";
	//---------v29.00.00 IT1-2017-0000035 ADD END-----------//
	
// ANK-3478-00-00 ADD START 
	/** パートナー会員チェック「ON」 */
	private static final String PTNR_MEMBER_FLG_ON = "1";
	/** パートナー会員チェック「OFF」 */
	private static final String PTNR_MEMBER_FLG_OFF = "0";
// ANK-3478-00-00 ADD END 

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean init() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 顧客契約引継データ格納
		getHktgiCustKeiDataMap(serviceBean);
		
		// 契約者分割フラグ
		boolean kysBuktuFlg = false;
		
		// 分割元＿引継＿異動区分
		X31SDataBeanAccess custBean = serviceBean.getDataBeanArray(JCKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);
		if(JCKCommonConst.IDO_DIV_VALUE_00014.equals(custBean.sendMessageString(JCKCommonConst.HKTGI_IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			kysBuktuFlg = true;
		}
		
		// 契約者分割フラグ
		serviceBean.sendMessageBoolean(CKW00201SFConst.KSH_BNKT_FLG, X31CWebConst.DATABEAN_SET_VALUE, kysBuktuFlg);
		
		// 日付関連(オンライン運用日付・適用開始年月日・システム日付) 格納
		setValueDate(serviceBean);
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0003");
		
		// 作業項目マップ
		HashMap<String, String> workMap = new HashMap<String, String>();
		
		// 作業項目マップに契約者分割フラグ格納
		workMap.put("kysBuktuFlg", String.valueOf(kysBuktuFlg));
		
		// "CKSV0003WORK01"をkeyにして作業項目マップにして格納
		inputMap.put("CKSV0003WORK01", workMap);
		
		// 上りマッピング
		CKSV0003_CKSV0003OPDBMapper mapper = new CKSV0003_CKSV0003OPDBMapper();
		mapper.setCKSV000301CC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		
		//****************************************
		// ■サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		//****************************************
		// ■サービス結果の転記
		//****************************************
		mapper.getCKSV000301CC(paramBean, outputMap);
		
		/** ■初期値格納処理 **/
		setInitValue(serviceBean);
		
// ANK-3478-00-00 ADD START 
		// パートナー会員判定結果
		String ptnrMemberFlg = getValue(paramBean[0], CKW00201SFConst.MT_PTNR_MEMBER_FLG);
		if(PTNR_MEMBER_FLG_ON.equals(ptnrMemberFlg))
		{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF270_KW);
		}
// ANK-3478-00-00 ADD END 

		// 遷移先のＩＤ・画面名を共有フォームBeanの項目に設定
		cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
		
		return true;
	}
	
	/**
	 * お客様情報検索を行いマスター会員の住所を表示する。
	 * <br>
	 * @return	boolean 	処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean search() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 画面データをサービスフォームBeanに格納
		setDispValue(serviceBean);
		
		// コンテンツお客様情報 データ領域クリア
		clearValueCtCustInfo(serviceBean);
		// 登録確認ボタン制御フラグ「登録確認」ボタン非活性
		serviceBean.sendMessageString(CKW00201SFConst.ADD_CFM_BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// 検索処理のユースケースID格納
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0006");
		
		// データBean・BPマッピングクラス生成
		CKSV0006_CKSV0006OPDBMapper mapper = new CKSV0006_CKSV0006OPDBMapper();
		
		// 家族認証方法(プルダウン選択値)取得
		String familyNinshoWay = getPullDownSelectCd(serviceBean, CKW00201SFConst.FAMILY_NINSHO_WAY);
		String[] errMsg = null;
		
		// お客様情報登録_検索サービス作業項目マップ01
		HashMap<String, String> workMap = new HashMap<String, String>();
		
		// 家族認証方法(プルダウン選択値) 格納
		workMap.put("family_ninsho_way", familyNinshoWay);
		
		// "CKSV0006WORK01"をkeyにして作業項目マップにして格納
		inputMap.put("CKSV0006WORK01", workMap);
		
		// 上りマッピング
		if(FMY_NIN_WAY_FAMILY_CD.equals(familyNinshoWay))
		{
			mapper.setCKSV000601SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);	// ファミリー会員グループ一覧照会（グループ入会コード）
			/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
			// ECK0111B070_グループ一覧照会（複合検索）
			mapper.setCKSV000606SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);	// ファミリー会員グループ一覧照会（グループ入会コード）
			/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
			errMsg = new String[]{"グループ", "ファミリーコード"};
		}
		else if(FMY_NIN_WAY_POPID.equals(familyNinshoWay))
		{
			mapper.setCKSV000603SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);	// グループリーダー一覧照会（POPID）
			errMsg = new String[]{"オプション契約＜ISP＞", "POPID"};
		}
		mapper.setCKSV000605SC(paramBean, inputMap, familyNinshoWay);	// ファミリー会員登録件数照会（PMP連携用）
		mapper.setCKSV000602SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_2);	// お客様一意照会
		
		//****************************************
		// ■サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		//***********************************************
		// ファミリーコード／POPID マスタ存在チェック
		// 検索結果なしの場合
		// １．エラーメッセージ出力
		// ２．「登録確認」ボタン非活性
		// ３．■コンテンツお客様情報 データ領域クリア
		// ４．処理終了
		//***********************************************
		// 検索結果判定
		/* ++++++++++ v8.00.00 変更開始 ++++++++++ */
//		if (mapper.getCKSV0006WORK01(paramBean, outputMap))
		// IT1-2014-0000390 MOD START
//		if (mapper.getCKSV0006WORK01(paramBean, outputMap) || mapper.getCKSV000606SC(paramBean, outputMap))
		if (mapper.getCKSV0006WORK01(paramBean, outputMap) || 
			(FMY_NIN_WAY_FAMILY_CD.equals(familyNinshoWay) && mapper.getCKSV000606SC(paramBean, outputMap)))
		// IT1-2014-0000390 MOD END
		/* ++++++++++ v8.00.00 変更終了 ++++++++++ */
		{
			// メッセージエリアにエラーメッセージを表示する。
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, errMsg, "family_cd_popid");
			
			// 処理終了
			return true;
		}
		
		//***********************************************
		// ファミリーコード／POPID 登録上限数チェック
		// １．エラーメッセージ出力
		// ２．「登録確認」ボタン非活性
		// ３．処理終了
		//***********************************************
		if (mapper.getCKSV000605SC(paramBean, outputMap, isFamilyKojin(serviceBean)))
		{
			// メッセージエリアにエラーメッセージを表示する。
			String[] msg = new String[]{"ファミリー会員数が上限に達している"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4970_KW, msg, "family_cd_popid");
			
			// 処理終了
			return true;
		}
		
		//****************************************
		// ■サービス結果の転記
		// 画面項目
		//****************************************
		mapper.getCKSV000602SC(paramBean, outputMap);
		
		// 登録確認ボタン制御フラグ「登録確認」ボタン活性
		serviceBean.sendMessageString(CKW00201SFConst.ADD_CFM_BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		// 画面遷移共通処理
		cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
		
		return true;
	}
	
	/**
	 * お客様登録確認画面に画面遷移します。
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public boolean forwardCustAdd() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// ユースケースID
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0004");
		
		// 画面データをサービスフォームBeanに格納
		setDispValue(serviceBean);
		
		// 和暦存在チェック
		if (isDateCheck(serviceBean))
		{
			cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
			return true;
		}
		
		// 画面データを表示形式・登録形式に加工
		editValueForNextScreen(serviceBean);
		
		//**********************************************************************
		// 上りマッピングメソッドの呼出を制御
		//**********************************************************************
		// DataBean - BP（お客様情報登録_登録確認サービス) マッピングクラス
		CKSV0004_CKSV0004OPDBMapper mapper = new CKSV0004_CKSV0004OPDBMapper();
		mapper.setCKSV000401CC(paramBean,
								inputMap,
								getPullDownSelectCd(serviceBean, CKW00201SFConst.FAMILY_NINSHO_WAY),
								isExecCreateCustKojin(serviceBean),
								isOpenMember(serviceBean),
								isFamilyMember(serviceBean));
		
		// 契約者分割フラグ取得
		boolean kysBuktuFlg = serviceBean.sendMessageBoolean(CKW00201SFConst.KSH_BNKT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		//---------v29.00.00 ANK-3132-00-00 ADD START---------//
		//mineo譲渡可否情報照会取得設定
		mapper.setMineoJotoKahiGetCC(paramBean, inputMap);
		//---------v29.00.00 ANK-3132-00-00 ADD END-----------//
	
		//****************************************
		// ■ サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 契約者分割時
		if(kysBuktuFlg)
		{
			mapper.getCKSV000401CC(paramBean, outputMap);
			
			// （３）関連チェック
			if (isRelationKysBuktu(serviceBean, mapper, outputMap))
			{
				cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
				return true;
			}

			// ANK-2273-00-00 ADD START
			// 請求分割CIC連携制御フラグチェック
			if (mapper.isChkRslt(outputMap, "cic_chk_flg"))
			{
				// メッセージエリアにエラーを表示する。
				// IT1-2014-0000361 MOD START
//				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5440_JW, 
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE175_KW, 
				// IT1-2014-0000361 MOD END
						new String[]{"請求先番号：" + paramBean[0].sendMessageString(CKW00201SFConst.BNKT_MT_SEIKY_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE) +
									 "にCIC連携制御フラグが設定されている", "お客様分割"});
				return true;
			}
			// ANK-2273-00-00 ADD END
			
			// お客様二重登録チェック（非eo会員）
			if (mapper.isChkRslt(outputMap, "cust_chk_flg"))
			{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5160__I);
			}
			
			// 不良顧客チェック
			if (mapper.isChkRslt(outputMap, "huryo_chk_flg"))
			{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB5170__I);
			}
			
			// お客様有効割賦情報存在チェック
			if (mapper.isChkRslt(outputMap, "kap_flg"))
			{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBC010__Q, new String[]{"お客様"});
			}
			
			// 親権者関連チェック
			if (isSkshaRelation(serviceBean))
			{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4900__Q, new String[]{"親権者情報", "登録"});
			}
			
			// 削除対象予約データ存在チェック
			if (mapper.isChkRslt(outputMap, "ido_rsv_flg"))
			{
				// メッセージエリアにインフォメーションを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB6280__I);
			}
			
			// ANK-2480-00-00 ADD START
			// ｅｏ電気ワーニングチェック
			boolean isSeikyDojiBnkt = serviceBean.sendMessageBoolean(CKW00201SFConst.SEIKY_DOJI_BNKT, X31CWebConst.DATABEAN_GET_VALUE);
			String bnktMtSvcCd = serviceBean.sendMessageString(CKW00201SFConst.BNKT_MT_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 請求同時分割チェック済みかつeo電気の場合
			if (isSeikyDojiBnkt && JKKStrConst.CD00130_05.equals(bnktMtSvcCd))
			{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBA880__Q,
						new String[]{"請求先同時分割対象の支払方法", "窓口払い", "eo電気契約の分割"});
			}
			// ANK-2480-00-00 ADD END
			
			//---------v29.00.00 ANK-3132-00-00 ADD START---------//
			if (this.isChkMineoRslt(outputMap, "joto_kahi_flg")){
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBE710_KW);
				return true;
			}
			//---------v29.00.00 ANK-3132-00-00 ADD END-----------//
		}
		// 新規登録時
		else
		{
			// エイジング＿使用終了年月日＿ｅｏＩＤ取得
			HashMap eoidMap = mapper.getAgingMap(outputMap, "eoid_list");
			// エイジング＿使用終了年月日＿ニックネーム取得
			HashMap nknameMap = mapper.getAgingMap(outputMap, "nkname_list");
			
			// （３）関連チェック
			if (isRelationNewAdd(serviceBean, outputMap, mapper, eoidMap, nknameMap))
			{
				cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
				return true;
			}
			
			// エイジング期間中の場合、ワーニング。
			if (isAgingPrd(serviceBean, eoidMap, CKW00201SFConst.EOID_UPD_DTM))
			{
				// メッセージエリアにメッセージを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4910__Q, new String[]{"eoID"});
			}
			
			// ニックネーム
			if (isNotBlank(serviceBean.sendMessageString(CKW00201SFConst.NKNAME, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// エイジング期間中の場合、ワーニング。
				if (isAgingPrd(serviceBean, nknameMap, CKW00201SFConst.NKNAME_UPD_DTM))
				{
					// メッセージエリアにメッセージを表示する。
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4910__Q, new String[]{"ニックネーム"});
				}
			}
		}
		
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
		// ワーニング判定
		warningChk(outputMap);
/* ++++++++++ v4.07.00 追加終了 ++++++++++ */
		
		// メッセージエリアにインフォメーションを表示する。
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, new String[]{"お客様情報の登録"});
		
// ANK-3478-00-00 ADD START 
		// パートナー会員判定結果
		String ptnrMemberFlg = getValue(paramBean[0], CKW00201SFConst.MT_PTNR_MEMBER_FLG);
		if(PTNR_MEMBER_FLG_ON.equals(ptnrMemberFlg))
		{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF270_KW);
		}
// ANK-3478-00-00 ADD END 

		// 遷移先のＩＤ・画面名を共有フォームBeanの項目に設定
		cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00202, JCKScreenConst.SCREEN_NAME_CKW00202);
		
		return true;
	}
	
	/**
	 * お客様情報を登録し完了画面に遷移します。
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean createCustInfo() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		//****************************************
		// ■サービス呼出処理前準備
		//****************************************
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラスに渡すために配列にする
		X31SDataBeanAccess[] paramBean = {serviceBean};
		
		// ユースケースID格納
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0005");
		
		// 契約者分割フラグ取得
		boolean kysBuktuFlg = serviceBean.sendMessageBoolean(CKW00201SFConst.KSH_BNKT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// DataBean - BP（お客様情報登録_登録確認サービス) マッピングクラス
		CKSV0005_CKSV0005OPDBMapper mapper = new CKSV0005_CKSV0005OPDBMapper();
		// 作業項目マップを格納
		mapper.setCKSV0005WORK01(paramBean, inputMap, isExecCreateCustKojin(serviceBean));
		
		// 実行判定
		if(isExecCreateCustKojin(serviceBean))
		{
			// お客様＜個人＞登録SC
			mapper.setCKSV000501SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		}
		
		// 実行判定
		if(isExecCreateCustHojin(serviceBean))
		{
			// お客様＜法人＞登録SC
			mapper.setCKSV000502SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		}
		
		// 契約者分割時
		if (kysBuktuFlg)
		{
			// お客様連絡先登録CC
			mapper.setRrksAddCC_Cust(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
			// お客様分割処理CC
			mapper.setJCKCustAddBnktUpdCC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1, isUseKeiJotoTesuryo(serviceBean));
		}
		// 新規登録時
		else
		{
			// お客様連絡先登録CC
			mapper.setRrksAddCC_ContCust(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
			// お客様登録処理CC
			mapper.setJCKCustAddNewUpdCC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		}
		
		//****************************************
		// ■サービス呼出
		//****************************************
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		//****************************************
		// ■サービス結果の転記
		//   新規発番ＳＹＳＩＤ取得
		//****************************************
		if(isExecCreateCustKojin(serviceBean))
		{
			// お客様＜個人＞登録SC
			mapper.getCKSV000501SC(paramBean, outputMap);
		}
		
		if(isExecCreateCustHojin(serviceBean))
		{
			// お客様＜法人＞登録SC
			mapper.getCKSV000502SC(paramBean, outputMap);
		}
		
		
		//****************************************
		// ■AxM連携
		//****************************************
		// 新規発番＿ＳＹＳＩＤ
		String newSysID = serviceBean.sendMessageString(CKW00201SFConst.NEW_HTB_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 契約者分割時
		if (kysBuktuFlg)
		{
			// 新規発番ＳＹＳＩＤ
			executeAxMRnki(newSysID, JCKStrConst.SJISHO_TRN_CD_ADMIN_API);
			executeAxMRnki(newSysID, JCKStrConst.SJISHO_TRN_CD_REPLICA_API);
			
			// 分割元ＳＹＳＩＤ
			X31SDataBeanAccess subbean = serviceBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);
			String bktmtSysID = subbean.sendMessageString(JKKCommonConst.HKTGI_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
			executeAxMRnki(bktmtSysID, JCKStrConst.SJISHO_TRN_CD_ADMIN_API);
			executeAxMRnki(bktmtSysID, JCKStrConst.SJISHO_TRN_CD_REPLICA_API);
		}
		// 新規登録時
		else
		{
			// 新規発番ＳＹＳＩＤ
			executeAxMRnki(newSysID, JCKStrConst.SJISHO_TRN_CD_ADMIN_API);
			
			// 会員種別 = ファミリー会員（個人／法人）
			if(isFamilyMember(serviceBean))
			{
				executeAxMRnki(newSysID, JCKStrConst.SJISHO_TRN_CD_REPLICA_API);
			}
		}
		
		// メッセージエリアにインフォメーションを表示する。
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"お客様情報登録"});
		
		// 遷移先のＩＤ・画面名を共有フォームBeanの項目に設定
		cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00203, JCKScreenConst.SCREEN_NAME_CKW00203);
		
		return true;
	}
	
	/**
	 * 住所検索ボタン（契約者）押下時処理
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean openKshAddressInfo() throws Exception
	{
		// 住所検索処理
		executeSearchAd(CUST_PCD);
		
		return true;
	}
	
	/**
	 * 住所検索（契約者）画面からの戻り時処理
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean setKshAddressInfo() throws Exception
	{
		String[] adItemList = {CKW00201SFConst.KSH_STATE,
								CKW00201SFConst.KSH_CITY,
								CKW00201SFConst.KSH_OAZTSU,
								CKW00201SFConst.KSH_AZCHO,
								CKW00201SFConst.KSH_BNCHIGO};
		
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 画面データをサービスフォームBeanに格納
		setDispValue(bean);
		// 契約者住所制御フラグ
		bean.sendMessageString(CKW00201SFConst.KSH_AD_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		// 住所検索画面からの戻り時処理
		executeSetAdInfo(CUST_ADCD, CUST_PCD, adItemList, CKW00201SFConst.KSH_REGAI_CHKBOX);
		
// ANK-3478-00-00 ADD START 
		// パートナー会員判定結果
		String ptnrMemberFlg = getValue(bean, CKW00201SFConst.MT_PTNR_MEMBER_FLG);
		if(PTNR_MEMBER_FLG_ON.equals(ptnrMemberFlg))
		{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF270_KW);
		}
// ANK-3478-00-00 ADD END 

		return true;
	}
	
	/**
	 * 住所検索ボタン（親権者）押下時処理
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean openSkshaAddressInfo() throws Exception
	{
		// 住所検索処理
		executeSearchAd(SKSHA_PCD);
		
		return true;
	}
	
	/**
	 * 住所検索（親権者）画面からの戻り時処理
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean setSkshaAddressInfo() throws Exception
	{
		String[] adItemList = {CKW00201SFConst.SKSHA_STATE,
								CKW00201SFConst.SKSHA_CITY,
								CKW00201SFConst.SKSHA_OAZTSU,
								CKW00201SFConst.SKSHA_AZCHO,
								CKW00201SFConst.SKSHA_BNCHIGO};
		
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// 画面データをサービスフォームBeanに格納
		setDispValue(bean);
		// 親権者住所制御フラグ
		bean.sendMessageString(CKW00201SFConst.SKSHA_AD_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "1");
		
		// 住所検索画面からの戻り時処理
		executeSetAdInfo(SKSHA_ADCD, SKSHA_PCD, adItemList, CKW00201SFConst.SKSHA_REGAI_CHKBOX);
		
		return true;
	}
	
	/**
	 * 住所検索ボタン（コンテンツお客様）押下時処理
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean openContCustAddressInfo() throws Exception
	{
		// 住所検索処理
		executeSearchAd(CONT_PCD);
		
		return true;
	}
	
	/**
	 * 住所検索（コンテンツお客様）画面からの戻り時処理
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean setContCustAddressInfo() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 画面データをサービスフォームBeanに格納
		setDispValue(serviceBean);
		
		// 郵便番号
		setValue(serviceBean, CKW00201SFConst.CONT_CUST_PCD_KAMI3, (String)map.get(ZMW10601SFConst.SESSION_RET_PCD_1));
		setValue(serviceBean, CKW00201SFConst.CONT_CUST_PCD_SHIMO4, (String)map.get(ZMW10601SFConst.SESSION_RET_PCD_2));
		
		// 住所（都道府県／市区町村名称）
		StringBuilder builder1 = new StringBuilder();
		builder1.append(map.get(ZMW10601SFConst.SESSION_RET_STATE_NM));
		builder1.append(map.get(ZMW10601SFConst.SESSION_RET_CITY_NM));
		serviceBean.sendMessageString(CKW00201SFConst.CONT_CUST_AD_STATE_CITY, X31CWebConst.DATABEAN_SET_VALUE, builder1.toString());
		
		// 住所（上記以外）
		StringBuilder builder2 = new StringBuilder();
		builder2.append(map.get(ZMW10601SFConst.SESSION_RET_OAZTSU_NM));
		builder2.append(map.get(ZMW10601SFConst.SESSION_RET_AZCHO_NM));
		serviceBean.sendMessageString(CKW00201SFConst.CONT_CUST_AD_OTHER, X31CWebConst.DATABEAN_SET_VALUE, builder2.toString());
		
		// 画面遷移共通処理
		cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
		
		return true;
	}
	
	/**
	 * お客様情報登録画面.「戻る」ボタンクリック
	 * 異動区分変更画面より遷移時
	 * お客様一覧照会画面に遷移します。
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean forwardCustListOrIdoKbn() throws Exception
	{
		// 遷移先の画面IDを共有フォームBeanの項目に設定
		X31SDataBeanAccess  commonInfoBean = super.getCommonInfoBean();
		
		// 遷移元画面判定
		String fwdScreenId = JCCWebCommon.getScreenId(this);
		if(JKKScreenConst.SCREEN_ID_KKW00145.equals(fwdScreenId))
		{
			// 顧客契約引継データの格納
			setHktgiDataMap();
			
			// 異動区分変更画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW00145);
		}
		else if(JCKScreenConst.SCREEN_ID_CKW00101.equals(fwdScreenId))
		{
			// お客様一覧照会画面に遷移
			commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW00101);
		}
		
		return true;
	}
	
	/**
	 * お客様情報登録確認画面.「修正」ボタンクリック
	 * お客様情報登録画面に遷移します。
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean backToCusInfo() throws Exception
	{
		// 遷移先のＩＤ・画面名を共有フォームBeanの項目に設定
		cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
		
// ANK-3478-00-00 ADD START 
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// パートナー会員判定結果
		String ptnrMemberFlg = getValue(bean, CKW00201SFConst.MT_PTNR_MEMBER_FLG);
		if(PTNR_MEMBER_FLG_ON.equals(ptnrMemberFlg))
		{
				// メッセージエリアにワーニングを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKBF270_KW);
		}
// ANK-3478-00-00 ADD END 

		return true;
	}
	
	/**
	 * お客様情報登録完了画面.「サービス契約一覧へ」ボタンクリック
	 * 異動区分選択画面に遷移します。
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean forwardSvcKeiList() throws Exception
	{
		// 顧客契約引継データの格納
		setHktgiDataMap();
		
		// 遷移先のＩＤ・画面名を共有フォームBeanの項目に設定
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW01101);
		
		return true;
	}
	
	/**
	 * お客様情報登録完了画面.「お客様一覧照会へ」ボタンクリック
	 * お客様一覧照会画面に遷移します。
	 * <br>
	 * @return	boolean		処理結果
	 * @throws	Exception	例外が発生した場合
	 */
	public boolean forwardCustList() throws Exception
	{
		// 遷移先のＩＤ・画面名を共有フォームBeanの項目に設定
		X31SDataBeanAccess  commonInfoBean = super.getCommonInfoBean();
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW00101);
		
		return true;
	}
	
	/**
	 * AXM連携用サービスを呼び出します。
	 * <br>
	 * @param	sysId	削除対象SYSID
	 * @param	trnCd	処理コード
	 */
	private void executeAxMRnki(String sysId, String trnCd)
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// サービスIDのセット
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV9001");
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, "CKSV9001OP");
		
		// サービスへのデータセット
		HashMap<String, String> mapRenkeiCC = new HashMap<String, String>();
		inputMap.put("CKSV900101CC", mapRenkeiCC);
		
		// 処理コード
		mapRenkeiCC.put("trn_cd", trnCd);
		// SYSID
		mapRenkeiCC.put("upd_trgt_sysid", sysId);
		
		// AXM連携サービスの呼出
		X31CMessageResult messageResult = invokeService(paramMap, inputMap, outputMap);
	}
	
	/**
	 * 画面遷移共通処理
	 * <br>
	 * @param nextID
	 * @param nextNm
	 */
	private void cmnForwardTran(String nextID, String nextNm)
	{
		// 共有フォームBeanのアクセスクラス取得
		X31SDataBeanAccess commonInfoBean = super.getCommonInfoBean();
		
		// 遷移先のＩＤ・画面名を共有フォームBeanの項目に設定
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextID);
		commonInfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextNm);
	}
	
	/**
	 * 住所検索処理
	 * <br>
	 * @param pcd
	 */
	private void executeSearchAd(String[] pcd)
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		String pcdKami3 = serviceBean.sendMessageString(pcd[0], X31CWebConst.DATABEAN_GET_VALUE);
		String pcdShimo4 = serviceBean.sendMessageString(pcd[1], X31CWebConst.DATABEAN_GET_VALUE);
		
		if (isNotBlank(pcdKami3) && isNotBlank(pcdShimo4))
		{
			// 入力値を設定する
			HashMap<String, Object> paramMap = new HashMap<String, Object>();
			
			paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_1, pcdKami3);
			paramMap.put(ZMW10601SFConst.SESSION_KEY_PCD_2, pcdShimo4);
			
			// 次画面ＩＤをキーに情報設定を行う
			JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601, paramMap);
		}
		
		// 遷移元画面ＩＤを格納
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601, JCKScreenConst.SCREEN_ID_CKW00201);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 画面遷移
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
	}
	
	/**
	 * 住所検索画面からの戻り時処理
	 * <br>
	 * @param adcd
	 * @param pcd
	 * @param	adItemList		画面項目リスト(住所関連)
	 * @param	adItemList(0)	都道府県
	 * @param	adItemList(1)	市区町村
	 * @param	adItemList(2)	大字通称
	 * @param	adItemList(3)	字丁目
	 * @param	adItemList(4)	番地号
	 * @param	regaiChkboxNm	手動入力CheckkBox項目名
	 */
	private void executeSetAdInfo(String[] adcd, String[] pcd, String[] adItemList, String regaiChkboxNm)
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 郵便番号
		serviceBean.sendMessageString(pcd[0], X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(ZMW10601SFConst.SESSION_RET_PCD_1));
		serviceBean.sendMessageString(pcd[1], X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(ZMW10601SFConst.SESSION_RET_PCD_2));
		
		// 住所マスタに存在しない項目について、住所コードを元に番地・号へ移動させる。
		executeMoveAdBnchigo(map, serviceBean, adcd, adItemList);
		
		// 手動入力 ⇒ チェックなし = 共通仕様
		serviceBean.sendMessageBoolean(regaiChkboxNm, X31CWebConst.DATABEAN_SET_VALUE, false);
		
		// 画面遷移共通処理
		cmnForwardTran(JCKScreenConst.SCREEN_ID_CKW00201, JCKScreenConst.SCREEN_NAME_CKW00201);
	}
	
	/**
	 * 住所マスタに存在しない項目について、住所コードを元に番地・号へ移動させる。
	 * <br>
	 * @param	map
	 * @param	serviceBean
	 * @param adcd
	 * @param	adItemList		画面項目リスト(住所関連)
	 * @param	adItemList(0)	都道府県
	 * @param	adItemList(1)	市区町村
	 * @param	adItemList(2)	大字通称
	 * @param	adItemList(3)	字丁目
	 * @param	adItemList(4)	番地号
	 */
	public void executeMoveAdBnchigo(HashMap<String, Object> map, X31SDataBeanAccess serviceBean, String[] adcd, String[] adItemList)
	{
		// 格納住所
		StringBuilder sbMoveAd = null;
		
		// 住所コード
		String rtnAdCd1 = (String)map.get(ZMW10601SFConst.SESSION_RET_AD_CD_1);		// 住所コード１
		String rtnAdCd2 = (String)map.get(ZMW10601SFConst.SESSION_RET_AD_CD_2);		// 住所コード２
		String rtnAdCd3 = (String)map.get(ZMW10601SFConst.SESSION_RET_AD_CD_3);		// 住所コード３
		String rtnAdCd4 = (String)map.get(ZMW10601SFConst.SESSION_RET_AD_CD_4);		// 住所コード４
		
		// 住所
		String rtnState = (String)map.get(ZMW10601SFConst.SESSION_RET_STATE_NM);	// 都道府県
		String rtnCity = (String)map.get(ZMW10601SFConst.SESSION_RET_CITY_NM);		// 市区町村
		String rtnOaztsu = (String)map.get(ZMW10601SFConst.SESSION_RET_OAZTSU_NM);	// 大字通称名
		String rtnAzcho = (String)map.get(ZMW10601SFConst.SESSION_RET_AZCHO_NM);	// 字丁目名
		
		serviceBean.sendMessageString(adcd[0], X31CWebConst.DATABEAN_SET_VALUE, rtnAdCd1);
		serviceBean.sendMessageString(adcd[1], X31CWebConst.DATABEAN_SET_VALUE, rtnAdCd2);
		serviceBean.sendMessageString(adcd[2], X31CWebConst.DATABEAN_SET_VALUE, rtnAdCd3);
		serviceBean.sendMessageString(adcd[3], X31CWebConst.DATABEAN_SET_VALUE, rtnAdCd4);
		
		// 移動する項目値をクリア
		serviceBean.sendMessage(adItemList[0], X31CWebConst.DATABEAN_CLEAR);
		serviceBean.sendMessage(adItemList[1], X31CWebConst.DATABEAN_CLEAR);
		serviceBean.sendMessage(adItemList[2], X31CWebConst.DATABEAN_CLEAR);
		serviceBean.sendMessage(adItemList[3], X31CWebConst.DATABEAN_CLEAR);
		
		// 上1〜2桁がすべて0
		if(RTN_AD_CD_00.equals(rtnAdCd1))
		{
			// 都道府県〜字丁目名を番地号に移動する。
			sbMoveAd = new StringBuilder();
			sbMoveAd.append(rtnState);
			sbMoveAd.append(rtnCity);
			sbMoveAd.append(rtnOaztsu);
			sbMoveAd.append(rtnAzcho);
			serviceBean.sendMessageString(adItemList[4], X31CWebConst.DATABEAN_SET_VALUE, sbMoveAd.toString());
		}
		// 上3〜5桁がすべて0
		else if(RTN_AD_CD_000.equals(rtnAdCd2))
		{
			// 都道府県 → 都道府県
			serviceBean.sendMessageString(adItemList[0], X31CWebConst.DATABEAN_SET_VALUE, rtnState);
			// 市区町村〜字丁目名を番地号に移動する。
			sbMoveAd = new StringBuilder();
			sbMoveAd.append(rtnCity);
			sbMoveAd.append(rtnOaztsu);
			sbMoveAd.append(rtnAzcho);
			serviceBean.sendMessageString(adItemList[4], X31CWebConst.DATABEAN_SET_VALUE, sbMoveAd.toString());
		}
		// 上6〜8桁がすべて0
		else if(RTN_AD_CD_000.equals(rtnAdCd3))
		{
			// 都道府県 → 都道府県
			serviceBean.sendMessageString(adItemList[0], X31CWebConst.DATABEAN_SET_VALUE, rtnState);
			// 市区町村 → 市区町村
			serviceBean.sendMessageString(adItemList[1], X31CWebConst.DATABEAN_SET_VALUE, rtnCity);
			// 大字通称名、字丁目名を番地号に移動する。
			sbMoveAd = new StringBuilder();
			sbMoveAd.append(rtnOaztsu);
			sbMoveAd.append(rtnAzcho);
			serviceBean.sendMessageString(adItemList[4], X31CWebConst.DATABEAN_SET_VALUE, sbMoveAd.toString());
		}
		// 上9桁〜11桁がすべて0
		else if(RTN_AD_CD_000.equals(rtnAdCd4))
		{
			// 都道府県 → 都道府県
			serviceBean.sendMessageString(adItemList[0], X31CWebConst.DATABEAN_SET_VALUE, rtnState);
			// 市区町村 → 市区町村
			serviceBean.sendMessageString(adItemList[1], X31CWebConst.DATABEAN_SET_VALUE, rtnCity);
			// 大字通称名 → 大字通称名
			serviceBean.sendMessageString(adItemList[2], X31CWebConst.DATABEAN_SET_VALUE, rtnOaztsu);
			// 字丁目名を番地号に移動する。
			serviceBean.sendMessageString(adItemList[4], X31CWebConst.DATABEAN_SET_VALUE, rtnAzcho);
		}
		else
		{
			serviceBean.sendMessageString(adItemList[0], X31CWebConst.DATABEAN_SET_VALUE, rtnState);
			serviceBean.sendMessageString(adItemList[1], X31CWebConst.DATABEAN_SET_VALUE, rtnCity);
			serviceBean.sendMessageString(adItemList[2], X31CWebConst.DATABEAN_SET_VALUE, rtnOaztsu);
			serviceBean.sendMessageString(adItemList[3], X31CWebConst.DATABEAN_SET_VALUE, rtnAzcho);
		}
	}
	
	/**
	 * データ加工（表示用・ＤＢ登録用）
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 */
	private void editValueForNextScreen(X31SDataBeanAccess serviceBean)
	{
		/****************************************************************************************************************************/
		/** 適用開始年月日																											*/
		/****************************************************************************************************************************/
		String startApply_Y = serviceBean.sendMessageString(CKW00201SFConst.TSTA_YEAR, X31CWebConst.DATABEAN_GET_VALUE);
		String startApply_M = serviceBean.sendMessageString(CKW00201SFConst.TSTA_MON, X31CWebConst.DATABEAN_GET_VALUE);
		String startApply_D = serviceBean.sendMessageString(CKW00201SFConst.TSTA_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		if(isNotBlank(startApply_Y) && isNotBlank(startApply_M) && isNotBlank(startApply_D))
		{
			// 表示形式
			StringBuilder builder1 = new StringBuilder(startApply_Y);
			builder1.append("年");
			builder1.append(startApply_M);
			builder1.append("月");
			builder1.append(startApply_D);
			builder1.append("日");
			serviceBean.sendMessageString(CKW00201SFConst.DISP_TSTA, X31CWebConst.DATABEAN_SET_VALUE, builder1.toString());
			
			// 登録形式
			setValue(serviceBean, CKW00201SFConst.TSTA, JPCUtilCommon.concatYmd(startApply_Y, startApply_M, startApply_D));
		}
		else
		{
			serviceBean.sendMessage(CKW00201SFConst.TSTA, X31CWebConst.DATABEAN_CLEAR);
		}
		
		setPullDownValueToBean(serviceBean, CKW00201SFConst.MEMBER_SBT);		// 会員種別
		setPullDownValueToBean(serviceBean, CKW00201SFConst.KYS_TYPE);			// 契約者タイプ
		
		// 会員種別 = ファミリー会員（個人／法人）またはオープン会員
		if(isFamilyOrOpenMmb(serviceBean))
		{
			editValueForNxScrnCont(serviceBean);
		}
		// 会員種別 = 非eo会員
		else
		{
			editValueForNxScrnKysBkt(serviceBean);
		}
		
		// 内販・外販情報
		setPullDownValueToBean(serviceBean, CKW00201SFConst.NAIHAN_GAIHAN_IF);
		// ANK-3699-00-00 ADD START
		String selectCd = setPullDownValueToBean(serviceBean, CKW00201SFConst.JOTO_KBN);
		
		if (selectCd.trim().isEmpty()) {
			serviceBean.sendMessage(CKW00201SFConst.JOTO_YEAR, X31CWebConst.DATABEAN_CLEAR);
			serviceBean.sendMessage(CKW00201SFConst.JOTO_MON, X31CWebConst.DATABEAN_CLEAR);
			serviceBean.sendMessage(CKW00201SFConst.JOTO_DAY, X31CWebConst.DATABEAN_CLEAR);
		}
		
		// ANK-3699-00-00 ADD END
	}
	
	/**
	 * 生年月日チェック
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return boolean
	 */
	private boolean isDateCheck(X31SDataBeanAccess serviceBean)
	{
		// 会員種別 = ファミリー会員（個人／法人）またはオープン会員
		if(isFamilyOrOpenMmb(serviceBean))
		{
			// コンテンツの生年月日をチェック
			if (isBirthday(serviceBean, CONT_BIRTHD[0], CONT_BIRTHD[1], CONT_BIRTHD[2], CONT_BIRTHD[3]))
			{
				// メッセージエリアにメッセージを表示する。
				String[] msg = new String[]{"コンテンツお客様生年月日"};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cont_cust_birthd_nengo");
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cont_cust_birthd_year");
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cont_cust_birthd_mon");
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cont_cust_birthd_day");
				return true;
			}
		}
		// 会員種別 = 非eo会員
		else
		{
			// 契約者の生年月日をチェック
			if (isBirthday(serviceBean, CUST_BIRTHD[0], CUST_BIRTHD[1], CUST_BIRTHD[2], CUST_BIRTHD[3]))
			{
				// メッセージエリアにメッセージを表示する。
				String[] msg = new String[]{"契約者生年月日"};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cust_birthd_nengo");
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cust_birthd_year");
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cust_birthd_mon");
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "cust_birthd_day");
				return true;
			}
			
			// 親権者入力有無が有りの場合
			if(JCKCommonConst.UM_U.equals(serviceBean.sendMessageString(CKW00201SFConst.SKSHA_INPUT_UM, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 親権者の生年月日をチェック
				if (isBirthday(serviceBean, SKSHA_BIRTHD[0], SKSHA_BIRTHD[1], SKSHA_BIRTHD[2], SKSHA_BIRTHD[3]))
				{
					// メッセージエリアにメッセージを表示する。
					// ＜%1%は日付として認識できません。＞
					String[] msg = new String[]{"親権者生年月日"};
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "sksha_birthd_nengo");
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "sksha_birthd_year");
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "sksha_birthd_mon");
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB2530_NW, msg, "sksha_birthd_day");
					return true;
				}
			}
		}
		
		return false;
	}
	
	/**
	 * 生年月日の存在チェック
	 * <br>
	 * @param bean
	 * @param nengo
	 * @param year
	 * @param month
	 * @param day
	 * @return boolean
	 */
	private boolean isBirthday(X31SDataBeanAccess bean, String nengo, String year, String month, String day)
	{
		String selectCd = getPullDownSelectCd(bean, nengo);
		
		if(isNotBlank(selectCd))
		{
			String nen = getValue(bean, year);
			String custYMD = getSeirekiYear(selectCd, nen, getValue(bean, month), getValue(bean, day));
			
			if (isBlank(custYMD) && isNotBlank(nen))
			{
				return true;
			}
		}
		return false;
	}
	
	/**
	 * データ加工（表示用・ＤＢ登録用）
	 * 会員種別 = ファミリー会員（個人／法人）またはオープン会員
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 */
	private void editValueForNxScrnCont(X31SDataBeanAccess serviceBean)
	{
		// ファミリー会員の場合
		if (isFamilyMember(serviceBean))
		{
			// 家族認証方法
			setPullDownValueToBean(serviceBean, CKW00201SFConst.FAMILY_NINSHO_WAY);
		}
		
		/****************************************************************************************************************************/
		/** コンテンツお客様																										*/
		/****************************************************************************************************************************/
		// 生年月日（表示形式）
		setValue(serviceBean, CKW00201SFConst.DISP_CONT_CUST_BIRTHD, editBirthdForDisp(serviceBean, CONT_BIRTHD));
		// 生年月日（登録形式）
		setValue(serviceBean, CKW00201SFConst.CONT_CUST_BIRTHD, editBirthdForCreate(serviceBean, CONT_BIRTHD));
		// 性別（表示形式）
		setValueSexForDisp(serviceBean, CKW00201SFConst.CONT_CUST_SEX, CKW00201SFConst.CONT_CUST_SEX_NM);
		// 年齢（表示形式）
		setValue(serviceBean, CKW00201SFConst.CONT_CUST_OLD, editValueAgeForDisp(serviceBean, CKW00201SFConst.CONT_CUST_OLD));
		// 郵便番号
		setValuePcd(serviceBean, CONT_PCD, CKW00201SFConst.CONT_CUST_PCD, CKW00201SFConst.DB_CONT_CUST_PCD);
		
		// ｅｏＩＤパスワード（表示用）
		StringBuilder builder = new StringBuilder();
		builder.append(serviceBean.sendMessageString(CKW00201SFConst.EOID, X31CWebConst.DATABEAN_GET_VALUE));
		builder.append("/");
		builder.append(serviceBean.sendMessageString(CKW00201SFConst.EOID_PWD, X31CWebConst.DATABEAN_GET_VALUE));
		serviceBean.sendMessageString(CKW00201SFConst.DISP_EOID_PWD, X31CWebConst.DATABEAN_SET_VALUE, builder.toString());
		
		// 秘密の質問
		setPullDownValueToBean(serviceBean, CKW00201SFConst.SECR_QS);
		// 連絡先メールアドレス
		setValue(serviceBean, CKW00201SFConst.RCV_MLAD, getValue(serviceBean, CKW00201SFConst.CONT_CUST_MLAD));
	}
	
	/**
	 * データ加工（表示用・ＤＢ登録用）
	 * 会員種別 = 非eo会員
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 */
	private void editValueForNxScrnKysBkt(X31SDataBeanAccess serviceBean)
	{
		/****************************************************************************************************************************/
		/** 契約譲渡手数料																											*/
		/****************************************************************************************************************************/
		if (isUseKeiJotoTesuryo(serviceBean))
		{
			setValueKeiJtTesuryoForDisp(serviceBean);
		}
		
		/****************************************************************************************************************************/
		/** 契約者																													*/
		/****************************************************************************************************************************/
		// 生年月日（表示形式）
		String birthd = editBirthdForDisp(serviceBean, CUST_BIRTHD) + " " + editValueAgeForDisp(serviceBean, CKW00201SFConst.CUST_OLD);
		setValue(serviceBean, CKW00201SFConst.DISP_CUST_BIRTHD, birthd);
		// 生年月日（登録形式）
		setValue(serviceBean, CKW00201SFConst.CUST_BIRTHD, editBirthdForCreate(serviceBean, CUST_BIRTHD));
		// 性別（表示形式）
		setValueSexForDisp(serviceBean, CKW00201SFConst.CUST_SEX, CKW00201SFConst.CUST_SEX_NM);
		
		// 郵便番号
		setValuePcd(serviceBean, CUST_PCD, CKW00201SFConst.KSH_PCD, CKW00201SFConst.DB_KSH_PCD);
		// 住所コード（表示形式・登録形式）
		setValueAdCdForCreate(serviceBean, CUST_ADCD, CKW00201SFConst.KSH_AD_CD, CKW00201SFConst.DB_KSH_AD_CD);
		
		// 個人タイプの場合
		if (isCheckSelectKojin(serviceBean))
		{
			// 職業
			setPullDownValueToBean(serviceBean, CKW00201SFConst.JOB);
			
			// 親権者入力有無(ラジオボタン)
			String skshaInputUm = serviceBean.sendMessageString(CKW00201SFConst.SKSHA_INPUT_UM, X31CWebConst.DATABEAN_GET_VALUE);
			String inputValue = "";
			if(JCKCommonConst.UM_U.equals(skshaInputUm))
			{
				inputValue = "あり";
				// 生年月日（表示形式）
				setValue(serviceBean, CKW00201SFConst.DISP_SKSHA_BIRTHD, editBirthdForDisp(serviceBean, SKSHA_BIRTHD));
				// 生年月日（登録形式）
				setValue(serviceBean, CKW00201SFConst.SKSHA_BIRTHD, editBirthdForCreate(serviceBean, SKSHA_BIRTHD));
				// 年齢（表示形式）
				setValue(serviceBean, CKW00201SFConst.SKSHA_OLD, editValueAgeForDisp(serviceBean, CKW00201SFConst.SKSHA_OLD));
				// 続柄
				setPullDownValueToBean(serviceBean, CKW00201SFConst.SKSHA_ZOKUGARA);
				// 郵便番号
				setValuePcd(serviceBean, SKSHA_PCD, CKW00201SFConst.SKSHA_PCD, CKW00201SFConst.DB_SKSHA_PCD);
				// 住所コード（表示形式・登録形式）
				setValueAdCdForCreate(serviceBean, SKSHA_ADCD, CKW00201SFConst.SKSHA_AD_CD, CKW00201SFConst.DB_SKSHA_AD_CD);
			}
			else if(JCKCommonConst.UM_M.equals(skshaInputUm))
			{
				inputValue = "なし";
			}
			
			// 親権者入力有無
			serviceBean.sendMessageString(CKW00201SFConst.DISP_SKSHA_INPUT_UM, X31CWebConst.DATABEAN_SET_VALUE, inputValue);
		}
		else
		{
			// 法人格種別（前後指定）
			setPullDownValueToBean(serviceBean, CKW00201SFConst.HOJIN_ZENGO_STI);
			// 法人格種別
			setPullDownValueToBean(serviceBean, CKW00201SFConst.HOJIN_SBT);
			
			// 業種
			setPullDownValueToBean(serviceBean, CKW00201SFConst.GSHU);
		}
		
		// 連絡条件
		setPullDownValueToBean(serviceBean, CKW00201SFConst.RRK_JOKEN);
		
		/****************************************************************************************************************************/
		/** 職種																													*/
		/****************************************************************************************************************************/
		setValueJobCtgryForDisp(serviceBean);
	}
	
	/**
	 * 日付関連（オンライン運用日付・適用開始年月日・システム日付） 格納
	 * <br>
	 * @param	serviceBean		サービスフォームBean
	 */
	private void setValueDate(X31SDataBeanAccess serviceBean)
	{
		// オンライン運用日付の取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);
		
		// オンライン運用日付(YYYYMMDD形式)格納
		serviceBean.sendMessageString(CKW00201SFConst.OPEDATE, X31CWebConst.DATABEAN_SET_VALUE, opeDate);
		// オンライン運用日付時分秒(YYYYMMDDhhmmssSSS形式)格納
		serviceBean.sendMessageString(CKW00201SFConst.OPEDTM, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDateTimeStamp(this, null));
		// 適用開始年月日（年）
		serviceBean.sendMessageString(CKW00201SFConst.TSTA_YEAR, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toYearFromYmd(opeDate));
		// 適用開始年月日（月）
		serviceBean.sendMessageString(CKW00201SFConst.TSTA_MON, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toMonthFromYmd(opeDate));
		// 適用開始年月日（日）
		serviceBean.sendMessageString(CKW00201SFConst.TSTA_DAY, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toDayFromYmd(opeDate));
	}
	
	/**
	 * 画面入力値を表示形式に加工（生年月日）
	 * <br>
	 * @param bean
	 * @param list
	 * @return String
	 */
	private String editBirthdForDisp(X31SDataBeanAccess bean, String[] list)
	{
		String birthd_N = getPullDownSelectNm(bean, list[0]);
		
		if (isNotBlank(birthd_N))
		{
			StringBuilder builder = new StringBuilder();
			builder.append("(");
			builder.append(birthd_N);
			builder.append(") ");
			builder.append(bean.sendMessageString(list[1], X31CWebConst.DATABEAN_GET_VALUE));
			builder.append(" 年 ");
			builder.append(bean.sendMessageString(list[2], X31CWebConst.DATABEAN_GET_VALUE));
			builder.append(" 月 ");
			builder.append(bean.sendMessageString(list[3], X31CWebConst.DATABEAN_GET_VALUE));
			builder.append("日");
			return builder.toString();
		}
		return "";
	}
	
	/**
	 * 画面入力値を登録形式に加工（生年月日）
	 * <br>
	 * @param bean
	 * @param list
	 * @return String
	 */
	private String editBirthdForCreate(X31SDataBeanAccess bean, String[] list)
	{
		String selectCd = getPullDownSelectCd(bean, list[0]);
		
		if(isNotBlank(selectCd))
		{
			// 西暦取得
			return getSeirekiYear(selectCd, getValue(bean, list[1]), getValue(bean, list[2]), getValue(bean, list[3]));
		}
		return "";
	}
	
	/**
	 * 画面入力値を表示形式に加工（契約譲渡手数料）
	 * <br>
	 * @param	serviceBean		サービスフォームBean
	 * @param	cmpIdRdBtn		対象ラジオボタン名
	 * @param	itemName		格納先項目名
	 */
	private void setValueKeiJtTesuryoForDisp(X31SDataBeanAccess serviceBean)
	{
		// 契約譲渡手数料金額 加工文字列
		StringBuilder dispKeiJtTesuryo = new StringBuilder();
		
		// 契約譲渡手数料金額（表示用）クリア
		serviceBean.sendMessage(CKW00201SFConst.DISP_KEI_JOTO_CMS_AMNT, X31CWebConst.DATABEAN_CLEAR);
		
		// 契約譲渡手数料(プルダウン選択コード)
		String selectTesuryo = getPullDownSelectCd(serviceBean, CKW00201SFConst.KEI_JOTO_TESURYO);
		
		// 契約譲渡手数料 選択値 = ""
		if(isBlank(selectTesuryo))
		{
			// 処理終了
			return;
		}
		
		// 一時支払料金額（一時支払料金）
		String tmpPayPrcAmnt = serviceBean.sendMessageString(CKW00201SFConst.TMP_PAY_PRC_AMNT, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 契約譲渡手数料(表示)
		String dispTesuryo = "";
		
		// 契約譲渡手数料金額(表示)
		String dispAmnt = "";
		
		// 契約譲渡手数料 選択値
		// "0":無
		if(JCKCommonConst.JM_COMMISION_SKBT_CD_M.equals(selectTesuryo))
		{
			// 契約譲渡手数料金額（表示用）
			serviceBean.sendMessageString(CKW00201SFConst.DISP_KEI_JOTO_CMS_AMNT, X31CWebConst.DATABEAN_SET_VALUE, "無");
			// 契約譲渡手数料金額 = 設定値なし
			return;
		}
		// "1":有
		else if(JCKCommonConst.JM_COMMISION_SKBT_CD_U.equals(selectTesuryo))
		{
			// 契約譲渡手数料
			dispTesuryo = "有";
			// 契約譲渡手数料金額 = (一時支払料金額（一時支払料金）)全額
			dispAmnt = tmpPayPrcAmnt;
		}
		// "2":半額
		else if(JCKCommonConst.JM_COMMISION_SKBT_CD_HANGAKU.equals(selectTesuryo))
		{
			// 契約譲渡手数料
			dispTesuryo = "半額";
			// 契約譲渡手数料金額 = (一時支払料金額（一時支払料金）)半額
			int amnt = Integer.parseInt(tmpPayPrcAmnt) / 2;
			dispAmnt = String.valueOf(amnt);
			
		}
		// "3":指定額
		else if(JCKCommonConst.JM_COMMISION_SKBT_CD_SHITEI.equals(selectTesuryo))
		{
			// 契約譲渡手数料
			dispTesuryo = "指定額";
			// 契約譲渡手数料金額 = 画面入力値
			dispAmnt = serviceBean.sendMessageString(CKW00201SFConst.KEI_JOTO_TESURYO_AMNT, X31CWebConst.DATABEAN_GET_VALUE);
		}
		
		dispKeiJtTesuryo.append(dispTesuryo);
		dispKeiJtTesuryo.append(" ");
		dispKeiJtTesuryo.append(JPCUtilCommon.formatNumber(dispAmnt));
		dispKeiJtTesuryo.append("円");
		
		// 契約譲渡手数料金額（表示用）
		serviceBean.sendMessageString(CKW00201SFConst.DISP_KEI_JOTO_CMS_AMNT, X31CWebConst.DATABEAN_SET_VALUE, dispKeiJtTesuryo.toString());
	}
	
	/**
	 * 画面入力値を表示形式に加工（性別）
	 * <br>
	 * @param	serviceBean		サービスフォームBean
	 * @param	cmpIdRdBtn		対象ラジオボタン名
	 * @param	itemName		格納先項目名
	 */
	private void setValueSexForDisp(X31SDataBeanAccess serviceBean, String cmpIdRdBtn, String itemName)
	{
		serviceBean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, DATABEAN_BLANK);
		
		// 性別(ラジオボタン)
		String sex = serviceBean.sendMessageString(cmpIdRdBtn, X31CWebConst.DATABEAN_GET_VALUE);
		// 表示形式
		if (JKKStrConst.CD00245_1.equals(sex))
		{
			serviceBean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, "男");
		}
		else if(JKKStrConst.CD00245_2.equals(sex))
		{
			serviceBean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, "女");
		}
		else if(JKKStrConst.CD00245_3.equals(sex))
		{
			serviceBean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, "不明");
		}
	}
	
	/**
	 * 画面入力値を表示形式に加工（職種）
	 * <br>
	 * @param	serviceBean		サービスフォームBean
	 */
	private void setValueJobCtgryForDisp(X31SDataBeanAccess serviceBean)
	{
		// 格納値
		String jobCtgry = "";
		
		// 契約者タイプ "1:個人"選択
		if(isCheckSelectKojin(serviceBean))
		{
			// 職業
			jobCtgry = getPullDownSelectNm(serviceBean, CKW00201SFConst.JOB);
		}
		else
		{
			// 業種
			jobCtgry = getPullDownSelectNm(serviceBean, CKW00201SFConst.GSHU);
		}
		
		// DataBeanに格納
		serviceBean.sendMessageString(CKW00201SFConst.DISP_SHOKUSHU, X31CWebConst.DATABEAN_SET_VALUE, jobCtgry);
	}
	
	/**
	 * 画面入力値を表示形式に加工（年齢）
	 * <br>
	 * @param bean
	 * @param itemName
	 * @return String
	 */
	private String editValueAgeForDisp(X31SDataBeanAccess serviceBean, String itemName)
	{
		// 年齢
		String age = serviceBean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
		String value = DATABEAN_BLANK;
		
		if (isNotBlank(age))
		{
			// 表示形式
			StringBuilder builder = new StringBuilder();
			builder.append("年齢 ");
			builder.append(age);
			builder.append(" 歳");
			value = builder.toString();
		}
		
		return value;
	}
	
	/**
	 * 画面入力値を表示形式に加工（郵便番号）
	 * <br>
	 * @param bean		サービスフォームBean
	 * @param pcd		郵便番号
	 * @param dispName	表示項目名
	 * @param itemName	格納先項目名
	 */
	private void setValuePcd(X31SDataBeanAccess bean, String[] pcd, String dispName, String itemName)
	{
		bean.sendMessageString(dispName, X31CWebConst.DATABEAN_SET_VALUE, DATABEAN_BLANK);
		
		// 郵便番号
		String pcd3 = bean.sendMessageString(pcd[0], X31CWebConst.DATABEAN_GET_VALUE);
		String pcd4 = bean.sendMessageString(pcd[1], X31CWebConst.DATABEAN_GET_VALUE);
		
		if (isNotBlank(pcd3) && isNotBlank(pcd4))
		{
			String value = JPCUtilCommon.concatPcd(pcd3, pcd4);
			// 登録形式
			bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, value);
			// 表示形式
			bean.sendMessageString(dispName, X31CWebConst.DATABEAN_SET_VALUE, "〒" + JPCUtilCommon.hyhunPcd(value));
		}
	}
	
	/**
	 * 画面入力値を表示・登録形式に加工（住所コード）
	 * <br>
	 * @param bean
	 * @param adcd 
	 * @param dispItem
	 * @param itemName
	 */
	private void setValueAdCdForCreate(X31SDataBeanAccess bean, String[] adcd, String dispItem, 	String itemName)
	{
		// 住所コード
		StringBuilder builder1 = new StringBuilder();
		builder1.append(bean.sendMessageString(adcd[0], X31CWebConst.DATABEAN_GET_VALUE));
		builder1.append(bean.sendMessageString(adcd[1], X31CWebConst.DATABEAN_GET_VALUE));
		builder1.append(bean.sendMessageString(adcd[2], X31CWebConst.DATABEAN_GET_VALUE));
		builder1.append(bean.sendMessageString(adcd[3], X31CWebConst.DATABEAN_GET_VALUE));
		// 表示形式
		bean.sendMessageString(dispItem, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.hyhunAdCd(builder1.toString()));
		// 登録形式
		bean.sendMessageString(itemName, X31CWebConst.DATABEAN_SET_VALUE, builder1.toString());
	}
	
	/**
	 * 画面データをサービスフォームBeanに格納
	 * <br>
	 * @param bean
	 * @return boolean
	 */
	private void setDispValue(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccess subbean = bean.getDataBeanArray(CKW00201SFConst.NAIHAN_GAIHAN_IF).getDataBean(0);
		String gaihan = JCKWebCommon.getPullDownIndex(bean,
														JKKStrConst.CD00682_001,
														CKW00201SFConst.NAIHAN_GAIHAN_IF,
														CKW00201SFConst.CD_DIV_CD_LIST_01);
		String naihan = JCKWebCommon.getPullDownIndex(bean,
														JKKStrConst.CD00682_002,
														CKW00201SFConst.NAIHAN_GAIHAN_IF,
														CKW00201SFConst.CD_DIV_CD_LIST_01);
		String sbt = JCKWebCommon.getPullDownIndex(bean, "00", CKW00201SFConst.HOJIN_SBT, CKW00201SFConst.CD_DIV_CD_LIST_01);
		
		// 非eo会員
		if(isNotEoMmb(bean))
		{
			// 契約譲渡手数料が有効の場合
			if (isUseKeiJotoTesuryo(bean))
			{
				// 指定額以外の場合
				if(!JCKCommonConst.JM_COMMISION_SKBT_CD_SHITEI.equals(getPullDownSelectCd(bean, CKW00201SFConst.KEI_JOTO_TESURYO)))
				{
					bean.sendMessage(CKW00201SFConst.KEI_JOTO_TESURYO_AMNT, X31CWebConst.DATABEAN_CLEAR);	// 契約譲渡手数料
				}
			}
			
			// 契約者住所未検索の場合
			if ("0".equals(getValue(bean, CKW00201SFConst.KSH_AD_CTRL_FLG)))
			{
				bean.sendMessage(CKW00201SFConst.KSH_AD_CD_1, X31CWebConst.DATABEAN_CLEAR);		// 住所コード１
				bean.sendMessage(CKW00201SFConst.KSH_AD_CD_2, X31CWebConst.DATABEAN_CLEAR);		// 住所コード２
				bean.sendMessage(CKW00201SFConst.KSH_AD_CD_3, X31CWebConst.DATABEAN_CLEAR);		// 住所コード３
				bean.sendMessage(CKW00201SFConst.KSH_AD_CD_4, X31CWebConst.DATABEAN_CLEAR);		// 住所コード４
				bean.sendMessage(CKW00201SFConst.KSH_STATE, X31CWebConst.DATABEAN_CLEAR);		// 都道府県
				bean.sendMessage(CKW00201SFConst.KSH_CITY, X31CWebConst.DATABEAN_CLEAR);		// 市区町村
				bean.sendMessage(CKW00201SFConst.KSH_OAZTSU, X31CWebConst.DATABEAN_CLEAR);		// 大字通称
				bean.sendMessage(CKW00201SFConst.KSH_AZCHO, X31CWebConst.DATABEAN_CLEAR);		// 字丁目
				// 手動入力
				bean.sendMessageBoolean(CKW00201SFConst.KSH_REGAI_CHKBOX, X31CWebConst.DATABEAN_SET_VALUE, false);
			}
			
			// 個人タイプの場合
			if (isCheckSelectKojin(bean))
			{
				clearSelectIndexPlDwn(bean, CKW00201SFConst.HOJIN_ZENGO_STI);							// 法人格種別（前後）
				clearSelectIndexPlDwn(bean, CKW00201SFConst.HOJIN_SBT);									// 法人格種別
				bean.sendMessage(CKW00201SFConst.DIHYSHA_POST, X31CWebConst.DATABEAN_CLEAR);			// 代表者役職
				bean.sendMessage(CKW00201SFConst.DIHYSHA_KANA, X31CWebConst.DATABEAN_CLEAR);			// 代表者名（カナ）
				bean.sendMessage(CKW00201SFConst.DIHYSHA_NM, X31CWebConst.DATABEAN_CLEAR);				// 代表者名
				bean.sendMessage(CKW00201SFConst.RRKS_TNTSHA_SHOZKBSHO, X31CWebConst.DATABEAN_CLEAR);	// 担当者所属部署
				bean.sendMessage(CKW00201SFConst.RRKS_TNTSHA_KANA, X31CWebConst.DATABEAN_CLEAR);		// 担当者名（カナ）
				bean.sendMessage(CKW00201SFConst.RRKS_TNTSHA_NM, X31CWebConst.DATABEAN_CLEAR);			// 担当者名
				bean.sendMessage(CKW00201SFConst.COMP_SKBT_CD, X31CWebConst.DATABEAN_CLEAR);			// 企業識別コード
				
				// 親権者入力有無がなしの場合
				if(JCKCommonConst.UM_M.equals(bean.sendMessageString(CKW00201SFConst.SKSHA_INPUT_UM, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					setSkshaClr(bean);
				}
				else
				{
					// 親権者住所未検索の場合
					if ("0".equals(getValue(bean, CKW00201SFConst.SKSHA_AD_CTRL_FLG)))
					{
						setSkshaAdInfClr(bean);
					}
					
					// 続柄がその他以外の場合
					if (JCKCommonConst.CD00036_JISHA_USE.equals(getPullDownSelectCd(bean, CKW00201SFConst.KYS_TYPE)))
					{
						bean.sendMessage(CKW00201SFConst.SKSHA_ZOKUGARA_OTR, X31CWebConst.DATABEAN_CLEAR);	// 続柄（その他欄）
					}
				}
				
				// 内販・外販情報に外販を設定
				subbean.sendMessageString(CKW00201SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, gaihan);
			}
			else
			{
				// 法人格種別（前後）がなしの場合
				if ("2".equals(getPullDownSelectCd(bean, CKW00201SFConst.HOJIN_ZENGO_STI)))
				{
					// 法人格種別になしを設定
					X31SDataBeanAccess sbtbean = bean.getDataBeanArray(CKW00201SFConst.HOJIN_SBT).getDataBean(0);
					sbtbean.sendMessageString(CKW00201SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, sbt);
				}
				
				clearSelectIndexPlDwn(bean, CKW00201SFConst.CUST_BIRTHD_NENGO);						// 生年月日（年号）
				bean.sendMessage(CKW00201SFConst.CUST_BIRTHD_YEAR, X31CWebConst.DATABEAN_CLEAR);	// 生年月日（年）
				bean.sendMessage(CKW00201SFConst.CUST_BIRTHD_MON, X31CWebConst.DATABEAN_CLEAR);		// 生年月日（月）
				bean.sendMessage(CKW00201SFConst.CUST_BIRTHD_DAY, X31CWebConst.DATABEAN_CLEAR);		// 生年月日（日）
				bean.sendMessage(CKW00201SFConst.CUST_BIRTHD, X31CWebConst.DATABEAN_CLEAR);			// 生年月日
				bean.sendMessage(CKW00201SFConst.DISP_CUST_BIRTHD, X31CWebConst.DATABEAN_CLEAR);	// 生年月日（表示用）
				bean.sendMessage(CKW00201SFConst.CUST_OLD, X31CWebConst.DATABEAN_CLEAR);			// 年齢
				bean.sendMessage(CKW00201SFConst.CUST_SEX, X31CWebConst.DATABEAN_CLEAR);			// 性別
				bean.sendMessage(CKW00201SFConst.CUST_SEX_NM, X31CWebConst.DATABEAN_CLEAR);			// 性別名称
				bean.sendMessage(CKW00201SFConst.SKSHA_INPUT_UM, X31CWebConst.DATABEAN_CLEAR);		// 親権者入力有無
				setSkshaClr(bean);
				
				// 自社利用タイプの場合
				if (JCKCommonConst.CD00036_JISHA_USE.equals(getPullDownSelectCd(bean, CKW00201SFConst.KYS_TYPE)))
				{
					// 内販・外販情報に内販を設定
					subbean.sendMessageString(CKW00201SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, naihan);
					bean.sendMessageString(CKW00201SFConst.COMP_SKBT_CD, X31CWebConst.DATABEAN_SET_VALUE, "042");
				}
			}
		}
		// ファミリー会員、オープン会員の場合
		else
		{
			// 内販・外販情報に外販を設定
			subbean.sendMessageString(CKW00201SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, gaihan);
			
			// オープン会員の場合
			if (isOpenMember(bean))
			{
				clearSelectIndexPlDwn(bean, CKW00201SFConst.FAMILY_NINSHO_WAY);						// 家族認証方法
				bean.sendMessage(CKW00201SFConst.FAMILY_CD_POPID, X31CWebConst.DATABEAN_CLEAR);		// ファミリーコード／ＰＯＰＩＤ
			}
		}
	}
	
	/**
	 * 親権者情報をクリアします。
	 * 
	 * @param bean
	 */
	private void setSkshaClr(X31SDataBeanAccess bean)
	{
		bean.sendMessage(CKW00201SFConst.DISP_SKSHA_INPUT_UM, X31CWebConst.DATABEAN_CLEAR);	// 親権者入力有無（表示用）
		bean.sendMessage(CKW00201SFConst.SKSHA_KANA, X31CWebConst.DATABEAN_CLEAR);			// 親権者名（カナ）
		bean.sendMessage(CKW00201SFConst.SKSHA_NM, X31CWebConst.DATABEAN_CLEAR);			// 親権者名
		clearSelectIndexPlDwn(bean, CKW00201SFConst.SKSHA_BIRTHD_NENGO);					// 親権者生年月日（年号）
		bean.sendMessage(CKW00201SFConst.SKSHA_BIRTHD_YEAR, X31CWebConst.DATABEAN_CLEAR);	// 親権者生年月日（年）
		bean.sendMessage(CKW00201SFConst.SKSHA_BIRTHD_MON, X31CWebConst.DATABEAN_CLEAR);	// 親権者生年月日（月）
		bean.sendMessage(CKW00201SFConst.SKSHA_BIRTHD_DAY, X31CWebConst.DATABEAN_CLEAR);	// 親権者生年月日（日）
		bean.sendMessage(CKW00201SFConst.SKSHA_BIRTHD, X31CWebConst.DATABEAN_CLEAR);		// 親権者生年月日
		bean.sendMessage(CKW00201SFConst.DISP_SKSHA_BIRTHD, X31CWebConst.DATABEAN_CLEAR);	// 親権者生年月日（表示用）
		bean.sendMessage(CKW00201SFConst.SKSHA_OLD, X31CWebConst.DATABEAN_CLEAR);			// 親権者年齢
		clearSelectIndexPlDwn(bean, CKW00201SFConst.SKSHA_ZOKUGARA);						// 続柄
		bean.sendMessage(CKW00201SFConst.SKSHA_ZOKUGARA_OTR, X31CWebConst.DATABEAN_CLEAR);	// 続柄（その他欄）
		bean.sendMessage(CKW00201SFConst.SKSHA_PCD_KAMI3, X31CWebConst.DATABEAN_CLEAR);		// 親権者郵便番号（上３桁）
		bean.sendMessage(CKW00201SFConst.SKSHA_PCD_SHIMO4, X31CWebConst.DATABEAN_CLEAR);	// 親権者郵便番号２（下４桁）
		bean.sendMessage(CKW00201SFConst.SKSHA_PCD, X31CWebConst.DATABEAN_CLEAR);			// 親権者郵便番号
		bean.sendMessage(CKW00201SFConst.DB_SKSHA_PCD, X31CWebConst.DATABEAN_CLEAR);		// 親権者郵便番号（ＤＢ登録値）
		bean.sendMessage(CKW00201SFConst.SKSHA_BNCHIGO, X31CWebConst.DATABEAN_CLEAR);		// 親権者番地・号
		bean.sendMessage(CKW00201SFConst.SKSHA_ADRTTM, X31CWebConst.DATABEAN_CLEAR);		// 親権者建物名
		bean.sendMessage(CKW00201SFConst.SKSHA_ADRRM, X31CWebConst.DATABEAN_CLEAR);			// 親権者部屋番号
		bean.sendMessage(CKW00201SFConst.SKSHA_TELNO, X31CWebConst.DATABEAN_CLEAR);			// 親権者電話番号
		setSkshaAdInfClr(bean);
	}
	
	/**
	 * 親権者住所情報のクリアをします。
	 * 
	 * @param bean
	 */
	private void setSkshaAdInfClr(X31SDataBeanAccess bean)
	{
		bean.sendMessage(CKW00201SFConst.SKSHA_AD_CD, X31CWebConst.DATABEAN_CLEAR);								// 親権者住所コード
		bean.sendMessage(CKW00201SFConst.DB_SKSHA_AD_CD, X31CWebConst.DATABEAN_CLEAR);							// 親権者住所コード（ＤＢ登録値）
		bean.sendMessage(CKW00201SFConst.SKSHA_AD_CD_1, X31CWebConst.DATABEAN_CLEAR);							// 親権者住所コード１
		bean.sendMessage(CKW00201SFConst.SKSHA_AD_CD_2, X31CWebConst.DATABEAN_CLEAR);							// 親権者住所コード２
		bean.sendMessage(CKW00201SFConst.SKSHA_AD_CD_3, X31CWebConst.DATABEAN_CLEAR);							// 親権者住所コード３
		bean.sendMessage(CKW00201SFConst.SKSHA_AD_CD_4, X31CWebConst.DATABEAN_CLEAR);							// 親権者住所コード４
		bean.sendMessage(CKW00201SFConst.SKSHA_STATE, X31CWebConst.DATABEAN_CLEAR);								// 親権者都道府県
		bean.sendMessage(CKW00201SFConst.SKSHA_CITY, X31CWebConst.DATABEAN_CLEAR);								// 親権者市区町村
		bean.sendMessage(CKW00201SFConst.SKSHA_OAZTSU, X31CWebConst.DATABEAN_CLEAR);							// 親権者大字通称
		bean.sendMessage(CKW00201SFConst.SKSHA_AZCHO, X31CWebConst.DATABEAN_CLEAR);								// 親権者字丁目
		bean.sendMessageBoolean(CKW00201SFConst.SKSHA_REGAI_CHKBOX, X31CWebConst.DATABEAN_SET_VALUE, false);	// 親権者手動入力
	}
	
	/**
	 * 顧客契約引継データの格納
	 * <br>
	 */
	private void setHktgiDataMap()
	{
		// サービスフォームBean
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 引数のサービスフォームBeanより引継情報データマップの生成を行う。
		HashMap<String, Object> pramMap = getHktgiDataMap(serviceBean, JCKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST, CUST_KEI_HKTGI_KEYS);
		
		// 遷移先画面へ引き継ぐ画面情報を設定
		JCCWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW00145, pramMap);
	}
	
	/**
	 * 顧客契約引継データの格納
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 */
	private void getHktgiCustKeiDataMap(X31SDataBeanAccess serviceBean)
	{
		// 顧客契約引継情報取得
		X31SDataBeanAccess custKeiHktgiInf = serviceBean.getDataBeanArray(JCKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);
		
		// サービス契約番号取得・格納
		String hktgiSvcKeiNo = custKeiHktgiInf.sendMessageString(JCKCommonConst.HKTGI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		// サービス契約番号が未設定の場合
		if (isBlank(hktgiSvcKeiNo))
		{
			// 同時申込サービス契約番号取得・格納(配列の１番目の値取得)
			int count = (Integer)custKeiHktgiInf.sendMessage(JCKCommonConst.HKTGI_MSKM_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_COUNT);
			if (count > 0)
			{
				hktgiSvcKeiNo = custKeiHktgiInf.sendMessageString(JCKCommonConst.HKTGI_MSKM_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE, 0);
			}
		}
		serviceBean.sendMessageString(CKW00201SFConst.BNKT_MT_SVC_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, hktgiSvcKeiNo);
	}
	
	/**
	 * 和暦⇒西暦変換処理
	 * <br>
	 * @param	negoSlectCd		和暦(元号コード)
	 * @param	year			年
	 * @param	month			月
	 * @param	day				日
	 * @return	String
	 */
	private String getSeirekiYear(String negoSlectCd, String year, String month, String day)
	{
		if (year == null || year.length() == 0)
		{
			return "";
		}
		
		String wareki = "";
		
		// 明治の場合
		if ("5".equals(negoSlectCd))
		{
			wareki = "4";
		}
		// 大正の場合
		else if ("4".equals(negoSlectCd))
		{
			wareki = "3";
		}
		// 昭和の場合
		else if ("2".equals(negoSlectCd))
		{
			wareki = "1";
		}
		// 平成の場合
		else if ("3".equals(negoSlectCd))
		{
			wareki = "2";
		}
		// 西暦の場合
		else if ("1".equals(negoSlectCd))
		{
			return JPCUtilCommon.concatYmd(year, month, day);
		}
		
		return JCKWebCommon.getAdCalendar(wareki, year, month, day);
	}
	
	/**
	 * <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);
		for (int i = 0 ; i < infList.getCount() ; i++)
		{
			HashMap<String, Object> 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;
	}
	
	/**
	 * 親権者関連チェック
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isSkshaRelation(X31SDataBeanAccess serviceBean)
	{
		// 契約者タイプが 1:個人
		if (isCheckSelectKojin(serviceBean))
		{
			// 契約者が未成年の場合
			if (isCheckUnderAge(serviceBean, CKW00201SFConst.CUST_OLD))
			{
				// 親権者の登録有りを選択されていない場合
				if (JCKCommonConst.UM_M.equals(serviceBean.sendMessageString(CKW00201SFConst.SKSHA_INPUT_UM, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					return true;
				}
			}
		}
		
		return false;
	}
	
	/**
	 * （３）関連チェック【新規登録時】
	 * <br>
	 * @param serviceBean	サービスフォームBean
	 * @param outputMap	サービスI/F実行結果
	 * @param mapper
	 * @param eoidMap
	 * @param nknameMap
	 * @return boolean		判定結果
	 */
	@SuppressWarnings("unchecked")
	private boolean isRelationNewAdd(X31SDataBeanAccess serviceBean,
										HashMap<String, Object> outputMap,
										CKSV0004_CKSV0004OPDBMapper mapper,
										HashMap eoidMap,
										HashMap nknameMap)
	{
		// ファミリー会員（個人／法人）の場合に実行
		if (isFamilyMember(serviceBean))
		{
			/** 親マスター会員妥当性チェック **/
			// 画面上の選択会員種別と親マスター会員(グループリーダー)の会員種別が異なる場合エラー。
			if (mapper.isCheckMasterMmb(serviceBean,
										outputMap,
										getPullDownSelectCd(serviceBean, CKW00201SFConst.MEMBER_SBT),
										getPullDownSelectCd(serviceBean, CKW00201SFConst.KYS_TYPE)))
			{
				String[] errMsg = new String[]{"親会員との会員種別が異なる"};
				// メッセージエリアにメッセージを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4970_KW, errMsg, "family_cd_popid");
				return true;
			}
		}
		
		// オープン会員の場合に実行
		if (isOpenMember(serviceBean))
		{
			/** お客さまの二重登録チェック（オープン） **/
			if (mapper.isChkRslt(outputMap, "open_chk_flg"))
			{
				// メッセージエリアにメッセージを表示する。
				String[] msg = new String[]{"既に登録されている会員の"};
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4970_KW, msg, "cont_cust_nm");
				return true;
			}
		}
		
		/** 拒否メールドメインチェック **/
		// メールアドレスのドメイン部分がNGワードスキーマ（NGワードコード：メールドメイン）に
		// 登録されているドメインと合致する場合、エラー
		if (mapper.isCheckMailDomain(serviceBean, outputMap))
		{
			// メッセージエリアにメッセージを表示する。
			String[] msg = new String[]{"拒否メールドメインに登録されている"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4970_KW, msg, "cont_cust_mlad");
			return true;
		}
		
		/** プレフィックスチェック **/
		// 入力されたeoIDが初期eoIDのプレフィックス文字（"51"）を含む12文字の数字の場合エラー。
		if (isCheckPreFix(serviceBean))
		{
			// メッセージエリアにメッセージを表示する。
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4990_KW, new String[]{"入力されたeoID"}, "eoid");
			return true;
		}
		
		/** エイジング(eoid)存在チェック **/
		// 入力されたeoIDが使用中の場合エラー。
		if (isAgingValue(serviceBean, eoidMap))
		{
			// メッセージエリアにメッセージを表示する。
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4990_KW, new String[]{"入力されたeoID"}, "eoid");
			return true;
		}
		
		/** エイジング(ニックネーム)存在チェック **/
		if (isNotBlank(serviceBean.sendMessageString(CKW00201SFConst.NKNAME, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 入力されたニックネームが使用中の場合エラー。
			if (isAgingValue(serviceBean, nknameMap))
			{
				// メッセージエリアにメッセージを表示する。
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4990_KW, new String[]{"入力されたニックネーム"}, "nkname");
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * （３）関連チェック【契約者分割時】
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @param mapper
	 * @param outputMap
	 * @return	boolean		処理結果
	 */
	private boolean isRelationKysBuktu(X31SDataBeanAccess serviceBean, CKSV0004_CKSV0004OPDBMapper mapper, HashMap<String, Object> outputMap)
	{
		/** 適用開始日未来日チェック **/
		// オンライン運用日
		String opeDate = serviceBean.sendMessageString(CKW00201SFConst.OPEDATE, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 適用開始日登録可能期間(業務パラメータ)
		String gyomuParam = serviceBean.sendMessageString(CKW00201SFConst.TSTA_ADD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// オンライン運用日 + 適用開始日登録可能期間(業務パラメータ)
		String limitDay = JPCUtilCommon.addDay(opeDate, Integer.parseInt(gyomuParam));
		
		// 適用開始日(画面)
		String dispTsta = serviceBean.sendMessageString(CKW00201SFConst.TSTA, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 適用開始日にオンライン運用日 + 適用開始日登録可能期間(業務パラメータ)以降の日付を指定されるとエラー。
		// 第３引数:"0" = 同日を含まない
		if (JPCUtilCommon.isFutureDate(dispTsta, limitDay, "0"))
		{
			String msg = "運用日から" + gyomuParam + "日";
			
			// メッセージエリアにメッセージを表示する。
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0270_NW, new String[]{"適用開始日", msg, "日付"}, "tsta_year");
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0270_NW, new String[]{"適用開始日", msg, "日付"}, "tsta_mon");
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0270_NW, new String[]{"適用開始日", msg, "日付"}, "tsta_day");
			return true;
		}
		
		/** 適用開始日過去日チェック **/
		// 適用開始日に運用日より過去日が指定された場合はエラー。
		// 第３引数:"0" = 同日を含まない
		if (JPCUtilCommon.isPastDate(dispTsta, opeDate, "0"))
		{
			// メッセージエリアにメッセージを表示する。
			String[] msg = new String[]{"適用開始日", "運用日", "日付"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0260_NW, msg, "tsta_year");
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0260_NW, msg, "tsta_mon");
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0260_NW, msg, "tsta_day");
			return true;
		}
		
		/** 契約者タイプチェック **/
		// 分割元の契約者タイプと異なる場合はエラー。
		if (!isCheckKysType(serviceBean))
		{
			// メッセージエリアにメッセージを表示する。
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB6410_KW, "kys_type");
			return true;
		}
		
		// 契約者タイプ 法人・保守用
		String kshType = getPullDownSelectCd(serviceBean, CKW00201SFConst.KYS_TYPE);
		if (JCKCommonConst.CD00036_HOJIN.equals(kshType) || JCKCommonConst.CD00036_MNT.equals(kshType))
		{
			// 内販・外販情報が 内販:"002"
			if (JKKStrConst.CD00682_002.equals(getPullDownSelectCd(serviceBean, CKW00201SFConst.NAIHAN_GAIHAN_IF)))
			{
				// 入力された企業識別コードがコード名称管理マスタに存在しない場合はエラー。
				if (mapper.isChkRslt(outputMap, "comp_chk_flg"))
				{
					// メッセージエリアにメッセージを表示する。
					String[] msg = new String[]{"企業識別コード", "名称管理"};
					JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4680_NW, msg, "comp_skbt_cd");
					return true;
				}
			}
		}
		
		return false;
	}
	
	/**
	 * エイジング期間チェック
	 * <br>
	 * @param bean
	 * @param map
	 * @param key
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	private boolean isAgingPrd(X31SDataBeanAccess bean, HashMap map, String key)
	{
		// データが存在しない
		if (map == null)
		{
			return false;
		}
		
		if (AGING_STAT_200.equals(map.get("aging_stat")))
		{
			bean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get("upd_dtm"));
			return true;
		}
		
		return false;
	}
	
	/**
	 * お客様＜個人＞登録 実行判定
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isExecCreateCustKojin(X31SDataBeanAccess serviceBean)
	{
		// 契約者タイプが個人、又は、会員種別がファミリー会員（個人）、ファミリー会員（法人）、オープン会員
		if (isCheckSelectKojin(serviceBean) || isFamilyOrOpenMmb(serviceBean))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * お客様＜法人＞登録 実行判定
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isExecCreateCustHojin(X31SDataBeanAccess serviceBean)
	{
		// 契約者タイプが個人以外の場合、且つ、会員種別が非eo会員の場合に実行
		if(!isCheckSelectKojin(serviceBean) && isNotEoMmb(serviceBean))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 契約譲渡手数料 活性／非活性 判定
	 * 
	 * 実行条件
	 * １．分割元＿異動理由コード = "N0":契約譲渡(有料) 
	 * ２．分割元＿料金グループコード
	 *    "02":ｅｏ光ネットホームタイプ
	 *    "03":ｅｏ光ネットメゾンタイプ
	 *    "04":ｅｏ光ネットマンションタイプ
	 *    "07":ｅｏモバイル（Ｗｉ−Ｆｉ）
	 *    "08":ｅｏモバイル（ＥＭ）
	 *    "09":ｅｏモバイル（ＵＱ−ＷｉＭＡＸ）
	 *    "10":ｅｏ光電話
	 *    "16":ｅｏメールアドレス
	 *    "51":mineo
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		判定結果
	 */
	private boolean isUseKeiJotoTesuryo(X31SDataBeanAccess serviceBean)
	{
		X31SDataBeanAccess bean = serviceBean.getDataBeanArray(JKKCommonConst.HKTGI_CUST_KEI_HKTGI_LIST).getDataBean(0);
		// 分割元＿引継＿異動理由コード = "N0":契約譲渡(有料) 以外の場合
		if (!JCKCommonConst.IDO_RSN_CD_VALUE_N0.equals(bean.sendMessageString(JCKCommonConst.HKTGI_IDO_RSN_CD, X31CWebConst.DATABEAN_GET_VALUE, 0)))
		{
			// 使用不可
			return false;
		}
		
		// 分割元＿料金グループコード
		String bktMtPrcGrpCd = serviceBean.sendMessageString(CKW00201SFConst.BNKT_MT_PRC_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (JCKCommonConst.PRC_GRP_CD_02.equals(bktMtPrcGrpCd) || JCKCommonConst.PRC_GRP_CD_03.equals(bktMtPrcGrpCd)
				|| JCKCommonConst.PRC_GRP_CD_04.equals(bktMtPrcGrpCd))
		{
			return true;
		}
		else if (JCKCommonConst.PRC_GRP_CD_07.equals(bktMtPrcGrpCd) || JCKCommonConst.PRC_GRP_CD_08.equals(bktMtPrcGrpCd)
				|| JCKCommonConst.PRC_GRP_CD_09.equals(bktMtPrcGrpCd) || PRC_GRP_CD_16.equals(bktMtPrcGrpCd))
		{
			return true;
		}
		else if (JCKCommonConst.PRC_GRP_CD_10.equals(bktMtPrcGrpCd))
		{
			return true;
		}
		//---------v29.00.00 IT1-2017-0000035 ADD START---------//
		// 分割元_料金グループコード　：mineo（"51")の場合
		else if (PRC_GRP_CD_51.equals(bktMtPrcGrpCd))
		{
			return true;
		}
		//---------v29.00.00 IT1-2017-0000035 ADD END-----------//
		
		return false;
	}
	
	/**
	 * ファミリー会員（個人／法人）判定処理
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isFamilyMember(X31SDataBeanAccess serviceBean)
	{
		// 会員種別(プルダウン選択コード)
		String selectCodeMem = getPullDownSelectCd(serviceBean, CKW00201SFConst.MEMBER_SBT);
		
		// ファミリー会員（個人）又は、ファミリー会員（法人）
		if(JCKCommonConst.CD00039_FAMILY_KOJIN.equals(selectCodeMem) || JCKCommonConst.CD00039_FAMILY_HOJIN.equals(selectCodeMem))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * オープン会員判定処理
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isOpenMember(X31SDataBeanAccess serviceBean)
	{
		// オープン会員
		if(JCKCommonConst.CD00039_OPEN.equals(getPullDownSelectCd(serviceBean, CKW00201SFConst.MEMBER_SBT)))
		{
			return true;
		}
		
		return false;
		
	}
	
	/**
	 * ファミリー会員（個人）判定処理
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isFamilyKojin(X31SDataBeanAccess serviceBean)
	{
		// ファミリー会員（個人）
		if(JCKCommonConst.CD00039_FAMILY_KOJIN.equals(getPullDownSelectCd(serviceBean, CKW00201SFConst.MEMBER_SBT)))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * ファミリー会員（個人／法人）またはオープン会員判定処理
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isFamilyOrOpenMmb(X31SDataBeanAccess serviceBean)
	{
		// 会員種別がファミリー会員（個人）又は、ファミリー会員（法人））又は、オープン会員
		if (isFamilyMember(serviceBean) || isOpenMember(serviceBean))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 非eo会員判定処理
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isNotEoMmb(X31SDataBeanAccess serviceBean)
	{
		// 非eo会員
		if (JCKCommonConst.CD00039_NOT_EO_MMB.equals(getPullDownSelectCd(serviceBean, CKW00201SFConst.MEMBER_SBT)))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 契約者タイプで個人が選択されているかチェック
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isCheckSelectKojin(X31SDataBeanAccess serviceBean)
	{
		if (JCKCommonConst.CD00036_KOJIN.equals(getPullDownSelectCd(serviceBean, CKW00201SFConst.KYS_TYPE)))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 未成年かチェックする。
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @param	chkTagetAge	チェック対象
	 * @return	boolean		処理結果
	 */
	private boolean isCheckUnderAge(X31SDataBeanAccess serviceBean, String chkTagetAge)
	{
		// 年齢
		String temp = serviceBean.sendMessageString(chkTagetAge, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 年齢入力なし
		if (isBlank(temp))
		{
			return false;
		}
		
		int age = Integer.parseInt(temp);
		
		// 未成年
		// ANK-4296-00-00 MOD START
		//if(age >= 0 && age < 20)
		if(age >= 0 && age < 18)
		// ANK-4296-00-00 MOD END
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * eoID プレフィックスチェック
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isCheckPreFix(X31SDataBeanAccess serviceBean)
	{
		// eoID
		String eoID = serviceBean.sendMessageString(CKW00201SFConst.EOID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 全桁数値チェック
		if (isCheckNumericOnly(eoID))
		{
			return false;
		}
		
		// 文字数チェック
		if (eoID.length() != 12)
		{
			return false;
		}
		
		// 初期eoIDのプレフィックス文字（"51"）を含む12文字の数字の場合エラー。
		if (PREFIX_STR.equals(eoID.substring(0, 2)))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 全桁数値チェック
	 * <br>
	 * @param	eoID		eoID
	 * @return	boolean		処理結果
	 */
	private boolean isCheckNumericOnly(String eoID)
	{
		for (int i = 0; i < eoID.length(); i++)
		{
			if(!Character.isDigit(eoID.charAt(i)))
			{
				// 数値以外
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * エイジング存在チェック
	 * <br>
	 * @param bean
	 * @param map
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	private boolean isAgingValue(X31SDataBeanAccess bean, HashMap map)
	{
		// データが存在しない
		if (map == null)
		{
			return false;
		}
		
		String stat = (String)map.get("aging_stat");
		if (AGING_STAT_100.equals(stat) || AGING_STAT_300.equals(stat))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 契約者タイプチェック
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @return	boolean		処理結果
	 */
	private boolean isCheckKysType(X31SDataBeanAccess serviceBean)
	{
		// 画面選択 契約者タイプ
		String dispKysType = getPullDownSelectCd(serviceBean, CKW00201SFConst.KYS_TYPE);
		
		// 分割元契約者タイプ
		String bunkatuKysType = serviceBean.sendMessageString(CKW00201SFConst.BNKT_MT_KSH_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 分割元と同じ場合
		if(dispKysType.equals(bunkatuKysType))
		{
			return true;
		}
		
		// 分割元契約者タイプが "1":個人
		if(JCKCommonConst.CD00036_KOJIN.equals(bunkatuKysType))
		{
			// 画面選択値は "1":個人 または "2":法人 の場合、ＯＫ
			if(JCKCommonConst.CD00036_KOJIN.equals(dispKysType) || JCKCommonConst.CD00036_HOJIN.equals(dispKysType))
			{
				return true;
			}
		}
		// 分割元契約者タイプが "2":法人
		else if(JCKCommonConst.CD00036_HOJIN.equals(bunkatuKysType))
		{
			
			// 画面選択値は "1":個人 または "2":法人 の場合、ＯＫ
			if(JCKCommonConst.CD00036_KOJIN.equals(dispKysType) || JCKCommonConst.CD00036_HOJIN.equals(dispKysType))
			{
				return true;
			}
		}
		// 分割元契約者タイプが "3":保守用
		else if(JCKCommonConst.CD00036_MNT.equals(bunkatuKysType))
		{
			// 画面選択値は "3":保守用 のみＯＫ
			if(JCKCommonConst.CD00036_MNT.equals(dispKysType))
			{
				return true;
			}
		}
		// 分割元契約者タイプが "4":自社利用
		else if(JCKCommonConst.CD00036_JISHA_USE.equals(bunkatuKysType))
		{
			// 画面選択値は "4":自社利用 のみＯＫ
			if(JCKCommonConst.CD00036_JISHA_USE.equals(dispKysType))
			{
				return true;
			}
		}
		
		return false;
	}
	
	/**
	 * 引数に値が設定されているか判定します。
	 * <br>
	 * @param	arg0	判定する引数
	 * @return	boolean	引数に値が設定されていない場合はtrue
	 */
	private boolean isBlank(String arg0)
	{
		if (arg0 == null || arg0.length() == 0)
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * 引数に値が設定されているか判定します。
	 * <br>
	 * @param	arg0	判定する引数
	 * @return	boolean	引数に値が設定されている場合はtrue
	 */
	private boolean isNotBlank(String arg0)
	{
		if (arg0 == null || arg0.length() == 0)
		{
			return false;
		}
		
		return true;
	}
	
	/**
	 * 初期値格納処理
	 * ※新規登録・契約者分割時の初期選択値
	 *  (新規登録:ファミリー会員（個人／法人）,契約者分割:契約者タイプ（個人）の２パターンのみ)
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 */
	private void setInitValue(X31SDataBeanAccess serviceBean)
	{
		// 契約譲渡手数料制御フラグ 非活性
		serviceBean.sendMessageString(CKW00201SFConst.KEI_JOTO_CMS_AMNT_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, CTRL_FLG_NOT_USE);
		// 契約者住所制御フラグ
		serviceBean.sendMessageString(CKW00201SFConst.KSH_AD_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// 親権者住所制御フラグ
		serviceBean.sendMessageString(CKW00201SFConst.SKSHA_AD_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		if (serviceBean.sendMessageBoolean(CKW00201SFConst.KSH_BNKT_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 契約譲渡手数料活性の場合
			if (isUseKeiJotoTesuryo(serviceBean))
			{
				// 契約譲渡手数料制御フラグ 活性
				serviceBean.sendMessageString(CKW00201SFConst.KEI_JOTO_CMS_AMNT_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, CTRL_FLG__USE);
				// 契約譲渡手数料の初期値設定
				clearSelectIndexPlDwn(serviceBean, CKW00201SFConst.KEI_JOTO_TESURYO);
			}
			
			// 契約者情報の初期値設定
			serviceBean.sendMessageString(CKW00201SFConst.CUST_SEX, X31CWebConst.DATABEAN_SET_VALUE, "1");
			setSelectIndex(serviceBean, CKW00201SFConst.CUST_BIRTHD_NENGO, "1");
			// 親権者情報の初期値設定
			clearSelectIndexPlDwn(serviceBean, CKW00201SFConst.SKSHA_BIRTHD_NENGO);
			serviceBean.sendMessageString(CKW00201SFConst.SKSHA_INPUT_UM, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// コンテンツ情報の初期値設定
			clearSelectIndexPlDwn(serviceBean, CKW00201SFConst.CONT_CUST_BIRTHD_NENGO);
			serviceBean.sendMessage(CKW00201SFConst.CONT_CUST_SEX, X31CWebConst.DATABEAN_CLEAR);
		}
		else
		{
			// 家族認証方法の初期値設定
			setSelectIndex(serviceBean, CKW00201SFConst.FAMILY_NINSHO_WAY, FMY_NIN_WAY_FAMILY_CD);
			// 親権者情報の初期値設定
			serviceBean.sendMessage(CKW00201SFConst.SKSHA_INPUT_UM, X31CWebConst.DATABEAN_CLEAR);
			// コンテンツ情報の初期値設定
			serviceBean.sendMessageString(CKW00201SFConst.CONT_CUST_SEX, X31CWebConst.DATABEAN_SET_VALUE, JCKStrConst.CD00245_SEX_CD_MAN);
			setSelectIndex(serviceBean, CKW00201SFConst.CONT_CUST_BIRTHD_NENGO, "1");
			
			// 登録確認ボタン制御フラグ「登録確認」ボタン非活性
			serviceBean.sendMessageString(CKW00201SFConst.ADD_CFM_BTN_CTRL_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
	}
	
	/**
	 * コンテンツお客様情報 データ領域クリア
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 */
	private void clearValueCtCustInfo(X31SDataBeanAccess serviceBean)
	{
		serviceBean.sendMessage(CKW00201SFConst.GRP_CD, X31CWebConst.DATABEAN_CLEAR);					// グループコード
		serviceBean.sendMessage(CKW00201SFConst.CONT_CUST_PCD, X31CWebConst.DATABEAN_CLEAR);			// コンテンツお客様郵便番号
		serviceBean.sendMessage(CKW00201SFConst.CONT_CUST_PCD_KAMI3, X31CWebConst.DATABEAN_CLEAR);		// コンテンツお客様郵便番号（上３桁）
		serviceBean.sendMessage(CKW00201SFConst.CONT_CUST_PCD_SHIMO4, X31CWebConst.DATABEAN_CLEAR);		// コンテンツお客様郵便番号２（下４桁）
		serviceBean.sendMessage(CKW00201SFConst.CONT_CUST_AD_STATE_CITY, X31CWebConst.DATABEAN_CLEAR);	// コンテンツお客様住所（都道府県／市区町村名称）
		serviceBean.sendMessage(CKW00201SFConst.CONT_CUST_AD_OTHER, X31CWebConst.DATABEAN_CLEAR);		// コンテンツお客様住所（上記以外）
		serviceBean.sendMessage(CKW00201SFConst.CONT_CUST_AD_MANS, X31CWebConst.DATABEAN_CLEAR);		// コンテンツお客様住所（マンション名等）
	}
	
	/**
	 * 画面データ(プルダウン選択値:コード)を取得
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @param	pullDownNm	取得対象プルダウン名
	 * @return	code		プルダウン選択値:コード
	 */
	private String getPullDownSelectCd(X31SDataBeanAccess serviceBean, String pullDownNm)
	{
		return JCKWebCommon.convertCode(serviceBean, pullDownNm, CKW00201SFConst.SELECT_INDEX_01, CKW00201SFConst.CD_DIV_CD_LIST_01);
	}
	
	/**
	 * 画面データ(プルダウン選択値:名称)を取得
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @param	pullDownNm	取得対象プルダウン名
	 * @return	name		プルダウン選択値:名称
	 */
	private String getPullDownSelectNm(X31SDataBeanAccess serviceBean, String pullDownNm)
	{
		return JCKWebCommon.getPullDownName(serviceBean,
											pullDownNm,
											CKW00201SFConst.SELECT_INDEX_01,
											CKW00201SFConst.CD_DIV_CD_LIST_01,
											CKW00201SFConst.CD_DIV_NM_LIST_01);
	}
	
	/**
	 * プルダウン選択インデックスクリア
	 * <br>
	 * @param	serviceBean	サービスフォームBean
	 * @param	pullDownNm	取得対象プルダウン名
	 */
	private void clearSelectIndexPlDwn(X31SDataBeanAccess serviceBean, String pullDownNm)
	{
		X31SDataBeanAccess subbean = serviceBean.getDataBeanArray(pullDownNm).getDataBean(0);
		subbean.sendMessage(CKW00201SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CKW00201SFConst.CD_DIV_CD_01, X31CWebConst.DATABEAN_CLEAR);
		subbean.sendMessage(CKW00201SFConst.CD_DIV_NM_01, X31CWebConst.DATABEAN_CLEAR);
	}
	
	/**
	 * 画面データ(プルダウン選択値)をサービスフォームBeanに格納
	 * <br>
	 * @param	serviceBean		サービスフォームBean
	 * @param	pullDownName	プルダウン名
	 * @return	String			ANK-3699-00-00
	 * 
	 * 
	 */
	private String setPullDownValueToBean(X31SDataBeanAccess serviceBean, String pullDownName)
	{
		X31SDataBeanAccess subbean = serviceBean.getDataBeanArray(pullDownName).getDataBean(0);
		
		String selectCd = getPullDownSelectCd(serviceBean, pullDownName);
		
		subbean.sendMessageString(CKW00201SFConst.CD_DIV_CD_01, X31CWebConst.DATABEAN_SET_VALUE, selectCd);
		subbean.sendMessageString(CKW00201SFConst.CD_DIV_NM_01, X31CWebConst.DATABEAN_SET_VALUE, getPullDownSelectNm(serviceBean, pullDownName));
		
		return selectCd;
	}
	/**
	 * プルダウン選択インデックスを設定
	 * <br>
	 * @param bean
	 * @param itemNm
	 * @param value
	 */
	private void setSelectIndex(X31SDataBeanAccess bean, String itemNm, String value)
	{
		X31SDataBeanAccess subbean = bean.getDataBeanArray(itemNm).getDataBean(0);
		subbean.sendMessageString(CKW00201SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, 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);
	}
	
	/**
	 * データBeanから指定された項目の値を取得します。
	 * <br>
	 * @param bean 画面情報
	 * @param itemName コンボボックス名称
	 * <br>
	 * @return String 選択されているコード値
	 */
	private String getValue(X31SDataBeanAccess bean, String itemName)
	{
		return bean.sendMessageString(itemName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
/* ++++++++++ v4.07.00 追加開始 ++++++++++ */
	/**
	 * ワーニングチェック
	 * 
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	private void warningChk(HashMap outputMap) {
		// 戻り値
		HashMap parentMap = null;

		if (outputMap.containsKey("CKSV000401CC")) {
			parentMap = (HashMap) outputMap.get("CKSV000401CC");
		}

		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.07.00 追加終了 ++++++++++ */
	//---------v29.00.00 ANK-3132-00-00 ADD START---------//
	/**
	 * チェック結果取得
	 * <br>
	 * @param outputMap
	 * @param key
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	public boolean isChkMineoRslt(HashMap outputMap, String key)
	{
		//判定フラグ初期化
		boolean rsflg = false;
		
		HashMap parentMap = (HashMap)outputMap.get("MineoJotoKahiGetCC");
		
		if (parentMap == null)
		{
			rsflg =  false;
		}
		
		if (parentMap.containsKey(key)){
			if (parentMap.get(key) == null){
				rsflg = false;
			}
			else {
				rsflg = (Boolean)parentMap.get(key); 
			}
			
		}
		return rsflg;
	}	
	//---------v29.00.00 ANK-3132-00-00 ADD END-----------//
// ANK-3478-00-00 ADD START 
	/**
	 * パートナー会員チェック
	 * <br>
	 * @param	outputMap	サービス呼出結果
	 * @return	boolean		処理結果
	 */
	@SuppressWarnings("unchecked")
	private boolean isCheckMemberSbt(HashMap outputMap)
	{
		//判定フラグ初期化
		boolean rsflg = false;

		HashMap parentMap = (HashMap)outputMap.get("CKSV000301CC");
		ArrayList childList = (ArrayList)parentMap.get("svc_kei_list");
		HashMap childMap = (HashMap)childList.get(0);

		//会員種別がマスター会員（個人）で卸先事業者コードが設定されている場合
		if(JCKCommonConst.CD00039_MASTER_KOJIN.equals((String)childMap.get("member_sbt_cd")) &&
				!JKKStringUtil.isNullEmpty((String)childMap.get("orsjgs_cd")))
		{
			rsflg =  true;
		}

		return rsflg;
	}
// ANK-3478-00-00 ADD END 
}
