/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKPaywayChgCmpCC
*   ソースファイル名：JKKPaywayChgCmpCC.java
*   作成者          ：富士通
*   日付            ：2021年03月16日
*＜機能概要＞
*   支払方法変更(CMP)を行う部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v53.00.00    2021/03/16   GDC）ミコ    新規作成
*   v53.00.00    2021/05/18   FJ)謝		【ANK-4009-00-00】CX戦略WG方針対応
*	v58.00.00    2022/05/11   FJ)南		【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
*	v63.00.00    2022/11/18   FJ)渋谷	【ANK-4329-00-00】ANK-4329-00-00_クレジットカード認証時の3Dセキュア対応
*	v63.00.01    2022/12/18   FJ)西窪	【ANK-4329-00-00】ANK-4329-00-00_クレジットカード認証時の3Dセキュア対応
*	v63.00.02    2022/12/23   FJ)渋谷	【ANK-4329-05-00】ANK-4329-00-00_クレジットカード認証時の3Dセキュア対応
*	v63.00.03    2022/12/23   FJ)渋谷	【ANK-4329-05-01】ANK-4329-00-00_クレジットカード認証時の3Dセキュア対応
*	v63.00.04    2022/12/27   FJ)渋谷	【IT1-2022-0000083】ANK-4329-00-00_クレジットカード認証時の3Dセキュア対応
*	v63.00.05    2023/01/12   FJ)藤本涼	【IT1-2023-0000001】ANK-4329-00-00_クレジットカード認証時の3Dセキュア対応
*	v63.00.06    2023/01/17   FJ)上村	【ST-2023-0000001】排他制御エラー判定処理不正対応
*	v63.00.07    2023/01/19   FJ)藤本涼	【ANK-4329-06-00】クレジットカード認証時の3Dセキュア対応【仕変06】共通関連チェックの対象サービスの特定条件の追加
*	v63.00.08   2022/01/20  FJ)西窪		【ANK-4329-06-00】クレジットカード認証時の3Dセキュア対応正
*	v63.00.09    2023/01/30   FJ)藤本涼	【OM-2023-0000008】契約メールアドレス取得条件踏襲漏れ
*	v64.00.00    2023/01/26   FJ)吉川	【ANK-4348-00-00】mineo譲渡後支払方法変更対応
*	v65.00.00    2023/03/30   FJ)上村	【#81497,#81498】予約適用年月日・調整日の設定値不正
*	v75.00.00    2025/05/14   FJ)橋本	【ANK-4619-00-00】3Dセキュア対応
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;



import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
	
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
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.ErrorLevel;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.bpm.parameter.StatusArea;
import com.fujitsu.futurity.bp.x21.bpm.parameter.StatusInfo;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.CCException;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.bp.x21.values.OUTBREAK_AREA;
import com.fujitsu.futurity.common.JCCWebAddTrnId;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.ErrorInfoMapKeys;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.common.check.DatetimeCheck;
import com.fujitsu.futurity.model.common.check.HalfCharCheck;
import com.fujitsu.futurity.model.common.check.LengthCheck;
import com.fujitsu.futurity.model.common.check.MixCharCheck;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JCCSystemException;
import eo.common.util.JKKCommonUtil;
import eo.common.util.JKKCrecaMeiginChk;
import eo.common.util.JKKStringUtil;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECC0021D010CBSMsg2List;
import eo.ejb.cbs.cbsmsg.ECH0891B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011B050CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201B002CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201B003CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B003CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0201B040CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0201B040CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021C060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B014CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B025CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B025CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0321B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0321B002CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0361B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491B008CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491B008CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0491C060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0491C240CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0501C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0501C080CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0501D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0521D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0531A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0531A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1031D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3401A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3401A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3401A020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3401C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3401D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3501B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3501B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3501C010CBSMsg;
import eo.ejb.common.JKKModelCommon;

/**
 * 本処理は、相手システムから支払関連情報を受取り、eoの支払方法情報を更新する。<p>
 * <BR>
 * @author 富士通
 */
public class JKKPaywayChgCmpCC extends AbstractCommonComponent {

	private static final String ERROR_INFO = "ERROR_INFO";
	private static final String ERROR_CODE = "errCode";
	private static final String ERROR_MESSAGE = "errMessage";
	/** CCパラメータ：ボディ情報 */
	private static final String BODY_INFO = "BODY_INFO";
	
	/** 請求契約番号 パラメータ名 */
	private static final String SEIKY_KEI_NO = "seikyKeiNo";
	/** 請求方法コード パラメータ名 */
	private static final String SEIKY_WAY_CD = "seikyWayCd";
	/** クレジットカード事業コード パラメータ名 */
	private static final String CRECARD_JIGYO_CD = "crecardJigyoCd";
	/** カードブランド パラメータ名 */
	private static final String CARD_BRAND_OPTCD = "cardBrandOptcd";
	/** クレジットカード番号 パラメータ名 */
	private static final String CRECARD_NO = "crecardNo";
	/** クレジットカード有効期限 パラメータ名 */
	private static final String CRECARD_YK_KIGEN = "crecardYkKigen";
	/** クレジットカード名義カナ名 パラメータ名 */
	private static final String CRECARD_NM_KANA = "crecardNmKana";
	/** オーソリ承認番号 パラメータ名 */
	private static final String CR_AUTHNUMBER = "crAuthnumber";
	/** 仕向先会社コード パラメータ名 */
	private static final String SHIKOSAKI_COMP_CD = "shikosakiCompCd";
	/** カード預りID パラメータ名 */
	private static final String SAVE_ID = "saveId";
	/** カード種別 パラメータ名 */
	private static final String CARD_TYPE = "cardType";
	/** イシュア区分 パラメータ名 */
	private static final String ISSUER_CLASS = "issuerClass";
	/** 金融機関コード パラメータ名 */
	private static final String BANK_CD = "bankCd";
	/** 金融機関支店コード パラメータ名 */
	private static final String BANK_SHITEN_CD = "bankShitenCd";
	/** 預金種目コード パラメータ名 */
	private static final String YOKIN_SHUMOKU_CD = "yokinShumokuCd";
	/** 口座番号 パラメータ名 */
	private static final String KOZA_NO = "kozaNo";
	/** 新規コード パラメータ名 */
	private static final String NEW_CD = "newCd";
	/** 口座名義人カナ名 パラメータ名 */
	private static final String KOZA_MEIGIN_KANA= "kozaMeiginKana";
	/** 通帳記号 パラメータ名 */
	private static final String TSUCHO_SYMBOL = "tsuchoSymbol";
	/** 通帳番号パラメータ名 */
	private static final String TSUCHO_NO = "tsuchoNo";
	// ANK-4329-00-00 ADD START
	/** クレジット名義照査要否フラグ */
	private static final String CRECA_NM_SHOSA_YH_FLG = "crecaNmShosaYhFlg";
	/** クレジットカード名義ローマ字名 パラメータ名 */
	private static final String CRECARD_NM_ROMAJI = "crecardNmRomaji";
// ANK-4619-00-00 ADD START
	/** クレジットカード名義（ローマ字） パラメータ名 */
	private static final String CRECARD_MEIGI_ROMAJI = "crecard_nm_romaji";
// ANK-4619-00-00 ADD END
	/** eoID パラメータ名 */
	private static final String EO_ID= "eoId";
	/** 申込種別 パラメータ名 */
	private static final String MK_SBT = "mksbt";
	// ANK-4329-00-00 ADD END
	// ANK-4329-05-00 ADD START
	/** 開通前後判定フラグ */
	private static final String OPEN_ZENGO_JDG_FLG = "openZengoJdgFlg";
	// ANK-4329-05-00 ADD END

	
	/** 請求方法コード値: 2:預金口座振替 */
	private static final String SEIKY_WAY_CD_2 = "2";
	/** 請求方法コード値: 3:郵便自動振込 */
	private static final String SEIKY_WAY_CD_3 = "3";
	/** 請求方法コード値: 4:クレジット */
	private static final String SEIKY_WAY_CD_4 = "4";
	// ANK-4329-00-00 ADD START
	/** クレジットカード名義照査要否フラグ: 1:要 */
	private static final String CRECA_NM_SHOSA_YH_FLG_1 = "1";
	/** クレジットカード名義照査要否フラグ: 0:否 */
	private static final String CRECA_NM_SHOSA_YH_FLG_0 = "0";
	/** クレジットカード名義人チェック結果: 01:OK */
	private static final String CRECARD_MEIGIN_CHK_KEKKA_01 = "01";
	/** クレジットカード名義人チェック結果: 00:NG */
	private static final String CRECARD_MEIGIN_CHK_KEKKA_00 = "00";
	/** 申込種別: 1:支払方法変更 */
	private static final String MK_SBT_1 = "1";
	//ANK-4348-00-00 ADD START
	/** 申込種別: 2：譲渡 */
	private static final String MK_SBT_2 = "2";
	/** 利用可否: 0:可 */
	private static final String USE_KH_0 = "0";
	/** 利用可否: 1:否 */
	private static final String USE_KH_1 = "1";
	//ANK-4348-00-00 ADD END
	// IT1-2022-0000083 ADD START
	/** 実行システム判定フラグ: 0:画面 */
	private static final String RUN_SYS_JUDGE_FLG_0 = "0";
	// IT1-2022-0000083 ADD END
	/** クレジットカード照査ステータス 登録完了：001*/
	private static final String CRECARD_SHOSA_STAT_001 = "001";
	/** クレジットカード照査ステータス 照査待ち：002*/
	private static final String CRECARD_SHOSA_STAT_002 = "002";
	/** クレジットカード照査ステータス 照査NG：003*/
	private static final String CRECARD_SHOSA_STAT_003 = "003";
	/** クレジットカード照査ステータス 保留：004*/
	private static final String CRECARD_SHOSA_STAT_004 = "004";
	/** クレジットカード照査ステータス キャンセル：005*/
	private static final String CRECARD_SHOSA_STAT_005 = "005";
	// ANK-4329-00-00 ADD END

	/** テンプレートID EKK0491A010 */
	private static final String TEMPLATE_ID_EKK0491A010 = "EKK0491A010";
	/** テンプレートID EKK0491B010 */
	private static final String TEMPLATE_ID_EKK0491B010 = "EKK0491B010";
	/** テンプレートID EKK0321B002 */
	private static final String TEMPLATE_ID_EKK0321B002 = "EKK0321B002";
	/** テンプレートID EKK0011D020 */
	private static final String TEMPLATE_ID_EKK0011D020 = "EKK0011D020";
	/** テンプレートID EKK0021C060 */
	private static final String TEMPLATE_ID_EKK0021C060 = "EKK0021C060";
	/** テンプレートID EKK0501D010 */
	private static final String TEMPLATE_ID_EKK0501D010 = "EKK0501D010";
	/** テンプレートID EKK0501C030 */
	private static final String TEMPLATE_ID_EKK0501C030 = "EKK0501C030";
	/** テンプレートID EKK0501C080 */
	private static final String TEMPLATE_ID_EKK0501C080 = "EKK0501C080";
	/** テンプレートID EKK0531A010 */
	private static final String TEMPLATE_ID_EKK0531A010 = "EKK0531A010"	;
	/** テンプレートID EKK0521D020 */
	private static final String TEMPLATE_ID_EKK0521D020 = "EKK0521D020"	;
	/** テンプレートID EKK0491C060 */
	private static final String TEMPLATE_ID_EKK0491C060 = "EKK0491C060"	;
	/** テンプレートID EKK0491C240 */
	private static final String TEMPLATE_ID_EKK0491C240 = "EKK0491C240"	;
	/** テンプレートID EKK1031D010 */
	private static final String TEMPLATE_ID_EKK1031D010 = "EKK1031D010";
	/** テンプレートID EKK1091D010 */
	private static final String TEMPLATE_ID_EKK1091D010 = "EKK1091D010";
	// ANK-4329-00-00 ADD START
	/** テンプレートID ECK0201B002 */
	private static final String TEMPLATE_ID_ECK0201B002 = "ECK0201B002";
	/** テンプレートID ECK0011A010 */
	private static final String TEMPLATE_ID_ECK0011A010 = "ECK0011A010";
	/** テンプレートID ECC0021D010 */
	private static final String TEMPLATE_ID_ECC0021D010 = "ECC0021D010";
	/** テンプレートID EKK3281D010 */
	private static final String TEMPLE_ID_EKK3401D010 = "EKK3401D010";
	// ANK-4329-00-00 ADD END
	// ANK-4329-05-00 ADD START
	/** テンプレートID EKK0081A010 */
	private static final String TEMPLATE_ID_EKK0081A010 = "EKK0081A010";
	/** テンプレートID EKK0361B001 */
	private static final String TEMPLE_ID_EKK0361B001 = "EKK0361B001";
	/** テンプレートID EKK3401A010 */
	private static final String TEMPLATE_ID_EKK3401A010 = "EKK3401A010";
	/** テンプレートID EKK3401C010 */
	private static final String TEMPLATE_ID_EKK3401C010 = "EKK3401C010";
	// ANK-4329-05-00 ADD END
	// IT1-2023-0000001 ADD START
	/** テンプレートID ECK0201B003 */
	private static final String TEMPLATE_ID_ECK0201B003 = "ECK0201B003";
	// IT1-2023-0000001 ADD END
	// ANK-4329-06-00 ADD START
	/** お客様情報照会(PMP連携用) */
	private static final String TEMPLATE_ID_ECK0011B050 = "ECK0011B050";
	/** テンプレートID EKK0491B008 */
	private static final String TEMPLATE_ID_EKK0491B008 = "EKK0491B008";
	//ANK-4348-00-00 ADD START
	/** テンプレートID EKK3501B010 */
	private static final String TEMPLATE_ID_EKK3501B010 = "EKK3501B010";
	/** テンプレートID EKK3501C010 */
	private static final String TEMPLATE_ID_EKK3501C010 = "EKK3501C010";
	//ANK-4348-00-00 ADD END


	// ANK-4329-06-00 ADD END
	/** 空白 */
	private static final String EMPTY = "";
	
	/** 申込種別コード: 00013:請求契約情報変更申込 */
	private static final String MSKM_SBT_CD_0013 = "00013";

	/** 送付先住所チェックレベル: 0:チェック無 */
	private static final String SOHUS_AD_CHK_LV_0 = "0";

	/** オーソリ処理コード: 02:入会オーソリ */
	private static final String AUTH_TRAN_CD_02 = "02";

	/** 売上オーソリ金額: 1 */
	private static final String SALES_AUTHORI_AMNT_1 = "1";

	/** オーソリ要求コード: 2:支払方法変更 */
	private static final String AUTHORI_YOKYU_CD_2 = "2";

	/** 処理フラグ: 1:処理済 */
	private static final String TRN_FLG_1 = "1";

	/** 抽出フラグ: 1:抽出済 */
	private static final String CHSHT_FLG_1 = "1";

	/** 取消コード: 0:未処理 */
	private static final String CL_CD_0 = "0";	

	/** 進捗ステータス: 4100:支払方法変更 */
	private static final String PRG_STAT_4100 = "4100";	
	
	/** 進捗ステータス: 0901:照査取消 */
	private static final String PRG_STAT_0901 = "0901";	

	/** 進捗ステータス: 1201:キャンセル完了 */
	private static final String PRG_STAT_1201 = "1201";	
	
	/** 進捗特記事項1: 支払方法変更：預金口座振替 */
	private static final String PRG_TKJK_YOKIN = "支払方法変更：預金口座振替";
	
	/** 進捗特記事項1: 支払方法変更：郵便自動振込 */
	private static final String PRG_TKJK_YUCHO = "支払方法変更：郵便自動振込";
	
	/** 進捗特記事項1: 支払方法変更：クレジット */
	private static final String PRG_TKJK_CREDIT = "支払方法変更：クレジット";
	
	// ANK-4329-00-00 ADD START
	/** 進捗特記事項1: 支払方法変更：クレジット */
	private static final String PRG_TKJK_SHOSA_NG = "クレジットカード照査結果：照査ＮＧ";
	
	/** 進捗特記事項1: 支払方法変更：クレジット */
	private static final String PRG_TKJK_CANCEL = "クレジットカード照査結果：キャンセル";
// ANK-4329-05-00 ADD END

	
	/** 異動理由コード: 44:お客様申告による支払方法変更 */
	private static final String IDO_RSN_CD_44 = "44";	
	
	// ANK-4329-00-00 ADD START
	/** 支払方法変更登録受付メール（サンキューメール） */
	private static final String MAIL_CD_PAYWAY_CHG_ADD_UK ="KKM1000040";
	
	/** 支払方法変更登録完了メール */
	private static final String MAIL_CD_PAYWAY_CHG_ADD_FIN ="KKM1000041";
	
	// ANK-4329-05-00 ADD START
	/** 申込完了メール(クレジット) */
	private static final String MAIL_CD_MSK_FIN_CRECARD ="KKM1000043";
	
	/** 申込完了メール (クレジット以外の支払方法)*/
	private static final String MAIL_CD_MSK_FIN ="KKM1000044";
	
	/** 関連チェックサービスIDKEY */
	private static final String RELATION_CHECK_SERVICE_ID_KEY ="relation_check_service_id";

	/** メールアドレス */
	private static String mlad = "";
	
	/** 支払方法変更照査NGメール */
	private static final String MAIL_CD_PAYWAY_CHG_SHOSA_NG ="KKM1000042";
	// ANK-4329-05-00 ADD END
	// ANK-4329-06-00 ADD START
	/** 予約適用コード（予約）*/
	private static final String RSV_APLY_CD_RSV = "1";
	/** 予約適用コード（確定）*/
	private static final String RSV_APLY_CD_FIX = "2";
	// ANK-4329-06-00 ADD END
	

	
	// ANK-4329-05-00 DEL START
//	/** 半角スペース */
//	private static final String HALF_SPACE = " ";
//	
//	/** 全角スペース */
//	private static final String FULL_SPACE = "　";
//	
//	/** 空文字 */
//	private static final String EMPTY_STRING = "";
//	/** ローマ字表 */
//	private static final HashMap<String, String[]> romaji_chg_map = new HashMap<String, String[]>();
	// ANK-4329-05-00 DEL END
	// ANK-4329-00-00 ADD END
	
	// ANK-4329-05-00 ADD START
	/** 関連チェックエラーコード	 */
	private static final int RELATION_ERR = 1100;
	
	/** リターンコード(正常)  */
	protected static final int RETURN_CODE_NORMAL = 0;
	
	/** 申込エラーコード */
	private static String check_mskm_err_code = "";
	

	/** 開通前後判定フラグ: 1:開通後 */
	private static final String OPEN_ZENGO_JDG_FLG_1 = "1";

	/** チェックマップキー	 */
	private static final String CHECK_MAP_KEY = "CHECKCC";
	// ANK-4329-06-00 ADD START
	/** チェックマップキー	 */
	private static final String CHECK_MAP_KEY2 = "CHECKCC2";
	// ANK-4329-06-00 ADD END
	
// ANK-4619-00-00 ADD START
	/** クレジットカード名称変換マップキー */
	private static final String CRECARD_NM_CHGE_MAP_KEY = "JCCCrecardNmChgeCC";
// ANK-4619-00-00 ADD END
	/** 契約メールマップキー*/
	private static final String KEI_MAIL_LIST_KEY = "kei_mlad_";
	
	/** 契約状態チェックエラー１ */
	private static final String KEI＿STAT_CHK_ERR_NAME_1 = "seikyu_yokusi_cd_err";
	
	/**  契約状態チェックエラー２ */
	private static final String KEI＿STAT_CHK_ERR_NAME_2 = "cust_name_err";
	
	/** 契約手続きチェックエラー１ */
	private static final String KEI_TTDK_CHK_ERR_NAME_1 = "diff_seikyno_rsv_err";
	
	/** 契約手続きチェックエラー２	 */
	private static final String KEI_TTDK_CHK_ERR_NAME_2 = "kktk_svc_cd_014_err";
	
	/** 契約手続きチェックエラー３*/
	private static final String KEI_TTDK_CHK_ERR_NAME_3 = "kktk_svc_cd_015_err";
	
	/** 支払方法未来予約エラー１	 */
	private static final String PAY_WAY_FT_RV_CHK_ERR_NAME_1 = "same_seikyno_rsv_err";
	
	/** エラーフラグ（エラー）*/
	private static final String ERR_FLG_ERR = "E";
	/** エラーフラグ（ワーニング）*/
	private static final String ERR_FLG_WARNING = "W";

// ANK-4329-06-00 ADD START
	private static final String[][] STAT_YUSENJUN = new String[][] {
		{"100","1"},
		{"220","2"},
		{"030","3"},
		{"020","4"},
		{"210","5"}
	};
// ANK-4329-06-00 ADD END

	// ANK-4329-05-00 ADD END

	/**
	 * 取扱コード反映（営業支援）を行う。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return IRequestParameterReadWrite リクエストパラメータ
	 * @throws Exception
	 */
	/**
	 * @param handle
	 * @param param
	 * @param fixedText
	 * @return
	 * @throws Throwable
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite execute(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		
		Map<String, Object> ccMsg = (Map<String, Object>) param.getData(fixedText);
		
		// サービス契約ステータスが「010:受付済、920:キャンセル済」以外取得パラメタ
		String ekk0321b002SvcKeiSta = "";
		// EKK0321B002(サービス契約ステータスが「010:受付済、920:キャンセル済」以外のレコード)のSEIKY_WAY_CD
		String ekk0321b002Sysid = "";
		// リクエストのSEIKY_WAY_CD
		String paramSeikyWayCd = "";
		// ANK-4329-00-00 ADD START
		// リクエストの名義人照査フラグ
		String meigininsyosaFlg = "";
		// リクエストのクレジットカード名義
		String crecardMeigin = "";
		// リクエストの申込種別
		String mksbt = "";
		// ANK-4329-00-00 ADD END
		// IT1-2022-0000083 ADD START
		// 実行システム判定フラグ
		String runSysJudgeFlg = "";
		// IT1-2022-0000083 ADD END
		
		// サービスIF結果取得(EKK0491A010)
		CAANMsg[] workEKK0491A010 = null;
		// サービスIF結果取得(EKK0491B010)
		CAANMsg[] workEKK0491B010 = null;
		// サービスIF結果取得(EKK0321B002)
		CAANMsg[] workEKK0321B002 = null; 
		// サービス契約ステータスが「010:受付済、920:キャンセル済」以外のレコード
		ArrayList<CAANMsg> workEKK0321B002Rslt = null;
		// サービスIF結果取得(EKK0011D020)
		CAANMsg[] workEKK0011D020 = null;
		// サービスIF結果取得(EKK0501D010)
		CAANMsg workEKK0501D010 = null;
		// サービスIF結果取得(EKK0501C030)
		CAANMsg workEKK0501C030 = null;
		// サービスIF結果取得(EKK0501C080)
		CAANMsg workEKK0501C080 = null;
		// サービスIF結果取得(EKK0531A010)
		CAANMsg[] workEKK0531A010 = null;
		// サービスIF結果取得(EKK0521D020)
		CAANMsg workEKK0521D020 = null;
		// サービスIF結果取得(EKK0491C060)
		CAANMsg workEKK0491C060 = null;
		// サービスIF結果取得(EKK0491C240)
		CAANMsg workEKK0491C240 = null;
		// サービスIF結果取得(EKK1031D010)
		CAANMsg workEKK1031D010 = null;
		// サービスIF結果取得(EKK1091D010)
		CAANMsg workEKK1091D010 = null;
		// ANK-4329-00-00 ADD START
		// サービスIF結果取得(ECK0201B002)
		CAANMsg[] workECK0201B002 = null;
		// サービスIF結果取得(ECK0011A010)
		CAANMsg[] workECK0011A010 = null;
		// ANK-4329-00-00 ADD END
		// ANK-4329-05-00 ADD START
		// サービスIF結果取得(EKK0081A010)
		CAANMsg[] workEKK0081A010 = null;
		// サービスIF結果取得(EKK0081B025)
		CAANMsg[] workEKK0361B001 = null;
		// サービス契約一意照会結果レコード
		ArrayList<CAANMsg> workEKK0081A010Rslt = null;
		// ANK-4329-05-00 ADD END
		// IT1-2023-0000001 ADD START
		ArrayList<CAANMsg> workEKK0321B002Rslt2 = null;
		// IT1-2023-0000001 ADD END
		// ANK-4329-06-00 ADD START
		CAANMsg[] workEKK0491B008 = null;
		// ANK-4329-06-00 ADD END
		// ANK-4348-00-00 ADD START
		// サービスIF結果取得(EKK3501B010)
		CAANMsg[] workEKK3501B010 = null;
		// サービスIF結果取得(EKK3501C010)
		CAANMsg workEKK3501C010 = null;
		// ANK-4348-00-00 ADD END
// ANK-4619-00-00 ADD START
		Map<String, Object> creCardNmChgeMap = new HashMap<String, Object>();
// ANK-4619-00-00 ADD END
		
		try
		{
			
			ccMsg.put(BODY_INFO, new HashMap<String, Object>());
			
			// データチェック
			/* 単項目チェック */
			if (!checkUnitParam(ccMsg))
			{
				
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
				return param;
			}
			
			/* 単関連チェック */
			if (!checkUnitParamLink(ccMsg))
			{
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
				return param;				
			}
			
			// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
			ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
			
			// サービスIF実行
			workEKK0491A010 = getEKK0491A010CAANMsg(handle, scCall, param, fixedText, ccMsg);

			/* 請求契約存在チェック */
			if (!checkSeikyuKeiSonzai(ccMsg, workEKK0491A010))
			{
				param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
				return param;				
			}
			// ANK-4329-00-00 ADD START
			// サービスIF実行
			workEKK0321B002 = getEKK0321B002CAANMsg(handle, scCall, param, fixedText, ccMsg);
			
