/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSBatSCEMIdoInfDslTrkm
*	ソースファイル名	：JBSBatSCEMIdoInfDslTrkm.java
*	作成者				：富士通　
*	作成日				：2011年06月30日
*＜機能概要＞
*　EM異動情報データ(解約)取込部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/30   富士通		新規作成
*********************************************************************/
package eo.business.service;

import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JSCBatCommon;
import eo.business.common.JSCBatMobileOrderNoGenerator;
import eo.business.util.file.JBSbatSCIFE022;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatSC_T_EM_ODR_SRINF;
import eo.common.constant.JSCStrConstant;
import eo.common.util.JPCUtilCommon;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessError;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.util.JBSbatCheckUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSBatSCEMIdoInfDslTrkm extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(モバイルオーダ)*/
	private static final String D_TBL_NAME_SC_T_MOBILE_ORDER = "SC_T_MOBILE_ORDER";

	/** テーブル(ＥＭオーダ送受信情報)*/
	private static final String D_TBL_NAME_SC_T_EM_ODR_SRINF = "SC_T_EM_ODR_SRINF";

	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(サービス契約＜ｅｏモバイル＞)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_EOMOBA = "KK_T_SVC_KEI_EOMOBA";

	/** SQL定義キー(SC_SELECT_003)*/
	private static final String SC_T_MOBILE_ORDER_SC_SELECT_003 = "SC_SELECT_003";

	/** SQL定義キー(SC_SELECT_014)*/
	private static final String SC_T_EM_ODR_SRINF_SC_SELECT_014 = "SC_SELECT_014";

	/** SQL定義キー(SC_UPDATE_004)*/
	private static final String SC_T_MOBILE_ORDER_SC_UPDATE_004 = "SC_UPDATE_004";

	/** SQL定義キー(SC_UPDATE_004)*/
	private static final String SC_T_EM_ODR_SRINF_SC_UPDATE_004 = "SC_UPDATE_004";

	/** SQL定義キー(SC_SELECT_013)*/
	private static final String SC_T_EM_ODR_SRINF_SC_SELECT_013 = "SC_SELECT_013";

	/** SQL定義キー(SC_SELECT_002)*/
	private static final String KK_T_SVC_KEI_SC_SELECT_002 = "SC_SELECT_002";

	/** テーブルアクセスクラス(モバイルオーダ)*/
	private JBSbatSQLAccess db_SC_T_MOBILE_ORDER = null;

	/** テーブルアクセスクラス(ＥＭオーダ送受信情報)*/
	private JBSbatSQLAccess db_SC_T_EM_ODR_SRINF = null;
	
	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約＜ｅｏモバイル＞)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_EOMOBA = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** テーブル(ＵＱオーダ)*/
	private static final String D_TBL_NAME_SC_T_UQ_ORDER = "SC_T_UQ_ODR_SRINF";

	/** テーブル(ＳＰＯＴオーダ送受信情報)*/
	private static final String D_TBL_NAME_SC_T_SPOT_ODR_SRINF = "SC_T_SPOT_ODR_SRINF";
	
	/** テーブルアクセスクラス(ＵＱオーダ送受信情報) */
	private JBSbatSQLAccess db_SC_T_UQ_ODR_SRINF = null;
	
	/** テーブルアクセスクラス(ＳＰＯＴオーダ送受信情報) */
	private JBSbatSQLAccess db_SC_T_SPOT_ODR_SRINF = null;
	

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_SC_T_MOBILE_ORDER = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_MOBILE_ORDER);
		db_SC_T_EM_ODR_SRINF = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_EM_ODR_SRINF);
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVC_KEI_EOMOBA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_EOMOBA);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		db_SC_T_UQ_ODR_SRINF = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_UQ_ORDER);
		db_SC_T_SPOT_ODR_SRINF = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_SPOT_ODR_SRINF);
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		// 入力レコードに異常があった場合
		if(inMap.isInputErrorFlg())
		{
			// エラー処理　入力レコードに異常がありました。
			throw new JBSbatBusinessError("ESCB0060CE");
		}
		// 属性チェックを行う。 EM設定年月日2,EM設定年月日3
		HashMap<String , String> hm = new HashMap<String , String>();
		hm.put("TXT-SCIFE022-.SVC_KEI_NO", (String)inMap.get(JBSbatSCIFE022.SVC_KEI_NO));
		hm.put("TXT-SCIFE022-.EM_SET_YMD_2", (String)inMap.get(JBSbatSCIFE022.EM_SET_YMD_2));
		hm.put("TXT-SCIFE022-.SVC_KEI_NO", (String)inMap.get(JBSbatSCIFE022.SVC_KEI_NO));
		hm.put("TXT-SCIFE022-.EM_SET_YMD_3", (String)inMap.get(JBSbatSCIFE022.EM_SET_YMD_3));
		if (!isSingleCheckSCIFE022_NG(inMap.getMap(), hm)) 
		{
			throw new JBSbatBusinessError();
		}
	
		// EMオーダ送受信情報
		//パラメータを設定する
		String[] param1 = {
				inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD),			// EM契約者コード
				inMap.getString(JBSbatSCIFE022.SVC_KEI_NO),				// サービス契約番号
				JSCStrConstant.YOKYU_SBT_DSL,							// 要求種別コード(解約)(03)を設定
				JSCStrConstant.MOBILE_ODER_CD_DSL,						// モバイルオーダコード 解約(12)を設定
				JSCStrConstant.MOBILE_YOKYU_DSL_UK_INFO					// モバイル要求種別コード(解約情報)(023)を設定
		};
		 // select文実行
		executeSC_T_EM_ODR_SRINF_SC_SELECT_014(param1);
		
		JBSbatCommonDBInterface emSelectData = new JBSbatCommonDBInterface();	
		
		String renkeiSeq = null;
		
		// 他解約存在フラグ
		boolean dslFlg = false;
		
		// 検索結果を格納
		emSelectData = this.db_SC_T_EM_ODR_SRINF.selectNext();
		
		// 検索結果が存在しない場合
		if (null == emSelectData)
		{
			// ---要求元アプリ種別コード取得
			
			String[] hojinCheckWhere = {
					inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD),	// EM契約者コード
					inMap.getString(JBSbatSCIFE022.SVC_KEI_NO),		// サービス契約番号
			};
			// 法人チェックＳＱＬ実行
			executeSC_T_EM_ODR_SRINF_SC_SELECT_013(hojinCheckWhere);
			// 一件目取得
			JBSbatCommonDBInterface emCheckData = this.db_SC_T_EM_ODR_SRINF.selectNext();
			
			if (null == emCheckData)
			{
				// エラー処理
				super.logPrint.printBusinessErrorLog("ESCB0100CE",
						new String[] {inMap.getString(JBSbatSCIFE022.SVC_KEI_NO),
						inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD),
						D_TBL_NAME_SC_T_EM_ODR_SRINF});
				throw new JBSbatBusinessError();
			}
			String yokyuMtAplSbtCd = emCheckData.getString(JBSbatSC_T_EM_ODR_SRINF.YOKYU_MT_APL_SBT_CD);
			
			// ---データの登録処理を実行する
			
			// マイナーアラーム
			super.logPrint.printBusinessErrorLog("ESCB0730AI",
					new String[] {inMap.getString(JBSbatSCIFE022.SVC_KEI_NO),
					inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD)});
			
			String mobileOrderNo = null;
			String timestamp = JCCBatCommon.getSysDateTimeStamp();
			// モバイルオーダ送受信情報
			mobileOrderNo = insMobileOrder(inMap, timestamp, yokyuMtAplSbtCd);
			// EMオーダ送受信情報
			insEmOdrSrif(inMap, mobileOrderNo, timestamp, yokyuMtAplSbtCd);
			
			return null;
		}
		
		while (null != emSelectData)
		{
			// SODステータス=004:応答正常
			// かつモバイル要求種別コード=022:解約受付結果が存在するかチェック
			String sodStat = emSelectData.getString(JBSbatSC_T_EM_ODR_SRINF.SOD_STAT);
			String mobileYokyuSbtCd = emSelectData.getString(JBSbatSC_T_EM_ODR_SRINF.MOBILE_YOKYU_SBT_CD);
			if (JSCStrConstant.SOD_STAT_ACK_NORMAL.equals(sodStat) && JSCStrConstant.MOBILE_YOKYU_DSL_UK_RSLT.equals(mobileYokyuSbtCd))
			{
				dslFlg = true;
				break;
			}
			// 次の情報を取得する
			emSelectData = this.db_SC_T_EM_ODR_SRINF.selectNext();
		}
		
		// 結果を取得
		if(true == dslFlg)
		{
			renkeiSeq = (String)emSelectData.getString(JBSbatSC_T_EM_ODR_SRINF.SOD_RENKEI_SEQ);
		}
		// SOD連携通番が存在する場合
		if(renkeiSeq != null)
		{
			// モバイルオーダ
			// select文実行
			executeSC_T_MOBILE_ORDER_SC_SELECT_003(new String[] {renkeiSeq});
			
			JBSbatCommonDBInterface moSelectData = new JBSbatCommonDBInterface();
			
			// 検索結果を格納
			moSelectData = this.db_SC_T_MOBILE_ORDER.selectNext();
			
			// EMオーダ送受信情報テーブルのSOD連携通番がモバイルオーダのモバイルオーダ番号に存在しない場合
			if(moSelectData == null)
			{
				// エラー処理
				super.logPrint.printBusinessErrorLog("ESCB0100CE",
						new String[] {inMap.getString(JBSbatSCIFE022.SVC_KEI_NO),
						inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD),
						D_TBL_NAME_SC_T_MOBILE_ORDER});
				throw new JBSbatBusinessError();
			}
		}
		else // SOD連携通番がnullの場合
		{
			// エラー処理
			super.logPrint.printBusinessErrorLog("ESCB0100CE",
					new String[] {inMap.getString(JBSbatSCIFE022.SVC_KEI_NO),
					inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD),
					D_TBL_NAME_SC_T_EM_ODR_SRINF});
			throw new JBSbatBusinessError();
		}
		
		// 要求元アプリ種別を取得
		String yokyuMtAplSbtCd = emSelectData.getString("YOKYU_MT_APL_SBT_CD");
		
		// 要求元アプリ種別コードが「Claris」以外の場合
		if (!JSCStrConstant.YOKYU_SBT_CD_CLARIS.equalsIgnoreCase(yokyuMtAplSbtCd))
		{
			/** 【サービス契約排他制御】
			 *  サービス契約番号に該当するサービス契約排他制御を取得する。 */
			Object[] whereParam = new Object[1];
			whereParam[0] = inMap.getString(JBSbatSC_T_EM_ODR_SRINF.SVC_KEI_NO)
			;
			JBSbatCommonDBInterface svkeiExcCtrlMap = null;
			svkeiExcCtrlMap = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(whereParam);
			
			if (null == svkeiExcCtrlMap)
			{
				super.logPrint.printDebugLog("サービス契約排他制御にレコードが存在しません。");
				throw new JBSbatBusinessException("ESCB0490CW",
						new String[] {"サービス契約番号",
						inMap.getString("SVC_KEI_NO"),
						"サービス契約排他制御"});
			}
			
			// システム日付の取得
			String sysDateTimeStamp = JCCBatCommon.getSysDateTimeStamp();
			
			// サービス契約＜eoモバイル＞の更新
			updateKK_T_SVC_KEI_EOMOBA(inMap, sysDateTimeStamp);
		}
		
		// EMオーダ送受信情報更新処理
		String[] param2 = {
				// SET
				inMap.getString(JBSbatSCIFE022.TRN_DATE) + inMap.getString(JBSbatSCIFE022.TRN_TIME) + "000",		// SOD結果登録年月日時分秒+000
				JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN,									// SOD業務連携ステータス 業務連携待ちSOD応答済(003)を設定
				JCCBatCommon.getSysDateTimeStamp(),										// 更新年月日時分秒
				commonItem.getBatchUserId(),											// 更新オペレータアカウント
				inMap.getString(JBSbatSCIFE022.EM_SET_YMD_2),							// EM設定年月日2
				inMap.getString(JBSbatSCIFE022.EM_SET_YMD_3),							// EM設定年月日3
				JSCStrConstant.MOBILE_YOKYU_DSL_UK_INFO,								// モバイル要求種別コード 解約情報(023)を設定
				// WHERE
				inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD),							// EM契約者コード
				inMap.getString(JBSbatSCIFE022.SVC_KEI_NO),								// サービス契約者番号
				JSCStrConstant.SOD_STAT_ACK_NORMAL,										// SODステータス（応答正常）(004)を設定
				JSCStrConstant.YOKYU_SBT_DSL,											// 要求種別コード 解約(03)を設定
				JSCStrConstant.MOBILE_ODER_CD_DSL,										// モバイルオーダコード 解約(12)を設定
				JSCStrConstant.MOBILE_YOKYU_DSL_UK_RSLT,								// モバイル要求種別コード 解約受付結果(022)を設定
				JSCStrConstant.MK_FLG_YUKO												// 無効フラグ(0)を設定
		};
		// UPDATE文実行
		executeSC_T_EM_ODR_SRINF_SC_UPDATE_004(param2);
		
		// モバイルオーダ更新処理
		// パラメータを設定する
		String[] param3 = {
				// SET
				inMap.getString(JBSbatSCIFE022.TRN_DATE) + inMap.getString(JBSbatSCIFE022.TRN_TIME) + "000",	// モバイルオーダ結果登録年月日時分秒+000
				JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN,								// SOD業務連携ステータス 業務連携待ちSOD応答済(003)を設定
				JCCBatCommon.getSysDateTimeStamp(),									// 更新年月日時分秒
				commonItem.getBatchUserId(),										// 更新オペレータアカウント
				JSCStrConstant.MOBILE_YOKYU_DSL_UK_INFO,							// モバイル要求種別コード 解約情報(023)を設定
				// WHERE
				renkeiSeq,															// モバイルオーダ番号(=SOD連携通番)
		};
		// UPDATE文実行
		executeSC_T_MOBILE_ORDER_SC_UPDATE_004(param3);
		
		// ファイル出力がないので、nullを返却する		
		return null;
		
		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}


	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_SC_T_MOBILE_ORDER.close();
		db_SC_T_EM_ODR_SRINF.close();
		db_KK_T_SVKEI_EXC_CTRL.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVC_KEI_EOMOBA.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		db_SC_T_UQ_ODR_SRINF.close();
		db_SC_T_SPOT_ODR_SRINF.close();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * EMオーダ送受信情報登録処理
	 * @param inMap				入力電文
	 * @param mobileOrderNo		モバイルオーダ番号
	 * @param timestamp			システム日時
	 * @param yokyuMtAplSbtCd	要求元アプリ種別コード
	 * @throws Exception
	 */
	private void insEmOdrSrif(JBSbatServiceInterfaceMap inMap, String mobileOrderNo, String timestamp, String yokyuMtAplSbtCd) throws Exception
	{
		String[] setParam = new String[37];
		// 送受信情報管理番号
		setParam[0] = JSCBatCommon.getEmOrdSRInfNo(commonItem, db_SC_T_EM_ODR_SRINF);
		// SODステータス
		setParam[2] = JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN;
		// 要求元アプリ種別コード
		setParam[3] = yokyuMtAplSbtCd;
		// 要求種別コード
		setParam[4] = JSCStrConstant.YOKYU_SBT_DSL;
		// モバイルオーダコード
		setParam[5] = JSCStrConstant.MOBILE_ODER_CD_DSL;
		// ＳＯＤ送信プライオリティコード
		setParam[6] = "1";
		// サービス契約番号
		String svcKeiNo = inMap.getString(JBSbatSCIFE022.SVC_KEI_NO);
		setParam[7] = svcKeiNo;
		// スケジュール年月日
		setParam[8] = "";
		// ＳＯＤ連携通番
		setParam[9] = mobileOrderNo;
		// ＳＯＤ受付年月日時分秒
		setParam[12] = timestamp;
		// モバイル要求種別コード
		setParam[17] = JSCStrConstant.MOBILE_YOKYU_DSL_UK_INFO;
		// SOD業務連携ステータス
		setParam[18] = JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN;
		// ＥＭ契約者コード
		setParam[20] = inMap.getString(JBSbatSCIFE022.EM_KEISHA_CD);
		// ＥＭ事業者識別コード
		setParam[19] = JSCStrConstant.EM_JIGOSHA_SKBT_CD_IDO;
		// ＥＭ設定年月日１
		// ＥＭ設定年月日２
		setParam[22] = inMap.getString(JBSbatSCIFE022.EM_SET_YMD_2);
		// ＥＭ設定年月日３
		setParam[23] = inMap.getString(JBSbatSCIFE022.EM_SET_YMD_3);
		// SOD結果登録日時
		setParam[14] = inMap.getString(JBSbatSCIFE022.TRN_DATE) + inMap.getString(JBSbatSCIFE022.TRN_TIME) + "000";
		// SOD処理結果コード	設定しない
		// SOD処理結果詳細コード	設定しない
		
		executeSC_T_EM_ODR_SRINF_PKINSERT(setParam);
	}
	
	/**
	 * モバイルオーダ登録処理
	 * @param inMap				入力電文
	 * @param timestamp			システム日時
	 * @param yokyuMtAplSbtCd	要求元アプリ種別コード
	 * @return	モバイルオーダー番号
	 * @throws Exception
	 */
	private String insMobileOrder(JBSbatServiceInterfaceMap inMap, String timestamp, String yokyuMtAplSbtCd) throws Exception
	{
		
		String mobileOrderNo = null;
		String[] setParam = new String[36];
		
		// モバイルオーダ番号
		mobileOrderNo = JSCBatCommon.getMobileOrderNo(commonItem, db_SC_T_UQ_ODR_SRINF, db_SC_T_SPOT_ODR_SRINF, db_SC_T_EM_ODR_SRINF, db_SC_T_MOBILE_ORDER);
		setParam[0] = mobileOrderNo;
		// モバイルオーダステータス
		setParam[1] = JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN;
		// 要求元アプリ種別コード
		setParam[2] = yokyuMtAplSbtCd;
		// 要求種別コード
		setParam[3] = JSCStrConstant.YOKYU_SBT_DSL;
		// モバイルオーダコード
		setParam[4] = JSCStrConstant.MOBILE_ODER_CD_DSL;
		// サービス契約番号
		String svcKeiNo = inMap.getString(JBSbatSCIFE022.SVC_KEI_NO);
		setParam[5] = svcKeiNo;
		// サービス契約内訳番号
		setParam[6] = "";
		// 法人ｅｏ読替サービス契約番号
		setParam[8] = svcKeiNo;
		// モバイルオーダ受付年月日時分秒
		setParam[9] = timestamp;
		// スケジュール年月日
		setParam[10] = "";
		// モバイル要求種別コード
		setParam[12] = JSCStrConstant.MOBILE_YOKYU_DSL_UK_INFO;
		// SOD業務連携ステータス
		setParam[13] = JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN;
		// ＥＭ再販事業者様設定課金開始日　// 設定不要
		
		// モバイルオーダ結果取込年月日時分秒
		setParam[11] = inMap.getString(JBSbatSCIFE022.TRN_DATE) + inMap.getString(JBSbatSCIFE022.TRN_TIME) + "000";
		// 登録を実行する
		executeSC_T_MOBILE_ORDER_PKINSERT(setParam);
		
		return mobileOrderNo;
	}

	/**
	 * サービス契約<eoモバイル>の事業者課金開始年月日を更新する<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.ヘッダー部の出力を行います。<br>
	 * </pre>
	 * <p>
	 * @param inMap　入力電文
	 * @param sysDateTimeStamp　システム日時
	 * @throws Exception 
	 */
	private void updateKK_T_SVC_KEI_EOMOBA(JBSbatServiceInterfaceMap inMap, String sysDateTimeStamp) throws Exception
	{
		/** @サービス契約
		 *  サービス契約番号に該当するカレントレコードのKEY項目を取得する。 */
		
		Object[] whereParam = new Object[2];
		whereParam[0] = inMap.getString(JBSbatSC_T_EM_ODR_SRINF.SVC_KEI_NO);
		whereParam[1] = this.opeDate;
		
		JBSbatCommonDBInterface svKeiKeyMap = new JBSbatCommonDBInterface();
		this.executeKK_T_SVC_KEI_SC_SELECT_002(whereParam);
		svKeiKeyMap = db_KK_T_SVC_KEI.selectNext();
		
		if (null == svKeiKeyMap)
		{
			super.logPrint.printDebugLog("サービス契約にレコードが存在しません。");
			throw new JBSbatBusinessException("ESCB0490CW",
					new String[] {"サービス契約番号",
					inMap.getString("SVC_KEI_NO"),
					"サービス契約"});
		}
		
		/** Aサービス契約<eoモバイル>
		 *  サービス契約番号、世代登録年月日時分秒に該当するサービス契約<eoモバイル>を取得する */
		whereParam = new Object[2];
		whereParam[0] = svKeiKeyMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
		whereParam[1] = svKeiKeyMap.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM);
		JBSbatCommonDBInterface svKeiEoMbMap = executeKK_T_SVC_KEI_EOMOBA_PKSELECT(whereParam);
		
		if (null == svKeiEoMbMap)
		{
			super.logPrint.printDebugLog("サービス契約<eoモバイル>にレコードが存在しません。");
			throw new JBSbatBusinessException("ESCB0490CW",
					new String[] {"サービス契約番号",
					inMap.getString("SVC_KEI_NO"),
					"サービス契約<eoモバイル>"});
		}

		/** Bサービス契約<eoモバイル>
		 *  サービス契約<eoモバイル>の最新レコードを更新する */
		Object[] setParam = new Object[1];
		setParam[0] = inMap.get(JBSbatSCIFE022.EM_SET_YMD_3);
		executeKK_T_SVC_KEI_EOMOBA_PKUPDATE(setParam, whereParam);
		
		// サービス契約排他制御更新のため、同じKEYでもう一度SELECTする
		svKeiEoMbMap = executeKK_T_SVC_KEI_EOMOBA_PKSELECT(whereParam);
		
		/** Cサービス契約排他制御
		 *  サービス契約番号に該当するサービス契約排他制御の最終更新年月日時分秒を更新する。 */
		setParam = new Object[1];
		setParam[0] = svKeiEoMbMap.getString("UPD_DTM");
		this.executeKK_T_SVKEI_EXC_CTRL_PKUPDATE(setParam, whereParam);
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 *入力情報（ＥＭ異動情報受信（解約））の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-SCIFE022-.SVC_KEI_NO			ＥＭ異動情報受信（解約）.再販事業者様管理コード
	 *			 TXT-SCIFE022-.EM_SET_YMD_2			ＥＭ異動情報受信（解約）.解約日
	 *			 TXT-SCIFE022-.SVC_KEI_NO			ＥＭ異動情報受信（解約）.再販事業者様管理コード
	 *			 TXT-SCIFE022-.EM_SET_YMD_3			ＥＭ異動情報受信（解約）.課金停止日
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isSingleCheckSCIFE022_NG(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// 解約日項目チェック
		strValue = (String)rsMap.get("EM_SET_YMD_2");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("ESCB0090CE", new String[]{
															(String)itemvalueMap.get("TXT-SCIFE022-.SVC_KEI_NO"),
															(String)itemvalueMap.get("TXT-SCIFE022-.EM_SET_YMD_2")});
			return false;
		}

		// 課金停止日項目チェック
		strValue = (String)rsMap.get("EM_SET_YMD_3");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("ESCB0120CE", new String[]{
															(String)itemvalueMap.get("TXT-SCIFE022-.SVC_KEI_NO"),
															(String)itemvalueMap.get("TXT-SCIFE022-.EM_SET_YMD_3")});
			return false;
		}

		return true;
	}

	/**
	 * SQLKEY(SC_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	モバイルオーダ番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_MOBILE_ORDER_SC_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_SC_T_MOBILE_ORDER.selectBySqlDefine(paramList, SC_T_MOBILE_ORDER_SC_SELECT_003);
	}

	/**
	 * SQLKEY(SC_SELECT_014)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	EM契約者コード
	 *		 	モバイルオーダコード
	 *		 	要求種別コード
	 *		 	モバイル要求種別コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_EM_ODR_SRINF_SC_SELECT_014(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_SC_T_EM_ODR_SRINF.selectBySqlDefine(paramList, SC_T_EM_ODR_SRINF_SC_SELECT_014);
	}

	/**
	 * SQLKEY(SC_UPDATE_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	モバイルオーダ結果取込年月日時分秒
	 *		 	SOD業務連携ステータス
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	モバイル要求種別コード
	 *		 	モバイルオーダ番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_MOBILE_ORDER_SC_UPDATE_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		db_SC_T_MOBILE_ORDER.executeBySqlDefine(paramList, SC_T_MOBILE_ORDER_SC_UPDATE_004);
	}

	/**
	 * SQLKEY(SC_UPDATE_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	ＳＯＤ結果登録年月日時分秒
	 *		 	ＳＯＤ業務連携ステータス
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	ＥＭ設定年月日２
	 *		 	ＥＭ設定年月日３
	 *		 	モバイル要求種別コード
	 *		 	ＥＭ契約者コード
	 *		 	サービス契約番号
	 *		 	ＳＯＤステータス
	 *		 	要求種別コード
	 *		 	モバイルオーダコード
	 *		 	モバイル要求種別コード
	 *		 	無効フラグ
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_EM_ODR_SRINF_SC_UPDATE_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());

		// DBアクセスを実行します
		db_SC_T_EM_ODR_SRINF.executeBySqlDefine(paramList, SC_T_EM_ODR_SRINF_SC_UPDATE_004);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	送受信情報管理番号				SRINF_KANRI_NO
	 *		 	ＳＯＤ送信キー				SOD_SEND_KEY
	 *		 	ＳＯＤステータス				SOD_STAT
	 *		 	要求元アプリ種別コード				YOKYU_MT_APL_SBT_CD
	 *		 	要求種別コード				YOKYU_SBT_CD
	 *		 	モバイルオーダコード				MOBILE_ORDER_CD
	 *		 	ＳＯＤ送信プライオリティコード				SOD_SEND_PRIORITY_CD
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	スケジュール年月日				SCHEDULE_YMD
	 *		 	ＳＯＤ連携通番				SOD_RENKEI_SEQ
	 *		 	旧ＳＯＤ連携通番				OLD_SOD_RENKEI_SEQ
	 *		 	ＳＯＤ連絡データ				SOD_RRK_DATA
	 *		 	ＳＯＤ受付年月日時分秒				SOD_UK_DTM
	 *		 	ＳＯＤ投入年月日時分秒				SOD_TONYU_DTM
	 *		 	ＳＯＤ結果登録年月日時分秒				SOD_RSLT_ADD_DTM
	 *		 	ＳＯＤ処理結果コード				SOD_TRAN_RSLT_CD
	 *		 	ＳＯＤ処理結果詳細コード				SOD_TRAN_RSLT_DTAIL_CD
	 *		 	モバイル要求種別コード				MOBILE_YOKYU_SBT_CD
	 *		 	ＳＯＤ業務連携ステータス				SOD_WORK_RNKI_STAT
	 *		 	ＥＭ事業者識別コード				EM_JGYOSHA_SKBT_CD
	 *		 	ＥＭ契約者コード				EM_KEISHA_CD
	 *		 	ＥＭ設定年月日１				EM_SET_YMD_1
	 *		 	ＥＭ設定年月日２				EM_SET_YMD_2
	 *		 	ＥＭ設定年月日３				EM_SET_YMD_3
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_EM_ODR_SRINF_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SRINF_KANRI_NO", setParam[0]);
		setMap.setValue("SOD_SEND_KEY", setParam[1]);
		setMap.setValue("SOD_STAT", setParam[2]);
		setMap.setValue("YOKYU_MT_APL_SBT_CD", setParam[3]);
		setMap.setValue("YOKYU_SBT_CD", setParam[4]);
		setMap.setValue("MOBILE_ORDER_CD", setParam[5]);
		setMap.setValue("SOD_SEND_PRIORITY_CD", setParam[6]);
		setMap.setValue("SVC_KEI_NO", setParam[7]);
		setMap.setValue("SCHEDULE_YMD", setParam[8]);
		setMap.setValue("SOD_RENKEI_SEQ", setParam[9]);
		setMap.setValue("OLD_SOD_RENKEI_SEQ", setParam[10]);
		setMap.setValue("SOD_RRK_DATA", setParam[11]);
		setMap.setValue("SOD_UK_DTM", setParam[12]);
		setMap.setValue("SOD_TONYU_DTM", setParam[13]);
		setMap.setValue("SOD_RSLT_ADD_DTM", setParam[14]);
		setMap.setValue("SOD_TRAN_RSLT_CD", setParam[15]);
		setMap.setValue("SOD_TRAN_RSLT_DTAIL_CD", setParam[16]);
		setMap.setValue("MOBILE_YOKYU_SBT_CD", setParam[17]);
		setMap.setValue("SOD_WORK_RNKI_STAT", setParam[18]);
		setMap.setValue("EM_JGYOSHA_SKBT_CD", setParam[19]);
		setMap.setValue("EM_KEISHA_CD", setParam[20]);
		setMap.setValue("EM_SET_YMD_1", setParam[21]);
		setMap.setValue("EM_SET_YMD_2", setParam[22]);
		setMap.setValue("EM_SET_YMD_3", setParam[23]);
		setMap.setValue("ADD_DTM", setParam[24]);
		setMap.setValue("ADD_UNYO_YMD", setParam[25]);
		setMap.setValue("ADD_TRN_ID", setParam[26]);
		setMap.setValue("ADD_OPEACNT", setParam[27]);
		setMap.setValue("UPD_DTM", setParam[28]);
		setMap.setValue("UPD_UNYO_YMD", setParam[29]);
		setMap.setValue("UPD_TRN_ID", setParam[30]);
		setMap.setValue("UPD_OPEACNT", setParam[31]);
		setMap.setValue("DEL_DTM", setParam[32]);
		setMap.setValue("DEL_UNYO_YMD", setParam[33]);
		setMap.setValue("DEL_TRN_ID", setParam[34]);
		setMap.setValue("DEL_OPEACNT", setParam[35]);
		setMap.setValue("MK_FLG", setParam[36]);
	
		// DBアクセスを実行します
		db_SC_T_EM_ODR_SRINF.insertByPrimaryKeys(setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	モバイルオーダ番号				MOBILE_ORDER_NO
	 *		 	モバイルオーダステータス				MOBILE_ORDER_STAT
	 *		 	要求元アプリ種別コード				YOKYU_MT_APL_SBT_CD
	 *		 	要求種別コード				YOKYU_SBT_CD
	 *		 	モバイルオーダコード				MOBILE_ORDER_CD
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	法人サービス契約番号				HOJIN_SVC_KEI_NO
	 *		 	法人ｅｏ読替サービス契約番号				HJIN_EO_YKAE_SVKEI_NO
	 *		 	モバイルオーダ受付年月日時分秒				MOBILE_ORDER_UK_DTM
	 *		 	スケジュール年月日				SCHEDULE_YMD
	 *		 	モバイルオーダ結果取込年月日時分秒				MOBILE_ODR_RSLT_TRKM_DTM
	 *		 	モバイル要求種別コード				MOBILE_YOKYU_SBT_CD
	 *		 	ＳＯＤ業務連携ステータス				SOD_WORK_RNKI_STAT
	 *		 	ＳＹＳＩＤ				SYSID
	 *		 	ＳＰＯＴ＿セッション数変更有無				SPOT_SESSION_CNT_CHGUM
	 *		 	ＳＰＯＴ＿セッション数				SPOT_SESSION_CNT
	 *		 	ＵＱ認証ＩＤ				UQ_NINSHO_ID
	 *		 	ＵＱ認証ＩＤパスワード				UQ_NINSHO_ID_PWD
	 *		 	ＵＱＭＡＣアドレス				UQ_MACAD
	 *		 	ＵＱＲＯＭ種別コード				UQ_ROM_SBT_CD
	 *		 	ＥＭ再販事業者様設定課金開始日				EM_SIJGSHA_SET_CHRG_STAYMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_MOBILE_ORDER_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("MOBILE_ORDER_NO", setParam[0]);
		setMap.setValue("MOBILE_ORDER_STAT", setParam[1]);
		setMap.setValue("YOKYU_MT_APL_SBT_CD", setParam[2]);
		setMap.setValue("YOKYU_SBT_CD", setParam[3]);
		setMap.setValue("MOBILE_ORDER_CD", setParam[4]);
		setMap.setValue("SVC_KEI_NO", setParam[5]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[6]);
		setMap.setValue("HOJIN_SVC_KEI_NO", setParam[7]);
		setMap.setValue("HJIN_EO_YKAE_SVKEI_NO", setParam[8]);
		setMap.setValue("MOBILE_ORDER_UK_DTM", setParam[9]);
		setMap.setValue("SCHEDULE_YMD", setParam[10]);
		setMap.setValue("MOBILE_ODR_RSLT_TRKM_DTM", setParam[11]);
		setMap.setValue("MOBILE_YOKYU_SBT_CD", setParam[12]);
		setMap.setValue("SOD_WORK_RNKI_STAT", setParam[13]);
		setMap.setValue("SYSID", setParam[14]);
		setMap.setValue("SPOT_SESSION_CNT_CHGUM", setParam[15]);
		setMap.setValue("SPOT_SESSION_CNT", setParam[16]);
		setMap.setValue("UQ_NINSHO_ID", setParam[17]);
		setMap.setValue("UQ_NINSHO_ID_PWD", setParam[18]);
		setMap.setValue("UQ_MACAD", setParam[19]);
		setMap.setValue("UQ_ROM_SBT_CD", setParam[20]);
		setMap.setValue("EM_SIJGSHA_SET_CHRG_STAYMD", setParam[21]);
		setMap.setValue("ADD_DTM", setParam[22]);
		setMap.setValue("ADD_UNYO_YMD", setParam[23]);
		setMap.setValue("ADD_TRN_ID", setParam[24]);
		setMap.setValue("ADD_OPEACNT", setParam[25]);
		setMap.setValue("UPD_DTM", setParam[26]);
		setMap.setValue("UPD_UNYO_YMD", setParam[27]);
		setMap.setValue("UPD_TRN_ID", setParam[28]);
		setMap.setValue("UPD_OPEACNT", setParam[29]);
		setMap.setValue("DEL_DTM", setParam[30]);
		setMap.setValue("DEL_UNYO_YMD", setParam[31]);
		setMap.setValue("DEL_TRN_ID", setParam[32]);
		setMap.setValue("DEL_OPEACNT", setParam[33]);
		setMap.setValue("MK_FLG", setParam[34]);
	
		// DBアクセスを実行します
		db_SC_T_MOBILE_ORDER.insertByPrimaryKeys(setMap);
	}

	/**
	 * SQLKEY(SC_SELECT_013)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	EM契約者コード
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_EM_ODR_SRINF_SC_SELECT_013(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_SC_T_EM_ODR_SRINF.selectBySqlDefine(paramList, SC_T_EM_ODR_SRINF_SC_SELECT_013);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVKEI_EXC_CTRL_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_KK_T_SVKEI_EXC_CTRL.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(SC_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_SC_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_SC_SELECT_002);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVC_KEI_EOMOBA_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_SVC_KEI_EOMOBA.selectByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	事業者課金停止年月日				JGS_CHRG_STP_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_EOMOBA_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("JGS_CHRG_STP_YMD", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_EOMOBA.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	最終更新年月日時分秒				LAST_UPD_DTM
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_EXC_CTRL_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("LAST_UPD_DTM", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);

		// DBアクセスを実行します
		db_KK_T_SVKEI_EXC_CTRL.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}