/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUMskmDtlUpdCC
*   ソースファイル名：JFUMskmDtlUpdCC.java
*   作成者          ：富士通
*   日付            ：2019年01月07日
*＜機能概要＞
*   申込明細内容変更コモンコンポーネント部品です。（Web新規使用）
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v47.00      2019/01/07   FJ）美濃原  新規作成
*   v54.00      2021/08/20   FJ）美濃原  【ANK-4096-00-00】宅調宅工同時実施のための聞取り強化対応
*   v56.0.0		2021/12/01   FJ)大島	【ANK-4174-00-00】開通前マイページ関連業務改善
*   v57.0.0		2022/02/02   FJ)美濃原	【ANK-4088-00-00】宅内調査の日程調整業務における省人化施策(Step2)
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Set;

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.CCException;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021B501CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021B501CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021C040CBSMsg;

/**
 * 申込明細内容変更コモンコンポーネント部品
 * <br>
 * @author 富士通
 */
@SuppressWarnings("unchecked")
public class JFUMskmDtlUpdCC extends JFUBaseCC
{
	/** エラー用 */
	private static final String SC_ERROR_STRING = "サービスコンポーネントエラー";

	/** 機能コード */
	private static final String FUNC_CODE = "func_code";
	/** IN項目:申込書番号 */
	private static final String IN_MSKMSHO_NO = "in_mskmsho_no";
	/** IN項目:本人確認書類種別コード */
	private static final String IN_HNIN_CFM_ATICLE_SBT_CD = "in_hnin_cfm_aticle_sbt_cd";
	/** IN項目:本人確認書類名 */
	private static final String IN_HNIN_CFM_ATICLE_NM = "in_hnin_cfm_aticle_nm";
	/** IN項目:早期開通早期連絡希望有無 */
	private static final String IN_TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN = "in_tsyrn_early_open_early_rrk_kbum_screen";
	/** IN項目:電子交付同意有無 */
	private static final String IN_DNSKH_DOI_UM = "in_dnskh_doi_um";
	/** 関連チェックエラー項目 */
	private static final String ERR_COLUMN = "key_mskm_dtl_no_err";

	/* ■□ 申込明細一覧照会（申込書番号）SC ■□ */
	/** テンプレートID(申込明細一覧照会（申込書番号）) */
	private static final String TMP_ICHRN_1 = "EKK0021B501";
	/** テンプレートID(申込明細一覧照会（申込書番号）明細) */
	private static final String TMP_ICHRN_1_DETAIL = EKK0021B501CBSMsg.EKK0021B501CBSMSG1LIST;
	/** IN項目リスト(申込明細一覧照会（申込書番号）) */
	private static final List<String> IN_COL_LIST_ICHRN_1 = Arrays.asList(EKK0021B501CBSMsg.KEY_MSKMSHO_NO);
	/** SC実行結果取得キー(申込明細一覧照会（申込書番号）) */
	private static final String TMP_ICHRN_TMPKEY_1 = TEMP_TEMPLATE_PRIFIX + TMP_ICHRN_1 + TEMP_TEMPLATE_PRIFIX_SEP;