			workEKK0321B002Rslt = new ArrayList<CAANMsg>();
			// IT1-2023-0000001 ADD START
			workEKK0321B002Rslt2 = new ArrayList<CAANMsg>();
			List<String> containsSysid = new ArrayList<String>();
			// IT1-2023-0000001 ADD END
			// ANK-4329-06-00 ADD START
			List<String> checkSysidList = new ArrayList<String>();
			// ANK-4329-06-00 ADD END
			
			
			// サービス契約ステータスが「010:受付済、920:キャンセル済」以外のレコードを取得する。
			for (int i = 0; i < workEKK0321B002.length; i++)
			{
				
				ekk0321b002SvcKeiSta = workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_STAT);
				
				/* 検索結果のサービス契約番号が設定されている かつ 
				 * サービス契約ステータスが「010:受付済、920:キャンセル済」以外の場合 */
				if (workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO) != null 
						&& !"".equals(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO))
						&& !JKKStrConst.CD00037_UK_ZM.equals(ekk0321b002SvcKeiSta) 
						&& !JKKStrConst.CD00037_CANCEL_ZM.equals(ekk0321b002SvcKeiSta))
				{
					workEKK0321B002Rslt.add(workEKK0321B002[i]);
				}
				
				// IT1-2023-0000001 ADD START
				/* 検索結果のサービス契約番号が設定されている かつ 
				 * サービス契約ステータスが「910:解約済、920:キャンセル済」以外の場合 */
				if (workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO) != null 
						&& !"".equals(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO))
						&& !JKKStrConst.CD00037_DSL_ZM.equals(ekk0321b002SvcKeiSta) 
						&& !JKKStrConst.CD00037_CANCEL_ZM.equals(ekk0321b002SvcKeiSta))
				{
					workEKK0321B002Rslt2.add(workEKK0321B002[i]);
					
					// ANK-4348-00-00 MOD START
					//if (!workEKK0321B002Rslt2.contains(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID)))
					if (!containsSysid.contains(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID)))
					// ANK-4348-00-00 MOD END
					{
						containsSysid.add(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID));
					}
				}
				// IT1-2023-0000001 ADD END
				
				// ANK-4329-06-00 ADD START
				if (workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO) != null )
				{
					
					if (!checkSysidList.contains(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID)))
					{
						checkSysidList.add(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID));
					}
				}
				// ANK-4329-06-00 ADD END
			}
	
			// 複数件取得した場合は最初のレコードのSYSIDを設定する
			if(workEKK0321B002Rslt!= null && workEKK0321B002Rslt.size() > 0)
			{
				ekk0321b002Sysid = nullToStr(workEKK0321B002Rslt.get(0).getString(EKK0321B002CBSMsg1List.SYSID));
			}
			// 請求方法コード
			paramSeikyWayCd = (String) ccMsg.get(SEIKY_WAY_CD);
			// クレジットカード名義照査要否フラグ
			meigininsyosaFlg = (String) ccMsg.get(CRECA_NM_SHOSA_YH_FLG);
			// クレジットカード名義人
			crecardMeigin = (String) ccMsg.get(CRECARD_NM_ROMAJI);
			//クレジットカード名義人チェック結果フラグ
			 String crecard_meigin_chk_kekka_flg = "";
			
				//メールアドレス
			 String mlad = "";
			// ANK-4329-05-00 ADD START
			// ANK-4329-05-01 ADD START
			// SYSID
			String sysid = "";
			 // お客様カナ名
			 String custkana= "";
			 // お客様名
			 String custNm= "";
			if(workEKK0321B002!= null && workEKK0321B002.length > 0)
			{
				if(!JKKStringUtil.isNullBlank(workEKK0321B002[0].getString(EKK0321B002CBSMsg1List.SYSID)))
				{
					sysid = workEKK0321B002[0].getString(EKK0321B002CBSMsg1List.SYSID);
			// ANK-4329-05-01 ADD END
					// サービスIF実行
					 workECK0011A010 = getECK0011A010(handle, scCall, param, fixedText,workEKK0321B002[0].getString(EKK0321B002CBSMsg1List.SYSID));
					if(workECK0011A010!= null && workECK0011A010.length > 0)
					{
						custkana = workECK0011A010[0].getString(ECK0011A010CBSMsg1List.CUST_KANA);
						custNm = workECK0011A010[0].getString(ECK0011A010CBSMsg1List.CUST_NM);
					}
				}
			}
			 // ANK-4329-05-00 ADD END
			
			/* 請求方法コードが「4:請求方法コード（クレジット)」かつ 「1:クレジットカード名義照査要否フラグ（要)」の場合 */
			if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd) && CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg))
			{ 
				
				// サービスIF実行
				// ANK-4329-05-00 DEL START
//				workECK0011A010 = getECK0011A010(handle, scCall, param, fixedText, ekk0321b002Sysid);
				// ANK-4329-05-00 DEL END
				
				// クレジットカード名義人チェック
				// ANK-4329-05-00 MOD START
//				if(checkKanaToRomaji(workECK0011A010[0].getString(ECK0011A010CBSMsg1List.CUST_KANA),crecardMeigin))
				if(JKKCrecaMeiginChk.checkKanaToRomaji(custkana,crecardMeigin))
				// ANK-4329-05-00 MOD END
				{
					//クレジットカード名義人チェック結果：OK
					crecard_meigin_chk_kekka_flg = CRECARD_MEIGIN_CHK_KEKKA_01;
				}
				// クレジットカード名義人チェック結果NGの場合				
				else
				{
					//クレジットカード名義人チェック結果：NG
					crecard_meigin_chk_kekka_flg = CRECARD_MEIGIN_CHK_KEKKA_00;
				}
			}
			// ANK-4329-00-00 ADD END
			// ANK-4329-00-00 MOD START
//			// サービスIF実行
//			workEKK0491B010 = getEKK0491B010CAANMsg(handle, scCall, param, fixedText, ccMsg);
//			/* 未来予約チェック */
//			if (!checkMiraiYoyaku(ccMsg, workEKK0491B010))
//			{
//				param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
//				param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
//				return param;				
//			}
			/* 「4:請求方法コード（クレジット)」以外 または、クレジットカード名義人チェック結果がNG以外の場合*/
			if (!JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd) || !CRECARD_MEIGIN_CHK_KEKKA_00.equals(crecard_meigin_chk_kekka_flg))
			{
			
				// サービスIF実行
				workEKK0491B010 = getEKK0491B010CAANMsg(handle, scCall, param, fixedText, ccMsg);
				/* 未来予約チェック */
				if (!checkMiraiYoyaku(ccMsg, workEKK0491B010))
				{
					param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
					param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
					return param;				
				}
			}
			// ANK-4329-00-00 MOD END
			// ANK-4329-05-00 ADD START
			//開通前後判定フラグ
			String open_zengo_jdg_flg = (String) ccMsg.get(OPEN_ZENGO_JDG_FLG);
			check_mskm_err_code = "";
			// ANK-4329-05-01 MOD START
//			// 開通前後判定フラグが「1:開通後」の場合、共通関連チェック、契約状態チェック、契約手続きチェックを行う
//			if(OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg))
			// チェック有無フラグ
			boolean check_um = false;
			// 開通前後判定フラグが「1:開通後」かつ、「0:クレジットカード名義照査要否フラグ（否)」または未設定の場合、共通関連チェック、契約状態チェック、契約手続きチェックを行う
			if(OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg) && (CRECA_NM_SHOSA_YH_FLG_0.equals(meigininsyosaFlg) || meigininsyosaFlg.trim().isEmpty()))
			// ANK-4329-05-01 MOD END
			{
				// CC呼び出しマッピング
				HashMap<String, Object> paramMap = new HashMap<String, Object>();
				param.setData(CHECK_MAP_KEY, paramMap);
				// サービスID
				paramMap.put(RELATION_CHECK_SERVICE_ID_KEY, "FUSV0118");
				// ANK-4329-06-00 ADD START
				ArrayList mergeList =  new ArrayList();
				
				for (int i = 0 ; i < checkSysidList.size(); i++)
				{
					String checkSysid = checkSysidList.get(i);
					
					workEKK0491B008 = getEKK0491B008CAANMsg(handle, scCall, param, fixedText,checkSysid);
					
					if(workEKK0491B008!= null && workEKK0491B008.length > 0)
					{
						
						HashMap<String, Object> checkCCMap2 = new HashMap<String, Object>();
						param.setData(CHECK_MAP_KEY2, checkCCMap2);
						
						JCKSV901601CC JCKSV901601CC = new JCKSV901601CC();
						
						// 契約種別取得
						checkCCMap2.put("key_sysid", checkSysid);
						
						// 	JCKSV901601CC実行
						JCKSV901601CC.executeMain(handle,param,CHECK_MAP_KEY2);
						
						HashMap map = (HashMap) param.getData(CHECK_MAP_KEY2);
						ArrayList<HashMap<String, Object>> dataList2 = (ArrayList<HashMap<String, Object>>)map.get("dataList1");
						
						//JCKSV901601CCのマップを削除し返却されないようする
						param.removeData(CHECK_MAP_KEY2);
						param.removeData("LCS_LAST_RESULT");
						
						 for (CAANMsg msg : workEKK0491B008)
						 {
							 // サービス契約番号
							String svcKeiNo = msg.getString("svc_kei_no");
							for (HashMap<String, Object> Map : dataList2)
							{
								if(svcKeiNo.equals(Map.get("svc_kei_no")))
								{
									HashMap mergeMap = new HashMap<String, Object>();
									
									mergeMap.put("svc_kei_no", msg.getString("svc_kei_no"));
									if("0".equals(msg.getString("ispks_reset_yusen_jun")))
									{
										msg.set("ispks_reset_yusen_jun", "99");
									}
									mergeMap.put("ispks_reset_yusen_jun", msg.getString("ispks_reset_yusen_jun"));
									
									 
									for (String[] work : STAT_YUSENJUN)
									{
										if(work[0].equals(msg.getString("svc_kei_stat")))
										{
											mergeMap.put("svc_kei_stat_yusen_jun",work[1]);
											break;
										}
										else
										{
											mergeMap.put("svc_kei_stat_yusen_jun","6");
										}
									}
									
									//サービス契約番号に紐づくSYSIDも格納しておく。
									mergeMap.put("sysid",checkSysid);
									
									mergeList.add(mergeMap);
								}
							}
						}
					}
				}
				
				// ○ISP決済再設定優先順位の昇順、サービス契約ステータスの優先順の昇順で並び替える。
				Collections.sort(mergeList, new Comparator<Map<String, String>>()
				{
					/**
					 * リストの並び替え
					 * 
					 * <br>
					 * リストを表示順(料金プランサービス契約)(昇順)、サービス契約番号(昇順)で並び替えます。
					 * @param map1 リストの明細が格納されているMap
					 * @param map2 リストの明細が格納されているMap
					 * @return 比較結果
					 */
					@Override
					public int compare(Map<String, String> map1, Map<String, String> map2)
					{
						// ISP決済再設定優先順位で並び替える(昇順)
						Integer map1Int = Integer.parseInt(map1.get("ispks_reset_yusen_jun"));
						Integer map2Int = Integer.parseInt(map2.get("ispks_reset_yusen_jun"));
						int result = map1Int.compareTo(map2Int);
						if (result != 0)
						{
							// 同一でない場合は、並び替える
							return result;
						}
						// サービス契約ステータスの優先順で並び替える(昇順)
						Integer map1Int2 = Integer.parseInt(map1.get("svc_kei_stat_yusen_jun"));
						Integer map2Int2 = Integer.parseInt(map2.get("svc_kei_stat_yusen_jun"));
						result = map1Int2.compareTo(map2Int2);
						if (result != 0)
						{
							// 同一でない場合は、並び替える
							return result;
						}
						// サービス契約番号の優先順で並び替える(昇順)
						result = map1.get("svc_kei_no").compareTo(map2.get("svc_kei_no"));
						if (result != 0)
						{
							// 同一でない場合は、並び替える
							return result;
						}
						return 0;
					}
				});
// ANK-4329-06-00 ADD END

// ANK-4329-06-00 MOD START
//				for(int i = 0 ; i < workEKK0321B002.length; i++)
//				{
//					if(!JKKStringUtil.isNullBlank(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO)))
//					{
					if(mergeList!= null && mergeList.size() > 0)
					{
						HashMap svcMap = (HashMap) mergeList.get(0);
						// サービス契約番号
						paramMap.put("key_svc_kei_no", svcMap.get("svc_kei_no"));
						sysid = (String) svcMap.get("sysid");
						// ANK-4329-05-01 ADD START
						check_um = true;
						// ANK-4329-05-01 ADD END
						/* 共通関連チェックチェック */
						if (!CmnKanrenChk(handle,param,ccMsg))
						{
							param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
							param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
							return param;
						}
					} else {
						// エラーリスト
						List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
						
						Map<String, String> returnMap = new HashMap<String, String>();
						
						returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_2003);
						returnMap.put(ERROR_MESSAGE, "");
						errList.add(returnMap);
						ccMsg.put(ERROR_INFO, errList);
						param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
						param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
						return param;
					}
//				}
// ANK-4329-06-00 MOD END
				// ANK-4329-05-01 ADD START
				// 関連チェックに必要なキー項目全て取得できている場合、チェックを行う
				if(check_um && !JKKStringUtil.isNullBlank(sysid))
				{
				// ANK-4329-05-01 ADD END
					// サービスID
					paramMap.put(RELATION_CHECK_SERVICE_ID_KEY, "FUSV0118");
					//チェックに必要なデータをセットする
					// SYSID
					// ANK-4329-05-01 MOD START
//					paramMap.put("key_sysid", workEKK0321B002[0].getString(EKK0321B002CBSMsg1List.SYSID));
					paramMap.put("key_sysid",sysid);
					// ANK-4329-05-01 MOD END
					 // 請求契約番号
					paramMap.put("key_seiky_kei_no", (String)ccMsg.get(SEIKY_KEI_NO));
					/* 契約状態チェック・契約変更手続きチェック */
					if (!KistChgChk(handle,param,ccMsg))
					{
						param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
						param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
						return param;
					}
				}
			}
			// ANK-4329-05-00 ADD END
			// ANK-4329-00-00 DEL START
//			// 支払方法変更(CMP)
//			// サービスIF実行
//			workEKK0321B002 = getEKK0321B002CAANMsg(handle, scCall, param, fixedText, ccMsg);
//			
//			workEKK0321B002Rslt = new ArrayList<CAANMsg>();
//			
//			// サービス契約ステータスが「010:受付済、920:キャンセル済」以外のレコードを取得する。
//			for (int i = 0; i < workEKK0321B002.length; i++)
//			{
//				
//				ekk0321b002SvcKeiSta = workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_STAT);
//				
//				/* 検索結果のサービス契約番号が設定されている かつ 
//				 * サービス契約ステータスが「010:受付済、920:キャンセル済」の場合 */
//				if (workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO) != null 
//						&& !"".equals(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO))
//						&& !JKKStrConst.CD00037_UK_ZM.equals(ekk0321b002SvcKeiSta) 
//						&& !JKKStrConst.CD00037_CANCEL_ZM.equals(ekk0321b002SvcKeiSta))
//				{
//					workEKK0321B002Rslt.add(workEKK0321B002[i]);
//				}
//			}
//
//			// 複数件取得した場合は最初のレコードのSYSIDを設定する、そのあと、EKK0011D020サービスIF実行。
//			if(workEKK0321B002Rslt!= null && workEKK0321B002Rslt.size() > 0)
//			{
//				
//				ekk0321b002Sysid = nullToStr(workEKK0321B002Rslt.get(0).getString(EKK0321B002CBSMsg1List.SYSID));
//			
//				
//				// サービスIF実行
//				workEKK0011D020 =  getEKK0011D020Msg(handle, scCall, param, fixedText, ekk0321b002Sysid);
//			}
//			
//			paramSeikyWayCd = (String) ccMsg.get(SEIKY_WAY_CD);			
			// ANK-4329-00-00 DEL END
// ANK-4619-00-00 ADD START
			/* 請求方法コードが「4:請求方法コード（クレジット)」の場合 */
			if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd) )
			{
				// クレジットカード名称変換CC
				callJCCCrecardNmChgeCC(handle, param, ccMsg);

				creCardNmChgeMap = (HashMap)param.getData(CRECARD_NM_CHGE_MAP_KEY);
				//クレジットカード名称変換CCのマップを削除し返却されないようにする
				param.removeData(CRECARD_NM_CHGE_MAP_KEY);
				
				// 変換後クレジットカード名義カナ名にエラーがある場合
				if(ccMsg.containsKey(ERROR_INFO))
				{
					param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
					param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
					return param;
				}
			}
// ANK-4619-00-00 ADD END

			// ANK-4329-00-00 ADD START
			// 申込種別
			mksbt = (String) ccMsg.get(MK_SBT);
			//サービス契約一意照会結果を格納する。
			workEKK0081A010Rslt = new ArrayList<CAANMsg>();
			//支払方法変更受付情報登録フラグ
			boolean payWayInfoAddFlg = true;
			
			for(int i = 0; i < workEKK0321B002.length; i++)
			{
				if(!JKKStringUtil.isNullBlank(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO)))
				{
					workEKK0081A010 = getEKK0081A010CAANMsg(handle, scCall, param, fixedText, workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO));
						
					if(workEKK0081A010!= null && workEKK0081A010.length > 0)
					{
						workEKK0081A010Rslt.add(workEKK0081A010[0]);
						//新スキーマに登録をしていない場合
						if(payWayInfoAddFlg)
						{
							/* 請求方法コードが「4:請求方法コード（クレジット)」かつ 「1:クレジットカード名義照査要否フラグ（要)」の場合 */
							if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd) && CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg))
							{
								/*サービスコードが「51:ＭＶＮＯサービス」かつ、
								サービス契約ステータスが「910:受付済、920:キャンセル済」以外*/
								if(JKKStrConst.CD00130_51.equals(workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SVC_CD))
									&& (!JKKStrConst.CD00037_DSL_ZM.equals(workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SVC_KEI_STAT))
									&& !JKKStrConst.CD00037_CANCEL_ZM.equals(workEKK0081A010[0].getString(EKK0081A010CBSMsg1List.SVC_KEI_STAT))))
								{
									// サービスIF実行
// ANK-4619-00-00 MOD START
//									execEKK3401D010(handle, scCall, param, fixedText, ccMsg, workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO), workECK0011A010,crecard_meigin_chk_kekka_flg);
									execEKK3401D010(handle, scCall, param, fixedText, ccMsg, workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO), workECK0011A010,crecard_meigin_chk_kekka_flg, creCardNmChgeMap);
// ANK-4619-00-00 MOD END
									payWayInfoAddFlg = false;
								}
							}
						}
					}
				}
			}
			// ANK-4329-05-01 ADD START
			/* 請求方法コードが「4:請求方法コード（クレジット)」かつ 「1:クレジットカード名義照査要否フラグ（要)」の場合 */
			if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd) && CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg))
			{
			// ANK-4329-05-01 ADD END
				// 支払方法変更受付情報に未登録の場合、サービス契約番号を""で設定して登録を行う
				if(payWayInfoAddFlg)
				{	
					// サービスIF実行
// ANK-4619-00-00 MOD START
//					execEKK3401D010(handle, scCall, param, fixedText, ccMsg, "", workECK0011A010,crecard_meigin_chk_kekka_flg);
					execEKK3401D010(handle, scCall, param, fixedText, ccMsg, "", workECK0011A010,crecard_meigin_chk_kekka_flg, creCardNmChgeMap);
// ANK-4619-00-00 MOD END
				}
			}
			/* 請求方法コードが「4:請求方法コード（クレジット)」かつ 「1:クレジットカード名義照査要否フラグ（要)」かつ「1:申込種別（支払方法変更)」の場合 */
			if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd) && CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg) && MK_SBT_1.equalsIgnoreCase(mksbt))
			{
				// ANK-4329-05-01 ADD START
				if(!JKKStringUtil.isNullBlank(sysid))
				{
				// ANK-4329-05-01 ADD END
// IT1-2023-0000001 MOD START
//					// サービスIF実行
//					workECK0201B002 = getECK0201B002(handle, scCall, param, fixedText, sysid);
//					
//					// メール送信サービスを呼出す。
//					for(CAANMsg content : workECK0201B002)
//					{
//						mlad = content.getString(ECK0201B002CBSMsg1List.MLAD);
//						if(!JKKStringUtil.isNullBlank(mlad))
//						{
//							execECC0021D010(handle, scCall, param, fixedText, mlad, custNm, MAIL_CD_PAYWAY_CHG_ADD_UK);
//							mlad = "";
//						}
//					}
					
					// コンテンツ連絡先メールアドレス取得処理
					String AddMlad = "";
					List<String> AddMladList = new ArrayList<String>();
					
					for (int i = 0 ; i < containsSysid.size(); i++)
					{
						String contSysid = containsSysid.get(i);
						// ANK-4329-06-00 MOD START
//						AddMlad = contMailSch(handle, scCall, param, fixedText, contSysid);
						// お客様情報照会(PMP連携用)を実行する。
						CAANMsg[] eck0011b050List = callECK0011B050(handle, param, fixedText, contSysid);
						
						// コンテンツ系メールアドレスを設定
						AddMlad = getRrksMailAddress(eck0011b050List);
						// ANK-4329-06-00 MOD END
						
						if (!AddMladList.contains(AddMlad))
						{
							AddMladList.add(AddMlad);
						}
						
					}
//					AddMlad = contMailSch(handle, scCall, param, fixedText, sysid);
					
//					if(!JKKStringUtil.isNullBlank(AddMlad))
//					{
//						execECC0021D010(handle, scCall, param, fixedText, AddMlad, custNm, MAIL_CD_PAYWAY_CHG_ADD_UK);
//						AddMlad = "";
//					}
					
					for (int i = 0 ; i < AddMladList.size(); i++)
					{
						if(!JKKStringUtil.isNullBlank(AddMladList.get(i)))
						{
							execECC0021D010(handle, scCall, param, fixedText, AddMladList.get(i), custNm, MAIL_CD_PAYWAY_CHG_ADD_UK);
						}
					}
// IT1-2023-0000001 MOD END
				}
			}
			/* 検索結果のサービス契約番号が設定されている かつ 
			 * サービス契約ステータスが「010:受付済、920:キャンセル済」以外のデータがある場合 */
			if(workEKK0321B002Rslt!= null && workEKK0321B002Rslt.size() > 0)
			{
				/* クレジットカード名義人チェック結果がNG以外の場合*/
				if (!CRECARD_MEIGIN_CHK_KEKKA_00.equals(crecard_meigin_chk_kekka_flg))
				{
					// サービスIF実行
					workEKK0011D020 =  getEKK0011D020Msg(handle, scCall, param, fixedText, ekk0321b002Sysid);
				}
			}
			// ANK-4329-00-00 ADD END		
			/* 請求方法コードが「2:預金口座振替、3:郵便自動振込」の場合 */
			if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(paramSeikyWayCd) || JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(paramSeikyWayCd))
			{
				// サービスIF実行
				workEKK0501D010 = getEKK0501D010Msg(handle, scCall, param, fixedText, ccMsg, workEKK0491A010);
				
				// サービスIF実行
				workEKK0501C030 = getEKK0501C030Msg(handle, scCall, param, fixedText, workEKK0501D010);
				
				// サービスIF実行
				workEKK0501C080 = getEKK0501C080Msg(handle, scCall, param, fixedText, ccMsg, workEKK0501D010, workEKK0501C030);
			}
			// ANK-4329-00-00 MOD START
//			/* 請求方法コードが「4:請求方法コード（クレジット」の場合 */
//			else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd))
			
			/* 請求方法コードが「4:請求方法コード（クレジット)」かつ「0:クレジットカード名義照査要否フラグ（否)」
			 * またはクレジットカード名義人チェック結果がOKの場合 */
			else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd) && CRECA_NM_SHOSA_YH_FLG_0.equals(meigininsyosaFlg)
						|| CRECARD_MEIGIN_CHK_KEKKA_01.equals(crecard_meigin_chk_kekka_flg))
			// ANK-4329-00-00 MOD END
			{
				// サービスIF実行
				workEKK0531A010 = getEKK0531A010Msg(handle, scCall, param, fixedText, ccMsg);
				
				// サービスIF実行
// ANK-4619-00-00 MOD START
//				workEKK0521D020 = getEKK0521D020Msg(handle, scCall, param, fixedText, ccMsg);
				workEKK0521D020 = getEKK0521D020Msg(handle, scCall, param, fixedText, ccMsg, creCardNmChgeMap);
// ANK-4619-00-00 MOD END
			}
			// ANK-4329-00-00 ADD START
			// クレジットカード名義人チェック結果がNG以外の場合
			if (!CRECARD_MEIGIN_CHK_KEKKA_00.equals(crecard_meigin_chk_kekka_flg))
			{
			// ANK-4329-00-00 ADD END
				// サービスIF実行
				// IT1-2022-0000083 MOD START
//				workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010);
				// #81497,#81498 MOD START
//				workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010,runSysJudgeFlg);
//				// workEKK0491C060.upd_dtm → workEKK0491A010.upd_dtm
//				workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C060.getString(EKK0491C060CBSMsg.UPD_DTM)));
//				// サービスIF実行
//				// IT1-2022-0000083 MOD START
////				workEKK0491C240 = getEKK0491C240Msg(handle, scCall, param, fixedText, ccMsg, workEKK0501D010, workEKK0521D020, workEKK0491A010);
//				workEKK0491C240 = getEKK0491C240Msg(handle, scCall, param, fixedText, ccMsg, workEKK0501D010, workEKK0521D020, workEKK0491A010,runSysJudgeFlg);
				// サービスIF実行(請求契約_支払方法変更)
				workEKK0491C240 = getEKK0491C240Msg(handle, scCall, param, fixedText, ccMsg, workEKK0501D010, workEKK0521D020, workEKK0491A010,runSysJudgeFlg);
				// workEKK0491C060.upd_dtm → workEKK0491A010.upd_dtm
				workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C240.getString(EKK0491C240CBSMsg.UPD_DTM)));
				// サービスIF実行(請求契約_請求契約内容変更)
