/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom  					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACKeiPrcKmkMakeJgskn
*	ソースファイル名	：JBSbatACKeiPrcKmkMakeJgskn.java
*	作成者				：富士通　
*	作成日				：2013年11月14日
*＜機能概要＞
*　契約料金項目情報（事業者間）作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v5.00.00	2013/11/14   FJ)黒木	【OM-2013-0002478 】EM精算結果出力不正対応
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatACIFM057;
import eo.business.util.file.JBSbatACIFM170;
import eo.business.util.file.JBSbatACIFM252;
import eo.business.util.table.JBSbatAC_M_KEI_KMK;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
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.util.JBSbatDateUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACKeiPrcKmkMakeJgskn extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(契約項目)*/
	private static final String D_TBL_NAME_AC_M_KEI_KMK = "AC_M_KEI_KMK";

	/** SQL定義キー(AC_SELECT_001)*/
	private static final String AC_M_KEI_KMK_AC_SELECT_001 = "AC_SELECT_001";

	/** テーブルアクセスクラス(契約項目)*/
	private JBSbatSQLAccess db_AC_M_KEI_KMK = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 相対番号 */
	private String aitNo = null;

	/** 退避キー （料金コースコード ＋ 料金サービスコードを保持） */
	private String					saveKey						= null;
	
	/** 契約項目マップ */
	private HashMap<String, ArrayList<JBSbatCommonDBInterface>>	keiKmkMap		= null;
	
	/** 精算年月 */
	private String ssnYm = JACStrConst.KARA_MOJI;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_AC_M_KEI_KMK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_AC_M_KEI_KMK);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/

		// 精算年月取得（バッチ運用日の前月）
		this.ssnYm  = JBSbatDateUtil.adjustMonth(super.opeDate, -1).substring(0, 6);		// 精算年月
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial]ssnYm=" + this.ssnYm + "]");
		
		//契約項目マップの初期化
		keiKmkMap	= new HashMap<String, ArrayList<JBSbatCommonDBInterface>>(101);
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		String inKey = null; // WKキー

		JBSbatOutputItem outputItem = new JBSbatOutputItem(); // 出力共通電文
		
		// WKキーの設定
		StringBuffer keyBuf = new StringBuffer();
		
		keyBuf.append(inMap.getString(JBSbatACIFM170.PCRS_CD)); 	// 料金コースコード
		keyBuf.append(inMap.getString(JBSbatACIFM170.PRC_SVC_CD)); 	// 料金サービスコード 

		// WKキー
		inKey = keyBuf.toString();

		// テーブルアクセスクラス格納領域
		JBSbatCommonDBInterface outRet = new JBSbatCommonDBInterface();
		
		// 退避キーがない(入力１件目) or キーブレイク時
		if (saveKey == null || !inKey.equals(saveKey))
		{
			// 退避キーリストの初期化
			keiKmkMap.clear();

			// キー設定
			saveKey = inKey;

			// 契約項目データ取得
			outRet = getBYKeiKmkMst(inMap);

			// 契約項目格納リストに取得した契約項目マスタ情報を格納する
			while (outRet != null)
			{
				// キー：相対番号
				// 値：契約項目レコード
				String mapKey = outRet.getString(JBSbatAC_M_KEI_KMK.AITAI_NO);
				
				// メモリからデータを格納したリストを抽出
				ArrayList<JBSbatCommonDBInterface> itemList = keiKmkMap.get(mapKey);
				
				if (itemList == null)
				{
					// 存在しない場合はリストを生成
					itemList = new ArrayList<JBSbatCommonDBInterface>(10);
				}

				// リストにデータを格納
				itemList.add(outRet);
				
				// 契約項目マップにデータを格納
				keiKmkMap.put(mapKey, itemList);

				outRet = db_AC_M_KEI_KMK.selectNext();
			}
		}
			
		// 該当データなしの場合
		if(keiKmkMap.isEmpty())
		{
			return outputItem;
		}
		
		// 相対マップから検索する
		// 契約項目データ取得
		ArrayList<JBSbatCommonDBInterface> mstList = getKeiKmkMap(inMap);
		
		// 該当データなしの場合
		if (mstList == null || mstList.size() == 0)
		{
			return outputItem;
		}

		// 出力項目設定
		setOutMapList(outputItem, inMap, mstList);

		
		// 出力共通電文を返却
		return outputItem;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_AC_M_KEI_KMK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**▼▼▼▼▼▼メソッド追加 開始▼▼▼▼▼▼*/
	
	/**
	 * 相対番号で契約項目データを絞り込みます。
	 * @param inMap 入力電文
	 * @return mstList 契約項目データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private ArrayList<JBSbatCommonDBInterface> getKeiKmkMap(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 相対区分="2"（請求先番号）の場合
		if (JACStrConst.AITAIKBN_SEIKYU.equals(inMap.getString(JBSbatACIFM170.AIT_DIV)))
		{
			aitNo = inMap.getString(JBSbatACIFM170.SEIKY_KEI_NO); // 請求先番号
		}
		// 相対区分="3"（サービス番号）の場合
		else if(JACStrConst.AITAIKBN_SVC.equals(inMap.getString(JBSbatACIFM170.AIT_DIV)))
		{
			aitNo = inMap.getString(JBSbatACIFM170.SVC_NO); // サービス番号
		}
		else
		{
			aitNo = JACStrConst.AITAINO_SPACE; // 相対番号（ALLスペース）
		}
		
		// テーブルアクセスクラス格納領域
		ArrayList<JBSbatCommonDBInterface> mstList = null;
		
		// 契約項目データ取得
		mstList = keiKmkMap.get(aitNo);
		
		// 相対区分="2"（請求先番号）または "3"（サービス番号）の場合で、
		//該当データなしの場合、相対番号をスペースでパディングして再検索
		if (mstList == null && (JACStrConst.AITAIKBN_SEIKYU.equals(inMap.getString(JBSbatACIFM170.AIT_DIV)) 
								|| JACStrConst.AITAIKBN_SVC.equals(inMap.getString(JBSbatACIFM170.AIT_DIV))))
		{
			// 対象キー：相対番号の設定
			aitNo = JACStrConst.AITAINO_SPACE; // 相対番号（ALLスペース）

			// 契約項目データ取得
			mstList = keiKmkMap.get(aitNo);
		}
		return mstList;
	}
	
	/**
	 * 料金を設定し、出力フラグをtrueにします。
	 * @param outputItem
	 * @param inMap 入力電文
	 * @param mstList 契約項目データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setOutMapList(JBSbatOutputItem outputItem, JBSbatServiceInterfaceMap inMap, 
					ArrayList<JBSbatCommonDBInterface> mstList) throws Exception
	{
		// 契約項目取得分、処理
		for (int i = 0; i < mstList.size(); i++)
		{
			JBSbatCommonDBInterface outRet = (JBSbatCommonDBInterface)mstList.get(i);

			String keiKmkSkbtCd = outRet.getString(JBSbatAC_M_KEI_KMK.KEI_KMK_SKBT_CD); // 契約項目識別コード
			BigDecimal prc 		= null; 												// 料金（数量）

			// 契約項目.契約項目識別コードの値により以下のように料金を設定する
			// 利用日数の場合
			if (JACStrConst.KEI_KMK_SKBT_USE.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.USE_DAY_CNT);
			}
			// 利用不可日数の場合
			else if (JACStrConst.KEI_KMK_SKBT_USE_FAIL.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.USE_FAIL_DAY_CNT);
			}
			// サービス継続月数の場合
			else if (JACStrConst.KEI_KMK_SKBT_SVC_MON.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.SVC_KEIZOKU_MON_CNT);
			}
			// サービス継続日数の場合
			else if (JACStrConst.KEI_KMK_SKBT_SVC_DAY.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.SVC_KEIZOKU_DAY_CNT);
			}
			// 課金継続月数の場合
			else if (JACStrConst.KEI_KMK_SKBT_CHRG_MON.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.CHRG_KEIZOKU_MON_CNT);
			}
			// 課金継続日数の場合
			else if (JACStrConst.KEI_KMK_SKBT_CHRG_DAY.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.CHRG_KEIZOKU_DAY_CNT);
			}
			// 契約数の場合
			else if (JACStrConst.KEIYAKU_KBN_KEI_CNT.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.KEI_CNT);
			}
			// 月中最大契約数の場合
			else if (JACStrConst.KEIYAKU_KBN_MON_MAX.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM170.MON_CHU_MAX_KEI_CNT);
			}
			else
			{
				// ワーニングログを出力する
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EACB0380CW, 
						this.getWarnMsg(keiKmkSkbtCd, inMap));
				continue;
			}

			// 契約料金項目情報を設定する
			JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
			
			outputMap.setString(JBSbatACIFM057.SEIKY_KEI_NO, 				inMap.getString(JBSbatACIFM170.SEIKY_KEI_NO)); 				// 請求先番号
			outputMap.setString(JBSbatACIFM057.SEIKY_YM, 					inMap.getString(JBSbatACIFM170.SEIKY_YM)); 					// 請求年月
			outputMap.setString(JBSbatACIFM057.SEIRI_NO, 					JACStrConst.KARA_MOJI); 									// 整理番号
			outputMap.setString(JBSbatACIFM057.WRIB_SVC_KEI_NO, 			inMap.getString(JBSbatACIFM170.WRIB_SVC_KEI_NO)); 			// 割引サービス契約番号
			outputMap.setString(JBSbatACIFM057.WRISVC_TRGT_KEI_NO, 			inMap.getString(JBSbatACIFM170.WRISVC_TRGT_KEI_NO)); 		// 割引サービス対象契約番号
			outputMap.setString(JBSbatACIFM057.SVC_NO, 	 					inMap.getString(JBSbatACIFM170.SVC_NO)); 					// サービス番号
			outputMap.setString(JBSbatACIFM057.OP_SVKEI_NO, 				JACStrConst.KARA_MOJI); 									// オプションサービス契約番号
			outputMap.setString(JBSbatACIFM057.SVC_SKBT_CD, 				JACStrConst.KARA_MOJI); 									// 料金サービス識別コード
			outputMap.setString(JBSbatACIFM057.PRC_GRP_CD, 					JACStrConst.KARA_MOJI); 									// 料金グループコード
			outputMap.setString(JBSbatACIFM057.PCRS_CD, 					inMap.getString(JBSbatACIFM170.PCRS_CD)); 					// 料金コースコード
			outputMap.setString(JBSbatACIFM057.PRC_SVC_CD, 	 				inMap.getString(JBSbatACIFM170.PRC_SVC_CD)); 				// 料金サービスコード
			outputMap.setString(JBSbatACIFM057.PRC_KMK_CD, 					outRet.getString(JBSbatAC_M_KEI_KMK.PRC_KMK_CD)); 			// 料金項目コード
			outputMap.setString(JBSbatACIFM057.COLLECT_PATTERN_CD, 			JACStrConst.KARA_MOJI); 									// 徴収パターンコード
			outputMap.setBigDecimal(JBSbatACIFM057.PRC, 					prc); 														// 料金
			outputMap.setString(JBSbatACIFM057.USE_STAYMD, 					inMap.getString(JBSbatACIFM170.USE_STAYMD)); 	 			// 利用開始日
			outputMap.setString(JBSbatACIFM057.USE_ENDYMD, 					inMap.getString(JBSbatACIFM170.USE_ENDYMD)); 				// 利用終了日
			outputMap.setString(JBSbatACIFM057.SVC_STAYMD, 					inMap.getString(JBSbatACIFM170.SVC_STAYMD)); 				// サービス開始日
			outputMap.setString(JBSbatACIFM057.FIRST_CHRG_STAYMD, 			inMap.getString(JBSbatACIFM170.FIRST_CHRG_STAYMD)); 		// 初回課金開始日
			outputMap.setString(JBSbatACIFM057.SVC_DSL_YMD, 				inMap.getString(JBSbatACIFM170.SVC_DSL_YMD)); 				// サービス解約日
			outputMap.setString(JBSbatACIFM057.SVC_DLRE, 					inMap.getString(JBSbatACIFM170.SVC_DLRE)); 					// サービス解約理由
			outputMap.setString(JBSbatACIFM057.SVC_KAIHK_DAY, 				inMap.getString(JBSbatACIFM170.SVC_KAIHK_DAY));		 		// サービス回復日
			outputMap.setBigDecimal(JBSbatACIFM057.USE_DAY_CNT, 			inMap.getBigDecimal(JBSbatACIFM170.USE_DAY_CNT)); 			// 利用日数
			outputMap.setBigDecimal(JBSbatACIFM057.USE_FAIL_DAY_CNT, 		inMap.getBigDecimal(JBSbatACIFM170.USE_FAIL_DAY_CNT)); 		// 利用不可日数
			outputMap.setString(JBSbatACIFM057.AIT_DIV, 					inMap.getString(JBSbatACIFM170.AIT_DIV)); 					// 相対区分
			outputMap.setString(JBSbatACIFM057.SIME_DAY, 					inMap.getString(JBSbatACIFM170.SIME_DAY)); 					// 締め日
			outputMap.setString(JBSbatACIFM057.USE_APLY_KH_CD, 				JACStrConst.USE_FAIL_APLY_WAY_CD_NON);						// 利用不可適用可否
			outputMap.setString(JBSbatACIFM057.MAE_YUSEN_JUN, 				JACStrConst.MAE_YUSEN_JUN_0);								// 前受相殺優先順位
			outputMap.setString(JBSbatACIFM057.WRIB_YUSEN_JUN, 				JACStrConst.WRIB_YUSEN_JUN_0);								// 割引優先順位
			outputMap.setString(JBSbatACIFM057.UPPL_JUDGE_YUSEN_JUN, 		JACStrConst.KARA_MOJI);										// 上限判定優先順位
			outputMap.setString(JBSbatACIFM057.WRIB_KKSHI_KH, 				JACStrConst.WRIB_KKS_H);									// 割引繰越可否
			outputMap.setString(JBSbatACIFM057.MANSION_ID, 					inMap.getString(JBSbatACIFM170.MANSION_ID));				// マンションＩＤ
			outputMap.setString(JBSbatACIFM057.TK_HOSHIKI_KEI_NO, 			inMap.getString(JBSbatACIFM170.TK_HOSHIKI_KEI_NO));			// 提供方式契約番号
			outputMap.setString(JBSbatACIFM057.KANYU_KEI_PAY_HOSHIKI_CD,	inMap.getString(JBSbatACIFM170.KANYU_KEI_PAY_HOSHIKI_CD));	// 加入契約支払方式コード
			
			// レコード出力判定フラグの設定
			outputMap.setOutFlg(true);

			// 出力レコード情報を設定する
			outputItem.addOutMapList(outputMap);

			// 課金終了年月を設定する
			String chrgEndYmd = inMap.getString(JBSbatACIFM170.CHRG_ENDYMD);
			String chrgEndYm = null;
			if (chrgEndYmd.length() >= 6)
			{
				chrgEndYm = chrgEndYmd.substring(0, 6);
			}
			
			// 課金終了年月が精算年月の場合、出力レコード情報２を設定する
			if (this.ssnYm.equals(chrgEndYm))
			{
				// 出力レコード情報２を設定する
				JBSbatServiceInterfaceMap outputMap2 = new JBSbatServiceInterfaceMap();
				outputMap2.setOutFlg(true);
				outputMap2.getMap().putAll(outputMap.getMap());
				outputMap2.setString(JBSbatACIFM252.CHRG_ENDYMD,	inMap.getString(JBSbatACIFM170.CHRG_ENDYMD));	// 課金終了日
				outputItem.addOutMapList_2(outputMap2);
			}
		}
	}
	
	/**
	 * 契約項目データ取得します。
	 * 
	 * @param inMap 入力電文
	 * @return returnMap 契約項目データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getBYKeiKmkMst(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();

		// 対象キーの設定
		dbList.setValue(super.systemCode); 								// システムコード
		dbList.setValue(inMap.getString(JBSbatACIFM170.PCRS_CD)); 		// 料金コースコード
		dbList.setValue(inMap.getString(JBSbatACIFM170.PRC_SVC_CD)); 	// 料金サービスコード
		dbList.setValue(super.opeDate); 								// バッチ運用日
		
		// 契約項目データ取得
		executeAC_M_KEI_KMK_AC_SELECT_001(dbList.getList().toArray());

		// 結果取得の定義
		JBSbatCommonDBInterface returnMap = db_AC_M_KEI_KMK.selectNext();

		// 契約項目データの返却
		return returnMap;
	}

	/**
	 * ワーニングメッセージを取得します。
	 * 
	 * @param keiKmkSkbtCd 契約項目識別コード
	 * @param inMap        入力電文
	 * @return String[]  ワーニングメッセージ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String[] getWarnMsg(String keiKmkSkbtCd, JBSbatServiceInterfaceMap inMap) throws Exception
	{
		String[] warnMsg = new String[3];
		
		StringBuffer msgBuf = new StringBuffer();
		msgBuf.append(JBSbatAC_M_KEI_KMK.SYS_CD);
		msgBuf.append(JACStrConst.COLON);
		msgBuf.append(super.systemCode); 									// システムコード
		msgBuf.append(JACStrConst.COMMA);
		
		msgBuf.append(JBSbatAC_M_KEI_KMK.PCRS_CD);
		msgBuf.append(JACStrConst.COLON);
		msgBuf.append(inMap.getString(JBSbatACIFM170.PCRS_CD)); 	// 料金コースコード
		msgBuf.append(JACStrConst.COMMA);
		
		msgBuf.append(JBSbatAC_M_KEI_KMK.PRC_SVC_CD);
		msgBuf.append(JACStrConst.COLON);
		msgBuf.append(inMap.getString(JBSbatACIFM170.PRC_SVC_CD)); 	// 料金サービスコード
		msgBuf.append(JACStrConst.COMMA);
		
		msgBuf.append(JBSbatAC_M_KEI_KMK.AITAI_NO);
		msgBuf.append(JACStrConst.COLON);
		msgBuf.append(aitNo); 												// 相対番号
		msgBuf.append(JACStrConst.COMMA);
		
		msgBuf.append(JACStrConst.OPE_DATE);
		msgBuf.append(JACStrConst.COLON);
		msgBuf.append(super.opeDate); 										// バッチ運用日
		
		StringBuffer msgkeiKmkSkbtCd = new StringBuffer();
		msgkeiKmkSkbtCd.append(JBSbatAC_M_KEI_KMK.KEI_KMK_SKBT_CD);
		msgkeiKmkSkbtCd.append(JACStrConst.COLON);
		msgkeiKmkSkbtCd.append(keiKmkSkbtCd);								// 契約項目識別コード
		
		warnMsg[0] = D_TBL_NAME_AC_M_KEI_KMK;
		warnMsg[1] = msgBuf.toString();
		warnMsg[2] = msgkeiKmkSkbtCd.toString();
		return warnMsg;
	}
	/**▲▲▲▲▲▲メソッド追加 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(AC_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	システムコード
	 *		 	料金コースコード
	 *		 	料金サービスコード
	 *		 	バッチ運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeAC_M_KEI_KMK_AC_SELECT_001(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());

		// DBアクセスを実行します
		db_AC_M_KEI_KMK.selectBySqlDefine(paramList, AC_M_KEI_KMK_AC_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
