/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCKSV903101CC
*   ソースファイル名：JCKSV903101CC.java
*   作成者          ：富士通
*   日付            ：2011年12月16日
*＜機能概要＞
*  指定されたSYSIDの会員種別を変更します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/12/16   FJ）村上    新規作成
*   v8.00.00    2014/03/25   FJ）山口    【ANK-1962-00-00】S-IF入力項目変更対応
*   v8.00.00    2014/06/11   FJ) 窪田    OM-2014-0002141対応
*   v8.00.01    2014/06/13   FJ）窪田    OM-2014-0002028対応
*   v10.00.00   2014/09/06   FJ）乾      OM-2014-0002838対応
*   v17.00.00   2015/07/30   FJ) 山岡    【ANK-2557-00-00_PMP再構築対応】eoID形式チェックを追加
*   v47.00.00   2019/11/07   FJ) 三原    【ANK-3706-00-00】ｅｏＩＤログインのセキュリティ強化対応
*   v48.00.00   2020/02/17   FJ) 美濃原  【ANK-3814-00-00】eoIDログインセキュリティ強化フォロー対応
**********************************************************************/

package com.fujitsu.futurity.bp.custom.common;

import static eo.common.constant.JCKStrConst.*;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpCommonUtil.*;
import static com.fujitsu.futurity.bp.custom.common.JCKPmpScParamHenshu.*;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.CKSV9031_CKSV9031OP_CKSV903101CC;
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.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;

import eo.common.util.JKKStringUtil;
import eo.ejb.cbm.entity.KK0161ETMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011C011CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C100CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111B002CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0121D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C120CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B060CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B060CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B120CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011C180CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0151D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201E010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECKA9020001CBSMsg;
import eo.ejb.common.JKKModelCommon;
import eo.ejb.common.db.JKKejbDBAUtil;
import eo.ejb.common.db.JKKejbKK0161DBABase;

/**
 * 指定されたSYSIDの会員種別を変更します。
 * <BR>
 * @ author 富士通
 */
public class JCKSV903101CC extends AbstractCommonComponent implements ICommonComponent
{
	/** 当CCの内部でしか使わないエラーコード */
	private static final String PMP_ERR_OTHER = "OTHER";