// ANK-4619-00-00 MOD START
//				workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010,runSysJudgeFlg);
				workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010,runSysJudgeFlg, creCardNmChgeMap);
// ANK-4619-00-00 MOD END
				// #81497,#81498 MOD END
				// IT1-2022-0000083 MOD END
				// workEKK0491C240.upd_dtm → workEKK0491A010.upd_dtm
				// #81497,#81498 MOD START
//				workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C240.getString(EKK0491C240CBSMsg.UPD_DTM)));
				workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C060.getString(EKK0491C060CBSMsg.UPD_DTM)));
				// #81497,#81498 MOD END
				/* 請求方法コードが「4:請求方法コード（クレジット」の場合 */
				if (JKKStrConst.SEIKY_WAY_CD_CREDIT .equals(paramSeikyWayCd))
				{
					// サービスIF実行
					// #81497,#81498 MOD START
//					execEKK1031D010Msg(handle, scCall, param, fixedText, ccMsg, workEKK0491C240, workEKK0521D020, workEKK0531A010);
					execEKK1031D010Msg(handle, scCall, param, fixedText, ccMsg, workEKK0491C060, workEKK0521D020, workEKK0531A010);
					// #81497,#81498 MOD END
				}
				/* サービス契約ステータスが「010:受付済、920:キャンセル済」の場合結果で[0]以外取得したサービス契約の件数分実行する */
				for(int i = 0 ; i < workEKK0321B002Rslt.size(); i++)
				{
					// サービスIF実行
					execEKK1091D010Msg(handle, scCall, param, fixedText, ccMsg, 
							workEKK0011D020, workEKK0501D010, workEKK0521D020, workEKK0321B002Rslt.get(i));
					
				}
			}
			// ANK-4329-00-00 ADD END
			// 「完全一致：カード名義人チェック結果」かつ「1:申込種別（支払方法変更)」の場合
			if(CRECARD_MEIGIN_CHK_KEKKA_01.equals(crecard_meigin_chk_kekka_flg) && MK_SBT_1.equalsIgnoreCase(mksbt))
			{
				// ANK-4329-05-01 ADD START
				if(!JKKStringUtil.isNullBlank(sysid))
				{
				// ANK-4329-05-01 ADD END
// IT1-2023-0000001 MOD START
//					// メール送信サービスを呼出す。
//					for(CAANMsg content : workECK0201B002)
//					{
//						mlad = content.getString(ECK0201B002CBSMsg1List.MLAD);
//						if(!JKKStringUtil.isNullBlank(mlad))
//						{
//							execECC0021D010(handle, scCall, param, fixedText, mlad, custNm, MAIL_CD_PAYWAY_CHG_ADD_FIN);
//							mlad = "";
//						}
//					}
					// コンテンツ連絡先メールアドレス取得処理
					String AddMlad = "";
					List<String> AddMladList = new ArrayList<String>();
					
					for (int i = 0 ; i < containsSysid.size(); i++)
					{
						String contSysid = containsSysid.get(i);
						// ANK-4329-06-00 MOD START
//						AddMlad = contMailSch(handle, scCall, param, fixedText, contSysid);
						// お客様情報照会(PMP連携用)を実行する。
						CAANMsg[] eck0011b050List = callECK0011B050(handle, param, fixedText, contSysid);
						
						// コンテンツ系メールアドレスを設定
						AddMlad = getRrksMailAddress(eck0011b050List);
						// ANK-4329-06-00 MOD END
						if (!AddMladList.contains(AddMlad))
						{
							AddMladList.add(AddMlad);
						}
						
					}
//					AddMlad = contMailSch(handle, scCall, param, fixedText, sysid);
					
//					if(!JKKStringUtil.isNullBlank(AddMlad))
//					{
//						execECC0021D010(handle, scCall, param, fixedText, AddMlad, custNm, MAIL_CD_PAYWAY_CHG_ADD_FIN);
//						AddMlad = "";
//					}
					
					for (int i = 0 ; i < AddMladList.size(); i++)
					{
						if(!JKKStringUtil.isNullBlank(AddMladList.get(i)))
						{
							execECC0021D010(handle, scCall, param, fixedText, AddMladList.get(i), custNm, MAIL_CD_PAYWAY_CHG_ADD_FIN);
						}
					}
// IT1-2023-0000001 MOD END
				}
			}
			// ANK-4329-00-00 ADD END
			// ANK-4329-05-01 ADD START
			// 開通前後判定フラグが
			if(OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg))
			{
			// ANK-4329-05-01 ADD END
				// ANK-4329-05-00 ADD START
				/* 請求方法コードが「4:請求方法コード（クレジット)」以外または、クレジットカード名義照査要否フラグが"0"の場合申込完了メールを送信する */
				if (JKKStrConst.SEIKY_WAY_CD_CREDIT .equals(paramSeikyWayCd) && CRECA_NM_SHOSA_YH_FLG_0.equals(meigininsyosaFlg)
						|| !JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd))
				{

					//取得したメールアドレスを格納するリスト
					List<String> mladList = new ArrayList<String>();
					
					String mailCd = "";
					// ANK-4329-05-01 ADD START
					if(!JKKStringUtil.isNullBlank(sysid))
					{
					// ANK-4329-05-01 ADD END
						// 請求方法コードが「4:請求方法コード（クレジット)」の場合
						if (JKKStrConst.SEIKY_WAY_CD_CREDIT .equals(paramSeikyWayCd))
						{
							mailCd = MAIL_CD_MSK_FIN_CRECARD;
						}
						// 請求方法コードが「4:請求方法コード（クレジット)」以外の場合
						else
						{
							mailCd = MAIL_CD_MSK_FIN;
						}
						//契約メールアドレス
						String keiMlad = "";
						for(int i = 0;i < workEKK0081A010Rslt.size(); i++)
						{
							String svcKeiNo = workEKK0081A010Rslt.get(i).getString(EKK0081A010CBSMsg1List.SVC_KEI_NO);
							// サービスコード
							String svcCd = workEKK0081A010Rslt.get(i).getString(EKK0081A010CBSMsg1List.SVC_CD);
							// ANK-4329-05-01 ADD START
							// サービス契約ステータス
							String svcKeiStat = workEKK0081A010Rslt.get(i).getString(EKK0081A010CBSMsg1List.SVC_KEI_STAT);
							// サービス契約ステータスが「照査/締結/サービス提供中」の場合
							if (JFUStrConst.CD00037_020.equals(svcKeiStat) || JFUStrConst.CD00037_030.equals(svcKeiStat)
									|| JFUStrConst.CD00037_100.equals(svcKeiStat))
							{
							// ANK-4329-05-01 ADD END
								// ネットの場合
								if (JKKStrConst.CD00130_01.equals(svcCd))
								{
									//サービス実行
								workEKK0361B001 = getEKK0361B001CAANMsg(handle, scCall, param, fixedText, ccMsg, svcKeiNo);
								
									//全契約メールアドレス文メールを送信する
									for(CAANMsg opsvcrst : workEKK0361B001)
									{
										// OM-2023-0000008 ADD START
										String opSvcKeiStat = opsvcrst.getString(EKK0361B001CBSMsg1List.OP_SVC_KEI_STAT);
										String opSvcCd = opsvcrst.getString(EKK0361B001CBSMsg1List.OP_SVC_CD);
										// OM-2023-0000008 ADD END
										keiMlad = opsvcrst.getString(EKK0361B001CBSMsg1List.MLAD);
										
										// OM-2023-0000008 ADD START
										// Eメール、且つ、照査/締結/サービス提供中
										if (JFUStrConst.CD00136_B001.equals(opSvcCd)
												&& (JFUStrConst.CD00037_020.equals(opSvcKeiStat) || JFUStrConst.CD00037_030.equals(opSvcKeiStat) || JFUStrConst.CD00037_100
														.equals(opSvcKeiStat)))
										{
										// OM-2023-0000008 ADD END
											if(!JKKStringUtil.isNullBlank(keiMlad))
											{
												mladList.add(keiMlad);
												execECC0021D010(handle, scCall, param, fixedText, keiMlad, custNm, mailCd);
												keiMlad = "";
											}
										// OM-2023-0000008 ADD START
										}
										// OM-2023-0000008 ADD END
									}
								}
							}

						}
					}
					// データマッピング
					setparam(mladList, param, fixedText);
					// ANK-4329-05-00 ADD END
				}
			}
			//ANK-4348-00-00 ADD START
			//「2:申込種別（譲渡)」かつ「1:クレジットカード名義照査要否フラグ（要)」の場合
			if(MK_SBT_2.equalsIgnoreCase(mksbt) && CRECA_NM_SHOSA_YH_FLG_1.equalsIgnoreCase(meigininsyosaFlg))
			{
				for (int i = 0 ; i < containsSysid.size(); i++)
				{
					String contSysid = containsSysid.get(i);
					// サービスIF実行(mineo譲渡受付一覧照会)
					workEKK3501B010 = getEKK3501B010CAANMsg(handle, scCall, param, fixedText, contSysid);
					
					//取得した件数分、mineo譲渡受付スキーマの利用可否を「1:（否）」に更新する
					for(CAANMsg mineoJotoUkMap : workEKK3501B010)
					{
						//利用可否
						String useKh = mineoJotoUkMap.getString(EKK3501B010CBSMsg1List.USE_KH);
						//有効期限
						String ykKigen = mineoJotoUkMap.getString(EKK3501B010CBSMsg1List.YK_KIGEN_DTM);
						//システム日時
						String sysDateDtm = JCCBPCommon.getSysDateTimeStamp();
						
						//「0:利用可否（可)」かつ、システム日時(タイムスタンプ)が有効期限を超過していない場合
						if(USE_KH_0.equals(useKh) && ykKigen.compareTo(sysDateDtm) > 0)
						{
							// サービスIF実行(mineo譲渡受付更新)
							workEKK3501C010 = getEKK3501C010Msg(handle, scCall, param, fixedText, mineoJotoUkMap);
						}
					}
				}
			}
			//ANK-4348-00-00 ADD END
			
			
			// 正常終了
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_0000);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
		}
		// サービスインターフェース呼び出しでエラーが発生した場合
		catch (SCCallException scCallEx)
		{
			// システムエラーを設定する
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_9000);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, JKKStrConst.RETURN_MESSAGE_SYSTEM_ERROR);
		}
		return param;
	}
	
	/**
	 * 単項目チェックを行い、チェック結果を返しま。
	 * <br>
	 * @param ccMsg
	 * @return チェックの判定
	 * @throws Exception
	 */
	private boolean checkUnitParam(Map<String, Object> ccMsg) throws Exception 
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();

		// --請求契約番号 パラメータ名 --
		String seikyKeiNo = (String) ccMsg.get(SEIKY_KEI_NO);
		/* 必須チェック */
		if (seikyKeiNo == null || seikyKeiNo.trim().isEmpty())
		{
			// 必須チェックエラー
			errList.add(getReqErrInfMap(SEIKY_KEI_NO));
		} 
		/*  属性チェック */
		else if (!HalfCharCheck.isEnNumber1Check(seikyKeiNo))
		{
			// 属性チェックエラー
			errList.add(getFormErrInfMap(SEIKY_KEI_NO, seikyKeiNo));
		} 
		/* 桁数チェック */
		else if (!LengthCheck.isLength1Check(seikyKeiNo, 10))
		{
			// 桁数チェックエラー
			errList.add(getLenErrInfMap(SEIKY_KEI_NO, seikyKeiNo));
		}
		
		// --請求方法コード パラメータ名--
		String seikyWayCd = (String) ccMsg.get(SEIKY_WAY_CD);
		/* 必須チェック */
		if (seikyWayCd == null || seikyWayCd.trim().isEmpty())
		{
			// 必須チェックエラー
			errList.add(getReqErrInfMap(SEIKY_WAY_CD));
		}
		/*  属性チェック */
		else if (!HalfCharCheck.isEnNumber1Check(seikyWayCd))
		{
			// 属性チェックエラー
			errList.add(getFormErrInfMap(SEIKY_WAY_CD, seikyWayCd));
		}
		/* 桁数チェック */
		else if (!LengthCheck.isLength1Check(seikyWayCd, 1)) 
		{
			// 桁数チェックエラー
			errList.add(getLenErrInfMap(SEIKY_WAY_CD, seikyWayCd));
		}
		
	    // --クレジットカード事業コード パラメータ名--
		String crecardJigyoCd = (String) ccMsg.get(CRECARD_JIGYO_CD);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(crecardJigyoCd))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(crecardJigyoCd))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CRECARD_JIGYO_CD, crecardJigyoCd));
			} 
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(crecardJigyoCd, 1))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CRECARD_JIGYO_CD, crecardJigyoCd));
			}
		}
		
		// --カードブランド パラメータ名--
		String cardBrandOptcd = (String) ccMsg.get(CARD_BRAND_OPTCD);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(cardBrandOptcd))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(cardBrandOptcd))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CARD_BRAND_OPTCD, cardBrandOptcd));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(cardBrandOptcd, 5))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CARD_BRAND_OPTCD, cardBrandOptcd));
			}
		}
		
	    // --クレジットカード番号 パラメータ名--
		String crecardNo = (String) ccMsg.get(CRECARD_NO);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(crecardNo))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(crecardNo))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CRECARD_NO, crecardNo));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength2Check(crecardNo, 11, 16))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CRECARD_NO, crecardNo));
			}
		}
		
	    // --クレジットカード有効期限 パラメータ名--
		String crecardYkKigen = (String) ccMsg.get(CRECARD_YK_KIGEN);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(crecardYkKigen))
		{
			/*  属性チェック */
			if (!DatetimeCheck.isYearMonthCheck(crecardYkKigen))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CRECARD_YK_KIGEN, crecardYkKigen));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(crecardYkKigen, 6))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CRECARD_YK_KIGEN, crecardYkKigen));
			}
		}
		
	    // --クレジットカード名義カナ名 パラメータ名--
		String crecardNmKana = (String) ccMsg.get(CRECARD_NM_KANA);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(crecardNmKana))
		{
			/*  属性チェック */
			if (!MixCharCheck.isMeigiNinKanaCheck(crecardNmKana))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CRECARD_NM_KANA, crecardNmKana));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength2Check(crecardNmKana, 1, 121))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CRECARD_NM_KANA, crecardNmKana));
			}
		}
		
		// ANK-3846-00-00 DEL START
//	    // --オーソリ承認番号 パラメータ名--
//		String crAuthnumber = (String) ccMsg.get(CR_AUTHNUMBER);
//		
//		/* 値が設定されている場合のみ属性・桁数チェック */
//		if (!JKKStringUtil.isNullBlank(crAuthnumber))
//		{
//			/*  属性チェック */
//			if (!HalfCharCheck.isEnNumber1Check(crAuthnumber))
//			{
//				// 属性チェックエラー
//				errList.add(getFormErrInfMap(CR_AUTHNUMBER, crAuthnumber));
//			}
//			/* 桁数チェック */
//			else if (!LengthCheck.isLength1Check(crAuthnumber, 7))
//			{
//				// 桁数チェックエラー
//				errList.add(getLenErrInfMap(CR_AUTHNUMBER, crAuthnumber));
//			}
//		}
		// ANK-3846-00-00 DEL END
		
	    // --仕向先会社コード パラメータ名--
		String shikosakiCompCd = (String) ccMsg.get(SHIKOSAKI_COMP_CD);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(shikosakiCompCd))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(shikosakiCompCd))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(SHIKOSAKI_COMP_CD, shikosakiCompCd));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength2Check(shikosakiCompCd, 1, 5))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(SHIKOSAKI_COMP_CD, shikosakiCompCd));
			}
		}
		
	    // --カード預りID パラメータ名--
		String saveId = (String) ccMsg.get(SAVE_ID);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(saveId))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(saveId))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(SAVE_ID, saveId));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(saveId, 16)) {
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(SAVE_ID, saveId));
			}
		}
		
	    // --カード種別 パラメータ名--
		String cardType = (String) ccMsg.get(CARD_TYPE);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(cardType))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isNumber1Check(cardType))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CARD_TYPE, cardType));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(cardType, 1)) {
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CARD_TYPE, cardType));
			}
		}
		
	    // --イシュア区分 パラメータ名--
		String issuerClass = (String) ccMsg.get(ISSUER_CLASS);
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(issuerClass))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isNumber1Check(issuerClass))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(ISSUER_CLASS, issuerClass));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(issuerClass, 1)) {
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(ISSUER_CLASS, issuerClass));
			}
		}
		
	    // --金融機関コード パラメータ名--
		String bankCd = (String) ccMsg.get(BANK_CD);
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(bankCd))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(bankCd)) {
				// 属性チェックエラー
				errList.add(getFormErrInfMap(BANK_CD, bankCd));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(bankCd, 4))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(BANK_CD, bankCd));
			}
		}
		
	    // --金融機関支店コード パラメータ名--
		String bankShitenCd = (String) ccMsg.get(BANK_SHITEN_CD);
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(bankShitenCd))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(bankShitenCd))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(BANK_SHITEN_CD, bankShitenCd));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(bankShitenCd, 3))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(BANK_SHITEN_CD, bankShitenCd));
			}
		}
		
	    // --預金種目コード パラメータ名--
		String yokinShumokuCd = (String) ccMsg.get(YOKIN_SHUMOKU_CD);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(yokinShumokuCd))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(yokinShumokuCd))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(YOKIN_SHUMOKU_CD, yokinShumokuCd));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(yokinShumokuCd, 1))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(YOKIN_SHUMOKU_CD, yokinShumokuCd));
			}
		}
		
	    // --口座番号 パラメータ名--
		String kozaNo = (String) ccMsg.get(KOZA_NO);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(kozaNo))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(kozaNo))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(KOZA_NO, kozaNo));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(kozaNo, 7))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(KOZA_NO, kozaNo));
			}
		}
		
	    // --新規コード パラメータ名--
		String newCd = (String) ccMsg.get(NEW_CD);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(newCd))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isEnNumber1Check(newCd))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(NEW_CD, newCd));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(newCd, 1))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(NEW_CD, newCd));
			}
		}
		
	    // --口座名義人カナ名 パラメータ名--
		String kozaMeiginKana = (String) ccMsg.get(KOZA_MEIGIN_KANA);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(kozaMeiginKana))
		{
			/*  属性チェック */
			if (!MixCharCheck.isMeigiNinKanaCheck(kozaMeiginKana))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(KOZA_MEIGIN_KANA, kozaMeiginKana));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength2Check(kozaMeiginKana, 1, 121))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(KOZA_MEIGIN_KANA, kozaMeiginKana));
			}
		}
		
	    // --通帳記号 パラメータ名--
		String tsuchoSymbol = (String) ccMsg.get(TSUCHO_SYMBOL);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(tsuchoSymbol))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isNumber1Check(tsuchoSymbol))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(TSUCHO_SYMBOL, tsuchoSymbol));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(tsuchoSymbol, 3))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(TSUCHO_SYMBOL, tsuchoSymbol));
			}
			}
		
	    // --通帳番号パラメータ名--
		String tsuchoNo = (String) ccMsg.get(TSUCHO_NO);
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(tsuchoNo))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isNumber1Check(tsuchoNo))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(TSUCHO_NO, tsuchoNo));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength1Check(tsuchoNo, 8))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(TSUCHO_NO, tsuchoNo));
			}
		}
		// ANK-4329-00-00 ADD START
		 // --クレジット名義照査要否フラグ パラメータ名--
		String crecaNmShosaYhFlg = (String) ccMsg.get(CRECA_NM_SHOSA_YH_FLG);
		
		// #81497,#81498 DEL START
//		/* 値が設定されている場合のみ属性・桁数チェック */
//		if (!JKKStringUtil.isNullBlank(crecaNmShosaYhFlg))
//		{
//			/*  属性チェック */
//			if (!HalfCharCheck.isNumber1Check(crecaNmShosaYhFlg))
//			{
//				// 属性チェックエラー
//				errList.add(getFormErrInfMap(CRECA_NM_SHOSA_YH_FLG, crecaNmShosaYhFlg));
//			}
//			/* 桁数チェック */
//			else if (!LengthCheck.isLength1Check(crecaNmShosaYhFlg, 1))
//			{
//				// 桁数チェックエラー
//				errList.add(getLenErrInfMap(CRECA_NM_SHOSA_YH_FLG, crecaNmShosaYhFlg));
//			}
//		}
		// #81497,#81498 DEL END
		// #81497,#81498 ADD START
		/* 必須チェック */
		if (crecaNmShosaYhFlg == null || crecaNmShosaYhFlg.trim().isEmpty())
		{
			// 必須チェックエラー
			errList.add(getReqErrInfMap(CRECA_NM_SHOSA_YH_FLG));
		} 
		/*  属性チェック */
		else if (!HalfCharCheck.isNumber1Check(crecaNmShosaYhFlg))
		{
			// 属性チェックエラー
			errList.add(getFormErrInfMap(CRECA_NM_SHOSA_YH_FLG, crecaNmShosaYhFlg));
		}
		/* 桁数チェック */
		else if (!LengthCheck.isLength1Check(crecaNmShosaYhFlg, 1))
		{
			// 桁数チェックエラー
			errList.add(getLenErrInfMap(CRECA_NM_SHOSA_YH_FLG, crecaNmShosaYhFlg));
		}
		// #81497,#81498 ADD END
		
		 // --クレジットカード名義ローマ字名 パラメータ名--
		String crecardNmRomaji = (String) ccMsg.get(CRECARD_NM_ROMAJI);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(crecardNmRomaji))
		{
			/*  属性チェック */
// ANK-4619-00-00 MOD START
//			if (!HalfCharCheck.isCrecardNmRomajiCheck(crecardNmRomaji))
			if (!HalfCharCheck.isCrecardNmRomaji2Check(crecardNmRomaji))
// ANK-4619-00-00 MOD END
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CRECARD_NM_ROMAJI, crecardNmRomaji));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength2Check(crecardNmRomaji, 1, 90))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CRECARD_NM_ROMAJI, crecardNmRomaji));
			}
		}
// ANK-4619-00-00 ADD START
		 // --クレジットカード名義（ローマ字） パラメータ名--
		String crecard_nm_romaji = (String) ccMsg.get(CRECARD_MEIGI_ROMAJI);
		
		/* 値が設定されている場合のみ属性・桁数チェック */
		if (!JKKStringUtil.isNullBlank(crecard_nm_romaji))
		{
			/*  属性チェック */
			if (!HalfCharCheck.isCrecardNmRomaji2Check(crecard_nm_romaji))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CRECARD_MEIGI_ROMAJI, crecard_nm_romaji));
			}
			/* 桁数チェック */
			else if (!LengthCheck.isLength2Check(crecard_nm_romaji, 1, 90))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CRECARD_MEIGI_ROMAJI, crecard_nm_romaji));
			}
		}
// ANK-4619-00-00 ADD END
		// --eoID パラメータ名--
		String eoId = (String) ccMsg.get(EO_ID);
		// #81497,#81498 DEL START
//		/* 値が設定されている場合のみ属性・桁数チェック */
//		if (!JKKStringUtil.isNullBlank(eoId))
//		{
//			/*  属性チェック */
//			// ANK-4329-00-00 MOD START
////			if (!HalfCharCheck.isEnNumber1Check(eoId))
//			if (!HalfCharCheck.isEnNumber2Check(eoId))
//			// ANK-4329-00-00 MOD END
//			{
//				// 属性チェックエラー
//				errList.add(getFormErrInfMap(EO_ID, eoId));
//			}
//			/* 桁数チェック */
//			else if (!LengthCheck.isLength2Check(eoId, 1, 80))
//			{
//				// 桁数チェックエラー
//				errList.add(getLenErrInfMap(EO_ID, eoId));
//			}
//		}
		// #81497,#81498 DEL END
		// #81497,#81498 ADD START
		/* 必須チェック */
		if (eoId == null || eoId.trim().isEmpty())
		{
			// 必須チェックエラー
			errList.add(getReqErrInfMap(EO_ID));
		} 
		/*  属性チェック */
		else if (!HalfCharCheck.isEnNumber2Check(eoId))
		{
			// 属性チェックエラー
			errList.add(getFormErrInfMap(EO_ID, eoId));
		}
		/* 桁数チェック */
		else if (!LengthCheck.isLength2Check(eoId, 1, 80))
		{
			// 桁数チェックエラー
			errList.add(getLenErrInfMap(EO_ID, eoId));
		}
		// #81497,#81498 ADD END
		
		// --申込種別 パラメータ名--
		String mksbt = (String) ccMsg.get(MK_SBT);
		// #81497,#81498 DEL START
//		/* 値が設定されている場合のみ属性・桁数チェック */
//		if (!JKKStringUtil.isNullBlank(mksbt))
//		{
//			/*  属性チェック */
//			if (!HalfCharCheck.isNumber1Check(mksbt))
//			{
//				// 属性チェックエラー
//				errList.add(getFormErrInfMap(MK_SBT, mksbt));
//			}
//			/* 桁数チェック */
//			else if (!LengthCheck.isLength1Check(mksbt, 1))
//			{
//				// 桁数チェックエラー
//				errList.add(getLenErrInfMap(MK_SBT, mksbt));
//			}
//		}
		// #81497,#81498 DEL END
		// #81497,#81498 ADD START
		/* 必須チェック */
		if (mksbt == null || mksbt.trim().isEmpty())
		{
			// 必須チェックエラー
			errList.add(getReqErrInfMap(MK_SBT));
		} 
		/*  属性チェック */
		else if (!HalfCharCheck.isNumber1Check(mksbt))
		{
			// 属性チェックエラー
			errList.add(getFormErrInfMap(MK_SBT, mksbt));
		}
		/* 桁数チェック */
		else if (!LengthCheck.isLength1Check(mksbt, 1))
		{
			// 桁数チェックエラー
			errList.add(getLenErrInfMap(MK_SBT, mksbt));
		}
		// #81497,#81498 ADD END
		
		// --開通前後判定フラグ パラメータ名--
		String openZengoJdgFlg = (String) ccMsg.get(OPEN_ZENGO_JDG_FLG);
			
		// #81497,#81498 DEL START
