/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUChkAndChgAddressCC
*   ソースファイル名：JFUChkAndChgAddressCC.java
*   作成者          ：富士通
*   日付            ：2018年11月27日
*＜機能概要＞
*  契約状態チェック＆住所変更コモンコンポーネント部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v39.00      2018/11/27   FJ)岡井     【ANK-3477-00-00】eoマイページからのお客さま情報変更自動反映
*   v40.00      2019/01/15   FJ)岡井     【ANK-3477-01-00】eoマイページからのお客さま情報変更自動反映(コンテンツ住所更新)
*   v41.00      2019/04/16   FJ)岡井     【ANK-3612-00-00】eoマイページからのお客さま情報自動更新機能改善
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCCSuperComExecUtil;
import com.fujitsu.futurity.common.JCCSyslogFormat;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B009CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0031C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B001CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0251B502CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0251B502CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491B507CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491B507CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491B508CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491C060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg;

/**
 * 契約状態チェック＆住所変更部品です。
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUChkAndChgAddressCC extends JFUBaseCC
{
	/* ■□ EKK0251B502_回線利用場所毎サービス契約番号一覧照会SC ■□ */
	/** テンプレートID(回線利用場所毎サービス契約番号一覧照会) */
	private static final String TEMP_ID_EKK0251B502 = "EKK0251B502";
	/** テンプレートID(回線利用場所毎サービス契約番号一覧照会明細) */
	private static final String TEMP_ID_DTL_EKK0251B502 = EKK0251B502CBSMsg.EKK0251B502CBSMSG1LIST;
	/** IN項目リスト(回線利用場所毎サービス契約番号一覧照会) */
	private static final List<String> IN_LIST_EKK0251B502 = Arrays.asList(EKK0251B502CBSMsg.KEY_SYSID);
	/** 関連チェックエラー項目(回線利用場所毎サービス契約番号一覧照会) */
	private static final String ERR_EKK0251B502 = EKK0251B502CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(回線利用場所毎サービス契約番号一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK0251B502 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0251B502 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ ECK0011B009_お客様予約対象一覧照会SC ■□ */
	/** テンプレートID(お客様予約対象一覧照会) */
	private static final String TEMP_ID_ECK0011B009 = "ECK0011B009";
	/** テンプレートID(お客様予約対象一覧照会明細) */
	private static final String TEMP_ID_DTL_ECK0011B009 = ECK0011B009CBSMsg.ECK0011B009CBSMSG1LIST;
	/** IN項目リスト(お客様予約対象一覧照会) */
	private static final List<String> IN_LIST_ECK0011B009 = Arrays.asList(ECK0011B009CBSMsg.KEY_SYSID);
	/** 関連チェックエラー項目(お客様予約対象一覧照会) */
	private static final String ERR_ECK0011B009 = ECK0011B009CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(お客様予約対象一覧照会) */
	private static final String TEMP_TEMP_KEY_ECK0011B009 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_ECK0011B009 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK1681B001_異動予約一覧照会SC ■□ */
	/** テンプレートID(異動予約一覧照会) */
	private static final String TEMP_ID_EKK1681B001 = "EKK1681B001";
	/** テンプレートID(異動予約一覧照会明細) */
	private static final String TEMP_ID_DTL_EKK1681B001 = EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST;
	/** IN項目リスト(異動予約一覧照会) */
	private static final List<String> IN_LIST_EKK1681B001 = Arrays.asList(EKK1681B001CBSMsg.KEY_IDO_DIV, EKK1681B001CBSMsg.KEY_RSV_APLY_YMD,
			EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, EKK1681B001CBSMsg.KEY_SYSID);
	/** 関連チェックエラー項目(異動予約一覧照会) */
	private static final String ERR_EKK1681B001 = EKK1681B001CBSMsg.KEY_IDO_DIV_ERR;
	/** SC実行結果取得キー(異動予約一覧照会) */
	private static final String TEMP_TEMP_KEY_EKK1681B001 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK1681B001 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ ECK0011A010_お客様一意照会SC ■□ */
	/** テンプレートID(お客様一意照会) */
	private static final String TEMP_ID_ECK0011A010 = "ECK0011A010";
	/** テンプレートID(お客様一意照会明細) */
	private static final String TEMP_ID_DTL_ECK0011A010 = ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST;
	/** IN項目リスト(お客様一意照会) */
	private static final List<String> IN_LIST_ECK0011A010 = Arrays.asList(ECK0011A010CBSMsg.KEY_SYSID, ECK0011A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(お客様一意照会) */
	private static final String ERR_ECK0011A010 = ECK0011A010CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(お客様一意照会) */
	private static final String TEMP_TEMP_KEY_ECK0011A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_ECK0011A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ ECK0021A010_お客様＜個人＞一意照会SC ■□ */
	/** テンプレートID(お客様＜個人＞一意照会) */
	private static final String TEMP_ID_ECK0021A010 = "ECK0021A010";
	/** テンプレートID(お客様＜個人＞一意照会明細) */
	private static final String TEMP_ID_DTL_ECK0021A010 = ECK0021A010CBSMsg.ECK0021A010CBSMSG1LIST;
	/** IN項目リスト(お客様＜個人＞一意照会) */
	private static final List<String> IN_LIST_ECK0021A010 = Arrays.asList(ECK0021A010CBSMsg.KEY_SYSID);
	/** 関連チェックエラー項目(お客様＜個人＞一意照会) */
	private static final String ERR_ECK0021A010 = ECK0021A010CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(お客様＜個人＞一意照会) */
	private static final String TEMP_TEMP_KEY_ECK0021A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_ECK0021A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ ECK0021C010_お客様＜個人＞内容変更SC ■□ */
	/** テンプレートID(お客様＜個人＞内容変更) */
	private static final String TEMP_ID_ECK0021C010 = "ECK0021C010";
	/** テンプレートID(お客様＜個人＞内容変更明細) */
	private static final String TEMP_ID_DTL_ECK0021C010 = null;
	/** IN項目リスト(お客様＜個人＞内容変更) */
	private static final List<String> IN_LIST_ECK0021C010 =
			Arrays.asList(ECK0021C010CBSMsg.SYSID, ECK0021C010CBSMsg.CUST_NM, ECK0021C010CBSMsg.CUST_KANA, ECK0021C010CBSMsg.CUST_SEX_CD,
					ECK0021C010CBSMsg.CUST_BIRTHD, ECK0021C010CBSMsg.NM_KISHO, ECK0021C010CBSMsg.CUST_CFM_BIKO, ECK0021C010CBSMsg.KEISHA_AD_CD,
					ECK0021C010CBSMsg.KEISHA_PCD, ECK0021C010CBSMsg.KEISHA_STATE_NM, ECK0021C010CBSMsg.KEISHA_CITY_NM,
					ECK0021C010CBSMsg.KEISHA_OAZTSU_NM, ECK0021C010CBSMsg.KEISHA_AZCHO_NM, ECK0021C010CBSMsg.KEISHA_BNCHIGO,
					ECK0021C010CBSMsg.KEISHA_ADRTTM, ECK0021C010CBSMsg.KEISHA_ADRRM, ECK0021C010CBSMsg.KEISHA_TELNO, ECK0021C010CBSMsg.CUST_RANK_CD,
					ECK0021C010CBSMsg.RRK_WAY_CD, ECK0021C010CBSMsg.RRK_WAY_HOKI, ECK0021C010CBSMsg.CONT_CUST_NM, ECK0021C010CBSMsg.CONT_CUST_KANA,
					ECK0021C010CBSMsg.CONT_CUST_SEX_CD, ECK0021C010CBSMsg.CONT_CUST_BIRTHD, ECK0021C010CBSMsg.CONT_AD_CD, ECK0021C010CBSMsg.CONT_PCD,
					ECK0021C010CBSMsg.CONT_STATE_NM, ECK0021C010CBSMsg.CONT_CITY_NM, ECK0021C010CBSMsg.CONT_OAZTSU_NM,
					ECK0021C010CBSMsg.CONT_AZCHO_NM, ECK0021C010CBSMsg.CONT_BNCHIGO, ECK0021C010CBSMsg.CONT_ADRTTM, ECK0021C010CBSMsg.CONT_ADRRM,
					ECK0021C010CBSMsg.CONT_AD_BNKT_STA_PST, ECK0021C010CBSMsg.RSV_APLY_YMD, ECK0021C010CBSMsg.NAIHAN_GAIHAN_CD,
					ECK0021C010CBSMsg.NAIHAN_COMP_SKBT_CD, ECK0021C010CBSMsg.NECESSARY_HOJO_CD, ECK0021C010CBSMsg.EONETID_MI_IKO_FLG,
					ECK0021C010CBSMsg.LOGIN_NINSHO_KH, ECK0021C010CBSMsg.CUST_TKJK_CD, ECK0021C010CBSMsg.LOGIN_NINSHO_STP_YMD,
					ECK0021C010CBSMsg.MMB_SBT_TOKUT_FLG, ECK0021C010CBSMsg.OLD_EONETMB_NINSHO_ID, ECK0021C010CBSMsg.MMB_ISP_KSSAI_STAT_CD,
					ECK0021C010CBSMsg.DEL_TRGT_GAI_FLG, ECK0021C010CBSMsg.SHOKUGYO_CD, ECK0021C010CBSMsg.SHOKUGYO_OTHER, ECK0021C010CBSMsg.OFFC_NM,
					ECK0021C010CBSMsg.SCHOOL_NM, ECK0021C010CBSMsg.OFFC_GSHU_CD, ECK0021C010CBSMsg.OFFC_BUSHO_NM, ECK0021C010CBSMsg.OFFC_AD_CD,
					ECK0021C010CBSMsg.OFFC_PCD, ECK0021C010CBSMsg.OFFC_STATE_NM, ECK0021C010CBSMsg.OFFC_CITY_NM, ECK0021C010CBSMsg.OFFC_OAZTSU_NM,
					ECK0021C010CBSMsg.OFFC_AZCHO_NM, ECK0021C010CBSMsg.OFFC_BNCHIGO, ECK0021C010CBSMsg.OFFC_ADRTTM, ECK0021C010CBSMsg.OFFC_ADRRM,
					ECK0021C010CBSMsg.OFFC_TELNO, ECK0021C010CBSMsg.OFFC_NISNNO, ECK0021C010CBSMsg.OFFC_WORKER_CNT_SCALE,
					ECK0021C010CBSMsg.CUST_SALARY, ECK0021C010CBSMsg.SKSHA_NM, ECK0021C010CBSMsg.SKSHA_KANA, ECK0021C010CBSMsg.SKSHA_BIRTHD,
					ECK0021C010CBSMsg.SKSHA_ZOKUGARA_CD, ECK0021C010CBSMsg.ZOKUGARA_OTHER, ECK0021C010CBSMsg.SKSHA_AD_CD,
					ECK0021C010CBSMsg.SKSHA_PCD, ECK0021C010CBSMsg.SKSHA_STATE_NM, ECK0021C010CBSMsg.SKSHA_CITY_NM,
					ECK0021C010CBSMsg.SKSHA_OAZTSU_NM, ECK0021C010CBSMsg.SKSHA_AZCHO_NM, ECK0021C010CBSMsg.SKSHA_AD_BNCHIGO,
					ECK0021C010CBSMsg.SKSHA_ADRTTM, ECK0021C010CBSMsg.SKSHA_ADRRM, ECK0021C010CBSMsg.SKSHA_TELNO, ECK0021C010CBSMsg.UPD_DTM_BF,
					ECK0021C010CBSMsg.KEISHA_AD_MAN_INPUT_FLG, ECK0021C010CBSMsg.SKSHA_AD_MAN_INPUT_FLG, ECK0021C010CBSMsg.KEISHA_AD_CHK_LV,
					ECK0021C010CBSMsg.CONT_AD_CHK_LV, ECK0021C010CBSMsg.OFFC_AD_CHK_LV, ECK0021C010CBSMsg.SKSHA_AD_CHK_LV,
					ECK0021C010CBSMsg.CSSTI_SHS_AD_CD, ECK0021C010CBSMsg.CSSTI_SHS_PCD, ECK0021C010CBSMsg.CSSTI_SHS_STATE_NM,
					ECK0021C010CBSMsg.CSSTI_SHS_CITY_NM, ECK0021C010CBSMsg.CSSTI_SHS_OAZTSU_NM, ECK0021C010CBSMsg.CSSTI_SHS_AZCHO_NM,
					ECK0021C010CBSMsg.CSSTI_SHS_BNCHIGO, ECK0021C010CBSMsg.CSSTI_SHS_ADRTTM, ECK0021C010CBSMsg.CSSTI_SHS_ADRRM,
					ECK0021C010CBSMsg.CSSTI_SHS_AD_MAN_INPUT_FLG, ECK0021C010CBSMsg.CSSTI_SHS_AD_CHK_LV, ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_UM,
					ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_YMD, ECK0021C010CBSMsg.KEPG_KJNIFT_FFG, ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_YMD,
					ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD, ECK0021C010CBSMsg.KEPG_KJNIFT_JOKYO_CD, ECK0021C010CBSMsg.KEPG_KJNIFT_STAYMD,
					ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD, ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD_CHG_YMD, ECK0021C010CBSMsg.MMB_ISP_KSSAI_USE_JDG_CD,
					ECK0021C010CBSMsg.PAYWAY_CHG_TS_MSG_YOKSI_UM);
	/** 関連チェックエラー項目(お客様＜個人＞内容変更) */
	private static final String ERR_ECK0021C010 = ECK0021C010CBSMsg.SYSID_ERR;

	/* ■□ ECK0031A010_お客様＜法人＞一意照会SC ■□ */
	/** テンプレートID(お客様＜法人＞一意照会) */
	private static final String TEMP_ID_ECK0031A010 = "ECK0031A010";
	/** テンプレートID(お客様＜法人＞一意照会明細) */
	private static final String TEMP_ID_DTL_ECK0031A010 = ECK0031A010CBSMsg.ECK0031A010CBSMSG1LIST;
	/** IN項目リスト(お客様＜法人＞一意照会) */
	private static final List<String> IN_LIST_ECK0031A010 = Arrays.asList(ECK0031A010CBSMsg.KEY_SYSID);
	/** 関連チェックエラー項目(お客様＜法人＞一意照会) */
	private static final String ERR_ECK0031A010 = ECK0031A010CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(お客様＜法人＞一意照会) */
	private static final String TEMP_TEMP_KEY_ECK0031A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_ECK0031A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ ECK0031C010_お客様＜法人＞内容変更SC ■□ */
	/** テンプレートID(お客様＜法人＞内容変更) */
	private static final String TEMP_ID_ECK0031C010 = "ECK0031C010";
	/** テンプレートID(お客様＜法人＞内容変更明細) */
	private static final String TEMP_ID_DTL_ECK0031C010 = null;
	/** IN項目リスト(お客様＜法人＞内容変更) */
	private static final List<String> IN_LIST_ECK0031C010 =
			Arrays.asList(ECK0031C010CBSMsg.SYSID, ECK0031C010CBSMsg.CUST_NM, ECK0031C010CBSMsg.CUST_KANA, ECK0031C010CBSMsg.CUST_SEX_CD,
					ECK0031C010CBSMsg.CUST_BIRTHD, ECK0031C010CBSMsg.NM_KISHO, ECK0031C010CBSMsg.CUST_CFM_BIKO, ECK0031C010CBSMsg.KEISHA_AD_CD,
					ECK0031C010CBSMsg.KEISHA_PCD, ECK0031C010CBSMsg.KEISHA_STATE_NM, ECK0031C010CBSMsg.KEISHA_CITY_NM,
					ECK0031C010CBSMsg.KEISHA_OAZTSU_NM, ECK0031C010CBSMsg.KEISHA_AZCHO_NM, ECK0031C010CBSMsg.KEISHA_BNCHIGO,
					ECK0031C010CBSMsg.KEISHA_ADRTTM, ECK0031C010CBSMsg.KEISHA_ADRRM, ECK0031C010CBSMsg.KEISHA_TELNO, ECK0031C010CBSMsg.CUST_RANK_CD,
					ECK0031C010CBSMsg.RRK_WAY_CD, ECK0031C010CBSMsg.RRK_WAY_HOKI, ECK0031C010CBSMsg.CONT_CUST_NM, ECK0031C010CBSMsg.CONT_CUST_KANA,
					ECK0031C010CBSMsg.CONT_CUST_SEX_CD, ECK0031C010CBSMsg.CONT_CUST_BIRTHD, ECK0031C010CBSMsg.CONT_AD_CD, ECK0031C010CBSMsg.CONT_PCD,
					ECK0031C010CBSMsg.CONT_STATE_NM, ECK0031C010CBSMsg.CONT_CITY_NM, ECK0031C010CBSMsg.CONT_OAZTSU_NM,
					ECK0031C010CBSMsg.CONT_AZCHO_NM, ECK0031C010CBSMsg.CONT_BNCHIGO, ECK0031C010CBSMsg.CONT_ADRTTM, ECK0031C010CBSMsg.CONT_ADRRM,
					ECK0031C010CBSMsg.CONT_AD_BNKT_STA_PST, ECK0031C010CBSMsg.RSV_APLY_YMD, ECK0031C010CBSMsg.NAIHAN_GAIHAN_CD,
					ECK0031C010CBSMsg.NAIHAN_COMP_SKBT_CD, ECK0031C010CBSMsg.NECESSARY_HOJO_CD, ECK0031C010CBSMsg.LOGIN_NINSHO_KH,
					ECK0031C010CBSMsg.CUST_TKJK_CD, ECK0031C010CBSMsg.LOGIN_NINSHO_STP_YMD, ECK0031C010CBSMsg.MMB_SBT_TOKUT_FLG,
					ECK0031C010CBSMsg.OLD_EONETMB_NINSHO_ID, ECK0031C010CBSMsg.MMB_ISP_KSSAI_STAT_CD, ECK0031C010CBSMsg.DEL_TRGT_GAI_FLG,
					ECK0031C010CBSMsg.HOJIN_SBT_CD, ECK0031C010CBSMsg.HOJIN_ZENGO_SHITEI_CD, ECK0031C010CBSMsg.COMP_NM, ECK0031C010CBSMsg.COMP_KANA,
					ECK0031C010CBSMsg.DIHYSHA_POST_NM, ECK0031C010CBSMsg.GSHU_CD, ECK0031C010CBSMsg.UPD_DTM_BF,
					ECK0031C010CBSMsg.KEISHA_AD_MAN_INPUT_FLG, ECK0031C010CBSMsg.KEISHA_AD_CHK_LV, ECK0031C010CBSMsg.CONT_AD_CHK_LV,
					ECK0031C010CBSMsg.CSSTI_SHS_AD_CD, ECK0031C010CBSMsg.CSSTI_SHS_PCD, ECK0031C010CBSMsg.CSSTI_SHS_STATE_NM,
					ECK0031C010CBSMsg.CSSTI_SHS_CITY_NM, ECK0031C010CBSMsg.CSSTI_SHS_OAZTSU_NM, ECK0031C010CBSMsg.CSSTI_SHS_AZCHO_NM,
					ECK0031C010CBSMsg.CSSTI_SHS_BNCHIGO, ECK0031C010CBSMsg.CSSTI_SHS_ADRTTM, ECK0031C010CBSMsg.CSSTI_SHS_ADRRM,
					ECK0031C010CBSMsg.CSSTI_SHS_AD_MAN_INPUT_FLG, ECK0031C010CBSMsg.CSSTI_SHS_AD_CHK_LV, ECK0031C010CBSMsg.DIHYSHA_NM,
					ECK0031C010CBSMsg.DIHYSHA_KANA, ECK0031C010CBSMsg.KEPG_KJNIF_TRAT_DOI_UM, ECK0031C010CBSMsg.KEPG_KJNIF_TRAT_DOI_YMD,
					ECK0031C010CBSMsg.KEPG_KJNIFT_FFG, ECK0031C010CBSMsg.KEPG_KJNIFT_FFG_CHG_YMD, ECK0031C010CBSMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD,
					ECK0031C010CBSMsg.KEPG_KJNIFT_JOKYO_CD, ECK0031C010CBSMsg.KEPG_KJNIFT_STAYMD, ECK0031C010CBSMsg.KEPG_KJNIFT_RSCD,
					ECK0031C010CBSMsg.KEPG_KJNIFT_RSCD_CHG_YMD);
	/** 関連チェックエラー項目(お客様＜法人＞内容変更) */
	private static final String ERR_ECK0031C010 = ECK0031C010CBSMsg.SYSID_ERR;

	/* ■□ EKK0491B507_請求契約一覧照会（サービス契約番号）SC ■□ */
	/** テンプレートID(請求契約一覧照会（サービス契約番号）) */
	private static final String TEMP_ID_EKK0491B507 = "EKK0491B507";
	/** テンプレートID(請求契約一覧照会（サービス契約番号）明細) */
	private static final String TEMP_ID_DTL_EKK0491B507 = EKK0491B507CBSMsg.EKK0491B507CBSMSG1LIST;
	/** IN項目リスト(請求契約一覧照会（サービス契約番号）) */
	private static final List<String> IN_LIST_EKK0491B507 = Arrays.asList(EKK0491B507CBSMsg.KEY_SVC_KEI_NO);
	/** 関連チェックエラー項目(請求契約一覧照会（サービス契約番号）) */
	private static final String ERR_EKK0491B507 = EKK0491B507CBSMsg.KEY_SVC_KEI_NO_ERR;
	/** SC実行結果取得キー(請求契約一覧照会（サービス契約番号）) */
	private static final String TEMP_TEMP_KEY_EKK0491B507 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0491B507 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 請求契約一覧照会（予約手続中） ■□ */
	/** テンプレートID(請求契約一覧照会（予約手続中）) */
	private static final String TEMPLATE_ID_EKK0491B508 = "EKK0491B508";
	/** テンプレートID(請求契約一覧照会（予約手続中）明細) */
	private static final String TEMPLATE_ID_EKK0491B508_DETAIL = EKK0491B508CBSMsg.EKK0491B508CBSMSG1LIST;
	/** IN項目リスト(請求契約一覧照会（予約手続中）) */
	private static final List<String> IN_COLUMN_LIST_EKK0491B508 = Arrays.asList(EKK0491B508CBSMsg.KEY_SYSID);
	/** 関連チェックエラー項目(請求契約一覧照会（予約手続中）) */
	private static final String ERROR_COLUMN_EKK0491B508 = EKK0491B508CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(請求契約一覧照会（予約手続中）) */
	private static final String TEMP_TEMPLATE_KEY_EKK0491B508 = TEMP_TEMPLATE_PRIFIX + TEMPLATE_ID_EKK0491B508 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK0491A010_請求契約一意照会SC ■□ */
	/** テンプレートID(請求契約一意照会) */
	private static final String TEMP_ID_EKK0491A010 = "EKK0491A010";
	/** テンプレートID(請求契約一意照会明細) */
	private static final String TEMP_ID_DTL_EKK0491A010 = EKK0491A010CBSMsg.EKK0491A010CBSMSG1LIST;
	/** IN項目リスト(請求契約一意照会) */
	private static final List<String> IN_LIST_EKK0491A010 = Arrays.asList(EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO, EKK0491A010CBSMsg.KEY_RSV_APLY_YMD);
	/** 関連チェックエラー項目(請求契約一意照会) */
	private static final String ERR_EKK0491A010 = EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO;
	/** SC実行結果取得キー(請求契約一意照会) */
	private static final String TEMP_TEMP_KEY_EKK0491A010 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0491A010 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ EKK0491C060_請求契約内容変更SC ■□ */
	/** テンプレートID(請求契約内容変更) */
	private static final String TEMP_ID_EKK0491C060 = "EKK0491C060";
	/** テンプレートID(請求契約内容変更明細) */
	private static final String TEMP_ID_DTL_EKK0491C060 = null;
	/** IN項目リスト(請求契約内容変更) */
	private static final List<String> IN_LIST_EKK0491C060 =
			Arrays.asList(EKK0491C060CBSMsg.SEIKY_KEI_NO, EKK0491C060CBSMsg.MSKM_DTL_NO, EKK0491C060CBSMsg.SEIKY_KEI_KANA,
					EKK0491C060CBSMsg.INFO_DSP_CD, EKK0491C060CBSMsg.SEIKYUS_HAKKO_YH, EKK0491C060CBSMsg.SKS_SHS_KSH_AD_SAI_FLG,
					EKK0491C060CBSMsg.SKS_SHS_NM_CUST_NM_SAI_FLG, EKK0491C060CBSMsg.SHS_HOJIN_SBT_CD, EKK0491C060CBSMsg.SHS_HOJIN_ZENGO_SHITEI_CD,
					EKK0491C060CBSMsg.SHS_KANA, EKK0491C060CBSMsg.SOHUS_NM, EKK0491C060CBSMsg.SOHUS_BKM, EKK0491C060CBSMsg.SOHUS_TNTSHA_NM,
					EKK0491C060CBSMsg.SOHUS_AD_CD, EKK0491C060CBSMsg.SOHUS_PCD, EKK0491C060CBSMsg.SOHUS_STATE_NM, EKK0491C060CBSMsg.SOHUS_CITY_NM,
					EKK0491C060CBSMsg.SOHUS_OAZTSU_NM, EKK0491C060CBSMsg.SOHUS_AZCHO_NM, EKK0491C060CBSMsg.SOHUS_ADRTTM,
					EKK0491C060CBSMsg.SOHUS_ADRRM, EKK0491C060CBSMsg.SOHUS_BNCHIGO, EKK0491C060CBSMsg.SOHUS_TELNO, EKK0491C060CBSMsg.SOHUS_FAX_NO,
					EKK0491C060CBSMsg.SOHUS_MLAD, EKK0491C060CBSMsg.SEIKYUS_SOHUS_CHGE_YMD, EKK0491C060CBSMsg.SEIKY_WAY_APLY_ADJ_YMD,
					EKK0491C060CBSMsg.RSV_TSTA_KIBO_YMD, EKK0491C060CBSMsg.RSV_APLY_YMD, EKK0491C060CBSMsg.IDO_DIV, EKK0491C060CBSMsg.FIRST_SEIKY_YM,
					EKK0491C060CBSMsg.FIRST_PAY_MSKMSHO_SOHU_YH, EKK0491C060CBSMsg.FIRST_PAY_MSKMSHO_SOHU_YMD,
					EKK0491C060CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD, EKK0491C060CBSMsg.UPD_DTM_BF, EKK0491C060CBSMsg.SOHUS_AD_MAN_INPUT_FLG,
					EKK0491C060CBSMsg.SOHUS_AD_CHK_LV, EKK0491C060CBSMsg.HKTGIM_RSV_APLY_YMD);
	/** 関連チェックエラー項目(請求契約内容変更) */
	private static final String ERR_EKK0491C060 = EKK0491C060CBSMsg.SEIKY_KEI_NO_ERR;

	/* ■□ EKK0081B002_サービス契約一覧照会（SYSID）SC ■□ */
	/** テンプレートID(サービス契約一覧照会（SYSID）) */
	private static final String TEMP_ID_EKK0081B002 = "EKK0081B002";
	/** テンプレートID(サービス契約一覧照会（SYSID）明細) */
	private static final String TEMP_ID_DTL_EKK0081B002 = EKK0081B002CBSMsg.EKK0081B002CBSMSG1LIST;
	/** IN項目リスト(サービス契約一覧照会（SYSID）) */
	private static final List<String> IN_LIST_EKK0081B002 = Arrays.asList(EKK0081B002CBSMsg.KEY_SYSID);
	/** 関連チェックエラー項目(サービス契約一覧照会（SYSID）) */
	private static final String ERR_EKK0081B002 = EKK0081B002CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(サービス契約一覧照会（SYSID）) */
	private static final String TEMP_TEMP_KEY_EKK0081B002 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_EKK0081B002 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ ECK0201B001_連絡先一覧照会SC ■□ */
	/** テンプレートID(連絡先一覧照会) */
	private static final String TEMP_ID_ECK0201B001 = "ECK0201B001";
	/** テンプレートID(連絡先一覧照会明細) */
	private static final String TEMP_ID_DTL_ECK0201B001 = ECK0201B001CBSMsg.ECK0201B001CBSMSG1LIST;
	/** IN項目リスト(連絡先一覧照会) */
	private static final List<String> IN_LIST_ECK0201B001 = Arrays.asList(ECK0201B001CBSMsg.KEY_SYSID, ECK0201B001CBSMsg.KEY_RRKS_CD,
			ECK0201B001CBSMsg.KEY_RRK_WAY_CD, ECK0201B001CBSMsg.KEY_RRKS_SBT_CD);
	/** 関連チェックエラー項目(連絡先一覧照会) */
	private static final String ERR_ECK0201B001 = ECK0201B001CBSMsg.KEY_SYSID_ERR;
	/** SC実行結果取得キー(連絡先一覧照会) */
	private static final String TEMP_TEMP_KEY_ECK0201B001 = TEMP_TEMPLATE_PRIFIX + TEMP_ID_ECK0201B001 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ ECK0201C010_連絡先情報変更SC ■□ */
	/** テンプレートID(連絡先情報変更) */
	private static final String TEMP_ID_ECK0201C010 = "ECK0201C010";
	/** テンプレートID(連絡先情報変更明細) */
	private static final String TEMP_ID_DTL_ECK0201C010 = null;
	/** IN項目リスト(連絡先情報変更) */
	private static final List<String> IN_LIST_ECK0201C010 = Arrays.asList(ECK0201C010CBSMsg.RRKS_NO, ECK0201C010CBSMsg.RRKS_SBT_CD,
			ECK0201C010CBSMsg.TELNO, ECK0201C010CBSMsg.NISNNO, ECK0201C010CBSMsg.FAX_NO, ECK0201C010CBSMsg.RSV_APLY_YMD, ECK0201C010CBSMsg.UPD_DTM_BF);
	/** 関連チェックエラー項目(連絡先情報変更) */
	private static final String ERR_ECK0201C010 = ECK0201C010CBSMsg.RRKS_NO_ERR;

	/* ■□ IN項目 ■□ */
	/** IN：SYSID */
	private static final String IN_SYSID = "in_sysid";
	/** IN：契約者タイプコード */
	private static final String IN_KEISHA_TYPE_CD = "in_keisha_type_cd";
	/** IN：申込明細番号 */
	private static final String IN_MSKM_DTL_NO = "in_mskm_dtl_no";
	/** IN：異動区分 */
	private static final String IN_IDO_DIV = "in_ido_div";
	/** IN：契約者住所補記・建物名 */
	private static final String IN_KEISHA_ADRTTM = "in_keisha_adrttm";
	/** IN：契約者住所補記・部屋番号 */
	private static final String IN_KEISHA_ADRRM = "in_keisha_adrrm";
	/** IN：契約者電話番号 */
	private static final String IN_KEISHA_TELNO = "in_keisha_telno";
	/** IN：住所分割取得先ID */
	private static final String IN_GET_ADDRESS_ID = "in_get_address_id";

	/** IN：契約者都道府県名・市区町村名(変更前) */
	private static final String IN_KEISHA_STATE_CITY_BF = "in_keisha_state_city_bf";
	/** IN：契約者字(変更前) */
	private static final String IN_KEISHA_AZA_BF = "in_keisha_aza_bf";
	/** IN：契約者丁目・番地号(変更前) */
	private static final String IN_KEISHA_CHOME_BNCHIGO_BF = "in_keisha_chome_bnchigo_bf";
	/** IN：契約者住所補記・建物名(変更前) */
	private static final String IN_KEISHA_ADRTTM_BF = "in_keisha_adrttm_bf";
	/** IN：契約者住所補記・部屋番号(変更前) */
	private static final String IN_KEISHA_ADRRM_BF = "in_keisha_adrrm_bf";

	/** 住所分割CC：住所コード */
	private static final String AD_CD = "ad_cd";
	/** 住所分割CC：郵便番号 */
	private static final String PCD = "pcd";
	/** 住所分割CC：都道府県名 */
	private static final String STATE_NM = "state_nm";
	/** 住所分割CC：市区町村名 */
	private static final String CITY_NM = "city_nm";
	/** 住所分割CC：大字通称名 */
	private static final String OAZTSU_NM = "oaztsu_nm";
	/** 住所分割CC：字丁目名 */
	private static final String AZCHO_NM = "azcho_nm";
	/** 住所分割CC：番地 */
	private static final String AFTER_BNCHI = "after_bnchi";

	/* ■□ OUT項目 ■□ */
	/** OUT：mineoチェック結果 */
	private static final String OUT_MINEO_CHK_RESULT = "out_mineo_chk_result";
	/** OUT：お客様予約チェック結果 */
	private static final String OUT_CUST_RSV_CHK_RESULT = "out_cust_rsv_chk_result";

	/* ■□ その他 ■□ */
	/** ワークエリアID */
	private static final String CC_WORK_AREA_NAME_MSKM = "JFUAddMskmSCWork";
	/** 申込明細番号 ネット */
	private static final String MSKM_DTL_NO_NET = "ekk0091_mskm_dtl_no";
	/** 申込明細番号 電話 */
	private static final String MSKM_DTL_NO_TEL = "ekk0111_mskm_dtl_no";
	/** 申込明細番号 テレビ */
	private static final String MSKM_DTL_NO_TV = "ekk0101_mskm_dtl_no";
	/** コンテンツ番地号 */
	private static final String CONT_BNCHIGO = "cont_bnchigo";
	/** コンテンツ建物名 */
	private static final String CONT_ADRTTM = "cont_adrttm";
	/** コンテンツ部屋番号 */
	private static final String CONT_ADRRM = "cont_adrrm";
	/** コンテンツ分割開始位置 */
	private static final String CONT_AD_BNKT_STA_PST = "cont_ad_bnkt_sta_pst";

	/** チェック結果 0：OK */
	private static final String CHK_RESULT_OK = "0";
	/** チェック結果 1：NG */
	private static final String CHK_RESULT_NG = "1";
	/** 文字列：_err */
	private static final String STR_ERR = "_err";

	/** mineoチェックNGサービス契約ステータスリスト */
	private static final List<String> MINEO_NG_SVC_KEI_STAT_LIST = Arrays.asList(JFUStrConst.CD01616_010,
			JFUStrConst.CD01616_020, JFUStrConst.CD01616_030);
	/** サービス契約ステータス対象外リスト */
	private static final List<String> SVC_KEI_STAT_OUT_LIST = Arrays.asList(JFUStrConst.CD01616_910, JFUStrConst.CD01616_920);

	/** 契約者住所(変更前)取得項目リスト **/
	private static final List<String> KSH_ADRS_BF_ITEM_LIST = Arrays.asList(IN_KEISHA_STATE_CITY_BF, IN_KEISHA_AZA_BF,
			IN_KEISHA_CHOME_BNCHIGO_BF, IN_KEISHA_ADRTTM_BF, IN_KEISHA_ADRRM_BF);
	/** 請求書送付先住所取得項目リスト **/
	private static final List<String> SOFUS_ADRS_ITEM_LIST = Arrays.asList(EKK0491B507CBSMsg1List.SOHUS_STATE_NM,
			EKK0491B507CBSMsg1List.SOHUS_CITY_NM, EKK0491B507CBSMsg1List.SOHUS_OAZTSU_NM, EKK0491B507CBSMsg1List.SOHUS_AZCHO_NM,
			EKK0491B507CBSMsg1List.SOHUS_BNCHIGO, EKK0491B507CBSMsg1List.SOHUS_ADRTTM, EKK0491B507CBSMsg1List.SOHUS_ADRRM);

	/** 対象外項目リスト **/
	private static final List<String> TG_OUT_ITEM_LIST = Arrays.asList("add_dtm", "add_opeacnt", "upd_dtm", "upd_opeacnt", "mk_flg");

	/** お客様異動予約検索条件 **/
	private static final String[][] CUST_IDO_RSV_CHK_MAP = {
		{JFUStrConst.CD00576_00012, "1", "04"},
		{JFUStrConst.CD00576_00013, "",  "00,03"},
		{JFUStrConst.CD00576_00014, "",  "00,03"}
	};

	/** 番地号の最大文字数 */
	private static final int MAX_LEN_BNCHIGO = 61;
	/** 建物名の最大文字数 */
	private static final int MAX_LEN_ADRTTM = 45;
	/** 部屋番号の最大文字数 */
	private static final int MAX_LEN_ADRRM = 15;
	/** 住所登録時エラーメッセージ */
	private static final String MESLOG_ADDRESS = "設定された住所が最大桁数を超えています。コンテンツ住所を再登録してください。";

	/* ■□ エラー項目 ■□ */
	/** mineo契約状態チェックNG */
	private static final String MINEO_STAT_ERR = "mineo_stat_err";
	/** お客様予約チェックNG */
	private static final String CUST_RSV_ERR = "cust_rsv_err";

	/**
	 * チェック処理（共通処理）です。
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}

	/**
	 * 契約状態チェック処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception
	 */
	public IRequestParameterReadWrite doChk(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// リクエストパラメータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		if (inMap == null || inMap.size() == 0)
		{
			// 情報が存在しない場合
			return param;
		}

		// ●mineo契約状態チェック
		String mineoChkResult = chkMineoStat(handle, param, fixedText);

		// ●お客様予約チェック
		String custRsvChkResult = chkCustRsv(handle, param, fixedText);

		// ●チェック結果を設定
		// mineo契約状態チェック結果
		inMap.put(OUT_MINEO_CHK_RESULT, mineoChkResult);
		// お客様予約チェック結果
		inMap.put(OUT_CUST_RSV_CHK_RESULT, custRsvChkResult);

		return param;
	}

	/**
	 * 契約状態チェック＆住所変更処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Exception 例外
	 */
	public IRequestParameterReadWrite doChkAndChg(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// リクエストパラメータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		if (inMap == null || inMap.size() == 0)
		{
			// 情報が存在しない場合
			return param;
		}

		// ●mineo契約状態チェック
		String mineoChkResult = chkMineoStat(handle, param, fixedText);

		if(CHK_RESULT_NG.equals(mineoChkResult))
		{
			// mineo契約状態チェックがNGの場合、関連チェックを返却する。
			outputBusLog("■■■ JFUChkAndChgAddressCC mineo契約状態チェック：NG ■■■");
			setRelationErrorInfo(param, TEMP_ID_EKK0251B502, MINEO_STAT_ERR, fixedText);
			throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)),
					String.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
		}

		// ●お客様予約チェック
		String custRsvChkResult = chkCustRsv(handle, param, fixedText);

		if(CHK_RESULT_NG.equals(custRsvChkResult))
		{
			// お客様予約チェックがNGの場合、関連チェックを返却する。
			outputBusLog("■■■ JFUChkAndChgAddressCC お客様予約チェック：NG ■■■");
			setRelationErrorInfo(param, TEMP_ID_ECK0011B009, CUST_RSV_ERR, fixedText);
			throw new SCCallException(String.valueOf(param.getControlMapData(SCControlMapKeys.RETURN_MESSAGE)),
					String.valueOf(RETURN_CODE_NORMAL), JPCModelConstant.RELATION_ERR);
		}

		// ●お客様情報更新処理
		// 契約者タイプコード
		String keishaTypeCd = (String)inMap.get(IN_KEISHA_TYPE_CD);
		// コンテンツ同意有無
		boolean contDoiUm = getContDoiUm(handle, param, fixedText);

		if(JFUStrConst.CD00036_1.equals(keishaTypeCd))
		{
			// 個人
			chkAndChgKeishaAddressKojin(handle, param, fixedText, contDoiUm);
		}
		else if(JFUStrConst.CD00036_2.equals(keishaTypeCd))
		{
			// 法人
			chkAndChgKeishaAddressHojin(handle, param, fixedText, contDoiUm);
		}
		else
		{
			// 上記以外は処理しない
			return param;
		}

		// ●請求契約情報更新処理
		chkAndChgSofusAdrs(handle, param, fixedText);

		return param;
	}

	/**
	 * mineo契約状態チェック処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return チェック結果
	 * @throws Exception 例外
	 */
	private String chkMineoStat(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// チェック結果
		String result = CHK_RESULT_OK;

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●回線利用場所毎サービス契約番号一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_EKK0251B502);
		// 上りマッピング
		setEKK0251B502(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0251B502, TEMP_ID_DTL_EKK0251B502, IN_LIST_EKK0251B502, ERR_EKK0251B502);
		// 結果取得
		List<HashMap> eKK0251B502List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0251B502), TEMP_ID_DTL_EKK0251B502);

		if(eKK0251B502List == null || eKK0251B502List.size() == 0)
		{
			return result;
		}

		// mineo契約状態チェック
		for (int i = 0; i < eKK0251B502List.size(); i++)
		{
			HashMap eKK0251B502Map = eKK0251B502List.get(i);

			if(eKK0251B502Map == null || eKK0251B502Map.size() == 0)
			{
				continue;
			}

			// 料金グループコード
			String prcGrpCd = (String)eKK0251B502Map.get(EKK0251B502CBSMsg1List.PRC_GRP_CD);
			// サービス契約ステータス
			String svcKeiStat = (String)eKK0251B502Map.get(EKK0251B502CBSMsg1List.SVC_KEI_STAT);

			if(SVC_KEI_STAT_OUT_LIST.contains(svcKeiStat))
			{
				// サービス契約ステータスが910,920は対象外
				continue;
			}

			if(JFUStrConst.CD00133_51.equals(prcGrpCd) && MINEO_NG_SVC_KEI_STAT_LIST.contains(svcKeiStat))
			{
				// サービス契約ステータスが"100"未満のmineoが1つでも存在する場合はNG
				result = CHK_RESULT_NG;
				break;
			}
		}

		return result;
	}

	/**
	 * お客様予約チェック処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return チェック結果
	 * @throws Exception 例外
	 */
	private String chkCustRsv(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// チェック結果
		String result = CHK_RESULT_OK;

		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●お客様予約対象一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0011B009);
		// 上りマッピング
		setECK0011B009(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0011B009, TEMP_ID_DTL_ECK0011B009, IN_LIST_ECK0011B009, ERR_ECK0011B009);
		// 結果取得
		List<HashMap> eCK0011B009List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_ECK0011B009), TEMP_ID_DTL_ECK0011B009);

		if(eCK0011B009List != null && eCK0011B009List.size() > 0)
		{
			// お客様予約ありの場合はNG
			return CHK_RESULT_NG;
		}

		// 異動予約チェック
		for (int i = 0; i < CUST_IDO_RSV_CHK_MAP.length; i++)
		{
			String[] info = CUST_IDO_RSV_CHK_MAP[i];

			// 異動区分
			String idoDiv = info[0];

			// 予約適用年月日
			String date = JFUStrConst.EMPTY;
			if (!JFUBPCommon.isNull(info[1]))
			{
				date = JFUBPCommon.getOpeDate(null);
			}

			// 異動予約状態コード
			String statCd = info[2];

			// ●異動予約一覧照会
			// ユーザデータ初期化
			initData(param, fixedText, IN_LIST_EKK1681B001);
			// 上りマッピング
			setEKK1681B001(param, fixedText, idoDiv, date, statCd);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK1681B001, TEMP_ID_DTL_EKK1681B001, IN_LIST_EKK1681B001, ERR_EKK1681B001);
			// 結果取得
			List<HashMap> eKK1681B001List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK1681B001), TEMP_ID_DTL_EKK1681B001);

			if (eKK1681B001List != null && eKK1681B001List.size() > 0)
			{
				// お客様予約ありの場合はNG
				return CHK_RESULT_NG;
			}
		}

		return result;
	}

	/**
	 * 契約者情報チェック＆住所更新＜個人＞処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param contDoiUm コンテンツ同意有無
	 * @throws Exception 例外
	 */
	private void chkAndChgKeishaAddressKojin(SessionHandle handle, IRequestParameterReadWrite param, String fixedText,
			boolean contDoiUm) throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●お客様一意照会(カレント)
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0011A010);
		// 上りマッピング
		setECK0011A010(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0011A010, TEMP_ID_DTL_ECK0011A010, IN_LIST_ECK0011A010, ERR_ECK0011A010);
		// 結果取得
		List<HashMap> eCK0011A010List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_ECK0011A010), TEMP_ID_DTL_ECK0011A010);

		if(eCK0011A010List == null || eCK0011A010List.size() == 0)
		{
			return;
		}

		// ●お客様＜個人＞一意照会(カレント)
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0021A010);
		// 上りマッピング
		setECK0021A010(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0021A010, TEMP_ID_DTL_ECK0021A010, IN_LIST_ECK0021A010, ERR_ECK0021A010);
		// 結果取得
		List<HashMap> eCK0021A010List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_ECK0021A010), TEMP_ID_DTL_ECK0021A010);

		if(eCK0021A010List == null || eCK0021A010List.size() == 0)
		{
			return;
		}

		// お客様情報取得(カレントなので0番目を取得)
		HashMap custInfo = eCK0011A010List.get(0);
		HashMap custKojinInfo = eCK0021A010List.get(0);

		// ●お客様＜個人＞内容変更
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0021C010);
		// 上りマッピング
		setECK0021C010(param, fixedText, custInfo, custKojinInfo, contDoiUm);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0021C010, TEMP_ID_DTL_ECK0021C010, IN_LIST_ECK0021C010, ERR_ECK0021C010);

		// ●コンテンツ電話番号更新処理
		chgContTelNo(handle, param, fixedText, contDoiUm);
	}

	/**
	 * 契約者情報チェック＆住所更新＜法人＞処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception 例外
	 */
	private void chkAndChgKeishaAddressHojin(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, boolean contDoiUm)
		throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ●お客様一意照会(カレント)
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0011A010);
		// 上りマッピング
		setECK0011A010(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0011A010, TEMP_ID_DTL_ECK0011A010, IN_LIST_ECK0011A010, ERR_ECK0011A010);
		// 結果取得
		List<HashMap> eCK0011A010List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_ECK0011A010), TEMP_ID_DTL_ECK0011A010);

		if(eCK0011A010List == null || eCK0011A010List.size() == 0)
		{
			// お客様情報が無いことはないが、念のため入れておく
			return;
		}

		// ●お客様＜法人＞一意照会(カレント)
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0031A010);
		// 上りマッピング
		setECK0031A010(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0031A010, TEMP_ID_DTL_ECK0031A010, IN_LIST_ECK0031A010, ERR_ECK0031A010);
		// 結果取得
		List<HashMap> eCK0031A010List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_ECK0031A010), TEMP_ID_DTL_ECK0031A010);

		if(eCK0031A010List == null || eCK0031A010List.size() == 0)
		{
			// お客様情報が無いことはないが、念のため入れておく
			return;
		}

		// お客様情報取得(カレントなので0番目を取得)
		HashMap custInfo = eCK0011A010List.get(0);
		HashMap custHojinInfo = eCK0031A010List.get(0);

		// ●お客様＜法人＞内容変更
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0031C010);
		// 上りマッピング
		setECK0031C010(param, fixedText, custInfo, custHojinInfo, contDoiUm);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0031C010, TEMP_ID_DTL_ECK0031C010, IN_LIST_ECK0031C010, ERR_ECK0031C010);

		// ●コンテンツ電話番号更新処理
		chgContTelNo(handle, param, fixedText, contDoiUm);
	}

	/**
	 * コンテンツ電話番号の更新処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param contDoiUm コンテンツ同意有無
	 * @throws Exception
	 */
	private void chgContTelNo(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, boolean contDoiUm)
		throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		if(!contDoiUm)
		{
			// コンテンツが未同意の場合は処理しない
			return;
		}

		// 連絡先番号(コンテンツ電話番号)
		String contTelRrksNo = JFUStrConst.EMPTY;

		// ●連絡先一覧照会
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0201B001);
		// 上りマッピング
		setECK0201B001(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0201B001, TEMP_ID_DTL_ECK0201B001, IN_LIST_ECK0201B001, ERR_ECK0201B001);
		// 結果取得
		List<HashMap> eCK0201B001List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_ECK0201B001), TEMP_ID_DTL_ECK0201B001);

		if(eCK0201B001List == null || eCK0201B001List.size() == 0)
		{
			return;
		}

		for (int i = 0; i < eCK0201B001List.size(); i++)
		{
			HashMap eCK0201B001Map = eCK0201B001List.get(i);
			if(eCK0201B001Map == null || eCK0201B001Map.size() == 0)
			{
				continue;
			}

			// 連絡先番号
			String rrksNo = (String)eCK0201B001Map.get(ECK0201B001CBSMsg1List.RRKS_NO);
			// 連絡先分類コード
			String rrksBunruiCd = (String)eCK0201B001Map.get(ECK0201B001CBSMsg1List.RRKS_BUNRUI_CD);

			if(JFUStrConst.CD00871_1.equals(rrksBunruiCd))
			{
				// コンテンツ電話番号の連絡先番号を設定
				contTelRrksNo = rrksNo;
				break;
			}
		}

		if(JFUBPCommon.isNull(contTelRrksNo))
		{
			// 連絡先番号が未設定の場合は処理しない
			return;
		}

		// ●お客様一意照会(カレント)
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0011A010);
		// 上りマッピング
		setECK0011A010(param, fixedText);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0011A010, TEMP_ID_DTL_ECK0011A010, IN_LIST_ECK0011A010, ERR_ECK0011A010);
		// 結果取得
		List<HashMap> eCK0011A010List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_ECK0011A010), TEMP_ID_DTL_ECK0011A010);

		if(eCK0011A010List == null || eCK0011A010List.size() == 0)
		{
			// お客様情報が無いことはないが、念のため入れておく
			return;
		}

		// お客様情報取得(カレントなので0番目を取得)
		HashMap custInfo = eCK0011A010List.get(0);

		// ●連絡先情報変更
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_ECK0201C010);
		// 上りマッピング
		setECK0201C010(param, fixedText, contTelRrksNo, custInfo);
		//検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_ECK0201C010, TEMP_ID_DTL_ECK0201C010, IN_LIST_ECK0201C010, ERR_ECK0201C010);
	}

	/**
	 * 請求書送付先住所チェック＆更新処理です。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws Exception 例外
	 */
	private void chkAndChgSofusAdrs(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 契約者住所(結合)
		String kshAddressBf = getAlladdress(inMap, KSH_ADRS_BF_ITEM_LIST);

		// 回線利用場所毎サービス契約番号一覧照会の結果を取得
		List<HashMap> eKK0251B502List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0251B502), TEMP_ID_DTL_EKK0251B502);

		if(eKK0251B502List == null || eKK0251B502List.size() == 0)
		{
			return;
		}

		// 請求契約を更新するかどうを判定する
		boolean chkResult = true;

		// 請求契約番号リスト
		List<String> seikyKeiNoList = new ArrayList<String>();

		for (int i = 0; i < eKK0251B502List.size(); i++)
		{
			HashMap eKK0251B502Map = eKK0251B502List.get(i);

			if(eKK0251B502Map == null || eKK0251B502Map.size() == 0)
			{
				continue;
			}

			// サービス契約番号
			String svcKeiNo = (String)eKK0251B502Map.get(EKK0251B502CBSMsg1List.SVC_KEI_NO);
			// サービス契約ステータス
			String svcKeiStat = (String)eKK0251B502Map.get(EKK0251B502CBSMsg1List.SVC_KEI_STAT);

			if(JFUBPCommon.isNull(svcKeiNo))
			{
				continue;
			}

			if(SVC_KEI_STAT_OUT_LIST.contains(svcKeiStat))
			{
				// サービス契約ステータスが910,920は対象外
				continue;
			}

			// ●請求契約一覧照会（サービス契約番号）
			// ユーザデータ初期化
			initData(param, fixedText, IN_LIST_EKK0491B507);
			// 上りマッピング
			setEKK0491B507(param, fixedText, svcKeiNo);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0491B507, TEMP_ID_DTL_EKK0491B507, IN_LIST_EKK0491B507, ERR_EKK0491B507);
			// 結果取得
			List<HashMap> eKK0491B507List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0491B507), TEMP_ID_DTL_EKK0491B507);

			if(eKK0491B507List == null || eKK0491B507List.size() == 0)
			{
				continue;
			}

			// 請求書発行要否チェック、住所比較チェック
			for (int j = 0; j < eKK0491B507List.size(); j++)
			{
				HashMap eKK0491B507Map = eKK0491B507List.get(j);

				if(eKK0491B507Map == null || eKK0491B507Map.size() == 0)
				{
					continue;
				}

				// 請求契約番号
				String seikyKeiNo = (String)eKK0491B507Map.get(EKK0491B507CBSMsg1List.SEIKY_KEI_NO);
				// 請求契約ステータス
				String seikyKeiStat = (String)eKK0491B507Map.get(EKK0491B507CBSMsg1List.SEIKY_KEI_STAT);

				if(JFUStrConst.CD00057_910.equals(seikyKeiStat))
				{
					// 請求契約ステータスが910は対象外
					continue;
				}

				// 請求契約番号を後続処理用に格納
				if(!JFUBPCommon.isNull(seikyKeiNo) && !seikyKeiNoList.contains(seikyKeiNo))
				{
					seikyKeiNoList.add(seikyKeiNo);
				}

				// 請求書発行要否
				String seikyusHakkoYh = (String)eKK0491B507Map.get(EKK0491B507CBSMsg1List.SEIKYUS_HAKKO_YH);

				// 全請求契約の請求書発行要否が全て「否」であるか判定
				if(JFUStrConst.CD00001_1.equals(seikyusHakkoYh))
				{
					// 1つでも「要」があれば更新しない
					outputBusLog("■■■ JFUChkAndChgAddressCC 請求書発行要否チェック：NG ■■■");
					chkResult = false;
					break;
				}

				// 送付先住所(結合)
				String sofusAddress = getAlladdress(eKK0491B507Map, SOFUS_ADRS_ITEM_LIST);

				// 契約者住所と請求書送付先住所を文字列比較し全て完全一致しているか判定
				if(!kshAddressBf.equals(sofusAddress))
				{
					// 1つでも契約者住所と請求書送付先住所が異なれば更新しない
					outputBusLog("■■■ JFUChkAndChgAddressCC 契約者住所と請求書送付先住所の同一チェック：NG ■■■");
					chkResult = false;
					break;
				}
			}

			if(!chkResult)
			{
				// １つでもチェックNGの場合、更新しない
				break;
			}
		}

		// 異動予約チェック
		if(chkResult)
		{
			// ●EKK0491B508_請求契約一覧照会（予約手続中）
			// ユーザデータ初期化
			initData(param, fixedText, IN_COLUMN_LIST_EKK0491B508);
			// 上りマッピング
			setEKK0491B508(param, fixedText);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_EKK0491B508, TEMPLATE_ID_EKK0491B508_DETAIL, IN_COLUMN_LIST_EKK0491B508,
					ERROR_COLUMN_EKK0491B508);
			// 結果取得
			List<HashMap> eKK0491B508List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMPLATE_KEY_EKK0491B508),
						TEMPLATE_ID_EKK0491B508_DETAIL);

			if(eKK0491B508List != null && eKK0491B508List.size() > 0)
			{
				// 予約が存在する場合は更新しない
				outputBusLog("■■■ JFUChkAndChgAddressCC 請求契約予約チェック(異動予約)：NG ■■■");
				chkResult = false;
			}
		}

		if(!chkResult)
		{
			// チェックNGの場合、更新しない
			return;
		}

		// 更新処理
		for (int i = 0; i < seikyKeiNoList.size(); i++)
		{
			// 請求契約番号
			String seikyKeiNo = seikyKeiNoList.get(i);

			// ●請求契約一意照会(カレント)
			// ユーザデータ初期化
			initData(param, fixedText, IN_LIST_EKK0491A010);
			// 上りマッピング
			setEKK0491A010(param, fixedText, seikyKeiNo);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0491A010, TEMP_ID_DTL_EKK0491A010, IN_LIST_EKK0491A010, ERR_EKK0491A010);
			// 結果取得
			List<HashMap> eKK0491A010List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0491A010), TEMP_ID_DTL_EKK0491A010);

			if(eKK0491A010List == null || eKK0491A010List.size() == 0)
			{
				continue;
			}

			// カレントなので0番目を取得
			HashMap eKK0491A010Map = eKK0491A010List.get(0);

			// ●請求契約内容変更
			// ユーザデータ初期化
			initData(param, fixedText, IN_LIST_EKK0491C060);
			// 上りマッピング
			setEKK0491C060(param, fixedText, seikyKeiNo, eKK0491A010Map);
			//検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TEMP_ID_EKK0491C060, TEMP_ID_DTL_EKK0491C060, IN_LIST_EKK0491C060, ERR_EKK0491C060);
		}
	}

	/**
	 * 住所結合処理です。
	 * 
	 * <br>
	 * @param map 住所情報マップ
	 * @param itemList 取得項目リスト
	 * @return 結合結果
	 */
	private String getAlladdress(HashMap map, List<String> itemList)
	{
		// 住所(結合)
		StringBuffer allAddress = new StringBuffer();

		for (int i = 0; i < itemList.size(); i++)
		{
			String itemNm = itemList.get(i);

			if(!JFUBPCommon.isNull(map.get(itemNm)))
			{
				// 値が設定されていれば結合する
				allAddress.append(map.get(itemNm));
			}
		}

		return allAddress.toString();
	}

	/**
	 * コンテンツ同意有無を取得します。
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return true:同意済 / false:未同意
	 * @throws Exception 例外
	 */
	private boolean getContDoiUm(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		boolean result = false;

		// ●サービス契約一覧照会（SYSID）
		// ユーザデータ初期化
		initData(param, fixedText, IN_LIST_EKK0081B002);
		// 上りマッピング
		setEKK0081B002(param, fixedText);
		// 検索エラーなし設定
		ignoreSearchError(param, fixedText);
		// サービスIF実行
		executeSC(handle, param, fixedText, TEMP_ID_EKK0081B002, TEMP_ID_DTL_EKK0081B002, IN_LIST_EKK0081B002, ERR_EKK0081B002);
		// 結果取得
		List<HashMap> eKK0081B002List = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TEMP_TEMP_KEY_EKK0081B002), TEMP_ID_DTL_EKK0081B002);

		if(eKK0081B002List == null || eKK0081B002List.size() == 0)
		{
			return false;
		}

		for (int i = 0; i < eKK0081B002List.size(); i++)
		{
			HashMap eKK0081B002Map = eKK0081B002List.get(i);
			if (eKK0081B002Map == null || eKK0081B002Map.size() == 0)
			{
				continue;
			}

			// 料金グループコード
			String prcGrpCd = (String)eKK0081B002Map.get(EKK0081B002CBSMsg1List.PRC_GRP_CD);
			// サービス契約ステータス
			String svcKeiStat = (String)eKK0081B002Map.get(EKK0081B002CBSMsg1List.SVC_KEI_STAT);

			if(JFUStrConst.CD00133_14.equals(prcGrpCd) && JFUStrConst.CD01616_100.equals(svcKeiStat))
			{
				// ホスティング、かつ、サービス提供中の場合、コンテンツ同意済と判定
				result = true;
				break;
			}
		}

		return result;
	}

	/**
	 * コンテンツ住所のマッピング情報を取得します。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @param adrsBunkatuInfo 住所分割情報
	 * @return マッピング結果
	 * @throws Exception 例外
	 */
	private HashMap getContAdrsMapping(IRequestParameterReadWrite param, String fixedText, HashMap adrsBunkatuInfo) throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 結果格納用マップ
		HashMap resultMap = new HashMap();

		// コンテンツ住所結合
		String contAdrsFull = JFUStrConst.EMPTY;
		String contAdrs = JFUStrConst.EMPTY;

		// コンテンツ住所分割開始位置
		int bunkatsuStartCnt = 0;

		// 住所チェック結果
		boolean chkAdrs = true;

		// 契約者都道府県名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(STATE_NM)))
		{
			contAdrsFull = contAdrsFull + adrsBunkatuInfo.get(STATE_NM);
		}

		// 契約者市区町村名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(CITY_NM)))
		{
			contAdrsFull = contAdrsFull + adrsBunkatuInfo.get(CITY_NM);
		}

		// コンテンツ住所分割開始位置の設定(都道府県＋市区町村＋１)
		bunkatsuStartCnt = contAdrsFull.length() + 1;

		// 契約者大字通称名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(OAZTSU_NM)))
		{
			contAdrsFull = contAdrsFull + adrsBunkatuInfo.get(OAZTSU_NM);
		}

		// 契約者字丁目名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AZCHO_NM)))
		{
			contAdrsFull = contAdrsFull + adrsBunkatuInfo.get(AZCHO_NM);
		}

		// 契約者番地号
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AFTER_BNCHI)))
		{
			contAdrsFull = contAdrsFull + adrsBunkatuInfo.get(AFTER_BNCHI);
		}

		if(contAdrsFull.length() > MAX_LEN_BNCHIGO)
		{
			// 都道府県名＋市区町村名＋大字通称名＋字丁目名＋番地号が61桁を超えた場合、61桁までの情報を設定する
			contAdrs = contAdrsFull.substring(0, MAX_LEN_BNCHIGO);
			chkAdrs = false;
		}
		else
		{
			// 61桁を超えない場合、そのまま設定する
			contAdrs = contAdrsFull;
		}

		// コンテンツ住所補記・建物名とコンテンツ住所補記・部屋番号
		String contTtmRmFull = (String)inMap.get(IN_KEISHA_ADRTTM);
		String contRmFull = (String)inMap.get(IN_KEISHA_ADRRM);
		String contTtmRm = JFUStrConst.EMPTY;
		String contRm = JFUStrConst.EMPTY;

		// コンテンツ住所補記・建物名の編集処理
		if(contTtmRmFull.length() > MAX_LEN_ADRTTM)
		{
			// 建物名が45桁を超えた場合、45桁までの情報を設定する
			contTtmRm = contTtmRmFull.substring(0, MAX_LEN_ADRTTM);
			chkAdrs = false;
		}
		else
		{
			// 45桁を超えない場合、そのまま設定する
			contTtmRm = contTtmRmFull;
		}

		// コンテンツ住所補記・部屋番号の編集処理
		if(contRmFull.length() > MAX_LEN_ADRRM)
		{
			// 部屋番号が15桁を超えた場合、15桁までの情報を設定する
			contRm = contRmFull.substring(0, MAX_LEN_ADRRM);
			chkAdrs = false;
		}
		else
		{
			// 15桁を超えない場合、そのまま設定する
			contRm = contRmFull;
		}

		if(!chkAdrs)
		{
			// 入力住所が登録最大桁数を超えた場合マイナーアラームを出力
			String sysdate = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date(System.currentTimeMillis()));
			HashMap<String, Object> propMap = new HashMap<String, Object>();

			propMap.put(JCCSuperComExecUtil.EXEC_BUFF_SIZE, JCMAPLConstMgr.getString(JCCSuperComExecUtil.EXEC_BUFF_SIZE));
			propMap.put(JCCSuperComExecUtil.EXEC_PERMIT_MEMORY, JCMAPLConstMgr.getString(JCCSuperComExecUtil.EXEC_PERMIT_MEMORY));
			propMap.put(JCCSyslogFormat.SYSLOG_FOMAT_PTN_KEY, JCMAPLConstMgr.getString(JCCSyslogFormat.SYSLOG_FOMAT_PTN_KEY));
			propMap.put(JCCSyslogFormat.SYSLOG_MAILING_ID_KEY, JCMAPLConstMgr.getString(JCCSyslogFormat.SYSLOG_MAILING_ID_KEY));
			propMap.put(JCCSyslogFormat.SYSLOG_OUT_DIR_OPTION, JCMAPLConstMgr.getString(JCCSyslogFormat.SYSLOG_OUT_DIR_OPTION));

			String proId = fixedText.substring(0, 8);
			String keyCd = " SYSID：" + inMap.get(IN_SYSID);
			String msg = MESLOG_ADDRESS + keyCd + " 住所："+ contAdrsFull + contTtmRmFull + contRmFull;
			String msgId = "EKKB1920KW";

            JCCSyslogFormat.logger(proId, msgId, sysdate, msg, null, propMap);
		}

		// 結合結果を格納
		resultMap.put(CONT_BNCHIGO, contAdrs);
		resultMap.put(CONT_ADRTTM, contTtmRm);
		resultMap.put(CONT_ADRRM, contRm);
		resultMap.put(CONT_AD_BNKT_STA_PST, String.valueOf(bunkatsuStartCnt));

		return resultMap;
	}

	/**
	 * 回線利用場所毎サービス契約番号一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setEKK0251B502(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(EKK0251B502CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
	}

	/**
	 * お客様予約対象一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setECK0011B009(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(ECK0011B009CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
	}

	/**
	 * 異動予約一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setEKK1681B001(IRequestParameterReadWrite param, String fixedText, String idoDiv, String date, String statCd)
		throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿異動区分
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_DIV, idoDiv);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK1681B001CBSMsg.KEY_RSV_APLY_YMD, date);
		// ＫＥＹ＿異動予約状態コード
		inMap.put(EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, statCd);
		// ＫＥＹ＿SYSID
		inMap.put(EKK1681B001CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
	}

	/**
	 * お客様一意照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setECK0011A010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(ECK0011A010CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
		// ＫＥＹ＿予約適用年月日
		inMap.put(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * お客様＜個人＞一意照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setECK0021A010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(ECK0021A010CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
	}

	/**
	 * お客様＜個人＞内容変更の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @param custInfo お客様情報
	 * @param custKojinInfo お客様＜個人＞情報
	 * @param contDoiUm コンテンツ同意有無
	 * @throws Exception 
	 */
	private void setECK0021C010(IRequestParameterReadWrite param, String fixedText, HashMap custInfo, HashMap custKojinInfo,
			boolean contDoiUm) throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ECK0021C010の項目リスト取得
		Object[][] eCK0021C010CBSMsgList = new ECK0021C010CBSMsg().getContents();

		// お客様情報をマッピング
		setInMap(eCK0021C010CBSMsgList, inMap, custInfo);
		// お客様＜個人＞情報をマッピング
		setInMap(eCK0021C010CBSMsgList, inMap, custKojinInfo);

		// 住所分割情報
		HashMap adrsBunkatuInfo = (HashMap)param.getData(inMap.get(IN_GET_ADDRESS_ID));

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// SYSID
		inMap.put(ECK0021C010CBSMsg.SYSID, inMap.get(IN_SYSID));

		// 予約適用年月日
		inMap.put(ECK0021C010CBSMsg.RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
		// 会員ＩＳＰ決済状態コード
		inMap.put(ECK0021C010CBSMsg.MMB_ISP_KSSAI_STAT_CD, custInfo.get(ECK0011A010CBSMsg1List.MMB_ISP_KSSAI_STAT_CD));
		// 削除対象外フラグ
		inMap.put(ECK0021C010CBSMsg.DEL_TRGT_GAI_FLG, custInfo.get(ECK0011A010CBSMsg1List.DEL_TRGT_GAI_FLG));
		// 更新年月日時分秒(更新前)
		inMap.put(ECK0021C010CBSMsg.UPD_DTM_BF, custInfo.get(ECK0011A010CBSMsg1List.LAST_UPD_DTM));

		// 契約者住所手動入力フラグ(※必ず住所検索画面を経由する為、手動入力でないを設定)
		inMap.put(ECK0021C010CBSMsg.KEISHA_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);

		// 契約者住所コード
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AD_CD)))
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_AD_CD, adrsBunkatuInfo.get(AD_CD));
		}
		else
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_AD_CD, null);
		}

		// 契約者郵便番号
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(PCD)))
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_PCD, adrsBunkatuInfo.get(PCD));
		}
		else
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_PCD, null);
		}

		// 契約者都道府県名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(STATE_NM)))
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_STATE_NM, adrsBunkatuInfo.get(STATE_NM));
		}
		else
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_STATE_NM, null);
		}

		// 契約者市区町村名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(CITY_NM)))
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_CITY_NM, adrsBunkatuInfo.get(CITY_NM));
		}
		else
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_CITY_NM, null);
		}

		// 契約者大字通称名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(OAZTSU_NM)))
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_OAZTSU_NM, adrsBunkatuInfo.get(OAZTSU_NM));
		}
		else
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_OAZTSU_NM, null);
		}

		// 契約者字丁目名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AZCHO_NM)))
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_AZCHO_NM, adrsBunkatuInfo.get(AZCHO_NM));
		}
		else
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_AZCHO_NM, null);
		}

		// 契約者番地号
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AFTER_BNCHI)))
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_BNCHIGO, adrsBunkatuInfo.get(AFTER_BNCHI));
		}
		else
		{
			inMap.put(ECK0021C010CBSMsg.KEISHA_BNCHIGO, null);
		}

		// 契約者住所補記・建物名
		inMap.put(ECK0021C010CBSMsg.KEISHA_ADRTTM, inMap.get(IN_KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		inMap.put(ECK0021C010CBSMsg.KEISHA_ADRRM, inMap.get(IN_KEISHA_ADRRM));
		// 契約者電話番号
		inMap.put(ECK0021C010CBSMsg.KEISHA_TELNO, inMap.get(IN_KEISHA_TELNO));

		// コンテンツ住所更新マッピング
		if(contDoiUm)
		{
			// コンテンツ同意済の場合、コンテンツ住所を更新する
			HashMap contAdrsMap = getContAdrsMapping(param, fixedText, adrsBunkatuInfo);

			// コンテンツ住所コード
			if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AD_CD)))
			{
				inMap.put(ECK0021C010CBSMsg.CONT_AD_CD, adrsBunkatuInfo.get(AD_CD));
			}
			else
			{
				inMap.put(ECK0021C010CBSMsg.CONT_AD_CD, null);
			}

			// コンテンツ郵便番号
			if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(PCD)))
			{
				inMap.put(ECK0021C010CBSMsg.CONT_PCD, adrsBunkatuInfo.get(PCD));
			}
			else
			{
				inMap.put(ECK0021C010CBSMsg.CONT_PCD, null);
			}

			// コンテンツ番地号(都道府県＋市区町村＋大字＋丁目＋番地号)
			if(!JFUBPCommon.isNull(contAdrsMap.get(CONT_BNCHIGO)))
			{
				inMap.put(ECK0021C010CBSMsg.CONT_BNCHIGO, contAdrsMap.get(CONT_BNCHIGO));
			}
			else
			{
				inMap.put(ECK0021C010CBSMsg.CONT_BNCHIGO, null);
			}

			// コンテンツ住所補記・建物名
			if(!JFUBPCommon.isNull(contAdrsMap.get(CONT_ADRTTM)))
			{
				inMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, contAdrsMap.get(CONT_ADRTTM));
			}
			else
			{
				inMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, null);
			}

			// コンテンツ住所補記・部屋番号
			if(!JFUBPCommon.isNull(contAdrsMap.get(CONT_ADRRM)))
			{
				inMap.put(ECK0021C010CBSMsg.CONT_ADRRM, contAdrsMap.get(CONT_ADRRM));
			}
			else
			{
				inMap.put(ECK0021C010CBSMsg.CONT_ADRRM, null);
			}

			// コンテンツ住所分割開始位置
			inMap.put(ECK0021C010CBSMsg.CONT_AD_BNKT_STA_PST, contAdrsMap.get(CONT_AD_BNKT_STA_PST));
		}
	}

	/**
	 * お客様＜法人＞一意照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setECK0031A010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(ECK0031A010CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
	}

	/**
	 * お客様＜法人＞内容変更の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @param custInfo お客様情報
	 * @param custHojinInfo お客様＜法人＞情報
	 * @throws Exception 
	 */
	private void setECK0031C010(IRequestParameterReadWrite param, String fixedText, HashMap custInfo, HashMap custHojinInfo,
			boolean contDoiUm) throws Exception
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ECK0021C010の項目リスト取得
		Object[][] eCK0031C010CBSMsgList = new ECK0031C010CBSMsg().getContents();

		// お客様情報をマッピング
		setInMap(eCK0031C010CBSMsgList, inMap, custInfo);
		// お客様＜法人＞情報をマッピング
		setInMap(eCK0031C010CBSMsgList, inMap, custHojinInfo);

		// 住所分割情報
		HashMap adrsBunkatuInfo = (HashMap)param.getData(inMap.get(IN_GET_ADDRESS_ID));

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// SYSID
		inMap.put(ECK0031C010CBSMsg.SYSID, inMap.get(IN_SYSID));

		// 予約適用年月日
		inMap.put(ECK0031C010CBSMsg.RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
		// 会員ＩＳＰ決済状態コード
		inMap.put(ECK0031C010CBSMsg.MMB_ISP_KSSAI_STAT_CD, custInfo.get(ECK0011A010CBSMsg1List.MMB_ISP_KSSAI_STAT_CD));
		// 削除対象外フラグ
		inMap.put(ECK0031C010CBSMsg.DEL_TRGT_GAI_FLG, custInfo.get(ECK0011A010CBSMsg1List.DEL_TRGT_GAI_FLG));
		// 法人格種別コード
		inMap.put(ECK0031C010CBSMsg.HOJIN_SBT_CD, custHojinInfo.get(ECK0031A010CBSMsg1List.HOJIN_SBT_CD));
		// 法人格前後指定コード
		inMap.put(ECK0031C010CBSMsg.HOJIN_ZENGO_SHITEI_CD, custHojinInfo.get(ECK0031A010CBSMsg1List.HOJIN_ZENGO_SHITEI_CD));
		// 会社名
		inMap.put(ECK0031C010CBSMsg.COMP_NM, custHojinInfo.get(ECK0031A010CBSMsg1List.COMP_NM));
		// 会社カナ名
		inMap.put(ECK0031C010CBSMsg.COMP_KANA, custHojinInfo.get(ECK0031A010CBSMsg1List.COMP_KANA));
		// 更新年月日時分秒(更新前)
		inMap.put(ECK0031C010CBSMsg.UPD_DTM_BF, custInfo.get(ECK0011A010CBSMsg1List.LAST_UPD_DTM));

		// 契約者住所手動入力フラグ(※必ず住所検索画面を経由する為、手動入力でないを設定)
		inMap.put(ECK0031C010CBSMsg.KEISHA_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);

		// 契約者住所コード
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AD_CD)))
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_AD_CD, adrsBunkatuInfo.get(AD_CD));
		}
		else
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_AD_CD, null);
		}

		// 契約者郵便番号
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(PCD)))
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_PCD, adrsBunkatuInfo.get(PCD));
		}
		else
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_PCD, null);
		}

		// 契約者都道府県名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(STATE_NM)))
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_STATE_NM, adrsBunkatuInfo.get(STATE_NM));
		}
		else
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_STATE_NM, null);
		}

		// 契約者市区町村名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(CITY_NM)))
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_CITY_NM, adrsBunkatuInfo.get(CITY_NM));
		}
		else
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_CITY_NM, null);
		}

		// 契約者大字通称名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(OAZTSU_NM)))
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_OAZTSU_NM, adrsBunkatuInfo.get(OAZTSU_NM));
		}
		else
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_OAZTSU_NM, null);
		}

		// 契約者字丁目名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AZCHO_NM)))
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_AZCHO_NM, adrsBunkatuInfo.get(AZCHO_NM));
		}
		else
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_AZCHO_NM, null);
		}

		// 契約者番地号
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AFTER_BNCHI)))
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_BNCHIGO, adrsBunkatuInfo.get(AFTER_BNCHI));
		}
		else
		{
			inMap.put(ECK0031C010CBSMsg.KEISHA_BNCHIGO, null);
		}

		// 契約者住所補記・建物名
		inMap.put(ECK0031C010CBSMsg.KEISHA_ADRTTM, inMap.get(IN_KEISHA_ADRTTM));
		// 契約者住所補記・部屋番号
		inMap.put(ECK0031C010CBSMsg.KEISHA_ADRRM, inMap.get(IN_KEISHA_ADRRM));
		// 契約者電話番号
		inMap.put(ECK0031C010CBSMsg.KEISHA_TELNO, inMap.get(IN_KEISHA_TELNO));

		// コンテンツ住所更新マッピング
		if(contDoiUm)
		{
			// コンテンツ同意済の場合、コンテンツ住所を更新する
			HashMap contAdrsMap = getContAdrsMapping(param, fixedText, adrsBunkatuInfo);

			// コンテンツ住所コード
			if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AD_CD)))
			{
				inMap.put(ECK0031C010CBSMsg.CONT_AD_CD, adrsBunkatuInfo.get(AD_CD));
			}
			else
			{
				inMap.put(ECK0031C010CBSMsg.CONT_AD_CD, null);
			}

			// コンテンツ郵便番号
			if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(PCD)))
			{
				inMap.put(ECK0031C010CBSMsg.CONT_PCD, adrsBunkatuInfo.get(PCD));
			}
			else
			{
				inMap.put(ECK0031C010CBSMsg.CONT_PCD, null);
			}

			// コンテンツ番地号(都道府県＋市区町村＋大字＋丁目＋番地号)
			if(!JFUBPCommon.isNull(contAdrsMap.get(CONT_BNCHIGO)))
			{
				inMap.put(ECK0031C010CBSMsg.CONT_BNCHIGO, contAdrsMap.get(CONT_BNCHIGO));
			}
			else
			{
				inMap.put(ECK0031C010CBSMsg.CONT_BNCHIGO, null);
			}

			// コンテンツ住所補記・建物名
			if(!JFUBPCommon.isNull(contAdrsMap.get(CONT_ADRTTM)))
			{
				inMap.put(ECK0031C010CBSMsg.CONT_ADRTTM, contAdrsMap.get(CONT_ADRTTM));
			}
			else
			{
				inMap.put(ECK0031C010CBSMsg.CONT_ADRTTM, null);
			}

			// コンテンツ住所補記・部屋番号
			if(!JFUBPCommon.isNull(contAdrsMap.get(CONT_ADRRM)))
			{
				inMap.put(ECK0031C010CBSMsg.CONT_ADRRM, contAdrsMap.get(CONT_ADRRM));
			}
			else
			{
				inMap.put(ECK0031C010CBSMsg.CONT_ADRRM, null);
			}

			// コンテンツ住所分割開始位置
			inMap.put(ECK0031C010CBSMsg.CONT_AD_BNKT_STA_PST, contAdrsMap.get(CONT_AD_BNKT_STA_PST));
		}
	}

	/**
	 * 請求契約一覧照会（サービス契約番号）の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @param svcKeiNo サービス契約番号
	 * @throws RequestParameterException
	 */
	private void setEKK0491B507(IRequestParameterReadWrite param, String fixedText, String svcKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿サービス契約番号
		inMap.put(EKK0491B507CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
	}

	/**
	 * 請求契約一覧照会（予約手続中）の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @param sysid
	 * @throws RequestParameterException
	 */
	private void setEKK0491B508(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿SYSID
		inMap.put(EKK0491B508CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
	}

	/**
	 * 請求契約一意照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @param seikyKeiNo 請求契約番号
	 * @throws RequestParameterException
	 */
	private void setEKK0491A010(IRequestParameterReadWrite param, String fixedText, String seikyKeiNo) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO, seikyKeiNo);
		// ＫＥＹ＿予約適用年月日
		inMap.put(EKK0491A010CBSMsg.KEY_RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
	}

	/**
	 * 請求契約内容変更の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @param seikyKeiNo 請求契約番号
	 * @param seikyKeiMap 請求契約情報
	 * @throws RequestParameterException
	 */
	private void setEKK0491C060(IRequestParameterReadWrite param, String fixedText, String seikyKeiNo, HashMap seikyKeiMap)
		throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ECK0021C010の項目リスト取得
		Object[][] eKK0491C060CBSMsgList = new EKK0491C060CBSMsg().getContents();

		// 請求契約情報をマッピング
		setInMap(eKK0491C060CBSMsgList, inMap, seikyKeiMap);

		// 住所分割情報
		HashMap adrsBunkatuInfo = (HashMap)param.getData(inMap.get(IN_GET_ADDRESS_ID));

		// 申込明細番号取得
		String mskmDtlNo = (String)inMap.get(IN_MSKM_DTL_NO);
		if(JFUBPCommon.isNull(mskmDtlNo))
		{
			// 申込明細番号が設定されていない場合はワークエリアから取得(全戸一括マンション)

			// 作業領域の取得
			Map workMap = (Map)param.getMappingWorkArea();
			if (workMap == null)
			{
				workMap = new HashMap();
				param.setMappingWorkArea(workMap);
			}

			// 申込データマップ
			HashMap workMskmDataMap = (HashMap)workMap.get(CC_WORK_AREA_NAME_MSKM);

			// @ネット、A電話、Bテレビ
			if(!JFUBPCommon.isNull(workMskmDataMap.get(MSKM_DTL_NO_NET)))
			{
				mskmDtlNo = (String)workMskmDataMap.get(MSKM_DTL_NO_NET);
			}
			else if(!JFUBPCommon.isNull(workMskmDataMap.get(MSKM_DTL_NO_TEL)))
			{
				mskmDtlNo = (String)workMskmDataMap.get(MSKM_DTL_NO_TEL);
			}
			else if(!JFUBPCommon.isNull(workMskmDataMap.get(MSKM_DTL_NO_TV)))
			{
				mskmDtlNo = (String)workMskmDataMap.get(MSKM_DTL_NO_TV);
			}
		}

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// 請求契約番号
		inMap.put(EKK0491C060CBSMsg.SEIKY_KEI_NO, seikyKeiNo);
		// 申込明細番号
		inMap.put(EKK0491C060CBSMsg.MSKM_DTL_NO, mskmDtlNo);
		// 予約適用年月日
		inMap.put(EKK0491C060CBSMsg.RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
		// 異動区分
		inMap.put(EKK0491C060CBSMsg.IDO_DIV, inMap.get(IN_IDO_DIV));
		// 更新年月日時分秒(更新前)
		inMap.put(EKK0491C060CBSMsg.UPD_DTM_BF, seikyKeiMap.get(EKK0491A010CBSMsg1List.LAST_UPD_DTM));

		// 請求書送付先_契約者住所差異フラグ(※契約者住所更新と同時に請求書送付先住所も同じ住所で必ず更新する為、差異なしを設定)
		inMap.put(EKK0491C060CBSMsg.SKS_SHS_KSH_AD_SAI_FLG, JFUStrConst.SAI_FLG_SAI_NON);
		// 送付先住所手動入力フラグ(※必ず住所検索画面を経由する為、手動入力でないを設定)
		inMap.put(EKK0491C060CBSMsg.SOHUS_AD_MAN_INPUT_FLG, JFUStrConst.CD01239_0);

		// 送付先住所コード
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AD_CD)))
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_AD_CD, adrsBunkatuInfo.get(AD_CD));
		}
		else
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_AD_CD, null);
		}

		// 送付先郵便番号
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(PCD)))
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_PCD, adrsBunkatuInfo.get(PCD));
		}
		else
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_PCD, null);
		}

		// 送付先都道府県名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(STATE_NM)))
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_STATE_NM, adrsBunkatuInfo.get(STATE_NM));
		}
		else
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_STATE_NM, null);
		}

		// 送付先市区町村名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(CITY_NM)))
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_CITY_NM, adrsBunkatuInfo.get(CITY_NM));
		}
		else
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_CITY_NM, null);
		}

		// 送付先大字通称名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(OAZTSU_NM)))
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_OAZTSU_NM, adrsBunkatuInfo.get(OAZTSU_NM));
		}
		else
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_OAZTSU_NM, null);
		}

		// 送付先字丁目名
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AZCHO_NM)))
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_AZCHO_NM, adrsBunkatuInfo.get(AZCHO_NM));
		}
		else
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_AZCHO_NM, null);
		}

		// 送付先番地号
		if(!JFUBPCommon.isNull(adrsBunkatuInfo.get(AFTER_BNCHI)))
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_BNCHIGO, adrsBunkatuInfo.get(AFTER_BNCHI));
		}
		else
		{
			inMap.put(EKK0491C060CBSMsg.SOHUS_BNCHIGO, null);
		}

		// 送付先住所補記・建物名
		inMap.put(EKK0491C060CBSMsg.SOHUS_ADRTTM, inMap.get(IN_KEISHA_ADRTTM));
		// 送付先住所補記・部屋番号
		inMap.put(EKK0491C060CBSMsg.SOHUS_ADRRM, inMap.get(IN_KEISHA_ADRRM));
		// 送付先電話番号
		inMap.put(EKK0491C060CBSMsg.SOHUS_TELNO, inMap.get(IN_KEISHA_TELNO));
	}

	/**
	 * サービス契約一覧照会（SYSID）の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setEKK0081B002(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(EKK0081B002CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
	}

	/**
	 * 連絡先一覧照会の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setECK0201B001(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(ECK0201B001CBSMsg.KEY_SYSID, inMap.get(IN_SYSID));
		// ＫＥＹ＿連絡方法コード
		inMap.put(ECK0201B001CBSMsg.KEY_RRK_WAY_CD, JFUStrConst.CD00790_003);
		// ＫＥＹ＿連絡先種別コード
		inMap.put(ECK0201B001CBSMsg.KEY_RRKS_SBT_CD, JFUStrConst.CD00254_1);
	}

	/**
	 * 連絡先情報変更の上りマッピング処理です。
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText 固定文字列
	 * @throws RequestParameterException
	 */
	private void setECK0201C010(IRequestParameterReadWrite param, String fixedText, String rrksNo, HashMap custInfo)
		throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// 機能コード設定
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿ＳＹＳＩＤ
		inMap.put(ECK0201C010CBSMsg.RRKS_NO, rrksNo);
		// 連絡先種別コード
		inMap.put(ECK0201C010CBSMsg.RRKS_SBT_CD, JFUStrConst.CD00254_1);
		// 電話番号
		inMap.put(ECK0201C010CBSMsg.TELNO, inMap.get(IN_KEISHA_TELNO));
		// 予約適用年月日
		inMap.put(ECK0201C010CBSMsg.RSV_APLY_YMD, JFUBPCommon.getOpeDate(null));
		// 更新年月日時分秒(更新前)
		inMap.put(ECK0201C010CBSMsg.UPD_DTM_BF, custInfo.get(ECK0011A010CBSMsg1List.LAST_UPD_DTM));
	}

	/**
	 * CBSMsgのIN項目に値を設定します。
	 * 
	 * <br>
	 * @param itemList 項目リスト(CBSMsg)
	 * @param inMap 設定先マップ
	 * @param map 設定元マップ
	 */
	private void setInMap(Object[][] itemList, HashMap inMap, HashMap map)
	{
		for (int i = 0; i < itemList.length; i++)
		{
			String key = (String)itemList[i][0];

			if(key.endsWith(STR_ERR) || TG_OUT_ITEM_LIST.contains(key) || !map.containsKey(key))
			{
				continue;
			}

			if(!JFUBPCommon.isNull(map.get(key)))
			{
				inMap.put(key, map.get(key));
			}
			else
			{
				inMap.put(key, null);
			}
		}
	}

	/**
	 * ビジネスログへの出力処理します。
	 *
	 * @param msg ログ情報
	 */
	private void outputBusLog(String msg)
	{
		JSYejbLog.println(JSYejbLog.EXECUTION, this.getClass(), msg);
	}
}
