/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKAutoShosaChk
*	ソースファイル名	：JBSbatKKAutoShosaChk.java
*	作成者				：富士通　
*	作成日				：2011年05月24日
*＜機能概要＞
*　自動照査チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/05/24   富士通		新規作成
*	v1.00.01	2012/02/28   富士通		ST2-2012-0000272
*	v4.00.01	2012/07/09   FJ)藤本	ANK-0397-00-00_申込書番号の発番検討における対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.util.table.JBSbatKK_T_AUTO_SHOSA_RSLT;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.log.JBSbatLogPrintControl;
import eo.framework.util.JBSbatOracleSeqUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* WEB、電話、量販店からのサービス申込分について、自動照査対象となるサービス契約情報を抽出し、
* その情報をインプットとしてサービス契約照査チェックを呼び出し、自動照査チェック結果が
* 「照査ＯＫ」となった場合は場合はサービス契約情報と返却された照査エラー情報を「自動照査結果」テーブルに登録する。
* オプションサービス契約テーブル等へ反映する。 <p> 
*<BR>
* @author 富士通
*/
public class JBSbatKKAutoShosaChk extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(自動照査結果)*/
	private static final String D_TBL_NAME_KK_T_AUTO_SHOSA_RSLT = "KK_T_AUTO_SHOSA_RSLT";
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";
	//2012.02.28 Start
	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";
	//2012.02.28 End

	/** テーブルアクセスクラス(自動照査結果)*/
	private JBSbatSQLAccess db_KK_T_AUTO_SHOSA_RSLT = null;
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	
	//2012.02.28 Start
	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;
	//2012.02.28 End
	
	/** SQL定義キー(KK_UPDATE_003)*/
	private static final String KK_T_SVC_KEI_KK_UPDATE_003 = "KK_UPDATE_003";
	//2012.02.28 Start
	// 2012-06-11 IT1-2012-0000786 Start
//	/** SQL定義キー(KK_UPDATE_001)*/
//	private static final String KK_T_SVKEI_EXC_CTRL_KK_UPDATE_001 = "KK_UPDATE_001";
	/** SQL定義キー(KK_UPDATE_002)*/
	private static final String KK_T_SVKEI_EXC_CTRL_KK_UPDATE_002 = "KK_UPDATE_002";
	// 2012-06-11 IT1-2012-0000786 End
	//2012.02.28 End
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 自動照査結果番号(シーケンス) */
	private static final String SEQ_AUTO_SHOSA_RSLT_NO = "SEQ_AUTO_SHOSA_RSLT_NO";
	/** 自動照査結果コード(自動照査可(キー情報))*/
	private static final String AUTO_SHOSA_CHK_OK_KEY = "00";
	/** 自動照査結果コード(自動照査不可(キー情報))*/
	private static final String AUTO_SHOSA_CHK_NG_KEY = "10";
	/** 自動照査結果コード(自動照査不可(データ情報))*/
	private static final String AUTO_SHOSA_CHK_NG_DATA = "11";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_AUTO_SHOSA_RSLT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_AUTO_SHOSA_RSLT);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		//2012.02.28 Start
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
		//2012.02.28 End
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		//サービス契約照査チェック(API)への結果を受け取る変数です。
		ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
		
		//サービス契約照査チェック(API)への引数を設定し,呼び出します。
		list = svcKeiShosaCnkCall(inMap);
		
		if(list.isEmpty())
		{
			//自動照査結果テーブルにサービス契約情報を登録します。
			insertASR(AUTO_SHOSA_CHK_OK_KEY, inMap, null, null);
		}
		else
		{
			//自動照査結果テーブルにサービス契約情報を登録します。
			insertASR(AUTO_SHOSA_CHK_NG_KEY, inMap, null, null);
			//for(int i = 0; i <= list.size(); i++)
			for(int i = 0; i < list.size(); i++)
			{
				//照査エラー情報の件数分、自動照査結果テーブルにサービス契約情報・照査エラー情報を登録します。
				insertASR(AUTO_SHOSA_CHK_NG_DATA, inMap, list.get(i).get("err_sbt_cd"), list.get(i).get("err_msg_id"));
				
				//TEST
				//照査エラー情報の件数分、自動照査結果テーブルにサービス契約情報・照査エラー情報を登録します。
//				insertASR(AUTO_SHOSA_CHK_NG_DATA, inMap, list.get(i).get("errSbt" + Integer.toString(i + 1)), list.get(i).get("errCd" + Integer.toString(i + 1)));
				//TEST
			}
			//2012.02.28 Start
			//サービス契約の自動照査処理状態コード更新
			String sysDateTime = JKKBatCommon.getSysDateTimeStamp();
			String svcKeiNo = inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO);
			//↓↓↓2012-05-16更新　処理ID対応　対応やり過ぎの是正↓↓↓
			//処理ＩＤ対応 2012.8.20 start
			//String[] param = new String[]{sysDateTime, batchUserId, svcKeiNo};
			String[] param = new String[]{svcKeiNo};
			//処理ＩＤ対応 2012.8.20 end
			//↑↑↑2012-05-16更新　処理ID対応　対応やり過ぎの是正↑↑↑
			//2012.02.28 End
			
			//自動照査NGのため自動照査処理状態コードを1に。
			executeKK_T_SVC_KEI_KK_UPDATE_003(param);
			
			//2012.02.28 Start
			//サービス契約排他制御を更新
			String[] param2 = new String[]{sysDateTime, svcKeiNo};
			// 2012-06-11 IT1-2012-0000786 Start
