/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JCKModelCommon
*	ソースファイル名：JCKModelCommon.java
*	作成者			：富士通
*	日付			：2011年4月23日
*＜機能概要＞
*	顧客契約モデル層部品のアクセッサクラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/10	富士通		新規作成
*   v5.00.00    2013/07/03  FJ）寺本    KT1-2013-0000691
*	v5.00.01	2013/08/01	FJ)沖田		IT2-2013-0000674
*	v5.00.02	2013/10/01	FJ)沖田		OM-2013-0002618
*	v27.00.00	2016/09/21	FJ)田口		【ANK-2987-00-00】メールリーチ率向上
*	v37.00.00	2018/06/28	FJ) 河邊	【ANK-3424-00-00】IBUKI→eoお客様情報更新IFの改修
*	v48.00.00	2020/01/17	FJ)謝		【ANK-3795-00-00】見込顧客システム構築対応
*	v55.00.00	2021/10/08	FJ)舘山		【ANK-4112-00-00】通秘データ(通信量等)の活用に向けた取り組みに対するシステム対応
**********************************************************************/

package eo.ejb.common;

import java.util.HashMap;

import com.fujitsu.futurity.common.JCCWebAddTrnId;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.ejb.common.convert.JCKejbCK0011ConvChk;
import eo.ejb.common.edit.JCKejbCK0011Edit;
import eo.ejb.common.edit.JCKejbCK0011NumberParts;
import eo.ejb.common.edit.JCKejbCK0021NumberParts;
import eo.ejb.common.edit.JCKejbCK0061NumberParts;
import eo.ejb.common.edit.JCKejbCK0111NumberParts;
import eo.ejb.common.edit.JCKejbCK0121Edit;
import eo.ejb.common.edit.JCKejbCK0121NumberParts;
import eo.ejb.common.edit.JCKejbCK0131NumberParts;
import eo.ejb.common.edit.JCKejbCK0151NumberParts;
import eo.ejb.common.edit.JCKejbCK0201NumberParts;
import eo.ejb.common.edit.JCKejbCK0211NumberParts;
import eo.ejb.common.edit.JCKejbCK0251NumberParts;
import eo.ejb.common.edit.JCKejbCK0301Edit;
import eo.ejb.common.edit.JCKejbCK0301NumberParts;
import eo.ejb.common.edit.JKKejbDateUtil;
import eo.ejb.common.edit.JCKejbCK0281NumberParts;
import eo.ejb.common.entity.JCKejbCK0011JSCK;
import eo.ejb.common.entity.JCKejbCK0011KRCK;
import eo.ejb.common.entity.JCKejbCK0061KRCK;
import eo.ejb.common.entity.JCKejbCK0121JSCK;
import eo.ejb.common.entity.JCKejbCK0121KRCK;
import eo.ejb.common.entity.JCKejbCK0141JSCK;
import eo.ejb.common.entity.JCKejbCK0201KRCK;
import eo.ejb.common.itemrelation.JKKejbAddressRelationChk;

/**
 * <p>
 * 顧客契約モデル層部品のアクセッサクラスです。
 * </p>
 * @author 富士通
 */
public class JCKModelCommon extends JCCModelCommon
{
	/** サービス呼び出し区分(バッチ業務サービス) */
	private static final String CALL_TYPE_BATCH = "4";

	/**
	 * <p>
	 * 顧客システムのオンライン運用日付もしくはバッチ運用日付を取得します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return YYYYMMDD形式の共通オンライン運用日付
	 */
	public static Object getOpeDate(CAANMsg arg0, AgentDispatchContext arg1)
	{
		// サービスの呼び出し元がバッチ(業務サービス)による呼び出しによる呼び出しの場合
		if(JKKejbCallTypeChecker.isCallTypeBatch(arg1)) {
			return getBatOpeDate(arg0, null);
		}
		return getOpeDate(arg0, arg1, null);
	}