	/**
	 * 会員種別変更メイン処理。<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 workDiv = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.WORK_DIV);
		String sysid = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.SYSID);
		String eoid = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.EOID);
		String eoidPw = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.EOID_PW);
		String grpJoinCd = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.GRP_JOIN_CD);
		String popid = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.POPID);
		String kanaSei = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.KANA_SEI);
		String kanaNm = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.KANA_NM);
		String sex = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.SEX);
		String telno = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.TELNO);
		String birthd = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.BIRTHD);
		String rrksMlad = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.RRKS_MLAD);
		String chgechuMlad = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.CHGECHU_MLAD);
		String pwdReminderQsCd = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.PWD_REMINDER_QS_CD);
		String pwdReminderAns = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.PWD_REMINDER_ANS);
		String nkname = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.NKNAME);
		ArrayList mailRcvSetteList = (ArrayList)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.MAIL_RCV_SETTE_LIST);
		String ckUpdDtm = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.CK_UPD_DTM);
		String kkUpdDtm = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.KK_UPD_DTM);

		// リターンコード初期化
		String returnCd = PMP_NORMAL_END;

		//***************************************************
		// 内部で使用する変数の初期化
		//***************************************************
		Map adminCustMap = new HashMap();
		Map<String, Object> nowCustMap = new HashMap<String, Object>();
		CAANMsg custResultMsg = null;
		String wkFuncCd = null;
		String wkParamId = null;
		String wkMlad = null;
		String memberSbtCd = null;
		String updDtmSysid = null;
		String contCustNm = null;

		String opeDate = JCCBPCommon.getOpeDate(null);

		String nowMemberSbtCd = null;
		String nowContTelno = null;
		String nowRrksNoContTelno = null;
		String nowEoid = null;
		String nowNkname = null;
		String nowPwdReminderQsCd = null;
		String nowPwdReminderAns = null;
		String nowEoidChgeYmd = null;
		String nowNknameChgeYmd = null;
		String nowOldEonetmbNinshoId = null;
		String nowMlad = null;
		String nowEonetidMiIkoFlg = null;
		// ANK-3706-00-00 ADD START
		// ■ANK-3814-00-00 連携電話番号（契約者電話番号、コンテンツ電話番号等）を設定
		String nowKeishaTelno = null;
		// ANK-3706-00-00 ADD END

		String masterSysid = null;
		String masterMemberSbtCd = null;
		String masterGrpCd = null;
		

		String kepgKjnifTratDoiUm = null;
		String kepgKjnifTratDoiYmd = null;
		String kepgKjniftFfg = null;
		String kepgKjniftFfgChgYmd = null;
		String kepgKjniftFfgChgUwyCd = null;
		String kepgKjniftJokyoCd = null;
		String kepgKjniftStaYmd = null;
		String kepgKjniftRscd = null;
		String kepgKjniftRscdChgYmd = null;
		
		String grpLeaderSysid = null;
		
		//***************************************************
		// PMP連携用排他制御
		//***************************************************
		Map result = callECKA9020001(handle, param, sysid, "2");
		if (isSuccess(result))
		{
			String errFlg = getResultString(result, ECKA9020001CBSMsg.LOCK_ERR_FLG);
			if (!"0".equals(errFlg))
			{
				returnCd = PMP_ERR_EXCLUSION;
			}
		}
		else
		{
			returnCd = PMP_ERR_OTHER;
		}

		//***************************************************
		// 最終更新日時チェック
		//***************************************************
		String lastCkUpdDtm = null;
		String lastKkUpdDtm = null;
		if (JCKBPCommon.inArray(returnCd, PMP_NORMAL_END, PMP_ERR_EXCLUSION))
		{
			result = callECK0011B120(handle, param, sysid);
			if (isSuccess(result))
			{
				String mapKeyPre = ECK0011B120CBSMsg.ECK0011B120CBSMSG1LIST + "[0].";
				String chkCkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.CK_UPD_DTM);
				String chkKkUpdDtm = getResultString(result, mapKeyPre + ECK0011B120CBSMsg1List.KK_UPD_DTM);
				updDtmSysid = ckUpdDtm;
				if ((!kkUpdDtm.equals(chkKkUpdDtm)) || PMP_ERR_EXCLUSION.equals(returnCd))
				{
					if ((chkCkUpdDtm  != null) && (chkKkUpdDtm != null))
					{
						lastCkUpdDtm = chkCkUpdDtm;
						lastKkUpdDtm = chkKkUpdDtm;
						returnCd = PMP_ERR_EXCLUSION;   // 更新日時が異なる時は排他エラー
					}
					else
					{
						returnCd = PMP_ERR_NODATA;   // 該当データが存在しない場合はデータ無しエラー
					}
				}
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}
		
		//***************************************************
		// お客様情報取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			result = callECK0011B050(handle, param, "1", sysid);
			if (isSuccess(result))
			{
				
				CAANMsg[] dataList = getResultMsgList(result, ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST);
				if ((dataList == null) || (dataList.length == 0))
				{
					returnCd = PMP_ERR_NODATA;   // データなし
				}
				else
				{
					// お客様情報照会(PMP連携用)結果を取得
					custResultMsg = getResultMsgList(result, ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST)[0];
					// お客様情報照会(PMP連携用)結果マップを取得
					nowCustMap = copyMsgToMap(custResultMsg, ECK0011B050CBSMsg1List.class, ECK0011B050CBSMsg1List.class);

					
					String mapKeyPre = ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST + "[0].";
					nowMemberSbtCd = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.MEMBER_SBT_CD);
					nowContTelno = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.CONT_TELNO);
					nowRrksNoContTelno = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.RRKS_NO_CONT_TELNO);
					nowEoid = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.EOID);
					nowNkname = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.NKNAME);
					nowPwdReminderQsCd = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.PWD_REMINDER_QS_CD);
					nowPwdReminderAns = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.PWD_REMINDER_ANS);
					nowEoidChgeYmd = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.EOID_CHGE_YMD);
					nowNknameChgeYmd = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.NKNAME_CHGE_YMD);
					nowOldEonetmbNinshoId = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.OLD_EONETMB_NINSHO_ID);
					nowMlad = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.MLAD);
					nowEonetidMiIkoFlg = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.EONETID_MI_IKO_FLG);
					// ANK-3814-00-00 DEL START
					// ANK-3706-00-00 ADD START
					//nowKeishaTelno = getResultString(result, mapKeyPre + ECK0011B050CBSMsg1List.KEISHA_TELNO);
					// ANK-3706-00-00 ADD END
					// ANK-3814-00-00 DEL END
				}
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}
		
		//***************************************************
		// グループ入会コード存在チェック
		//***************************************************
		if ((PMP_NORMAL_END.equals(returnCd)) && ("0".equals(workDiv)))
		{
			if (!checkGrpJoinCdPwd(handle, param, "1", grpJoinCd, ""))
			{
				returnCd = PMP_ERR_NO_GRP;   // グループ入会コード無しエラー
			}
		}
		
		//***************************************************
		// POPID存在チェック
		//***************************************************
		if ((PMP_NORMAL_END.equals(returnCd)) && ("1".equals(workDiv)))
		{
			if (!checkPopId(handle, param, "1", popid))
			{
				returnCd = PMP_ERR_POPID_AUTH;   // POPID認証エラー
			}
		}

		
		//業務区分＝0,1,3,4,5の場合のみ、以下の処理を実施
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "0", "1", "3", "4", "5"))
			{
				//***************************************************
				// マスター会員情報取得
				//***************************************************
				// 機能コードの編集
				if ("0".equals(workDiv))
				{
					wkFuncCd = "3";
				}
				else if ("1".equals(workDiv))
				{
					wkFuncCd = "4";
				}
				else
				{
					wkFuncCd = "6";
				}
	
				result = callECK0011B060(handle, param, wkFuncCd, sysid, eoid, popid, "", "", grpJoinCd, nowOldEonetmbNinshoId);
				if (isSuccess(result))
				{
					
					CAANMsg[] dataList = getResultMsgList(result, ECK0011B060CBSMsg.ECK0011B060CBSMSG1LIST);
					if ((dataList == null) || (dataList.length == 0))
					{
						if ("0".equals(workDiv))
						{
							returnCd = PMP_ERR_NO_GRP;   // グループ入会コード無しエラー
						}
						else if ("1".equals(workDiv))
						{
							returnCd = PMP_ERR_POPID_AUTH; // POPID認証エラー
						}
						else
						{
							returnCd = PMP_ERR_NODATA;     // データなし
						}
					}
					else
					{
						String mapKeyPre = ECK0011B060CBSMsg.ECK0011B060CBSMSG1LIST + "[0].";
						masterSysid = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.SYSID);
						masterMemberSbtCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.MEMBER_SBT_CD);
						masterGrpCd = getResultString(result, mapKeyPre + ECK0011B060CBSMsg1List.GRP_CD);
					}
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}
			
		//業務区分＝0,1,3,4,5の場合のみ、以下の処理を実施
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "0", "1", "3", "4", "5"))
			{
				//***************************************************
				// ファミリー会員登録件数チェック
				//***************************************************
				// 機能コードの編集
				if ("0".equals(workDiv))
				{
					wkFuncCd = "1";
				}
				else if ("1".equals(workDiv))
				{
					wkFuncCd = "2";
				}
				else
				{
					wkFuncCd = "4";
				}
	
				// 業務パラメータの編集
				if ("10".equals(masterMemberSbtCd))
				{
					wkParamId = WORK_PARAM_ID_FAMILY_KJ_MMB_CNT;
				}
				else
				{
					wkParamId = WORK_PARAM_ID_FAMILY_HJ_MMB_CNT;
				}
	
				if (!checkFamilyMmbAddCnt(handle, param, wkFuncCd, grpJoinCd, popid, "", nowOldEonetmbNinshoId, wkParamId))
				{
					returnCd = PMP_ERR_FAMILY_MMB_CNT;   // ファミリー会員登録件数超過エラー
				}
			}
		}

		//***************************************************
		//グループ情報照会(グループリーダーSYSIDの取得
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// グループ情報照会SC呼出
			result = callECK0111B002(handle, param, "1", sysid);
			if (isSuccess(result))
			{
//				OM-2014-0002838 DEL START
//				CAANMsg[] dataList = getResultMsgList(result, ECK0111B002CBSMsg.ECK0111B002CBSMSG1LIST);
//				// お客様情報照会(PMP連携用)結果マップを取得
//				nowCustMap = copyMsgToMap(custResultMsg, ECK0111B002CBSMsg1List.class, ECK0111B002CBSMsg1List.class);
//				OM-2014-0002838 DEL END

				
				String mapKeyPre = ECK0111B002CBSMsg.ECK0111B002CBSMSG1LIST + "[0].";
				grpLeaderSysid = getResultString(result, mapKeyPre + ECK0111B002CBSMsg1List.GRP_LEADER_SYSID);
			}
			printDebugLog("グループリーダーSYSID:[" + grpLeaderSysid + "]");
		}
		
		//業務区分＝3,4,5,6,7の場合のみ、以下の処理を実施
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "3", "4", "5", "6", "7"))
			{
				if (!nowEoid.equals(eoid))
				{
					//***************************************************
					// eoID更新日チェック
					//***************************************************
					if (!checkUpdFailPrd(handle, param, opeDate, WORK_PARAM_ID_EOID_CHGFAIL_DAYS ,nowEoidChgeYmd))
					{
						returnCd = PMP_ERR_EOID_TERM;   // eoID規定の期間以内の更新エラー
					}
					
					//***************************************************
					// eoID重複チェック
					//***************************************************
					if (PMP_NORMAL_END.equals(returnCd))
					{
						if (!checkDupEoId(handle, param, eoid))
						{
							returnCd = PMP_ERR_EOID_DUP;   // eoID重複エラー
						}
					}
					
					//***************************************************
					// eoID禁則文字チェック
					//***************************************************
					if (PMP_NORMAL_END.equals(returnCd))
					{	
						if (!checkEoidErrMoji(handle, param, eoid))
						{
							returnCd = PMP_ERR_EOID_PROHIBITION;   // eoID禁則文字チェックエラー
						}
					}
					/*---< ANK-2557-00-00 add start >---*/
					//***************************************************
					// eoID半角英数字11チェック
					//***************************************************
					if (PMP_NORMAL_END.equals(returnCd))
					{	
						if (!enNumber11Check(handle, param, eoid))
						{
							returnCd = PMP_ERR_EOID_PROHIBITION;   // eoID半角英数字11チェックエラー
						}
					}
					/*---< ANK-2557-00-00 add end >---*/
				}

				if (PMP_NORMAL_END.equals(returnCd))
				{
					if (!JCKBPCommon.isNullOrBlank(nowNkname) && !nowNkname.equals(nkname) && !JCKBPCommon.isNullOrBlank(nkname))
					{
						//***************************************************
						// ニックネーム更新日チェック
						//***************************************************
						if (!checkUpdFailPrd(handle, param, opeDate, WORK_PARAM_ID_NKNM_CHGFAIL_DAYS, nowNknameChgeYmd))
						{
							returnCd = PMP_ERR_NKNM_TERM;   // ニックネーム規定の期間以内の更新エラー
						}
					}
					if ((JCKBPCommon.isNullOrBlank(nowNkname) || !nowNkname.equals(nkname)) && !JCKBPCommon.isNullOrBlank(nkname))
					{
						//***************************************************
						// ニックネーム重複チェック
						//***************************************************
						if (PMP_NORMAL_END.equals(returnCd))
						{
							if (!checkDupNkName(handle, param, nkname))
							{
								returnCd = PMP_ERR_NKNM_DUP;   // ニックネーム重複エラー
							}
						}
					}
				}

				if (PMP_NORMAL_END.equals(returnCd))
				{
					if (JCKBPCommon.inArray(workDiv, "5", "7"))
					{
						//***************************************************
						// 拒否メールドメインチェック
						//***************************************************
						if (!checkKyohiMailDomain(handle, param, opeDate, chgechuMlad.substring(chgechuMlad.indexOf("@") + 1)))
						{
							returnCd = PMP_ERR_REJECT_DOMAIN;   // 拒否メールドメインチェックエラー
						}
					}
				}

				if (PMP_NORMAL_END.equals(returnCd))
				{
					//***************************************************
					// 同一人チェック
					//***************************************************
					String wkKanaNm = kanaSei + PMP_NAME_DELIMITER + kanaNm;

					if (!checkSameMmb(handle, param, wkKanaNm, birthd, rrksMlad, sysid))
					{
						returnCd = PMP_ERR_MMB_DUP;   // フリガナ氏名、生年月日、連絡用アドレス重複エラー
					}
				}

				if (PMP_NORMAL_END.equals(returnCd))
				{
					//***************************************************
					// メールアドレス変更有無チェック
					//***************************************************
					if ((JCKBPCommon.inArray(workDiv, "3", "5", "6", "7")) && (!rrksMlad.equals(nowMlad)))
					{
						returnCd = PMP_ERR_PARAM;   // 業務区分・連絡先メールアドレス妥当性エラー
					}

					if (("4".equals(workDiv)) && (rrksMlad.equals(nowMlad)))
					{
						returnCd = PMP_ERR_PARAM;   // 業務区分・連絡先メールアドレス妥当性エラー
					}

					if ((JCKBPCommon.inArray(workDiv, "5", "7")) && (chgechuMlad.equals(nowMlad)))
					{
						returnCd = PMP_ERR_PARAM;   // 業務区分・変更手続中メールアドレス妥当性エラー
					}
				}
			}
		}
		

		//***************************************************
		// 会員種別変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// 会員種別コードの編集
			if (JCKBPCommon.inArray(workDiv, "2", "6", "7"))
			{
				memberSbtCd = MMB_SBT_CD_OPEN;
			}
			else
			{
				if (MMB_SBT_CD_MASTER_KOJIN.equals(masterMemberSbtCd))
				{
					memberSbtCd = MMB_SBT_CD_FAMILY_KOJIN;
				}
				else
				{
					memberSbtCd = MMB_SBT_CD_FAMILY_HOJIN;
				}
			}

			result = callECK0011C120(handle, param, sysid, memberSbtCd, updDtmSysid);
			if (isSuccess(result))
			{
				updDtmSysid = getResultString(result, ECK0011C120CBSMsg.UPD_DTM);
			}

			if (isError(result))
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}

		//***************************************************
		//お客様一意照会
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// お客様一意照会SC呼出
			result = callECK0011A010(handle, param, "2", sysid, opeDate);
			if (isSuccess(result))
			{
				String mapKeyPre = ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST + "[0].";
				// 関電G個人情報取扱同意有無
				kepgKjnifTratDoiUm = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIF_TRAT_DOI_UM);
				// 関電G個人情報取扱同意年月日
				kepgKjnifTratDoiYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIF_TRAT_DOI_YMD);
				// 関電G個人情報提供不可フラグ
				kepgKjniftFfg = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG);
				// 関電G個人情報提供不可フラグ変更年月日
				kepgKjniftFfgChgYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG_CHG_YMD);
				// 関電G個人情報提供不可フラグ変更受付方法コード
				kepgKjniftFfgChgUwyCd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_FFG_CHG_UWY_CD);
				// 関電G個人情報提供状況コード
				kepgKjniftJokyoCd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_JOKYO_CD);
				// 関電G個人情報提供開始年月日
				kepgKjniftStaYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_STAYMD);
				// 関電G個人情報提供連携状態コード
				kepgKjniftRscd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_RSCD);
				// 関電G個人情報提供連携状態コード変更年月日
				kepgKjniftRscdChgYmd = getResultString(result, mapKeyPre + ECK0011A010CBSMsg1List.KEPG_KJNIFT_RSCD_CHG_YMD);
			}
			else
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}
		
		//***************************************************
		// お客様＜個人＞内容変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "3", "4", "5", "6", "7"))
			{

				// お客様<個人>内容変更SC呼出用マップ取得
				Map custMap = getUpdCustMapForKojin(inMap, nowCustMap, opeDate, updDtmSysid, kepgKjnifTratDoiUm,
																							kepgKjnifTratDoiYmd,
																							kepgKjniftFfg,
																							kepgKjniftFfgChgYmd,
																							kepgKjniftFfgChgUwyCd,
																							kepgKjniftJokyoCd,
																							kepgKjniftStaYmd,
																							kepgKjniftRscd,
																							kepgKjniftRscdChgYmd);

				result = callECK0021C010(handle, param, custMap);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0021C010CBSMsg.UPD_DTM);
					contCustNm = getResultString(result, ECK0021C010CBSMsg.CONT_CUST_NM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}

			}
		}

		//***************************************************
		// コンテンツISP利用情報変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			// オープン会員への種別変更時は、コンテンツISP利用不可フラグを"利用不可"に変更する。
			if (JCKBPCommon.inArray(workDiv, "2", "6", "7"))
			{
				result = callECK0011C011(handle, param, sysid, CONT_ISP_USE_FAIL_FLG_HI, opeDate, updDtmSysid);
				if (isSuccess(result))
				{
					updDtmSysid = getResultString(result, ECK0011C011CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// お客様グループ設定登録
		//***************************************************
		Map<String, String> grpSetteMap = new HashMap<String, String>();
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "0", "1", "3", "4", "5"))
			{
				// お客様グループ設定登録SC呼出
				result = callECK0121D010(handle, param, sysid, masterGrpCd, updDtmSysid);
				if (isSuccess(result))
				{
					grpSetteMap.put("mk_flg", getResultString(result, ECK0121D010CBSMsg.MK_FLG));
					grpSetteMap.put("add_dtm", getResultString(result, ECK0121D010CBSMsg.ADD_DTM));
					grpSetteMap.put("add_opeacnt", getResultString(result, ECK0121D010CBSMsg.ADD_OPEACNT));
					grpSetteMap.put("upd_dtm", getResultString(result, ECK0121D010CBSMsg.UPD_DTM));
					grpSetteMap.put("upd_opeacnt", getResultString(result, ECK0121D010CBSMsg.UPD_OPEACNT));
					updDtmSysid = getResultString(result, ECK0121D010CBSMsg.UPD_DTM);
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}

		//***************************************************
		// お客様グループ設定無効
		//***************************************************
		List<Map<String, String>> grpSetteList = null;
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if ("2".equals(workDiv))
			{
				Map tmpResult = mkCustGrpSetteByMmbSysid(handle, param, opeDate, sysid, updDtmSysid);
				result = (Map)tmpResult.get("result");
				if (isSuccess(result))
				{
					// 無効にしたグループ設定を取得
					grpSetteList = (List)tmpResult.get("cust_grp_sette_list");
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}
		}
		
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "3", "4", "5", "6", "7"))
			{
				//***************************************************
				// eoID変更
				//***************************************************
				if (!eoid.equals(nowEoid))
				{
					boolean agingEndFlg = true;
					// 変更後ｅｏＩＤと変更前ｅｏＩＤが異なる場合、変更前ｅｏＩＤをエイジング終了にする。
					Map tmpResult = chgEoIdAndAgingEnd(handle, param, opeDate, sysid, eoid, nowEoid, updDtmSysid, agingEndFlg);
					result = (Map)tmpResult.get("result");
					if (isSuccess(result))
					{
						updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
				//***************************************************
				// ニックネーム変更
				//***************************************************
				if (PMP_NORMAL_END.equals(returnCd))
				{
					if ((JCKBPCommon.isNullOrBlank(nowNkname) || !nowNkname.equals(nkname)) && !JCKBPCommon.isNullOrBlank(nkname))
					{
						Map tmpResult = chgNkNm(handle, param, opeDate, sysid, nkname, nowNkname, updDtmSysid);
						result = (Map)tmpResult.get("result");
						if (isSuccess(result))
						{
							updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
						}
						else
						{
							returnCd = PMP_ERR_OTHER;   // その他のエラー
						}
					}
				}
				//***************************************************
				// ニックネームクリア
				//***************************************************
				if (PMP_NORMAL_END.equals(returnCd))
				{
					if ((JCKBPCommon.isNullOrBlank(nkname)) && (!JCKBPCommon.isNullOrBlank(nowNkname)))
					{
						//***************************************************
						// ニックネームエイジング終了（ニックネームクリア分）
						//***************************************************
						result = chgNkNameAgingStateEnd(handle, param, nowNkname);
						if (isError(result))
						{
							returnCd = PMP_ERR_OTHER;   // その他のエラー
						}
						//***************************************************
						// ニックネームのクリア
						//***************************************************
						result = callECK0011C180(handle, param, sysid, updDtmSysid);
						if (isSuccess(result))
						{
							updDtmSysid = getResultString(result, ECK0011C180CBSMsg.UPD_DTM);
						}
						else
						{
							returnCd = PMP_ERR_OTHER;   // その他のエラー
						}
					}
				}
				//***************************************************
				// パスワードリマインダ変更
				//***************************************************
				if (PMP_NORMAL_END.equals(returnCd))
				{
					// パスワードリマインダ用質問コードとパスワードリマインダ用回答のいずれかに変更あり
					// ANK-3706-00-00 ADD START
					// パスワードリマインダ用質問コード(pwdReminderQsCd)とパスワードリマインダ用回答(pwdReminderAns)がnullで入ることがあるため、
					// nullできた場合は""に置き換える
					if (pwdReminderQsCd == null)
					{
						pwdReminderQsCd = "";
					}
					if (pwdReminderAns == null)
					{
						pwdReminderAns = "";
					}
					
					// 現在のパスワードリマインダ用質問コード
					if (nowPwdReminderQsCd == null)
					{
						nowPwdReminderQsCd = "";
					}
					// 現在のパスワードリマインダ用回答
					if (nowPwdReminderAns == null)
					{
						nowPwdReminderAns = "";
					}
					// ANK-3706-00-00 ADD END
					if ((!pwdReminderQsCd.equals(nowPwdReminderQsCd)) || (!pwdReminderAns.equals(nowPwdReminderAns)))
					{
						// パスワードリマインダ変更SC呼出
						result = callECK0011C100(handle, param, sysid, pwdReminderQsCd, pwdReminderAns, updDtmSysid);
						if (isSuccess(result))
						{
							updDtmSysid = getResultString(result, ECK0011C100CBSMsg.UPD_DTM);
						}
						else
						{
							returnCd = PMP_ERR_OTHER;   // その他のエラー
						}
					}
				}

				//***************************************************
				// オプトインメール受信設定登録更新
				//***************************************************
				if (PMP_NORMAL_END.equals(returnCd))
				{
					// オプトインメール受信設定登録更新
					Map tmpResult = addUpdOptinmRcvSette(handle, param, opeDate, sysid, memberSbtCd, nowMlad, rrksMlad, SVC_KEI_NO_RRKS_MLAD , "0", mailRcvSetteList, updDtmSysid);
					result = (Map)tmpResult.get("result");
					if (isSuccess(result))
					{
						updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}
			}
		}

		//***************************************************
		// 連絡先（メールアドレス）更新
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "4", "5", "7"))
			{
				// 機能コード、メールアドレスの編集
				if ("4".equals(workDiv))
				{
					wkFuncCd = "1";
					wkMlad = rrksMlad;
				}
				else
				{
					wkFuncCd = "2";
					wkMlad = chgechuMlad;
				}
	
				// 連絡先(メールアドレス)登録更新
				Map tmpResult = addUpdRrksMlad(handle, param, opeDate, wkFuncCd, sysid, wkMlad, updDtmSysid, opeDate);
				result = (Map)tmpResult.get("result");
				if (isSuccess(result))
				{
					updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
				}
				else
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
			}

		}


		//***************************************************
		// 連絡先（電話番号）登録更新
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "3", "4", "5", "6", "7"))
			{
				// 電話番号が変更されている
				if ((JCKBPCommon.isNullOrBlank(nowContTelno) || !nowContTelno.equals(telno)) && !JCKBPCommon.isNullOrBlank(telno))
				{
					// 連絡先(電話番号)登録更新
					Map tmpResult = addUpdRrksTelno(handle, param, opeDate, sysid, telno, updDtmSysid);
					result = (Map)tmpResult.get("result");
					if (isSuccess(result))
					{
						updDtmSysid = (String)tmpResult.get("upd_dtm_sysid");
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}

				// 電話番号がクリアされている
				if ((JCKBPCommon.isNullOrBlank(telno)) && (!JCKBPCommon.isNullOrBlank(nowRrksNoContTelno)))
				{
					// 連絡先の全世代を論理削除
					result =  delRrks(handle, param, nowRrksNoContTelno);
					if (isSuccess(result))
					{
						updDtmSysid = getResultString(result, ECK0201E010CBSMsg.UPD_DTM);
					}
					else
					{
						returnCd = PMP_ERR_OTHER;   // その他のエラー
					}
				}

			}
		}

		
		
		//***************************************************
		// 支払方法入力支援削除
		//***************************************************
		List paywayInsuportList = null;
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if (JCKBPCommon.inArray(workDiv, "2", "6", "7"))
			{
				Map tmpResult = delPaywayInsuportInfo(handle, param, "2", sysid);
				result = (Map)tmpResult.get("result");
				if (isError(result))
				{
					returnCd = PMP_ERR_OTHER;   // その他のエラー
				}
				paywayInsuportList = (List)tmpResult.get("payway_insuport_list");

			}
		}
		

		//***************************************************
		// サービス契約内訳<eoモバイル>変更
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			if ((JCKBPCommon.inArray(workDiv, "2")) && (!JCKBPCommon.isNullOrBlank(grpLeaderSysid)))
			{
				result = callEKK0201C080(handle, param, sysid, grpLeaderSysid, opeDate);
			}
		}

		//***************************************************
		// 指示書登録
		//***************************************************

		// ANK-3814-00-00 ADD START
		// 連携電話番号（契約者電話番号、コンテンツ電話番号等）
		if (PMP_NORMAL_END.equals(returnCd))
		{
			Map renkeiTelMap = JCKPmpCommonUtil.getSecurityRenkeiTelnoSonota(handle, param, sysid);
			if (renkeiTelMap == null || renkeiTelMap.size() == 0)
			{
				returnCd = PMP_ERR_OTHER; // その他のエラー
			}
			else
			{
				nowKeishaTelno = JKKStringUtil.nullToBlank((String)renkeiTelMap.get("outRenkeiTelno"));
			}
		}
		// ANK-3814-00-00 ADD END

		if (PMP_NORMAL_END.equals(returnCd))
		{
			// AdminAPI部分更新用の指示書作成(オープン会員→ファミリー会員(個人、法人))
			if (("0".equals(workDiv)) || ("1".equals(workDiv)))
			{
				// AdminAPI部分更新用の指示書パラメータ作成
				adminCustMap = new HashMap();
				adminCustMap.put("param1UpdPart",  ADMIN_SJISHO_PARAM1_UPD_PART);		// 処理区分
				adminCustMap.put("sysid", sysid);										// SYSID
				adminCustMap.put("memberSbtCd", memberSbtCd);							// 会員種別コード
				// ANK-3706-00-00 ADD START
				adminCustMap.put("keishaTelno", nowKeishaTelno);						// ■ANK-3814-00-00 連携電話番号（契約者電話番号、コンテンツ電話番号等）
				// ANK-3706-00-00 ADD END
				Map sjishoMap = createShijishoParamAdminApiUpd(adminCustMap);
				result = callECK0151D010Map(handle, param, sjishoMap);
			}

			// AdminAPI部分更新用の指示書作成(ファミリー会員(個人、法人)→オープン会員)
			if (isSuccess(result))
			{
				if ("2".equals(workDiv))
				{
					// AdminAPI部分更新用の指示書パラメータ作成
					adminCustMap = new HashMap();
					adminCustMap.put("param1UpdPart",  ADMIN_SJISHO_PARAM1_UPD_PART);		// 処理区分
					adminCustMap.put("sysid", sysid);										// SYSID
					adminCustMap.put("memberSbtCd", memberSbtCd);							// 会員種別コード
					adminCustMap.put("contIspUseFailFlg", "1");								// ISP利用停止フラグ
					// ANK-3706-00-00 ADD START
					adminCustMap.put("keishaTelno", nowKeishaTelno);						// ■ANK-3814-00-00 連携電話番号（契約者電話番号、コンテンツ電話番号等）
					// ANK-3706-00-00 ADD END
					Map sjishoMap = createShijishoParamAdminApiUpd(adminCustMap);
					result = callECK0151D010Map(handle, param, sjishoMap);
				}
			}

			// AdminAPI部分更新用の指示書作成(未移行会員→移行済会員)
			if (isSuccess(result))
			{
				if (JCKBPCommon.inArray(workDiv, "3", "4", "5", "6", "7"))
				{
					// AdminAPI部分更新用の指示書パラメータ作成
					adminCustMap = new HashMap();
					adminCustMap.put("param1UpdPart",  ADMIN_SJISHO_PARAM1_UPD_PART);		// 処理区分
					adminCustMap.put("sysid", sysid);										// SYSID
					adminCustMap.put("eoid", eoid);											// eoID
					adminCustMap.put("eoidPw", eoidPw);										// eoIDパスワード
					adminCustMap.put("nkname", nkname);										// ニックネーム
					adminCustMap.put("memberSbtCd", memberSbtCd);							// 会員種別コード
					if ("4".equals(workDiv))
					{
						adminCustMap.put("rrksMlad", rrksMlad);								// 連絡先メールアドレス
					}
					adminCustMap.put("ageFlg",  getAgeFlg(birthd, opeDate));				// 年齢フラグ
					adminCustMap.put("sex", sex);											// 性別
					adminCustMap.put("addflg", ADMIN_SJISHO_PARAM10_HON);					// 登録フラグ
					if (("6".equals(workDiv)) || ("7".equals(workDiv)))
					{
						adminCustMap.put("contIspUseFailFlg", CD00601_USE_FAIL);			// ISP利用停止フラグ
					}
					adminCustMap.put("MmbSbtTokutFlg", MMB_SBT_TOKUT_FLG_TOKUTZUMI);		// 会員種別特定フラグ
					// ANK-3706-00-00 ADD START
					adminCustMap.put("keishaTelno", nowKeishaTelno);						// ■ANK-3814-00-00 連携電話番号（契約者電話番号、コンテンツ電話番号等）
					// ANK-3706-00-00 ADD END
					Map sjishoMap = createShijishoParamAdminApiUpd(adminCustMap);
					result = callECK0151D010Map(handle, param, sjishoMap);
				}
			}

			// AdminAPI部分更新用の指示書作成(ニックネームクリア)
			if (isSuccess(result))
			{
				if (JCKBPCommon.inArray(workDiv, "3", "4", "5", "6", "7"))
				{
					if ((JCKBPCommon.isNullOrBlank(nkname)) && (!JCKBPCommon.isNullOrBlank(nowNkname)))
					{
						// AdminAPI部分更新用の指示書パラメータ作成
						adminCustMap = new HashMap();
						adminCustMap.put("param1UpdPart",  ADMIN_SJISHO_PARAM1_CLEAR);			// 処理区分
						adminCustMap.put("sysid", sysid);										// SYSID
						adminCustMap.put("nkname", SJISHO_PARAM_CLEAR_FIELD);					// ニックネーム
						Map sjishoMap = createShijishoParamAdminApiUpd(adminCustMap);
						result = callECK0151D010Map(handle, param, sjishoMap);
					}
					
				}
			}
			
			// グループ情報連携用の指示書作成(グループ情報登録)
			if (isSuccess(result))
			{
				if (JCKBPCommon.inArray(workDiv, "0", "1", "3", "4", "5"))
				{
					// グループ情報連携用の指示書パラメータ作成
					Map sjishoMap = createShijishoParamCRGrpSette(sysid, masterSysid, grpSetteMap);
					result = callECK0151D010Map(handle, param, sjishoMap);
				}
			}
		
			// グループ情報連携用の指示書作成(グループ情報無効)
			if (isSuccess(result))
			{
				if ("2".equals(workDiv))
				{
					// 無効にしたグループ設定の数だけ指示書を作成
					List sjishoList = createShijishoParamMkGrpSette(sysid, masterSysid, grpSetteList);
					result = callECK0151D010List(handle, param, sjishoList);
				}
			}
		

			// 支払方法入力支援情報(無効データ)連携用の指示書作成
			if (isSuccess(result))
			{
				List sjishoList = createShijishoParamDelPaywayInsup(sysid, paywayInsuportList);
				if (sjishoList.size() != 0)
				{
					result = callECK0151D010List(handle, param, sjishoList);
				}
			}

			if (isError(result))
			{
				returnCd = PMP_ERR_OTHER;   // その他のエラー
			}
		}

		//***************************************************
		// CCMG連携
		//***************************************************
		if (PMP_NORMAL_END.equals(returnCd))
		{
			boolean mmbSbtUpdApicalled = needCallApiMmbSbtUpd(nowEonetidMiIkoFlg, nowMemberSbtCd, memberSbtCd);
			if (mmbSbtUpdApicalled)
			{
				boolean res =  requestCcmgApiChgMmbSbtDsl(handle, param, sysid, nowEonetidMiIkoFlg, nowMemberSbtCd, memberSbtCd, sysid, PMP_CCMG_RENKEI_UPD_NM);
				if (!res)
				{
					returnCd = PMP_ERR_SYSTEM;   // システムエラー
				}
			}
		}

		//***************************************************
		// 返却パラメータ設定
		//***************************************************

		// 最後に実行した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;
		}

		// 下りユーザデータマップのセット
		Map<String, Object> resultMap = new HashMap();
		resultMap.put(CKSV9031_CKSV9031OP_CKSV903101CC.RETURN_CD, returnCd);
		resultMap.put(CKSV9031_CKSV9031OP_CKSV903101CC.CK_UPD_DTM_RES, lastCkUpdDtm); 			// 最新更新日時(お客様)
		resultMap.put(CKSV9031_CKSV9031OP_CKSV903101CC.KK_UPD_DTM_RES, lastKkUpdDtm);			// 最新更新日時(サービス契約)
		resultMap.put(CKSV9031_CKSV9031OP_CKSV903101CC.CONT_CUST_NM_RES, contCustNm); 		// コンテンツお客様名
		resultMap.put(CKSV9031_CKSV9031OP_CKSV903101CC.CHGCHU_MLAD_RES, chgechuMlad);		// 変更絵続き中メールアドレス
		setResultUserData(param, fixedText, resultMap);

		//*************************************************
		// 処理結果の判定
		//*************************************************
		if (isError(result))
		{
			String errMsg = "会員種別変更CCでエラーが発生しました";
			throw new CCException(errMsg, new Exception(errMsg));
		}

		return param;
	}

	/**
	 * お客様＜個人＞内容変更用マップを生成します。<br />
	 * @param inMap 入力パラメータマップ
	 * @param nowCustMap お客様情報マップ
	 * @param opeDate 運用日付
	 * @param updDtmSysid 更新年月日時分秒（お客様）
	 * @param kepgKjnifTratDoiUm 関電G個人情報取扱同意有無
	 * @param kepgKjnifTratDoiYmd 関電G個人情報取扱同意年月日
	 * @param kepgKjniftFfg 関電G個人情報提供不可フラグ
	 * @param kepgKjniftFfgChgYmd 関電G個人情報提供不可フラグ変更年月日
	 * @param kepgKjniftFfgChgUwyCd 関電G個人情報提供不可フラグ変更受付方法コード
	 * @param kepgKjniftJokyoCd 関電G個人情報提供状況コード
	 * @param kepgKjniftStaYmd 関電G個人情報提供開始年月日
	 * @param kepgKjniftRscd 関電G個人情報提供連携状態コード
	 * @param kepgKjniftRscdChgYmd 関電G個人情報提供連携状態コード変更年月日
	 * @return お客様＜個人＞内容変更用マップ
	 * @throws InvocationTargetException
	 * @throws SecurityException
	 * @throws IllegalArgumentException
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 * @throws NoSuchMethodException
	 */
	@SuppressWarnings("unchecked")
	private Map getUpdCustMapForKojin(Map inMap, Map<String, Object> nowCustMap, String opeDate, String updDtmSysid, String kepgKjnifTratDoiUm,
																													  String kepgKjnifTratDoiYmd,
																													  String kepgKjniftFfg,
																													  String kepgKjniftFfgChgYmd,
																													  String kepgKjniftFfgChgUwyCd,
																													  String kepgKjniftJokyoCd,
																													  String kepgKjniftStaYmd,
																													  String kepgKjniftRscd,
																													  String kepgKjniftRscdChgYmd)
			throws InvocationTargetException, SecurityException, IllegalArgumentException, InstantiationException, IllegalAccessException, NoSuchMethodException
	{
		Map custMap = (Map)((HashMap)nowCustMap).clone();

		String sysid = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.SYSID);
		String sei = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.SEI);
		String nm = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.NM);
		String kanaSei = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.KANA_SEI);
		String kanaNm = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.KANA_NM);
		String sex = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.SEX);
		String pcd = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.PCD);
		String adStateCity = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.AD_STATE_CITY);
		String adOther = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.AD_OTHER);
		String adMansion = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.AD_MANSION);
		String birthd = (String)inMap.get(CKSV9031_CKSV9031OP_CKSV903101CC.BIRTHD);

		// 更新対象項目の移送
