/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCKSV901001CC
*   ソースファイル名：JCKSV901001CC.java
*   作成者          ：富士通
*   日付            ：2012年03月16日
*＜機能概要＞
*  指定された条件からマスター会員の情報を取得します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/03/16   FJ）眞方    新規作成
*   v28.00.00   2017/01/18   FJ)森脇     OM-2016-0001646対応
*   v33.00.00   2017/08/10   FJ)三原     ANK-3194-00-00_コンテンツ同意・メールアドレス
*   v33.00.00   2017/11/09   FJ)孫       ANK-3327-00-00_解約後のWeb請求明細PDFへのお客さま氏名・住所表示対応
*	v34.00.00	2017/12/07	 FJ)宮下	【ANK-3210-00-00】新電力（STEP3）
*   v39.00.00   2018/11/29   FJ)中原    【ANK-3477-00-00】eoマイページからのお客さま情報変更自動反映
*   v39.01.00   2018/12/25   FJ)中原    【OM-2018-0001316】CKIFE027_お客様情報取得（MVNO用SOAP）を実行したら異常終了した
*   v41.00.00   2019/04/16   FJ)岡井    【ANK-3612-00-00】eoマイページからのお客さま情報自動更新機能改善
*   v53.00.00	2021/04/30	 GDC)ジョバニー 【ANK-4009-00-00】CX戦略WG方針対応（異動シェア分・API）
*   v63.00.00	2022/12/07	 FJ)平野	【OM-2022-0001148】CKIFE051_お客様住所情報更新受付（CMP）で住所必須チェックエラー
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import static eo.common.constant.JCKStrConst.*;
import static eo.common.util.JCKLcsCommonUtil.isNullOrBlank;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.*;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.*;

import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.CKSV9010_CKSV9010OP_CKSV901001CC;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.ICommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.util.JCKLcsCommonUtil;
import eo.common.util.JKKStringUtil;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg1List;

/**
 * 指定された条件からお客様情報を取得します。
 * <BR>
 * @ author 富士通
 */
public class JCKSV901001CC extends AbstractCommonComponent implements ICommonComponent
{
	/** 当CCの内部でしか使わないエラーコード */
	private static final String PMP_ERR_OTHER = "OTHER";

	// OM-2016-0001646 ADD START
	private static final String OPE_MNV1 = "MVN1";
	private static final String OPE_MNV2 = "MVN2";
	private static final String OPE_MNV3 = "MVN3";
	// OM-2016-0001646 ADD END
	// ANK-3327-00-00 ADD START
	private static final String OPE_PMP1 = "EIFPMP1";
	private static final String OPE_PMP2 = "EIFPMP2";
	private static final String OPE_PMP3 = "EIFPMP3";
	// ANK-3327-00-00 ADD END
	// ANK-3210-00-00 ADD START
	/** ガスのシステムID(本番環境) */
	private static final String OPE_GAS1 = "EIFGAS1";
	/** ガスのシステムID(検証環境) */
	private static final String OPE_GAS2 = "EIFGAS2";
	/** ガスのシステムID(開発環境) */
	private static final String OPE_GAS3 = "EIFGAS3";
	// ANK-3210-00-00 ADD END
	