	/* ■□ 申込明細一意照会SC ■□ */
	/** テンプレートID(申込明細一意照会) */
	private static final String TMP_FIND_1 = "EKK0021A010";
	/** テンプレートID(申込明細一意照会明細) */
	private static final String TMP_FIND_1_DETAIL = EKK0021A010CBSMsg.EKK0021A010CBSMSG1LIST;
	/** IN項目リスト(申込明細一意照会) */
	private static final List<String> IN_COL_LIST_FIND_1 = Arrays.asList(EKK0021A010CBSMsg.KEY_MSKM_DTL_NO, EKK0021A010CBSMsg.KEY_GENE_ADD_DTM);
	/** SC実行結果取得キー(申込明細一意照会) ※連番なし */
	private static final String TMP_FIND_TMPKEY_1 = TEMP_TEMPLATE_PRIFIX + TMP_FIND_1 + TEMP_TEMPLATE_PRIFIX_SEP;
	/** OUT項目リスト(申込明細一意照会) ※申込明細情報変更のIN項目（IN_COL_LIST_UPD_1）とあわせる */
	private static final List<String> OUT_COLUMN_LIST_1 =
			Arrays.asList(EKK0021A010CBSMsg1List.MSKM_DTL_NO, EKK0021A010CBSMsg1List.MSKMSHO_NO, EKK0021A010CBSMsg1List.MSKM_YMD,
					EKK0021A010CBSMsg1List.MSKM_FORM_CD, EKK0021A010CBSMsg1List.MSKM_DTL_SBT_CD, EKK0021A010CBSMsg1List.RRKS_KTAI_TELNO,
					EKK0021A010CBSMsg1List.RRKS_OFFC_NM, EKK0021A010CBSMsg1List.DT_RRKS_TELNO, EKK0021A010CBSMsg1List.NEW_MSKM_SBT_CD,
					EKK0021A010CBSMsg1List.MSKM_OPTNTY_CD, EKK0021A010CBSMsg1List.TAKCHO_KIBO_APO_KIGEN_YMD,
					EKK0021A010CBSMsg1List.KOJI_APO_RRKS_SHITEI_CD, EKK0021A010CBSMsg1List.KOJI_APO_RRKS_TELNO,
					EKK0021A010CBSMsg1List.RRK_JIKO_ADD_DTM, EKK0021A010CBSMsg1List.MSKM_RRKS_MLAD, EKK0021A010CBSMsg1List.KOJI_PRG_TCHI_MLAD,
					EKK0021A010CBSMsg1List.RRK_JIKO, EKK0021A010CBSMsg1List.RCNT_SHOKAI_YMD, EKK0021A010CBSMsg1List.WEB_SHOKAI_CNT,
					EKK0021A010CBSMsg1List.PC_SHOKAI_CNT, EKK0021A010CBSMsg1List.KTAI_SHOKAI_CNT, EKK0021A010CBSMsg1List.KJSC_TCH_KTAI_MLAD,
					EKK0021A010CBSMsg1List.KJSC_TCH_PC_MLAD_CHG_YMD, EKK0021A010CBSMsg1List.KJSC_TCH_KTAI_MLAD_CHG_YMD,
					EKK0021A010CBSMsg1List.ML_SEND_JGI_FLG, EKK0021A010CBSMsg1List.ML_SEND_JGI_RSN_MEMO, EKK0021A010CBSMsg1List.BMP_MSKM_RRKS_TLN,
					EKK0021A010CBSMsg1List.OP_SVC_HKTGI_UM, EKK0021A010CBSMsg1List.DSL_ATICLE_SOHU_KIBO_UM, EKK0021A010CBSMsg1List.RRK_WAY_HOKI,
					EKK0021A010CBSMsg1List.NEWCONST_BUKKEN_CD, EKK0021A010CBSMsg1List.HUKKAT_ANKEN_FLG, EKK0021A010CBSMsg1List.SAME_EQUIP_RE_MSKM_CD,
					EKK0021A010CBSMsg1List.HNIN_CFM_ATICLE_SBT_CD, EKK0021A010CBSMsg1List.KEI_HUKA_CD, EKK0021A010CBSMsg1List.MAP_TEMP_UM,
					EKK0021A010CBSMsg1List.KCN_STB_MSKM_CNT, EKK0021A010CBSMsg1List.KCN_STB_KIND_CD,
					EKK0021A010CBSMsg1List.MANSSBSYS_RNKI_YO_KIJIRAN, EKK0021A010CBSMsg1List.MANSION_ID, EKK0021A010CBSMsg1List.CATID,
					EKK0021A010CBSMsg1List.MKM_UK_SBT_CD, EKK0021A010CBSMsg1List.MSKMSHO_TRAT_IF_TNTSHA_NM,
					EKK0021A010CBSMsg1List.MSKMSHO_TRAT_IF_TELNO, EKK0021A010CBSMsg1List.LAST_UPD_DTM, EKK0021A010CBSMsg1List.MSKMSHO_DTL_NO,
					EKK0021A010CBSMsg1List.HNIN_CFM_ATICLE_NM, EKK0021A010CBSMsg1List.TSYRN_KJ_RRKS_NM, EKK0021A010CBSMsg1List.TSYRN_KJ_RRKS_TLN,
					EKK0021A010CBSMsg1List.TSYRN_TAKCHO_JI_RRKS_NM, EKK0021A010CBSMsg1List.TSYRN_TAKCHO_JI_RRKS_TLN,
					EKK0021A010CBSMsg1List.TSYRN_RRK_KIBO_DATE, EKK0021A010CBSMsg1List.TSYRN_TAKCHO_YH, EKK0021A010CBSMsg1List.TSYRN_MAP_UM,
					EKK0021A010CBSMsg1List.TSYRN_KZN_KEI_INF, EKK0021A010CBSMsg1List.TSYRN_HBI_KAISHOU_YMD, EKK0021A010CBSMsg1List.EQUIP_RYUYO_UM,
					EKK0021A010CBSMsg1List.RYUYO_MOTO_KJAK_NO, EKK0021A010CBSMsg1List.SBRY_KJ_FIN_KIBOYMD,
					EKK0021A010CBSMsg1List.NOW_USE_SK_KEI_KISN_DIV, EKK0021A010CBSMsg1List.KIKI_SETPLC_CHGUM,
					EKK0021A010CBSMsg1List.DOJITU_JSSI_KBUM, EKK0021A010CBSMsg1List.EARLY_OPEN_EARLY_RRK_KBUM, EKK0021A010CBSMsg1List.DNSKH_DOI_UM,
					EKK0021A010CBSMsg1List.TAKCHO_APO_KADEN_KIBO_UM);