//		custMap = copyMsgToMap(custResultMsg, ECK0011B050CBSMsg1List.class, ECK0021C010CBSMsg.class, true);

		// 入力値の設定
		custMap.put(ECK0021C010CBSMsg.SYSID, sysid);											// SYSID
		custMap.put(ECK0021C010CBSMsg.UPD_DTM_BF, updDtmSysid);									// 更新年月日時分秒(更新前)
		custMap.put(ECK0021C010CBSMsg.RSV_APLY_YMD, opeDate);									// 予約適用年月日
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_NM, sei + PMP_NAME_DELIMITER + nm);				// コンテンツお客様名
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_KANA, kanaSei + PMP_NAME_DELIMITER + kanaNm);	// コンテンツお客様カナ名
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_SEX_CD, sex);									// コンテンツお客様性別コード
		custMap.put(ECK0021C010CBSMsg.CONT_CUST_BIRTHD, birthd);								// コンテンツお客様生年月日
		custMap.put(ECK0021C010CBSMsg.CONT_AD_CD, null);										// コンテンツ住所コード
		custMap.put(ECK0021C010CBSMsg.CONT_PCD, pcd);											// コンテンツ郵便番号
		custMap.put(ECK0021C010CBSMsg.CONT_STATE_NM, null);										// コンテンツ都道府県名
		custMap.put(ECK0021C010CBSMsg.CONT_CITY_NM, null);										// コンテンツ市区町村名
		custMap.put(ECK0021C010CBSMsg.CONT_OAZTSU_NM, null);									// コンテンツ大字通称名
		custMap.put(ECK0021C010CBSMsg.CONT_AZCHO_NM, null);										// コンテンツ字丁目名
		custMap.put(ECK0021C010CBSMsg.CONT_BNCHIGO, adStateCity + adOther); 					// コンテンツ番地号
		custMap.put(ECK0021C010CBSMsg.CONT_ADRTTM, adMansion);									// コンテンツ住所補記・建物名
		custMap.put(ECK0021C010CBSMsg.CONT_ADRRM, null);										// コンテンツ住所補記・部屋番号
		custMap.put(ECK0021C010CBSMsg.CONT_AD_BNKT_STA_PST, String.valueOf(adStateCity.length() + 1)); 			// コンテンツ住所分割開始位置
		custMap.put(ECK0021C010CBSMsg.MMB_SBT_TOKUT_FLG, MMB_SBT_TOKUT_FLG_TOKUTZUMI); 			// 会員種別特定フラグ
		custMap.put(ECK0021C010CBSMsg.OLD_EONETMB_NINSHO_ID, null);								// 旧eonet会員認証用ID
		custMap.put(ECK0021C010CBSMsg.EONETID_MI_IKO_FLG, EONETID_MI_IKO_FLG_IKOZUMI); 			// eonetID未移行フラグ

		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_UM, kepgKjnifTratDoiUm);				// 関電G個人情報取扱同意有無
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIF_TRAT_DOI_YMD, kepgKjnifTratDoiYmd);			// 関電G個人情報取扱同意年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG, kepgKjniftFfg);							// 関電G個人情報提供不可フラグ
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_YMD, kepgKjniftFfgChgYmd);			// 関電G個人情報提供不可フラグ変更年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_FFG_CHG_UWY_CD, kepgKjniftFfgChgUwyCd);		// 関電G個人情報提供不可フラグ変更受付方法コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_JOKYO_CD, kepgKjniftJokyoCd);					// 関電G個人情報提供状況コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_STAYMD, kepgKjniftStaYmd);					// 関電G個人情報提供開始年月日
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD, kepgKjniftRscd);						// 関電G個人情報提供連携状態コード
		custMap.put(ECK0021C010CBSMsg.KEPG_KJNIFT_RSCD_CHG_YMD, kepgKjniftRscdChgYmd);			// 関電G個人情報提供連携状態コード変更年月日
		
