/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHSknKrhsTgInfSksi
*	ソースファイル名	：JBSbatCHSknKrhsTgInfSksi.java
*	作成者				：富士通　
*	作成日				：2012年01月20日
*＜機能概要＞
*　債権切り離し対象情報作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/01/20   富士通		新規作成
*	v3.00		2012/06/15   FJ)永田	【ANK-0024-04-00】	
*	v4.00		2013/01/23   FJ）後藤	【KT1-2013-0000075】債権ステータス追加
*	v4.01		2013/03/06   FJ）大塚	レンジ化対応
*	v4.02		2013/05/03   FJ）狭間	【TG1-2013-0000296】債権切り離し対象者リストの出力内容不具合修正
*	v4.03		2013/05/28   FJ）後藤	【TG1-2013-0000325】リアル収納、仮収納を未収扱いとした不具合対応
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatCHIFM101;
import eo.business.util.file.JBSbatCHIFM130;
import eo.business.util.table.JBSbatCH_M_PRC_KMK_CS_CHGE;
import eo.business.util.table.JBSbatCH_T_SAIKEN;
import eo.business.util.table.JBSbatCH_T_SEIKY_UCWK;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JZM0171Constant;
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 JBSbatCHSknKrhsTgInfSksi extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(債権)*/
	private static final String D_TBL_NAME_CH_T_SAIKEN = "CH_T_SAIKEN";

	/** テーブル(請求)*/
	private static final String D_TBL_NAME_CH_T_SEIKY = "CH_T_SEIKY";

	/** SQL定義キー(CH_SELECT_013)*/
	private static final String CH_T_SAIKEN_CH_SELECT_013 = "CH_SELECT_013";

	/** SQL定義キー(CH_SELECT_029)*/
	private static final String CH_T_SEIKY_CH_SELECT_029 = "CH_SELECT_029";

	/** テーブルアクセスクラス(債権)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN = null;

	/** テーブルアクセスクラス(請求)*/
	private JBSbatSQLAccess db_CH_T_SEIKY = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 退避．督促データ識別(債権切り離し対象データ)*/
	private String tihTokusokuDataSkbt = null;
	
	/** 退避．切り離し督促ステータス*/
	private String tihKhsTokusokuStat = null;
	
	/** 退避．督促可能期間*/
	private String tihTokusokuPcbPrd = null;
	
	/** 退避．前月 */
	private String tihLastMonth = null; 
	
	/** 固定値　BigDecimal 「-1」*/
	private static final BigDecimal BIGDECIMAL_MINUS_ONE = new BigDecimal("-1");
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_T_SAIKEN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN);
		db_CH_T_SEIKY = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][opeDate=" + super.opeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][freeItem=" + super.freeItem + "]");
	
		
		// パラメータ取得部品の初期処理を行う。（パラメータ取得部品．コンストラクタ使用）
		JACbatParamUtil paramUtil = new JACbatParamUtil(commonItem);
		
		try
		{
			// 督促データ識別の取得（業パラ）
			this.tihTokusokuDataSkbt = paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_TKSK_DATA_SKBT_10);
			// 切り離し督促ステータスの取得（業パラ）
			this.tihKhsTokusokuStat = paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_KHS_TOKUSOKU_STAT);
			// 督促可能期間の取得（業パラ）
			this.tihTokusokuPcbPrd = paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_TOKUSOKU_PSB_PRD);
			// 「-1」を乗算して「督促可能期間」
			this.tihTokusokuPcbPrd = new BigDecimal(this.tihTokusokuPcbPrd).multiply(BIGDECIMAL_MINUS_ONE).toString();
		}
		finally
		{
			// パラメータ取得部品のクローズ処理を行う。（パラメータ取得部品．クローズ使用）
			paramUtil.close();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihTokusokuDataSkbt=" + this.tihTokusokuDataSkbt + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihKhsTokusokuStat=" + this.tihKhsTokusokuStat + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihTokusokuPcbPrd=" + this.tihTokusokuPcbPrd + "]");
		
		// 前月の取得
		getSikyYm();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 請求年月を取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void getSikyYm() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSikyYm]");
		
		JCHbatSeikyKaknoBusinessUtil su = new JCHbatSeikyKaknoBusinessUtil(commonItem);
		try
		{
			// 請求年月取得
			this.tihLastMonth = su.getBillYmContain(super.opeDate, JACStrConst.EVENT_CD_RYOKIN_KEISAN_YMD);
//			this.tihLastMonth = JPCUtilCommon.addMonth(makeStr(this.tihLastMonth, JACStrConst.STR_OF_MONTH), -1).substring(0, 6);
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSikyYm][sikyYm=" + this.tihLastMonth + "]");
		}
		finally
		{
			su.close();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSikyYm]");
		return;
	}
	
	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert inMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][inMap=" + inMap.getMap().toString() + "]") : true;
		
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		// 1. 督促データ識別判定
		// 入力．督促データ識別 ≠ 初期処理．督促データ識別 の場合
		if(!tihTokusokuDataSkbt.equals(inMap.getString(JBSbatCHIFM101.TOKUSOKU_DATA_SKBT)))
		{
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力．督促データ識別 ≠ 初期処理．督促データ識別 の場合]");
			// 処理を終了し次のレコードを読み込む
			return outputItem;
		}
		
		// 2. 未納債権の取得
		ArrayList<JBSbatCommonDBInterface> saikenInfoList = new ArrayList<JBSbatCommonDBInterface>();
		makeSaikenInfo(inMap, saikenInfoList);
		
		if(saikenInfoList.isEmpty())
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][債権スキーマおよび関連スキーマ 該当データなしの場合]");
			// 処理を終了し次のレコードを読み込む
			return outputItem;
		}
		// 3. 請求金額の取得
		
		for(int i = 0; i < saikenInfoList.size() ; i++)
		{
			JBSbatCommonDBInterface dbSaikenMap = saikenInfoList.get(i);
			ArrayList<JBSbatCommonDBInterface> seikyInfoList = new ArrayList<JBSbatCommonDBInterface>();
			makeSeikyInfo(inMap, dbSaikenMap, seikyInfoList);
			if(seikyInfoList.isEmpty())
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][請求スキーマおよび関連スキーマ 該当データなしの場合]");
				// 処理を終了し次のレコードを読み込む
				return outputItem;
			}
			// 4. 債権切り離し対象情報出力
			for(int j = 0; j < seikyInfoList.size() ; j++)
			{
				JBSbatCommonDBInterface dbSeikyMap = seikyInfoList.get(j);
				makeOutputInfo(outputItem, inMap, dbSaikenMap, dbSeikyMap);
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputItem;

	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 債権情報を取得して、リストを作成にします。
	 * 
	 * @param inMap　入力電文
	 * @param list　取得用の空リスト
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void makeSaikenInfo(JBSbatServiceInterfaceMap inMap, ArrayList<JBSbatCommonDBInterface> list) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeSaikenInfo]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(inMap.getString(JBSbatCHIFM101.SEIKY_KEI_NO));	// 請求契約番号
		paramList.setValue(JACStrConst.SAIKEN_STAT_FIX_SEIKY);				// 債権ステータス
		paramList.setValue(JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO);			// 債権ステータス
		paramList.setValue(JACStrConst.SAIKEN_STAT_KASHID_ADD);				// 債権ステータス
		paramList.setValue(JACStrConst.SKN_TRAT_CD_KOPT_SKN);				// 債権取扱いコード
		paramList.setValue(this.tihLastMonth);								// 債権年月（補足）
		paramList.setValue(inMap.getString(JBSbatCHIFM101.TOKUSOKU_NO));	// 督促番号
		paramList.setValue(this.tihKhsTokusokuStat);						// 督促ステータス（補足）
		paramList.setValue(this.tihLastMonth);								// 債権年月（補足）
		paramList.setValue(this.tihTokusokuPcbPrd);							// 督促可能期間（補足）

		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeSaikenInfo][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SAIKEN_CH_SELECT_013(paramList.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = db_CH_T_SAIKEN.selectNext();
		
		
		// 取得出来た場合のみ
		if(dbMap != null)
		{	
			while(dbMap != null)
			{
				list.add(dbMap);
				dbMap = db_CH_T_SAIKEN.selectNext();
			}
		}
		assert list != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeSaikenInfo][list=" + list.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeSaikenInfo]");
		return;
	}
	
	/**
	 * 請求情報を取得して、リストを作成にします。
	 * 
	 * @param inMap　入力電文
	 * @param dbSaikenMap　未納債権DB情報
	 * @param list　取得用の空リスト
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void makeSeikyInfo(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbSaikenMap, ArrayList<JBSbatCommonDBInterface> list) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeSeikyInfo]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(JZM0171Constant.CD01332);							// コード種別コード（買取不可債権）
		paramList.setValue(super.opeDate);										// コード適用開始年月日
		paramList.setValue(super.opeDate);										// コード適用終了年月日
		paramList.setValue(super.systemCode);									// システムコード（"CH"（請求収納））
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);						// 抽出変換コード（"1"（抽出のみ））
		paramList.setValue(super.opeDate);										// 料金項目抽出変換適用開始年月日（バッチ運用日）
		paramList.setValue(super.opeDate);										// 料金項目抽出変換適用終了年月日（バッチ運用日）
		paramList.setValue(super.opeDate);										// 予約適用年月日（バッチ運用日）
		paramList.setValue(inMap.getString(JBSbatCHIFM101.SEIKY_KEI_NO));		// 請求契約番号（督促対象情報．請求契約番号）
		paramList.setValue(dbSaikenMap.getString(JBSbatCH_T_SAIKEN.SAIKEN_YM));	// 請求年月（債権．債権年月）
		paramList.setValue(JACStrConst.SEIKY_STAT_SIKY_ZUMI);					// 請求ステータス（"020"（請求済） ）
		paramList.setValue(dbSaikenMap.getString(JBSbatCH_T_SAIKEN.SAIKEN_YM));	// 請求年月（債権．債権年月）請求内訳用
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeSeikyInfo][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SEIKY_CH_SELECT_029(paramList.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = db_CH_T_SEIKY.selectNext();
		
		// 取得出来た場合のみ
		if(dbMap != null)
		{	
			while(dbMap != null)
			{
				list.add(dbMap);
				dbMap = db_CH_T_SEIKY.selectNext();
			}
		}
		assert list != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeSeikyInfo][list=" + list.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeSeikyInfo]");
		return;
	}
	
	/**
	 * 債権切り離し対象情報作成を作成します
	 * @param outputInItem　出力情報
	 * @param inMap　入力電文
	 * @param dbSaikenMap　未納債権DB情報
	 * @param dbSeikyMap　請求金額DB情報
	 * @throws Exception
	 */
	private void makeOutputInfo(JBSbatOutputItem outputInItem, JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbSaikenMap, JBSbatCommonDBInterface dbSeikyMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputInfo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputInfo][inMap=" + inMap.getMap().toString() + "]");
		
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// 料金グループコード
		outMap.set(JBSbatCHIFM130.PRC_GRP_CD, 				dbSeikyMap.getValue(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_GRP_CD));
		// 料金コースコード
		outMap.set(JBSbatCHIFM130.PCRS_CD, 					dbSeikyMap.getValue(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD));
		// 料金サービスコード
		outMap.set(JBSbatCHIFM130.PRC_SVC_CD, 				dbSeikyMap.getValue(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD));
		// 料金項目コード
		outMap.set(JBSbatCHIFM130.PRC_KMK_CD, 				dbSeikyMap.getValue(JBSbatCH_T_SEIKY_UCWK.PRC_KMK_CD));
		// サービス契約番号
		outMap.set(JBSbatCHIFM130.SVC_KEI_NO, 				dbSeikyMap.getValue(JBSbatCH_T_SEIKY_UCWK.SVC_KEI_NO));
		// 金額
		outMap.set(JBSbatCHIFM130.AMNT, 					dbSeikyMap.getValue(JBSbatCH_T_SEIKY_UCWK.AMNT));
		// 請求契約番号
		outMap.set(JBSbatCHIFM130.SEIKY_KEI_NO, 			inMap.get(JBSbatCHIFM101.SEIKY_KEI_NO));
		// 債権確定年月
		outMap.set(JBSbatCHIFM130.SAIKEN_FIX_YMD, 			dbSaikenMap.getValue(JBSbatCH_T_SAIKEN.SAIKEN_YM));
		// 督促ステータス
		outMap.set(JBSbatCHIFM130.TOKUSOKU_STAT, 			dbSaikenMap.getValue(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT));
		// 買取不可債権分類
		outMap.set(JBSbatCHIFM130.KITR_FAIL_SKN_BNRI, 		dbSeikyMap.getValue(JBSbatZM_M_CD_NM_KANRI.CD_DIV));
		// 買取不可債権分類名称
		outMap.set(JBSbatCHIFM130.KITR_FAIL_SKN_BNRI_NM, 	this.divStr(dbSeikyMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM), 20, true));

		// 出力フラグ設定
		outMap.setOutFlg(true);
		
		// 出力処理
		outputInItem.addOutMapList(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputInfo][outputItem = " + outMap.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputInfo]");
	}
	
	/**
	 * 対象の文字数が引数で渡された桁数を超過している場合、
	 * その桁数にして返します。
	 * 
	 * @param trgStr 対象文字列
	 * @param length 桁数
	 * @param flg 処理方向フラグ（true:先頭から、false:末尾から）
	 * @return String 対象文字列または、桁数調整後の対象文字列
	 */
	private String divStr(String str, int length, boolean flg)
	{
		String rtnStr = JACStrConst.KARA_MOJI;
		
		if(null != str)
		{
			rtnStr = str;
			
			int trgLen = rtnStr.length();
			
			if(trgLen > length)
			{
				if(flg)
				{
					rtnStr = rtnStr.substring(0, length);
				}
				else
				{
					rtnStr = rtnStr.substring(trgLen - length);
				}
			}
		}
		return rtnStr;
	}
	
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_T_SAIKEN.close();
		db_CH_T_SEIKY.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(CH_SELECT_013)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求契約番号
	 *		 	債権ステータス
	 *		 	債権ステータス
	 *		 	債権ステータス
	 *		 	債権取扱いコード
	 *		 	債権年月
	 *		 	督促番号
	 *		 	督促ステータス
	 *		 	債権年月
	 *		 	督促可能期間
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_CH_SELECT_013(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());

		// DBアクセスを実行します
		db_CH_T_SAIKEN.selectBySqlDefine(paramList, CH_T_SAIKEN_CH_SELECT_013);
	}

	/**
	 * SQLKEY(CH_SELECT_029)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 *		 	コード適用開始年月日
	 *		 	コード適用終了年月日
	 *		 	システムコード
	 *		 	抽出変換コード
	 *		 	料金項目抽出変換適用開始年月日
	 *		 	料金項目抽出変換適用終了年月日
	 *		 	予約適用年月日
	 *		 	請求契約番号
	 *		 	請求年月
	 *		 	請求ステータス
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_CH_SELECT_029(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());

		// DBアクセスを実行します
		db_CH_T_SEIKY.selectBySqlDefine(paramList, CH_T_SEIKY_CH_SELECT_029);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