//		/* 値が設定されている場合のみ属性・桁数チェック */
//		if (!JKKStringUtil.isNullBlank(openZengoJdgFlg))
//		{
//			/*  属性チェック */
//			if (!HalfCharCheck.isNumber1Check(openZengoJdgFlg))
//			{
//				// 属性チェックエラー
//				errList.add(getFormErrInfMap(OPEN_ZENGO_JDG_FLG, openZengoJdgFlg));
//			}
//			/* 桁数チェック */
//			else if (!LengthCheck.isLength1Check(openZengoJdgFlg, 1))
//			{
//				// 桁数チェックエラー
//				errList.add(getLenErrInfMap(OPEN_ZENGO_JDG_FLG, openZengoJdgFlg));
//			}
//		}
		// #81497,#81498 DEL END
		// #81497,#81498 ADD START
		/* 必須チェック */
		if (openZengoJdgFlg == null || openZengoJdgFlg.trim().isEmpty())
		{
			// 必須チェックエラー
			errList.add(getReqErrInfMap(OPEN_ZENGO_JDG_FLG));
		} 
		// #81497,#81498 ADD END
		/*  属性チェック */
		if (!HalfCharCheck.isNumber1Check(openZengoJdgFlg))
		{
			// 属性チェックエラー
			errList.add(getFormErrInfMap(OPEN_ZENGO_JDG_FLG, openZengoJdgFlg));
		}
		/* 桁数チェック */
		else if (!LengthCheck.isLength1Check(openZengoJdgFlg, 1))
		{
			// 桁数チェックエラー
			errList.add(getLenErrInfMap(OPEN_ZENGO_JDG_FLG, openZengoJdgFlg));
		}
		// ANK-4329-00-00 ADD END
				
		/* エラーが存在する場合 */
		if (errList.size() > 0)
		{
			ccMsg.put(ERROR_INFO, errList);
			return false;
		}

		return true;
	}
	
	/**
	 * 単関連チェックを行い、チェック結果を返します。
	 * <br>
	 * @param ccMsg
	 * @return チェックの判定
	 * @throws Exception
	 */
	private boolean checkUnitParamLink(Map<String, Object> ccMsg) throws Exception 
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();

		// 請求契約番号 チェック
		String seikyWayCd = (String) ccMsg.get(SEIKY_WAY_CD);

		/* 「請求方法コードが（2:預金口座振替か3:郵便自動振込か）であれば必須とする」の場合 */
		if (SEIKY_WAY_CD_2.equals(seikyWayCd) || SEIKY_WAY_CD_3.equals(seikyWayCd))
		{
			String bankCd = (String) ccMsg.get(BANK_CD);
			/*  関連チェック */
			if (bankCd == null || bankCd.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(BANK_CD, bankCd));
			}
			String bankShitenCd = (String) ccMsg.get(BANK_SHITEN_CD);
			/*  関連チェック */
			if (bankShitenCd == null || bankShitenCd.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(BANK_SHITEN_CD, bankShitenCd));
			}
			String newCd = (String) ccMsg.get(NEW_CD);
			/*  関連チェック */
			if (newCd == null || newCd.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(NEW_CD, newCd));
			}
			String kozaMeiginKana = (String) ccMsg.get(KOZA_MEIGIN_KANA);
			/*  関連チェック */
			if (kozaMeiginKana == null || kozaMeiginKana.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(KOZA_MEIGIN_KANA, kozaMeiginKana));
			}
		}
		
		/* 「請求方法コードが（2:預金口座振替）であれば必須とする」の場合 */
		if (SEIKY_WAY_CD_2.equals(seikyWayCd))
		{
			String yokinShumokuCd = (String) ccMsg.get(YOKIN_SHUMOKU_CD);
			/*  関連チェック */
			if (yokinShumokuCd == null || yokinShumokuCd.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(YOKIN_SHUMOKU_CD, yokinShumokuCd));
			}
			String kozaNo = (String) ccMsg.get(KOZA_NO);
			/*  関連チェック */
			if (kozaNo == null || kozaNo.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(KOZA_NO, kozaNo));
			}
		}
		
		/* 「請求方法コードが（3:郵便自動振込）であれば必須とする」の場合 */
		if (SEIKY_WAY_CD_3.equals(seikyWayCd))
		{
			String tsuchoSymbol = (String) ccMsg.get(TSUCHO_SYMBOL);
			/*  関連チェック */
			if (tsuchoSymbol == null || tsuchoSymbol.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(TSUCHO_SYMBOL, tsuchoSymbol));
			}
			String tsuchoNo = (String) ccMsg.get(TSUCHO_NO);
			/*  関連チェック */
			if (tsuchoNo == null || tsuchoNo.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(TSUCHO_NO, tsuchoNo));
			}
		}
		
		/* 「請求方法コードが（4:クレジット）であれば必須とする」の場合 */
		if (SEIKY_WAY_CD_4.equals(seikyWayCd))
		{
			String crecardJigyoCd = (String) ccMsg.get(CRECARD_JIGYO_CD);
			/*  関連チェック */
			if (crecardJigyoCd == null || crecardJigyoCd.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(CRECARD_JIGYO_CD, crecardJigyoCd));
			}
			String cardBrandOptcd = (String) ccMsg.get(CARD_BRAND_OPTCD);
			/*  関連チェック */
			if (cardBrandOptcd == null || cardBrandOptcd.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(CARD_BRAND_OPTCD, cardBrandOptcd));
			}
			String crecardNo = (String) ccMsg.get(CRECARD_NO);
			/*  関連チェック */
			if (crecardNo == null || crecardNo.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(CRECARD_NO, crecardNo));
			}
			String crecardYkKigen = (String) ccMsg.get(CRECARD_YK_KIGEN);
			/*  関連チェック */
			if (crecardYkKigen == null || crecardYkKigen.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(CRECARD_YK_KIGEN, crecardYkKigen));
			}
			String crecardNmKana = (String) ccMsg.get(CRECARD_NM_KANA);
// ANK-4619-00-00 ADD START
			String crecard_nm_romaji = (String) ccMsg.get(CRECARD_MEIGI_ROMAJI);
// ANK-4619-00-00 ADD END
			/*  関連チェック */
// ANK-4619-00-00 MOD START
//			if (crecardNmKana == null || crecardNmKana.trim().isEmpty())
//			{
//				// 関連チェックエラー
//				errList.add(getRelErrInfMap(CRECARD_NM_KANA, crecardNmKana));
			if((crecardNmKana == null || crecardNmKana.trim().isEmpty()) 
					&& (crecard_nm_romaji == null || crecard_nm_romaji.trim().isEmpty()))
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(CRECARD_NM_KANA, crecardNmKana));
				errList.add(getRelErrInfMap(CRECARD_MEIGI_ROMAJI, crecard_nm_romaji));
// ANK-4619-00-00 MOD END
			}
			// ANK-3846-00-00 DEL START
			// String crAuthnumber = (String) ccMsg.get(CR_AUTHNUMBER);
			// /*  関連チェック */
			// if (crAuthnumber == null || crAuthnumber.trim().isEmpty())
			// {
			//	// 関連チェックエラー
			//	errList.add(getRelErrInfMap(CR_AUTHNUMBER, crAuthnumber));
			// }
			// ANK-3846-00-00 DEL END
			String shikosakiCompCd = (String) ccMsg.get(SHIKOSAKI_COMP_CD);
			/*  関連チェック */
			if (shikosakiCompCd == null || shikosakiCompCd.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(SHIKOSAKI_COMP_CD, shikosakiCompCd));
			}
			String saveId = (String) ccMsg.get(SAVE_ID);
			/*  関連チェック */
			if (saveId == null || saveId.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(SAVE_ID, saveId));
			}
			String cardType = (String) ccMsg.get(CARD_TYPE);
			/*  関連チェック */
			if (cardType == null || cardType.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(CARD_TYPE, cardType));
			}
			String issuerClass = (String) ccMsg.get(ISSUER_CLASS);
			/*  関連チェック */
			if (issuerClass == null || issuerClass.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(ISSUER_CLASS, issuerClass));
			}
			// ANK-4329-00-00 ADD START
			String crecaNmShosaYhFlg = (String) ccMsg.get(CRECA_NM_SHOSA_YH_FLG);
			/*  関連チェック */
			if (crecaNmShosaYhFlg == null || crecaNmShosaYhFlg.trim().isEmpty())
			{
				// 関連チェックエラー
				errList.add(getRelErrInfMap(CRECA_NM_SHOSA_YH_FLG, crecaNmShosaYhFlg));
			}
			// 「1:クレジットカード名義照査要否フラグ（要)」の場合チェックを行う
			else if(CRECA_NM_SHOSA_YH_FLG_1.equalsIgnoreCase(crecaNmShosaYhFlg))
			{
				String crecardNmRomaji = (String) ccMsg.get(CRECARD_NM_ROMAJI);
				/*  関連チェック */
				if (crecardNmRomaji == null || crecardNmRomaji.trim().isEmpty())
				{
					// 関連チェックエラー
					errList.add(getRelErrInfMap(CRECARD_NM_ROMAJI, crecardNmRomaji));
				}
				String eoId = (String) ccMsg.get(EO_ID);
				/*  関連チェック */
				if (eoId == null || eoId.trim().isEmpty())
				{
					// 関連チェックエラー
					errList.add(getRelErrInfMap(EO_ID, eoId));
				}
				String mksbt = (String) ccMsg.get(MK_SBT);
				/*  関連チェック */
				if (mksbt == null || mksbt.trim().isEmpty())
				{
					// 関連チェックエラー
					errList.add(getRelErrInfMap(MK_SBT, eoId));
				}
			}
			// ANK-4329-00-00 ADD END
		}
		
		/* エラーが存在する場合 */
		if (errList.size() > 0)
		{
			ccMsg.put(ERROR_INFO, errList);
			return false;
		}

		return true;
	}

	/**
	 * 単項目チェックの必須エラーマップ作成メソッドです。
	 * <br>
	 * @param itemName 項目名
	 * @return 必須エラーマップ
	 */
	private Map<String, String> getReqErrInfMap(String itemName)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		// エラーメッセージ設定
		String errMessage = itemName + JKKStrConst.COLON;

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1001);
		returnMap.put(ERROR_MESSAGE, errMessage);

		return returnMap;
	}

	/**
	 * 単項目チェックの属性エラーマップ作成メソッドです。
	 * <br>
	 * @param itemName 項目名
	 * @return 属性エラーマップ
	 */
	private Map<String, String> getFormErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		// エラーメッセージ設定
		String errMessage = itemName + JKKStrConst.COLON + itemValue;
		
		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1002);
		returnMap.put(ERROR_MESSAGE, errMessage);

		return returnMap;
	}

	/**
	 * 単項目チェックの桁数エラーマップ作成メソッドです。
	 * <br>
	 * @param itemName 項目名
	 * @return 数エラーマップ
	 */
	private Map<String, String> getLenErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		// エラーメッセージ設定
		String errMessage = itemName + JKKStrConst.COLON + itemValue;

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1003);
		returnMap.put(ERROR_MESSAGE, errMessage);

		return returnMap;
	}
	
	/**
	 * 単項目チェックの関連エラーマップ作成メソッドです。
	 * <br>
	 * @param itemName 項目名
	 * @return 関連エラーマップ 
	 */
	private Map<String, String> getRelErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		// エラーメッセージ設定
		String errMessage = itemName + JKKStrConst.COLON + itemValue;
		
		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1101);
		returnMap.put(ERROR_MESSAGE, errMessage);

		return returnMap;
	}

	/**
	 * 請求契約存在チェッエラーマップ作成メソッドです。
	 * <br>
	 * @param itemName 項目名
	 * @return チェックの判定
	 */
	private boolean checkSeikyuKeiSonzai(Map<String, Object> ccMsg, CAANMsg[] ekk0491a010Msg1List) throws Exception
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
		
		Map<String, String> returnMap = new HashMap<String, String>();
		
		/* 検索結果なしの場合 */
		if (ekk0491a010Msg1List == null || ekk0491a010Msg1List.length == 0)
		{
			// 請求契約存在チェックエラーの場合は以下のエラーコードとエラーメッセージを設定する。
			returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_2001);
			returnMap.put(ERROR_MESSAGE, "");
			errList.add(returnMap);
			ccMsg.put(ERROR_INFO, errList);
			
			return false;
		}
		return true;
	}
	/**
	 * 未来予約チェックェッエラーマップ作成メソッドです。
	 * <br>
	 * @param itemName 項目名
	 * @return チェックの判定 
	 */
	private boolean checkMiraiYoyaku(Map<String, Object> ccMsg, CAANMsg[] ekk0491b010Msg1List) throws Exception
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
		
		Map<String, String> returnMap = new HashMap<String, String>();
		
		String seikyWayCdRsv = "";
		
		/* nullチェック */
		if (ekk0491b010Msg1List != null)
		{
			/* ekk0491b010Msg1Listチェック */
			for (int i = 0; i < ekk0491b010Msg1List.length; i++)
			{
				
				seikyWayCdRsv = ekk0491b010Msg1List[i].getString(EKK0491B010CBSMsg1List.SEIKY_WAY_CD_RSV);
				
				/* 検索結果なしの場合 */
				if (!JKKStringUtil.isNullBlank(seikyWayCdRsv))
				{	
					// 請求契約存在チェックエラーの場合は以下のエラーコードとエラーメッセージを設定する。
					returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_2002);
					returnMap.put(ERROR_MESSAGE, "");
					errList.add(returnMap);
					ccMsg.put(ERROR_INFO, errList);
					
					return false;
				}
			}
		}
		return true;
	}
	/**
	 * @param param
	 * @param mappingData
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException
	 */
	private HashMap<String, Object> editInMsg(IRequestParameterReadWrite param,
												Object[][] mappingData) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());
		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());
		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());
		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// 【取得元：ユーザエリア(コントロールマップ)】
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));
		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));
		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));
		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));
		
		String svcIf = (String)mappingData[0][1];
		
		CAANMsg template = new CAANMsg(String.format("eo.ejb.cbs.cbsmsg.%sCBSMsg", svcIf));

		// オペレータID
		template.set(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));
		// 運用日付
		template.set(JCMConstants.OPERATE_DATE_KEY, param.getControlMapData(SCControlMapKeys.OPE_DATE));
		// 運用日時
		template.set(JCMConstants.OPERATE_DATETIME_KEY, param.getControlMapData(SCControlMapKeys.OPE_TIME));
		
		for (int i = 0; i < mappingData.length; i++)
		{
			/* CAANMsg[]の場合 */
			if (mappingData[i][1] instanceof CAANMsg[])
			{
				 template.set((String)mappingData[i][0], (CAANMsg[])mappingData[i][1]);
			}
			/* CAANMsg[]の以外 */
			else
			{
				/* nullの場合*/
				if ("".equals(mappingData[i][1]))
				{
					template.setNull((String)mappingData[i][0]);
				}
				/* 他の場合*/
				else
				{
					template.set((String)mappingData[i][0], mappingData[i][1]);
				}
			}
		}
		
		CAANMsg[] templates = new CAANMsg[1];
		templates[0] = template;
		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}
	
	/**
	 * 
	 * @param param
	 * @param templates
	 * @param returnCode
	 * @param dataMapKey
	 * @param mappingData
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrorInfoCom(IRequestParameterReadWrite param,
														CAANMsg[] templates, 
														int returnCode,
														String dataMapKey,
														Object[][] mappingData) throws RequestParameterException
	{
		// 本来はサービスインターフェイス分の処理が必要
		CAANMsg template = templates[0];
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);
		
		/* 0以外のとき */
		if (returnCode != 0)
		{
			templateStatus = 9000;
		}
		
		/* nullのとき */
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		/* nullの場合 */
		if (obj == null)
		{
			bpStatus = -1;
		}
		/* 他の場合 */
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}
		/* セクタが比べる*/
		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		HashMap<String, String> inMap = null;

		// ユーザデータ情報
		inMap = (HashMap<String, String>)param.getData(dataMapKey);
		
		for (int i = 0; i < mappingData.length; i++)
		{
			/* nullチェック　*/
			if (!template.isNull(mappingData[i][0] + "_err"))
			{
				/* ユーザデータ情報にエラーを確認する　*/
				if (!inMap.containsKey(mappingData[i][0] + "_err"))
				{
					inMap.put(mappingData[i][0] + "_err", template.getString(mappingData[i][0] + "_err"));
				}
			}
		}
		return param;
	}
	
	/**
	 * SC(サービスインターフェイス）を呼び出す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param mappingData
	 * @return CAANMsg
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg callSC(SessionHandle handle, 
							ServiceComponentRequestInvoker scCall, 
							IRequestParameterReadWrite param, 
							String dataMapKey,
							Object[][] mappingData) throws Exception
	{
		HashMap<String, Object> paramMap = editInMsg(param, mappingData);
		
		Map<?, ?> result = scCall.run(paramMap, handle);
		
		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg msg = templates[0];
		
		// リターンコード取得
		Object return_code = result.get(JCMConstants.RET_CD_INT_KEY);
		int status = msg.getInt(JCMConstants.STATUS_INT_KEY);
		
		editErrorInfoCom(param, templates, (Integer)return_code, dataMapKey, mappingData);
		
		//エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		
		/* エラー情報のマップないとき、新しいエラー情報をイニシャライズする*/
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}
		
		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(result, errList));
		
		String gamenId = (String)result.get("INVOKE_GAMEN_ID");
		if(null != gamenId && (gamenId.startsWith("KKW22702"))){
			for (int i = 0; i < errList.size(); i++)
			{
				HashMap errMap = (HashMap) errList.get(i);
				// ANK-4348-00-00 MOD START
				//if("EKK0491C060".equals(errMap.get("TEMPLATE_ID")) || "EKK0491C240".equals(errMap.get("TEMPLATE_ID")))
				if("EKK0491C060".equals(errMap.get("TEMPLATE_ID")) || "EKK0491C240".equals(errMap.get("TEMPLATE_ID")) || "EKK3401C010".equals(errMap.get("TEMPLATE_ID")))
				// ANK-4348-00-00 MOD END
				{
					HashMap m = (HashMap)errMap.get("ITEM_CHECK_ERRORS");
					if("EA".equals(m.get("upd_dtm_bf_err"))
						&& 1100 == status)
					{
						HashMap<String, Object> ccMsg = (HashMap<String, Object>) param.getData("KKSV101601CC");
						ccMsg.put("err_flg", "3");
						return msg;
					}
				}
			}
		}
		
		/* 異常の場合、SCCallExceptionを生成してスローする */
		if (!("0".equals(return_code.toString()) && 0 == status))
		{
			throw new SCCallException("戻り値不正", return_code.toString(), status);
		}
		return msg;
	}
	/**
	 * 請求契約固有の照会サービスIFの実行の結果を返す。
	 * <br>
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @return CAANMsg[]
	 * @throws Exception
	 */
	private CAANMsg[] getEKK0491A010CAANMsg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg) throws Exception 
	{
		
		CAANMsg[] result = null;
		CAANMsg ekk0491a010Msg = null;
		
		// サービス請求契約一意照会の上りマッピング
		Object[][] ekk0491a010 =
		{
			{EKK0491A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0491A010},
			{EKK0491A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2},
			{EKK0491A010CBSMsg.KEY_SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
			{EKK0491A010CBSMsg.KEY_RSV_APLY_YMD, nullToStr(JPCBPCommon.getOpeDate(null))}
		};
		
		// サービスIF実行
		ekk0491a010Msg = callSC(handle, scCall, param, dataMapKey, ekk0491a010);
		result = ekk0491a010Msg.getCAANMsgList(EKK0491A010CBSMsg.EKK0491A010CBSMSG1LIST);
		
		return result;
	}
	/**
	 * 請求契約情報一覧照会(CMP)サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @return CAANMsg[]
	 * @throws Exception
	 */
	private CAANMsg[] getEKK0491B010CAANMsg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg) throws Exception 
	{
		
		CAANMsg[] result = null;
		CAANMsg ekk0491b010Msg = null;
		
		// サービス請求契約情報一覧照会(CMP)の上りマッピング
		Object[][] ekk0491b010 =
		{
			{EKK0491B010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0491B010},
			{EKK0491B010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0491B010CBSMsg.KEY_SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))}
		};
		
		// サービスIF実行
		ekk0491b010Msg = callSC(handle, scCall, param, dataMapKey, ekk0491b010);
		
		result = ekk0491b010Msg.getCAANMsgList(EKK0491B010CBSMsg.EKK0491B010CBSMSG1LIST);
		
		return result;
	}
	/**
	 * 課金先一覧照会(請求契約番号/サービス契約番号)のサービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @return CAANMsg[]
	 * @throws Exception
	 */
	private CAANMsg[] getEKK0321B002CAANMsg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg) throws Exception 
	{
		
		CAANMsg[] result = null;
		CAANMsg ekk0321b002Msg = null;
		
		// サービス課金先一覧照会(請求契約番号/サービス契約番号)の上りマッピング
		Object[][] ekk0321b002 =
		{
			{EKK0321B002CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0321B002},
			{EKK0321B002CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2},
			{EKK0321B002CBSMsg.KEY_SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
			{EKK0321B002CBSMsg.KEY_RSV_APLY_YMD, nullToStr(JPCBPCommon.getOpeDate(null))}
		};
		
		// サービスIF実行
		ekk0321b002Msg = callSC(handle, scCall, param, dataMapKey, ekk0321b002);
		
		result = ekk0321b002Msg.getCAANMsgList(EKK0321B002CBSMsg.EKK0321B002CBSMSG1LIST);
		
		return result;
	}
	/**
	 * 申込内容承認登録サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param sysid
	 * @return CAANMsg[]
	 * @throws Exception
	 */
	private CAANMsg[] getEKK0011D020Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			String sysid) throws Exception 
	{
		
		CAANMsg[] result = null;
		CAANMsg ekk0011d020Msg = null;
		
		// サービス申込内容承認登録の上りマッピング
		Object[][] ekk0011d020 =
		{
			{EKK0011D020CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0011D020},
			{EKK0011D020CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0011D020CBSMsg.SYSID, nullToStr(sysid)},
			{EKK0011D020CBSMsg.MSKM_SBT_CD, MSKM_SBT_CD_0013},
			{EKK0011D020CBSMsg.MSKM_UK_DTM, nullToStr(JCCBPCommon.getOpeDateTimeStamp(null))},
			{EKK0011D020CBSMsg.MSKM_YMD, nullToStr(JPCBPCommon.getOpeDate(null))},
			{EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, JKKStrConst.CD00760_04},
			{EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, new CAANMsg[]{new CAANMsg(EKK0011D020CBSMsg1List.class.getName())}}
		};
		
		// サービスIF実行
		ekk0011d020Msg = callSC(handle, scCall, param, dataMapKey, ekk0011d020);
		
		result = ekk0011d020Msg.getCAANMsgList(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);	
		
		// 申込明細番号
		String mskmDtlNo = nullToStr(result[0].getString(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
		
		// 更新年月日時分秒
		String updDtm = nullToStr(ekk0011d020Msg.getString(EKK0011D020CBSMsg.UPD_DTM));
		
		// 申込明細照査・後続業務依頼サービスIF実行
		CAANMsg workEKK0021C060 = getEKK0021C060Msg(handle, scCall, param, dataMapKey, mskmDtlNo, updDtm);
		
		return result;
	}
	
	/**
	 * 申込明細照査・後続業務依頼サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param mskmDtlNo
	 * @param updDtm
	 * @return CAANMsg
	 * @throws Exception
	 */
	private CAANMsg getEKK0021C060Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			String mskmDtlNo,
			String updDtm) throws Exception 
	{
		
		CAANMsg result = null;
		
		// 申込明細照査・後続業務依頼の上りマッピング
		Object[][] ekk0021c060 =
		{
			{EKK0021C060CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0021C060},
			{EKK0021C060CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0021C060CBSMsg.MSKM_DTL_NO, nullToStr(mskmDtlNo)},
			{EKK0021C060CBSMsg.KZKWRK_REQYMD, nullToStr(JPCBPCommon.getOpeDate(null))},
			{EKK0021C060CBSMsg.UPD_DTM_BF, nullToStr(updDtm)},
			{EKK0021C060CBSMsg.IDO_DIV, JKKStrConst.CD00576_SEIKY_INFO_CHG}
		};
		
		// サービスIF実行
		result = callSC(handle, scCall, param, dataMapKey, ekk0021c060);
		
		return result;
	}
	
	/**
	 * 口振手続サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @return CAANMsg
	 * @throws Exception
	 */
	private CAANMsg getEKK0501D010Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg,
			CAANMsg[] workEKK0491A010) throws Exception 
	{
		
		CAANMsg result = null;
		
		String paramSeikyWayCd = nullToStr((String)ccMsg.get(SEIKY_WAY_CD));
		String yokinShumokuCd = "";
		String kozaNo = "";
		String tsuchoSymbol ="";
		String tsuchoNo = "";
		
		/* 請求方法コードが"2"(預金口座振替)の場合 */
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(paramSeikyWayCd))
		{
			yokinShumokuCd = nullToStr((String) ccMsg.get(YOKIN_SHUMOKU_CD));
			kozaNo = nullToStr((String) ccMsg.get(KOZA_NO));
		}
		/* 請求方法コードが"3"(郵便自動振込)の場合 */
		else if (JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(paramSeikyWayCd))
		{
			tsuchoSymbol = nullToStr((String) ccMsg.get(TSUCHO_SYMBOL));
			tsuchoNo = nullToStr((String) ccMsg.get(TSUCHO_NO));
		}
		// サービス口振手続の上りマッピング
		Object[][] ekk0501d010 =
		{
			{EKK0501D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0501D010},
			{EKK0501D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0501D010CBSMsg.BANK_CD, nullToStr((String) ccMsg.get(BANK_CD))},
			{EKK0501D010CBSMsg.BANK_SHITEN_CD, nullToStr((String) ccMsg.get(BANK_SHITEN_CD))},
			{EKK0501D010CBSMsg.YOKIN_SHUMOKU_CD, yokinShumokuCd},
			{EKK0501D010CBSMsg.KOZA_NO, kozaNo},
			{EKK0501D010CBSMsg.NEW_CD, nullToStr((String) ccMsg.get(NEW_CD))},
			{EKK0501D010CBSMsg.KOZA_MEIGIN_KANA, nullToStr((String) ccMsg.get(KOZA_MEIGIN_KANA))},
			{EKK0501D010CBSMsg.TSUCHO_SYMBOL, tsuchoSymbol},
			{EKK0501D010CBSMsg.TSUCHO_NO, tsuchoNo},
// ST-2023-0000001 MOD START
//			{EKK0501D010CBSMsg.UPD_DTM_BF, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.UPD_DTM))},
			{EKK0501D010CBSMsg.UPD_DTM_BF, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.LAST_UPD_DTM))},