//		移行時に以下項目へのセットも行われるのであれば、クリアが必要
//		custMap.put(ECK0021C010CBSMsg.CUST_NM, null);											// お客様名
//		custMap.put(ECK0021C010CBSMsg.CUST_KANA, null);											// お客様カナ名
//		custMap.put(ECK0021C010CBSMsg.CUST_SEX_CD, null);										// お客様性別コード
//		custMap.put(ECK0021C010CBSMsg.CUST_BIRTHD, null);										// お客様生年月日
//		custMap.put(ECK0021C010CBSMsg.NM_KISHO, null);											// 氏名敬称
//		custMap.put(ECK0021C010CBSMsg.CUST_CFM_BIKO, null);										// お客様確認備考
//		custMap.put(ECK0021C010CBSMsg.KEISHA_AD_CD, null);										// 契約者住所コード
//		custMap.put(ECK0021C010CBSMsg.KEISHA_PCD, null);										// 契約者郵便番号
//		custMap.put(ECK0021C010CBSMsg.KEISHA_STATE_NM, null);									// 契約者都道府県名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_CITY_NM, null);									// 契約者市区町村名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_OAZTSU_NM, null);									// 契約者大字通称名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_AZCHO_NM, null);									// 契約者字丁目名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_BNCHIGO, null);									// 契約者番地号
//		custMap.put(ECK0021C010CBSMsg.KEISHA_ADRTTM, null);										// 契約者住所補記・建物名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_ADRRM, null);										// 契約者住所補記・部屋番号
//		custMap.put(ECK0021C010CBSMsg.KEISHA_TELNO, null);										// 契約者電話番号
//		custMap.put(ECK0021C010CBSMsg.CUST_RANK_CD, null);										// お客様ランクコード
//		custMap.put(ECK0021C010CBSMsg.RRK_WAY_CD, null);										// 連絡手段コード
//		custMap.put(ECK0021C010CBSMsg.RRK_WAY_HOKI, null);										// 連絡手段補記
//		custMap.put(ECK0021C010CBSMsg.NAIHAN_GAIHAN_CD, null);									// 内販外販コード
//		custMap.put(ECK0021C010CBSMsg.NAIHAN_COMP_SKBT_CD,null );								// 内販企業識別コード
//		custMap.put(ECK0021C010CBSMsg.NECESSARY_HOJO_CD, null);									// 要補助コード