	/**
	 * PMP連携マスター会員情報取得メイン処理。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite executeMain(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		// 入力パラメータ取得
		Map inMap = (Map)param.getData(fixedText);
		String sysid = (String)inMap.get(CKSV9010_CKSV9010OP_CKSV901001CC.KEY_SYSID);

		// OM-2016-0001646 ADD START
		// オペレーターID
		String ope_id = (String)param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		boolean run_flg = true;
		// MVNO実行判定（SOAP連携）
		if (OPE_MNV1.equals(ope_id) || OPE_MNV2.equals(ope_id) || OPE_MNV3.equals(ope_id)) {
			run_flg = false;
		}
		// OM-2016-0001646 ADD END
		// 返却値を初期化
		CAANMsg custInfo = null;
		String returnCd = PMP_NORMAL_END;
		String svcKeiNo = null;
		String chkCkUpdDtm = null;
		String chkKkUpdDtm = null;
		// ANK-3327-00-00 ADD START
		Map result = null;
		// ANK-3327-00-00 ADD END
		
		//***************************************************
		// お客様情報照会
		//***************************************************
		// ANK-3327-00-00 ADD START
		// ANK-3210-00-00 MOD START
//		if(OPE_PMP1.equals(ope_id)||OPE_PMP2.equals(ope_id)||OPE_PMP3.equals(ope_id))
		if (OPE_PMP1.equals(ope_id) || OPE_PMP2.equals(ope_id) || OPE_PMP3.equals(ope_id)
			|| OPE_GAS1.equals(ope_id) || OPE_GAS2.equals(ope_id) || OPE_GAS3.equals(ope_id))
		// ANK-3210-00-00 MOD END
		{
			result = callECK0011B050(handle, param, "3", sysid);
		}
		else
		{
			// ANK-3327-00-00 MOD START
			//Map result = callECK0011B050(handle, param, "1", sysid);
			result = callECK0011B050(handle, param, "1", sysid);
			// ANK-3327-00-00 MOD END
		}
		// ANK-3327-00-00 ADD END
		
		if (isSuccess(result))
		{
			CAANMsg[] dataList = getResultMsgList(result, ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST);
			if ((dataList == null) || (dataList.length == 0))
			{
				returnCd = PMP_ERR_NODATA;   // データなし
			}
			else
			{
				custInfo = dataList[0];
				String mapKeyPre = ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST + "[0].";
				svcKeiNo = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.SVC_KEI_NO);
			}
		}
		else
		{
			returnCd = PMP_ERR_OTHER;   // その他のエラー
		}

		//***************************************************
		// 最終更新日時取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			result = callECK0011B120(handle, param, sysid);
			if (isSuccess(result))
			{
				CAANMsg[] dataList = getResultMsgList(result, ECK0011B120CBSMsg.ECK0011B120CBSMSG1LIST);
				if ((dataList == null) || (dataList.length == 0))
				{
					returnCd = PMP_ERR_NODATA;   // データなし
				}
				else
				{
					String mapKeyPre = ECK0011B120CBSMsg.ECK0011B120CBSMSG1LIST + "[0].";
					chkCkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.CK_UPD_DTM);
					chkKkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.KK_UPD_DTM);
				}
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}

		// ANK-3612-00-00 ADD START
		//***************************************************
		// 分割住所取得
		//***************************************************
		// 契約者住所編集結果
		Map<String, Object> adEditRslt = null;
		// コンテンツ住所編集結果
		Map<String, Object> contAdEditRslt = null;

		if (OPE_PMP1.equals(ope_id) || OPE_PMP2.equals(ope_id) || OPE_PMP3.equals(ope_id) )
		{
			// サービスIDを取得
			String serviceId = param.getUsecaseID();

			if (JCKBPCommon.isNullOrBlank(svcKeiNo) && !JKKStringUtil.isNullSpace(custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_PCD)))
			{
				// 住所編集部品のパラメータ作成
				Map<String, Object> trgtData = new HashMap<String, Object>();
				// 編集モード
				trgtData.put(JKKAdEdit.EDIT_MODE, JKKAdEdit.EDIT_MODE_CHG);
				// 郵便番号
				trgtData.put(JKKAdEdit.PCD, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_PCD));
				// 都道府県
				trgtData.put(JKKAdEdit.STATE_NM, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_STATE_NM));
				// 市区町村
				trgtData.put(JKKAdEdit.CITY_NM, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_CITY_NM));
				// 大字通称
				trgtData.put(JKKAdEdit.OAZTSU_NM, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_OAZTSU_NM));
				// 字丁目
				trgtData.put(JKKAdEdit.AZCHO_NM, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_AZCHO_NM));
				// 番地号
				trgtData.put(JKKAdEdit.BNCHIGO, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_BNCHIGO));
				// 建物名
				trgtData.put(JKKAdEdit.ADRTTM, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_ADRTTM));
				// 部屋番号
				trgtData.put(JKKAdEdit.ADRRM, custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_ADRRM));
				// 住所編集部品を実行(呼び出し元サービスIDが追加の場合、住所編集部品も修正すること)
				adEditRslt = JKKBpCommon.editAd(handle, param, trgtData, serviceId + "01CC");
			}
			else if (!JKKStringUtil.isNullSpace(custInfo.getString(ECK0011B050CBSMsg1List.CONT_PCD)))
			{
				// 住所編集部品のパラメータ作成
				Map<String, Object> trgtData = new HashMap<String, Object>();
				// 編集モード
				trgtData.put(JKKAdEdit.EDIT_MODE, JKKAdEdit.EDIT_MODE_CHG);
				// 郵便番号
				trgtData.put(JKKAdEdit.PCD, custInfo.getString(ECK0011B050CBSMsg1List.CONT_PCD));
				// 番地号(コンテンツ住所は番地号に都道府県/市区町村/大字通称名/字丁目/番地号がまとまっている)
				trgtData.put(JKKAdEdit.BNCHIGO, custInfo.getString(ECK0011B050CBSMsg1List.CONT_BNCHIGO));
				// 建物名
				trgtData.put(JKKAdEdit.ADRTTM, custInfo.getString(ECK0011B050CBSMsg1List.CONT_ADRTTM));
				// 部屋番号
				trgtData.put(JKKAdEdit.ADRRM, custInfo.getString(ECK0011B050CBSMsg1List.CONT_ADRRM));
				// 住所編集部品を実行(呼び出し元サービスIDが追加の場合、住所編集部品も修正すること)
				// OM-2022-0001147 MOD START
//				contAdEditRslt = JKKBpCommon.editAd(handle, param, trgtData, serviceId + "01CC");
				contAdEditRslt = JKKBpCommon.editAd_2(handle, param, trgtData, serviceId + "01CC");
				// OM-2022-0001147 MOD END
			}
		}
		// ANK-3612-00-00 ADD END

		//***************************************************
		// 返却パラメータ設定
		//***************************************************

		// 最後に実行したSCの実行結果を取得
		result = getLastResult(param);

		// 下りコントロールマップのセット
		setResultCtrlData(param, result, fixedText);

		// SC実行エラーの場合は、結果に応じてリターンコードを設定
		if (PMP_ERR_OTHER.equals(returnCd))
		{
			String scReturnCd = getReturnCode(result).toString();
			String scStatusCd = getStatus(result).toString();
			returnCd = ("0".equals(scReturnCd) && "1000".equals(scStatusCd)) ? PMP_ERR_PARAM : PMP_ERR_SYSTEM;
		}
		// OM-2016-0001646 ADD START
		if (PMP_ERR_PARAM.equals(returnCd))
		{
			if (!run_flg)
			{
				// SCの実行結果をユーザー情報に設定する。(CKSV901001CC)
				editResultErrorInfo(result, (HashMap<String, Object>)inMap, new Object[][] {}, true, "1");
			}
		}
		// OM-2016-0001646 ADD END

		// 下りユーザデータマップのセット
		Map<String, Object> resultMap = new HashMap();

		if (PMP_NORMAL_END.equals(returnCd))
		{
			String keishaCustName = custInfo.getString(ECK0011B050CBSMsg1List.CUST_NM);
			String keishaCustKana = custInfo.getString(ECK0011B050CBSMsg1List.CUST_KANA);
			String contCustName = custInfo.getString(ECK0011B050CBSMsg1List.CONT_CUST_NM);
			String contCustKana = custInfo.getString(ECK0011B050CBSMsg1List.CONT_CUST_KANA);
			String keishaZipCd = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_PCD);
			String keishaStateNm = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_STATE_NM);
			String keishaCityNm = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_CITY_NM);
			String keishaOaztsuNm = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_OAZTSU_NM);
			String keishaAzchoNm = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_AZCHO_NM);
			String keishaBnchigo = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_BNCHIGO);
			String keishaAdrttm = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_ADRTTM);
			String keishaAdrrm = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_ADRRM);
			String keishaGender = custInfo.getString(ECK0011B050CBSMsg1List.CUST_SEX_CD);
			if (JCKBPCommon.isNullOrBlank(keishaGender))
			{
				keishaGender = CD00245_SEX_CD_OTHER;
			}
			String keishaTelNo = custInfo.getString(ECK0011B050CBSMsg1List.KEISHA_TELNO);
			String keishaBirthDay = custInfo.getString(ECK0011B050CBSMsg1List.CUST_BIRTHD);
			String contZipCd = custInfo.getString(ECK0011B050CBSMsg1List.CONT_PCD);
			String contBnchigo = custInfo.getString(ECK0011B050CBSMsg1List.CONT_BNCHIGO);
			String contAdrttm = custInfo.getString(ECK0011B050CBSMsg1List.CONT_ADRTTM);
			String contAdrrm = custInfo.getString(ECK0011B050CBSMsg1List.CONT_ADRRM);
			String contAdBnktPst = custInfo.getString(ECK0011B050CBSMsg1List.CONT_AD_BNKT_STA_PST);
			String contGender = custInfo.getString(ECK0011B050CBSMsg1List.CONT_CUST_SEX_CD);
			if (JCKBPCommon.isNullOrBlank(contGender))
			{
				contGender = CD00245_SEX_CD_OTHER;
			}
			String contTelNo = custInfo.getString(ECK0011B050CBSMsg1List.CONT_TELNO);
			String contBirthDay = custInfo.getString(ECK0011B050CBSMsg1List.CONT_CUST_BIRTHD);

			String[] custNameAry   = {};
			String[] custKanaAry   = {};
			String[] contAddress   = {};

			if (JCKBPCommon.isNullOrBlank(svcKeiNo))
			{
				// 標準コンテンツ規約に未同意の場合は住所に契約者住所をセット
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ZIP_CODE, keishaZipCd);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.GENDER, keishaGender);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.TEL_NUMBER, keishaTelNo);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.DATE_OF_BIRTH, keishaBirthDay);
				contAddress = JCKLcsCommonUtil.convAdForPmp(keishaStateNm, keishaCityNm, keishaOaztsuNm, keishaAzchoNm, keishaBnchigo, keishaAdrttm, keishaAdrrm);
				custNameAry = ((keishaCustName != null) ? keishaCustName : "").split(PMP_NAME_DELIMITER, 2);
				custKanaAry = ((keishaCustKana != null) ? keishaCustKana : "").split(PMP_NAME_DELIMITER, 2);
				// ANK-3477-00-00 ADD START
				// OM-2018-0001316 ADD START
				if (OPE_PMP1.equals(ope_id) || OPE_PMP2.equals(ope_id) || OPE_PMP3.equals(ope_id) )
				{
				// OM-2018-0001316 ADD END
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS4, keishaAdrttm);
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS5, keishaAdrrm);
				// OM-2018-0001316 ADD START
					// ANK-3612-00-00 ADD START
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS6, (String)adEditRslt.get(JKKAdEdit.STATE_NM) + (String)adEditRslt.get(JKKAdEdit.CITY_NM)
							+ (String)adEditRslt.get(JKKAdEdit.OAZTSU_NM) + (String)adEditRslt.get(JKKAdEdit.AZCHO_NM));
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS7, (String)adEditRslt.get(JKKAdEdit.BNCHIGO));
					// ANK-3612-00-00 ADD END
				}
				// OM-2018-0001316 ADD END
				// ANK-3477-00-00 ADD END
			}
			else
			{
				// 標準コンテンツ規約に同意済みの場合は住所にコンテンツ住所をセット
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ZIP_CODE, contZipCd);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.GENDER, contGender);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.TEL_NUMBER, contTelNo);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.DATE_OF_BIRTH, contBirthDay);
				contAddress = JCKLcsCommonUtil.convAdForPmp(contBnchigo, contAdrttm, contAdrrm, contAdBnktPst);
				custNameAry = ((contCustName != null) ? contCustName : "").split(PMP_NAME_DELIMITER, 2);
				custKanaAry = ((contCustKana != null) ? contCustKana : "").split(PMP_NAME_DELIMITER, 2);
				// ANK-3477-00-00 ADD START
				// OM-2018-0001316 ADD START
				if (OPE_PMP1.equals(ope_id) || OPE_PMP2.equals(ope_id) || OPE_PMP3.equals(ope_id) )
				{
				// OM-2018-0001316 ADD END
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS4, contAdrttm);
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS5, contAdrrm);
				// OM-2018-0001316 ADD START
					// ANK-3612-00-00 ADD START
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS6, (String)contAdEditRslt.get(JKKAdEdit.STATE_NM) + (String)contAdEditRslt.get(JKKAdEdit.CITY_NM)
							+ (String)contAdEditRslt.get(JKKAdEdit.OAZTSU_NM) + (String)contAdEditRslt.get(JKKAdEdit.AZCHO_NM));
					resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS7, (String)contAdEditRslt.get(JKKAdEdit.BNCHIGO));
					// ANK-3612-00-00 ADD END
				}
				// OM-2018-0001316 ADD END
				// ANK-3477-00-00 ADD END
			}

			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.FIRST_NAME, custNameAry[0]);
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.SECOND_NAME, (custNameAry.length > 1) ? custNameAry[1] : "");
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.FIRST_NAME_KANA, custKanaAry[0]);
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.SECOND_NAME_KANA, (custKanaAry.length > 1) ? custKanaAry[1] : "");
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.EO_ID, custInfo.getString(ECK0011B050CBSMsg1List.EOID));
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.MEMBER_DIV, custInfo.getString(ECK0011B050CBSMsg1List.MEMBER_SBT_CD));
			// ANK-3194-00-00 MOD START
			//resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.CONTACT_MAILADDRESS, custInfo.getString(ECK0011B050CBSMsg1List.MLAD));
			if (custInfo.getString(ECK0011B050CBSMsg1List.MLAD) != null && custInfo.getString(ECK0011B050CBSMsg1List.MLAD).equals(custInfo.getString(ECK0011B050CBSMsg1List.CHGECHU_MLAD)))
			{
				// 連絡先メールアドレスと変更手続き中メールアドレスが同じアドレスの場合、何も設定しない
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.CONTACT_MAILADDRESS, "");
			}
			else
			{
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.CONTACT_MAILADDRESS, custInfo.getString(ECK0011B050CBSMsg1List.MLAD));
			}
			// ANK-3194-00-00 MOD END
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.CHANGE_PROC_MAILADDRESS, custInfo.getString(ECK0011B050CBSMsg1List.CHGECHU_MLAD));
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.PWD_REMINDER_QUESTION, custInfo.getString(ECK0011B050CBSMsg1List.PWD_REMINDER_QS_NAIYO));
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.PWD_REMINDER_QUESTION_CODE, custInfo.getString(ECK0011B050CBSMsg1List.PWD_REMINDER_QS_CD));
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.PWD_REMINDER_ANSWER, custInfo.getString(ECK0011B050CBSMsg1List.PWD_REMINDER_ANS));
			// ANK-4009-00-00 ADD START
			if (OPE_PMP1.equals(ope_id) || OPE_PMP2.equals(ope_id) || OPE_PMP3.equals(ope_id))
			{
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.LINE_RNKI_UM, custInfo.getString(ECK0011B050CBSMsg1List.LINE_RNKI_UM));
			}
			// ANK-4009-00-00 ADD END
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ERROR_WORD_FLG, null);
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.NICKNAME, custInfo.getString(ECK0011B050CBSMsg1List.NKNAME));
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.DEFAULT_CONTENTS_AGREEMENT_FLG, (isNullOrBlank(svcKeiNo)) ? "0" : "1");
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS1, (contAddress.length > 0) ? contAddress[0] : "");
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS2, (contAddress.length > 1) ? contAddress[1] : "");
			resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS3, (contAddress.length > 2) ? contAddress[2] : "");

			// マスター(法人)の場合は契約者住所を会社住所にセット
			if (MMB_SBT_CD_MASTER_HOJIN.equals(resultMap.get(CKSV9010_CKSV9010OP_CKSV901001CC.MEMBER_DIV)))
			{
				String[] hojinCustNameAry = ((keishaCustName != null) ? keishaCustName : "").split(PMP_NAME_DELIMITER, 2);
				String[] hojinCustKanaAry = ((keishaCustKana != null) ? keishaCustKana : "").split(PMP_NAME_DELIMITER, 2);
				String[] hojinCustAddress = JCKLcsCommonUtil.convAdForPmp(keishaStateNm, keishaCityNm, keishaOaztsuNm, keishaAzchoNm, keishaBnchigo, keishaAdrttm, keishaAdrrm);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.FIRST_NAME_CO, hojinCustNameAry[0]);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.SECOND_NAME_CO, (hojinCustNameAry.length > 1) ? hojinCustNameAry[1] : "");
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.FIRST_NAME_KANA_CO, hojinCustKanaAry[0]);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.SECOND_NAME_KANA_CO, (hojinCustKanaAry.length > 1) ? hojinCustKanaAry[1] : "");
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.GENDER_CO, keishaGender);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.TEL_NUMBER_CO, keishaTelNo);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.DATE_OF_BIRTH_CO, keishaBirthDay);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ZIP_CODE_CO, keishaZipCd);
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS1_CO, (hojinCustAddress.length > 0) ? hojinCustAddress[0] : "");
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS2_CO, (hojinCustAddress.length > 1) ? hojinCustAddress[1] : "");
				resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.ADDRESS3_CO, (hojinCustAddress.length > 2) ? hojinCustAddress[2] : "");
			}
		}

		resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.CK_UPD_DTM, chkCkUpdDtm); // 最新更新日時(お客様)
		resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.KK_UPD_DTM, chkKkUpdDtm); // 最新更新日時(サービス契約)
		resultMap.put(CKSV9010_CKSV9010OP_CKSV901001CC.RETURN_CODE, returnCd);   // リターンコード

		setResultUserData(param, fixedText, resultMap);

		//*************************************************
		// 処理結果の判定
		//*************************************************
		if (isError(result))
		{
			String errMsg = "PMP連携お客様情報照会CCでエラーが発生しました";
			throw new CCException(errMsg, new Exception(errMsg));
		}

		return param;
	}

	/**
	 * BPチェック用パラメータ作成。<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return BPチェック用パラメータ
	 */
	@SuppressWarnings("unchecked")
	public HashMap getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	{
		// BPチェックはスキップする
		return JCKPmpScParamHenshu.createBpNotCheckParam();
	}

	/**
	 * ＢＰチェック結果を編集する。<br />
	 * @param param リクエストパラメータ
	 * @param caanMsgs サービスインターフェイス用のパラメータ配列
	 * @param returnCode リターンコード
	 * @return リクエストパラメータ
	 * @throws Throwable 
	 */
	public IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] caanMsgs, Integer returnCode) throws Throwable
	{
		return JCKPmpScParamHenshu.editErrorInfo(param, caanMsgs, returnCode);
	}
}