	/**
	 * <p>
	 * 顧客システムのオンライン運用日付もしくはバッチ運用日付を取得します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @return YYYYMMDD形式の共通オンライン運用日付
	 */
	public static String getOpeDate(CAANMsg arg0)
	{
		// 共通メッセージからサービス呼び出し元の区分を取得する
		HashMap<String, Object> commonMsg = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_MESSAGE_COMMON_MAP);
		String callTypeKey = (String)commonMsg.get(JCMConstants.CALL_TYPE_KEY);

		// サービスの呼び出し元がバッチ(業務サービス)による呼び出しによる呼び出しの場合
		if (CALL_TYPE_BATCH.equals(callTypeKey))
		{
			return getBatOpeDate(arg0, null);
		}
		return (String)getOpeDate(arg0, null, null);
	}

	/**
	 * <p>
	 * 顧客システムのオンライン運用日時もしくはバッチ運用日付を取得します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return YYYYMMDDhhmmssSSS形式の共通オンライン運用日時
	 */
	public static Object getOpeDateTimeStamp(CAANMsg arg0, AgentDispatchContext arg1)
	{
		String opeDate = (String)getOpeDate(arg0, arg1, null);

		// サービスの呼び出し元がバッチ(業務サービス)による呼び出しによる呼び出しの場合
		if (JKKejbCallTypeChecker.isCallTypeBatch(arg1))
		{
			opeDate = getBatOpeDate(arg0, null);
		}

		if (null == opeDate)
		{
			return null;
		}
		String opeTimeStamp = getSysDateTimeStamp();
		return opeDate + opeTimeStamp.substring(8, 17);
	}

	/**
	 * <p>
	 * 顧客システムのオンライン運用日時もしくはバッチ運用日付を取得します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @return YYYYMMDDhhmmssSSS形式の共通オンライン運用日時
	 */
	public static String getOpeDateTimeStamp(CAANMsg arg0)
	{
		String opeDate = (String)getOpeDate(arg0, null, null);

		// 共通メッセージからサービス呼び出し元の区分を取得する
		HashMap<String, Object> commonMsg = JCCWebAddTrnId.get(JCMConstants.ADD_TRN_ID_MESSAGE_COMMON_MAP);
		String callTypeKey = (String)commonMsg.get(JCMConstants.CALL_TYPE_KEY);

		// サービスの呼び出し元がバッチ(業務サービス)による呼び出しによる呼び出しの場合
		if (CALL_TYPE_BATCH.equals(callTypeKey))
		{
			opeDate = getBatOpeDate(arg0, null);
		}

		if (null == opeDate)
		{
			return null;
		}
		String opeTimeStamp = getSysDateTimeStamp();
		return opeDate + opeTimeStamp.substring(8, 17);
	}

	/**
	 * <p>
	 * 指定したお客様のレコードが予約レコードであることのチェックを行う。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return チェック結果
	 */
	public static boolean isCheckRsvRecordCK0011(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0011KRCK instance = new JCKejbCK0011KRCK();
		return instance.isCheckRsvRecord(arg0, arg1);
	}

	/**
	 * <p>
	 * 督促番号のチェックを行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 不良顧客番号
	 * @return チェック結果
	 */
	public static boolean isCheckTkskNoCK0061(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		JCKejbCK0061KRCK instance = new JCKejbCK0061KRCK();
		return instance.isCheckTkskNo(arg2);
	}

	/**
	 * <p>
	 * 指定した連絡先のレコードが予約レコードであることのチェックを行う。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return チェック結果
	 */
	public static boolean isCheckRsvRecordCK0201(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0201KRCK instance = new JCKejbCK0201KRCK();
		return instance.isCheckRsvRecord(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様の初期eoIDの採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getShkEoidCK0011(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0011NumberParts instance = new JCKejbCK0011NumberParts();
		return instance.getShkEoid(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様の初期eoIDの採番を行います（採番条件付）。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 SYSID
	 * @param arg3 会員種別コード
	 * @return 初期eoIDの値
	 */
	public static Object getShkEoidCond1CK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2, Object arg3)
	{
		JCKejbCK0011NumberParts instance = new JCKejbCK0011NumberParts();
		return instance.getShkEoidCond1(arg0, arg1, (String)arg2, (String)arg3);
	}

	/**
	 * <p>
	 * お客様の初期eoIDパスワードの採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getShkEoidPwdCK0011(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0011NumberParts instance = new JCKejbCK0011NumberParts();
		return instance.getShkEoidPwd(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様の初期eoIDパスワードの採番を行います（採番条件付）。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 SYSID
	 * @param arg3 会員種別コード
	 * @return 初期eoIDパスワードの値
	 */
	public static Object getShkEoidPwdCond1CK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2, Object arg3)
	{
		JCKejbCK0011NumberParts instance = new JCKejbCK0011NumberParts();
		return instance.getShkEoidPwdCond1(arg0, arg1, (String)arg2, (String)arg3);
	}

	/**
	 * <p>
	 * お客様のeoIDに設定する値を取得する。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 SYSID
	 * @param arg3 会員種別コード
	 * @return eoIDが未設定、またはお客様退会年月日が設定されている場合、初期eoIDの値を設定。
	 *          それ以外の場合、カレントレコードのeoIDの値を設定。
	 */
	public static Object getEoidCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2, Object arg3)
	{
		JCKejbCK0011NumberParts instance = new JCKejbCK0011NumberParts();
		return instance.getEoid(arg0, arg1, (String)arg2, (String)arg3);
	}

	/**
	 * <p>
	 * お客様<個人>のSYSIDの採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getSysidCK0021(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0021NumberParts instance = new JCKejbCK0021NumberParts();
		return instance.getSysId(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様<個人>のSYSIDの取得を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param sysid SYSID
	 * @return 返却された番号
	 */
	public static Object getSysidAsInCK0021(CAANMsg arg0, AgentDispatchContext arg1, Object sysid)
	{
		JCKejbCK0021NumberParts instance = new JCKejbCK0021NumberParts();
		return instance.getSysIdAsIn(arg0, arg1, sysid);
	}
	/**
	 * <p>
	 * 不良顧客の不良顧客番号の採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getHuryoCustNoCK0061(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0061NumberParts instance = new JCKejbCK0061NumberParts();
		return instance.getHuryoCustNo(arg0, arg1);
	}

	/**
	 * <p>
	 * 指示書の指示書番号を採番をを行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getSjishoNoCK0151(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0151NumberParts instance = new JCKejbCK0151NumberParts();
		return instance.getSjishoNo(arg0, arg1);
	}

	/**
	 * <p>
	 * 指示書の指示書内容枝番を採番をを行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getSjishoNaiyoSeqCK0151(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0151NumberParts instance = new JCKejbCK0151NumberParts();
		return instance.getSjishoNaiyoSeq(arg0, arg1);
	}

	/**
	 * <p>
	 * 連絡先の連絡先番号の採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getRrksNoCK0201(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0201NumberParts instance = new JCKejbCK0201NumberParts();
		return instance.getRrksNo(arg0, arg1);
	}

	/**
	 * <p>
	 * グループのグループコードの採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getGrpCdCK0111(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0111NumberParts instance = new JCKejbCK0111NumberParts();
		return instance.getGrpCd(arg0, arg1);
	}

	/**
	 * <p>
	 * グループの初期グループ入会コードの採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getShkGrpJoinCdCK0111(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0111NumberParts instance = new JCKejbCK0111NumberParts();
		return instance.getShkGrpJoinCd(arg0, arg1);
	}

	/**
	 * <p>
	 * グループの初期グループ入会コードパスワードの採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getShkGrpJoinCdPwdCK0111(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0111NumberParts instance = new JCKejbCK0111NumberParts();
		return instance.getShkGrpJoinCdPwd(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様グループ設定のお客様グループ設定番号の採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getCustGrpSetteNoCK0121(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0121NumberParts instance = new JCKejbCK0121NumberParts();
		return instance.getCustGrpSetteNo(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様グループ設定のカレントレコードの世代登録年月日時分秒を取得を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 検索対象のお客様グループ設定番号
	 * @return 指定されたお客様グループ設定番号に紐付くカレントレコードの世代登録年月日時分秒
	 */
	public static Object getCurrentGeneAddDtmCK0121(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		JCKejbCK0121Edit instance = new JCKejbCK0121Edit();
		return instance.getCurrentGeneAddDtm(arg0, arg1, arg2);
	}

	/**
	 * <p>
	 * 外部不良依頼の外部不良依頼番号の採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static String getOutHuryoReqNoCK0211(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0211NumberParts instance = new JCKejbCK0211NumberParts();
		return instance.getOutHuryoReqNo(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様の状態遷移チェックを行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return チェック結果が正常な場合はtrue
	 */
	public static boolean checkStateTransitionCK0011(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0011JSCK instance = new JCKejbCK0011JSCK();
		return instance.checkStateTransition(arg0, arg1);
	}

	/**
	 * <p>
	 * オプトインメールのオプトインメール番号を採番します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getOptinmNoCK0131(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0131NumberParts instance = new JCKejbCK0131NumberParts();
		return instance.getOptinmNo(arg0, arg1);
	}

	/**
	 * <p>
	 * オプトインメール受信設定の状態遷移チェックを行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return チェック結果が正常な場合はtrue
	 */
	public static boolean checkStateTransitionCK0141(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0141JSCK instance = new JCKejbCK0141JSCK();
		return instance.checkStateTransition(arg0, arg1);
	}

	/**
	 * <p>
	 * お客様グループ設定の状態遷移チェックを行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return チェック結果が正常な場合はtrue
	 */
	public static boolean checkStateTransitionCK0121(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0121JSCK instance = new JCKejbCK0121JSCK();
		return instance.checkStateTransition(arg0, arg1);
	}

	/**
	 * <p>
	 * トランザクション内で同一の世代登録年月日時分秒を取得します。
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 取得した世代登録年月日時分秒
	 */
	public static Object getTransferGeneAddDtm(CAANMsg inMsg, AgentDispatchContext inContext)
	{
		JKKejbDateUtil instance = new JKKejbDateUtil();
		return instance.getGeneAddDtm(inMsg, inContext);
	}

	/**
	 * <p>
	 * 顧客系の住所入力チェックを行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param errFlg エラーフラグ
	 * @param ad_cd 住所コード
	 * @param state_nm 都道府県名
	 * @param city_nm 市区町村名
	 * @param oaztsu_nm 大字通称名
	 * @param azcho_nm 字丁目名
	 * @param bnchigo 番地号
	 * @return true:チェック正常 false:エラー
	 * 
	 */
	public static boolean isCKAddressInputCheck(CAANMsg inCBSMsg, AgentDispatchContext arg1, String errFlg, String ad_cd,
			String state_nm, String city_nm, String oaztsu_nm, String azcho_nm, String bnchigo)
	{
		JKKejbAddressRelationChk instance = new JKKejbAddressRelationChk();
		return instance.isAddressInputCheck(inCBSMsg, arg1, errFlg, ad_cd.toLowerCase(), state_nm.toLowerCase(), city_nm.toLowerCase(), oaztsu_nm
				.toLowerCase(), azcho_nm.toLowerCase(), bnchigo.toLowerCase());
	}
	
	/**
	 * <p>
	 * 顧客系の住所入力チェック(明細)を行います。
	 * </p>
	 * @param inCBSMsg 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param msgList 明細項目格納Key名
	 * @param errFlg エラーフラグ
	 * @param ad_cd 住所コード
	 * @param state_nm 都道府県名
	 * @param city_nm 市区町村名
	 * @param oaztsu_nm 大字通称名
	 * @param azcho_nm 字丁目名
	 * @param bnchigo 番地号
	 * @return true:チェック正常 false:エラー
	 * 
	 */
	public static boolean isCKAddressInputListCheck(CAANMsg inCBSMsg, AgentDispatchContext arg1, String msgList, String errFlg, String ad_cd,
			String state_nm, String city_nm, String oaztsu_nm, String azcho_nm, String bnchigo)
	{
		JKKejbAddressRelationChk instance = new JKKejbAddressRelationChk();
		return instance.isAddressInputListCheck(inCBSMsg, arg1, msgList, errFlg, ad_cd.toLowerCase(), state_nm.toLowerCase(), city_nm.toLowerCase(),
				oaztsu_nm.toLowerCase(), azcho_nm.toLowerCase(), bnchigo.toLowerCase());
	}
	
	/**
	 * <p>
	 * 会員種別コードチェック処理(マスター会員(個人・法人)用)
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 入力値：会員種別コード
	 * @param arg3 入力値：SYSID
	 * @return チェック結果が正常な場合はtrue
	 */
	public static boolean isChkCngMbrSbtCdMasKoHoCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2, Object arg3)
	{
		JCKejbCK0011ConvChk instance = new JCKejbCK0011ConvChk();
		return instance.isChkCngMbrSbtCdMasKoHo(arg0, arg1, arg2, arg3);
	}

	/**
	 * <p>
	 * 会員種別コードチェック処理(非eo会員→マスター会員(個人・法人)用)
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 入力値：SYSID
	 * @param arg3 入力値：会員種別コード
	 * @return チェック結果が正常な場合はtrue
	 */
	public static boolean isChkMbrSbtCdHieoMasKoHoCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2, Object arg3)
	{
		JCKejbCK0011ConvChk instance = new JCKejbCK0011ConvChk();
		return instance.isChkMbrSbtCdHieoMasKoHo(arg0, arg1, arg2, arg3);
	}
	
	/**
	 * <p>
	 * 会員種別コードチェック処理(カレント_マスター会員(個人・法人)用)
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 入力値：SYSID
	 * @return 対象のお客様の会員種別コードが"マスター会員（個人）"または"マスター会員（法人）"の場合、true。
	 *          上記以外の場合はfalse。
	 */
	public static boolean isChkMbrSbtCdCurMasKoHoCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		JCKejbCK0011ConvChk instance = new JCKejbCK0011ConvChk();
		return instance.isChkMbrSbtCdCurMasKoHoCK(arg0, arg1, arg2);
	}
	
	/**
	 * <p>
	 * 非eo会員お客様回復年月日取得処理
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 入力値：SYSID
	 * @return 対象のお客様が"非eo会員"である場合、null
	 *          上記以外の場合、運用日付
	 */
	public static String getHiEoMbrCustKaihkYmdCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		JCKejbCK0011Edit instance = new JCKejbCK0011Edit();
		return instance.getHiEoMbrCustKaihkYmd(arg0, arg1, arg2);
	}

	/**
	 * <p>
	 * 指定したお客様グループ設定のレコードが予約のレコードであることのチェックを行う。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return チェック結果
	 */
	public static boolean isCheckRsvRecordCK0121(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0121KRCK instance = new JCKejbCK0121KRCK();
		return instance.isCheckRsvRecord(arg0, arg1);
	}
	

	/**
	 * eoID関連情報変更識別コード取得処理
	 * <p>
	 * 初期化種別コードによりeoID関連情報変更識別コードを取得する。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 初期化種別コード
	 * @return 初期化種別コードが"1"または"2"である場合、「eoID変更項目コード」 + 「コード名称管理マスタ．eoID変更履歴コード」
	 *          上記以外の場合、null
	 */
	public static String getEoidKnrnInfChgSkcdCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		JCKejbCK0011Edit instance = new JCKejbCK0011Edit();
		return instance.getEoidKnrnInfChgSkcd(arg0, arg1, arg2);
	}

	/**
	 * eoID関連情報変更年月日時分秒取得処理
	 * <p>
	 * 初期化種別コードによりeoID関連情報変更年月日時分秒を取得する。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 初期化種別コード
	 * @return 初期化種別コードが"1"または"2"である場合、システム日付(YYYYMMDDHHMMSS_SSS)を返却
	 *          上記以外の場合、null
	 */
	public static String getEoidKnrnInfChgDtmCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2) {
		JCKejbCK0011Edit instance = new JCKejbCK0011Edit();
		return instance.getEoidKnrnInfChgDtm(arg0, arg1, arg2);
	}
	

	/**
	 * 初期eoID取得処理
	 * <p>
	 * 初期化種別コードが"1"の場合、カレントレコードの「初期eoID」を返却する。
	 * 初期化種別コード"1"以外の場合、カレントレコードの「eoID」を返却する。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 SYSID
	 * @param arg3 初期化種別コード
	 * @return 初期化種別コードが"1"の場合、「初期eoID」を返却。上記以外の場合、「eoID」を返却。
	 */
	public static String getShkEoidCK0011(CAANMsg arg0, AgentDispatchContext arg1, Object arg2, Object arg3) {

		JCKejbCK0011Edit instance = new JCKejbCK0011Edit();
		return instance.getShkEoid(arg0, arg1, arg2, arg3);
	}
	

	/**
	 * 入力項目nullチェック(顧客)
	 * オブジェクトに値が設定されているか判定します。
	 * <br>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	public static boolean isNull(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		if (arg2 == null)
		{
			return true;
		}

		return 0 == arg2.toString().length();
	}
	
// ANK-2987-00-00 ADD START
	/**
	 * <p>
	 * オプトインメール受信設定ワークのオプトインメール受信設定ワーク番号の採番を行います。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static Object getOptinmRcvstWkNoCK0251(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0251NumberParts instance = new JCKejbCK0251NumberParts();
		return instance.getOptinmRcvstWkNo(arg0, arg1);
	}
// ANK-2987-00-00 ADD END
// ANK-3424-00-00 2018/06/28 ADD START
	/**
	 * <p>
	 * トランザクション内で同一の世代登録年月日時分秒を取得します。
	 * （システム日付が更新前のカレントの世代登録年月日より未来になるように設定する）
	 * </p>
	 * @param inMsg 処理対象のメッセージキャリア
	 * @param inContext Agentから渡されたAgentDispatchContext
	 * @return 取得した世代登録年月日時分秒
	 */
	public static Object getTransferGeneAddDtm(CAANMsg inMsg, AgentDispatchContext inContext, String upBfGeneAddDtm)
	{
		JKKejbDateUtil instance = new JKKejbDateUtil();
		return instance.getGeneAddDtm(inMsg, inContext, upBfGeneAddDtm);
	}