//		// 更新対象外項目の移送
//		custMap.put(ECK0021C010CBSMsg.CUST_NM, nowCustMap.get("cust_nm"));										// お客様名
//		custMap.put(ECK0021C010CBSMsg.CUST_KANA, nowCustMap.get("cust_kana"));									// お客様カナ名
//		custMap.put(ECK0021C010CBSMsg.CUST_SEX_CD, nowCustMap.get("cust_sex_cd"));								// お客様性別コード
//		custMap.put(ECK0021C010CBSMsg.CUST_BIRTHD, nowCustMap.get("cust_birthd"));								// お客様生年月日
//		custMap.put(ECK0021C010CBSMsg.NM_KISHO, nowCustMap.get("nm_kisho"));									// 氏名敬称
//		custMap.put(ECK0021C010CBSMsg.CUST_CFM_BIKO, nowCustMap.get("cust_cfm_biko"));							// お客様確認備考
//		custMap.put(ECK0021C010CBSMsg.KEISHA_AD_CD, nowCustMap.get("keisha_ad_cd"));							// 契約者住所コード
//		custMap.put(ECK0021C010CBSMsg.KEISHA_PCD, nowCustMap.get("keisha_pcd"));								// 契約者郵便番号
//		custMap.put(ECK0021C010CBSMsg.KEISHA_STATE_NM, nowCustMap.get("keisha_state_nm"));						// 契約者都道府県名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_CITY_NM, nowCustMap.get("keisha_city_nm"));						// 契約者市区町村名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_OAZTSU_NM, nowCustMap.get("keisha_oaztsu_nm"));					// 契約者大字通称名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_AZCHO_NM, nowCustMap.get("keisha_azcho_nm"));						// 契約者字丁目名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_BNCHIGO, nowCustMap.get("keisha_bnchigo"));						// 契約者番地号
//		custMap.put(ECK0021C010CBSMsg.KEISHA_ADRTTM, nowCustMap.get("keisha_adrttm"));							// 契約者住所補記・建物名
//		custMap.put(ECK0021C010CBSMsg.KEISHA_ADRRM, nowCustMap.get("keisha_adrrm"));							// 契約者住所補記・部屋番号
//		custMap.put(ECK0021C010CBSMsg.KEISHA_TELNO, nowCustMap.get("keisha_telno"));							// 契約者電話番号
//		custMap.put(ECK0021C010CBSMsg.CUST_RANK_CD, nowCustMap.get("cust_rank_cd"));							// お客様ランクコード
//		custMap.put(ECK0021C010CBSMsg.RRK_WAY_CD, nowCustMap.get("rrk_way_cd"));								// 連絡手段コード
//		custMap.put(ECK0021C010CBSMsg.RRK_WAY_HOKI, nowCustMap.get("rrk_way_hoki"));							// 連絡手段補記
//		custMap.put(ECK0021C010CBSMsg.NAIHAN_GAIHAN_CD, nowCustMap.get("naihan_gaihan_cd"));					// 内販外販コード
//		custMap.put(ECK0021C010CBSMsg.NAIHAN_COMP_SKBT_CD, nowCustMap.get("naihan_comp_skbt_cd"));				// 内販企業識別コード
//		custMap.put(ECK0021C010CBSMsg.NECESSARY_HOJO_CD, nowCustMap.get("necessary_hojo_cd"));					// 要補助コード
//		custMap.put(ECK0021C010CBSMsg.LOGIN_NINSHO_KH, nowCustMap.get("login_ninsho_kh"));						// ログイン認証可否
//		custMap.put(ECK0021C010CBSMsg.CUST_TKJK_CD, nowCustMap.get("cust_tkjk_cd"));							// お客様特記事項コード
//		custMap.put(ECK0021C010CBSMsg.LOGIN_NINSHO_STP_YMD, nowCustMap.get("login_ninsho_stp_ymd"));			// ログイン認証停止年月日
//		custMap.put(ECK0021C010CBSMsg.OLD_EONETMB_NINSHO_ID, nowCustMap.get("old_eonetmb_ninsho_id"));			// 旧eonet会員認証用ID
//		custMap.put(ECK0021C010CBSMsg.MMB_ISP_KSSAI_STAT_CD, nowCustMap.get("mmb_isp_kssai_stat_cd"));			// 会員ISP決済状態コード
//		custMap.put(ECK0021C010CBSMsg.DEL_TRGT_GAI_FLG, nowCustMap.get("del_trgt_gai_flg"));					// 削除対象外フラグ
//		custMap.put(ECK0021C010CBSMsg.SHOKUGYO_CD, nowCustMap.get("shokugyo_cd"));								// 職業コード
//		custMap.put(ECK0021C010CBSMsg.SHOKUGYO_OTHER, nowCustMap.get("shokugyo_other"));						// 職業その他
//		custMap.put(ECK0021C010CBSMsg.OFFC_NM, nowCustMap.get("offc_nm"));										// 勤務先名
//		custMap.put(ECK0021C010CBSMsg.SCHOOL_NM, nowCustMap.get("school_nm"));									// 学校名
//		custMap.put(ECK0021C010CBSMsg.OFFC_GSHU_CD, nowCustMap.get("offc_gshu_cd"));							// 勤務先業種コード
//		custMap.put(ECK0021C010CBSMsg.OFFC_BUSHO_NM, nowCustMap.get("offc_busho_nm"));							// 勤務先部署名
//		custMap.put(ECK0021C010CBSMsg.OFFC_AD_CD, nowCustMap.get("offc_ad_cd"));								// 勤務先住所コード
//		custMap.put(ECK0021C010CBSMsg.OFFC_PCD, nowCustMap.get("offc_pcd"));									// 勤務先郵便番号
//		custMap.put(ECK0021C010CBSMsg.OFFC_STATE_NM, nowCustMap.get("offc_state_nm"));							// 勤務先都道府県名
//		custMap.put(ECK0021C010CBSMsg.OFFC_CITY_NM, nowCustMap.get("offc_city_nm"));							// 勤務先市区町村名
//		custMap.put(ECK0021C010CBSMsg.OFFC_OAZTSU_NM, nowCustMap.get("offc_oaztsu_nm"));						// 勤務先大字通称名
//		custMap.put(ECK0021C010CBSMsg.OFFC_AZCHO_NM, nowCustMap.get("offc_azcho_nm"));							// 勤務先字丁目名
//		custMap.put(ECK0021C010CBSMsg.OFFC_BNCHIGO, nowCustMap.get("offc_bnchigo"));							// 勤務先番地号
//		custMap.put(ECK0021C010CBSMsg.OFFC_ADRTTM, nowCustMap.get("offc_adrttm"));								// 勤務先住所補記・建物名
//		custMap.put(ECK0021C010CBSMsg.OFFC_ADRRM, nowCustMap.get("offc_adrrm"));								// 勤務先住所補記・部屋番号
//		custMap.put(ECK0021C010CBSMsg.OFFC_TELNO, nowCustMap.get("offc_telno"));								// 勤務先電話番号
//		custMap.put(ECK0021C010CBSMsg.OFFC_NISNNO, nowCustMap.get("offc_nisnno"));								// 勤務先内線番号
//		custMap.put(ECK0021C010CBSMsg.OFFC_WORKER_CNT_SCALE, nowCustMap.get("offc_worker_cnt_scale"));			// 勤務先従業員数(規模)
//		custMap.put(ECK0021C010CBSMsg.CUST_SALARY, nowCustMap.get("cust_salary"));								// お客様年収
//		custMap.put(ECK0021C010CBSMsg.SKSHA_NM, nowCustMap.get("sksha_nm"));									// 親権者名
//		custMap.put(ECK0021C010CBSMsg.SKSHA_KANA, nowCustMap.get("sksha_kana"));								// 親権者カナ名
//		custMap.put(ECK0021C010CBSMsg.SKSHA_BIRTHD, nowCustMap.get("sksha_birthd"));							// 親権者生年月日
//		custMap.put(ECK0021C010CBSMsg.SKSHA_ZOKUGARA_CD, nowCustMap.get("sksha_zokugara_cd"));					// 親権者続柄コード
//		custMap.put(ECK0021C010CBSMsg.ZOKUGARA_OTHER, nowCustMap.get("zokugara_other"));						// 続柄その他
//		custMap.put(ECK0021C010CBSMsg.SKSHA_AD_CD, nowCustMap.get("sksha_ad_cd"));								// 親権者住所コード
//		custMap.put(ECK0021C010CBSMsg.SKSHA_PCD, nowCustMap.get("sksha_pcd"));									// 親権者郵便番号
//		custMap.put(ECK0021C010CBSMsg.SKSHA_STATE_NM, nowCustMap.get("sksha_state_nm"));						// 親権者都道府県名
//		custMap.put(ECK0021C010CBSMsg.SKSHA_CITY_NM, nowCustMap.get("sksha_city_nm"));							// 親権者市区町村名
//		custMap.put(ECK0021C010CBSMsg.SKSHA_OAZTSU_NM, nowCustMap.get("sksha_oaztsu_nm"));						// 親権者大字通称名
//		custMap.put(ECK0021C010CBSMsg.SKSHA_AZCHO_NM, nowCustMap.get("sksha_azcho_nm"));						// 親権者字丁目名
//		custMap.put(ECK0021C010CBSMsg.SKSHA_AD_BNCHIGO, nowCustMap.get("sksha_ad_bnchigo"));					// 親権者住所番地号
//		custMap.put(ECK0021C010CBSMsg.SKSHA_ADRTTM, nowCustMap.get("sksha_adrttm"));							// 親権者住所補記・建物名
//		custMap.put(ECK0021C010CBSMsg.SKSHA_ADRRM, nowCustMap.get("sksha_adrrm"));								// 親権者住所補記・部屋番号
//		custMap.put(ECK0021C010CBSMsg.SKSHA_AD_FIX_AF_CHGE_KH, nowCustMap.get("sksha_ad_fix_af_chge_kh"));		// 親権者住所確定後変更可否
//		custMap.put(ECK0021C010CBSMsg.SKSHA_TELNO, nowCustMap.get("sksha_telno"));								// 親権者電話番号
		

		return custMap;
	}

	/**
	 * AdminAPI部分更新用の指示書パラメータ作成
	 * @param adminCustMap お客様登録用パラメータ
	 * @return 指示書登録用パラメータ
	 */
	@SuppressWarnings("unchecked")
	private Map<String, Object> createShijishoParamAdminApiUpd(Map adminCustMap)
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_ADMIN_API);
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, adminCustMap.get("sysid"));
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		// ANK-3706-00-00 MOD START
		//inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "19");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "22");
		// ANK-3706-00-00 MOD END
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, adminCustMap.get("param1UpdPart"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, adminCustMap.get("eoid"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, adminCustMap.get("sysid"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, adminCustMap.get("eoidPw"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, adminCustMap.get("nkname"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, adminCustMap.get("memberSbtCd"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, adminCustMap.get("rrksMlad"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, adminCustMap.get("ageFlg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, adminCustMap.get("sex"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, adminCustMap.get("addflg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_11, adminCustMap.get("contIspUseFailFlg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_18, adminCustMap.get("MmbSbtTokutFlg"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_19, JCCBPCommon.getSysDateTime());
		// ANK-3706-00-00 ADD START
		inMap.put(ECK0151D010CBSMsg.PARAMETER_20, adminCustMap.get("keishaTelno"));
		inMap.put(ECK0151D010CBSMsg.PARAMETER_21, "");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_22, "");
		// ANK-3706-00-00 ADD END
		
		return inMap;
	}


	/**
	 * グループ情報連携用の指示書パラメータ作成
	 * @param sysid SYSID
	 * @param mstSysid マスター会員SYSID
	 * @param grpSetteMap お客様グループ設定マップ
	 * @return 指示書登録用パラメータリスト
	 */
	private Map<String, Object> createShijishoParamCRGrpSette(String sysid, String mstSysid, Map<String, String> grpSetteMap)
	{
		Map<String, Object> inMap = new HashMap<String, Object>();

		inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_REPLICA_API);
		inMap.put(ECK0151D010CBSMsg.TRGT_TABLE_ID, "TNM00030");
		inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
		inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
		inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "10");
		inMap.put(ECK0151D010CBSMsg.PARAMETER_1, GRP_SBT_CD_FAMILY);						//グループコード
		inMap.put(ECK0151D010CBSMsg.PARAMETER_2, mstSysid);									//グループリーダーSYSID
		inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);									//メンバーSYSID
		inMap.put(ECK0151D010CBSMsg.PARAMETER_4, (String)grpSetteMap.get("mk_flg"));		//無効フラグ
		inMap.put(ECK0151D010CBSMsg.PARAMETER_5, (String)grpSetteMap.get("add_dtm"));		//登録日時
		inMap.put(ECK0151D010CBSMsg.PARAMETER_6, (String)grpSetteMap.get("add_opeacnt"));	//登録者
		inMap.put(ECK0151D010CBSMsg.PARAMETER_7, null);										//登録PGID
		inMap.put(ECK0151D010CBSMsg.PARAMETER_8, (String)grpSetteMap.get("upd_dtm"));		//更新日時
		inMap.put(ECK0151D010CBSMsg.PARAMETER_9, (String)grpSetteMap.get("upd_opeacnt"));	//更新者
		inMap.put(ECK0151D010CBSMsg.PARAMETER_10, null);									//更新PGID

		return inMap;
	}	
	
	/**
	 * グループ情報(無効データ)連携用の指示書パラメータ作成。<br />
	 * @param sysid SYSID
	 * @param mstSysid グループリーダSYSID
	 * @param grpSetteList グループ設定リスト
	 * @return 指示書登録用パラメータリスト
	 */
	@SuppressWarnings("unchecked")
	private List<Map<String, Object>> createShijishoParamMkGrpSette(String sysid, String mstSysid, List<Map<String, String>> grpSetteList)
	{
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		for (Map rec : grpSetteList) {
			Map<String, Object> inMap = new HashMap<String, Object>();
			inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_REPLICA_API);
			inMap.put(ECK0151D010CBSMsg.TRGT_TABLE_ID, "TNM00030");
			inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
			inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
			inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
			inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "10");
			inMap.put(ECK0151D010CBSMsg.PARAMETER_1, GRP_SBT_CD_FAMILY);						//グループコード
			inMap.put(ECK0151D010CBSMsg.PARAMETER_2, (String)rec.get("grp_leader_sysid"));		//グループリーダーSYSID
			inMap.put(ECK0151D010CBSMsg.PARAMETER_3, sysid);									//メンバーSYSID
			inMap.put(ECK0151D010CBSMsg.PARAMETER_4, AXM_YK_MK_FLG);							//有効無効フラグ
			inMap.put(ECK0151D010CBSMsg.PARAMETER_5, (String)rec.get("add_dtm"));				//登録日時
			inMap.put(ECK0151D010CBSMsg.PARAMETER_6, (String)rec.get("add_opeacnt"));			//登録者
			inMap.put(ECK0151D010CBSMsg.PARAMETER_7, null);										//登録PGID
			inMap.put(ECK0151D010CBSMsg.PARAMETER_8, (String)rec.get("upd_dtm"));				//更新日時
			inMap.put(ECK0151D010CBSMsg.PARAMETER_9, (String)rec.get("upd_opeacnt"));			//更新者
			inMap.put(ECK0151D010CBSMsg.PARAMETER_10, null);									//更新PGID
			list.add(inMap);
		}
		return list;
	}


	/**
	 * 支払方法入力支援情報(無効データ)連携用の指示書パラメータ作成。<br />
	 * @param sysid SYSID
	 * @param paywayInsupList 支払い方法入力支援リスト
	 * @return 指示書登録用パラメータリスト
	 */
	@SuppressWarnings("unchecked")
	private List<Map> createShijishoParamDelPaywayInsup(String sysid, List<Map> paywayInsupList)
	{
		List<Map> list = new ArrayList<Map>();
		if (paywayInsupList != null)
		{
			for (Map rec : paywayInsupList) {
				String paywayInputShienCd = (String)rec.get("payway_input_shien_cd");
				if (PAYWAY_INPSUP_CD_ISPKS.equals(paywayInputShienCd))
				{
					Map<String, Object> inMap = new HashMap<String, Object>();
					inMap.put(ECK0151D010CBSMsg.TRN_CD, SJISHO_TRN_CD_REPLICA_API);
					inMap.put(ECK0151D010CBSMsg.TRGT_TABLE_ID, "TNM00060");
					inMap.put(ECK0151D010CBSMsg.ERR_CNT, "0");
					inMap.put(ECK0151D010CBSMsg.TRAN_TRGT_SYSID, sysid);
					inMap.put(ECK0151D010CBSMsg.RSLT_FLG, "0");
					inMap.put(ECK0151D010CBSMsg.PARAMETER_YK_CNT, "13");
					inMap.put(ECK0151D010CBSMsg.PARAMETER_1, sysid);										//SYSID
					inMap.put(ECK0151D010CBSMsg.PARAMETER_2, (String)rec.get("payway_input_shien_cd"));		//支払方法
					inMap.put(ECK0151D010CBSMsg.PARAMETER_3, (String)rec.get("tsyrn_pay_seq"));				//支払通番
					inMap.put(ECK0151D010CBSMsg.PARAMETER_4, (String)rec.get("isp_kssai_svc_kei_no"));		//サービス契約番号
					inMap.put(ECK0151D010CBSMsg.PARAMETER_5, null);											//クレジットカードID
					inMap.put(ECK0151D010CBSMsg.PARAMETER_6, (String)rec.get("mk_flg"));					//無効フラグ
					inMap.put(ECK0151D010CBSMsg.PARAMETER_7, (String)rec.get("add_dtm"));					//登録日時
					inMap.put(ECK0151D010CBSMsg.PARAMETER_8, (String)rec.get("add_opeacnt"));				//登録者
					inMap.put(ECK0151D010CBSMsg.PARAMETER_9, null);											//登録PGID
					inMap.put(ECK0151D010CBSMsg.PARAMETER_10, (String)rec.get("upd_dtm"));					//更新日時
					inMap.put(ECK0151D010CBSMsg.PARAMETER_11, (String)rec.get("upd_opeacnt"));				//更新者
					inMap.put(ECK0151D010CBSMsg.PARAMETER_12, null);										//更新PGID
					inMap.put(ECK0151D010CBSMsg.PARAMETER_13, (String)rec.get("tokusoku_stat"));			//督促ステータス
					list.add(inMap);
				}
			}
		}
		return list;
	}

	/**
	 * 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);
	}
	
	/**
	 * <p>
	 * サービス契約内訳スーパータイプ登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param currentGene サービス契約内訳サブタイプの名寄せ前の世代登録年月日時分秒
	 * @param retCurMsg サービス契約内訳サブタイプのカレントレコードのETMsg
	*/
	private void createSuperTypeKK0161(CAANMsg inCBSMsg, String currentGene, CAANMsg retCurMsg)
	{
		CAANMsg priMsgKK0161 = new CAANMsg(KK0161ETMsg.class.getName());
		priMsgKK0161.set(KK0161ETMsg.SVC_KEI_UCWK_NO, retCurMsg.getString(KK0161ETMsg.SVC_KEI_UCWK_NO));
		priMsgKK0161.set(KK0161ETMsg.GENE_ADD_DTM, currentGene);
		CAANMsg retPriMsg = new JKKejbKK0161DBABase().findByPrimaryKey(priMsgKK0161);

		retPriMsg.set(KK0161ETMsg.GENE_ADD_DTM, retCurMsg.getString(KK0161ETMsg.GENE_ADD_DTM));
		retPriMsg.set(KK0161ETMsg.RSV_APLY_YMD, JKKModelCommon.getOpeDate(inCBSMsg));
		retPriMsg.set(KK0161ETMsg.RSV_APLY_CD, "2");
		retPriMsg.set(KK0161ETMsg.ADD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsg.set(KK0161ETMsg.ADD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsg.set(KK0161ETMsg.UPD_DTM, inCBSMsg.getString(JCMConstants.OPERATE_DATETIME_KEY));
		retPriMsg.set(KK0161ETMsg.UPD_OPEACNT, inCBSMsg.getString(JCMConstants.OPERATOR_ID_KEY));
		retPriMsg.setNull(KK0161ETMsg.DEL_DTM);
		retPriMsg.setNull(KK0161ETMsg.DEL_OPEACNT);
		retPriMsg.set(KK0161ETMsg.MK_FLG, "0");

		create(inCBSMsg, retPriMsg);
	}

	/**
	 * <p>
	 * 登録処理を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param inETMsg 登録用のETMsg
	*/
	private void create(CAANMsg inCBSMsg, CAANMsg inETMsg)
	{
		JKKejbDBAUtil dbaUtil = new JKKejbDBAUtil(inCBSMsg);
		dbaUtil.create(inETMsg);
	}

}