// ST-2023-0000001 MOD END
			{EKK0501D010CBSMsg.IDO_DIV, JKKStrConst.CD00576_SEIKY_INFO_CHG},
		};
		
		// サービスIF実行
		result = callSC(handle, scCall, param, dataMapKey, ekk0501d010);	
		
		return result;
	}	
	/**
	 * 口振審査依頼サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param workEKK0501D010
	 * @return CAANMsg
	 * @throws Exception
	 */
	private CAANMsg getEKK0501C030Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			CAANMsg workEKK0501D010) throws Exception 
	{
		CAANMsg result = null;
		
		// サービス口振審査依頼の上りマッピング
		Object[][] ekk0501c030  =
		{
			{EKK0501C030CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0501C030},
			{EKK0501C030CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0501C030CBSMsg.SEIKY_WAY_NO_KOZA, nullToStr(workEKK0501D010.getString(EKK0501D010CBSMsg.SEIKY_WAY_NO_KOZA))},
			{EKK0501C030CBSMsg.UPD_DTM_BF, nullToStr(workEKK0501D010.getString(EKK0501D010CBSMsg.UPD_DTM))},
		};
		// サービスIF実行
		result = callSC(handle, scCall, param, dataMapKey, ekk0501c030);	
		
		return result;
	}
	/**
	 * 口振審査結果OK登録サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param workEKK0501D010
	 * @return CAANMsg
	 * @throws Exception
	 */
	private CAANMsg getEKK0501C080Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg,
			CAANMsg workEKK0501D010,
			CAANMsg workEKK0501C030) throws Exception 
	{
		
		CAANMsg result = null;
		
		String paramSeikyWayCd = nullToStr((String)ccMsg.get(SEIKY_WAY_CD));
		String paySkekkaCd = "";
		
		/* 請求方法コードが"2"(預金口座振替)の場合、20:口座振替申請ＯＫを設定する */
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(paramSeikyWayCd))
		{
			paySkekkaCd = JKKStrConst.PAY_SKEKKA_CD_KHRI_SHINSEI_OK;
		}
		/* 請求方法コードが"3"(郵便自動振込)の場合、30:郵便自動振込申請ＯＫを設定する */
		else if (JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(paramSeikyWayCd))
		{
			paySkekkaCd = JKKStrConst.PAY_SKEKKA_CD_YJHRI_SHINSEI_OK;
		}
		
		// サービス口振審査結果OK登録の上りマッピング
		Object[][] ekk0501c080  =
		{
			{EKK0501C080CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0501C080},
			{EKK0501C080CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0501C080CBSMsg.SEIKY_WAY_NO_KOZA, nullToStr(workEKK0501D010.getString(EKK0501D010CBSMsg.SEIKY_WAY_NO_KOZA))},
			{EKK0501C080CBSMsg.UPD_DTM_BF, nullToStr(workEKK0501C030.getString(EKK0491A010CBSMsg1List.UPD_DTM))},
			{EKK0501C080CBSMsg.PAY_SKEKKA_CD, paySkekkaCd},
			{EKK0501C080CBSMsg.IDO_DIV, JKKStrConst.CD00576_SEIKY_INFO_CHG},
			{EKK0501C080CBSMsg.RSV_APLY_YMD, nullToStr(JPCBPCommon.getOpeDate(null))},
		};
		
		// サービスIF実行
		result = callSC(handle, scCall, param, dataMapKey, ekk0501c080);
		
		return result;
	}
	/**
	 * クレジットカード会社一意照会サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @return CAANMsg[]
	 * @throws Exception
	 */
	private CAANMsg[] getEKK0531A010Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg) throws Exception 
	{
		CAANMsg[] result = null;
		CAANMsg ekk0531a010Msg = null;
		
		// クレジットカード会社一意照会サービスIF実行
		Object[][] ekk0531a010  =
		{
			{EKK0531A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0531A010},
			{EKK0531A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2},
			{EKK0531A010CBSMsg.KEY_CRECARD_COMP_CD, nullToStr((String)ccMsg.get(CARD_BRAND_OPTCD))},
			{EKK0531A010CBSMsg.KEY_CRECARD_JIGYO_CD, nullToStr((String)ccMsg.get(CRECARD_JIGYO_CD))},
			{EKK0531A010CBSMsg.KEY_RSV_APLY_YMD, nullToStr(JPCBPCommon.getOpeDate(null))}
		};
		
		// サービスIF実行
		ekk0531a010Msg = callSC(handle, scCall, param, dataMapKey, ekk0531a010);
		result = ekk0531a010Msg.getCAANMsgList(EKK0531A010CBSMsg.EKK0531A010CBSMSG1LIST);
		
		return result;
	}
	/**
	 * 審査済クレジットカード登録サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @param workEKK0531A010
	 * @return CAANMsg
	 * @throws Exception
	 */
	private CAANMsg getEKK0521D020Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
// ANK-4619-00-00 MOD START
//			Map<String, Object> ccMsg) throws Exception 
			Map<String, Object> ccMsg, 
			Map<String, Object> creCardNmChgeMap) throws Exception 
// ANK-4619-00-00 MOD END
	{
		CAANMsg result = null;
// ANK-4619-00-00 ADD START
		String crecard_nm_kana = JKKStrConst.KARA;
		String crecard_nm_romaji = JKKStrConst.KARA;
		// クレジットカード名称変換結果が存在する場合
		if(!JKKCommonUtil.isNull(creCardNmChgeMap) && !JKKCommonUtil.isNull(creCardNmChgeMap.get("out_kana")))
		{
			crecard_nm_kana = (String)creCardNmChgeMap.get("out_kana");
			crecard_nm_romaji = (String)creCardNmChgeMap.get("out_romaji");
		}
		else
		{
			crecard_nm_kana = (String)ccMsg.get(CRECARD_NM_KANA);
			crecard_nm_romaji = (String)ccMsg.get(CRECARD_NM_ROMAJI);
		}
// ANK-4619-00-00 ADD END
		
		// 審査済クレジットカード登録サービスIF実行
		Object[][] ekk0521d020  =
		{
			{EKK0521D020CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0521D020},
			{EKK0521D020CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0521D020CBSMsg.CRECARD_JIGYO_CD, nullToStr((String)ccMsg.get(CRECARD_JIGYO_CD))},
			{EKK0521D020CBSMsg.CRECARD_COMP_CD, nullToStr((String)ccMsg.get(CARD_BRAND_OPTCD))},
			{EKK0521D020CBSMsg.CRECARD_NO, nullToStr((String)ccMsg.get(CRECARD_NO))},
			{EKK0521D020CBSMsg.CRECARD_YK_KIGEN, nullToStr((String)ccMsg.get(CRECARD_YK_KIGEN))},
// ANK-4619-00-00 MOD START
//			{EKK0521D020CBSMsg.CRECARD_NM_KANA, nullToStr((String)ccMsg.get(CRECARD_NM_KANA))},
			{EKK0521D020CBSMsg.CRECARD_NM_KANA, nullToStr(crecard_nm_kana)},
// ANK-4619-00-00 MOD END
// ANK-4619-00-00 ADD START
			{EKK0521D020CBSMsg.CRECARD_NM_ROMAJI, nullToStr(crecard_nm_romaji)},
// ANK-4619-00-00 ADD END
			// ANK-3846-00-00 DEL START
			// {EKK0521D020CBSMsg.AUTHORI_SHONIN_NO, nullToStr((String)ccMsg.get(CR_AUTHNUMBER))},
			// ANK-3846-00-00 DEL END
			{EKK0521D020CBSMsg.CRECARD_NO_AZKRI_ID, nullToStr((String)ccMsg.get(SAVE_ID))},
			{EKK0521D020CBSMsg.SHIKOSAKI_COMP_CD, nullToStr((String)ccMsg.get(SHIKOSAKI_COMP_CD))},
			{EKK0521D020CBSMsg.CRECARD_SBT_CD, nullToStr((String)ccMsg.get(CARD_TYPE))},
			{EKK0521D020CBSMsg.CRDT_ISSUER_DIV, nullToStr((String)ccMsg.get(ISSUER_CLASS))},
			{EKK0521D020CBSMsg.PAY_SKEKKA_CD, JKKStrConst.PAY_SKEKKA_CD_CRECARD_SHINSEI_OK},
			{EKK0521D020CBSMsg.AUTHORI_CFM_DTM, JCCBPCommon.getOpeDateTimeStamp(null)},	
			{EKK0521D020CBSMsg.IDO_DIV, JKKStrConst.CD00576_SEIKY_INFO_CHG},	
		};
		
		// サービスIF実行
		result = callSC(handle, scCall, param, dataMapKey, ekk0521d020);

		return result;
	}
	/**
	 * 請求契約内容変更サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @param workEKK0011D020
	 * @param workEKK0491A010
	 * @return CAANMsg
	 * @throws Exception
	 */
	// IT1-2022-0000083 MOD START
//	private CAANMsg getEKK0491C060Msg(SessionHandle handle, 
//			ServiceComponentRequestInvoker scCall, 
//			IRequestParameterReadWrite param, 
//			String dataMapKey,
//			Map<String, Object> ccMsg,
//			CAANMsg[] workEKK0011D020,
//			CAANMsg[] workEKK0491A010) throws Exception 
			private CAANMsg getEKK0491C060Msg(SessionHandle handle, 
					ServiceComponentRequestInvoker scCall, 
					IRequestParameterReadWrite param, 
					String dataMapKey,
					Map<String, Object> ccMsg,
					CAANMsg[] workEKK0011D020,
					CAANMsg[] workEKK0491A010,
// ANK-4619-00-00 MOD START
//					String runSysJudge) throws Exception 
					String runSysJudge,
					Map<String, Object> creCardNmChgeMap) throws Exception 
// ANK-4619-00-00 MOD END
	// IT1-2022-0000083 MOD START
	{
		CAANMsg result = null;
		
		String mskmDtlNo = "";
		
		/* nullチェック */
		if(workEKK0011D020 != null)
		{
			mskmDtlNo = nullToStr(workEKK0011D020[0].getString(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
		}
		
		String paramSeikyWayCd = nullToStr((String) ccMsg.get(SEIKY_WAY_CD));
		String seikyKeiKana = "";
		// #81497,#81498 DEL START
//		String firstPayMskmshoRcpYmd = nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.FIRST_PAY_MSKMSHO_RCP_YMD));
		// #81497,#81498 DEL END
		// ANK-4329-05-01 ADD START
		String open_zengo_jdg_flg = (String) ccMsg.get(OPEN_ZENGO_JDG_FLG);
		String meigininsyosaFlg = (String) ccMsg.get(CRECA_NM_SHOSA_YH_FLG);
		// ANK-4329-05-01 ADD END
		/* workEKK0011D020.申込明細番号が取得できない場合、workEKK0491A010.申込明細番号を設定する */
		if(EMPTY.equals(mskmDtlNo)){
			mskmDtlNo = nullToStr(workEKK0491A010[0].getString(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
		}

		// ANK-4329-00-00 ADD START
		// 予約適用日
		String rsv_aply_ymd = JPCBPCommon.getOpeDate(null);
		// ANK-4329-00-00 ADD END
		/* 請求方法コードが"2"(預金口座振替)、"3"(郵便自動振込)の場合、KKSV095901CC.口座名義人カナ名を設定する */
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(paramSeikyWayCd) || JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(paramSeikyWayCd))
		{
			seikyKeiKana = nullToStr((String) ccMsg.get(KOZA_MEIGIN_KANA));
		}
		/* 請求方法コードが"4"(クレジット)の場合、KKSV095901CC.クレジットカード名義カナ名を設定する*/
		else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd))
		{
// ANK-4619-00-00 MOD START
//			seikyKeiKana = nullToStr((String) ccMsg.get(CRECARD_NM_KANA));
			// クレジットカード名称変換結果が存在する場合
			if(!JKKCommonUtil.isNull(creCardNmChgeMap) && !JKKCommonUtil.isNull(creCardNmChgeMap.get("out_kana")))
			{
				seikyKeiKana = nullToStr((String) creCardNmChgeMap.get("out_kana"));
			}
			else
			{
				seikyKeiKana = nullToStr((String) ccMsg.get(CRECARD_NM_KANA));
			}
// ANK-4619-00-00 MOD END
			
			// #81497,#81498 DEL START
//			// ANK-4329-00-00 ADD START
//			// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
//			String rsv_aply_ym = rsv_aply_ymd.substring(0,6);
//			String rsv_aply_dd = rsv_aply_ymd.substring(6);
//			// IT1-2022-0000083 MOD START
//			// 実行システムが画面の場合
//			if(RUN_SYS_JUDGE_FLG_0.equals(runSysJudge))
//			{
//				// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
//				if(1 =="10".compareTo(rsv_aply_dd))
//				{
//					StringBuilder sb = new StringBuilder();
//					sb.append(rsv_aply_ym);
//					sb.append("10");
//					rsv_aply_ymd = sb.toString();
//				}
//			}
//			// 開通前後判定フラグが開通前後判定フラグが「1:開通後」かつ照査要否フラグが「0:否」または「1:要」
////			if((OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg) && CRECA_NM_SHOSA_YH_FLG_0.equals(meigininsyosaFlg)) 
////					|| CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg))
//			else if((OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg) && CRECA_NM_SHOSA_YH_FLG_0.equals(meigininsyosaFlg)) 
//					|| CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg))
//			// IT1-2022-0000083 MOD END
//			{
//			// ANK-4329-05-01 ADD END
//				// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
//				if(1 =="10".compareTo(rsv_aply_dd))
//				{
//					StringBuilder sb = new StringBuilder();
//					sb.append(rsv_aply_ym);
//					sb.append("10");
//					rsv_aply_ymd = sb.toString();
//				}
//			}
//			// ANK-4329-00-00 ADD END
			// #81497,#81498 DEL END
		}
		
		// #81497,#81498 ADD START
		// オンライン運用日を取得し、「YYYYMM」と「DD」を取得する
		String rsv_aply_ym = rsv_aply_ymd.substring(0,6);
		String rsv_aply_dd = rsv_aply_ymd.substring(6);
		
		// 実行システムが画面の場合
		if(RUN_SYS_JUDGE_FLG_0.equals(runSysJudge))
		{
			// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
			if(1 =="10".compareTo(rsv_aply_dd))
			{
				StringBuilder sb = new StringBuilder();
				sb.append(rsv_aply_ym);
				sb.append("10");
				rsv_aply_ymd = sb.toString();
			}
		} else {
			// 開通前後判定フラグが「1:開通後」の場合、以下の処理を実施
			if(OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg)) {
				// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
				if(1 =="10".compareTo(rsv_aply_dd))
				{
					StringBuilder sb = new StringBuilder();
					sb.append(rsv_aply_ym);
					sb.append("10");
					rsv_aply_ymd = sb.toString();
				}
			}
		}
		
		// オンライン運用日
		String adj_ymd = JPCBPCommon.getOpeDate(null);
		String mskm_dd = adj_ymd.substring(6);
		
		
		//運用日付が25日以降は当月25日を調整日とし、運用日付が24日以前は予約適用年月日を調整日とする
		if (1 > "25".compareTo(mskm_dd))
		{
			adj_ymd = JPCBPCommon.getOpeDate(null).substring(0, 6) + "25";
		}
		else
		{
			adj_ymd = rsv_aply_ymd;
		}
		
		// #81497,#81498 ADD END
		
		// #81497,#81498 DEL START
		/* workEKK0491A010.初回支払申込書受領年月日が未設定の場合、運用日付を設定する */
//		if(EMPTY.equals(firstPayMskmshoRcpYmd)) 
//		{
//			firstPayMskmshoRcpYmd = nullToStr(JPCBPCommon.getOpeDate(null));
//		}
		// #81497,#81498 DEL END
		
		// 請求契約内容変更サービスIF実行
		Object[][] ekk0491c060  =
		{
			{EKK0491C060CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0491C060},
			{EKK0491C060CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0491C060CBSMsg.SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
			{EKK0491C060CBSMsg.MSKM_DTL_NO, mskmDtlNo},
			{EKK0491C060CBSMsg.INFO_DSP_CD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.INFO_DSP_CD))},
			{EKK0491C060CBSMsg.SEIKYUS_HAKKO_YH, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SEIKYUS_HAKKO_YH))},
			{EKK0491C060CBSMsg.SKS_SHS_KSH_AD_SAI_FLG, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SKS_SHS_KSH_AD_SAI_FLG))},
			{EKK0491C060CBSMsg.SKS_SHS_NM_CUST_NM_SAI_FLG, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SKS_SHS_NM_CUST_NM_SAI_FLG))},
			{EKK0491C060CBSMsg.SHS_HOJIN_SBT_CD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SHS_HOJIN_SBT_CD))},
			{EKK0491C060CBSMsg.SHS_HOJIN_ZENGO_SHITEI_CD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SHS_HOJIN_ZENGO_SHITEI_CD))},
			{EKK0491C060CBSMsg.SHS_KANA, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SHS_KANA))},
			{EKK0491C060CBSMsg.SOHUS_NM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_NM))},
			{EKK0491C060CBSMsg.SOHUS_BKM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_BKM))},
			{EKK0491C060CBSMsg.SOHUS_TNTSHA_NM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_TNTSHA_NM))},
			{EKK0491C060CBSMsg.SOHUS_AD_CD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_AD_CD))},
			{EKK0491C060CBSMsg.SOHUS_PCD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_PCD))},
			{EKK0491C060CBSMsg.SOHUS_STATE_NM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_STATE_NM))},
			{EKK0491C060CBSMsg.SOHUS_CITY_NM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_CITY_NM))},
			{EKK0491C060CBSMsg.SOHUS_OAZTSU_NM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_OAZTSU_NM))},
			{EKK0491C060CBSMsg.SOHUS_AZCHO_NM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_AZCHO_NM))},
			{EKK0491C060CBSMsg.SOHUS_ADRTTM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_ADRTTM))},
			{EKK0491C060CBSMsg.SOHUS_ADRRM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_ADRRM))},
			{EKK0491C060CBSMsg.SOHUS_BNCHIGO, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_BNCHIGO))},
			{EKK0491C060CBSMsg.SOHUS_TELNO, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_TELNO))},
			{EKK0491C060CBSMsg.SOHUS_FAX_NO, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_FAX_NO))},
			{EKK0491C060CBSMsg.SOHUS_MLAD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_MLAD))},
			{EKK0491C060CBSMsg.SEIKYUS_SOHUS_CHGE_YMD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SEIKYUS_SOHUS_CHGE_YMD))},
			// #81497,#81498 MOD START
//			{EKK0491C060CBSMsg.SEIKY_WAY_APLY_ADJ_YMD, nullToStr(nullToStr(JPCBPCommon.getOpeDate(null)))},
			{EKK0491C060CBSMsg.SEIKY_WAY_APLY_ADJ_YMD, nullToStr(adj_ymd)},
			// #81497,#81498 MOD START
			{EKK0491C060CBSMsg.RSV_TSTA_KIBO_YMD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.RSV_TSTA_KIBO_YMD))},
			{EKK0491C060CBSMsg.FIRST_SEIKY_YM, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.FIRST_SEIKY_YM))},
			{EKK0491C060CBSMsg.FIRST_PAY_MSKMSHO_SOHU_YH, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.FIRST_PAY_MSKMSHO_SOHU_YH))},
			{EKK0491C060CBSMsg.FIRST_PAY_MSKMSHO_SOHU_YMD, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.FIRST_PAY_MSKMSHO_SOHU_YMD))},
// #81497,#81498 MOD START
//			{EKK0491C060CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD, firstPayMskmshoRcpYmd},
			{EKK0491C060CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD, nullToStr(JPCBPCommon.getOpeDate(null))},
// #81497,#81498 MOD END
// ST-2023-0000001 MOD START
//			{EKK0491C060CBSMsg.UPD_DTM_BF, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.UPD_DTM))},
			// #81497,#81498 MOD START
//			{EKK0491C060CBSMsg.UPD_DTM_BF, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.LAST_UPD_DTM))},
			{EKK0491C060CBSMsg.UPD_DTM_BF, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.UPD_DTM))},
			// #81497,#81498 MOD END
// ST-2023-0000001 MOD END			
			{EKK0491C060CBSMsg.SOHUS_AD_MAN_INPUT_FLG, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.SOHUS_AD_MAN_INPUT_FLG))},
			{EKK0491C060CBSMsg.SEIKY_KEI_KANA, seikyKeiKana},
			//ANK-4329-00-00 MOD START
//			{EKK0491C060CBSMsg.RSV_APLY_YMD, nullToStr(JPCBPCommon.getOpeDate(null))},
			{EKK0491C060CBSMsg.RSV_APLY_YMD, nullToStr(rsv_aply_ymd)},
			//ANK-4329-00-00 MOD END
			{EKK0491C060CBSMsg.IDO_DIV, JKKStrConst.CD00576_SEIKY_INFO_CHG},
			{EKK0491C060CBSMsg.SOHUS_AD_CHK_LV, SOHUS_AD_CHK_LV_0},
		};
		// サービスIF実行
		result = callSC(handle, scCall, param, dataMapKey, ekk0491c060);
		
		return result;
	}
	/**
	 * 請求支払先変更サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @param workEKK0501D010
	 * @param workEKK0521D020
	 * @param workEKK0491A010
	 * @return CAANMsg
	 * @throws Exception
	 */
	// IT1-2022-0000083 MOD START
