/*******************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：KKA35101SFLogic
 *	ソースファイル名：KKA35101SFLogic.java
 *	作成者			：富士通
 *	日付			：2012年06月12日
 *＜機能概要＞
 *	WEB申込断面データ参照ビューロジック
 *	※このViewロジックはkoptWebBのKKW14301(WEB申込断面データ参照)をベースに作成しています。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	ｖ4.00.00
 *	ｖ8.00.00	2014/3/17	FJ)高川		【ANK-1905-00-00】ＷＥＢ仮申込断面データ対応：承認時点データの追加
 *	ｖ13.00.00	2015/03/12	FJ)宇野		【ANK-2318-00-00】口座振替WEB受付サービス導入にかかるシステム改修依頼
 *	ｖ20.00.00	2015/11/04	FJ)木庭		【ANK-2565-00-00】クレジットカード番号の処理変更、カード番号預りIDの処理追加
 *	ｖ29.00.00	2017/04/03	FJ)柳		【ANK-3158-00-00】訪販申込情報の検索・取得API作成
 *	ｖ29.01.00	2017/04/26	FJ)柳		【ANK-3158-01-00】訪販申込情報の検索・取得API作成【案件内仕変1:訪販申込情報詳細照会のパラメータ名変更】
 *  ｖ29.01.01	2017/05/16	FJ)舘山		【IT1-2017-0000048】一部の項目が検索されない
 *  ｖ33.00.00	2017/06/05	FJ)舘山		【ANK-3214-00-00】訪販申込情報詳細取得ＡＰＩの改修　〜その@〜
 *  ｖ33.01.00	2017/09/27	FJ)舘山		【OM-2017-0000980】セキュリティパックの申込情報が表示されない
 *  ｖ33.01.01	2017/10/05	FJ)舘山		【OM-2017-0000980】インタネットサギウォールの申込情報が表示されない
 *  ｖ33.01.02	2017/10/20	FJ)舘山		【OM-2017-0000980】セキュリティパックの文言の修正
 *  ｖ33.02.00	2017/10/18	FJ)舘山		【ANK-3307-00-00】訪販申込情報閲覧システム向けAPIへの工事進捗・キャンセル状況取得機能追加
 *  ｖ33.02.01	2017/11/06	FJ)舘山		【IT1-2017-0000136】文書登録時にお客様カナ名が表示されない
 *  ｖ38.00.00	2018/10/10	FJ)吉田		【ANK-3479-00-00】訪販申込閲覧システム向けAPIへの工事費割賦項目追加
 *  ｖ39.00.00	2018/10/29	FJ)吉田		【ANK-3484-00-00】端末補償サービス導入対応
 *   v40.00.00	2018/11/16	FJ)澤田		【ANK-3412-05-00】高速割対応
 *   v41.00.00	2019/02/07	FJ)周藤		【ANK-3529-00-00】無線LAN中継器レンタルサービス開始対応
 *   v48.00.00	2020/03/03	FJ)吉田		【OM-2020-0000202】訪販閲覧システムで出力する特記事項が申込断面のデータになっている
 *   v49.00.00	2020/06/18	FJ)荒木		【ANK-3840-00-00】テレビリースサービス新規申込対応
 *   v50.00.00	2020/06/03	FJ)西窪		【ANK-3754-00-00】トビラフォン対応
 *   v50.00.01	2020/06/17	FJ)西窪		【ANK-3825-00-00】メッシュWiFi導入対応
 *   v52.00.00	2021/01/18  FJ)西窪     【ANK-3987-00-00】Netflix導入対応(STEP2)
 *	ｖ53.00.00	2021/05/07	FJ)謝		【ANK-4009-00-00】CX戦略WG方針対応
 *   v53.00.00	2021/05/13	FJ)永井     【ANK-4046-00-00】訪販申込情報閲覧システム向けAPIへの検索条件・連携項目追加対応
 *   v54.00.00	2021/08/17	FJ)永井     【ANK-4044-01-00】訪販申込情報閲覧システムへのテレビ再送信契約情報連携
 *   ｖ71.00.00	2024/01/11	FJ)森下		【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
 *  v73.00.00   2024/11/26	GDC)jn.franco	【ANK-4427-00-00」NTT卸】対応 
 ********************************************************************************/
package eo.web.webview.KKA35101SF;

import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EventObject;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.fujitsu.futurity.model.common.check.DatetimeCheck;
import com.fujitsu.futurity.model.common.check.EmsizeCharCheck;
import com.fujitsu.futurity.model.common.check.HalfCharCheck;
import com.fujitsu.futurity.model.common.check.LengthCheck;
import com.fujitsu.futurity.model.common.check.MixCharCheck;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CID;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x33.X33SException;
import com.sun.enterprise.util.collection.ArrayListStack;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKCommonUtil;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCUtilCommon;
import eo.common.util.JZMCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKA16901SF.KKW00834SFConst;
import eo.web.webview.KUA10101SF.KUA10101SFConst;
import eo.web.webview.common.JCCAuthorityCtrlStatus;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKOneStopApiCommonUtil;
import eo.web.webview.common.JKKOneStopDataConverter;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.OneStopDataBeanAccess;
import eo.web.webview.commonOneStop.JKKWebCommon;
import eo.web.webview.commonOneStop.JCCMessageCache;
import eo.web.webview.commonOneStop.JKKCommonConst;
import eo.web.webview.mapping.KKSV0540_KKSV0540OPDBMapper;
import eo.web.webview.mapping.KKSV0861_KKSV0861OPDBMapper;

/**
 * WEB申込断面データ参照ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKA35101SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 引継項目リスト
	 */
	private static final Set<String> HKTG_ITEM_SET = new HashSet<String>();

	/**
	 * Array項目リスト
	 */
	private static final Set<String> ARRAY_ITEM_SET = new HashSet<String>();

	/**
	 * クリア不要項目リスト
	 */
	private static final Set<String> NON_CLEAR_ITEM_SET = new HashSet<String>();

	static {
		// 引継項目リスト
		Collections.addAll(HKTG_ITEM_SET
				, KKW14301SFConst.MSKMSHO_NO);

		// Array項目リスト
// ANK-3840-00-00 MOD START
//		Collections.addAll(ARRAY_ITEM_SET
//				, KKW14301SFConst.KCAT_TV_TUNER_LIST
//				, KKW14301SFConst.KCN_TV_TUNER_LIST
//				, KKW14301SFConst.WRIB_SVC_CD_LIST
//				, KKW14301SFConst.HANYO_CD_LIST);
		Collections.addAll(ARRAY_ITEM_SET
				, KKW14301SFConst.KCAT_TV_TUNER_LIST
				, KKW14301SFConst.KCN_TV_TUNER_LIST
				, KKW14301SFConst.WRIB_SVC_CD_LIST
				, KKW14301SFConst.HANYO_CD_LIST
				, KKW14301SFConst.WORK_PARAM_TEGAK_SVC_INFOLIST
// ANK-4009-00-00 ADD START
				, KKW14301SFConst.CNT_LIST
// ANK-4009-00-00 ADD END
				);
// ANK-3840-00-00 MOD END

		// クリア不要項目
		Collections.addAll(NON_CLEAR_ITEM_SET
				, KKW14301SFConst.MSKMSHO_NO
				, KKW14301SFConst.HON_KRI_DSP_FLG
				, KKW14301SFConst.SNSI_DATA_DSP_SKB_FLG
				, KKW14301SFConst.MSKM_DMEN_COMMENT_KBN);
	}

	/**
	 * 申込断面コード（仮申込）
	 */
	private static final String MSKM_DMEN_CD_KARI = "1";

	/**
	 * 申込断面コード（本申込）
	 */
	private static final String MSKM_DMEN_CD_HON = "2";
	
	/**
	 * 申込断面明細番号（初期申請）
	 */
	private static final String MSKM_DMEN_DTL_NO_SHOKI = "01";

	/**
	 * 申込断面明細番号（再申請）
	 */
	private static final String MSKM_DMEN_DTL_NO_SAI = "02";

	/**
	 * エラーメッセージ置換文字列
	 */
	private static final String[] MESSAGE_REPLACE_VALUES = {"申込断面", "受付番号"};

	/**
	 * 有効期限マスク文字
	 */
	private static final String MASK_CRECARD_YK_KIGEN = "9999 年 99 日";

	/**
	 * 申込断面種別コード名称スタイル
	 */
	private static final String MSKM_DMN_CD_NM_STYLE = "color: red;";

	/**
	 * データ領域高さ（ボディ領域（コメント）非展開時
	 */
	private static final String VERTICAL_VARIABLE_HEIGHT_NON_OPEN = "180";

	/**
	 * データ領域高さ（ボディ領域（コメント）展開時）
	 */
	private static final String VERTICAL_VARIABLE_HEIGHT_OPEN = "610";

	// ANK-4427-00-00 ADD START
	/**
	 * "12"：（ｔｙｐｅ　Ｎ）ホームタイプ１ギガコース
	 */
	private static final String COURSE_CHOICE_12 = "12";
	/**
	 * "13"：（ｔｙｐｅ　Ｎ）ホームタイプ１０ギガコース
	 */
	private static final String COURSE_CHOICE_13 = "13";
	/**
	 * "14"：（ｔｙｐｅ　Ｎ）マンションタイプ１００Ｍコース
	 */
	private static final String COURSE_CHOICE_14 = "14";
	/**
	 * "15"：（ｔｙｐｅ　Ｎ）マンションタイプ１ギガコース
	 */
	private static final String COURSE_CHOICE_15 = "15";
	/**
	 * "16"：（ｔｙｐｅ　Ｎ）マンションタイプ１０ギガコース
	 */
	private static final String COURSE_CHOICE_16 = "16";
	/**
	 * "17"：（ｔｙｐｅ　Ｎ）ホームタイプ１ギガコース　ＮＦパック
	 */
	private static final String COURSE_CHOICE_17 = "17";
	/**
	 * "18"：（ｔｙｐｅ　Ｎ）ホームタイプ１０ギガコース　ＮＦパック
	 */
	private static final String COURSE_CHOICE_18 = "18";
	/**
	 * "19"：（ｔｙｐｅ　Ｎ）マンションタイプ１００Ｍコース　ＮＦパック
	 */
	private static final String COURSE_CHOICE_19 = "19";
	/**
	 * "20"：（ｔｙｐｅ　Ｎ）マンションタイプ１ギガコース　ＮＦパック
	 */
	private static final String COURSE_CHOICE_20 = "20";
	/**
	 * "21"：（ｔｙｐｅ　Ｎ）マンションタイプ１０ギガコース　ＮＦパック
	 */
	private static final String COURSE_CHOICE_21 = "21";
	
	private static final String[] COURSE_CHOICE_CDS = new String[] {
			COURSE_CHOICE_12, COURSE_CHOICE_13, COURSE_CHOICE_14,
			COURSE_CHOICE_15, COURSE_CHOICE_16, COURSE_CHOICE_17,
			COURSE_CHOICE_18, COURSE_CHOICE_19, COURSE_CHOICE_20,
			COURSE_CHOICE_21 };
	// ANK-4427-00-00 ADD END


	// ANK-3158-00-00 2017/04/03 ADD START
	/** 受信データマップ取得用キー */
	private static final String RECEIVE_DATA_GET_KEY = "_RECEIVE";
	
	/** 受信データマップ */
	private Map<String, Object> requestMap = null;
	
	/** ワーニングメッセージマップ */
	private Map<String, String[]> warnMsgMap = null;
	
	/** ワンストップ返却用単関連エラーメッセージ格納Map */
	private static Map<String, String[]> tkckErrMsgMap = null;
	
	/** エラーメッセージマップ */
	private Map<String, String[]> errMsgMap = null;
	
	/** サービスインターフェイスエラーメッセージマップ */
	private Map<String, String[]> sifErrMap = null;
	
	/** ワーニングリスト */
	private List<Map<String, String>> warnList = null;
	
	/** 機能コード */
	private String funcCode = null;
	
	/** リターンコード **/
	private static final String RETURN_CD = "return_code";
	
	/** リターンコード(00:正常終了) */
	private static final String RETURN_CD_NORMAL = "00";
	
	/** リターンコード(10:エラー) */
	private static final String RETURN_CD_ERR = "10";
	
	/** リターンコード(99:システムエラー) */
	private static final String RETURN_CD_SYSTEM_ERR = "99";
	
	/** システムエラー時用エラーメッセージ */
	private static final String ERR_MSG = "KKIFE351_訪販申込詳細照会受付にて例外が発生しました。";
	
	/** インターフェイスID */
	private static final String IF_ID = "KKIFE351";
	
	/** 申込詳細結果 */
	private static final String MSKM_DTL_RSLT = "mskm_dtl_rslt";
	
	/** エラーリスト */
	private static final String ERR_LIST = "err_list";
	
	/** 受付番号存在フラグ */
	private boolean ukNoExistsFlg = false;
	
	/** 受付番号存在チェックエラー */
	private static final String ERR_CD_UKNO_EXISTS = "E5010";
	
	/** 半角スペース */
	private static final String HALF_WIDTH_SPACE = " ";
	
	/** 年齢 */
	private static final String AGE = "年齢";
	
	/** 歳 */
	private static final String YEARS_OLD = "歳";
	
	/** 申し込む */
	private static final String MSKM_ARI = "申し込む";
	
	/** 申し込まない */
	private static final String MSKM_NASHI = "申し込まない";
	
	/** 即割 */
	private static final String SOKUWRIB = "即割";
	
	/** 長割 */
	private static final String CHOKZUWRI = "長割";
	
	/** 自動継続 */
	private static final String CHOKZUWRI_AT_KEIZK = "自動継続";
	// ANK-3412-05-00 ADD START
	/** 高速割 */
	private static final String KOSOKUWRIB = "高速割";
	// ANK-3412-05-00 ADD END
	/** 読点 */
	private static final String JP_COMMA = "、";
	
	/** カンマ */
	private static final String COMMA = ",";
	
	/** ファミリーパック */
	private static final String FAMILY_PACK = "ファミリーパック";
	
	/** リモートサポートプラス */
	private static final String REMOTE_PLUS = "リモートサポートプラス";
	
	/** １番号サービス */
	private static final String TEL_NUM_1_SVC = "1";
	
	/** ２番号サービス */
	private static final String TEL_NUM_2_SVC = "2";
	
	/** １番号コース */
	private static final String TEL_NUM_1_CRS = "１番号コース";
	
	/** ２番号コース */
	private static final String TEL_NUM_2_CRS = "２番号コース";
	
	/** 発信者番号通知 */
	private static final String HTB_TCHI_UM = "発信者番号通知";
	
	/** 発信者番号表示 */
	private static final String HTB_TCHI = "発信者番号表示";
	
	/** 非通知着信拒否 */
	private static final String HTCHI_KYOHI = "非通知着信拒否";
	
	/** 割込電話 */
	private static final String WRKM_TEL = "割込電話";
	
	// ANK-3754-00-00 ADD START
	/** 割込電話 */
	private static final String TENSO_TEL = "転送電話";
		
	/** あんしん電話パック */
	private static final String ANSN_TEL_PACK = "あんしん電話パック";
	// ANK-3754-00-00 ADD END
	
	/** eo光電話パック３ */
	private static final String EOHTL_PACK3 = "eo光電話パック３";
	
	/** eo光電話パック７ */
	private static final String EOHTL_PACK7 = "eo光電話パック７";
	
	/** 安心補償オプション */
	private static final String TNMT_COMPS = "安心補償オプション";
	
	/** プレミアムパック */
	private static final String PREMIUM_PACK = "プレミアムパック";
