/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom  					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACTeigakPrc
*	ソースファイル名	：JBSbatACTeigakPrc.java
*	作成者				：富士通　
*	作成日				：2011年05月17日
*＜機能概要＞
*　定額料金計算部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/05/17   富士通		新規作成
*	v3.00		2012/07/03   FJ）冨井	【ST2-2012-0001323】サービス休止日判定追加
*	v5.00.00	2013/07/09   FJ) 桑島	【TG1-2013-0000662】請求年月対応
*	v8.00.00	2013/12/13   FJ) 鈴木	【ANK-1794-00-00】L2-MVNO対応（請求書電話番号表示（LC含む））
*	v9.00.00	2014/04/25   FJ) 小掠	【ANK-2055-00-00】ACIFI015にサービス詳細識別番号を追加、ACIFI015からACIFI016へ単純転送
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JACbatSchdlUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JACbatDebugLogUtil;
import eo.business.util.file.JBSbatACIFI015;
import eo.business.util.file.JBSbatACIFI016;
import eo.business.util.table.JBSbatAC_M_TEGAK_PRC;
import eo.common.constant.JACStrConst;
import eo.common.util.JPCUtilCommon;
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 JBSbatACTeigakPrc extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(定額料金)*/
	private static final String D_TBL_NAME_AC_M_TEGAK_PRC = "AC_M_TEGAK_PRC";

	/** SQL定義キー(AC_SELECT_001)*/
	private static final String AC_M_TEGAK_PRC_AC_SELECT_001 = "AC_SELECT_001";

	/** テーブルアクセスクラス(定額料金)*/
	private JBSbatSQLAccess db_AC_M_TEGAK_PRC = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**▼▼▼▼▼▼クラス変数追加 開始▼▼▼▼▼▼*/

	/**  定額料金マップ */
	private HashMap<String, ArrayList<JBSbatCommonDBInterface>> teigakuMap = null;

	/**  利用月翌月月初日 */
	private String nextCycTukiSt	= null;
	
	/** 退避キー （料金コースコード ＋ 料金サービスコードを保持）*/
	private String saveKey			= null;
	
	/** 群締め日 */
	private String wk_GunEnd 	= null;
	
	/**▲▲▲▲▲▲クラス変数追加 終了▲▲▲▲▲▲*/
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_AC_M_TEGAK_PRC = new JBSbatSQLAccess(commonItem, D_TBL_NAME_AC_M_TEGAK_PRC);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 定額料金格納マップを初期化
		teigakuMap = new HashMap<String, ArrayList<JBSbatCommonDBInterface>>(101);
		
		// 料金スケジュール定義アクセス部品初期処理
		JACbatSchdlUtil schdlUtil = new JACbatSchdlUtil(commonItem);
		
		try
		{
			// 請求年月を取得する
			String seikyYm = schdlUtil.getBillDate(super.opeDate, JACStrConst.EVENT_CD_RYOKIN_KEISAN_YMD);
			
			// 請求年月から、終了日取得
			String[] startEndYmd = schdlUtil.getUseStrEnd(seikyYm, JACStrConst.EVENT_CD_USE_STAYMD, JACStrConst.EVENT_CD_USE_ENDYMD);
			
			this.wk_GunEnd = startEndYmd[1];
			
			// ＋1日して翌月月初日をもとめる
			nextCycTukiSt = JPCUtilCommon.addDay(startEndYmd[1], 1);
			
		}
		finally
		{
			// 料金スケジュール定義アクセス部品クローズ
			schdlUtil.close();
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "利用月翌月月初日：" + nextCycTukiSt);
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 出力共通電文
		JBSbatOutputItem outputItem = new JBSbatOutputItem(); 
		
		//  WKキーの設定
		StringBuffer keyBuf = new StringBuffer();
		
		keyBuf.append(inMap.getString(JBSbatACIFI015.PCRS_CD)); 	// 料金コースコード
		keyBuf.append(inMap.getString(JBSbatACIFI015.PRC_SVC_CD)); 	// 料金サービスコード 
		
		String inKey = keyBuf.toString(); //  WKキー
		
		// 退避キーがない(入力１件目) or キーブレイク時
		if(saveKey == null || !inKey.equals(saveKey))
		{
			// キー設定
			saveKey = inKey;
			
			// ブレイク時に定額料金マップを初期化する
			teigakuMap.clear();

			// 定額料金データ取得
			// teigakuMap：定額料金マップに検索結果を格納する。
			getBYTeigakuPrc(inMap);
		}

		// 相対マップから検索する
		// 定額料金データ取得
		ArrayList<JBSbatCommonDBInterface> mstList = getTeigakuMap(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_TEGAK_PRC.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**▼▼▼▼▼▼メソッド追加 開始▼▼▼▼▼▼*/	
	
	/**
	 * 定額料金データ取得を行います。
	 * teigakuMap：定額料金マップに検索結果を格納する。
	 * 
	 * @param inMap 入力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getBYTeigakuPrc(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface dbList = new JBSbatCommonDBInterface();

		// 定額料金 ＷＨＥＲＥ条件設定
		dbList.setValue(super.systemCode); 								// システムコード
		dbList.setValue(inMap.getString(JBSbatACIFI015.PCRS_CD)); 		// 料金コースコード
		dbList.setValue(inMap.getString(JBSbatACIFI015.PRC_SVC_CD)); 	// 料金サービスコード
		dbList.setValue(this.wk_GunEnd); 								// 群締め日

		// 定額料金データ取得
		executeAC_M_TEGAK_PRC_AC_SELECT_001(dbList.getList().toArray());

		// レコード読み込み
		JBSbatCommonDBInterface dbMap = db_AC_M_TEGAK_PRC.selectNext();

		// 検索結果がなくなるまで繰り返す
		while (dbMap != null)
		{
			// 請求先番号ごとハッシュマップにレコードを格納する
			String mapKey = dbMap.getString(JBSbatAC_M_TEGAK_PRC.AITAI_NO);
			
			// メモリからデータを格納したリストを抽出
			ArrayList<JBSbatCommonDBInterface> teigakuList = teigakuMap.get(mapKey);
			
			if (teigakuList == null)
			{
				// 存在しない場合はリストを生成
				teigakuList = new ArrayList<JBSbatCommonDBInterface>(10);
			}
			
			// リストにデータを格納
			teigakuList.add(dbMap);
			
			// 定額料金マップにデータを格納
			teigakuMap.put(mapKey, teigakuList);

			// 次レコード取得
			dbMap = db_AC_M_TEGAK_PRC.selectNext();
		}
	}
	
	/**
	 * 相対番号で定額料金データを絞り込みます。
	 * @param inMap 入力電文
	 * @return mstList 定額料金データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private ArrayList<JBSbatCommonDBInterface> getTeigakuMap(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 対象キー：相対番号の設定
		String aitNo = null;
		
		// 相対区分="2"（請求先番号）の場合
		if (JACStrConst.AITAIKBN_SEIKYU.equals(inMap.getString(JBSbatACIFI015.AIT_DIV)))
		{
			aitNo = inMap.getString(JBSbatACIFI015.SEIKY_KEI_NO); // 請求先番号
		}
		// 相対区分="3"（サービス番号）の場合
		else if(JACStrConst.AITAIKBN_SVC.equals(inMap.getString(JBSbatACIFI015.AIT_DIV)))
		{
			aitNo = inMap.getString(JBSbatACIFI015.SVC_NO); // サービス番号
		}
		else
		{
			aitNo = JACStrConst.AITAINO_SPACE; // 相対番号（ALLスペース）
		}
			
		// 定額料金データ取得
		ArrayList<JBSbatCommonDBInterface> mstList = teigakuMap.get(aitNo);
			
		// 相対区分="2"（請求先番号）または "3"（サービス番号）の場合で、
		// 該当データなしの場合、相対番号をスペースでパディングして再検索
		if (mstList == null && (JACStrConst.AITAIKBN_SEIKYU.equals(inMap.getString(JBSbatACIFI015.AIT_DIV)) 
								|| JACStrConst.AITAIKBN_SVC.equals(inMap.getString(JBSbatACIFI015.AIT_DIV))))
		{
			// 対象キー：相対番号の設定
			aitNo = JACStrConst.AITAINO_SPACE; // 相対番号（ALLスペース）
			
			// 定額料金データ取得
			mstList = teigakuMap.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 = mstList.get(i);
			
			// 休止判定
			String svcPauseDay		= inMap.getString(JBSbatACIFI015.SVC_PAUSE_DAY);	// サービス休止日
			String svcPauseRlsDay 	= inMap.getString(JBSbatACIFI015.SVC_PAUSE_RLS_YMD);// サービス休止解除日
			BigDecimal prc 			= null; 		// 料金
			String prcKmkCd 		= null; 		// 料金項目コード
			String judgePtnCd 		= null; 		// 徴収パターンコード
			String useFailAplyWayCd = null; 		// 利用不可適用可否
			
			// サービス休止日、サービス休止解除日ともに未設定の場合
			if(svcPauseDay.equals(JACStrConst.KARA_MOJI) && svcPauseRlsDay.equals(JACStrConst.KARA_MOJI))
			{
				prc					= outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PRC);				// 料金
				prcKmkCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PRC_KMK_CD);			// 料金項目コード
				judgePtnCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.COLLECT_PATTERN_CD);	// 徴収パターンコード
				useFailAplyWayCd 	= outRet.getString(JBSbatAC_M_TEGAK_PRC.USE_FAIL_APLY_WAY_CD);	// 利用不可適用可否
			}
			// サービス休止日のみ設定されている場合
			else if(!svcPauseDay.equals(JACStrConst.KARA_MOJI) && svcPauseRlsDay.equals(JACStrConst.KARA_MOJI))
			{
				// 課金対象サービス契約情報．サービス休止日 ≧ 初期処理で求めた利用月翌月月初日
				// または　課金対象サービス契約情報．休止料金 ＝ null の場合
				if(svcPauseDay.compareTo(nextCycTukiSt) >= 0
						|| outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PAUSE_PRC) == null)
				{
					prc					= outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PRC);				// 料金
					prcKmkCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PRC_KMK_CD);			// 料金項目コード
					judgePtnCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.COLLECT_PATTERN_CD);	// 徴収パターンコード
					useFailAplyWayCd 	= outRet.getString(JBSbatAC_M_TEGAK_PRC.USE_FAIL_APLY_WAY_CD);	// 利用不可適用可否
				}
				else
				{
					prc 				= outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PAUSE_PRC);					// 休止料金
					prcKmkCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PAUSE_PRC_KMK_CD);				// 休止料金項目コード
					judgePtnCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PAUSE_COLLECT_PATTERN_CD);		// 休止徴収パターンコード
					useFailAplyWayCd 	= outRet.getString(JBSbatAC_M_TEGAK_PRC.PAUSE_USE_FAIL_APLY_WAY_CD);	// 休止利用不可適用可否
				}
			}
			// サービス休止日、サービス休止解除日ともに設定されている場合
			else if(!svcPauseDay.equals(JACStrConst.KARA_MOJI) && !svcPauseRlsDay.equals(JACStrConst.KARA_MOJI))
			{	
				// 課金対象サービス契約情報．サービス休止日 ≧ 初期処理で求めた利用月翌月月初日 の場合
				if(svcPauseDay.compareTo(nextCycTukiSt) >= 0)
				{
					prc					= outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PRC);				// 料金
					prcKmkCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PRC_KMK_CD);			// 料金項目コード
					judgePtnCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.COLLECT_PATTERN_CD);	// 徴収パターンコード
					useFailAplyWayCd 	= outRet.getString(JBSbatAC_M_TEGAK_PRC.USE_FAIL_APLY_WAY_CD);	// 利用不可適用可否
				}
				// サービス休止解除日  ≧  初期処理で求めた利用月翌月月初日の場合
				else if(svcPauseRlsDay.compareTo(nextCycTukiSt) >= 0)
				{
					if(outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PAUSE_PRC) == null)
					{
						prc					= outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PRC);				// 料金
						prcKmkCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PRC_KMK_CD);			// 料金項目コード
						judgePtnCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.COLLECT_PATTERN_CD);	// 徴収パターンコード
						useFailAplyWayCd 	= outRet.getString(JBSbatAC_M_TEGAK_PRC.USE_FAIL_APLY_WAY_CD);	// 利用不可適用可否
					}
					else
					{
						prc 				= outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PAUSE_PRC);					// 休止料金
						prcKmkCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PAUSE_PRC_KMK_CD);				// 休止料金項目コード
						judgePtnCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PAUSE_COLLECT_PATTERN_CD);		// 休止徴収パターンコード
						useFailAplyWayCd 	= outRet.getString(JBSbatAC_M_TEGAK_PRC.PAUSE_USE_FAIL_APLY_WAY_CD);	// 休止利用不可適用可否
					}
				}
				else
				{
					prc					= outRet.getBigDecimal(JBSbatAC_M_TEGAK_PRC.PRC);				// 料金
					prcKmkCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.PRC_KMK_CD);			// 料金項目コード
					judgePtnCd 			= outRet.getString(JBSbatAC_M_TEGAK_PRC.COLLECT_PATTERN_CD);	// 徴収パターンコード
					useFailAplyWayCd 	= outRet.getString(JBSbatAC_M_TEGAK_PRC.USE_FAIL_APLY_WAY_CD);	// 利用不可適用可否
				}
			}
			
			// 利用料金情報（定額料金情報）
			JBSbatServiceInterfaceMap outputMap = new JBSbatServiceInterfaceMap();

			outputMap.setString(JBSbatACIFI016.SEIKY_KEI_NO, 			inMap.getString(JBSbatACIFI015.SEIKY_KEI_NO)); 			// 請求先番号
			outputMap.setString(JBSbatACIFI016.SEIKY_YM, 				inMap.getString(JBSbatACIFI015.SEIKY_YM)); 				// 請求年月
			outputMap.setString(JBSbatACIFI016.SEIRI_NO, 				inMap.getString(JBSbatACIFI015.SEIRI_NO)); 				// 整理番号
			outputMap.setString(JBSbatACIFI016.WRIB_SVC_KEI_NO, 		inMap.getString(JBSbatACIFI015.WRIB_SVC_KEI_NO)); 		// 割引サービス契約番号
			outputMap.setString(JBSbatACIFI016.WRISVC_TRGT_KEI_NO, 		inMap.getString(JBSbatACIFI015.WRISVC_TRGT_KEI_NO));	// 割引サービス対象契約番号
			outputMap.setString(JBSbatACIFI016.SVC_NO, 	 				inMap.getString(JBSbatACIFI015.SVC_NO)); 				// サービス番号
			outputMap.setString(JBSbatACIFI016.OP_SVKEI_NO, 			inMap.getString(JBSbatACIFI015.OP_SVKEI_NO)); 			// オプションサービス契約番号
			outputMap.setString(JBSbatACIFI016.SVC_SKBT_CD, 			inMap.getString(JBSbatACIFI015.SVC_SKBT_CD));		 	// 料金サービス識別コード
			outputMap.setString(JBSbatACIFI016.PRC_GRP_CD, 	 			inMap.getString(JBSbatACIFI015.PRC_GRP_CD)); 			// 料金グループコード
			outputMap.setString(JBSbatACIFI016.PCRS_CD, 				inMap.getString(JBSbatACIFI015.PCRS_CD)); 				// 料金コースコード
			outputMap.setString(JBSbatACIFI016.PRC_SVC_CD, 	 			inMap.getString(JBSbatACIFI015.PRC_SVC_CD)); 			// 料金サービスコード
			outputMap.setString(JBSbatACIFI016.PRC_KMK_CD, 				prcKmkCd); 												// 料金項目コード
			outputMap.setString(JBSbatACIFI016.COLLECT_PATTERN_CD, 		judgePtnCd); 											// 徴収パターンコード
			outputMap.setBigDecimal(JBSbatACIFI016.PRC, 				prc); 													// 料金
			outputMap.setString(JBSbatACIFI016.USE_STAYMD,				inMap.getString(JBSbatACIFI015.USE_STAYMD));		 	// 利用開始日
			outputMap.setString(JBSbatACIFI016.USE_ENDYMD, 				inMap.getString(JBSbatACIFI015.USE_ENDYMD));		 	// 利用終了日
			outputMap.setString(JBSbatACIFI016.SVC_STAYMD, 				inMap.getString(JBSbatACIFI015.SVC_STAYMD)); 			// サービス開始日
			outputMap.setString(JBSbatACIFI016.FIRST_CHRG_STAYMD, 		inMap.getString(JBSbatACIFI015.FIRST_CHRG_STAYMD)); 	// 初回課金開始日
			outputMap.setString(JBSbatACIFI016.SVC_DSL_YMD, 			inMap.getString(JBSbatACIFI015.SVC_DSL_YMD)); 			// サービス解約日
			outputMap.setString(JBSbatACIFI016.SVC_DLRE, 				inMap.getString(JBSbatACIFI015.SVC_DLRE)); 				// サービス解約理由
			outputMap.setString(JBSbatACIFI016.SVC_KAIHK_DAY, 			inMap.getString(JBSbatACIFI015.SVC_KAIHK_DAY));		 	// サービス回復日
			outputMap.setBigDecimal(JBSbatACIFI016.USE_DAY_CNT, 		inMap.getBigDecimal(JBSbatACIFI015.USE_DAY_CNT)); 		// 利用日数
			outputMap.setBigDecimal(JBSbatACIFI016.USE_FAIL_DAY_CNT, 	inMap.getBigDecimal(JBSbatACIFI015.USE_FAIL_DAY_CNT)); 	// 利用不可日数
			outputMap.setString(JBSbatACIFI016.AIT_DIV, 				inMap.getString(JBSbatACIFI015.AIT_DIV)); 				// 相対区分
			outputMap.setString(JBSbatACIFI016.SIME_DAY, 				inMap.getString(JBSbatACIFI015.SIME_DAY)); 				// 締め日
			outputMap.setString(JBSbatACIFI016.USE_APLY_KH_CD, 			useFailAplyWayCd);										// 利用不可適用可否
			outputMap.setString(JBSbatACIFI016.MAE_YUSEN_JUN, 			JACStrConst.MAE_YUSEN_JUN_0);							// 前受相殺優先順位
			outputMap.setString(JBSbatACIFI016.WRIB_YUSEN_JUN, 			JACStrConst.WRIB_YUSEN_JUN_0);							// 割引優先順位
			outputMap.setString(JBSbatACIFI016.UPPL_JUDGE_YUSEN_JUN, 	JACStrConst.KARA_MOJI); 								// 上限判定優先順位
			outputMap.setString(JBSbatACIFI016.WRIB_KKSHI_KH, 	 		JACStrConst.WRIB_KKS_H); 								// 割引繰越可否
			outputMap.setString(JBSbatACIFI016.SVC_DTL_SKBT_NO, 	 	inMap.getString(JBSbatACIFI015.SVC_DTL_SKBT_NO)); 		// サービス詳細識別番号

			// レコード出力判定フラグの設定
			outputMap.setOutFlg(true);

			// 出力レコード情報を設定する
			outputItem.addOutMapList(outputMap);
		}
	}
	/**▲▲▲▲▲▲メソッド追加 終了▲▲▲▲▲▲*/

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * 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_TEGAK_PRC_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_TEGAK_PRC.selectBySqlDefine(paramList, AC_M_TEGAK_PRC_AC_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
