/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom  					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACKeiPrcKmkMake
*	ソースファイル名	：JBSbatACKeiPrcKmkMake.java
*	作成者				：富士通　
*	作成日				：2011年05月12日
*＜機能概要＞
*　契約料金項目情報作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/05/12   富士通		新規作成
*	v8.00.00	2013/12/27   FJ）田内	【ANK-1794-00-00】サービス詳細識別番号追加
*	v9.00.00	2014/04/25   FJ）小掠	【ANK-2055-00-00】ACIFM053にサービス詳細識別番号追加、ACIFM053からACIFM057へ単純転送
*  v53.00.00	2021/04/20	 FJ) 吉田	【ANK-3951-00-00】「競争ルールの検証に関するWG」に関するシステム対応
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatACIFM053;
import eo.business.util.file.JBSbatACIFM057;
import eo.business.util.file.JBSbatACIFM221;
import eo.business.util.file.JBSbatACIFM348;
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;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACKeiPrcKmkMake 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;
	
	/**
	 * 初期処理
	 * @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);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		//契約項目マップの初期化
		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(JBSbatACIFM053.PCRS_CD)); 	// 料金コースコード
		keyBuf.append(inMap.getString(JBSbatACIFM053.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(JBSbatACIFM053.AIT_DIV)))
		{
			aitNo = inMap.getString(JBSbatACIFM053.SEIKY_KEI_NO); // 請求先番号
		}
		// 相対区分="3"（サービス番号）の場合
		else if(JACStrConst.AITAIKBN_SVC.equals(inMap.getString(JBSbatACIFM053.AIT_DIV)))
		{
			aitNo = inMap.getString(JBSbatACIFM053.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(JBSbatACIFM053.AIT_DIV)) 
								|| JACStrConst.AITAIKBN_SVC.equals(inMap.getString(JBSbatACIFM053.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(JBSbatACIFM053.USE_DAY_CNT);
			}
			// 利用不可日数の場合
			else if (JACStrConst.KEI_KMK_SKBT_USE_FAIL.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM053.USE_FAIL_DAY_CNT);
			}
			// サービス継続月数の場合
			else if (JACStrConst.KEI_KMK_SKBT_SVC_MON.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM053.SVC_KEIZOKU_MON_CNT);
			}
			// サービス継続日数の場合
			else if (JACStrConst.KEI_KMK_SKBT_SVC_DAY.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM053.SVC_KEIZOKU_DAY_CNT);
			}
			// 課金継続月数の場合
			else if (JACStrConst.KEI_KMK_SKBT_CHRG_MON.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM053.CHRG_KEIZOKU_MON_CNT);
			}
			// 課金継続日数の場合
			else if (JACStrConst.KEI_KMK_SKBT_CHRG_DAY.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM053.CHRG_KEIZOKU_DAY_CNT);
			}
			// 契約数の場合
			else if (JACStrConst.KEIYAKU_KBN_KEI_CNT.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM053.KEI_CNT);
			}
			// 月中最大契約数の場合
			else if (JACStrConst.KEIYAKU_KBN_MON_MAX.equals(keiKmkSkbtCd))
			{
				prc = inMap.getBigDecimal(JBSbatACIFM053.MON_CHU_MAX_KEI_CNT);
			}
			// ANK-3951-00-00 ADD START
			// 割引適用回数の場合
			else if (JACStrConst.KEIYAKU_KBN_WRIB_APLY_CNT.equals(keiKmkSkbtCd))
			{
				if (inMap.getString(JBSbatACIFM348.WRIB_APLY_CNT) == null || JACStrConst.KARA_MOJI.equals(inMap.getString(JBSbatACIFM348.WRIB_APLY_CNT)))
				{
					continue;
				}
				prc = new BigDecimal(inMap.getString(JBSbatACIFM348.WRIB_APLY_CNT));
			}
			// ANK-3951-00-00 ADD END
			else
			{
				// ワーニングログを出力する
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EACB0380CW, 
						this.getWarnMsg(keiKmkSkbtCd, inMap));
				continue;
			}

			// 契約料金項目情報を設定する
			JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();
			
			outputMap.setString(JBSbatACIFM057.SEIKY_KEI_NO, 				inMap.getString(JBSbatACIFM053.SEIKY_KEI_NO)); 				// 請求先番号
			outputMap.setString(JBSbatACIFM057.SEIKY_YM, 					inMap.getString(JBSbatACIFM053.SEIKY_YM)); 					// 請求年月
			outputMap.setString(JBSbatACIFM057.SEIRI_NO, 					inMap.getString(JBSbatACIFM053.SEIRI_NO)); 					// 整理番号
			outputMap.setString(JBSbatACIFM057.WRIB_SVC_KEI_NO, 			inMap.getString(JBSbatACIFM053.WRIB_SVC_KEI_NO)); 			// 割引サービス契約番号
			outputMap.setString(JBSbatACIFM057.WRISVC_TRGT_KEI_NO, 			inMap.getString(JBSbatACIFM053.WRISVC_TRGT_KEI_NO)); 		// 割引サービス対象契約番号
			outputMap.setString(JBSbatACIFM057.SVC_NO, 	 					inMap.getString(JBSbatACIFM053.SVC_NO)); 					// サービス番号
			outputMap.setString(JBSbatACIFM057.OP_SVKEI_NO, 				inMap.getString(JBSbatACIFM053.OP_SVKEI_NO)); 				// オプションサービス契約番号
			outputMap.setString(JBSbatACIFM057.SVC_SKBT_CD, 				inMap.getString(JBSbatACIFM053.SVC_SKBT_CD)); 				// 料金サービス識別コード
			outputMap.setString(JBSbatACIFM057.PRC_GRP_CD, 					inMap.getString(JBSbatACIFM053.PRC_GRP_CD)); 				// 料金グループコード
			outputMap.setString(JBSbatACIFM057.PCRS_CD, 					inMap.getString(JBSbatACIFM053.PCRS_CD)); 					// 料金コースコード
			outputMap.setString(JBSbatACIFM057.PRC_SVC_CD, 	 				inMap.getString(JBSbatACIFM053.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(JBSbatACIFM053.USE_STAYMD)); 	 			// 利用開始日
			outputMap.setString(JBSbatACIFM057.USE_ENDYMD, 					inMap.getString(JBSbatACIFM053.USE_ENDYMD)); 				// 利用終了日
			outputMap.setString(JBSbatACIFM057.SVC_STAYMD, 					inMap.getString(JBSbatACIFM053.SVC_STAYMD)); 				// サービス開始日
			outputMap.setString(JBSbatACIFM057.FIRST_CHRG_STAYMD, 			inMap.getString(JBSbatACIFM053.FIRST_CHRG_STAYMD)); 		// 初回課金開始日
			outputMap.setString(JBSbatACIFM057.SVC_DSL_YMD, 				inMap.getString(JBSbatACIFM053.SVC_DSL_YMD)); 				// サービス解約日
			outputMap.setString(JBSbatACIFM057.SVC_DLRE, 					inMap.getString(JBSbatACIFM053.SVC_DLRE)); 					// サービス解約理由
			outputMap.setString(JBSbatACIFM057.SVC_KAIHK_DAY, 				inMap.getString(JBSbatACIFM053.SVC_KAIHK_DAY));		 		// サービス回復日
			outputMap.setBigDecimal(JBSbatACIFM057.USE_DAY_CNT, 			inMap.getBigDecimal(JBSbatACIFM053.USE_DAY_CNT)); 			// 利用日数
			outputMap.setBigDecimal(JBSbatACIFM057.USE_FAIL_DAY_CNT, 		inMap.getBigDecimal(JBSbatACIFM053.USE_FAIL_DAY_CNT)); 		// 利用不可日数
			outputMap.setString(JBSbatACIFM057.AIT_DIV, 					inMap.getString(JBSbatACIFM053.AIT_DIV)); 					// 相対区分
			outputMap.setString(JBSbatACIFM057.SIME_DAY, 					inMap.getString(JBSbatACIFM053.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(JBSbatACIFM053.MANSION_ID));				// マンションＩＤ
			outputMap.setString(JBSbatACIFM057.TK_HOSHIKI_KEI_NO, 			inMap.getString(JBSbatACIFM053.TK_HOSHIKI_KEI_NO));			// 提供方式契約番号
			outputMap.setString(JBSbatACIFM057.KANYU_KEI_PAY_HOSHIKI_CD,	inMap.getString(JBSbatACIFM053.KANYU_KEI_PAY_HOSHIKI_CD));	// 加入契約支払方式コード
			
			// 契約料金項目情報作成のみ項目追加。違約金契約料金項目情報作成では出力しない。（契約料金項目情報作成に関しても、逓増料金計算以外へは、後続ジョブで休止日付を除去して連携する。）
			outputMap.setString(JBSbatACIFM221.SVC_PAUSE_DAY, 				inMap.getString(JBSbatACIFM053.SVC_PAUSE_DAY));				// サービス休止日
			outputMap.setString(JBSbatACIFM221.SVC_PAUSE_RLS_YMD,			inMap.getString(JBSbatACIFM053.SVC_PAUSE_RLS_YMD));			// サービス休止解除日
			
			outputMap.setString(JBSbatACIFM221.SVC_DTL_SKBT_NO,				inMap.getString(JBSbatACIFM053.SVC_DTL_SKBT_NO));			// サービス詳細識別番号
			
			// レコード出力判定フラグの設定
			outputMap.setOutFlg(true);

			// 出力レコード情報を設定する
			outputItem.addOutMapList(outputMap);
		}
	}
	
	/**
	 * 契約項目データ取得します。
	 * 
	 * @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(JBSbatACIFM053.PCRS_CD)); 		// 料金コースコード
		dbList.setValue(inMap.getString(JBSbatACIFM053.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(JBSbatACIFM053.PCRS_CD)); 	// 料金コースコード
		msgBuf.append(JACStrConst.COMMA);
		
		msgBuf.append(JBSbatAC_M_KEI_KMK.PRC_SVC_CD);
		msgBuf.append(JACStrConst.COLON);
		msgBuf.append(inMap.getString(JBSbatACIFM053.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);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