// ▼▼▼ OM-2017-0000980 ADD START
	/** セキュリティパック */
// ▼▼▼ OM-2017-0000980 Modify START
//	private static final String SECRITY_PACK = "セキュリティパック";
	private static final String SECRITY_PACK = "eoセキュリティーパック";
// △△△ OM-2017-0000980 Modify END
// ▼▼▼▼▼ ANK-3484-00-00 ADD START ▼▼▼▼▼
	/** ＰＣプラン */
	private static final String PC_PLAN = "ＰＣプラン";
	
	/** ＰＣワイドプラン */
	private static final String PC_WIDE_PLAN = "ＰＣワイドプラン";
	
	/** ＴＶプラン */
	private static final String TV_PLAN = "ＴＶプラン";
	
	/** ＰＣプラン */
	private static final String PC_PLAN_VALUE = "おうちの機器補償　ＰＣプラン";
	
	/** ＰＣワイドプラン */
	private static final String PC_WIDE_PLAN_VALUE = "おうちの機器補償　ＰＣワイドプラン";
	
	/** ＴＶプラン */
	private static final String TV_PLAN_VALUE = "おうちの機器補償　ＴＶプラン";
// ▲▲▲▲▲ ANK-3484-00-00 ADD END ▲▲▲▲▲
// △△△ OM-2017-0000980 ADD END
// ▼▼▼ OM-2017-0000980 ADD START
	/** インタネットサギウォール for eo */
	private static final String INTERNET_SAGI_WALL = "インターネットサギウォール for eo";
// △△△ OM-2017-0000980 ADD END
// ANK-3529-00-00 ADD START
	/** eo無線LAN中継機レンタル/PLC */
	private static final String LAN_PLC = "eo無線LAN中継機レンタル/PLC";
// ANK-3529-00-00 ADD END
// ANK-3987-00-00 ADD START
	/** ストリーミングメディアプレーヤー */
	private static final String SMP = "ストリーミングメディアプレーヤー";
	/** 購入する */
	private static final String BUY_ARI = "購入する";
// ANK-3987-00-00 ADD END
// ▼▼▼ ANK-3307-00-00 ADD START
	
	/** 申込キャンセル除外承認申請年月日(ネット) */
	private static final String CNCL_JGI_SNN_SIN_NET = "mskm_cncl_jgi_snn_shin_ymd_net";
	/** 申込キャンセル除外承認年月日(ネット) */
	private static final String CNCL_JGI_SNN_NET = "mskm_cncl_jgi_snn_ymd_net";
	/** 申込キャンセル除外否認年月日(ネット) */
	private static final String CNCL_JGI_HNN_NET = "mskm_cncl_jgi_hnn_ymd_net";
	
	/** 申込キャンセル除外承認申請年月日(電話) */
	private static final String CNCL_JGI_SNN_SIN_TEL = "mskm_cncl_jgi_snn_shin_ymd_tel";
	/** 申込キャンセル除外承認年月日(電話) */
	private static final String CNCL_JGI_SNN_TEL = "mskm_cncl_jgi_snn_ymd_tel";
	/** 申込キャンセル除外否認年月日(電話) */
	private static final String CNCL_JGI_HNN_TEL = "mskm_cncl_jgi_hnn_ymd_tel";
	
	/** 申込キャンセル除外承認申請年月日(ＴＶ) */
	private static final String CNCL_JGI_SNN_SIN_TV = "mskm_cncl_jgi_snn_shin_ymd_tv";
	/** 申込キャンセル除外承認年月日(ＴＶ) */
	private static final String CNCL_JGI_SNN_TV = "mskm_cncl_jgi_snn_ymd_tv";
	/** 申込キャンセル除外否認年月日(ＴＶ) */
	private static final String CNCL_JGI_HNN_TV = "mskm_cncl_jgi_hnn_ymd_tv";
	
	/** 申込キャンセル除外承認申請年月日(eo電気) */
	private static final String CNCL_JGI_SNN_SIN_EOELEC = "mskm_cncl_jgi_snn_shin_ymd_eoelec";
	/** 申込キャンセル除外承認年月日(eo電気) */
	private static final String CNCL_JGI_SNN_EOELEC = "mskm_cncl_jgi_snn_ymd_eoelec";
	/** 申込キャンセル除外否認年月日(eo電気) */
	private static final String CNCL_JGI_HNN_EOELEC = "mskm_cncl_jgi_hnn_ymd_eoelec";
	
	/** 申込キャンセル除外承認申請年月日(mineo) */
	private static final String CNCL_JGI_SNN_SIN_MINEO = "mskm_cncl_jgi_snn_shin_ymd_mineo";
	/** 申込キャンセル除外承認年月日(mineo) */
	private static final String CNCL_JGI_SNN_MINEO = "mskm_cncl_jgi_snn_ymd_mineo";
	/** 申込キャンセル除外否認年月日(mineo) */
	private static final String CNCL_JGI_HNN_MINEO = "mskm_cncl_jgi_hnn_ymd_mineo";
	
	/** eo電気受付番号 */
	private static final String EOELEC_UKE_NO = "eoelec_uke_no";
	
	/** 利用場所郵便番号 */
	private static final String USE_PLACE_PCD = "use_place_pcd";
	/** 利用場所住所名 */
	private static final String USE_PLACE_AD_NM = "use_place_ad_nm";

	/** キャンセル分類１(IP) */
	private static final String CNCL_BNRUI1_IP = "cncl_bnrui1_ip";
	/** キャンセル分類２(IP) */
	private static final String CNCL_BNRUI2_IP = "cncl_bnrui2_ip";
	/** 申込番号(IP) */	
	private static final String KOJIAK_NO_IP = "kojiak_no_ip";
	/** キャンセル分類１(TV) */
	private static final String CNCL_BNRUI1_TV = "cncl_bnrui1_tv";
	/** キャンセル分類２(TV) */
	private static final String CNCL_BNRUI2_TV = "cncl_bnrui2_tv";
	/** 申込番号(TV) */
	private static final String KOJIAK_NO_TV = "kojiak_no_tv";

// △△△ ANK-3307-00-00 ADD END
// ANK-4046-00-00 ADD START
	/** 受付日 */
	private static final String UK_YMD = "uk_ymd";
	/** 受付種別名 */
	private static final String UK_SBT_NM = "uk_sbt_nm";
	/** SYSID */
	private static final String SYSID = "sysid";
	/** お客さまID(ネット) */
	private static final String SVC_KEI_NO_NET = "svc_kei_no_net";
	/** お客さまID(電話) */
	private static final String SVC_KEI_NO_TEL = "svc_kei_no_tel";
	/** お客さまID(テレビ) */
	private static final String SVC_KEI_NO_TV = "svc_kei_no_tv";
	/** お客さまID(電気) */
	private static final String SVC_KEI_NO_EDEN = "svc_kei_no_eden";
	/** お客さまID(mineo) */
	private static final String SVC_KEI_NO_MINEO = "svc_kei_no_mineo";
	/** VDSL(料金プラン) */
	private static final String PPLAN_CD_VDSL = "pplan_cd_vdsl";
	/** サンキューレター送付日 */
	private static final String KANUORE_SOHU_YMD = "kanuore_sohu_ymd";
// ANK-4046-00-00 ADD END
// ANK-4044-01-00 ADD START
	/** 料金コース名(テレビ再送信) */
	private static final String PCRS_NM_TVSAISS = "pcrs_nm_tvsaiss";
// ANK-4044-01-00 ADD END
// ▼▼▼▼▼ ANK-3479-00-00 ADD START ▼▼▼▼▼
	/** 標準工事費割賦支払方法 */
	private static final String WORK_PAYWAY = "work_payway";
	/** 標準工事費割賦支払方法(一括) */
	private static final String WORK_PAYWAY_IKKATU = "一括";
	/** 標準工事費割賦支払方法(分割) */
	private static final String WORK_PAYWAY_BUNKATU = "分割";
	/** 標準工事費割賦支払方法(一括)の返却値 */
	private static final String WORK_PAYWAY_IKKATU_VALUE = "1";
	/** 標準工事費割賦支払方法(分割)の返却値 */
	private static final String WORK_PAYWAY_BUNKATU_VALUE = "2";
	
// ▲▲▲▲▲ ANK-3479-00-00 ADD END ▲▲▲▲▲
// OM-2020-0000202 ADD START
	/** 工事案件連絡事項 */
	private static final String KOJIAK_RRK_JIKO = "kojiak_rrk_jiko";