//	private CAANMsg getEKK0491C240Msg(SessionHandle handle, 
//			ServiceComponentRequestInvoker scCall, 
//			IRequestParameterReadWrite param, 
//			String dataMapKey,
//			Map<String, Object> ccMsg,
//			CAANMsg workEKK0501D010,
//			CAANMsg workEKK0521D020,
//			CAANMsg[] workEKK0491A010) throws Exception 
			private CAANMsg getEKK0491C240Msg(SessionHandle handle, 
					ServiceComponentRequestInvoker scCall, 
					IRequestParameterReadWrite param, 
					String dataMapKey,
					Map<String, Object> ccMsg,
					CAANMsg workEKK0501D010,
					CAANMsg workEKK0521D020,
					CAANMsg[] workEKK0491A010,
					String runSysJudge) throws Exception 
	// IT1-2022-0000083 MOD END
	{
		CAANMsg result = null;
		
		String seikyWayNoKoza = "";
		String seikyWayNoCreCard = "";
		String updDtm = "";
		String firstPayMskmShoSohuYh = "";
		// ANK-4329-05-01 ADD START
		String open_zengo_jdg_flg = (String) ccMsg.get(OPEN_ZENGO_JDG_FLG);
		String meigininsyosaFlg = (String) ccMsg.get(CRECA_NM_SHOSA_YH_FLG);
		// ANK-4329-05-01 ADD END
		
		/* nullチェック */
		if (workEKK0501D010 != null)
		{
			seikyWayNoKoza = nullToStr(workEKK0501D010.getString(EKK0501D010CBSMsg.SEIKY_WAY_NO_KOZA));
		}
		/* nullチェック */
		if (workEKK0521D020 != null)
		{
			seikyWayNoCreCard =  nullToStr(workEKK0521D020.getString(EKK0521D020CBSMsg.SEIKY_WAY_NO_CRECARD));
		}
		// #81497,#81498 DEL START
//		String firstPayMskmshoRcpYmd = nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.FIRST_PAY_MSKMSHO_RCP_YMD));
//
//		/* workEKK0491A010.初回支払申込書受領年月日が未設定の場合、運用日付を設定する */
//		if(EMPTY.equals(firstPayMskmshoRcpYmd)) 
//		{
//			firstPayMskmshoRcpYmd = nullToStr(JPCBPCommon.getOpeDate(null));
//		}
		// #81497,#81498 DEL END
		
		// #81497,#81498 DEL START
//		// ANK-4329-00-00 ADD START
//		String paramSeikyWayCd = nullToStr((String) ccMsg.get(SEIKY_WAY_CD));
//		// 予約適用日
//		String rsv_aply_ymd = JPCBPCommon.getOpeDate(null);
//		if(JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd))
//		{
//			String rsv_aply_ym = rsv_aply_ymd.substring(0,6);
//			String rsv_aply_dd = rsv_aply_ymd.substring(6);
//			// IT1-2022-0000083 MOD START
//			// 実行システムが画面の場合
//			if(RUN_SYS_JUDGE_FLG_0.equals(runSysJudge))
//			{
//				// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
//				if(1 =="10".compareTo(rsv_aply_dd))
//				{
//					StringBuilder sb = new StringBuilder();
//					sb.append(rsv_aply_ym);
//					sb.append("10");
//					rsv_aply_ymd = sb.toString();
//				}
//			}
//			// 開通前後判定フラグが開通前後判定フラグが「1:開通後」かつ照査要否フラグが「0:否」または「1:要」
////			if((OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg) && CRECA_NM_SHOSA_YH_FLG_0.equals(meigininsyosaFlg)) 
////					|| CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg))
//			else if((OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg) && CRECA_NM_SHOSA_YH_FLG_0.equals(meigininsyosaFlg)) 
//					|| CRECA_NM_SHOSA_YH_FLG_1.equals(meigininsyosaFlg))
//			// IT1-2022-0000083 MOD END
//			{
//			// ANK-4329-05-01 ADD END
//				// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
//				if(1 =="10".compareTo(rsv_aply_dd))
//				{
//					StringBuilder sb = new StringBuilder();
//					sb.append(rsv_aply_ym);
//					sb.append("10");
//					rsv_aply_ymd = sb.toString();
//				}
//			}
//		}
//		// ANK-4329-00-00 ADD END
		// #81497,#81498 DEL END
		
		// #81497,#81498 ADD START
		
		// 予約適用日
		String rsv_aply_ymd = JPCBPCommon.getOpeDate(null);
		// オンライン運用日を取得し、「YYYYMM」と「DD」を取得する
		String rsv_aply_ym = rsv_aply_ymd.substring(0,6);
		String rsv_aply_dd = rsv_aply_ymd.substring(6);
		
		// 実行システムが画面の場合
		if(RUN_SYS_JUDGE_FLG_0.equals(runSysJudge))
		{
			// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
			if(1 =="10".compareTo(rsv_aply_dd))
			{
				StringBuilder sb = new StringBuilder();
				sb.append(rsv_aply_ym);
				sb.append("10");
				rsv_aply_ymd = sb.toString();
			}
		} else {
			// 開通前後判定フラグが「1:開通後」の場合、以下の処理を実施
			if(OPEN_ZENGO_JDG_FLG_1.equals(open_zengo_jdg_flg)) {
				// 照査完了日が1日〜9日の場合、予約適用年月日に当月の10日を設定する
				if(1 =="10".compareTo(rsv_aply_dd))
				{
					StringBuilder sb = new StringBuilder();
					sb.append(rsv_aply_ym);
					sb.append("10");
					rsv_aply_ymd = sb.toString();
				}
			}
		}
		// #81497,#81498 ADD END
		
		// 請求支払先変更サービスIF実行
		Object[][] ekk0491c240  =
		{
			{EKK0491C240CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0491C240},
			{EKK0491C240CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK0491C240CBSMsg.SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
			{EKK0491C240CBSMsg.SEIKY_WAY_CD, nullToStr((String)ccMsg.get(SEIKY_WAY_CD))},
			{EKK0491C240CBSMsg.SEIKY_WAY_NO_KOZA, seikyWayNoKoza},
			{EKK0491C240CBSMsg.SEIKY_WAY_NO_CRECARD, seikyWayNoCreCard},
			// #81497,#81498 MOD START
//			{EKK0491C240CBSMsg.UPD_DTM_BF, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.UPD_DTM))},
			{EKK0491C240CBSMsg.UPD_DTM_BF, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.LAST_UPD_DTM))},
			// #81497,#81498 MOD END
			{EKK0491C240CBSMsg.FIRST_PAY_MSKMSHO_SOHU_YH, nullToStr(workEKK0491A010[0].getString(EKK0491A010CBSMsg1List.FIRST_PAY_MSKMSHO_SOHU_YH))},
			// #81497,#81498 MOD START
//			{EKK0491C240CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD, firstPayMskmshoRcpYmd},
			{EKK0491C240CBSMsg.FIRST_PAY_MSKMSHO_RCP_YMD, nullToStr(JPCBPCommon.getOpeDate(null))},
			// #81497,#81498 MOD END
			// ANK-4329-00-00 MOD START
//			{EKK0491C240CBSMsg.RSV_APLY_YMD, nullToStr(JPCBPCommon.getOpeDate(null))},
			{EKK0491C240CBSMsg.RSV_APLY_YMD, nullToStr(rsv_aply_ymd)},
			// ANK-4329-00-00 MOD END
		};
		// サービスIF実行
		result = callSC(handle, scCall, param, dataMapKey, ekk0491c240);

		return result;
	}		
	/**
	 * クレジットオーソリ実績登録サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @param workEKK0491C240
	 * @param workEKK0521D020
	 * @param workEKK0531A010
	 * @return CAANMsg
	 * @throws Exception
	 */
	private void execEKK1031D010Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg,
			// #81497,#81498 MOD START
//			CAANMsg workEKK0491C240,
			CAANMsg workEKK0491C060,
			// #81497,#81498 MOD END
			CAANMsg workEKK0521D020,
			CAANMsg[] workEKK0531A010) throws Exception 
	{
		CAANMsg result = null;
		
		// #81497,#81498 MOD START
//		String geneAddDtm491C240 = "";
		String geneAddDtm491C060 = "";
		// #81497,#81498 MOD END
		String seikyWayNoCrecard = "";
		String geneAddDtm521D020 = "";
		String membstrNo15 = "";
		
		// #81497,#81498 MOD START
		/* nullチェック */
//		if (workEKK0491C240 != null)
//		{
//			geneAddDtm491C240 = nullToStr(workEKK0491C240.getString(EKK0491C240CBSMsg.GENE_ADD_DTM));
//		}
		if (workEKK0491C060 != null)
		{
			geneAddDtm491C060 = nullToStr(workEKK0491C060.getString(EKK0491C060CBSMsg.GENE_ADD_DTM));
		}	
		// #81497,#81498 MOD END
		/* nullチェック */
		if (workEKK0521D020 != null)
		{
			seikyWayNoCrecard = nullToStr(workEKK0521D020.getString(EKK0521D020CBSMsg.SEIKY_WAY_NO_CRECARD));
			geneAddDtm521D020 = nullToStr(workEKK0521D020.getString(EKK0521D020CBSMsg.GENE_ADD_DTM));
		}
		/* nullチェック */
		if (workEKK0531A010 != null && workEKK0531A010.length != 0)
		{
			membstrNo15 = nullToStr(workEKK0531A010[0].getString(EKK0531A010CBSMsg1List.MEMBSTR_NO_15));
		}
		
		// サービクレジットオーソリ実績登録の上りマッピング
		Object[][] ekk1031d010  =
		{
			{EKK1031D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1031D010},
			{EKK1031D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK1031D010CBSMsg.SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
			// #81497,#81498 MOD START
//			{EKK1031D010CBSMsg.SEIKY_KEI_GENE_ADD_DTM, geneAddDtm491C240},
			{EKK1031D010CBSMsg.SEIKY_KEI_GENE_ADD_DTM, geneAddDtm491C060},
			// #81497,#81498 MOD END
			{EKK1031D010CBSMsg.SEIKY_WAY_NO_CRECARD, seikyWayNoCrecard},
			{EKK1031D010CBSMsg.CRECARD_GENE_ADD_DTM, geneAddDtm521D020},
			{EKK1031D010CBSMsg.CRECARD_COMP_CD, nullToStr((String) ccMsg.get(CARD_BRAND_OPTCD))},
			{EKK1031D010CBSMsg.CRECARD_NO, nullToStr((String) ccMsg.get(CRECARD_NO))},
			{EKK1031D010CBSMsg.MEMBSTR_NO, membstrNo15},
			{EKK1031D010CBSMsg.CRECARD_YK_KIGEN, nullToStr((String) ccMsg.get(CRECARD_YK_KIGEN))},
			{EKK1031D010CBSMsg.CRECARD_NO_AZKRI_ID, nullToStr((String) ccMsg.get(SAVE_ID))},
			{EKK1031D010CBSMsg.SHIKOSAKI_COMP_CD, nullToStr((String) ccMsg.get(SHIKOSAKI_COMP_CD))},
			{EKK1031D010CBSMsg.AUTH_TRAN_CD, AUTH_TRAN_CD_02},
			{EKK1031D010CBSMsg.SALES_AUTHORI_AMNT, SALES_AUTHORI_AMNT_1},
			{EKK1031D010CBSMsg.AUTHORI_YOKYU_CD, AUTHORI_YOKYU_CD_2},
			{EKK1031D010CBSMsg.TRN_FLG, TRN_FLG_1},
			{EKK1031D010CBSMsg.CHSHT_FLG, CHSHT_FLG_1},
			{EKK1031D010CBSMsg.CL_CD, CL_CD_0},

		};
		// サービスIF実行
		callSC(handle, scCall, param, dataMapKey, ekk1031d010);
	}
	/**
	 * 進捗登録サービスIF実行の結果を返す。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param dataMapKey
	 * @param ccMsg
	 * @param workEKK0011D020
	 * @param workEKK0501D010
	 * @param workEKK0521D020
	 * @return CAANMsg
	 * @throws Exception
	 */
	private void execEKK1091D010Msg(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String dataMapKey,
			Map<String, Object> ccMsg,
			CAANMsg[] workEKK0011D020,
			CAANMsg workEKK0501D010,
			CAANMsg workEKK0521D020,
			CAANMsg workEKK0321B002) throws Exception 
	{
		
		String paramSeikyWayCd = nullToStr((String) ccMsg.get(SEIKY_WAY_CD));
		String prgTkjk1 = "";
		String mskmDtlNo = "";
		String seikyWayNoKoza = "";

		String seikyWayNoCreCard = "";
		
		
		/* nullチェック */
		if (workEKK0011D020 != null)
		{
			mskmDtlNo = nullToStr(workEKK0011D020[0].getString(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
		}
		
		/* nullチェック */
		if (workEKK0501D010 != null)
		{
			seikyWayNoKoza = nullToStr(workEKK0501D010.getString(EKK0501D010CBSMsg.SEIKY_WAY_NO_KOZA));
		}
		
		/* nullチェック */
		if (workEKK0521D020 != null)
		{
			seikyWayNoCreCard = nullToStr(workEKK0521D020.getString(EKK0521D020CBSMsg.SEIKY_WAY_NO_CRECARD));
		}
		
		/* 請求方法コードが"2"(預金口座振替)の場合 */
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(paramSeikyWayCd))
		{
			prgTkjk1 = PRG_TKJK_YOKIN;
		}
		/* 請求方法コードが"3"(郵便自動振込)の場合 */
		else if (JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(paramSeikyWayCd))
		{
			prgTkjk1 = PRG_TKJK_YUCHO;
		}
		/* 請求方法コードが"4"(クレジット)の場合 */ 
		else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(paramSeikyWayCd))
		{
			prgTkjk1 = PRG_TKJK_CREDIT;
		}
		
		CAANMsg[] idoList = new CAANMsg[1];
		idoList[0] = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
		idoList[0].set(EKK1091D010CBSMsg1List.IDO_RSN_CD, IDO_RSN_CD_44);
		
		// サービス進捗登録の上りマッピング
		Object[][] ekk1091d010  =
		{
			{EKK1091D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1091D010},
			{EKK1091D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK1091D010CBSMsg.MSKM_DTL_NO, mskmDtlNo},
			{EKK1091D010CBSMsg.SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
			{EKK1091D010CBSMsg.SEIKY_WAY_NO_KOZA, seikyWayNoKoza},
			{EKK1091D010CBSMsg.SEIKY_WAY_NO_CRECARD, seikyWayNoCreCard},
			{EKK1091D010CBSMsg.SVC_KEI_NO, nullToStr(workEKK0321B002.getString(EKK0321B002CBSMsg1List.SVC_KEI_NO))},
			{EKK1091D010CBSMsg.IDO_DIV, JKKStrConst.CD00576_SEIKY_INFO_CHG},
			{EKK1091D010CBSMsg.IDO_DTM, JCCBPCommon.getSysDateTimeStamp()},
			{EKK1091D010CBSMsg.PRG_STAT, PRG_STAT_4100},
			{EKK1091D010CBSMsg.PRG_TKJK_1, prgTkjk1},
			{EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, idoList},
		};
		// サービスIF実行
		callSC(handle, scCall, param, dataMapKey, ekk1091d010);
	}
	/**
	 * 項目名がnullかチェックする
	 * @param str 項目名
	 * @return 項目名
	 */
	private String nullToStr(String str)
	{
		/* 項目名がnullかチェック */
		if (str == null)
		{
			str = EMPTY;
		}
		return str;
	}
	// ANK-4329-00-00 ADD START

	/**
	 * お客様一意照会を行う。
	 * @param ccMsg 識別コードマップ
	 * @param handle セッションハンドル
	 * @param scCall SC呼出
	 * @param param パラメーター
	 * @param dataMapKey データマップキー
	 * @param sysid SYSID
	 * @return CAANMsg
	 * @throws Throwable 
	 */
	private CAANMsg[] getECK0011A010(SessionHandle handle,
								ServiceComponentRequestInvoker scCall,
								IRequestParameterReadWrite param,
								String dataMapKey,
								String sysid) throws Throwable
	{
		// 戻り値
		CAANMsg[] result = null;
		CAANMsg eck0011a010Msg = null;

		// 上りマッピング
		Object[][] eck0011a010In = {
				{ECK0011A010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0011A010},
				{ECK0011A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2},
				{ECK0011A010CBSMsg.KEY_SYSID, sysid},
				{ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null)}
		};

		// サービスI/F実行
		eck0011a010Msg = callSC(handle, scCall, param, dataMapKey, eck0011a010In);
		result = eck0011a010Msg.getCAANMsgList(ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST);


		return result;
	}
	/**
	 * 支払方法変更受付情報(クレジットカード)登録を行う。
	 * @param ccMsg 識別コードマップ
	 * @param handle セッションハンドル
	 * @param scCall SC呼出
	 * @param param パラメーター
	 * @param dataMapKey データマップキー 
	 * @param sysid SYSID
	 * @return CAANMsg
	 * @throws Throwable 
	 */
	private CAANMsg execEKK3401D010(SessionHandle handle,
								ServiceComponentRequestInvoker scCall,
								IRequestParameterReadWrite param,
								String dataMapKey,
								Map<String, Object> ccMsg,
								String EKK0321B002SvcKeiNo,
								CAANMsg[] workECK0011A010,
// ANK-4619-00-00 MOD START
//								String crecard_meigin_chk_kekka_flg) throws Throwable
								String crecard_meigin_chk_kekka_flg,
								Map<String, Object> creCardNmChgeMap) throws Throwable
// ANK-4619-00-00 MOD END
	{
		// 戻り値
		CAANMsg result = null;
		//照査申込ステータス
		String shosa_stat = null;
		//クレジットカード名義人チェック結果コード
		String card_meiin_ckrlt_cd = "";
		//チェック時点お客様名
		String chkJtnCustNm = "";
		//チェック時点お客様カナ名
		String chkJtnCustKn = "";
		// クレジットカード名義人チェック結果がOKの場合
		if("01".equals(crecard_meigin_chk_kekka_flg))
		{
			//登録完了
			shosa_stat = "001";
			//完全一致
			card_meiin_ckrlt_cd = "0";
			//チェック時点お客様名
			chkJtnCustNm = workECK0011A010[0].getString(ECK0011A010CBSMsg1List.CUST_NM);
			//チェック時点お客様カナ名
			chkJtnCustKn = workECK0011A010[0].getString(ECK0011A010CBSMsg1List.CUST_KANA);
		}
		else
		{
			//照査待ち
			shosa_stat = "002";
		}
// ANK-4619-00-00 ADD START
		// クレジットカード名義カナ名
		String crecard_nm_kana = JKKStrConst.KARA;
		// クレジットカード名義（ローマ字）
		String crecard_nm_romaji = JKKStrConst.KARA;
		// クレジットカード名称変換結果が存在する場合
		if(!JKKCommonUtil.isNull(creCardNmChgeMap) && !JKKCommonUtil.isNull(creCardNmChgeMap.get("out_kana")))
		{
			crecard_nm_kana = (String)creCardNmChgeMap.get("out_kana");
			crecard_nm_romaji = (String)creCardNmChgeMap.get("out_romaji");
		}
		else
		{
			crecard_nm_kana = (String)ccMsg.get(CRECARD_NM_KANA);
			crecard_nm_romaji = (String)ccMsg.get(CRECARD_NM_ROMAJI);
		}
// ANK-4619-00-00 ADD END
			// 上りマッピング
			Object[][] ekk3401d010In = {
					{EKK3401D010CBSMsg.TEMPLATEID, TEMPLE_ID_EKK3401D010},
					{EKK3401D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
					{EKK3401D010CBSMsg.CRECARD_SHOSA_MSKM_DAY, nullToStr(JPCBPCommon.getOpeDate(null))},
					{EKK3401D010CBSMsg.CRECARD_SHOSA_STAT, nullToStr(shosa_stat)},
					{EKK3401D010CBSMsg.SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
					{EKK3401D010CBSMsg.SVC_KEI_NO, nullToStr(EKK0321B002SvcKeiNo)},
					{EKK3401D010CBSMsg.SEIKY_WAY_CD, nullToStr((String)ccMsg.get(SEIKY_WAY_CD))},
					{EKK3401D010CBSMsg.CRECARD_JIGYO_CD, nullToStr((String)ccMsg.get(CRECARD_JIGYO_CD))},
					{EKK3401D010CBSMsg.CRECARD_COMP_CD,nullToStr((String)ccMsg.get(CARD_BRAND_OPTCD))},
					{EKK3401D010CBSMsg.CRECARD_NO, nullToStr((String)ccMsg.get(CRECARD_NO))},
					{EKK3401D010CBSMsg.CRECARD_YK_KIGEN, nullToStr((String)ccMsg.get(CRECARD_YK_KIGEN))},
// ANK-4619-00-00 MOD START
//					{EKK3401D010CBSMsg.CRECARD_NM_KANA, nullToStr((String)ccMsg.get(CRECARD_NM_KANA))},
					{EKK3401D010CBSMsg.CRECARD_NM_KANA, nullToStr(crecard_nm_kana)},
// ANK-4619-00-00 MOD END
					{EKK3401D010CBSMsg.SHIKOSAKI_COMP_CD, nullToStr((String)ccMsg.get(SHIKOSAKI_COMP_CD))},
					{EKK3401D010CBSMsg.CRECARD_NO_AZKRI_ID, nullToStr((String)ccMsg.get(SAVE_ID))},
					{EKK3401D010CBSMsg.CRECARD_SBT_CD, nullToStr((String)ccMsg.get(CARD_TYPE))},
					{EKK3401D010CBSMsg.CRDT_ISSUER_DIV, nullToStr((String)ccMsg.get(ISSUER_CLASS))},
					{EKK3401D010CBSMsg.CARD_MEIGIN_CKRLT_CD, nullToStr(card_meiin_ckrlt_cd)},
					{EKK3401D010CBSMsg.CHK_JTN_CUST_NM, nullToStr(chkJtnCustNm)},
					{EKK3401D010CBSMsg.CHK_JTN_CUST_KANA, nullToStr(chkJtnCustKn)},
// ANK-4619-00-00 MOD START
//					{EKK3401D010CBSMsg.CRECARD_NM_ROMAJI, nullToStr((String)ccMsg.get(CRECARD_NM_ROMAJI))},
					{EKK3401D010CBSMsg.CRECARD_NM_ROMAJI, nullToStr(crecard_nm_romaji)},
// ANK-4619-00-00 MOD END
					{EKK3401D010CBSMsg.EOID, nullToStr((String)ccMsg.get(EO_ID))},
					{EKK3401D010CBSMsg.CRECARD_MSKM_SBT_CD, nullToStr((String)ccMsg.get(MK_SBT))}
			};
		
		// サービスI/F実行
		callSC(handle, scCall, param, dataMapKey, ekk3401d010In);
		return result;
	}
// IT1-2023-0000001 MOD START
//	/**
//	 * 連絡先(コンテンツ用メールアドレス)一覧照会サービスIF実行。
//	 * 
//	 * @param handle
//	 * @param scCall
//	 * @param param
//	 * @param fixedText
//	 * @param sysID
//	 * @return CAANMsg[]
//	 * @throws Exception
//	 */
//	private CAANMsg[] getECK0201B002(SessionHandle handle, 
//			ServiceComponentRequestInvoker scCall, 
//			IRequestParameterReadWrite param, 
//			String fixedText,
//			String sysid) throws Exception
//	{
//		CAANMsg[] result = null;
//		CAANMsg eck0201b002Msg = null;
//		
//		// 連絡先(コンテンツ用メールアドレス)一覧照会の上りマッピング
//		Object[][] eck0201b002In =
//		{
//			{ECK0201B002CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0201B002},
//			{ECK0201B002CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
//			{ECK0201B002CBSMsg.KEY_SYSID, nullToStr(sysid)}
//		};
//		
//		// サービスIF実行
//		eck0201b002Msg = callSC(handle, scCall, param, fixedText, eck0201b002In);
//
//		result = eck0201b002Msg.getCAANMsgList(ECK0201B002CBSMsg.ECK0201B002CBSMSG1LIST);
//		
//		return result;
//	}
	/**
	 * 連絡先履歴一覧照会サービスIF実行。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param fixedText
	 * @param sysID
	 * @return CAANMsg[]
	 * @throws Exception
	 */
	private CAANMsg[] getECK0201B003(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String fixedText,
			String sysid) throws Exception
	{
		CAANMsg[] result = null;
		CAANMsg eck0201b003Msg = null;
		
		// 連絡先履歴一覧照会の上りマッピング
		Object[][] eck0201b003In =
		{
			{ECK0201B003CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0201B003},
			{ECK0201B003CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECK0201B003CBSMsg.KEY_SYSID, nullToStr(sysid)}
		};
		
		// サービスIF実行
		eck0201b003Msg = callSC(handle, scCall, param, fixedText, eck0201b003In);

		result = eck0201b003Msg.getCAANMsgList(ECK0201B003CBSMsg.ECK0201B003CBSMSG1LIST);
		
		return result;
	}
// IT1-2023-0000001 MOD END
	/**
	 * メール送信情報登録サービスIF実行。メール送信情報登録サービスIFを行う。
	 * 
	 * @param handle
	 * @param scCall
	 * @param param
	 * @param fixedText
	 * @param mlad
	 * @throws Exception
	 */
	private void execECC0021D010(SessionHandle handle, 
			ServiceComponentRequestInvoker scCall, 
			IRequestParameterReadWrite param, 
			String fixedText,
			String mlad,
			String custNm,
			String mail_cd) throws Exception {
		
		CAANMsg childTemplateECC0021D010List1 = new CAANMsg(ECC0021D010CBSMsg1List.class.getName());
		CAANMsg childTemplateECC0021D010List2 = new CAANMsg(ECC0021D010CBSMsg2List.class.getName());
		
		childTemplateECC0021D010List1.set(ECC0021D010CBSMsg1List.MLAD,mlad);
		childTemplateECC0021D010List1.set(ECC0021D010CBSMsg1List.MLAD_SET_FIELD_CD, "01");
		childTemplateECC0021D010List2.set(ECC0021D010CBSMsg2List.TEXT_HTK_CKAM_MOJI, custNm);
		
		
		// メール本文登録の上りマッピング
		Object[][] ecc0021d010 =
		{
			{ECC0021D010CBSMsg.TEMPLATEID, TEMPLATE_ID_ECC0021D010},
			{ECC0021D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{ECC0021D010CBSMsg.MAIL_CD, mail_cd},
			{ECC0021D010CBSMsg.MAIL_SEND_PATTERN_CD, "01"},
			{ECC0021D010CBSMsg.SENDM_MLAD, EMPTY},
			{ECC0021D010CBSMsg.ECC0021D010CBSMSG1LIST, new CAANMsg[] { childTemplateECC0021D010List1 }},
			{ECC0021D010CBSMsg.ECC0021D010CBSMSG2LIST, new CAANMsg[] { childTemplateECC0021D010List2}},
			{ECC0021D010CBSMsg.ECC0021D010CBSMSG3LIST, new CAANMsg[] {}},
			{ECC0021D010CBSMsg.ECC0021D010CBSMSG4LIST, new CAANMsg[] {}},
			{ECC0021D010CBSMsg.ECC0021D010CBSMSG5LIST, new CAANMsg[] {}}
		};
		
		// サービスIF実行
		callSC(handle, scCall, param, fixedText, ecc0021d010);
	}
	// ANK-4329-00-00 ADD END
	// ANK-4329-05-00 ADD START
	/**
	 * 共通関連チェックを行う
	 * @param handle
	 * @param param
	 * @param mapkey
	 * @return true:OK
	 * 			false:NG
	 * @throws RequestParameterException
	 * @throws SCCallException
	 */
	@SuppressWarnings("unchecked")
	private boolean CmnKanrenChk(SessionHandle handle,IRequestParameterReadWrite param,Map<String, Object> ccMsg) throws RequestParameterException, SCCallException
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
		
		Map<String, String> returnMap = new HashMap<String, String>();

		JFURelationalCheckCC JfuRelationalCheckCC = new JFURelationalCheckCC();
		
		try
		{
			//共通関連チェックを行う
			JfuRelationalCheckCC.executeCheck(handle,param,CHECK_MAP_KEY);
		}
		catch(Exception e)
		{
			//エラー内容を取得し、ステータスが"1100"の場合チェック結果NGを返却する
			ArrayList<Object> ErrInfo = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
			
			//エラー内容がない場合、システムエラー
			if(ErrInfo == null || ErrInfo.size() <= 0)
			{
				return false;
			}
			HashMap<String, Object> errorMap = (HashMap<String, Object>)ErrInfo.get(0);
			Integer states = (Integer) errorMap.get(ErrorInfoMapKeys.STATUS);
			//関連チェックNGの場合
			if(RELATION_ERR == states)
			{	
				// ステータスエリア編集
				StatusArea sa = param.getStatusArea();
				StatusInfo si = new StatusInfo(ErrorLevel.EL000, OUTBREAK_AREA.CC);
				sa.setCurrent(si);	
				//共通関連チェックのマッピングを削除し、更新する。
				ccMsg.remove(ERROR_INFO);
				param.setControlMapData("returnMessage","");
				returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_2003);
				returnMap.put(ERROR_MESSAGE, "");
				errList.add(returnMap);
				ccMsg.put(ERROR_INFO, errList);

				return false;
			}
			
		}
		return true;
	}
		
	/**
	 * 契約状態チェック・契約変更手続きチェックを行う
	 * @param handle
	 * @param param
	 * @param mapkey
	 * @return true:OK
	 * 			false:NG
	 * @throws RequestParameterException
	 * @throws SCCallException
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private boolean KistChgChk(SessionHandle handle,IRequestParameterReadWrite param,Map<String, Object> ccMsg) throws RequestParameterException
	{

		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
		
		Map<String, String> returnMap = new HashMap<String, String>();
		
		JFUChgSvcPaywayRelCheckCC JfuChgSvcPaywayRelCheck = new JFUChgSvcPaywayRelCheckCC();
		
		try
		{
			// 契約状態チェック/契約変更手続きチェック行う
			JfuChgSvcPaywayRelCheck.executeCheck(handle,param,CHECK_MAP_KEY);
			JfuChgSvcPaywayRelCheck.executeCheckMskm(handle,param,CHECK_MAP_KEY);

		}
		catch(Exception e)
		{
			//エラー内容を取得し、ステータスが"1100"の場合チェック結果NGを返却する
			ArrayList<Object> ErrInfo = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
			if(ErrInfo == null || ErrInfo.size() <= 0)
			{
				return false;
			}
			HashMap<String, Object> errorMap = (HashMap<String, Object>)ErrInfo.get(0);
			Integer states = (Integer) errorMap.get(ErrorInfoMapKeys.STATUS);
			
			if(RELATION_ERR == states)
			{
				HashMap<String, String> errorMapChild = (HashMap<String, String>) errorMap.get(ErrorInfoMapKeys.ITEM_CHECK_ERRORS);
				for(String errkey : errorMapChild.keySet())
				{
					// 契約状態チェックでNGの場合
					if (KEI＿STAT_CHK_ERR_NAME_1.equals(errkey) || KEI＿STAT_CHK_ERR_NAME_2.equals(errkey))
					{
						//リターンコード"2004"を設定
						check_mskm_err_code = JKKStrConst.RETURN_CD_2004;
					}
					// 契約変更手続きチェックでNGの場合
					if (KEI_TTDK_CHK_ERR_NAME_1.equals(errkey)||KEI_TTDK_CHK_ERR_NAME_2.equals(errkey)
							|| KEI_TTDK_CHK_ERR_NAME_3.equals(errkey))
					{
						//リターンコード"2005"を設定
						check_mskm_err_code = JKKStrConst.RETURN_CD_2005;
					}
					if(PAY_WAY_FT_RV_CHK_ERR_NAME_1.equals(errkey))
					{
						//リターンコード"2002"を設定
						check_mskm_err_code = JKKStrConst.RETURN_CD_2002;
					}
					// ステータスエリア編集
					StatusArea sa = param.getStatusArea();
					StatusInfo si = new StatusInfo(ErrorLevel.EL000, OUTBREAK_AREA.CC);
					sa.setCurrent(si);	
					//共通関連チェックのマッピングを削除し、更新する。
					ccMsg.remove(ERROR_INFO);
					param.setControlMapData("returnMessage","");
					returnMap.put(ERROR_CODE, check_mskm_err_code);
					returnMap.put(ERROR_MESSAGE, "");
					errList.add(returnMap);
					ccMsg.put(ERROR_INFO, errList);

				}
				return false;
			}
			return false;
		}
		return true;

	}

		/**
		 * オプションサービス契約＜ISP＞一覧照会の上りマッピングのサービスIF実行の結果を返す。
		 * 
		 * @param handle
		 * @param scCall
		 * @param param
		 * @param dataMapKey
		 * @param ccMsg
		 * @return CAANMsg[]
		 * @throws Exception
		 */
		private CAANMsg[] getEKK0361B001CAANMsg(SessionHandle handle, 
				ServiceComponentRequestInvoker scCall, 
				IRequestParameterReadWrite param, 
				String dataMapKey,
				Map<String, Object> ccMsg,
				String svc_kei_no) throws Exception 
		{
			
			CAANMsg[] result = null;
			CAANMsg ekk0361b001Msg = null;
			
			// サービス課金先一覧照会(請求契約番号/サービス契約番号)の上りマッピング
			Object[][] ekk0361b001 =
			{
				{EKK0361B001CBSMsg.TEMPLATEID, TEMPLE_ID_EKK0361B001},
				{EKK0361B001CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
				{EKK0361B001CBSMsg.KEY_SVC_KEI_NO, nullToStr(svc_kei_no)},

			};
			
			// サービスIF実行
			ekk0361b001Msg = callSC(handle, scCall, param, dataMapKey, ekk0361b001);
			
			result = ekk0361b001Msg.getCAANMsgList(EKK0361B001CBSMsg.EKK0361B001CBSMSG1LIST);
			
			return result;
		}
		
		/**
		 * 契約メールアドレスをマッピングする		
		 * @param mailMap
		 * @param ekk0081b025cbsmsg1list
		 * @param i
		 * @throws Throwable 
		 */
		@SuppressWarnings({ "unchecked", "null" })
		private IRequestParameterReadWrite setparam(List<String> templates, IRequestParameterReadWrite param, String fixedText) throws Throwable
		{
			// 作業領域の取得
			Map workMap = (Map)param.getMappingWorkArea();
			if (workMap == null) {
				workMap = new HashMap();
				param.setMappingWorkArea(workMap);
			}
			
			// 結果を詰めるマップを取得。
			HashMap dataMap = null;
			
			ArrayList dataList = new ArrayList();

			/* 業務データ設定 */
			dataMap = (HashMap)param.getData(fixedText);
			if (dataMap == null) {
				dataMap = new HashMap();
				param.setData(fixedText, dataMap);
			}
			if(templates!=null && templates.size() > 0)
			{
				int count = 1;
				HashMap childMap = new HashMap();
				for (int i = 0; i < templates.size(); i++) 
				{
					String keiMlAd = templates.get(i);
					// 契約メールアドレス
					if (!JKKStringUtil.isNullBlank(keiMlAd)) 
					{
						childMap.put(KEI_MAIL_LIST_KEY + count, keiMlAd);
						count++;
					}
				}
				HashMap<String, Object> mailMap = (HashMap<String, Object>) dataMap.get(BODY_INFO);
				dataList.add(childMap);
				mailMap.put("kei_mlad_info_list", dataList);
				dataMap.put(BODY_INFO, mailMap);
			}
		return param;
		}
		/**
		 * サービス契約一意照会サービスIF実行の結果を返す。
		 * 
		 * @param handle
		 * @param scCall
		 * @param param
		 * @param dataMapKey
		 * @param ccMsg
		 * @return CAANMsg[]
		 * @throws Exception
		 */
		private CAANMsg[] getEKK0081A010CAANMsg(SessionHandle handle, 
				ServiceComponentRequestInvoker scCall, 
				IRequestParameterReadWrite param, 
				String dataMapKey,
				String svcKeiNo) throws Exception 
		{
			
			CAANMsg[] result = null;
			CAANMsg ekk0081a010Msg = null;
			
			// サービス契約一意照会の上りマッピング
			Object[][] ekk0081a010 =
			{
				{EKK0081A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0081A010},
				{EKK0081A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2},
				{EKK0081A010CBSMsg.KEY_SVC_KEI_NO, nullToStr(svcKeiNo)},
				{EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, nullToStr(JPCBPCommon.getOpeDate(null))}
				
			};
			
			// サービスIF実行
			ekk0081a010Msg = callSC(handle, scCall, param, dataMapKey, ekk0081a010);
			
			result = ekk0081a010Msg.getCAANMsgList(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
			
			return result;
		}
		// ANK-4329-05-00 ADD END
		// ANK-4329-00-00 ADD START
		
		/**
		 * 取扱コード反映（営業支援）を行う。
		 * <br>
		 * @param handle セッションハンドル
		 * @param param リクエストパラメータ
		 * @param fixedText サービスメッセージ
		 * @return IRequestParameterReadWrite リクエストパラメータ
		 * @throws Exception
		 */
		@SuppressWarnings("unchecked")
		public IRequestParameterReadWrite executeScTrn(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Throwable
		{

			HashMap<String, Object> ccMsg = (HashMap<String, Object>) param.getData(fixedText);
		
				// 支払方法変更受付番号
				String paywayChgUkno = (String)ccMsg.get("paywayChgUkno");
				// クレジットカード照査ステータス
				String crecardShosaStat = (String)ccMsg.get("crecardShosaStat");
				// クレジットカード申込種別コード
				String crecardMskmSbtCd = (String)ccMsg.get("crecardMskmSbtCd");
				// サービス契約ステータス
				String svcKeiStat = (String)ccMsg.get("svcKeiStat");
				// サービス契約番号
				String svcKeiNo = (String)ccMsg.get("svcKeiNo");
				// SYSID
				String sysid = (String)ccMsg.get("sysid");
				// カード名義人チェック結果コード
				String cardMeiinCkrltCd = (String)ccMsg.get("cardMeiinCkrltCd");
				// お客様名
				String custNm = (String)ccMsg.get("custNm");
				// お客様名（カナ）
				String custNmKana = (String)ccMsg.get("custNmKana");
				// 更新年月日時分秒(更新前)
				String updDtmBf = (String)ccMsg.get("updDtmBf");
				// IT1-2022-0000083 ADD START
				//実行システム判定フラグ
				String runSysJudgeFlg = RUN_SYS_JUDGE_FLG_0;
				// IT1-2022-0000083 ADD END
		
				// サービスIF結果取得(EKK3401A010)
				CAANMsg[] workEKK3401A010 = null;
				// サービスIF結果取得(EKK3401C010)
				CAANMsg workEKK3401C010 = null;
				// サービスIF結果取得(EKK0491A010)
				CAANMsg[] workEKK0491A010 = null;
				// サービスIF結果取得(EKK0491B010)
				CAANMsg[] workEKK0491B010 = null;
				// サービスIF結果取得(EKK0011D020)
				CAANMsg[] workEKK0011D020 = null;
				// サービスIF結果取得(EKK0501D010)
				CAANMsg workEKK0501D010 = null;
				// サービスIF結果取得(EKK0531A010)
				CAANMsg[] workEKK0531A010 = null;
				// サービスIF結果取得(EKK0521D020)
				CAANMsg workEKK0521D020 = null;
				// サービスIF結果取得(EKK0491C060)
				CAANMsg workEKK0491C060 = null;
				// サービスIF結果取得(EKK0491C240)
				CAANMsg workEKK0491C240 = null;
				// サービスIF結果取得(ECK0201B002)
				CAANMsg[] workECK0201B002 = null;
				// サービスIF結果取得(ECK0201B002)
				CAANMsg[] workEKK0321B002 = null;
				// IT1-2023-0000001 ADD START
				ArrayList<CAANMsg> workEKK0321B002Rslt2 = null;
				// IT1-2023-0000001 ADD END
// ANK-4619-00-00 ADD START
				Map<String, Object> creCardNmChgeMap = new HashMap<String, Object>();
// ANK-4619-00-00 ADD END
				
				
		
				// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
				ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		
				String crecardShosaStatBf = "";
				// サービスIF実行
				workEKK3401A010 = getEKK3401A010CAANMsg(handle, scCall, param, fixedText, ccMsg);
				crecardShosaStatBf = workEKK3401A010[0].getString(EKK3401A010CBSMsg1List.CRECARD_SHOSA_STAT);
		
				/* 入力値チェック */
				if (JKKStringUtil.isNullBlank(crecardShosaStat) || crecardShosaStatBf.equals(crecardShosaStat))
				{
					ccMsg.put("err_flg", "1");
					return param;
				}
		
				// サービスIF実行
				workEKK0491B010 = getEKK0491B010CAANMsg(handle, scCall, param, fixedText, ccMsg);
				/* 未来予約チェック */
				if (!checkMiraiYoyakuScTrn(ccMsg, workEKK0491B010))
				{
					ccMsg.put("err_flg", "2");
					return param;
				}
		
				// サービスIF実行
				workEKK0491A010 = getEKK0491A010CAANMsg(handle, scCall, param, fixedText, ccMsg);
				// updDtmBf → workEKK0491A010.upd_dtm
// ST-2023-0000001 MOD START
//				workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(updDtmBf));
				workEKK0491A010[0].set(EKK0491A010CBSMsg1List.LAST_UPD_DTM, nullToStr(updDtmBf));
// ST-2023-0000001 MOD END				
				// -----請求契約番号に紐づく課金先のサービス契約ステータスを取得する----
					// サービスIF実行
					workEKK0321B002 = getEKK0321B002CAANMsg(handle, scCall, param, fixedText, ccMsg);
					
					// サービス契約ステータスが「010:受付済、920:キャンセル済」以外のレコード
					ArrayList<CAANMsg> workEKK0321B002Rslt = null;
					// サービス契約ステータスが「010:受付済、920:キャンセル済」以外取得パラメタ
					String ekk0321b002SvcKeiSta = "";
					
					workEKK0321B002Rslt = new ArrayList<CAANMsg>();
					// IT1-2023-0000001 ADD START
					workEKK0321B002Rslt2 = new ArrayList<CAANMsg>();
					List<String> containsSysid = new ArrayList<String>();
					// IT1-2023-0000001 ADD END
					
					// サービス契約ステータスが「010:受付済、920:キャンセル済」以外のレコードを取得する。
					for (int i = 0; i < workEKK0321B002.length; i++)
					{
						
						ekk0321b002SvcKeiSta = workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_STAT);
						
						/* 検索結果のサービス契約番号が設定されている かつ 
						 * サービス契約ステータスが「010:受付済、920:キャンセル済」以外の場合 */
						if (workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO) != null 
								&& !"".equals(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO))
								&& !JKKStrConst.CD00037_UK_ZM.equals(ekk0321b002SvcKeiSta) 
								&& !JKKStrConst.CD00037_CANCEL_ZM.equals(ekk0321b002SvcKeiSta))
						{
							workEKK0321B002Rslt.add(workEKK0321B002[i]);
						}
						
						// IT1-2023-0000001 ADD START
						/* 検索結果のサービス契約番号が設定されている かつ 
						 * サービス契約ステータスが「910:解約済、920:キャンセル済」以外の場合 */
						if (workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO) != null 
								&& !"".equals(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SVC_KEI_NO))
								&& !JKKStrConst.CD00037_DSL_ZM.equals(ekk0321b002SvcKeiSta) 
								&& !JKKStrConst.CD00037_CANCEL_ZM.equals(ekk0321b002SvcKeiSta))
						{
							workEKK0321B002Rslt2.add(workEKK0321B002[i]);
							
							// ANK-4348-00-00 MOD START
							//if (!workEKK0321B002Rslt2.contains(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID)))
							if (!containsSysid.contains(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID)))
							// ANK-4348-00-00 MOD END
							{
								containsSysid.add(workEKK0321B002[i].getString(EKK0321B002CBSMsg1List.SYSID));
							}
						}
						// IT1-2023-0000001 ADD END
					}
					
					String ekk0321b002Sysid = "";
					// 複数件取得した場合は最初のレコードのSYSIDを設定する。
					if(workEKK0321B002Rslt!= null && workEKK0321B002Rslt.size() > 0)
					{
						ekk0321b002Sysid = nullToStr(workEKK0321B002Rslt.get(0).getString(EKK0321B002CBSMsg1List.SYSID));
					}

		
				// 登録完了
				if (CRECARD_SHOSA_STAT_001.equals(crecardShosaStat))
				{
					// 支払方法変更受付情報（クレジットカード）
					workEKK3401C010 = getEKK3401C010(handle, scCall, param, fixedText, ccMsg);
		
					// ANK-4348-00-00 ADD START
					if("3".equals(ccMsg.get("err_flg")))
					{
						throw new CCException("サービスコンポーネントエラー", new Exception());
					}
					// ANK-4348-00-00 ADD END

					// サービス契約のステータスが「受付済」「キャンセル済」以外が存在する場合
					if (0 < workEKK0321B002Rslt.size())
					{
						// 申込／申込明細
						workEKK0011D020 =  getEKK0011D020Msg(handle, scCall, param, fixedText, ekk0321b002Sysid);
					}
					// クレジットカード
// ANK-4619-00-00 MOD START
//					workEKK0521D020 = getEKK0521D020Msg(handle, scCall, param, fixedText, ccMsg);
					workEKK0521D020 = getEKK0521D020Msg(handle, scCall, param, fixedText, ccMsg, creCardNmChgeMap);
// ANK-4619-00-00 MOD END
		
					// クレジットカード会社
					workEKK0531A010 = getEKK0531A010Msg(handle, scCall, param, fixedText, ccMsg);
		
					// 請求契約
					
					// サービスIF実行
					// IT1-2022-0000083 MOD START
					// #81497,#81498 MOD START
////					workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010);
//					workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010,runSysJudgeFlg);
//					// IT1-2022-0000083 MOD END
//					if("3".equals(ccMsg.get("err_flg")))
//					{
//						throw new CCException("サービスコンポーネントエラー", new Exception());
//					}
//					// workEKK0491C060.upd_dtm → workEKK0491A010.upd_dtm
//					workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C060.getString(EKK0491C060CBSMsg.UPD_DTM)));
//					// サービスIF実行
//					// IT1-2022-0000083 MOD START
////					workEKK0491C240 = getEKK0491C240Msg(handle, scCall, param, fixedText, ccMsg, workEKK0501D010, workEKK0521D020, workEKK0491A010);
//					workEKK0491C240 = getEKK0491C240Msg(handle, scCall, param, fixedText, ccMsg, workEKK0501D010, workEKK0521D020, workEKK0491A010,runSysJudgeFlg);
//					// IT1-2022-0000083 MOD END
//					if("3".equals(ccMsg.get("err_flg")))
//					{
//						throw new CCException("サービスコンポーネントエラー", new Exception());
//					}
//
//					// workEKK0491C240.upd_dtm → workEKK0491A010.upd_dtm
//					workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C240.getString(EKK0491C240CBSMsg.UPD_DTM)));
//		
//					// クレジットオーソリ実績
//					execEKK1031D010Msg(handle, scCall, param, fixedText, ccMsg, workEKK0491C240, workEKK0521D020, workEKK0531A010);

					workEKK0491C240 = getEKK0491C240Msg(handle, scCall, param, fixedText, ccMsg, workEKK0501D010, workEKK0521D020, workEKK0491A010,runSysJudgeFlg);
					// IT1-2022-0000083 MOD END
					if("3".equals(ccMsg.get("err_flg")))
					{
						throw new CCException("サービスコンポーネントエラー", new Exception());
					}
					// workEKK0491C240.upd_dtm → workEKK0491A010.upd_dtm
					workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C240.getString(EKK0491C240CBSMsg.UPD_DTM)));
					// サービスIF実行