	/* ■□ 申込明細情報変更SC ■□ */
	/** テンプレートID(申込明細情報変更) */
	private static final String TMP_UPD_1 = "EKK0021C040";
	/** IN項目リスト(申込明細情報変更) */
	private static final List<String> IN_COL_LIST_UPD_1 =
			Arrays.asList(EKK0021C040CBSMsg.MSKM_DTL_NO, EKK0021C040CBSMsg.MSKMSHO_NO, EKK0021C040CBSMsg.MSKM_YMD, EKK0021C040CBSMsg.MSKM_FORM_CD,
					EKK0021C040CBSMsg.MSKM_DTL_SBT_CD, EKK0021C040CBSMsg.RRKS_KTAI_TELNO, EKK0021C040CBSMsg.RRKS_OFFC_NM,
					EKK0021C040CBSMsg.DT_RRKS_TELNO, EKK0021C040CBSMsg.NEW_MSKM_SBT_CD, EKK0021C040CBSMsg.MSKM_OPTNTY_CD,
					EKK0021C040CBSMsg.TAKCHO_KIBO_APO_KIGEN_YMD, EKK0021C040CBSMsg.KOJI_APO_RRKS_SHITEI_CD, EKK0021C040CBSMsg.KOJI_APO_RRKS_TELNO,
					EKK0021C040CBSMsg.RRK_JIKO_ADD_DTM, EKK0021C040CBSMsg.MSKM_RRKS_MLAD, EKK0021C040CBSMsg.KOJI_PRG_TCHI_MLAD,
					EKK0021C040CBSMsg.RRK_JIKO, EKK0021C040CBSMsg.RCNT_SHOKAI_YMD, EKK0021C040CBSMsg.WEB_SHOKAI_CNT, EKK0021C040CBSMsg.PC_SHOKAI_CNT,
					EKK0021C040CBSMsg.KTAI_SHOKAI_CNT, EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD, EKK0021C040CBSMsg.KJSC_TCH_PC_MLAD_CHG_YMD,
					EKK0021C040CBSMsg.KJSC_TCH_KTAI_MLAD_CHG_YMD, EKK0021C040CBSMsg.ML_SEND_JGI_FLG, EKK0021C040CBSMsg.ML_SEND_JGI_RSN_MEMO,
					EKK0021C040CBSMsg.BMP_MSKM_RRKS_TLN, EKK0021C040CBSMsg.OP_SVC_HKTGI_UM, EKK0021C040CBSMsg.DSL_ATICLE_SOHU_KIBO_UM,
					EKK0021C040CBSMsg.RRK_WAY_HOKI, EKK0021C040CBSMsg.NEWCONST_BUKKEN_CD, EKK0021C040CBSMsg.HUKKAT_ANKEN_FLG,
					EKK0021C040CBSMsg.SAME_EQUIP_RE_MSKM_CD, EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD, EKK0021C040CBSMsg.KEI_HUKA_CD,
					EKK0021C040CBSMsg.MAP_TEMP_UM, EKK0021C040CBSMsg.KCN_STB_MSKM_CNT, EKK0021C040CBSMsg.KCN_STB_KIND_CD,
					EKK0021C040CBSMsg.MANSSBSYS_RNKI_YO_KIJIRAN, EKK0021C040CBSMsg.MANSION_ID, EKK0021C040CBSMsg.CATID,
					EKK0021C040CBSMsg.MKM_UK_SBT_CD, EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TNTSHA_NM, EKK0021C040CBSMsg.MSKMSHO_TRAT_IF_TELNO,
					EKK0021C040CBSMsg.UPD_DTM_BF, EKK0021C040CBSMsg.MSKMSHO_DTL_NO, EKK0021C040CBSMsg.HNIN_CFM_ATICLE_NM,
					EKK0021C040CBSMsg.TSYRN_KJ_RRKS_NM, EKK0021C040CBSMsg.TSYRN_KJ_RRKS_TLN, EKK0021C040CBSMsg.TSYRN_TAKCHO_JI_RRKS_NM,
					EKK0021C040CBSMsg.TSYRN_TAKCHO_JI_RRKS_TLN, EKK0021C040CBSMsg.TSYRN_RRK_KIBO_DATE, EKK0021C040CBSMsg.TSYRN_TAKCHO_YH,
					EKK0021C040CBSMsg.TSYRN_MAP_UM, EKK0021C040CBSMsg.TSYRN_KZN_KEI_INF, EKK0021C040CBSMsg.TSYRN_HBI_KAISHOU_YMD,
					EKK0021C040CBSMsg.EQUIP_RYUYO_UM, EKK0021C040CBSMsg.RYUYO_MOTO_KJAK_NO, EKK0021C040CBSMsg.SBRY_KJ_FIN_KIBOYMD,
					EKK0021C040CBSMsg.NOW_USE_SK_KEI_KISN_DIV, EKK0021C040CBSMsg.KIKI_SETPLC_CHGUM,
					EKK0021C040CBSMsg.DOJITU_JSSI_KBUM, EKK0021C040CBSMsg.EARLY_OPEN_EARLY_RRK_KBUM, EKK0021C040CBSMsg.DNSKH_DOI_UM,
					EKK0021C040CBSMsg.TAKCHO_APO_KADEN_KIBO_UM);