// OM-2020-0000202 ADD END

	/** API用DataBean */
	OneStopDataBeanAccess osBean = new OneStopDataBeanAccess();
	
	/** サービス実行結果データ用マップ(訪販申込詳細照会) */
	HashMap<String, Object> vhMskmDtlOutputMap = new HashMap<String, Object>();
	
	/**
	 * APIコントロール処理メソッドです。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean apiControl() throws Exception
	{
		try
		{
			try
			{
				// API用初期処理
				if (!this.apiInit())
				{
					// 業務規制中の為処理終了
					return true;
				}
				
				// 単項目チェック処理
				if (!this.singleChk())
				{
					// エラー発生の為処理終了
					return true;
				}
				
				// 初期処理用DataBean上書き処理
				this.overwriteDataBeanForInit();
				
				// API用サービス呼び出し処理
				this.callServiceForAPIOnly();
				
				// 関連チェック処理
				if (!this.knrnChk())
				{
					// エラー発生の為処理終了
					return true;
				}
// ▼▼▼ ANK-3214-00-00 ADD START
				// 申込断面が存在しない場合、通常の初期化を呼ばず、カスタムの初期化処理を呼び出す。
				HashMap<String, Object> parentMap = (HashMap)vhMskmDtlOutputMap.get("KKSV086101CC");
				ArrayList<HashMap<String, Object>> childList = (ArrayList<HashMap<String, Object>>)parentMap.get("vhMskmDtlList");
				
				HashMap<String, Object> childMap = (HashMap<String, Object>)childList.get(0);
				
				// 申込断面が存在しない場合
				if (JKKCommonConst.UM_M.equals(childMap.get("mskm_dmen_um")))
				{
					ArrayList<HashMap<String, Object>> custInfoList = (ArrayList<HashMap<String, Object>>)childMap.get("custInfoList");
					// 独自初期化処理
					this.initCustom(custInfoList.get(0));
				}
				else
				{
// △△△ ANK-3214-00-00 ADD END
					// WEB申込断面データ参照 初期表示処理
					this.init();
// ▼▼▼ ANK-3214-00-00 ADD START
				}
// △△△ ANK-3214-00-00 ADD END
				
				// DataBean上書き処理
				this.overwriteDataBean();
				
				// API用終了処理(リターンコード00(正常終了))
				this.apiTerminal(RETURN_CD_NORMAL);
			}
			catch (JCCWebServiceException wse)
			{
				// サービスインターフェイスエラー確認処理
				X31CMessageResult msgResult = wse.getMessageList();
				JKKOneStopApiCommonUtil.sifErrChk(this, msgResult, sifErrMap, warnList, IF_ID);
			}
		}
		catch (Exception e)
		{
			// 例外発生時はリターンコード99(システムエラー)
			JKKOneStopApiCommonUtil.printErrorLog(getSessionId(), ERR_MSG, e);
			this.apiTerminal(RETURN_CD_SYSTEM_ERR);
		}
		
		return true;
	}
	
	/**
	 * API初期処理メソッドです。
	 * <br>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean apiInit() throws Exception
	{
		// 受信データXML⇒Map変換
		requestMap = (Map<String, Object>)JKKOneStopApiCommonUtil.getReceiveXml(getSessionId()).get(IF_ID + RECEIVE_DATA_GET_KEY);
		
		// ワーニングメッセージ、エラーメッセージマップ、サービスインターフェイスエラーマップ作成
		this.createMsgMap();
		
		// ワーニングリスト生成
		warnList = new ArrayList<Map<String, String>>();
		
		return true;
	}
	
	/**
	 * メッセージマップ作成処理メソッドです。
	 * 画面独自処理にて発生しうるエラーメッセージをマップに格納します。
	 * <br>
	 * @throws Exception
	 */
	private void createMsgMap() throws Exception
	{
		// メッセージ読み込み
		JCCMessageCache.setMessageCache();
		
		// ワーニングメッセージマップ組み立て
		warnMsgMap = new HashMap<String, String[]>();
		
		// 単関連エラーメッセージ格納Map組み立て（※なし）
		tkckErrMsgMap = new HashMap<String, String[]>();
		
		// エラーメッセージマップ組み立て
		errMsgMap = new HashMap<String, String[]>();
		
		// サービスインターフェイスエラーメッセージマップ組み立て(※なし)
		sifErrMap = new HashMap<String, String[]>();
	}
	
	/**
	 * 単項目チェック処理メソッドです。
	 * <br>
	 * @return boolean
	 * @throws Exception 
	 */
	private boolean singleChk() throws Exception
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
		String itemName = null;
		String itemValue = null;
		
		// 機能コード
		itemName = "func_code";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			// 必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isNumber1Check(itemValue))
			{
				// 形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 1))
			{
				// 桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
			if (!JKKCommonConst.FUNC_CODE_1.equals(itemValue))
			{
				// リファレンスチェックエラー
				errList.add(JKKOneStopApiCommonUtil.getRefErrInfMap(itemName));
			}
		}
		funcCode = itemValue;
		
		// 受付番号
		itemName = "uk_no";
		if (!JKKOneStopApiCommonUtil.checkRequireNotNull(requestMap, itemName))
		{
			// 必須チェックエラー
			errList.add(JKKOneStopApiCommonUtil.getReqErrInfMap(itemName));
		}
		else
		{
			itemValue = (String)requestMap.get(itemName);
			if (!HalfCharCheck.isEnNumber1Check(itemValue))
			{
				// 形式チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getFormErrInfMap(itemName));
			}
			if (!LengthCheck.isLength1Check(itemValue, 10))
			{
				// 桁数チェックエラー
				errList.add(JKKOneStopApiCommonUtil.getLenErrInfMap(itemName));
			}
		}
		
		// エラーが存在する場合
		if (0 < errList.size())
		{
			JKKOneStopApiCommonUtil.setReturnXml(this, RETURN_CD_ERR, errList, warnList, funcCode, IF_ID);
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 初期処理用DataBean上書き処理メソッドです。
	 * <br>
	 */
	private void overwriteDataBeanForInit()
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 申込書番号を設定
		bean.sendMessageString(KKW14301SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)requestMap.get("uk_no"));
		// 申込断面コード
		bean.sendMessageString(KKW14301SFConst.MSKM_DMN_CD, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 申込断面明細番号
		bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, "");
		// 申請データ表示識別フラグ
		bean.sendMessageString(KKW14301SFConst.SNSI_DATA_DSP_SKB_FLG, X31CWebConst.DATABEAN_SET_VALUE, "");
	}
	
	/**
	 * API用サービス呼び出し処理メソッドです。
	 * <br>
	 * @param paramBean
	 * @throws Exception
	 */
	private void callServiceForAPIOnly() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// マッピング用マップ
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0861");
		
		// マッピングクラスの定義
		KKSV0861_KKSV0861OPDBMapper mapper = new KKSV0861_KKSV0861OPDBMapper();
		mapper.setKKSV086101CC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス呼出処理
		// 訪販申込詳細照会受付サービスの呼び出しを行う。
		invokeService(paramMap, dataMap, vhMskmDtlOutputMap);
		
		HashMap parentMap = (HashMap)vhMskmDtlOutputMap.get("KKSV086101CC");
		ArrayList childList = (ArrayList)parentMap.get("vhMskmDtlList");
		
		HashMap childMap = (HashMap)childList.get(0);
		String mskmDt = (String)childMap.get("mskm_dt");
		
		// 受付番号存在フラグの設定
		if (!JKKCommonUtil.isNull(mskmDt)) 
		{
			ukNoExistsFlg = true;
		}
	}
	
	/**
	 * 関連チェック処理メソッドです。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	private boolean knrnChk() throws Exception
	{
		if (!ukNoExistsFlg)
		{
			// エラーメッセージを設定
			JKKOneStopApiCommonUtil.setReturnXml(this, ERR_CD_UKNO_EXISTS, warnList, funcCode, IF_ID);
			return false;
		}
		
		return true;
	}
	
	/**
	 * DataBean上書き処理メソッドです。
	 * <br>
	 * @return boolean
	 */
	private void overwriteDataBean() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		/** 住所名 */
		String keishaPcdBf = paramBean[0].sendMessageString("契約者−郵便番号（前）", X31CWebConst.DATABEAN_GET_VALUE);
		String keishaPcdAf = paramBean[0].sendMessageString("契約者−郵便番号（後）", X31CWebConst.DATABEAN_GET_VALUE);
		String keishaAddress = paramBean[0].sendMessageString("契約者−現住所", X31CWebConst.DATABEAN_GET_VALUE);
		String adNm = keishaPcdBf + keishaPcdAf + keishaAddress;
		
		if (!JKKCommonUtil.isNull(adNm))
		{
			adNm = keishaPcdBf + keishaPcdAf + HALF_WIDTH_SPACE + keishaAddress;
		}
		
		osBean.sendMessageString("住所名", X31CWebConst.DATABEAN_SET_VALUE, adNm);
		
		/** 取扱コード1-1 */
		String tratCd1_1Cd = paramBean[0].sendMessageString("取扱コード１−１", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd1_1Nm = paramBean[0].sendMessageString("取扱コード１−１名称", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd1_1 = tratCd1_1Cd + tratCd1_1Nm;
		
		if (!JKKCommonUtil.isNull(tratCd1_1))
		{
			tratCd1_1 = tratCd1_1Cd + HALF_WIDTH_SPACE + tratCd1_1Nm;
		}
		
		osBean.sendMessageString("取扱コード1-1", X31CWebConst.DATABEAN_SET_VALUE, tratCd1_1);
		
		/** 取扱コード1-2 */
		String tratCd1_2Cd = paramBean[0].sendMessageString("取扱コード１−２", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd1_2Nm = paramBean[0].sendMessageString("取扱コード１−２名称", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd1_2 = tratCd1_2Cd + tratCd1_2Nm;
		
		if (!JKKCommonUtil.isNull(tratCd1_2))
		{
			tratCd1_2 = tratCd1_2Cd + HALF_WIDTH_SPACE + tratCd1_2Nm;
		}
		
		osBean.sendMessageString("取扱コード1-2", X31CWebConst.DATABEAN_SET_VALUE, tratCd1_2);
		
		/** 取扱コード2-1 */
		String tratCd2_1Cd = paramBean[0].sendMessageString("取扱コード２−１", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd2_1Nm = paramBean[0].sendMessageString("取扱コード２−１名称", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd2_1 = tratCd2_1Cd + tratCd2_1Nm;
		
		if (!JKKCommonUtil.isNull(tratCd2_1))
		{
			tratCd2_1 = tratCd2_1Cd + HALF_WIDTH_SPACE + tratCd2_1Nm;
		}
		
		osBean.sendMessageString("取扱コード2-1", X31CWebConst.DATABEAN_SET_VALUE, tratCd2_1);
		
		/** 取扱コード2-2 */
		String tratCd2_2Cd = paramBean[0].sendMessageString("取扱コード２−２", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd2_2Nm = paramBean[0].sendMessageString("取扱コード２−２名称", X31CWebConst.DATABEAN_GET_VALUE);
		String tratCd2_2 = tratCd2_2Cd + tratCd2_2Nm;
		
		if (!JKKCommonUtil.isNull(tratCd2_2))
		{
			tratCd2_2 = tratCd2_2Cd + HALF_WIDTH_SPACE + tratCd2_2Nm;
		}
		
		osBean.sendMessageString("取扱コード2-2", X31CWebConst.DATABEAN_SET_VALUE, tratCd2_2);
		
		/** 契約者生年月日 */
		String keishaBirthdWareki = paramBean[0].sendMessageString("契約者情報−生年月日（和暦）", X31CWebConst.DATABEAN_GET_VALUE);
		String keishaBirthdM = paramBean[0].sendMessageString("契約者情報−生年月日（月）", X31CWebConst.DATABEAN_GET_VALUE);
		String keishaBirthdD = paramBean[0].sendMessageString("契約者情報−生年月日（日）", X31CWebConst.DATABEAN_GET_VALUE);
		String keishaAge = paramBean[0].sendMessageString("契約者情報−年齢", X31CWebConst.DATABEAN_GET_VALUE);
		String keishaCustBirthd = "";
		
		// 年が存在する場合
		if (!JKKCommonUtil.isNull(keishaBirthdWareki))
		{
			// 年月日に半角スペースと「年」「月」「日」を付与する
			keishaBirthdWareki += (HALF_WIDTH_SPACE + JKKStrConst.DATE_JAPANESE_YEAR + HALF_WIDTH_SPACE);
			keishaBirthdM += (HALF_WIDTH_SPACE + JKKStrConst.DATE_JAPANESE_MONTH + HALF_WIDTH_SPACE);
			keishaBirthdD += (HALF_WIDTH_SPACE + JKKStrConst.DATE_JAPANESE_DAY + HALF_WIDTH_SPACE + HALF_WIDTH_SPACE + AGE + HALF_WIDTH_SPACE);
			keishaAge += (HALF_WIDTH_SPACE + YEARS_OLD);
			
			keishaCustBirthd = keishaBirthdWareki + keishaBirthdM + keishaBirthdD + keishaAge;
		}
		
		osBean.sendMessageString("契約者生年月日", X31CWebConst.DATABEAN_SET_VALUE, keishaCustBirthd);
		
		/** 接続方式 */
		String mansionKaisenHoshiki = paramBean[0].sendMessageString("マンション回線提供方式", X31CWebConst.DATABEAN_GET_VALUE);
		String connectHoshiki = "";
		
		boolean eohNetFlg = paramBean[0].sendMessageBoolean("ｅｏ光ネット", X31CWebConst.DATABEAN_GET_VALUE);
		
		// ｅｏ光ネットフラグが存在する場合
		if (eohNetFlg)
		{
			String jyukyoType = paramBean[0].sendMessageString("住居タイプ", X31CWebConst.DATABEAN_GET_VALUE);
		
			// 住居タイプがマンションである場合
			if ("2".equals(jyukyoType))
			{
				// マンション回線提供方式が1：イーサネット方式の場合
				if ("1".equals(mansionKaisenHoshiki))
				{
					connectHoshiki = "イーサネット方式";
				}
				// マンション回線提供方式が2：光配線方式の場合
				else if ("2".equals(mansionKaisenHoshiki))
				{
					connectHoshiki = "光配線方式";
				}
				// マンション回線提供方式が3：ＶＤＳＬ方式の場合
				else if ("3".equals(mansionKaisenHoshiki))
				{
					connectHoshiki = "VDSL方式";
				}
			}
		}
		
		osBean.sendMessageString("接続方式", X31CWebConst.DATABEAN_SET_VALUE, connectHoshiki);
		
		/** 割引契約 */
		String sokuwribNm = paramBean[0].sendMessageString("即割", X31CWebConst.DATABEAN_GET_VALUE);
		String chokzuwriMskmUmNm = paramBean[0].sendMessageString("長割", X31CWebConst.DATABEAN_GET_VALUE);
		String chokzuwriAtKeizkMskmUmNm = paramBean[0].sendMessageString("長割自動継続", X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3412-05-00 ADD START
		String kosokuwribNm = paramBean[0].sendMessageString("高速割", X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3412-05-00 ADD END
		String wribKei = "";
		
		// 即割
		if (MSKM_ARI.equals(sokuwribNm))
		{
			wribKei += SOKUWRIB;
		}
		
		// 長割
		// 他の割引が存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(wribKei) && MSKM_ARI.equals(chokzuwriMskmUmNm))
		{
			wribKei += JP_COMMA + CHOKZUWRI;
		}
		else if (JKKCommonUtil.isNull(wribKei) && MSKM_ARI.equals(chokzuwriMskmUmNm))
		{
			wribKei += CHOKZUWRI;
		}
		
		// 長割自動継続
		// 他の割引が存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(wribKei) && MSKM_ARI.equals(chokzuwriAtKeizkMskmUmNm))
		{
			wribKei += JP_COMMA + CHOKZUWRI_AT_KEIZK;
		}
		else if (JKKCommonUtil.isNull(wribKei) && MSKM_ARI.equals(chokzuwriAtKeizkMskmUmNm))
		{
			wribKei += CHOKZUWRI_AT_KEIZK;
		}
		// ANK-3412-05-00 ADD START
		// 高速割
		// 他の割引が存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(wribKei) && MSKM_ARI.equals(kosokuwribNm))
		{
			wribKei += JP_COMMA + KOSOKUWRIB;
		}
		else if (JKKCommonUtil.isNull(wribKei) && MSKM_ARI.equals(kosokuwribNm))
		{
			wribKei += KOSOKUWRIB;
		}
		// ANK-3412-05-00 ADD END
		osBean.sendMessageString("割引契約", X31CWebConst.DATABEAN_SET_VALUE, wribKei);
		
		/** オプション（ネット） */
		String opTknRouterRentalNm =
				paramBean[0].sendMessageString("オプション＿ｅｏ光多機能ルータレンタル", X31CWebConst.DATABEAN_GET_VALUE);
		String netOp = "";
		
// ▼▼▼ IT1-2017-0000047 DEL START
//		// eo光多機能ルーターレンタルが「申し込まない」以外の場合
//		// オプション（ネット）を設定する
//		if (!MSKM_NASHI.equals(opTknRouterRentalNm))
//		{
// △△△ IT1-2017-0000047 DEL START
			String opFamilyPackNm =
					paramBean[0].sendMessageString("オプション＿ファミリーパック", X31CWebConst.DATABEAN_GET_VALUE);
			String opRemotePlusNm =
					paramBean[0].sendMessageString("オプション＿リモートサポートプラス", X31CWebConst.DATABEAN_GET_VALUE);
// ▼▼▼ OM-2017-0000980 Modify START
// ▼▼▼ OM-2017-0000980 ADD START
//			String opSecrityPacNm = 
//					paramBean[0].sendMessageString("オプション_eoセキュリティーパック", X31CWebConst.DATABEAN_GET_VALUE);
// △△△ OM-2017-0000980 ADD END
			String opSecrityPacNm = 
				paramBean[0].sendMessageString(KKW14301SFConst.OP_SECURITY_PACK_NM, X31CWebConst.DATABEAN_GET_VALUE);
			String opInetSagiWallNm = 
				paramBean[0].sendMessageString(KKW14301SFConst.OP_INETSGW_FOR_EO_NM, X31CWebConst.DATABEAN_GET_VALUE);
// △△△ OM-2017-0000980 Modify END
// ▼▼▼▼▼ ANK-3484-00-00 ADD START ▼▼▼▼▼
			String opOutiKikiHosyoSvc =
				paramBean[0].sendMessageString("オプション＿おうちの機器補償サービス", X31CWebConst.DATABEAN_GET_VALUE);
// ▲▲▲▲▲ ANK-3484-00-00 ADD END ▲▲▲▲▲
// ANK-3529-00-00 ADD START
			String lanPlcNm = 
				paramBean[0].sendMessageString(KKW14301SFConst.OP_PLC_RENTAL_NM, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3529-00-00 ADD END
// ANK-3987-00-00 ADD START
			String smpNm = 
				paramBean[0].sendMessageString("オプション＿スティック型ＳＴＢレンタル", X31CWebConst.DATABEAN_GET_VALUE);
// ANK-3987-00-00 ADD END

// ▼▼▼ OM-2017-0000980 ADD START
			if (MSKM_ARI.equals(opSecrityPacNm))
			{
				netOp += SECRITY_PACK;
			}			
// △△△ OM-2017-0000980 ADD END
			// ファミリーパック
			if (MSKM_ARI.equals(opFamilyPackNm))
			{
// ▼▼▼ OM-2017-0000980 ADD START
				if (!JKKCommonUtil.isNull(netOp))
				{
					netOp += JP_COMMA;
				}
// △△△ OM-2017-0000980 ADD END
				netOp += FAMILY_PACK;
			}
			
			// リモートサポートプラス
			// 他のオプションが存在している場合、「、」を付与する
			if (!JKKCommonUtil.isNull(netOp) && MSKM_ARI.equals(opRemotePlusNm))
			{
				netOp += JP_COMMA + REMOTE_PLUS;
			}
			else if (JKKCommonUtil.isNull(netOp) && MSKM_ARI.equals(opRemotePlusNm))
			{
				netOp += REMOTE_PLUS;
			}
// ▼▼▼ IT1-2017-0000047 ADD START
			if (!MSKM_NASHI.equals(opTknRouterRentalNm))
			{
				if (!JKKCommonUtil.isNull(netOp))
				{
					netOp += JP_COMMA;
				}
				netOp += opTknRouterRentalNm;
			}
// △△△ IT1-2017-0000047 ADD END
// ▼▼▼ OM-2017-0000980 ADD START
			if (MSKM_ARI.equals(opInetSagiWallNm))
			{
				if (!JKKCommonUtil.isNull(netOp))
				{
					netOp += JP_COMMA;
				}
				netOp += INTERNET_SAGI_WALL;
			}			
// △△△ OM-2017-0000980 ADD END
// ▼▼▼ IT1-2017-0000047 DEL START
//		}
// △△△ IT1-2017-0000047 DEL START
// ▼▼▼▼▼ ANK-3484-00-00 ADD START ▼▼▼▼▼
			// 端末補償プランの申込有無確認
			if (!JKKCommonUtil.isNull(opOutiKikiHosyoSvc) && !"".equals(opOutiKikiHosyoSvc))
			{
				// ＰＣプランを保持している場合
				if (opOutiKikiHosyoSvc.contains(PC_PLAN)) {
					
					
					if (!JKKCommonUtil.isNull(netOp))
					{
						netOp += JP_COMMA;
					}
					netOp += PC_PLAN_VALUE;
				}
				// ＰＣワイドプランを保持している場合
				if (opOutiKikiHosyoSvc.contains(PC_WIDE_PLAN)) {
					
					
					if (!JKKCommonUtil.isNull(netOp))
					{
						netOp += JP_COMMA;
					}
					netOp += PC_WIDE_PLAN_VALUE;
				}
				// ＴＶプランを保持している場合
				if (opOutiKikiHosyoSvc.contains(TV_PLAN)) {
					
					
					if (!JKKCommonUtil.isNull(netOp))
					{
						netOp += JP_COMMA;
					}
					netOp += TV_PLAN_VALUE;
				}
			}
// ▲▲▲▲▲ ANK-3484-00-00 ADD END ▲▲▲▲▲
// ANK-3529-00-00 ADD START
			// ANK-3825-00-00 MOD START
			// 宅内機器レンタルサービス(オプション_eo光PLCアダプタレンタル)
			//if (MSKM_ARI.equals(lanPlcNm))
			if (!MSKM_NASHI.equals(lanPlcNm) && !"".equals(lanPlcNm))
			// ANK-3825-00-00 MOD END
			{
				if (!JKKCommonUtil.isNull(netOp))
				{
					netOp += JP_COMMA;
				}
				// ANK-3825-00-00 MOD START
				//netOp += LAN_PLC;
				netOp += lanPlcNm;
				// ANK-3825-00-00 MOD END
			}
// ANK-3529-00-00 ADD END
// ANK-3987-00-00 ADD START
			if (BUY_ARI.equals(smpNm))
			{
				if (!JKKCommonUtil.isNull(netOp))
				{
					netOp += JP_COMMA;
				}
				netOp += SMP;
			}			
// ANK-3987-00-00 ADD END

		
		osBean.sendMessageString("オプション（ネット）", X31CWebConst.DATABEAN_SET_VALUE, netOp);
		
		/** コース（電話） */
		String eohTelNumFlg = paramBean[0].sendMessageString("ｅｏ光電話申込サービス", X31CWebConst.DATABEAN_GET_VALUE);
		String telCourse = "";
		
		if (TEL_NUM_1_SVC.equals(eohTelNumFlg))
		{
			telCourse = TEL_NUM_1_CRS;
		}
		else if (TEL_NUM_2_SVC.equals(eohTelNumFlg))
		{
			telCourse = TEL_NUM_2_CRS;
		}
		
		osBean.sendMessageString("コース（電話）", X31CWebConst.DATABEAN_SET_VALUE, telCourse);
		
		/** 番ポ契約住所1 */
		String tel1NttKeishaPcdBf =
				paramBean[0].sendMessageString("ｅｏ光電話１−１番号目−契約者住所＿郵便番号（前）", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1NttKeishaPcdAf =
				paramBean[0].sendMessageString("ｅｏ光電話１−１番号目−契約者住所＿郵便番号（後）", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1NttKeishaAddress = paramBean[0].sendMessageString("ｅｏ光電話１−１番号目−契約者住所", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1NttKeishaAd = tel1NttKeishaPcdBf + tel1NttKeishaPcdAf + tel1NttKeishaAddress;
		
		if (!JKKCommonUtil.isNull(tel1NttKeishaAd))
		{
			tel1NttKeishaAd = tel1NttKeishaPcdBf + tel1NttKeishaPcdAf + HALF_WIDTH_SPACE + tel1NttKeishaAddress;
		}
		
		osBean.sendMessageString("番ポ契約住所1", X31CWebConst.DATABEAN_SET_VALUE, tel1NttKeishaAd);
		
		/** オプション1（電話） */
		String tel1OptHtbTchiUmNm =
				paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿発信者番号通知", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1OptHtbTchiNm =
				paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿発信者番号表示", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1OptHtchiKyohiNm =
				paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿非通知着信拒否", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1OptWrkmTelNm = paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿割込電話", X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3754-00-00 ADD START
		String tel1OptTensoTelNm =
			paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿転送電話", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1OptAnsnPackNm =
			paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿あんしん電話パック", X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3754-00-00 ADD END
		String tel1OptEohtlPack3Nm =
				paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿ｅｏ光電話パック３", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1OptEohtlPack7Nm =
				paramBean[0].sendMessageString("ｅｏ光電話１−オプション＿ｅｏ光電話パック７", X31CWebConst.DATABEAN_GET_VALUE);
		String tel1Op = "";
		
		// 発信者番号通知
		if (MSKM_ARI.equals(tel1OptHtbTchiUmNm))
		{
			tel1Op += HTB_TCHI_UM;
		}
		
		// 発信者番号表示
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptHtbTchiNm))
		{
			tel1Op += JP_COMMA + HTB_TCHI;
		}
		else if (JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptHtbTchiNm))
		{
			tel1Op += HTB_TCHI;
		}
		
		// 非通知着信拒否
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptHtchiKyohiNm))
		{
			tel1Op += JP_COMMA + HTCHI_KYOHI;
		}
		else if (JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptHtchiKyohiNm))
		{
			tel1Op += HTCHI_KYOHI;
		}
		
		// 割込電話
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptWrkmTelNm))
		{
			tel1Op += JP_COMMA + WRKM_TEL;
		}
		else if (JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptWrkmTelNm))
		{
			tel1Op += WRKM_TEL;
		}
		
		// ANK-3754-00-00 ADD START
		// 転送電話
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptTensoTelNm))
		{
			tel1Op += JP_COMMA + TENSO_TEL;
		}
		else if (JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptTensoTelNm))
		{
			tel1Op += TENSO_TEL;
		}
		// ANK-3754-00-00 ADD END
		// ｅｏ光電話パック３
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptEohtlPack3Nm))
		{
			tel1Op += JP_COMMA + EOHTL_PACK3;
		}
		else if (JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptEohtlPack3Nm))
		{
			tel1Op += EOHTL_PACK3;
		}
		
		// ｅｏ光電話パック７
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptEohtlPack7Nm))
		{
			tel1Op += JP_COMMA + EOHTL_PACK7;
		}
		else if (JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptEohtlPack7Nm))
		{
			tel1Op += EOHTL_PACK7;
		}
		
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptAnsnPackNm))
		{
			tel1Op += JP_COMMA + ANSN_TEL_PACK;
		}
		else if (JKKCommonUtil.isNull(tel1Op) && MSKM_ARI.equals(tel1OptAnsnPackNm))
		{
			tel1Op += ANSN_TEL_PACK;
		}
		// ANK-3754-00-00 ADD END

		osBean.sendMessageString("オプション1（電話）", X31CWebConst.DATABEAN_SET_VALUE, tel1Op);
		
		/** 番ポ契約住所2 */
		String tel2NttKeishaPcdBf =
				paramBean[0].sendMessageString("ｅｏ光電話２−２番号目−契約者住所＿郵便番号（前）", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2NttKeishaPcdAf =
				paramBean[0].sendMessageString("ｅｏ光電話２−２番号目−契約者住所＿郵便番号（後）", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2NttKeishaAddress = paramBean[0].sendMessageString("ｅｏ光電話２−２番号目−契約者住所", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2NttKeishaAd = tel2NttKeishaPcdBf + tel2NttKeishaPcdAf + tel2NttKeishaAddress;
		
		if (!JKKCommonUtil.isNull(tel2NttKeishaAd))
		{
			tel2NttKeishaAd = tel2NttKeishaPcdBf + tel2NttKeishaPcdAf + HALF_WIDTH_SPACE + tel2NttKeishaAddress;
		}
		
		osBean.sendMessageString("番ポ契約住所2", X31CWebConst.DATABEAN_SET_VALUE, tel2NttKeishaAd);
		
		/** オプション2（電話） */
		String tel2OptHtbTchiUmNm =
			paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿発信者番号通知", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2OptHtbTchiNm =
			paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿発信者番号表示", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2OptHtchiKyohiNm =
			paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿非通知着信拒否", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2OptWrkmTelNm = paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿割込電話", X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3754-00-00 ADD START
		String tel2OptTensoTelNm =
			paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿転送電話", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2OptAnsnPackNm =
			paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿あんしん電話パック", X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3754-00-00 ADD END

		String tel2OptEohtlPack3Nm =
			paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿ｅｏ光電話パック３", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2OptEohtlPack7Nm =
			paramBean[0].sendMessageString("ｅｏ光電話２−オプション＿ｅｏ光電話パック７", X31CWebConst.DATABEAN_GET_VALUE);
		String tel2Op = "";
	
		// 発信者番号通知
		if (MSKM_ARI.equals(tel2OptHtbTchiUmNm))
		{
			tel2Op += HTB_TCHI_UM;
		}
		
		// 発信者番号表示
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptHtbTchiNm))
		{
			tel2Op += JP_COMMA + HTB_TCHI;
		}
		else if (JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptHtbTchiNm))
		{
			tel2Op += HTB_TCHI;
		}
		
		// 非通知着信拒否
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptHtchiKyohiNm))
		{
			tel2Op += JP_COMMA + HTCHI_KYOHI;
		}
		else if (JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptHtchiKyohiNm))
		{
			tel2Op += HTCHI_KYOHI;
		}
		
		// 割込電話
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptWrkmTelNm))
		{
			tel2Op += JP_COMMA + WRKM_TEL;
		}
		else if (JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptWrkmTelNm))
		{
			tel2Op += WRKM_TEL;
		}
		
		// ANK-3754-00-00 ADD START
		// 転送電話
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptTensoTelNm))
		{
			tel2Op += JP_COMMA + TENSO_TEL;
		}
		else if (JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptTensoTelNm))
		{
			tel2Op += TENSO_TEL;
		}
		// ANK-3754-00-00 ADD END

		// ｅｏ光電話パック３
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptEohtlPack3Nm))
		{
			tel2Op += JP_COMMA + EOHTL_PACK3;
		}
		else if (JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptEohtlPack3Nm))
		{
			tel2Op += EOHTL_PACK3;
		}
		
		// ｅｏ光電話パック７
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptEohtlPack7Nm))
		{
			tel2Op += JP_COMMA + EOHTL_PACK7;
		}
		else if (JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptEohtlPack7Nm))
		{
			tel2Op += EOHTL_PACK7;
		}
		
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptAnsnPackNm))
		{
			tel2Op += JP_COMMA + ANSN_TEL_PACK;
		}
		else if (JKKCommonUtil.isNull(tel2Op) && MSKM_ARI.equals(tel2OptAnsnPackNm))
		{
			tel2Op += ANSN_TEL_PACK;
		}
		// ANK-3754-00-00 ADD END

		osBean.sendMessageString("オプション2（電話）", X31CWebConst.DATABEAN_SET_VALUE, tel2Op);
		
		/** オプション（スマートリンク） */
		String tabletTnmtComps =
				paramBean[0].sendMessageString("スマートリンク＿タブレット端末−端末補償", X31CWebConst.DATABEAN_GET_VALUE);
		String tabletPremiumPack = paramBean[0].sendMessageString("スマートリンク＿プレミアムパック", X31CWebConst.DATABEAN_GET_VALUE);
		String smlnOp = "";
		
		// 安心補償オプション
		if (MSKM_ARI.equals(tabletTnmtComps))
		{
			smlnOp += TNMT_COMPS;
		}
		
		// プレミアムパック
		// 他のオプションが存在している場合、「、」を付与する
		if (!JKKCommonUtil.isNull(smlnOp) && MSKM_ARI.equals(tabletPremiumPack))
		{
			smlnOp += JP_COMMA + PREMIUM_PACK;
		}
		else if (JKKCommonUtil.isNull(smlnOp) && MSKM_ARI.equals(tabletPremiumPack))
		{
			smlnOp += PREMIUM_PACK;
		}
		
		osBean.sendMessageString("オプション（スマートリンク）", X31CWebConst.DATABEAN_SET_VALUE, smlnOp);
		
		/** 適用キャンペーン */
		X31SDataBeanAccessArray wribSvcCdList = paramBean[0].getDataBeanArray("割引／キャンペーンコードリスト");
		String aplyCampaign = "";
		
		for (int i = 0; i < wribSvcCdList.getCount() ; i++)
		{
			X31SDataBeanAccess subbean = wribSvcCdList.getDataBean(i);
			String wribSvcCd = subbean.sendMessageString("コード", X31CWebConst.DATABEAN_GET_VALUE);
			
			aplyCampaign += wribSvcCd;
			
			// 最後のキャンペーンコード以外は「,」を付与する
			if ((wribSvcCdList.getCount() - 1) != i)
			{
				aplyCampaign += COMMA;
			}
		}