//			executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_001(param2);
			executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(param2);
			// 2012-06-11 IT1-2012-0000786 End
			//2012.02.28 End
		}
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_AUTO_SHOSA_RSLT.close();
		//2012.02.28 Start
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVKEI_EXC_CTRL.close();
		//2012.02.28 End
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	自動照査結果番号				AUTO_SHOSA_RSLT_NO
	 *		 	自動照査結果コード				AUTO_SHOSA_RSLT_CD
	 *		 	申込種別コード					MSKM_SBT_CD
	 *		 	申込年月日						MSKM_YMD
	 *		 	申込書番号						MSKMSHO_NO
	 *		 	申込明細番号					MSKM_DTL_NO
	 *		 	ＳＹＳＩＤ						SYSID
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービスコード					SVC_CD
	 *		 	料金グループコード				PRC_GRP_CD
	 *		 	料金コースコード				PCRS_CD
	 *		 	料金プランコード				PPLAN_CD
	 *		 	サービス契約更新年月日時分秒　	SVC_KEI_UPD_DTM
	 *		 	照査エラー種別コード			SHOSA_ERR_SBT_CD
	 *		 	照査エラーメッセージＩＤ		SHOSA_ERR_MSG_ID
	 *		 	認証ＩＤ						NINSHO_ID
	 *		 	初期ｅｏＩＤ					SHK_EOID
	 *		 	仮メールアドレス払出有無		KARI_MLAD_HRADSI_UM
	 *		 	オプトインメール設定有無		OPTINM_SET_UM
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント		ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント		UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント		DEL_OPEACNT
	 *		 	無効フラグ						MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_AUTO_SHOSA_RSLT_PKINSERT(Object[] setParam)
	throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("AUTO_SHOSA_RSLT_NO", setParam[0]);
		setMap.setValue("AUTO_SHOSA_RSLT_CD", setParam[1]);
		setMap.setValue("MSKM_SBT_CD", setParam[2]);
		setMap.setValue("MSKM_YMD", setParam[3]);
		setMap.setValue("MSKMSHO_NO", setParam[4]);
		// ANK-0397-00-00 2012.07.09 START
		// 申込書明細番号を追加（以降の項目はインデックスを修正）
		setMap.setValue("MSKMSHO_DTL_NO", setParam[5]);
		setMap.setValue("MSKM_DTL_NO", setParam[6]);
		setMap.setValue("SYSID", setParam[7]);
		setMap.setValue("SVC_KEI_NO", setParam[8]);
		setMap.setValue("SVC_CD", setParam[9]);
		setMap.setValue("PRC_GRP_CD", setParam[10]);
		setMap.setValue("PCRS_CD", setParam[11]);
		setMap.setValue("PPLAN_CD", setParam[12]);
		setMap.setValue("SVC_KEI_UPD_DTM", setParam[13]);
		setMap.setValue("SHOSA_ERR_SBT_CD", setParam[14]);
		setMap.setValue("SHOSA_ERR_MSG_ID", setParam[15]);
		setMap.setValue("NINSHO_ID", setParam[16]);
		setMap.setValue("SHK_EOID", setParam[17]);
		setMap.setValue("KARI_MLAD_HRADSI_UM", setParam[18]);
		setMap.setValue("OPTINM_SET_UM", setParam[19]);
		setMap.setValue("ADD_DTM", setParam[20]);
		setMap.setValue("ADD_OPEACNT", setParam[21]);
		setMap.setValue("UPD_DTM", setParam[22]);
		setMap.setValue("UPD_OPEACNT", setParam[23]);
		setMap.setValue("DEL_DTM", setParam[24]);
		setMap.setValue("DEL_OPEACNT", setParam[25]);
		setMap.setValue("MK_FLG", setParam[26]);
		setMap.setValue("ASHOSART_LIST_OPUTZM_FLG", setParam[27]);
		// ANK-0397-00-00 2012.07.09 END
		// DBアクセスを実行します
		db_KK_T_AUTO_SHOSA_RSLT.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	//2012.02.28 Start
	/**
	 * SQLKEY(KK_UPDATE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	更新年月日
	 *		 	更新オペレータＩＤ
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	// 2012-06-11 IT1-2012-0000786 Start
//	private void executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_001(Object[] param) throws Exception
	private void executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(Object[] param) throws Exception
	// 2012-06-11 IT1-2012-0000786 End
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		// 2012-06-11 IT1-2012-0000786 Start
//		db_KK_T_SVKEI_EXC_CTRL.executeBySqlDefine(paramList, KK_T_SVKEI_EXC_CTRL_KK_UPDATE_001);
		db_KK_T_SVKEI_EXC_CTRL.executeBySqlDefine(paramList, KK_T_SVKEI_EXC_CTRL_KK_UPDATE_002);
		// 2012-06-11 IT1-2012-0000786 End
	}
	//2012.02.28 End

	/**
	 *  サービス契約照査チェック(API)を呼び出します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 *  1.サービス契約照査チェック(API)を呼び出す為のパラメータを設定します。<br>
	 *
	 *  2.サービス契約照査チェック(API)を呼び出します。<br>
	 * </pre>
	 * <p>
	 * @param  inMap サービス契約情報
	 * @return resultData 照査エラー情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap<String, String>> svcKeiShosaCnkCall(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, "KKSV0114");
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID, "KKSV0114OP");
		
		// サービスに渡す業務データを格納するMAPです。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		
		// inputMapに設定するデータをHashMapで構築する。
		HashMap<String, String> dataMap = new HashMap<String, String>();
		ArrayList<HashMap> shosaChkList = new ArrayList<HashMap>();

		// 起動元コード(01:オンライン、02:バッチ)
		dataMap.put("kido_cd", "02");
		// サービス契約番号
		dataMap.put("svc_kei_no", inMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO));
		
		String shosaChkNm = "trgt_data";
		String shosaChkListNm = "trgt_data_list";
		String rsltShosaChkListNm = "rslt_trgt_data_list";
		
		// inputMapにデータをSCのタイトルをキーとして設定する。
		shosaChkList.add(dataMap);
		HashMap<String, Object> shosaChkData = new HashMap<String, Object>();
		shosaChkData.put(shosaChkListNm, shosaChkList);
		inputMap.put(shosaChkNm, shosaChkData);
		// サービスの処理結果が格納されるMAP
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		//サービス契約照査チェック(API)を呼び出します。
		JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
		
		// サービスの処理結果が格納されたoutputMapから指定したキーで値を取得する。
		HashMap<String, Object> resultMap = (HashMap) outputMap.get(shosaChkNm);
		
		ArrayList<HashMap<String, Object>> wkShosaChkList = (ArrayList<HashMap<String, Object>>) resultMap.get(shosaChkListNm);
		
		ArrayList<HashMap<String, String>> resultData = (ArrayList<HashMap<String, String>>) wkShosaChkList.get(0).get(rsltShosaChkListNm);
//		//TEST
//		//スタブ生成
//		ArrayList<HashMap<String, String>> resultData = new ArrayList<HashMap<String, String>>();
//		resultData = stubexecute(inMap, logPrint);
		//TEST
		
//		ArrayList<HashMap<String, String>> resultData = new ArrayList<HashMap<String, String>>();
//		resultData.add(resultMap);
		
		return resultData;
	}

	/**
	 * 自動照査結果テーブルを登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目の配列を作ります。<br>
	 *
	 * 2.自動照査結果全項目登録処理を実行します。<br>
	 * </pre>
	 * <p>
	 * @param autoShosaRlstCd 自動照査結果コード。
	 * @param svcKeiInfoMap   サービス契約情報マップ。
	 * @param shosaErrSbtCd   照査エラー種別コード。
	 * @param shosaErrMsgId   照査エラーメッセージＩＤ。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void insertASR(String autoShosaRlstCd, JBSbatServiceInterfaceMap svcKeiInfoMap, String shosaErrSbtCd, String shosaErrMsgId) throws Exception
	{
		// 自動照査結果番号をシーケンスより取得
		String autoShosaRlstNo = JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), SEQ_AUTO_SHOSA_RSLT_NO);
		
		//2012.02.28 Start
		String[] setParam = {
				padZero(autoShosaRlstNo),                                                // 自動照査結果番号
				autoShosaRlstCd,                                                         // 自動照査結果コード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_SBT_CD),         // 申込種別コード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_YMD),            // 申込年月日
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKMSHO_NO),          // 申込書番号
				// ANK-0397-00-00 2012.07.09 START
				// 申込書明細番号を追加
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKMSHO_DTL_NO),      // 申込書明細番号
				// ANK-0397-00-00 2012.07.09 END
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.MSKM_DTL_NO),         // 申込明細番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SYSID),               // ＳＹＳＩＤ
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_KEI_NO),          // サービス契約番号
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.SVC_CD),              // サービスコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PRC_GRP_CD),          // 料金グループコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PCRS_CD),             // 料金コースコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.PPLAN_CD),            // 料金プランコード
				svcKeiInfoMap.getString(JBSbatKK_T_AUTO_SHOSA_RSLT.UPD_DTM),             // サービス契約更新年月日時分秒
				shosaErrSbtCd,                                                           // 照査エラー種別コード
				shosaErrMsgId,                                                           // 照査エラーメッセージＩＤ
				null,                                                                   // 認証ＩＤ
				null,                                                                   // 初期ｅｏＩＤ
				null,                                                                   // 仮メールアドレス払出有無
				null,                                                                    // オプトインメール設定有無
				JKKBatCommon.getSysDateTimeStamp(),                                      // 登録年月日時分秒
				batchUserId,                                                             // 登録オペレータアカウント
				JKKBatCommon.getSysDateTimeStamp(),                                      // 更新年月日時分秒
				batchUserId,                                                              // 更新オペレータアカウント
				null,                                                                    // 削除年月日時分秒
				null,                                                                    // 削除オペレータアカウント
				"0",                                                                       // 無効フラグ
				// 2012-06-14 IT1-2012-0000806,IT1-2012-0000807 Start
//				"1"                                                                      //自動照査結果リスト出力済フラグ
				"0"                                                                      //自動照査結果リスト出力済フラグ
				// 2012-06-14 IT1-2012-0000806,IT1-2012-0000807 End
			};
			//2012.02.28 End

		executeKK_T_AUTO_SHOSA_RSLT_PKINSERT(setParam);
	}

	/**
	 * 自動照査後のエラー結果を返すスタブ
	 * @param inMap 自動照査対象データのマップ
	 * @param logPrint ログ出力制御オブジェクト
	 * @return errlist エラーリスト
	 * @throws Exception
	 */
	public ArrayList<HashMap<String,String>> stubexecute(JBSbatServiceInterfaceMap inMap,JBSbatLogPrintControl logPrint) throws Exception {
		
		ArrayList<HashMap<String,String>> errlist = new ArrayList<HashMap<String,String>>();
		HashMap<String,String> errmap1 = new HashMap<String,String>();
		HashMap<String,String> errmap2 = new HashMap<String,String>();
		
		String in1 = "0";								// 処理区分
		String in2 = inMap.getString("MSKMSHO_NO");		// 申込書番号
		String in3 = inMap.getString("MSKM_DTL_NO");	// 申込明細番号
		String in4 = inMap.getString("GENE_ADD_DTM");	// 世代登録年月日時分秒
		String in5 = inMap.getString("SVC_KEI_NO");		// サービス契約番号

		logPrint.printDebugLog(in1+","+in2+","+in3+","+in4+","+in5);
		
		//mapの設定(テストの内容により変更する。)
		errmap1.put("errSbt1", "01");
		errmap1.put("errCd1", "0000000001");
		errlist.add(errmap1);
		errmap2.put("errSbt2", "02");
		errmap2.put("errCd2", "0000000002");
		errlist.add(errmap2);
		
		return errlist;
	}
	
	/**
	 * SQLKEY(KK_UPDATE_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	更新日付
	 *		 	更新オペレータID
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_UPDATE_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		//処理ＩＤ対応 2012.8.20 start
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
		//処理ＩＤ対応 2012.8.20 end
		
		// DBアクセスを実行します
		db_KK_T_SVC_KEI.executeBySqlDefine(paramList, KK_T_SVC_KEI_KK_UPDATE_003);
	}


	/**
	 * 
	 * @param autoShosaRlstNo
	 * @return
	 */
	private String padZero(String in)
	{
		StringBuilder retBuf = new StringBuilder("000000000000".substring(in.length()));
		retBuf.append(in);

		return retBuf.toString();
	}
}