	/** エラーメッセージ 1 */
	private static final String ERR_MSG_1 = "■■■ 申込明細一覧照会（申込書番号）：申込書番号に紐づく申込明細のレコードが存在しません。 ■■■";
	/** エラーメッセージ 2 */
	private static final String ERR_MSG_2 = "■■■ 申込明細一意照会SC：申込明細が取得出来ません(KEY:申込明細番号) ■■■";

	/**
	 * 申込明細変更処理
	 * 
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception Exception
	 */
	public IRequestParameterReadWrite doMskmUpd(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		try
		{
			// ユーザデータ取得
			HashMap inMap = (HashMap)param.getData(fixedText);
			if (null == inMap || inMap.size() == 0)
			{
				// パラメータ未設定は、処理なし
				return param;
			}
			//----------------------------------------------
			// 入力パラメータ退避
			//----------------------------------------------
			String inFuncCd = (String)inMap.get(FUNC_CODE);

			//----------------------------------------------
			// 申込書番号を元に申込明細番号の一覧を取得する
			//----------------------------------------------
			// 申込明細一覧照会（申込書番号）(EKK0021B501)
			// ユーザデータ初期化
			initData(param, fixedText, IN_COL_LIST_ICHRN_1);
			// 上りマッピング
			setInMapEKK0021B501(param, fixedText);
			// 検索エラーなし設定
			ignoreSearchError(param, fixedText);
			// サービスIF実行
			executeSC(handle, param, fixedText, TMP_ICHRN_1, TMP_ICHRN_1_DETAIL, IN_COL_LIST_ICHRN_1, ERR_COLUMN);

			// ユーザデータ取得
			List<HashMap> mskDtlList = getTemplateList(inMap, getMaxTempTempleteKey(inMap, TMP_ICHRN_TMPKEY_1), TMP_ICHRN_1_DETAIL);
			// 件数が0件の場合
			if (0 == mskDtlList.size())
			{
				// 申込明細が１件も存在しない場合はエラー（仮申込で作成済のはず）
				setErrLog(ERR_MSG_1, inMap);
				throw new CCException(SC_ERROR_STRING, new Exception());
			}

			//----------------------------------------------
			// 申込明細情報を元に更新処理を行う
			//----------------------------------------------
			setDebugLog(getParamMsg(inMap));
			for (int i = 0; i < mskDtlList.size(); i++)
			{
				HashMap mskmDtlMap = (HashMap)mskDtlList.get(i);

				if (JFUBPCommon.isNull((String)mskmDtlMap.get(EKK0021B501CBSMsg1List.MSKM_DTL_NO)))
				{
					continue;
				}
				setDebugLog("申込明細番号[" + (String)mskmDtlMap.get(EKK0021B501CBSMsg1List.MSKM_DTL_NO) + "]");
				//----------------------------------------------
				// 申込明細一意照会から最新世代の情報を取得する
				//----------------------------------------------
				// ユーザデータ初期化
				initData(param, fixedText, IN_COL_LIST_FIND_1);
				// 上りマッピング
				setInMapEKK0021A010(param, fixedText, mskmDtlMap);
				// サービスIF実行
				executeSC(handle, param, fixedText, TMP_FIND_1, TMP_FIND_1_DETAIL, IN_COL_LIST_FIND_1, ERR_COLUMN);
				//----------------------------------------------
				// 申込明細情報変更処理
				//----------------------------------------------
				// ユーザデータ初期化
				initData(param, fixedText, IN_COL_LIST_UPD_1);
				// 上りマッピング
				setInMapEKK0021C040(param, fixedText, mskmDtlMap, inFuncCd);
				// サービスIF実行
				executeSC(handle, param, fixedText, TMP_UPD_1, "", IN_COL_LIST_UPD_1, null);
			}
		}
		finally
		{
			// 一時領域削除
			super.deleteTempArea(param, fixedText);
		}
		return param;

	}

