/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSBatSCEMIdoIfTmpstpTrkm
*	ソースファイル名	：JBSBatSCEMIdoIfTmpstpTrkm.java
*	作成者				：富士通　
*	作成日				：2011年07月22日
*＜機能概要＞
*　ＥＭ異動情報データ（一時中断）取込部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/22   富士通		新規作成
*********************************************************************/
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.util.file.JBSbatSCIFE022;
import eo.business.util.file.JBSbatSCIFE023;
import eo.business.util.table.JBSbatSC_T_EM_ODR_SRINF;
import eo.common.constant.JSCStrConstant;
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.db.JBSbatSQLAccess;
import eo.framework.util.JBSbatCheckUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSBatSCEMIdoIfTmpstpTrkm extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(ＥＭオーダ送受信情報)*/
	private static final String D_TBL_NAME_SC_T_EM_ODR_SRINF = "SC_T_EM_ODR_SRINF";

	/** テーブル(モバイルオーダ)*/
	private static final String D_TBL_NAME_SC_T_MOBILE_ORDER = "SC_T_MOBILE_ORDER";

	/** SQL定義キー(SC_SELECT_014)*/
	private static final String SC_T_EM_ODR_SRINF_SC_SELECT_014 = "SC_SELECT_014";

	/** SQL定義キー(SC_SELECT_003)*/
	private static final String SC_T_MOBILE_ORDER_SC_SELECT_003 = "SC_SELECT_003";

	/** SQL定義キー(SC_UPDATE_004)*/
	private static final String SC_T_EM_ODR_SRINF_SC_UPDATE_004 = "SC_UPDATE_004";

	/** SQL定義キー(SC_UPDATE_004)*/
	private static final String SC_T_MOBILE_ORDER_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";

	/** テーブルアクセスクラス(ＥＭオーダ送受信情報)*/
	private JBSbatSQLAccess db_SC_T_EM_ODR_SRINF = null;

	/** テーブルアクセスクラス(モバイルオーダ)*/
	private JBSbatSQLAccess db_SC_T_MOBILE_ORDER = 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;
	
	/** 空白8文字 */
	private static final String SPACE_8 = "        ";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_SC_T_EM_ODR_SRINF = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_EM_ODR_SRINF);
		db_SC_T_MOBILE_ORDER = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_MOBILE_ORDER);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		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");
		}
		// 属性チェックを行う。
		HashMap<String , String> hm = new HashMap<String , String>();
		hm.put("TXT-SCIFE023-INF1.SVC_KEI_NO", (String)inMap.get(JBSbatSCIFE023.SVC_KEI_NO));
		hm.put("TXT-SCIFE023-INF1.EM_SET_YMD_2", (String)inMap.get(JBSbatSCIFE023.EM_SET_YMD_2));
		if (!isSingleCheckSCIFE023_INF1(inMap.getMap(), hm)) 
		{
			throw new JBSbatBusinessError();
		}
	
		//EMオーダ送受信情報
		JBSbatCommonDBInterface dbSelectList1 = new JBSbatCommonDBInterface();
			
		//パラメータを設定する
		dbSelectList1.setValue(inMap.getString(JBSbatSCIFE023.EM_KEISHA_CD));			//EM契約者コード
		dbSelectList1.setValue(inMap.getString(JBSbatSCIFE023.SVC_KEI_NO));				//サービス契約者番号
		dbSelectList1.setValue(JSCStrConstant.YOKYU_SBT_TMP_STP);						//要求種別コード(一時停止)(10)を設定
		dbSelectList1.setValue(JSCStrConstant.MOBILE_ODER_CD_STP);						//モバイルオーダコード 一時中断(13)を設定
		dbSelectList1.setValue(JSCStrConstant.MOBILE_YOKYU_TMP_STP_UK_INFO);			//モバイル要求種別コード(一時中断情報)(033)
		
		 //select文実行
		executeSC_T_EM_ODR_SRINF_SC_SELECT_014(dbSelectList1.getList().toArray());
		
		JBSbatCommonDBInterface emSelectData = new JBSbatCommonDBInterface();	
		
		String renkeiSeq = null;
		
		// 他中断存在フラグ
		boolean stpFlg = false;
		
		//検索結果を格納
		emSelectData = this.db_SC_T_EM_ODR_SRINF.selectNext();
		
		// 検索結果が存在しない場合
		if (null == emSelectData)
		{
			// ---要求元アプリ種別コード取得
			
			String[] hojinCheckWhere = {
					inMap.getString(JBSbatSCIFE023.EM_KEISHA_CD),	// EM契約者コード
					inMap.getString(JBSbatSCIFE023.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(JBSbatSCIFE023.SVC_KEI_NO),
						inMap.getString(JBSbatSCIFE023.EM_KEISHA_CD),
						D_TBL_NAME_SC_T_MOBILE_ORDER});
				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(JBSbatSCIFE023.SVC_KEI_NO),
					inMap.getString(JBSbatSCIFE023.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:応答正常
			// かつモバイル要求種別コード=032:一時中断受付結果が存在するかチェック
			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_TMP_STP_UK_RSLT.equals(mobileYokyuSbtCd))
			{
				stpFlg = true;
				break;
			}
			// 次の情報を取得する
			emSelectData = this.db_SC_T_EM_ODR_SRINF.selectNext();
		}
		
		//結果を取得
		if(true == stpFlg)
		{
			renkeiSeq = (String)emSelectData.getString(JBSbatSC_T_EM_ODR_SRINF.SOD_RENKEI_SEQ);
		}
		//SOD連携通番がnullでない場合
		if(renkeiSeq != null)
		{
			//モバイルオーダ
			JBSbatCommonDBInterface dbSelectList2 = new JBSbatCommonDBInterface();
				
			//パラメータを設定する
			dbSelectList2.setValue(renkeiSeq);										//SOD連携通番＝モバイルオーダ番号
		
			//select文実行
			executeSC_T_MOBILE_ORDER_SC_SELECT_003(dbSelectList2.getList().toArray());
			
			JBSbatCommonDBInterface moSelectData = new JBSbatCommonDBInterface();
			
			//検索結果を格納
			moSelectData = this.db_SC_T_MOBILE_ORDER.selectNext();
			
			//EMオーダ送受信情報テーブルのSOD連携通番がモバイルオーダのモバイルオーダ番号に存在しない場合
			if(moSelectData == null)
			{
				//エラー処理
				/*
				throw new JBSbatBusinessException("ESCB0100CE", 
						new String[] {inMap.getString("SVC_KEI_NO") , inMap.getString("EM_KEISHA_CD"), "モバイルオーダ"});
				*/
				super.logPrint.printBusinessErrorLog("ESCB0100CE",
						new String[] {inMap.getString(JBSbatSCIFE023.SVC_KEI_NO), inMap.getString(JBSbatSCIFE023.EM_KEISHA_CD), "モバイルオーダ"});
				throw new JBSbatBusinessError();
			}
		}
		else //SOD連携通番がnullの場合
		{
			//エラー処理
			/*
			throw new JBSbatBusinessException("ESCB0100CE", 
					new String[] {inMap.getString("SVC_KEI_NO") , inMap.getString("EM_KEISHA_CD"), "モバイルオーダ"});
			*/
			super.logPrint.printBusinessErrorLog("ESCB0100CE",
					new String[] {inMap.getString(JBSbatSCIFE023.SVC_KEI_NO), inMap.getString(JBSbatSCIFE023.EM_KEISHA_CD), "モバイルオーダ"});
			throw new JBSbatBusinessError();
		}
		
		
		//EMオーダ送受信情報更新処理
		
		JBSbatCommonDBInterface dbList1 = new JBSbatCommonDBInterface();
		// SET
		dbList1.setValue(inMap.getString(JBSbatSCIFE023.TRN_DATE) + inMap.getString(JBSbatSCIFE023.TRN_TIME) + "000");		//SOD結果登録年月日時分秒＋０００
		dbList1.setValue(JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN);										//ＳＯＤ業務連携ステータス 業務連携待ちSOD応答済(003)を設定
		dbList1.setValue(JCCBatCommon.getSysDateTimeStamp());											//更新年月日時分秒
		dbList1.setValue(commonItem.getBatchUserId());													//更新オペレータアカウント
		dbList1.setValue(inMap.getString(JBSbatSCIFE023.EM_SET_YMD_2));									//EM設定年月日2
		dbList1.setValue(SPACE_8);																	//半角空白8桁
		dbList1.setValue(JSCStrConstant.MOBILE_YOKYU_TMP_STP_UK_INFO);									//モバイル要求種別コード 一時中断情報(033)を設定
		// WHERE
		dbList1.setValue(inMap.getString(JBSbatSCIFE023.EM_KEISHA_CD));									//EM契約者コード
		dbList1.setValue(inMap.getString(JBSbatSCIFE023.SVC_KEI_NO));									//サービス契約者番号
		dbList1.setValue(JSCStrConstant.SOD_STAT_ACK_NORMAL);											// SODステータス（応答正常）(004)を設定
		dbList1.setValue(JSCStrConstant.YOKYU_SBT_TMP_STP);												//要求種別コード 一時停止(10)を設定
		dbList1.setValue(JSCStrConstant.MOBILE_ODER_CD_STP);											//モバイルオーダコード 一時中断(13)を設定
		dbList1.setValue(JSCStrConstant.MOBILE_YOKYU_TMP_STP_UK_RSLT);									//モバイル要求種別コード 一時中断受付結果(032)を設定
		dbList1.setValue(JSCStrConstant.MK_FLG_YUKO);													//無効フラグ(0)を設定
		
		//UPDATE文実行
		executeSC_T_EM_ODR_SRINF_SC_UPDATE_004(dbList1.getList().toArray());
		
		//モバイルオーダ更新処理
		
		JBSbatCommonDBInterface dbList2 = new JBSbatCommonDBInterface();
		
		//パラメータを設定する
		// SET
		dbList2.setValue(inMap.getString(JBSbatSCIFE023.TRN_DATE)
				+ inMap.getString(JBSbatSCIFE023.TRN_TIME) + "000");	//モバイルオーダ結果登録年月日時分秒＋０００
		dbList2.setValue(JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN);		//ＳＯＤ業務連携ステータス 業務連携待ちSOD応答済(003)を設定
		dbList2.setValue(JCCBatCommon.getSysDateTimeStamp());			//更新年月日時分秒
		dbList2.setValue(commonItem.getBatchUserId());					//更新オペレータアカウント
		dbList2.setValue(JSCStrConstant.MOBILE_YOKYU_TMP_STP_UK_INFO);		//モバイル要求種別コード 一時中断情報(033)を設定
		// WHERE
		dbList2.setValue(renkeiSeq);									//モバイルオーダ番号（＝ＳＯＤ連携通番）
		
		//UPDATE文実行
		executeSC_T_MOBILE_ORDER_SC_UPDATE_004(dbList2.getList().toArray());
		
		//ファイル出力がないので、nullを返却する		
		return null;

		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_SC_T_EM_ODR_SRINF.close();
		db_SC_T_MOBILE_ORDER.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_TMP_STP;
		// モバイルオーダコード
		setParam[5] = JSCStrConstant.MOBILE_ODER_CD_STP;
		// ＳＯＤ送信プライオリティコード
		setParam[6] = "1";
		// サービス契約番号
		String svcKeiNo = inMap.getString(JBSbatSCIFE023.SVC_KEI_NO);
		setParam[7] = svcKeiNo;
		// スケジュール年月日
		setParam[8] = "";
		// ＳＯＤ連携通番
		setParam[9] = mobileOrderNo;
		// ＳＯＤ受付年月日時分秒
		setParam[12] = timestamp;
		// モバイル要求種別コード
		setParam[17] = JSCStrConstant.MOBILE_YOKYU_TMP_STP_UK_INFO;
		// SOD業務連携ステータス
		setParam[18] = JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN;
		// ＥＭ契約者コード
		setParam[20] = inMap.getString(JBSbatSCIFE023.EM_KEISHA_CD);
		// ＥＭ事業者識別コード
		setParam[19] = JSCStrConstant.EM_JIGOSHA_SKBT_CD_IDO;
		// ＥＭ設定年月日１
		// ＥＭ設定年月日２
		setParam[22] = inMap.getString(JBSbatSCIFE022.EM_SET_YMD_2);
		// ＥＭ設定年月日３
		setParam[23] = SPACE_8;
		// SOD結果登録日時
		setParam[14] = inMap.getString(JBSbatSCIFE023.TRN_DATE) + inMap.getString(JBSbatSCIFE023.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_TMP_STP;
		// モバイルオーダコード
		setParam[4] = JSCStrConstant.MOBILE_ODER_CD_STP;
		// サービス契約番号
		String svcKeiNo = inMap.getString(JBSbatSCIFE023.SVC_KEI_NO);
		setParam[5] = svcKeiNo;
		// サービス契約内訳番号
		setParam[6] = "";
		// 法人ｅｏ読替サービス契約番号
		setParam[8] = svcKeiNo;
		// モバイルオーダ受付年月日時分秒
		setParam[9] = timestamp;
		// スケジュール年月日
		setParam[10] = "";
		// モバイル要求種別コード
		setParam[12] = JSCStrConstant.MOBILE_YOKYU_TMP_STP_UK_INFO;
		// SOD業務連携ステータス
		setParam[13] = JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN;
		// ＥＭ再販事業者様設定課金開始日　// 設定不要
		
		// モバイルオーダ結果取込年月日時分秒
		setParam[11] = inMap.getString(JBSbatSCIFE023.TRN_DATE) + inMap.getString(JBSbatSCIFE023.TRN_TIME) + "000";
		// 登録を実行する
		executeSC_T_MOBILE_ORDER_PKINSERT(setParam);
		
		return mobileOrderNo;
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 *入力情報（ＥＭ異動情報受信（一時中断））の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-SCIFE023-INF1.SVC_KEI_NO			ＥＭ異動情報受信（一時中断）.サービス契約番号
	 *			 TXT-SCIFE023-INF1.EM_SET_YMD_2			ＥＭ異動情報受信（一時中断）.ＥＭ設定年月日２
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isSingleCheckSCIFE023_INF1(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-SCIFE023-INF1.SVC_KEI_NO"),
															(String)itemvalueMap.get("TXT-SCIFE023-INF1.EM_SET_YMD_2")});
			return false;
		}

		return true;
	}

	/**
	 * 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_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_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);
	}

	/**
	 * 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);
	}

	/**
	 * 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);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