// ▼▼▼ IT1-2017-0000048 ADD START
		/** 汎用コードもキャンペーンに加える */
		X31SDataBeanAccessArray hanyoCdList = paramBean[0].getDataBeanArray(KKW14301SFConst.HANYO_CD_LIST);
		
		for (int i = 0; i < hanyoCdList.getCount() ; i++)
		{
			X31SDataBeanAccess subbean = hanyoCdList.getDataBean(i);
			String wribSvcCd = subbean.sendMessageString(KKW14301SFConst.HANYO_CD_04, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 最後のキャンペーンコード以外は「,」を付与する
			if (!JKKCommonUtil.isNull(aplyCampaign))
			{
				aplyCampaign += COMMA;
			}
			aplyCampaign += wribSvcCd;
			
		}		
// △△△ IT1-2017-0000048 ADD END
		osBean.sendMessageString("適用キャンペーン", X31CWebConst.DATABEAN_SET_VALUE, aplyCampaign);
		
// ANK-3840-00-00 ADD START
		// 定額サービス編集
		editTegakSvc();
// ANK-3840-00-00 ADD END
// ANK-4009-00-00 ADD START
		// 開通前申込コンテンツ
		X31SDataBeanAccessArray cntList = paramBean[0].getDataBeanArray(KKW14301SFConst.CNT_LIST);
		String ktmaeCont = "";
		
		for (int i = 0; i < cntList.getCount() ; i++)
		{
			X31SDataBeanAccess subbean = cntList.getDataBean(i);
			String cntNm = subbean.sendMessageString(KKW14301SFConst.CNT_NM_06, X31CWebConst.DATABEAN_GET_VALUE);
			String cntMskm = subbean.sendMessageString(KKW14301SFConst.CNT_MSKM_06, X31CWebConst.DATABEAN_GET_VALUE);
			
			// コンテンツ申込が「申し込む」の場合
			if (MSKM_ARI.equals(cntMskm))
			{
				// 最後のコンテンツ名以外は「、」を付与する
				if (!JKKCommonUtil.isNull(ktmaeCont))
				{
					ktmaeCont += JP_COMMA;
				}
				ktmaeCont += cntNm;
			}
		}
		osBean.sendMessageString("開通前申込コンテンツ", X31CWebConst.DATABEAN_SET_VALUE, ktmaeCont);
// ANK-4009-00-00 ADD END
// ANK-4468-00-00 ADD START
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess svcFormBean = super.getServiceFormBean();
		// シンプルプランの判定
		chkPcrsCd(svcFormBean);
// ANK-4468-00-00 ADD END
	}
	
	/**
	 * ワンストップ用API終了メソッドです。
	 * <br>
	 * @param returnCd リターンコード
	 * @throws Exception
	 */
	public void apiTerminal(String returnCd) throws Exception
	{
		// XML変換対象マップを作成
		HashMap<String, LinkedHashMap<String, Object>> xmlChangeMap = new HashMap<String, LinkedHashMap<String, Object>>();
		// 送信データマップを作成
		LinkedHashMap<String, Object> kkife351SendMap = new LinkedHashMap<String, Object>();
		
		// 送信データマップにリターンコードを追加
		kkife351SendMap.put(RETURN_CD, returnCd);
		
		if (RETURN_CD_NORMAL.equals(returnCd))
		{
			// 申込詳細結果
			ArrayList<Map<String, String>> mskmDtlRslt = new ArrayList <Map<String, String>>();
			// 申込詳細
			Map<String, String> mskmDtl = new HashMap<String, String>();
			
			HashMap parentMap = (HashMap)vhMskmDtlOutputMap.get("KKSV086101CC");
			ArrayList childList = (ArrayList)parentMap.get("vhMskmDtlList");
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				/** KKSV0861 */
				// 申込日
				mskmDtl.put("mskm_dt", (String)childMap.get("mskm_dt"));
				// マンション名
				mskmDtl.put("mansion_nm", (String)childMap.get("mansion_nm"));
				// 前利用回線
				mskmDtl.put("bf_use_kaisen", (String)childMap.get("bf_use_kaisen"));
// ANK-3158-01-00 2017/04/26 MOD START
//				// ネットキャンセル有無
//				mskmDtl.put("net_cancel_um", (String)childMap.get("net_cancel_um"));
				// ネットキャンセル年月日
				mskmDtl.put("net_cancel_ymd", (String)childMap.get("net_cancel_ymd"));
// ANK-3158-01-00 2017/04/26 MOD END
				// ネットキャンセル理由
				mskmDtl.put("net_cancel_rsn", (String)childMap.get("net_cancel_rsn"));
// ANK-3158-01-00 2017/04/26 MOD START
//				// 電話キャンセル有無
//				mskmDtl.put("tel_cancel_um", (String)childMap.get("tel_cancel_um"));
				// 電話キャンセル年月日
				mskmDtl.put("tel_cancel_ymd", (String)childMap.get("tel_cancel_ymd"));
// ANK-3158-01-00 2017/04/26 MOD END
				// 電話キャンセル理由
				mskmDtl.put("tel_cancel_rsn", (String)childMap.get("tel_cancel_rsn"));
// ANK-3158-01-00 2017/04/26 MOD START
//				// テレビキャンセル有無
//				mskmDtl.put("tv_cancel_um", (String)childMap.get("tv_cancel_um"));
				// テレビキャンセル年月日
				mskmDtl.put("tv_cancel_ymd", (String)childMap.get("tv_cancel_ymd"));
// ANK-3158-01-00 2017/04/26 MOD END
				// テレビキャンセル理由
				mskmDtl.put("tv_cancel_rsn", (String)childMap.get("tv_cancel_rsn"));
				// 宅内調査日(IP)
				mskmDtl.put("takcho_day_ip", (String)childMap.get("takcho_day_ip"));
				// 宅内工事予定日(IP)
				mskmDtl.put("house_work_plan_date_ip", (String)childMap.get("house_work_plan_date_ip"));
				// 宅内工事日(IP)
				mskmDtl.put("house_work_date_ip", (String)childMap.get("house_work_date_ip"));
				// 機器出荷日
				mskmDtl.put("kiki_shipment_date", (String)childMap.get("kiki_shipment_date"));
				// 開通希望日
				mskmDtl.put("open_kibo_day", (String)childMap.get("open_kibo_day"));
				// サービス開始日(IP)
				mskmDtl.put("svc_staymd_ip", (String)childMap.get("svc_staymd_ip"));
				// 宅内調査日(TV)
				mskmDtl.put("takcho_day_tv", (String)childMap.get("takcho_day_tv"));
				// 宅内工事予定日(TV)
				mskmDtl.put("house_work_plan_date_tv", (String)childMap.get("house_work_plan_date_tv"));
				// 宅内工事日(TV)
				mskmDtl.put("house_work_date_tv", (String)childMap.get("house_work_date_tv"));
				// サービス開始日(TV)
				mskmDtl.put("svc_staymd_tv", (String)childMap.get("svc_staymd_tv"));
				// サンキューコール実施年月日
				mskmDtl.put("thnx_call_jssi_ymd", (String)childMap.get("thnx_call_jssi_ymd"));
// ▼▼▼ ANK-3307-00-00 Modify START
//				// 申込キャンセル除外承認申請年月日
//				mskmDtl.put("mskm_cncl_jgi_snn_shin_ymd", (String)childMap.get("mskm_cncl_jgi_snn_shin_ymd"));
//				// 申込キャンセル除外承認年月日
//				mskmDtl.put("mskm_cncl_jgi_snn_ymd", (String)childMap.get("mskm_cncl_jgi_snn_ymd"));
//				// 申込キャンセル除外否認年月日
//				mskmDtl.put("mskm_cncl_jgi_hnn_ymd", (String)childMap.get("mskm_cncl_jgi_hnn_ymd"));

				// 申込キャンセル除外承認申請年月日
				mskmDtl.put("mskm_cncl_jgi_snn_shin_ymd_net", 	(String)childMap.get(CNCL_JGI_SNN_SIN_NET));
				// 申込キャンセル除外承認年月日
				mskmDtl.put("mskm_cncl_jgi_snn_ymd_net", 		(String)childMap.get(CNCL_JGI_SNN_NET));
				// 申込キャンセル除外否認年月日
				mskmDtl.put("mskm_cncl_jgi_hnn_ymd_net", 		(String)childMap.get(CNCL_JGI_HNN_NET));
// △△△ ANK-3307-00-00 Modify END
// ▼▼▼ ANK-3214-00-00 ADD START
				// eo電気キャンセル日
				mskmDtl.put("eden_cancel_date", (String)childMap.get("eoelec_cancel_ymd"));
				// mineoキャンセル日
				mskmDtl.put("mineo_cancel_date", (String)childMap.get("mineo_cancel_ymd"));
// △△△ ANK-3214-00-00 ADD END
// ▼▼▼ ANK-3307-00-00 ADD START
				// 申込キャンセル除外承認申請年月日(電話)	
				mskmDtl.put("mskm_cncl_jgi_snn_shin_ymd_tel", 	(String)childMap.get(CNCL_JGI_SNN_SIN_TEL));
				// 申込キャンセル除外承認年月日(電話)	
				mskmDtl.put("mskm_cncl_jgi_snn_ymd_tel", 		(String)childMap.get(CNCL_JGI_SNN_TEL));
				// 申込キャンセル除外承認年月日(電話)	
				mskmDtl.put("mskm_cncl_jgi_hnn_ymd_tel", 		(String)childMap.get(CNCL_JGI_HNN_TEL));

				// 申込キャンセル除外承認申請年月日(テレビ)	
				mskmDtl.put("mskm_cncl_jgi_snn_shin_ymd_tv", 	(String)childMap.get(CNCL_JGI_SNN_SIN_TV));
				// 申込キャンセル除外承認年月日(テレビ)	
				mskmDtl.put("mskm_cncl_jgi_snn_ymd_tv", 		(String)childMap.get(CNCL_JGI_SNN_TV));
				// 申込キャンセル除外承認年月日(テレビ)	
				mskmDtl.put("mskm_cncl_jgi_hnn_ymd_tv", 		(String)childMap.get(CNCL_JGI_HNN_TV));

				// 申込キャンセル除外承認申請年月日(eo電気)	
				mskmDtl.put("mskm_cncl_jgi_snn_shin_ymd_eden", 	(String)childMap.get(CNCL_JGI_SNN_SIN_EOELEC));
				// 申込キャンセル除外承認年月日(eo電気)	
				mskmDtl.put("mskm_cncl_jgi_snn_ymd_eden", 		(String)childMap.get(CNCL_JGI_SNN_EOELEC));
				// 申込キャンセル除外承認年月日(eo電気)	
				mskmDtl.put("mskm_cncl_jgi_hnn_ymd_eden", 		(String)childMap.get(CNCL_JGI_HNN_EOELEC));

				// 申込キャンセル除外承認申請年月日(mineo)	
				mskmDtl.put("mskm_cncl_jgi_snn_shin_ymd_mineo", (String)childMap.get(CNCL_JGI_SNN_SIN_MINEO));
				// 申込キャンセル除外承認年月日(mineo)	
				mskmDtl.put("mskm_cncl_jgi_snn_ymd_mineo", 		(String)childMap.get(CNCL_JGI_SNN_MINEO));
				// 申込キャンセル除外承認年月日(mineo)	
				mskmDtl.put("mskm_cncl_jgi_hnn_ymd_mineo", 		(String)childMap.get(CNCL_JGI_HNN_MINEO));
				
				// 利用場所住所名	
// ▼▼▼ IT1-2017-0000136 Modify START
//				mskmDtl.put("use_place_ad_nm", 	(String)childMap.get(USE_PLACE_PCD + HALF_WIDTH_SPACE + USE_PLACE_AD_NM));
				mskmDtl.put("use_place_ad_nm", 	(String)childMap.get(USE_PLACE_PCD) + HALF_WIDTH_SPACE + (String)childMap.get(USE_PLACE_AD_NM));
// △△△ IT1-2017-0000136 Modify END

				// eo電気受付番号	
// ▼▼▼ IT1-2017-0000136 Modify START
//				mskmDtl.put("eden_uke_no", 		(String)childMap.get(CNCL_JGI_HNN_MINEO));
				mskmDtl.put("eden_uke_no", 		(String)childMap.get(EOELEC_UKE_NO));
// △△△ IT1-2017-0000136 Modify END
				// キャンセル分類１(IP)	
				mskmDtl.put("cncl_bnrui1_ip", 	(String)childMap.get(CNCL_BNRUI1_IP));
				// キャンセル分類２(IP)	
				mskmDtl.put("cncl_bnrui2_ip", 	(String)childMap.get(CNCL_BNRUI2_IP));
				// 申込番号(IP)	
				mskmDtl.put("kojiak_no_ip", 	(String)childMap.get(KOJIAK_NO_IP));
				// キャンセル分類１(TV)	
				mskmDtl.put("cncl_bnrui1_tv", 	(String)childMap.get(CNCL_BNRUI1_TV));
				// キャンセル分類２(TV)	
				mskmDtl.put("cncl_bnrui2_tv", 	(String)childMap.get(CNCL_BNRUI2_TV));
				// 申込番号(TV)	
				mskmDtl.put("kojiak_no_tv", 	(String)childMap.get(KOJIAK_NO_TV));
				
// △△△ ANK-3307-00-00 ADD END
// ANK-4046-00-00 ADD START
				// 受付日
				mskmDtl.put("uk_ymd", 	(String)childMap.get(UK_YMD));
				// 受付種別名
				mskmDtl.put("uk_sbt_nm", 	(String)childMap.get(UK_SBT_NM));
				// SYSID
				mskmDtl.put("sysid", 	(String)childMap.get(SYSID));
				// お客さまID(ネット)
				mskmDtl.put("svc_kei_no_net", 	(String)childMap.get(SVC_KEI_NO_NET));
				// お客さまID(電話)
				mskmDtl.put("svc_kei_no_tel", 	(String)childMap.get(SVC_KEI_NO_TEL));
				// お客さまID(テレビ)
				mskmDtl.put("svc_kei_no_tv", 	(String)childMap.get(SVC_KEI_NO_TV));
				// お客さまID(電気)
				mskmDtl.put("svc_kei_no_eden", 	(String)childMap.get(SVC_KEI_NO_EDEN));
				// お客さまID(mineo)
				mskmDtl.put("svc_kei_no_mineo", 	(String)childMap.get(SVC_KEI_NO_MINEO));
				// VDSL(料金プラン)
				mskmDtl.put("pplan_cd_vdsl", 	(String)childMap.get(PPLAN_CD_VDSL));
				// サンキューレター送付日
				mskmDtl.put("kanuore_sohu_ymd", 	(String)childMap.get(KANUORE_SOHU_YMD));
// ANK-4046-00-00 ADD END
				// OM-2020-0000202 ADD START
				// 工事案件連絡事項
				mskmDtl.put("kojireqinfo_rrkjiko", 	(String)childMap.get(KOJIAK_RRK_JIKO));
				// OM-2020-0000202 ADD END
				
				/** KKSV0540 編集あり項目 */
				// 住所名
				mskmDtl.put("ad_nm", osBean.sendMessageString("住所名", X31CWebConst.DATABEAN_GET_VALUE));
				// 取扱コード1-1
				mskmDtl.put("trat_cd_1_1", osBean.sendMessageString("取扱コード1-1", X31CWebConst.DATABEAN_GET_VALUE));
				// 取扱コード1-2
				mskmDtl.put("trat_cd_1_2", osBean.sendMessageString("取扱コード1-2", X31CWebConst.DATABEAN_GET_VALUE));
				// 取扱コード2-1
				mskmDtl.put("trat_cd_2_1", osBean.sendMessageString("取扱コード2-1", X31CWebConst.DATABEAN_GET_VALUE));
				// 取扱コード2-2
				mskmDtl.put("trat_cd_2_2", osBean.sendMessageString("取扱コード2-2", X31CWebConst.DATABEAN_GET_VALUE));
				// 契約者生年月日
				mskmDtl.put("keisha_cust_birthd", osBean.sendMessageString("契約者生年月日", X31CWebConst.DATABEAN_GET_VALUE));
				// 接続方式
				mskmDtl.put("connect_hoshiki", osBean.sendMessageString("接続方式", X31CWebConst.DATABEAN_GET_VALUE));
				// 割引契約
				mskmDtl.put("wrib_kei", osBean.sendMessageString("割引契約", X31CWebConst.DATABEAN_GET_VALUE));
				// オプション（ネット）
				mskmDtl.put("net_op", osBean.sendMessageString("オプション（ネット）", X31CWebConst.DATABEAN_GET_VALUE));
				// コース（電話）
				mskmDtl.put("tel_course", osBean.sendMessageString("コース（電話）", X31CWebConst.DATABEAN_GET_VALUE));
				// 番ポ契約住所1
				mskmDtl.put("tel1_ntt_keisha_ad", osBean.sendMessageString("番ポ契約住所1", X31CWebConst.DATABEAN_GET_VALUE));
				// オプション1(電話）
				mskmDtl.put("tel1_op", osBean.sendMessageString("オプション1（電話）", X31CWebConst.DATABEAN_GET_VALUE));
				// 番ポ契約住所2
				mskmDtl.put("tel2_ntt_keisha_ad", osBean.sendMessageString("番ポ契約住所2", X31CWebConst.DATABEAN_GET_VALUE));
				// オプション2(電話）
				mskmDtl.put("tel2_op", osBean.sendMessageString("オプション2（電話）", X31CWebConst.DATABEAN_GET_VALUE));
				// オプション（スマートリンク）
				mskmDtl.put("smln_op", osBean.sendMessageString("オプション（スマートリンク）", X31CWebConst.DATABEAN_GET_VALUE));
				// 適用キャンペーン
				mskmDtl.put("aply_campaign", osBean.sendMessageString("適用キャンペーン", X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4009-00-00 ADD START
				// 開通前申込コンテンツ
				mskmDtl.put("ktmae_cont", osBean.sendMessageString("開通前申込コンテンツ", X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4009-00-00 ADD END
				
				/** KKSV0540 編集なし項目 */
				// サービスフォームBeanの取得
				X31SDataBeanAccess bean = super.getServiceFormBean();
				X31SDataBeanAccess[] paramBean = {bean};

				// 契約者氏名
// ▼▼▼ IT1-2017-0000048 ADD START
				if ("1".equals(paramBean[0].sendMessageString(KKW14301SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE))) 
				{ 
// △△△ IT1-2017-0000048 ADD END
					mskmDtl.put("keisha_cust_nm", paramBean[0].sendMessageString("契約者情報−氏名", X31CWebConst.DATABEAN_GET_VALUE));
// ▼▼▼ IT1-2017-0000048 ADD START
				}
				else 
				{
					mskmDtl.put("keisha_cust_nm", paramBean[0].sendMessageString(KKW14301SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE));
				}
// △△△ IT1-2017-0000048 ADD END
// ▼▼▼ ANK-3307-00-00 ADD START
				// 契約者氏名（カナ）
				if ("1".equals(paramBean[0].sendMessageString(KKW14301SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE))) 
				{ 
					mskmDtl.put("keisha_cust_kana", paramBean[0].sendMessageString(KKW14301SFConst.KEISHA_CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE));
				}
				else 
				{
					mskmDtl.put("keisha_cust_kana", paramBean[0].sendMessageString(KKW14301SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
				}
// △△△ ANK-3307-00-00 ADD END
				// 契約者電話番号
				mskmDtl.put("keisha_telno", paramBean[0].sendMessageString("契約者−電話番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 優先連絡先電話番号
				mskmDtl.put("keisha_yusen_rrsk_tel_nm",
						paramBean[0].sendMessageString("契約者情報−優先電話番号", X31CWebConst.DATABEAN_GET_VALUE));
				// MID
				mskmDtl.put("mid", paramBean[0].sendMessageString("Ｍ−ＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
				// 部屋番号
				mskmDtl.put("seikyus_yo_rm_no", paramBean[0].sendMessageString("請求書用部屋番号", X31CWebConst.DATABEAN_GET_VALUE));
				// コース（ネット）
				mskmDtl.put("net_course", paramBean[0].sendMessageString("コース選択", X31CWebConst.DATABEAN_GET_VALUE));
				// 1番号目種別
				mskmDtl.put("tel1_sbt", paramBean[0].sendMessageString("ｅｏ光電話１−電話番号の種類を選択", X31CWebConst.DATABEAN_GET_VALUE));
				// 番ポ電話番号1
				mskmDtl.put("tel1_bmp_telno",
						paramBean[0].sendMessageString("ｅｏ光電話１−１番号目−番号ポータビリティ・電話番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス提供業者1
				mskmDtl.put("tel1_now_use_tel_svc_tk_jgs",
						paramBean[0].sendMessageString("ｅｏ光電話１−１番号目−現在ご利用中の電話サービス提供事業者", X31CWebConst.DATABEAN_GET_VALUE));
				// 番ポ契約者名義1
				mskmDtl.put("tel1_ntt_keisha_nm",
						paramBean[0].sendMessageString("ｅｏ光電話１−１番号目−契約者名義人", X31CWebConst.DATABEAN_GET_VALUE));
				// 2番号目種別
				mskmDtl.put("tel2_sbt", paramBean[0].sendMessageString("ｅｏ光電話２−電話番号の種類を選択", X31CWebConst.DATABEAN_GET_VALUE));
				// 番ポ電話番号2
				mskmDtl.put("tel2_bmp_telno",
						paramBean[0].sendMessageString("ｅｏ光電話２−２番号目−番号ポータビリティ・電話番号", X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス提供業者2
				mskmDtl.put("tel2_now_use_tel_svc_tk_jgs",
						paramBean[0].sendMessageString("ｅｏ光電話２−２番号目−現在ご利用中の電話サービス提供事業者", X31CWebConst.DATABEAN_GET_VALUE));
				// 番ポ契約者名義2
				mskmDtl.put("tel2_ntt_keisha_nm",
						paramBean[0].sendMessageString("ｅｏ光電話２−２番号目−契約者名義人", X31CWebConst.DATABEAN_GET_VALUE));
				// コース(テレビ)
				mskmDtl.put("tv_course", paramBean[0].sendMessageString("ｅｏ光テレビ申込サービス選択", X31CWebConst.DATABEAN_GET_VALUE));
				
// ANK-4044-01-00 ADD START
				// コース(テレビ)と訪販申込詳細照会受付.料金コース名(テレビ再送信)の値をチェックする
				String tvCourse = (String)mskmDtl.get("tv_course");
				String pcrsNmTvsaiss = (String)childMap.get(PCRS_NM_TVSAISS);
				// 申込詳細結果.コース（テレビ）がNULLまたは空白且つ、訪販申込詳細照会受付.料金コース名(テレビ再送信)がNULL以外且つ空白以外の場合、
				if (JKKCommonUtil.isNull(tvCourse) && !JKKCommonUtil.isNull(pcrsNmTvsaiss))
				{
					// 訪販申込詳細照会受付.料金コース名(テレビ再送信)をコース（テレビ）に設定する
					mskmDtl.put("tv_course", pcrsNmTvsaiss);
				}
// ANK-4044-01-00 ADD END
				
				// ｎ台目＿コース選択
				// ｎ台目＿ｅｏ光テレビチューナー（ＳＴＢ）
				X31SDataBeanAccessArray kcatTvTunerList =
						paramBean[0].getDataBeanArray("Ｋ−ＣＡＴ−ｅｏ光テレビチューナーリスト");
				mskmDtl.put("kcat_1_course_choice", "");
				mskmDtl.put("kcat_2_course_choice", "");
				mskmDtl.put("kcat_3_course_choice", "");
				mskmDtl.put("kcat_4_course_choice", "");
				mskmDtl.put("kcat_5_course_choice", "");
				mskmDtl.put("kcat_1_cnt_tv_tuner", "");
				mskmDtl.put("kcat_2_cnt_tv_tuner", "");
				mskmDtl.put("kcat_3_cnt_tv_tuner", "");
				mskmDtl.put("kcat_4_cnt_tv_tuner", "");
				mskmDtl.put("kcat_5_cnt_tv_tuner", "");
				
				for(int j = 0; j < kcatTvTunerList.getCount(); j++)
				{
					X31SDataBeanAccess subbean = kcatTvTunerList.getDataBean(j);
					
					mskmDtl.put("kcat_" + (j + 1) + "_course_choice",
							subbean.sendMessageString("ｎ台目＿コース選択", X31CWebConst.DATABEAN_GET_VALUE));
					mskmDtl.put("kcat_"+ (j + 1) +"_cnt_tv_tuner",
							subbean.sendMessageString("ｎ台目＿ｅｏ光テレビチューナー（ＳＴＢ）", X31CWebConst.DATABEAN_GET_VALUE));
				}
				
				// オプション（テレビ）
				mskmDtl.put("cable_guide_mskm_cnt",
						paramBean[0].sendMessageString("ｅｏ光テレビガイド誌の定期購入お申込み冊数", X31CWebConst.DATABEAN_GET_VALUE));
				// 購入端末
				mskmDtl.put("tablet_tnmt_nm",
						paramBean[0].sendMessageString("スマートリンク＿タブレット端末−端末名", X31CWebConst.DATABEAN_GET_VALUE));
				// 支払方法
				mskmDtl.put("tablet_payway",
						paramBean[0].sendMessageString("スマートリンク＿タブレット端末−お支払方法", X31CWebConst.DATABEAN_GET_VALUE));
				// OM-2020-0000202 DEL START KKSV0861から取得するように修正
//				// 特記事項
//				mskmDtl.put("kojireqinfo_rrkjiko", paramBean[0].sendMessageString("工事依頼情報−連絡事項", X31CWebConst.DATABEAN_GET_VALUE));
				// OM-2020-0000202 DEL END
				
				// ▼▼▼▼▼ ANK-3479-00-00 ADD START ▼▼▼▼▼
				// 標準工事費割賦支払方法
				String work_payway = paramBean[0].sendMessageString("標準工事費割賦支払方法", X31CWebConst.DATABEAN_GET_VALUE);
				if (work_payway == null)
				{
					mskmDtl.put("work_payway", "");
				}
				else if (WORK_PAYWAY_IKKATU.equals(work_payway))
				{
					mskmDtl.put("work_payway", WORK_PAYWAY_IKKATU_VALUE);
				}
				else if (WORK_PAYWAY_BUNKATU.equals(work_payway))
				{
					mskmDtl.put("work_payway", WORK_PAYWAY_BUNKATU_VALUE);
				}
				else
				{
					mskmDtl.put("work_payway", "");
				}
				// ▲▲▲▲▲ ANK-3479-00-00 ADD END ▲▲▲▲▲
				
				// 訪販申込詳細照会受付サービスの結果を申込詳細結果に追加
				mskmDtlRslt.add(mskmDtl);
			}
			
			// 送信データマップに申込詳細結果を追加
			kkife351SendMap.put(MSKM_DTL_RSLT, mskmDtlRslt);
		}
		else if (RETURN_CD_ERR.equals(returnCd))
		{
			// 送信データマップにエラーリストを追加
			kkife351SendMap.put(ERR_LIST, warnList);
		}
		
		// XML変換対象マップに送信データマップを追加
		xmlChangeMap.put(IF_ID + "_SEND", kkife351SendMap);
		
		// XML変換対象マップをXML変換する
		String xml = JKKOneStopDataConverter.parseMapToXml(xmlChangeMap);
		
		// 返却データを設定
		X31SDataBeanAccess bean = super.getServiceFormBean();
		bean.sendMessageString(KUA10101SFConst.RETURNDATA, X31CWebConst.DATABEAN_SET_VALUE, xml);
	}
	// ANK-3158-00-00 2017/04/03 ADD END
	
// ANK-3158-00-00 2017/04/03 DEL START
//	/**
//	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
//	 * オーバーライドして自動生成されたメソッドです。
//	 * @param arg0 (I) イベント情報
//	 * @param arg1 (I) WebFWでは使用しません
//	 * @param arg2 (I) WebFWでは使用しません
//	 * @return 処理結果（true:正常終了、false:エラー）
//	 * @throws X33SException X33SException
//	 */
//	@Override
//	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,
//			EventObject arg2) throws X33SException
//	{
//		return false;
//	}
// ANK-3158-00-00 2017/04/03 DEL END

	/**
	 * 初期表示処理<br>
	 * <br>
	 * WEB申込断面データ参照画面の初期表示を行います。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// (a) 画面情報取得部品(JKKWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		JKKWebCommon.getScreenInfo(this);

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// (a)サービスフォームBeanの項目をクリアする。
		clearBean();
		// (a)サービスフォームBeanの項目をクリアする。
		bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_COMMENT_KBN, X31CWebConst.DATABEAN_SET_VALUE, "0");
		bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, MSKM_DMEN_DTL_NO_SAI);

		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// (a)サービス呼出処理（WEB申込断面データ参照）(callServiceGetMskmDmen())を呼び出す。
		callServiceFindMskmDmn();

		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし

		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW14301);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW14301);

		return true;

	}

// ANK-3158-00-00 2017/04/03 DEL START
//	/**
//	 * ｺﾒﾝﾄ登録ボタン押下処理<br>
//	 * <br>
//	 * WEB申込断面コメント登録確認画面をサブ画面で表示する。
//	 * 
//	 * @return boolean
//	 * @throws Exception Exception
//	 */
//	public boolean commentAdd() throws Exception
//	{
//		// サービスフォームBeanの内容の取得
//		X31SDataBeanAccess bean = getServiceFormBean();
//
//		// 共有フォームBeanの内容を取得
//		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
//
//		// 子画面に渡す情報用HashMap
//		HashMap<String, Object> dataMap = new HashMap<String, Object>();
//
//		// -------------------------------------------------- //
//		// (1)引継情報の取得
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (2)サービスフォームBeanの設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (3)サービス呼出処理
//		// -------------------------------------------------- //
//		// なし
//		
//		// -------------------------------------------------- //
//		// (4)サービス処理結果の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (5)引継情報の設定
//		// -------------------------------------------------- //
//		// (a)次画面への引継情報(dataMap)を作成する。
//		// 申込書番号
//		dataMap.put(KKW14401SFConst.MSKMSHO_NO, bean.sendMessageString(KKW14301SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
//		// 更新前更新年月日時分秒
//		dataMap.put(KKW14401SFConst.UPD_DTM_BF, bean.sendMessageString(KKW14301SFConst.UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));
//		// 更新前断面コメント
//		dataMap.put(KKW14401SFConst.MSKM_DMEN_COMMENT_BF, bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_COMMENT, X31CWebConst.DATABEAN_GET_VALUE));
//
//		// (b)画面情報設定部品（JKKWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
//		JKKWebCommon.setScreenInfo(this, JKKScreenConst.SCREEN_ID_KKW14401, dataMap);
//
//		// (c)戻り先画面ID設定（JKKWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
//		JKKWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14402, JKKScreenConst.SCREEN_ID_KKW14301);
//
//		// -------------------------------------------------- //
//		// (6)共有フォームBeanの設定
//		// -------------------------------------------------- //
//		// 遷移先画面IDを共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_ID_KKW14401);
//
//		// 遷移先画面名を共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW14401);
//
//		return true;
//
//	}
//
//	/**
//	 * 仮申込ボタン押下処理<br>
//	 * <br>
//	 * 申込断面の仮申込データの参照を行う。
//	 * 
//	 * @return boolean
//	 * @throws Exception Exception
//	 */
//	public boolean kariMskm() throws Exception
//	{
//		// サービスフォームBeanの内容の取得
//		X31SDataBeanAccess bean = getServiceFormBean();
//
//		// 共有フォームBeanの内容を取得
//		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
//
//		// -------------------------------------------------- //
//		// (1)引継情報の取得
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (2)サービスフォームBeanの設定
//		// -------------------------------------------------- //
//		bean.sendMessageString(KKW14301SFConst.MSKM_DMN_CD, X31CWebConst.DATABEAN_SET_VALUE, MSKM_DMEN_CD_KARI);
//
//		// -------------------------------------------------- //
//		// (3)サービス呼出処理
//		// -------------------------------------------------- //
//		// (a)サービス呼出処理（WEB申込断面データ参照）(callServiceGetMskmDmen())を呼び出す。
//		callServiceFindMskmDmn();
//		
//		// -------------------------------------------------- //
//		// (4)サービス処理結果の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (5)引継情報の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (6)共有フォームBeanの設定
//		// -------------------------------------------------- //
//		// 遷移先画面IDを共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_ID_KKW14301);
//
//		// 遷移先画面名を共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW14301);
//
//		return true;
//
//	}
//
//	/**
//	 * 本申込ボタン押下処理<br>
//	 * <br>
//	 * 申込断面の本申込データの参照を行う。
//	 * 
//	 * @return boolean
//	 * @throws Exception Exception
//	 */
//	public boolean honMskm() throws Exception
//	{
//		// サービスフォームBeanの内容の取得
//		X31SDataBeanAccess bean = getServiceFormBean();
//
//		// 共有フォームBeanの内容を取得
//		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
//
//		// -------------------------------------------------- //
//		// (1)引継情報の取得
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (2)サービスフォームBeanの設定
//		// -------------------------------------------------- //
//		bean.sendMessageString(KKW14301SFConst.MSKM_DMN_CD, X31CWebConst.DATABEAN_SET_VALUE, MSKM_DMEN_CD_HON);
//
//		// -------------------------------------------------- //
//		// (3)サービス呼出処理
//		// -------------------------------------------------- //
//		// (a)サービス呼出処理（WEB申込断面データ参照）(callServiceGetMskmDmen())を呼び出す。
//		callServiceFindMskmDmn();
//		
//		// -------------------------------------------------- //
//		// (4)サービス処理結果の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (5)引継情報の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (6)共有フォームBeanの設定
//		// -------------------------------------------------- //
//		// 遷移先画面IDを共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_ID_KKW14301);
//
//		// 遷移先画面名を共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW14301);
//
//		return true;
//
//	}
//
//	/**
//	 * 初期申請ボタン押下処理<br>
//	 * <br>
//	 * 申込断面の初期申請データの参照を行う。
//	 * 
//	 * @return boolean
//	 * @throws Exception Exception
//	 */
//	public boolean shokiSinsei() throws Exception
//	{
//		// サービスフォームBeanの内容の取得
//		X31SDataBeanAccess bean = getServiceFormBean();
//
//		// 共有フォームBeanの内容を取得
//		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
//
//		// -------------------------------------------------- //
//		// (1)引継情報の取得
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (2)サービスフォームBeanの設定
//		// -------------------------------------------------- //
//		bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, MSKM_DMEN_DTL_NO_SHOKI);
//
//		// -------------------------------------------------- //
//		// (3)サービス呼出処理
//		// -------------------------------------------------- //
//		// (a)サービス呼出処理（WEB申込断面データ参照）(callServiceGetMskmDmen())を呼び出す。
//		callServiceFindMskmDmn();
//		
//		// -------------------------------------------------- //
//		// (4)サービス処理結果の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (5)引継情報の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (6)共有フォームBeanの設定
//		// -------------------------------------------------- //
//		// 遷移先画面IDを共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_ID_KKW14301);
//
//		// 遷移先画面名を共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW14301);
//
//		return true;
//
//	}
//
//	/**
//	 * 再申請ボタン押下処理<br>
//	 * <br>
//	 * 申込断面の再申請データの参照を行う。
//	 * 
//	 * @return boolean
//	 * @throws Exception Exception
//	 */
//	public boolean saiSinsei() throws Exception
//	{
//		// サービスフォームBeanの内容の取得
//		X31SDataBeanAccess bean = getServiceFormBean();
//
//		// 共有フォームBeanの内容を取得
//		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
//
//		// -------------------------------------------------- //
//		// (1)引継情報の取得
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (2)サービスフォームBeanの設定
//		// -------------------------------------------------- //
//		bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, MSKM_DMEN_DTL_NO_SAI);
//
//		// -------------------------------------------------- //
//		// (3)サービス呼出処理
//		// -------------------------------------------------- //
//		// (a)サービス呼出処理（WEB申込断面データ参照）(callServiceGetMskmDmen())を呼び出す。
//		callServiceFindMskmDmn();
//		
//		// -------------------------------------------------- //
//		// (4)サービス処理結果の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (5)引継情報の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (6)共有フォームBeanの設定
//		// -------------------------------------------------- //
//		// 遷移先画面IDを共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_ID_KKW14301);
//
//		// 遷移先画面名を共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW14301);
//
//		return true;
//
//	}
//
//	/**
//	 * リフレッシュ処理<br>
//	 * <br>
//	 * WEB申込断面データ参照画面のリフレッシュを行なう。
//	 * 
//	 * @return boolean
//	 * @throws Exception Exception
//	 */
//	public boolean refresh() throws Exception
//	{
//
//		// 共有フォームBeanの内容を取得
//		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();
//
//		// -------------------------------------------------- //
//		// (1)引継情報の取得
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (2)サービスフォームBeanの設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (3)サービス呼出処理
//		// -------------------------------------------------- //
//		// (a)サービス呼出処理（WEB申込断面データ参照）(callServiceGetMskmDmen())を呼び出す。
//		callServiceFindMskmDmn();
//		
//		// -------------------------------------------------- //
//		// (4)サービス処理結果の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (5)引継情報の設定
//		// -------------------------------------------------- //
//		// なし
//
//		// -------------------------------------------------- //
//		// (6)共有フォームBeanの設定
//		// -------------------------------------------------- //
//		// 遷移先画面IDを共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_ID_KKW14301);
//
//		// 遷移先画面名を共有フォームBeanに設定
//		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
//				JKKScreenConst.SCREEN_NAME_KKW14301);
//
//		return true;
//
//	}
// ANK-3158-00-00 2017/04/03 DEL END

	/**
	 * サービス呼出処理（WEB申込断面データ参照）<br>
	 * <br>
	 * WEB申込断面データ参照サービスを呼び出し、申込断面、申込断面明細のデータ照会を行なう。
	 * 
	 * @throws Exception
	 */
	private void callServiceFindMskmDmn() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)サービス呼出処理
		// (a) 申込断面コメント変更サービスの呼び出しを行う。
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0540");

		// マッピングクラスの定義
		KKSV0540_KKSV0540OPDBMapper mapper = new KKSV0540_KKSV0540OPDBMapper();
		mapper.setKKSV054001SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setJKKGETMSKMDMEN1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (2) サービス処理結果の設定
		clearBeanMskmDmen();
		mapper.getKKSV054001SC(paramBean, outputMap);
		mapper.getJKKGETMSKMDMEN1RCC(paramBean, outputMap);

		// (3) 対象データが存在しない場合
		if ("1".equals(bean.sendMessageString(KKW14301SFConst.SEARCH_ERR_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// (b) メッセージの出力をおこなう。
			JKKWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0300_KW, MESSAGE_REPLACE_VALUES);
		}

		// (4) マスク処理（setMask）を使用し、マスク対象項目のマスクを行う。
// ANK-2138-00-00 UPD START
//		if ("2".equals(bean.sendMessageString(KKW14301SFConst.PAYWAY_CD, X31CWebConst.DATABEAN_GET_VALUE)))
//		{
//			setMask();
//		}
		setMask();
// ANK-2138-00-00 UPD END

		// 申込断面種別コード名称スタイル
		if ("2".equals(bean.sendMessageString(KKW14301SFConst.MSKM_DMN_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(KKW14301SFConst.STYLE_MSKM_DMN_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		else
		{
			bean.sendMessageString(KKW14301SFConst.STYLE_MSKM_DMN_CD_NM, X31CWebConst.DATABEAN_SET_VALUE, MSKM_DMN_CD_NM_STYLE);
		}
		// データ領域スタイル
		if ("0".equals(bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_COMMENT_KBN, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(KKW14301SFConst.VERTICAL_VARIABLE_HEIGHT, X31CWebConst.DATABEAN_SET_VALUE, VERTICAL_VARIABLE_HEIGHT_NON_OPEN);
		}
		else
		{
			bean.sendMessageString(KKW14301SFConst.VERTICAL_VARIABLE_HEIGHT, X31CWebConst.DATABEAN_SET_VALUE, VERTICAL_VARIABLE_HEIGHT_OPEN);
		}

		if ("1".equals(bean.sendMessageString(KKW14301SFConst.TEL1_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 光電話１＿ＣＯＬＳＰＡＮ
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL1, X31CWebConst.DATABEAN_SET_VALUE, "1");
			// 光電話１＿ＣＯＬＳＰＡＮ＿記事欄
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL1_KIJIRAN, X31CWebConst.DATABEAN_SET_VALUE, "2");
		}
		else
		{
			// 光電話１＿ＣＯＬＳＰＡＮ
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL1, X31CWebConst.DATABEAN_SET_VALUE, "3");
			// 光電話１＿ＣＯＬＳＰＡＮ＿記事欄
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL1_KIJIRAN, X31CWebConst.DATABEAN_SET_VALUE, "4");
		}

		if ("1".equals(bean.sendMessageString(KKW14301SFConst.TEL2_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 光電話２＿ＣＯＬＳＰＡＮ
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL2, X31CWebConst.DATABEAN_SET_VALUE, "1");
			// 光電話２＿ＣＯＬＳＰＡＮ＿記事欄
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL2_KIJIRAN, X31CWebConst.DATABEAN_SET_VALUE, "2");
		}
		else
		{
			// 光電話２＿ＣＯＬＳＰＡＮ
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL2, X31CWebConst.DATABEAN_SET_VALUE, "3");
			// 光電話２＿ＣＯＬＳＰＡＮ＿記事欄
			bean.sendMessageString(KKW14301SFConst.COLSPAN_TEL2_KIJIRAN, X31CWebConst.DATABEAN_SET_VALUE, "4");
		}

		if ("0".equals(bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_COMMENT_KBN, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 申込断面コメントタイトル
			bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_COMMENT_TITLE, X31CWebConst.DATABEAN_SET_VALUE, "■コメント (+)");
			// 申込断面テーブルスタイル
			bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_CMNT_TBL_STYLE, X31CWebConst.DATABEAN_SET_VALUE, "50");
			// 申込断面テキストエリアスタイル
			bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_CMNT_TXTARA_STYLE, X31CWebConst.DATABEAN_SET_VALUE, "4");
		}
		else
		{
			// 申込断面コメントタイトル
			bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_COMMENT_TITLE, X31CWebConst.DATABEAN_SET_VALUE, "■コメント (-)");
			// 申込断面テーブルスタイル
			bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_CMNT_TBL_STYLE, X31CWebConst.DATABEAN_SET_VALUE, "360");
			// 申込断面テキストエリアスタイル
			bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_CMNT_TXTARA_STYLE, X31CWebConst.DATABEAN_SET_VALUE, "35");
		}

	}

	/**
	 * マスク対象の項目に対してマスク編集をし表示します。
	 * <br>
	 * @throws Exception
	 */
	private void setMask() throws Exception
	{

		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// (1) 権限パターン取得処理（getDispAuthorityPattern）を使用し、権限のパターンを取得する。
		int pattern = getDispAuthorityPattern();

		// (2) マスク処理を行う。
		// (a) 権限パターンが2、3、4の場合、クレジットカードの有効期限、有効性確認結果区分のマスクを行なう。
		if (pattern == 2 || pattern == 3 || pattern == 4)
		{
			// クレジットカードの有効期限
			bean.sendMessageString(KKW14301SFConst.CRECARD_YK_KIGEN, X31CWebConst.DATABEAN_SET_VALUE, MASK_CRECARD_YK_KIGEN);
		}
		else
		{
			String ykKigen = bean.sendMessageString(KKW14301SFConst.CRECARD_YK_KIGEN, X31CWebConst.DATABEAN_GET_VALUE);
			bean.sendMessageString(KKW14301SFConst.CRECARD_YK_KIGEN, X31CWebConst.DATABEAN_SET_VALUE
					, JKKCommonUtil.toYearFromYm(ykKigen) + " 年 " + JKKCommonUtil.toMonthFromYm(ykKigen) + "月");
		}

		// (b) 権限パターンが3、4の場合、クレジットカード会社のマスクを行なう。
		if (pattern == 3 || pattern == 4)
		{
			// クレジットカード会社
			String compCdNm = bean.sendMessageString(KKW14301SFConst.CRECARD_COMP_CD, X31CWebConst.DATABEAN_GET_VALUE);
			bean.sendMessageString(KKW14301SFConst.CRECARD_COMP_CD, X31CWebConst.DATABEAN_SET_VALUE
					, JZMCommonUtil.stdMask(compCdNm, false));
		}

		// (c) クレジットカードのマスクを行なう。
		String creCardNo = bean.sendMessageString(KKW14301SFConst.CRECARD_NO, X31CWebConst.DATABEAN_GET_VALUE);
		String editCreCardNo = "";
		
// ANK-2565-00-00 MOD START
		// クレジットカード番号から下４桁を取得する。
		String tempCreCardNo = "";

		if(creCardNo != null && !"".equals(creCardNo) && 4 <= creCardNo.length())
		{
			tempCreCardNo = creCardNo.substring(creCardNo.length() - 4, creCardNo.length());
		}
		
		// (ｱ) パターン1、2、3の場合、取得した下４桁を設定する。
		if(pattern == 1 || pattern == 2 || pattern == 3)
		{	
			editCreCardNo = tempCreCardNo;
		}
		// (ｲ) パターン4の場合、取得した下４桁をマスクする。
		else if(pattern == 4)
		{
			editCreCardNo = JZMCommonUtil.stdCrecard(tempCreCardNo);
		}

//		// (ｱ) パターン1の場合、ハイフン編集を行なう。
//		if (pattern == 1)
//		{
//			// クレジットカード番号の桁数が16桁の場合
//			if (creCardNo != null && creCardNo.length() == 16)
//			{
//				editCreCardNo = creCardNo.substring(0, 4) + "-" + creCardNo.substring(4, 8) + 
//				"-" + creCardNo.substring(8, 12) + "-" + creCardNo.substring(12);
//			}
//			else
//			{
//				editCreCardNo = creCardNo;
//			}
//		}
//		// (ｲ) パターン2、3の場合、下４桁以外をマスクする。
//		else if (pattern == 2 || pattern == 3)
//		{
//			// クレジットカード番号の桁数が16桁の場合
//			if (creCardNo != null && creCardNo.length() == 16)
//			{
//				// 下４桁以外をマスクする。
//				editCreCardNo = JZMCommonUtil.crecardExcBL1(creCardNo);
//			}
//			else
//			{
//				editCreCardNo = JZMCommonUtil.stdCrecard(creCardNo);
//			}
//		}
//		// (ｳ) パターン4の場合、全桁をマスクする。
//		else if (pattern == 4)
//		{
//			// クレジットカード番号の桁数が16桁の場合
//			if (creCardNo != null && creCardNo.length() == 16)
//			{
//				// 全桁をマスクする。
//				editCreCardNo = JZMCommonUtil.crecardExcHyphen(creCardNo);
//			}
//			else
//			{
//				editCreCardNo = JZMCommonUtil.stdCrecard(creCardNo);
//			}
//		}
// ANK-2565-00-00 MOD END
		bean.sendMessageString(KKW14301SFConst.CRECARD_NO, X31CWebConst.DATABEAN_SET_VALUE, editCreCardNo);

		// ANK-2138-00-00 ADD START
		// (e) 権限パターンが2、3、4の場合、口座番号、通帳番号のマスクを行なう。
		if (pattern == 2 || pattern == 3 || pattern == 4)
		{
			// 口座番号
			String koza_no = bean.sendMessageString(KKW14301SFConst.KOZA_NO, X31CWebConst.DATABEAN_GET_VALUE);
			
			if (!"".equals(koza_no))
			{
				bean.sendMessageString(KKW14301SFConst.KOZA_NO, X31CWebConst.DATABEAN_SET_VALUE, 
						JZMCommonUtil.stdMaskAt9(koza_no, true));
			}
			
			// 通帳番号
			String tucho_no = bean.sendMessageString(KKW14301SFConst.TUCHO_NO, X31CWebConst.DATABEAN_GET_VALUE);
			
			if (!"".equals(tucho_no))
			{
				bean.sendMessageString(KKW14301SFConst.TUCHO_NO, X31CWebConst.DATABEAN_SET_VALUE, 
						JZMCommonUtil.stdMaskAt9(tucho_no, true));
			}
		}
		// ANK-2138-00-00 ADD END
// ANK-2565-00-00 ADD START
		// (f) 権限パターンが2、3、4の場合、クレジットカード番号預りIDのマスクを行う。
		if (pattern == 2 || pattern == 3 || pattern == 4)
		{
			// クレジットカード番号預りID
			String creAzkriId = bean.sendMessageString(KKW14301SFConst.CRECARD_NO_AZKRI_ID, X31CWebConst.DATABEAN_GET_VALUE);
			
			if (!"".equals(creAzkriId))
			{
				bean.sendMessageString(KKW14301SFConst.CRECARD_NO_AZKRI_ID, X31CWebConst.DATABEAN_SET_VALUE, 
						JZMCommonUtil.stdCrecard(creAzkriId));
			}
		}
// ANK-2565-00-00 ADD END
	}

	/**
	 * 権限設定により、マスク処理を行ないます。。
	 *  
	 * @return 権限パターン
	 */
	private int getDispAuthorityPattern()
	{
		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1) 権限情報の取得
		JCCAuthorityCtrlStatus.setAuthorityCtrl(this);
		X31SDataBeanAccessArray authorityList = commoninfoBean.getDataBeanArray(CommonInfoCFConst.REQUEST_AUTHORITY_LIST);

		// (2) リクエスト権限リストが設定されていない場合
		if (authorityList == null || authorityList.getCount() == 0)
		{
			return 4;
		}

		int retPtn = 0;
		boolean ptn1 = false;
		boolean ptn2 = false;
		boolean ptn3 = false;

		// (3) リクエスト権限リストより、権限の取得を行なう。
		for (int i = 0; i < authorityList.getCount(); i++)
		{
			// 権限リストの取得
			X31SDataBeanAccess authorityBean = authorityList.getDataBean(i);

			// リクエスト権限リスト リクエスト権限
			String authorityValue = authorityBean.sendMessageString(CommonInfoCFConst.REQUEST_AUTHORITY_03, X31CWebConst.DATABEAN_GET_VALUE);
			// リクエスト権限リスト リクエスト権限フラグ
			String authorityFlg = authorityBean.sendMessageString(CommonInfoCFConst.REQUEST_AUTHORITY_FLG_03, X31CWebConst.DATABEAN_GET_VALUE);

			// マスク対象のリクエスト権限リストではない場合
			if (!"MASK_SET".equals(authorityValue))
			{
				continue;
			}

			// (a) 権限パターン1の場合
			if ("1".equals(authorityFlg))
			{
				ptn1 = true;
			}
			// (b) 権限パターン2の場合
			else if ("2".equals(authorityFlg))
			{
				ptn2 = true;
			}
			// (c) 権限パターン3の場合
			else if ("3".equals(authorityFlg))
			{
				ptn3 = true;
			}
		}

		// 権限パターン1の場合
		if (ptn1)
		{
			retPtn = 1;
		}
		// 権限パターン2の場合
		else if (ptn2)
		{
			retPtn = 2;
		}
		// 権限パターン3の場合
		else if (ptn3)
		{
			retPtn = 3;
		}
		// 上記以外の場合
		else
		{
			retPtn = 4;
		}
		
		return retPtn;
	}
	
    /**
	 * サービスフォームBeanのクリア処理<br>
	 * <br>
	 * サービスフォームBeanの引継ぎ項目以外の値をクリアします。
	 * 引継ぎ項目：申込書番号
	 * 
	 */
	private void clearBean()
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// (1) 項目名のリストを取得する。
		String[] itemNameList = bean.getItemNameList();
		
		// (2) 値のクリアを行う。
		for (int i = 0; i < itemNameList.length; i++)
		{
			// (a) 引継項目の場合、値の保持を行う。
			if (isHktgItem(itemNameList[i]))
			{
				continue;
			}
			// (b) Array項目の場合、リストのクリアを行う。
			else if (isArrayItem(itemNameList[i]))
			{
				bean.getDataBeanArray(itemNameList[i]).clearArray();
			}
			// (c) 上記以外の場合、値のクリアを行う。
			else
			{
				bean.sendMessage(itemNameList[i], X31CWebConst.DATABEAN_CLEAR);
			}
		}
		return;

	}

    /**
	 * サービスフォームBeanのクリア処理（申込断面データ）<br>
	 * <br>
	 * サービスフォームBeanの申込断面データ項目以外の値をクリアします。
	 * 処理対象外項目：申込書番号
	 *                 申込断面種別コード
	 *                 申込断面コメント開閉区分
	 * 
	 */
	private void clearBeanMskmDmen()
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// (1) 項目名のリストを取得する。
		String[] itemNameList = bean.getItemNameList();
		
		// (2) 値のクリアを行う。
		for (int i = 0; i < itemNameList.length; i++)
		{
			// (a) クリア不要項目の場合、値の保持を行う。
			if (isNonClearItem(itemNameList[i]))
			{
				continue;
			}
			// (b) 引継項目の場合、値の保持を行う。
			if (isHktgItem(itemNameList[i]))
			{
				continue;
			}
			// (c) Array項目の場合、リストのクリアを行う。
			else if (isArrayItem(itemNameList[i]))
			{
				bean.getDataBeanArray(itemNameList[i]).clearArray();
			}
			// (d) 上記以外の場合、値のクリアを行う。
			else
			{
				bean.sendMessage(itemNameList[i], X31CWebConst.DATABEAN_CLEAR);
			}
		}
		return;

	}

	/**
	 * 引継項目判定処理.<br>
	 * 引継項目の判定を行う。
	 * 
	 * @param itemName 項目ID
	 * @return true:引継項目、false：引継項目以外
	 */
	private boolean isHktgItem(String itemName)
	{
		// (1) 項目名の判定を行い、引継項目の場合は、trueを返却し、引継項目以外の場合は、falseを返却する。
		return HKTG_ITEM_SET.contains(itemName);
	}

	/**
	 * Array項目判定処理.<br>
	 * Array項目の判定を行う。
	 * 
	 * @param itemName 項目ID
	 * @return true:Array項目、false：Array項目以外
	 */
	private boolean isArrayItem(String itemName)
	{
		// (1) 項目名の判定を行い、Array項目の場合は、trueを返却し、Array項目以外の場合は、falseを返却する。
		return ARRAY_ITEM_SET.contains(itemName);
	}

	/**
	 * クリア不要項目判定処理.<br>
	 * クリア不要項目の判定を行う。
	 * 
	 * @param itemName 項目ID
	 * @return true:クリア不要項目、false：クリア不要項目以外
	 */
	private boolean isNonClearItem(String itemName)
	{
		// (1) 項目名の判定を行い、Array項目の場合は、trueを返却し、Array項目以外の場合は、falseを返却する。
		return NON_CLEAR_ITEM_SET.contains(itemName);
	}

// ▼▼▼ ANK-3214-00-00 ADD START
	/**
	 * 申込断面が存在しない際の初期化処理
	 * <br>
	 * @param childMap お客様情報マップ
	 */
	private boolean initCustom(HashMap<String, Object> childMap)
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共有フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// (a) 画面情報取得部品(JKKWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		JKKWebCommon.getScreenInfo(this);

		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// (a)サービスフォームBeanの項目をクリアする。
		clearBean();
		// (a)サービスフォームBeanの項目をクリアする。
		bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_COMMENT_KBN, X31CWebConst.DATABEAN_SET_VALUE, "0");
		bean.sendMessageString(KKW14301SFConst.MSKM_DMEN_DTL_NO, X31CWebConst.DATABEAN_SET_VALUE, MSKM_DMEN_DTL_NO_SAI);

		// マッピングクラスの定義
		KKSV0540_KKSV0540OPDBMapper mapper = new KKSV0540_KKSV0540OPDBMapper();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		outputMap.put("JKKGETMSKMDMEN1RCC", childMap);
		
		// (2) サービス処理結果の設定
		clearBeanMskmDmen();
		mapper.getJKKGETMSKMDMEN1RCC(paramBean, outputMap);

		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_ID_KKW14301);

		// 遷移先画面名を共有フォームBeanに設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JKKScreenConst.SCREEN_NAME_KKW14301);

		return true;
		
	}
// △△△ ANK-3214-00-00 ADD START

	// ANK-3840-00-00 ADD START
	/**
	 * 定額サービス表示優先度.
	 * 
	 * <li>NET インターネット
	 * <li>TEL 電話
	 * <li>TV テレビ
	 * 
	 */
	private enum PRIORITY_COLUMN {NET, TEL, TV};
	/**
	 * 定額サービス編集.<br>
	 * 定額サービスを表示するオプション項目の振り分けと値の編集を行う。
	 */
	@SuppressWarnings("unchecked")
	private void editTegakSvc()
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
		// 運用日付を取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 業務パラメータからコード→名称変換用マップを作成
		// 業務パラメータの取得
		X31SDataBeanAccessArray workParamList = bean.getDataBeanArray(KKW14301SFConst.WORK_PARAM_TEGAK_SVC_INFOLIST);
		// コード→名称変換用マップ
		HashMap<String, String> henkanMap = new HashMap<String, String>();
		// 表示項目優先度マップ
		HashMap<String, HashMap<String, PRIORITY_COLUMN>> priorityMap = new HashMap<String, HashMap<String, PRIORITY_COLUMN>>();
		
		for (int i = 0; i < workParamList.getCount(); i++)
		{
			String workParamRow = workParamList.getDataBean(i).sendMessageString(KKW14301SFConst.WORK_PARAM_SETTE_VALUE_05, X31CWebConst.DATABEAN_GET_VALUE);
			// [0]契約種別コード,[1]機器種別コード,[2]定額サービス名,[3]優先度NET,[4]優先度TEL,[5]優先度TV,[6]適用開始年月日,[7]適用終了年月日
			String[] workParam = workParamRow.split(",");
			if(8 == workParam.length)
			{
				if(opeDate.compareTo(workParam[6]) >= 0 && opeDate.compareTo(workParam[7]) <= 0)
				{
					// コード→名称変換用マップを作成
					henkanMap.put((workParam[0].trim() + "/" + workParam[1].trim()), workParam[2]);
					
					// 表示項目優先度マップを作成
					HashMap<String, PRIORITY_COLUMN> priorityMapRow = new HashMap<String, PRIORITY_COLUMN>();
					if(bean.sendMessageBoolean(KKW14301SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE) &&
									!"".equals(workParam[3].trim()) && !priorityMapRow.containsKey(workParam[3].trim()))
					{
						priorityMapRow.put(workParam[3].trim(), PRIORITY_COLUMN.NET);
					}
					if(bean.sendMessageBoolean(KKW14301SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE) &&
									!"".equals(workParam[4].trim()) && !priorityMapRow.containsKey(workParam[4].trim()))
					{
						priorityMapRow.put(workParam[4].trim(), PRIORITY_COLUMN.TEL);
					}
					if(bean.sendMessageBoolean(KKW14301SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE) &&
									!"".equals(workParam[5].trim()) && !priorityMapRow.containsKey(workParam[5].trim()))
					{
						priorityMapRow.put(workParam[5].trim(), PRIORITY_COLUMN.TV);
					}
					priorityMap.put((workParam[0].trim() + "/" + workParam[1].trim()), priorityMapRow);
				}
			}
		}
		
		// 定額サービス（名称変換前）
		String tegakSvcDmen = bean.sendMessageString(KKW14301SFConst.TEGAK_SVC, X31CWebConst.DATABEAN_GET_VALUE);
		// オプション項目の文字列取得
		HashMap<PRIORITY_COLUMN, String> optionMap = new HashMap<PRIORITY_COLUMN, String>();
		optionMap.put(PRIORITY_COLUMN.NET, osBean.sendMessageString("オプション（ネット）", X31CWebConst.DATABEAN_GET_VALUE));
		optionMap.put(PRIORITY_COLUMN.TEL, osBean.sendMessageString("オプション1（電話）", X31CWebConst.DATABEAN_GET_VALUE));
		optionMap.put(PRIORITY_COLUMN.TV, bean.sendMessageString("ｅｏ光テレビガイド誌の定期購入お申込み冊数", X31CWebConst.DATABEAN_GET_VALUE));
		
		// コード→名称変換し優先度に従いオプション項目文字列に連結する
		String[] priorityNums = {"1", "2", "3"};
		if(!("".equals(tegakSvcDmen) || null == tegakSvcDmen))
		{
			String[] tegakSvcDmenList = tegakSvcDmen.split(",");
			for(int i = 0; i < tegakSvcDmenList.length; i++)
			{
				String tempTegakSvc = henkanMap.get(tegakSvcDmenList[i]);
				if(null == tempTegakSvc)
				{
					continue;
				}
				for(int j = 0; j < priorityNums.length; j++)
				{
					if(priorityMap.get(tegakSvcDmenList[i]).containsKey(priorityNums[j]))
					{
						String opStrTemp = optionMap.get(priorityMap.get(tegakSvcDmenList[i]).get(priorityNums[j]));
						if(!"".equals(opStrTemp.trim()))
						{
							opStrTemp += "、";
						}
						opStrTemp += tempTegakSvc;
						optionMap.put(priorityMap.get(tegakSvcDmenList[i]).get(priorityNums[j]), opStrTemp);
						break;
					}
				}
			}
		}
		// DataBeanに上書き
		osBean.sendMessageString("オプション（ネット）", X31CWebConst.DATABEAN_SET_VALUE, optionMap.get(PRIORITY_COLUMN.NET));
		osBean.sendMessageString("オプション1（電話）", X31CWebConst.DATABEAN_SET_VALUE, optionMap.get(PRIORITY_COLUMN.TEL));
		bean.sendMessageString("ｅｏ光テレビガイド誌の定期購入お申込み冊数", X31CWebConst.DATABEAN_SET_VALUE, optionMap.get(PRIORITY_COLUMN.TV));
	}
// ANK-3840-00-00 ADD END

// ANK-4468-00-00 ADD START
	/**
	 * コース選択項目編集.<br>
	 * 料金コース名からシンプルプランの判定を行う。
	 */
	@SuppressWarnings("unchecked")
	private void chkPcrsCd(X31SDataBeanAccess svcFormBean)
	{
		//シンプルプランの判定フラグ
		String simpleFlg = "0";
		// ANK-4427-00-00 ADD START
		String typeNFlg = "0";
		// ANK-4427-00-00 ADD END
		
		//料金コース名の取得
		String pcrsNm = svcFormBean.sendMessageString(KKW14301SFConst.COURSE_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		
		// シンプルプランの判定
			if (!(JKKStringUtil.isNullBlank(pcrsNm)) && pcrsNm.contains("シンプル"))
			{
				simpleFlg = "1";
			}
			// ANK-4427-00-00 ADD START
			else if (!(JKKStringUtil.isNullBlank(pcrsNm)) && (pcrsNm.contains("（ｔｙｐｅ　Ｎ）") || 
					Arrays.asList(COURSE_CHOICE_CDS).contains(pcrsNm)))
			{
				typeNFlg = "1";
			}
			// ANK-4427-00-00 ADD END
		
		svcFormBean.sendMessageString(KKW14301SFConst.SIMPLE_FLG, X31CWebConst.DATABEAN_SET_VALUE, simpleFlg);
		// ANK-4427-00-00 ADD START
		svcFormBean.sendMessageString(KKW14301SFConst.TYPEN_FLG, X31CWebConst.DATABEAN_SET_VALUE, typeNFlg);
		// ANK-4427-00-00 ADD END
	}
// ANK-4468-00-00 ADD END
}
