/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACOpTelGkChsht
*	ソースファイル名	：JBSbatACOpTelGkChsht.java
*	作成者				：富士通　
*	作成日				：2011年08月04日
*＜機能概要＞
*　オプション電話合計抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/04   富士通		新規作成
*	v4.00.00	2013/01/28   FJ)指原	【ST4-2013-0000052】性能改善：SQLチューニング＋UI書を正とし処理修正
*	v5.00.00	2013/07/09   FJ)大戸	【TG1-2013-0000662】マスタ参照基準日対応
*	v8.00.00	2013/12/27   FJ)柴田	【ANK-1794-00-00】サービス詳細識別番号を追加
*	v8.01.00	2014/03/10   FJ)伊藤	【TG1-2014-0000001】マスタ参照年月日対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JACbatSchdlUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatInterface;
import eo.business.util.file.JBSbatACIFM084;
import eo.business.util.table.JBSbatAC_M_JURYOPRC;
import eo.business.util.table.JBSbatAC_T_CHRG_JSVKEI_CKS;
import eo.business.util.table.JBSbatAC_T_EONET_TW_DTL;
import eo.business.util.table.JBSbatAC_T_EONET_TW_GK;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACOpTelGkChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(ｅｏ−ｎｅｔフォン通話明細)*/
	private static final String D_TBL_NAME_AC_T_EONET_TW_DTL = "AC_T_EONET_TW_DTL";

	/** テーブル(従量料金)*/
	private static final String D_TBL_NAME_AC_M_JURYOPRC = "AC_M_JURYOPRC";

	/** SQL定義キー(AC_SELECT_003)*/
	private static final String AC_T_EONET_TW_DTL_AC_SELECT_003 = "AC_SELECT_003";

	/** SQL定義キー(AC_SELECT_001)*/
	private static final String AC_M_JURYOPRC_AC_SELECT_001 = "AC_SELECT_001";

	/** テーブルアクセスクラス(ｅｏ−ｎｅｔフォン通話明細)*/
	private JBSbatSQLAccess db_AC_T_EONET_TW_DTL = null;

	/** テーブルアクセスクラス(従量料金)*/
	private JBSbatSQLAccess db_AC_M_JURYOPRC = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 退避．従量料金情報マップ*/
	private HashMap<String, JBSbatCommonDBInterface> tihJuryoPrcMap = null;

	/** 0 */
	private static final String ZERO = "0";
	
	/** 料金計算月 */
	private String prcCalcYm = JACStrConst.KARA_MOJI;
	
	/** 出力対象フラグキー */
	String outKeyVal = "";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_AC_T_EONET_TW_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_AC_T_EONET_TW_DTL);
		db_AC_M_JURYOPRC = new JBSbatSQLAccess(commonItem, D_TBL_NAME_AC_M_JURYOPRC);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		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 + "]");

		// 従量料金、料金計算日の取得
		makeJuryoPrcInfoMap();
		
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");

		JACbatParamUtil paramUtil = new JACbatParamUtil(super.commonItem);
		
		// 対象キー制御使用機能コードの取得
		String tgKeyCtrlUseKino = paramUtil.getGyoumuParameter(JACStrConst.WKPARA_AC_TWK_RE_CL_SKY_NO1);

		paramUtil.close();
		
		// 出力共通電文オブジェクト生成
		JBSbatOutputItem outputBean = new JBSbatOutputItem();

		// eo-netフォン料金情報の取得
		ArrayList<JBSbatServiceInterfaceMap> setOutMap = getFileDataMap(tgKeyCtrlUseKino);
		if (setOutMap.size() == 0)
		{
			return null;
		}
		else
		{
			for (JBSbatServiceInterfaceMap outMap : setOutMap)
			{
				// 出力電文の設定
				outputBean.addOutMapList(outMap);
			}
		}
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_AC_T_EONET_TW_DTL.close();
		db_AC_M_JURYOPRC.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert 	JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(AC_SELECT_003)で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_T_EONET_TW_DTL_AC_SELECT_003(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_T_EONET_TW_DTL.selectBySqlDefine(paramList, AC_T_EONET_TW_DTL_AC_SELECT_003);
	}

	/**
	 * 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_JURYOPRC_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());

		// DBアクセスを実行します
		db_AC_M_JURYOPRC.selectBySqlDefine(paramList, AC_M_JURYOPRC_AC_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 従量料金情報検索（従量料金の取得）<br>
	 * 検索結果でマップを作成する。 <br>
	 * @throws Exception
	 */
	private void makeJuryoPrcInfoMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeJuryoPrcInfoMap]");
		
		// 請求年月取得
		JACbatSchdlUtil schdUtil = new JACbatSchdlUtil(commonItem);
		
		// 料金スケジュール定義アクセス部品を使用する。
		prcCalcYm = schdUtil.getBillDate(super.opeDate, JACStrConst.EVENT_CD_RYOKIN_KEISAN_YMD);
		
		// 請求月前月
		String prevseikyYm = JBSbatInterface.adjustMonth(prcCalcYm.concat("01"), -1).substring(0, 6);
		
		// 月初日、締め日　←　JACbatSchdlUtil.getUseStrEnd(請求年月, イベントコード("01"（利用開始日））, イベントコード（"02"（利用終了日））)
		String[] rtn = schdUtil.getUseStrEnd(prevseikyYm, JACStrConst.EVENT_CD_USE_STAYMD, JACStrConst.EVENT_CD_USE_ENDYMD);
		String endYmd = rtn[1];
		
		// クローズ
		schdUtil.close();
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(super.systemCode);	// システムコード