// ANK-4619-00-00 MOD START
//					workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010,runSysJudgeFlg);
					workEKK0491C060 = getEKK0491C060Msg(handle, scCall, param, fixedText, ccMsg, workEKK0011D020, workEKK0491A010,runSysJudgeFlg, creCardNmChgeMap);
// ANK-4619-00-00 MOD END
					if("3".equals(ccMsg.get("err_flg")))
					{
						throw new CCException("サービスコンポーネントエラー", new Exception());
					}

					// workEKK0491C060.upd_dtm → workEKK0491A010.upd_dtm
					workEKK0491A010[0].set(EKK0491A010CBSMsg1List.UPD_DTM, nullToStr(workEKK0491C060.getString(EKK0491C060CBSMsg.UPD_DTM)));
		
					// クレジットオーソリ実績
					execEKK1031D010Msg(handle, scCall, param, fixedText, ccMsg, workEKK0491C060, workEKK0521D020, workEKK0531A010);
					// #81497,#81498 MOD END
					// 進捗
					for (int i = 0; i < workEKK0321B002Rslt.size(); i++)
					{
						execEKK1091D010MsgScTrn(handle, scCall, param, fixedText, ccMsg, 
								workEKK0011D020, workEKK0501D010, workEKK0521D020, workEKK0321B002Rslt.get(i));
					}
		
					if (MK_SBT_1.equals(crecardMskmSbtCd) && !JKKStringUtil.isNullBlank(ekk0321b002Sysid))
					{
// IT1-2023-0000001 MOD START
//						// メールアドレス
//						workECK0201B002 = getECK0201B002(handle, scCall, param, fixedText, ekk0321b002Sysid);
//		
//						// メール送信サービスを呼出す。
//						for(CAANMsg content : workECK0201B002)
//						{
//							mlad = content.getString(ECK0201B002CBSMsg1List.MLAD);
//							execECC0021D010(handle, scCall, param, fixedText, mlad, custNm, MAIL_CD_PAYWAY_CHG_ADD_FIN);
//						}
						// コンテンツ連絡先メールアドレス取得処理
						String AddMlad = "";
						List<String> AddMladList = new ArrayList<String>();
						
						for (int i = 0 ; i < containsSysid.size(); i++)
						{
							String contSysid = containsSysid.get(i);
							// ANK-4329-06-00 MOD START
//							AddMlad = contMailSch(handle, scCall, param, fixedText, contSysid);
							// お客様情報照会(PMP連携用)を実行する。
							CAANMsg[] eck0011b050List = callECK0011B050(handle, param, fixedText, contSysid);
							
							// コンテンツ系メールアドレスを設定
							AddMlad = getRrksMailAddress(eck0011b050List);
							// ANK-4329-06-00 MOD END
							
							if (!AddMladList.contains(AddMlad))
							{
								AddMladList.add(AddMlad);
							}
							
						}
//						AddMlad = contMailSch(handle, scCall, param, fixedText, sysid);
//						
//						if(!JKKStringUtil.isNullBlank(AddMlad))
//						{
//							execECC0021D010(handle, scCall, param, fixedText, AddMlad, custNm, MAIL_CD_PAYWAY_CHG_ADD_FIN);
//						}
						
						for (int i = 0 ; i < AddMladList.size(); i++)
						{
							if(!JKKStringUtil.isNullBlank(AddMladList.get(i)))
							{
								execECC0021D010(handle, scCall, param, fixedText, AddMladList.get(i), custNm, MAIL_CD_PAYWAY_CHG_ADD_FIN);
							}
						}
// IT1-2023-0000001 MOD END
					}
				}
				// 照査ＮＧ
				else if (CRECARD_SHOSA_STAT_003.equals(crecardShosaStat))
				{
					// 支払方法変更受付情報（クレジットカード）
					workEKK3401C010 = getEKK3401C010(handle, scCall, param, fixedText, ccMsg);
		
					// ANK-4348-00-00 ADD START
					if("3".equals(ccMsg.get("err_flg")))
					{
						throw new CCException("サービスコンポーネントエラー", new Exception());
					}
					// ANK-4348-00-00 ADD END

					// 進捗
					for (int i = 0; i < workEKK0321B002Rslt.size(); i++)
					{
						execEKK1091D010MsgScTrn(handle, scCall, param, fixedText, ccMsg, 
								workEKK0011D020, workEKK0501D010, workEKK0521D020, workEKK0321B002Rslt.get(i));
					}
		
					if (MK_SBT_1.equals(crecardMskmSbtCd) && !JKKStringUtil.isNullBlank(ekk0321b002Sysid))
					{
// IT1-2023-0000001 MOD START
//						// メールアドレス
//						workECK0201B002 = getECK0201B002(handle, scCall, param, fixedText, ekk0321b002Sysid);
//		
//						// メール送信サービスを呼出す。
//						for(CAANMsg content : workECK0201B002)
//						{
//							mlad = content.getString(ECK0201B002CBSMsg1List.MLAD);
//							execECC0021D010(handle, scCall, param, fixedText, mlad, custNm, MAIL_CD_PAYWAY_CHG_SHOSA_NG);
//						}
						// コンテンツ連絡先メールアドレス取得処理
						String AddMlad = "";
						List<String> AddMladList = new ArrayList<String>();
						
						for (int i = 0 ; i < containsSysid.size(); i++)
						{
							String contSysid = containsSysid.get(i);
							// ANK-4329-06-00 MOD START
//							AddMlad = contMailSch(handle, scCall, param, fixedText, contSysid);
							// お客様情報照会(PMP連携用)を実行する。
							CAANMsg[] eck0011b050List = callECK0011B050(handle, param, fixedText, contSysid);
							
							// コンテンツ系メールアドレスを設定
							AddMlad = getRrksMailAddress(eck0011b050List);
							// ANK-4329-06-00 MOD END
							
							if (!AddMladList.contains(AddMlad))
							{
								AddMladList.add(AddMlad);
							}
							
						}
//						AddMlad = contMailSch(handle, scCall, param, fixedText, sysid);
//						
//						if(!JKKStringUtil.isNullBlank(AddMlad))
//						{
//							execECC0021D010(handle, scCall, param, fixedText, AddMlad, custNm, MAIL_CD_PAYWAY_CHG_SHOSA_NG);
//						}
						
						for (int i = 0 ; i < AddMladList.size(); i++)
						{
							if(!JKKStringUtil.isNullBlank(AddMladList.get(i)))
							{
								execECC0021D010(handle, scCall, param, fixedText, AddMladList.get(i), custNm, MAIL_CD_PAYWAY_CHG_SHOSA_NG);
							}
						}
// IT1-2023-0000001 MOD END
					}
					// ANK-4348-00-00 ADD START
					// 譲渡の場合、照査NGメールを送信する。
					if ("2".equals(crecardMskmSbtCd))
					{
						
						for (int i = 0 ; i < containsSysid.size(); i++)
						{
							String contSysid = containsSysid.get(i);
								
							HashMap<String, Object> mineoMailSendCCMap = new HashMap<String, Object>();
							param.setData("MINEOMAILSENDCC", mineoMailSendCCMap);
							JKKMineoJotoAfPaywayChgMailSendCC JKKMineoJotoAfPaywayChgMailSendCC = new JKKMineoJotoAfPaywayChgMailSendCC();
							
							// mineo譲渡後支払方法変更メール送信CC 実行
							mineoMailSendCCMap.put("sysid", contSysid);
							mineoMailSendCCMap.put("kbn", "2");
							
							JKKMineoJotoAfPaywayChgMailSendCC.execute(handle,param,"MINEOMAILSENDCC");
						}
					}
					// ANK-4348-00-00 ADD END
				}
				// 保留
				else if (CRECARD_SHOSA_STAT_004.equals(crecardShosaStat))
				{
					//保留の場合下記項目はカレントを引き継ぐ
					ccMsg.put("cardMeiinCkrltCd", workEKK3401A010[0].getString(EKK3401A010CBSMsg1List.CARD_MEIGIN_CKRLT_CD)) ;
					ccMsg.put("custNm", workEKK3401A010[0].getString(EKK3401A010CBSMsg1List.CHK_JTN_CUST_NM)) ;
					ccMsg.put("custNmKana", workEKK3401A010[0].getString(EKK3401A010CBSMsg1List.CHK_JTN_CUST_KANA)) ;
					// 支払方法変更受付情報（クレジットカード）
					workEKK3401C010 = getEKK3401C010(handle, scCall, param, fixedText, ccMsg);
					
					// ANK-4348-00-00 ADD START
					if("3".equals(ccMsg.get("err_flg")))
					{
						throw new CCException("サービスコンポーネントエラー", new Exception());
					}
					// ANK-4348-00-00 ADD END

				}
				// キャンセル
				else if (CRECARD_SHOSA_STAT_005.equals(crecardShosaStat))
				{
					// 支払方法変更受付情報（クレジットカード）
					workEKK3401C010 = getEKK3401C010(handle, scCall, param, fixedText, ccMsg);
					
					// ANK-4348-00-00 ADD START
					if("3".equals(ccMsg.get("err_flg")))
					{
						throw new CCException("サービスコンポーネントエラー", new Exception());
					}
					// ANK-4348-00-00 ADD END
		
					// 進捗
					for (int i = 0; i < workEKK0321B002Rslt.size(); i++)
					{
						execEKK1091D010MsgScTrn(handle, scCall, param, fixedText, ccMsg, 
								workEKK0011D020, workEKK0501D010, workEKK0521D020, workEKK0321B002Rslt.get(i));
					}
				}
				// その他
				else
				{
					// 未定義
				}
				
				return param;
				
		}
		/**
		 * 支払方法変更受付情報(クレジットカード)の照会サービスIFの実行の結果を返す。
		 * <br>
		 * @param handle
		 * @param scCall
		 * @param param
		 * @param dataMapKey
		 * @param ccMsg
		 * @return CAANMsg[]
		 * @throws Exception
		 */
		private CAANMsg[] getEKK3401A010CAANMsg(SessionHandle handle, 
				ServiceComponentRequestInvoker scCall, 
				IRequestParameterReadWrite param, 
				String dataMapKey,
				Map<String, Object> ccMsg) throws Exception 
		{
			
			CAANMsg[] result = null;
			CAANMsg ekk3401a010Msg = null;
			
			// サービス請求契約一意照会の上りマッピング
			Object[][] ekk0491a010 =
			{
				{EKK3401A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3401A010},
				{EKK3401A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
				{EKK3401A010CBSMsg.KEY_PAYWAYCHUK_NO, nullToStr((String)ccMsg.get("paywayChgUkno"))},
			};
			
			// サービスIF実行
			ekk3401a010Msg = callSC(handle, scCall, param, dataMapKey, ekk0491a010);
			result = ekk3401a010Msg.getCAANMsgList(EKK3401A010CBSMsg.EKK3401A010CBSMSG1LIST);
			
			return result;
		}
		/**
		 * メッセージIDを設定します。
		 * @param ccMsg パラメータMap
		 * @param pMessageId メッセージID
		 * @param pReplaceCha 置換文字列
		 * @param pErrItem エラー設定項目
		 * @param pErrFlg エラーフラグ
		 */
		private void setMessageInfo(HashMap<String, Object> ccMsg, String pMessageId, String pReplaceCha, String pErrItem, String pErrFlg)
		{

			// エラーフラグの設定
			// エラーの場合はそのまま設定。　ワーニングの場合はエラーが設定されていない場合、設定
			String errFlg = (String)ccMsg.get("err_flg");

			if("".equals(errFlg) || ERR_FLG_WARNING.equals(errFlg))
			{
				ccMsg.put("err_flg", pErrFlg);
			}

//			HashMap<String, Object> messageMap = new HashMap<String, Object>();
//			// メッセージIDを設定
//			messageMap.put("messageId", pMessageId);
//			// 置換文字列
//			messageMap.put("replaceCha", pReplaceCha);
//			// エラー設定項目
//			messageMap.put("errItem", pErrItem);
//
//			ArrayList<HashMap<String, Object>> messageInfo = (ArrayList<HashMap<String, Object>>)ccMsg.get("message_list");
//			messageInfo.add(messageMap);

		}
		/**
		 * 未来予約チェックェッエラーマップ作成メソッドです。
		 * <br>
		 * @param itemName 項目名
		 * @return チェックの判定 
		 */
		private boolean checkMiraiYoyakuScTrn(Map<String, Object> ccMsg, CAANMsg[] ekk0491b010Msg1List) throws Exception
		{
			// エラーリスト
			List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
			
			Map<String, String> returnMap = new HashMap<String, String>();
			
			String seikyWayCdRsv = "";
			
			/* nullチェック */
			if (ekk0491b010Msg1List != null)
			{
				/* ekk0491b010Msg1Listチェック */
				for (int i = 0; i < ekk0491b010Msg1List.length; i++)
				{
					
					seikyWayCdRsv = ekk0491b010Msg1List[i].getString(EKK0491B010CBSMsg1List.SEIKY_WAY_CD_RSV);
					
					/* 検索結果なしの場合 */
					if (!JKKStringUtil.isNullBlank(seikyWayCdRsv))
					{	
						// 未来予約の請求契約情報が存在する場合は以下のエラーコードとエラーメッセージを設定する。
//						returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_2002);
//						returnMap.put(ERROR_MESSAGE, "");
//						errList.add(returnMap);
//						ccMsg.put(ERROR_INFO, errList);
						
						return false;
					}
				}
			}
			return true;
		}
		/**
		 * 支払方法変更受付情報(クレジットカード)登録を行う。
		 * @param ccMsg 識別コードマップ
		 * @param handle セッションハンドル
		 * @param scCall SC呼出
		 * @param param パラメーター
		 * @param dataMapKey データマップキー 
		 * @param sysid SYSID
		 * @return CAANMsg
		 * @throws Throwable 
		 */
		private CAANMsg getEKK3401C010(SessionHandle handle,
									ServiceComponentRequestInvoker scCall,
									IRequestParameterReadWrite param,
									String dataMapKey,
									Map<String, Object> ccMsg) throws Throwable
		{
			// 戻り値
			CAANMsg result = null;
			String shosa_stat = null;
			// 上りマッピング
			Object[][] ekk3401c010In = {
					{EKK3401C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3401C010},
					{EKK3401C010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
					{EKK3401C010CBSMsg.PAYWAYCHUK_NO, nullToStr((String)ccMsg.get("paywayChgUkno"))},
					{EKK3401C010CBSMsg.CRECARD_SHOSA_STAT, nullToStr((String)ccMsg.get("crecardShosaStat"))},
					{EKK3401C010CBSMsg.CARD_MEIGIN_CKRLT_CD, nullToStr((String)ccMsg.get("cardMeiinCkrltCd"))},
					{EKK3401C010CBSMsg.CHK_JTN_CUST_NM, nullToStr((String)ccMsg.get("custNm"))},
					{EKK3401C010CBSMsg.CHK_JTN_CUST_KANA,nullToStr((String)ccMsg.get("custNmKana"))},
					// ANK-4348-00-00 ADD START
					{EKK3401C010CBSMsg.UPD_DTM_BF,nullToStr((String)ccMsg.get("updDtmBf_payway"))},
					// ANK-4348-00-00 ADD END
			};
			
			// サービスI/F実行
			callSC(handle, scCall, param, dataMapKey, ekk3401c010In);
			return result;
		}
		
		/**
		 * 進捗登録サービスIF実行の結果を返す。
		 * 
		 * @param handle
		 * @param scCall
		 * @param param
		 * @param dataMapKey
		 * @param ccMsg
		 * @param workEKK0011D020
		 * @param workEKK0501D010
		 * @param workEKK0521D020
		 * @return CAANMsg
		 * @throws Exception
		 */
		private void execEKK1091D010MsgScTrn(SessionHandle handle, 
				ServiceComponentRequestInvoker scCall, 
				IRequestParameterReadWrite param, 
				String dataMapKey,
				Map<String, Object> ccMsg,
				CAANMsg[] workEKK0011D020,
				CAANMsg workEKK0501D010,
				CAANMsg workEKK0521D020,
				CAANMsg workEKK0321B002 
				) throws Exception 
		{
			
			String crecardShosaStat = nullToStr((String) ccMsg.get("crecardShosaStat"));
			String prgTkjk1 = "";
			String mskmDtlNo = "";
			String seikyWayNoKoza = "";
			String seikyWayNoCreCard = "";
			String prgStat = "";
			String svcKeiNo = "";
			
			/* nullチェック */
			if (workEKK0011D020 != null)
			{
				mskmDtlNo = nullToStr(workEKK0011D020[0].getString(EKK0011D020CBSMsg1List.MSKM_DTL_NO));
			}
			
			/* nullチェック */
			if (workEKK0501D010 != null)
			{
				seikyWayNoKoza = nullToStr(workEKK0501D010.getString(EKK0501D010CBSMsg.SEIKY_WAY_NO_KOZA));
			}
			
			/* nullチェック */
			if (workEKK0521D020 != null)
			{
				seikyWayNoCreCard = nullToStr(workEKK0521D020.getString(EKK0521D020CBSMsg.SEIKY_WAY_NO_CRECARD));
			}
			/* nullチェック */
			if (workEKK0321B002 != null)
			{
				svcKeiNo = nullToStr(workEKK0321B002.getString(EKK0321B002CBSMsg1List.SVC_KEI_NO));
			}
			
			/* 登録完了の場合 */
			if (CRECARD_SHOSA_STAT_001.equals(crecardShosaStat))
			{
				prgStat = PRG_STAT_4100;
				prgTkjk1 = PRG_TKJK_CREDIT;
			}
			/* 照査ＮＧの場合の場合 */
			else if (CRECARD_SHOSA_STAT_003.equals(crecardShosaStat))
			{
				mskmDtlNo = "";
				prgStat = PRG_STAT_0901;
				prgTkjk1 = PRG_TKJK_SHOSA_NG;
			}
			/* キャンセルの場合 */ 
			else if (CRECARD_SHOSA_STAT_005.equals(crecardShosaStat))
			{
				mskmDtlNo = "";
				prgStat = PRG_STAT_1201;
				prgTkjk1 = PRG_TKJK_CANCEL;
			}
			
			CAANMsg[] idoList = new CAANMsg[1];
			idoList[0] = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
			idoList[0].set(EKK1091D010CBSMsg1List.IDO_RSN_CD, IDO_RSN_CD_44);
			
			// サービス進捗登録の上りマッピング
			Object[][] ekk1091d010  =
			{
				{EKK1091D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK1091D010},
				{EKK1091D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
				{EKK1091D010CBSMsg.MSKM_DTL_NO, mskmDtlNo},
				{EKK1091D010CBSMsg.SEIKY_KEI_NO, nullToStr((String)ccMsg.get(SEIKY_KEI_NO))},
				{EKK1091D010CBSMsg.SEIKY_WAY_NO_KOZA, seikyWayNoKoza},
				{EKK1091D010CBSMsg.SEIKY_WAY_NO_CRECARD, seikyWayNoCreCard},
				{EKK1091D010CBSMsg.SVC_KEI_NO, svcKeiNo},
				{EKK1091D010CBSMsg.IDO_DIV, JKKStrConst.CD00576_SEIKY_INFO_CHG},
				{EKK1091D010CBSMsg.IDO_DTM, JCCBPCommon.getSysDateTimeStamp()},
				{EKK1091D010CBSMsg.PRG_STAT, prgStat},
				{EKK1091D010CBSMsg.PRG_TKJK_1, prgTkjk1},
				{EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, idoList},
			};
			// サービスIF実行
			callSC(handle, scCall, param, dataMapKey, ekk1091d010);
		}
		// ANK-4329-00-00 ADD END
		// ANK-4329-06-00 DEL START
//		// IT1-2023-0000001 ADD START
//		/**
//		 * リクエスト.SYSIDをキーに連絡先スキーマへ
//		 * コンテンツ連絡先メールアドレスの取得し、返却する。
//		 * 取得できない場合、空を返却する。
//		 * 
//		 * @param handle
//		 * @param scCall
//		 * @param param
//		 * @param fixedText
//		 * @param sysID
//		 * @throws Throwable
//		 */
//		private String contMailSch(SessionHandle handle, 
//				ServiceComponentRequestInvoker scCall, 
//				IRequestParameterReadWrite param, 
//				String fixedText,
//				String sysid) throws Throwable
//		{
//			// サービスIF実行
//			CAANMsg[] workECK0201B003 = getECK0201B003(handle, scCall, param, fixedText, sysid);
//			
//			// 仮登録メールアドレス格納用
//			String kariAddMlad = "";
//			// 本登録メールアドレス格納用
//			String AddMlad = "";
//			// 最新世代コンテンツ連絡先取得フラグ
//			Boolean newContGetFlg = false;
//			// メール送信サービスを呼出す。
//			for(CAANMsg content : workECK0201B003)
//			{
//				// 連絡方法コード
//				String rrkWayCd = content.getString(ECK0201B003CBSMsg1List.RRK_WAY_CD);
//				// 連絡先分類コード
//				String rrksBunruiCd = content.getString(ECK0201B003CBSMsg1List.RRKS_BUNRUI_CD);
//				// 予約適用コード
//				String rsvAplyCd = content.getString(ECK0201B003CBSMsg1List.RSV_APLY_CD);
//				// 連絡方法コードが"001"(メールアドレス)である、連絡先分類コードが"1"(コンテンツ系連絡先)である場合
//				if (JKKStrConst.CD00790_MLAD.equals(rrkWayCd) && JKKStrConst.CD00871_CONT_RRS.equals(rrksBunruiCd))
//				{
//					// 最新世代コンテンツ連絡先取得フラグが"TRUE"の場合、
//					if (newContGetFlg)
//					{
//						// ANK-4329-06-00 ADD START
//						newContGetFlg = false;
//						// ANK-4329-06-00 ADD START
//						// コンテンツ連絡先メールアドレスにて、
//						// 旧世代に仮登録メールアドレスと同じメールアドレスの本登録メールアドレスが存在する場合、
//						if (kariAddMlad.equals(content.getString(ECK0201B003CBSMsg1List.MLAD)) &&
//								"2".equals(rsvAplyCd))
//						{
//							// ANK-4329-06-00 DEL START
////							newContGetFlg = false;
//							// ANK-4329-06-00 DEL END
//							continue;
//						}
//					}
//					
//					// 予約適用コードが"1"または"2"または"3"の場合、
//					// かつ最新世代コンテンツ連絡先取得フラグが"FALSE"の場合、
//					if (("1".equals(rsvAplyCd) || "2".equals(rsvAplyCd) || "3".equals(rsvAplyCd)) &&
//							!newContGetFlg)
//					{
//						// 最新世代コンテンツ連絡先取得フラグをTRUEに設定
//						newContGetFlg = true;
//						
//						// 予約適用コードが"2"のレコード(本登録中のメールアドレス)を特定する
//						if ("2".equals(rsvAplyCd))
//						{
//							// 本登録中のメールアドレスを取得
//							AddMlad  = content.getString(ECK0201B003CBSMsg1List.MLAD);
//							break;
//						}
//						else 
//						{
//							// 予約適用コードが"1"および"3"のレコード(仮登録中のメールアドレス)を特定する
//							// 本登録中のメールアドレスを取得
//							kariAddMlad  = content.getString(ECK0201B003CBSMsg1List.MLAD);
//						}
//					}
//				}
//			}
//			
//			return AddMlad;
//			
//		}
//		// IT1-2023-0000001 ADD END
		// ANK-4329-06-00 DEL END

	// ANK-4329-06-00 ADD START
	/**
	 * ECK0011B050_お客様情報照会(PMP連携用)を実行する。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @param sysid SYSID
	 * @return 結果
	 * @throws Throwable 例外が発生した場合
	 */
	private CAANMsg[] callECK0011B050(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, String sysid) throws Throwable
	{
		// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();

		// サービス契約一覧照会(SYSID)の上りマッピング
		Object[][] ECK0011B050In =
		{
				{ECK0011B050CBSMsg.TEMPLATEID, TEMPLATE_ID_ECK0011B050},
				{ECK0011B050CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1}, 	// 機能コード："1"
				{ECK0011B050CBSMsg.KEY_SYSID, sysid}						// ＫＥＹ＿SYSYID
		};

		// サービスIF実行
		CAANMsg[] ECK0011B050Out = callSC(handle, scCall, param, fixedText, ECK0011B050In).getCAANMsgList(ECK0011B050CBSMsg.ECK0011B050CBSMSG1LIST);

		// 結果を返却
		return ECK0011B050Out;

	}
	/**
	 * 連絡先メールアドレスを取得する
	 * 
	 * @param eck0201b040List
	 * @return
	 * @throws Exception
	 */
	private String getRrksMailAddress(CAANMsg[] eck0201b040List) throws Exception
	{
		CAANMsg custInfo = eck0201b040List[0];
		
		if (custInfo.getString(ECK0011B050CBSMsg1List.MLAD) != null && custInfo.getString(ECK0011B050CBSMsg1List.MLAD).equals(custInfo.getString(ECK0011B050CBSMsg1List.CHGECHU_MLAD)))
		{
			return null;
		}
		
		return custInfo.getString(ECK0011B050CBSMsg1List.MLAD);
	}
		// ANK-4329-06-00 ADD START
		/**
		 * 請求契約一覧照会(CMP)サービスIFの実行の結果を返す。
		 * <br>
		 * @param handle
		 * @param scCall
		 * @param param
		 * @param dataMapKey
		 * @param ccMsg
		 * @return CAANMsg[]
		 * @throws Exception
		 */
		private CAANMsg[] getEKK0491B008CAANMsg(SessionHandle handle, 
				ServiceComponentRequestInvoker scCall, 
				IRequestParameterReadWrite param, 
				String dataMapKey,
				String sysid) throws Exception 
		{
			
			CAANMsg[] result = null;
			CAANMsg ekk0491b008Msg = null;
			
			// サービス請求契約一意照会の上りマッピング
			Object[][] ekk0491b008 =
			{
				{EKK0491B008CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK0491B008},
				{EKK0491B008CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_2},
				{EKK0491B008CBSMsg.KEY_SYSID, sysid},
			};
			
			// サービスIF実行
			ekk0491b008Msg = callSC(handle, scCall, param, dataMapKey, ekk0491b008);
			result = ekk0491b008Msg.getCAANMsgList(EKK0491B008CBSMsg.EKK0491B008CBSMSG1LIST);
			
			return result;
			
			
		}
		
		
	// ANK-4329-06-00 ADD END
	
		//ANK-4348-00-00 ADD START
		/**
		 * mineo譲渡受付一覧照会サービスIF実行の結果を返す。
		 * 
		 * @param handle
		 * @param scCall
		 * @param param
		 * @param dataMapKey
		 * @param ccMsg
		 * @return CAANMsg[]
		 * @throws Exception
		 */
		private CAANMsg[] getEKK3501B010CAANMsg(SessionHandle handle, 
				ServiceComponentRequestInvoker scCall, 
				IRequestParameterReadWrite param, 
				String dataMapKey,
				String sysid) throws Exception 
		{
			
			CAANMsg[] result = null;
			CAANMsg ekk3501b010Msg = null;
			
			// mineo譲渡受付一覧照会の上りマッピング
			Object[][] ekk3501b010 =
			{
				{EKK3501B010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3501B010},
				{EKK3501B010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
				{EKK3501B010CBSMsg.KEY_SYSID, sysid}
			};
			
			// サービスIF実行
			ekk3501b010Msg = callSC(handle, scCall, param, dataMapKey, ekk3501b010);
			
			result = ekk3501b010Msg.getCAANMsgList(EKK3501B010CBSMsg.EKK3501B010CBSMSG1LIST);
			
			return result;
		}
	
		/**
		 * mineo譲渡受付サービスIF実行の結果を返す。
		 * 
		 * @param handle
		 * @param scCall
		 * @param param
		 * @param dataMapKey
		 * @param mineoJotoUkMap
		 * @return CAANMsg
		 * @throws Exception
		 */
		private CAANMsg getEKK3501C010Msg(SessionHandle handle, 
				ServiceComponentRequestInvoker scCall, 
				IRequestParameterReadWrite param, 
				String dataMapKey,
				CAANMsg mineoJotoUkMap) throws Exception 
		{
			CAANMsg result = null;
			
			// mineo譲渡受付管理の上りマッピング
			Object[][] ekk3501c010  =
			{
				{EKK3501C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3501C010},
				{EKK3501C010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
				{EKK3501C010CBSMsg.SYSID, nullToStr(mineoJotoUkMap.getString(EKK3501B010CBSMsg1List.SYSID))},
				{EKK3501C010CBSMsg.MINEO_JOTO_UK_NO, nullToStr(mineoJotoUkMap.getString(EKK3501B010CBSMsg1List.MINEO_JOTO_UK_NO))},
				{EKK3501C010CBSMsg.YK_KIGEN_DTM, nullToStr(mineoJotoUkMap.getString(EKK3501B010CBSMsg1List.YK_KIGEN_DTM))},
				{EKK3501C010CBSMsg.UPD_DTM_BF, nullToStr(mineoJotoUkMap.getString(EKK3501B010CBSMsg1List.UPD_DTM))},
				{EKK3501C010CBSMsg.USE_KH, USE_KH_1},
			};
			// サービスIF実行
			result = callSC(handle, scCall, param, dataMapKey, ekk3501c010);	
			
			return result;
		}
		//ANK-4348-00-00 ADD END
// ANK-4619-00-00 ADD START
		/**
		 * クレジットカード名称変換CC実行
		 * 
		 * @param param
		 * @return
		 * @throws Throwable
		 */
		private IRequestParameterReadWrite callJCCCrecardNmChgeCC(SessionHandle handle, IRequestParameterReadWrite param, Map<String, Object> ccMsg) throws Throwable
		{
			HashMap<String, Object> parentMap = new HashMap<String, Object>();
			
			// 入力カナ名（変更前）
			parentMap.put("in_kana_bf", JKKStrConst.KARA);
			// 入力カナ名（変更後）
			parentMap.put("in_kana_af", (String)ccMsg.get(CRECARD_NM_KANA));
			// 入力ローマ字（変更前）
			parentMap.put("in_romaji_bf", JKKStrConst.KARA);
			// KEY_入力ローマ字（変更後）
			String key_in_romaji = JKKStrConst.KARA;
			
			// クレジットカード名義（ローマ字）の値が無い場合はクレジットカード名義ローマ字名を入力値とする
			if(JKKStringUtil.isNullBlank((String) ccMsg.get(CRECARD_MEIGI_ROMAJI)))
			{
				key_in_romaji = CRECARD_NM_ROMAJI;
			}
			else
			{
				key_in_romaji = CRECARD_MEIGI_ROMAJI;
			}
			// 入力ローマ字（変更後）
			parentMap.put("in_romaji_af", (String) ccMsg.get(key_in_romaji));
			
			param.setData(CRECARD_NM_CHGE_MAP_KEY, parentMap);
			// クレジットカード名称変換
			JCCCrecardNmChgeCC crecardNmChgeCC = new JCCCrecardNmChgeCC();
			crecardNmChgeCC.execute(handle, param, CRECARD_NM_CHGE_MAP_KEY);
			
			// エラーリスト
			List<Map<String, String>> errList = new ArrayList<Map<String, String>>();
			// 変換後クレジット名義カナ名の属性・桁数チェック
			//  属性チェック
			if (!MixCharCheck.isMeigiNinKanaCheck((String)parentMap.get("out_kana")))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(CRECARD_NM_KANA, (String)ccMsg.get(CRECARD_NM_KANA)));
				errList.add(getFormErrInfMap(key_in_romaji, (String)ccMsg.get(key_in_romaji)));
			}
			// 桁数チェック
			else if (!LengthCheck.isLength2Check((String)parentMap.get("out_kana"), 1, 121))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(CRECARD_NM_KANA, (String)ccMsg.get(CRECARD_NM_KANA)));
				errList.add(getLenErrInfMap(key_in_romaji, (String)ccMsg.get(key_in_romaji)));
			}
			if (errList.size() > 0)
			{
				ccMsg.put(ERROR_INFO, errList);
			}
			return param;
		}
// ANK-4619-00-00 ADD END

}