// ANK-3424-00-00 2018/06/28 ADD END
// ANK-3795-00-00 ADD START
	/**
	 * <p>
	 * 見込顧客の見込顧客番号を採番します。
	 * </p>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号。
	 */
	public static String getMikmcstNo(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0281NumberParts instance = new JCKejbCK0281NumberParts();
		return instance.getMikmcstNo(arg0, arg1);
	}
// ANK-3795-00-00 ADD END
// ▽▽▽ ANK-4112-00-00 ADD START
	/**
	 * 通秘データ活用同意番号を採番する。
	 * <br>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @return 採番された番号
	 */
	public static String getTuhdtKatyDoiNoCK0301(CAANMsg arg0, AgentDispatchContext arg1)
	{
		JCKejbCK0301NumberParts instance = new JCKejbCK0301NumberParts();
		return instance.getTuhdtKatyDoiNo(arg0, arg1);
	}
	
	/**
	 * 通秘データ活用同意用の世代登録年月日時分秒を取得する。
	 * <br>
	 * @param arg0 処理対象のメッセージキャリア
	 * @param arg1 Agentから渡されたAgentDispatchContext
	 * @param arg2 通秘データ活用同意番号
	 * @return 順番を保証した世代登録年月日時分秒
	 */
	public static Object getGeneAddDtmCK0301(CAANMsg arg0, AgentDispatchContext arg1, Object arg2)
	{
		JCKejbCK0301Edit instance = new JCKejbCK0301Edit();
		return instance.getGeneAddDtm(arg0, arg1, arg2);
	}
	
// △△△ ANK-4112-00-00 ADD END
}