//20130709 追加　FJ)OHTO　START
		paramList.setValue(endYmd);							// 請求年月前月末日
		paramList.setValue(endYmd);							// 請求年月前月末日

		//paramList.setValue(super.opeDate);		// 従量料金適用開始年月日
		//paramList.setValue(super.opeDate);		// 従量料金適用終了年月日
//20130709 追加　FJ)OHTO　END

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyKeiInfo][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeAC_M_JURYOPRC_AC_SELECT_001(paramList.getList().toArray());
		
		// 取得結果取得
		JBSbatCommonDBInterface dbMap = db_AC_M_JURYOPRC.selectNext();
		tihJuryoPrcMap = new HashMap<String, JBSbatCommonDBInterface>();
		if(dbMap == null)
		{
			// 従量料金から取得できない場合はエラーとする
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EACB0440CE,
					new String[] { JBSbatAC_M_JURYOPRC.TABLE_NAME });
		}
		while(dbMap != null)
		{
			// キー作成
			// 料金コースコード＋料金サービスコード＋課税非課税コード＋相対番号＋料金項目コード
			String key = makeStr(dbMap.getString(JBSbatAC_M_JURYOPRC.PCRS_CD), 
					dbMap.getString(JBSbatAC_M_JURYOPRC.PRC_SVC_CD), 
					dbMap.getString(JBSbatAC_M_JURYOPRC.KAZEI_HIKAZEI_CD), 
					dbMap.getString(JBSbatAC_M_JURYOPRC.AITAI_NO), 
					dbMap.getString(JBSbatAC_M_JURYOPRC.PRC_KMK_CD));
			
			// キー・取得した情報をマップに
			tihJuryoPrcMap.put(key, dbMap);

			// 次レコード取得
			dbMap = db_AC_M_JURYOPRC.selectNext(); 
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeJuryoPrcInfoMap]");
		return;
	}
	
	/**
	 * 文字を連結します
	 * @param string　文字
	 * @return strBuf　連結した文字列
	 */
	private String makeStr(String ...string)
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeStr]");
		
		StringBuffer strBuf = new StringBuffer();
		for(String str:string){
			strBuf.append(str);
		}
		assert strBuf != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeStr][strBuf = " + strBuf.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeStr]");
		
		return strBuf.toString();
	}
	

	/**
	 * eo-netフォン料金情報を取得し、出力電文に設定する
	 * @param tgKeyCtrlUseKino
	 * @return	ArrayList<JBSbatServiceInterfaceMap>	出力電文リスト
	 * @throws Exception
	 */
	private ArrayList<JBSbatServiceInterfaceMap> getFileDataMap(String tgKeyCtrlUseKino) throws Exception
	{
		ArrayList<JBSbatServiceInterfaceMap> retOutMap = new ArrayList<JBSbatServiceInterfaceMap>();

		// eo-netフォン通話明細、課金対象従量サービス契約蓄積の取得
		executeAC_T_EONET_TW_DTL_AC_SELECT_003(new Object[] {tgKeyCtrlUseKino, prcCalcYm, prcCalcYm, prcCalcYm});
		JBSbatCommonDBInterface record = db_AC_T_EONET_TW_DTL.selectNext();
		while (record != null)
		{
			// 相対番号取得
			String aitaiNo = null;
			// 課金対象従量サービス契約蓄積．相対コード　＝　"2"（請求先相対契約）の場合
			if(JACStrConst.AITAI_NO_2.equals(record.getString(JBSbatAC_T_CHRG_JSVKEI_CKS.AITAI_CD)))
			{
				// 課金対象従量サービス契約蓄積．請求契約番号
				aitaiNo = record.getString(JBSbatAC_T_EONET_TW_GK.SEIKY_KEI_NO);
			}
			// 課金対象従量サービス契約蓄積．相対コード　＝　"3"（サービス相対契約）の場合
			else if(JACStrConst.AITAI_NO_3.equals(record.getString(JBSbatAC_T_CHRG_JSVKEI_CKS.AITAI_CD)))
			{
				// 課金対象従量サービス契約蓄積．サービス契約番号
				aitaiNo = record.getString(JBSbatAC_T_EONET_TW_GK.SVC_KEI_NO);
			}
			// 上記以外の場合
			else
			{
				// ALLスペース
				aitaiNo = JACStrConst.AITAI_NO_SP;
			}
			
			// キー項目作成
			// 課金対象従量サービス契約蓄積．料金コースコード　＋　課金対象従量サービス契約蓄積．料金サービスコード
			// + eo-netフォン通話明細．課税非課税コード  + 相対番号(※) + eo-netフォン通話明細．料金項目コード
			String saveKey = makeStr(record.getString(JBSbatAC_T_CHRG_JSVKEI_CKS.PCRS_CD), 
					record.getString(JBSbatAC_T_CHRG_JSVKEI_CKS.PRC_SVC_CD), 
					record.getString(JBSbatAC_T_EONET_TW_DTL.KAZEI_HIKAZEI_CD), 
					aitaiNo,
					record.getString(JBSbatAC_T_EONET_TW_DTL.PRC_KMK_CD));
			
			// サービス契約番号、オプション契約番号、料金コース、請求契約番号、請求年月、課金電話番号、料金項目コード、課税非課税コード
			// で重複するレコードは、課金開始年月日の降順(SQL指定)で１件のみが出力対象
			String outKey = makeStr(record.getString(JBSbatAC_T_EONET_TW_DTL.SVC_KEI_NO),
					record.getString(JBSbatAC_T_EONET_TW_DTL.OP_SVC_KEI_NO),
					record.getString(JBSbatAC_T_EONET_TW_DTL.PCRS_CD),
					record.getString(JBSbatAC_T_EONET_TW_DTL.SEIKY_KEI_NO),
					record.getString(JBSbatAC_T_EONET_TW_DTL.SEIKY_YM),
					record.getString(JBSbatAC_T_EONET_TW_DTL.KAKINS_TELNO),
					record.getString(JBSbatAC_T_EONET_TW_DTL.PRC_KMK_CD),
					record.getString(JBSbatAC_T_EONET_TW_DTL.KAZEI_HIKAZEI_CD));
			
			JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

			// 利用料金情報の出力
			if(tihJuryoPrcMap.containsKey(saveKey) && !ZERO.equals(record.getString(JBSbatAC_T_EONET_TW_DTL.PCALL_PRC)))
			{
				// 出力キーで判断し、一件目のみ出力
				if (!outKeyVal.equals(outKey)) {
					// 出力用マップに設定
					makeOutMap(outMap, record, saveKey);
					retOutMap.add(outMap);
				}
			}

			outKeyVal = outKey;

			record = db_AC_T_EONET_TW_DTL.selectNext();
		}
		return retOutMap;
	}
	
	/**
	 * 出力用マップに設定を行います。
	 * @param outMap 出力用マップ
	 * @param record eo-netフォン通話合計情報
	 * @param saveKey キー項目
	 * @throws Exception
	 */
	private void makeOutMap(JBSbatServiceInterfaceMap outMap, JBSbatCommonDBInterface record, String saveKey) throws Exception
	{
		JBSbatCommonDBInterface dbMap = tihJuryoPrcMap.get(saveKey);

		// 請求契約番号
		outMap.set(JBSbatACIFM084.SEIKY_KEI_NO, 		record.getValue(JBSbatAC_T_EONET_TW_DTL.SEIKY_KEI_NO));

		// 請求年月
		outMap.set(JBSbatACIFM084.SEIKY_YM, 			record.getValue(JBSbatAC_T_EONET_TW_DTL.SEIKY_YM));

		// 整理番号
		outMap.set(JBSbatACIFM084.SEIRI_NO, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.SEIRI_NO));
		
		// 割引サービス契約番号
		outMap.set(JBSbatACIFM084.WRIB_SVC_KEI_NO, 		record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.WRIB_SVC_KEI_NO));

		// 割引サービス対象契約番号
		outMap.set(JBSbatACIFM084.WRISVC_TRGT_KEI_NO, 	JACStrConst.KARA_MOJI);

		// サービス番号
		outMap.set(JBSbatACIFM084.SVC_NO, 				record.getValue(JBSbatAC_T_EONET_TW_DTL.SVC_KEI_NO));
		
		// オプションサービス契約番号
		outMap.set(JBSbatACIFM084.OP_SVKEI_NO, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.OP_SVC_KEI_NO));

		// サービス識別
		outMap.set(JBSbatACIFM084.SVC_SKBT_CD, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.PRC_SVC_SKBT_CD));
		
		// 料金グループコード
		outMap.set(JBSbatACIFM084.PRC_GRP_CD,			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.PRC_GRP_CD));

		// 料金コースコード
		outMap.set(JBSbatACIFM084.PCRS_CD, 				record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.PCRS_CD));

		// 料金サービスコード
		outMap.set(JBSbatACIFM084.PRC_SVC_CD, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.PRC_SVC_CD));
		
		// 料金項目コード
		outMap.set(JBSbatACIFM084.PRC_KMK_CD, 			record.getValue(JBSbatAC_T_EONET_TW_DTL.PRC_KMK_CD));
		
		// 徴収パターンコード
		outMap.set(JBSbatACIFM084.COLLECT_PATTERN_CD, 	dbMap.getString(JBSbatAC_M_JURYOPRC.COLLECT_PATTERN_CD));
		
		// 料金
		outMap.set(JBSbatACIFM084.PRC, 					record.getValue(JBSbatAC_T_EONET_TW_DTL.PCALL_PRC));

		// 利用開始日
		outMap.set(JBSbatACIFM084.USE_STAYMD, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.USE_STAYMD));

		// 利用終了日
		outMap.set(JBSbatACIFM084.USE_ENDYMD, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.USE_ENDYMD));

		// サービス開始日
		outMap.set(JBSbatACIFM084.SVC_STAYMD, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.SVC_STAYMD));

		// 初回課金開始日
		outMap.set(JBSbatACIFM084.FIRST_CHRG_STAYMD, 	record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.FIRST_CHRG_STAYMD));

		// サービス解約日
		outMap.set(JBSbatACIFM084.SVC_DSL_YMD, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.SVC_DSL_YMD));

		// サービス解約理由
		outMap.set(JBSbatACIFM084.SVC_DLRE, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.SVC_DSL_RSN_SKBT_CD));

		// サービス回復日
		outMap.set(JBSbatACIFM084.SVC_KAIHK_DAY, 		record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.KAIHK_YMD));

		// 利用日数
		outMap.set(JBSbatACIFM084.USE_DAY_CNT, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.USE_DAY_CNT));

		// 利用不可日数
		outMap.set(JBSbatACIFM084.USE_FAIL_DAY_CNT, 	record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.USE_FAIL_DAY_CNT));

		// 相対区分
		outMap.set(JBSbatACIFM084.AIT_DIV, 				record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.AITAI_CD));

		// 締め日
		outMap.set(JBSbatACIFM084.SIME_DAY, 			record.getValue(JBSbatAC_T_CHRG_JSVKEI_CKS.SIME_DAY));
		
		// 利用不可適用可否
		outMap.set(JBSbatACIFM084.USE_APLY_KH_CD, 		dbMap.getString(JBSbatAC_M_JURYOPRC.USE_FAIL_APLY_WAY_CD));

		// 前受相殺優先順位
		outMap.set(JBSbatACIFM084.MAE_YUSEN_JUN, 		JACStrConst.MAEUK_SOSAI_YUSEN_JUN_0);

		// 割引優先順位
		outMap.set(JBSbatACIFM084.WRIB_YUSEN_JUN, 		JACStrConst.WRIB_YUSEN_JUN_0);

		// 上限判定優先順位
		outMap.set(JBSbatACIFM084.UPPL_JUDGE_YUSEN_JUN, JACStrConst.KARA_MOJI);

		// 割引繰越可否
		outMap.set(JBSbatACIFM084.WRIB_KKSHI_KH, 		JACStrConst.WRIB_KKS_H);

		// サービス詳細識別番号
		outMap.set(JBSbatACIFM084.SVC_DTL_SKBT_NO, 		JACStrConst.KARA_MOJI);
		// 出力フラグを設定する
		outMap.setOutFlg(true);
	}
}