	/**
	 * チェック処理
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@Override
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}

	/**
	 * 上りマッピング項目設定(申込明細一覧照会（申込書番号）)
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0021B501(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{

		// 機能コード設定(1:申込明細一意照会(カレント))
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);

		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		String mskmshoNo = (String)inMap.get(IN_MSKMSHO_NO);
		if (JFUBPCommon.isNull(mskmshoNo))
		{
			HashMap parentMap = (HashMap<String, Object>)param.getData("EKK0021C013");
			mskmshoNo = (String)parentMap.get("mskmsho_no");
		}

		// 申込書番号
		inMap.put(EKK0021B501CBSMsg.KEY_MSKMSHO_NO, mskmshoNo);
	}

	/**
	 * 上りマッピング項目設定(申込明細一意照会)
	 * <br>
	 * @param param			リクエストパラメータ
	 * @param fixedText		サービスメッセージ
	 * @param mskmDtlMap		申込明細情報マップ
	 * @throws RequestParameterException
	 */
	private void setInMapEKK0021A010(IRequestParameterReadWrite param, String fixedText, HashMap mskmDtlMap) throws RequestParameterException
	{
		// 機能コード設定(2:申込明細一意照会(カレント))
		setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_2);

		// リクエストパラメータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// ＫＥＹ＿申込明細番号 ← 申込明細情報.申込明細番号
		inMap.put(EKK0021A010CBSMsg.KEY_MSKM_DTL_NO, mskmDtlMap.get(EKK0021B501CBSMsg1List.MSKM_DTL_NO));
	}

	/**
	 * 上りマッピング項目設定(申込明細情報変更)
	 * <br>
	 * @param param				リクエストパラメータ
	 * @param fixedText			サービスメッセージ
	 * @param mskmDtlMap		申込明細情報マップ
	 * @param inFuncCd         呼出時の機能コード
	 * @throws Exception 
	 */
	private void setInMapEKK0021C040(IRequestParameterReadWrite param, String fixedText, HashMap mskmDtlMap, String inFuncCd) throws Exception
	{

		// 機能コード設定(1:チェック&登録、2:チェックのみ)
		setFuncCode(param, fixedText, inFuncCd);

		// リクエストパラメータ取得
		HashMap inMap = (HashMap)param.getData(fixedText);

		// データマップ
		HashMap dataMap = getTemplateListMap(inMap, getMaxTempTempleteKey(inMap, TMP_FIND_TMPKEY_1), TMP_FIND_1_DETAIL, 0);

		if (null == dataMap || dataMap.size() == 0)
		{
			// 申込明細のカレントレコード取得エラー
			setErrLog(ERR_MSG_2, inMap);
			throw new CCException(SC_ERROR_STRING, new Exception());
		}

		//----------------------------------------------
		// カレント情報をコピー(一意照会の結果を設定)
		//----------------------------------------------
		String updColNm = null;
		String motoColNm = null;

		// IN項目リスト(申込明細情報変更)に、一意照会結果を転記する。
		for (int i = 0; i < IN_COL_LIST_UPD_1.size(); i++)
		{
			updColNm = IN_COL_LIST_UPD_1.get(i);
			motoColNm = OUT_COLUMN_LIST_1.get(i);

			inMap.put(updColNm, dataMap.get(motoColNm));
		}

		//----------------------------------------------
		// 更新情報の設定
		//----------------------------------------------
		if (!JFUBPCommon.isNull(inMap.get(IN_HNIN_CFM_ATICLE_SBT_CD)))
		{
			// 本人確認書類種別コード
			inMap.put(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_SBT_CD, inMap.get(IN_HNIN_CFM_ATICLE_SBT_CD));
			// 本人確認書類名
			inMap.put(EKK0021C040CBSMsg.HNIN_CFM_ATICLE_NM, inMap.get(IN_HNIN_CFM_ATICLE_NM));
		}

		if (!JFUBPCommon.isNull(inMap.get(IN_TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN)))
		{
			// 早期開通早期連絡希望有無
			inMap.put(EKK0021C040CBSMsg.EARLY_OPEN_EARLY_RRK_KBUM, inMap.get(IN_TSYRN_EARLY_OPEN_EARLY_RRK_KBUM_SCREEN));
		}
		
		// 電子交付同意有無
		inMap.put(EKK0021C040CBSMsg.DNSKH_DOI_UM, inMap.get(IN_DNSKH_DOI_UM));

	}

	/**
	 * エラーログ出力
	 * 
	 * <br>
	 * @param errMsg エラーメッセージ
	 * @param inMap 入力パラメータ
	 */
	private void setErrLog(String errMsg, HashMap inMap)
	{
		StringBuffer sb = new StringBuffer();

		sb.append(errMsg);
		sb.append(getParamMsg(inMap));

		JSYejbLog.println(JSYejbLog.ERROR, this.getClass(), sb.toString(), null, null, null);
	}

	/**
	 * デバッグログ出力
	 * 
	 * <br>
	 * @param errMsg エラーメッセージ
	 * @param inMap 入力パラメータ
	 */
	private void setDebugLog(String strMsg)
	{
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), strMsg, null, null, null);
	}

	/**
	 * パラメータ情報
	 * 
	 * <br>
	 * @param errMsg エラーメッセージ
	 * @param inMap 入力パラメータ
	 */
	private String getParamMsg(HashMap inMap)
	{
		StringBuffer sb = new StringBuffer();

		sb.append(" パラメータ情報：");
		Set<String> set = inMap.keySet();
		for (String key : set)
		{
			sb.append(key);
			sb.append("[" + inMap.get(key) + "] ");
		}

		return sb.toString();
	}
}
