/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom  					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACWribFlrJudge
*	ソースファイル名	：JBSbatACWribFlrJudge.java
*	作成者				：富士通　
*	作成日				：2011年06月17日
*＜機能概要＞
*　割引段階判定部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/17   富士通		新規作成
*	v4.00.00	2013/01/25   FJ)小柴	【内部管理番号-0000702】割引段階の判定時に使用する部品を変更
*	v8.00.00	2013/12/13   FJ) 鈴木	【ANK-1794-00-00】L2-MVNO対応（請求書電話番号表示（LC含む））
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;

import eo.business.common.JACbatRknBusinessUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatInterface;
import eo.business.util.file.JBSbatACIFM061;
import eo.business.util.table.JBSbatAC_M_WRIB_FLR;
import eo.common.constant.JACStrConst;
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 JBSbatACWribFlrJudge extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(割引段階)*/
	private static final String D_TBL_NAME_AC_M_WRIB_FLR = "AC_M_WRIB_FLR";

	/** SQL定義キー(AC_SELECT_001)*/
	private static final String AC_M_WRIB_FLR_AC_SELECT_001 = "AC_SELECT_001";

	/** テーブルアクセスクラス(割引段階)*/
	private JBSbatSQLAccess db_AC_M_WRIB_FLR = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼クラス変数追加 開始▼▼▼▼▼▼*/
	
	/** 割引段階判定スキーマ情報リスト */
	private ArrayList<JBSbatCommonDBInterface> wribFlrJudgeMap = null;
	
	/**▲▲▲▲▲▲クラス変数対追加 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_AC_M_WRIB_FLR = new JBSbatSQLAccess(commonItem, D_TBL_NAME_AC_M_WRIB_FLR);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		// 割引段階情報を取得する
		JBSbatCommonDBInterface dbMap = this.getBYWbdankaiMst();
		
		// 検索結果を割引段階リストに設定
		this.wribFlrJudgeMap = new ArrayList<JBSbatCommonDBInterface>();
		
		// 検索結果がなくなるまで繰り返す
		while (dbMap != null)
		{
			// 割引段階リストへ設定
			this.wribFlrJudgeMap.add(dbMap);	

			// 次レコード取得
			dbMap = db_AC_M_WRIB_FLR.selectNext();
		}
				
		// アクセスクラスをクローズする
		db_AC_M_WRIB_FLR.close();
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @param outputInItem 入力情報
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 入力情報 = NULLの場合、主処理を抜ける。
		if (inMap == null)
		{
			return outputInItem;
		}

		// 退避情報の初期化（初回処理）
		if (!outputInItem.isTmpList())
		{
			outputInItem.addTmpList(null); // 退避・割引制御区分
			outputInItem.addTmpList(null); // 退避・割引段階コード
		}

		// 入力情報のキー情報同項目の設定 (inKey)
		String inKey = getInKey(inMap);

		// キー情報の設定 (outKey)
		String outKey = null;

		// 集計キー（出力）が既に設定されている場合
		if (outputInItem.isKeyList())
		{
			outKey = (String)outputInItem.getKeyList().get(0);
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "集計Keyが設定済み(" + outKey + ")");
		}
		// 設定されていない場合（初回処理）
		else
		{
			// null値を設定する
			outKey = null;
		}

		// キー情報 ≠ 入力情報の同項目 の場合
		if (!inKey.equals(outKey))
		{
			// キー情報 ← 入力情報の同項目
			// inMapの情報をoutItemにコピーする（ＫＥＹ格納リスト）
			outputInItem.clearKeyList();
			outputInItem.addKeyList(inKey);

			// 退避・割引制御区分 ← 入力情報の同項目
			outputInItem.getTmpList().set(0, inMap.getString(JBSbatACIFM061.WRIB_CTRL_SKBT_CD)); // 退避．割引制御識別コード
		}

		// 入力情報・割引制御識別コード　＝　"1"(割引段階)の場合
		if (JACStrConst.WRIB_CTRL_SKBT_CD_FLR.equals(inMap.getString(JBSbatACIFM061.WRIB_CTRL_SKBT_CD)))
		{
			// 割引段階コード取得処理
			outputInItem.getTmpList().set(1, this.getWbgrade_cd(inMap)); // 退避・割引段階コード
		}

		// 割引対象情報作成
		// 入力情報・割引制御識別コード　＝　"1"(割引段階)の場合
		if (JACStrConst.WRIB_CTRL_SKBT_CD_FLR.equals(inMap.getString(JBSbatACIFM061.WRIB_CTRL_SKBT_CD)))
		{
			// 処理なし
		}
		// 上記以外の場合
		else
		{

			String tmpWaribCtrlSkbt = null; // 退避・割引制御識別コード
			String tmpWbribFrl 		= null; // 退避・割引段階コード

			tmpWaribCtrlSkbt = (String)outputInItem.getTmpList().get(0);	// 退避・割引制御識別コード
			tmpWbribFrl = (String)outputInItem.getTmpList().get(1);			// 退避・割引段階コード

			// 退避・割引制御識別コード　＝　"1"(割引段階)の場合
			if (JACStrConst.WRIB_CTRL_SKBT_CD_FLR.equals(tmpWaribCtrlSkbt))
			{
				
				// 退避・割引段階コード　＝　nullの場合
				if (JBSbatInterface.isNull(tmpWbribFrl))
				{
					// 処理なし
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "割引段階->段階コード:NULL->処理なし");
				}
				// 上記以外の場合
				else
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "割引段階->入力->出力設定");
					// 入力情報→出力情報設定処理
					this.setOutputInfo(inMap, tmpWaribCtrlSkbt, tmpWbribFrl, outputInItem);
				}
			}
			else
			{
				// 入力情報→出力情報設定処理
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "入力->出力設定");
				this.setOutputInfo(inMap, tmpWaribCtrlSkbt, tmpWbribFrl, outputInItem);
			}
		}

		return outputInItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_AC_M_WRIB_FLR.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * 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_WRIB_FLR_AC_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_AC_M_WRIB_FLR.selectBySqlDefine(paramList, AC_M_WRIB_FLR_AC_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼メソッド追加 開始▼▼▼▼▼▼*/

	/**
	 * キー情報同項目の設定を行います。
	 * 
	 * @param inMap 割引対象情報(ファイル入力）
	 * @return String キー情報同項目
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getInKey(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		StringBuffer keyBuf = new StringBuffer();
		keyBuf.append(inMap.getString(JBSbatACIFM061.SEIKY_YM));		// 請求年月
		keyBuf.append(inMap.getString(JBSbatACIFM061.WRIB_PCRS_CD));	// 割引料金コースコード
		keyBuf.append(inMap.getString(JBSbatACIFM061.WRIB_PRC_SVC_CD));	// 割引料金サービスコード
		keyBuf.append(inMap.getString(JBSbatACIFM061.SEIKY_KEI_NO));	// 請求先番号
		keyBuf.append(inMap.getString(JBSbatACIFM061.SVC_NO)); 			// サービス番号

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "請求契約番号(" + inMap.getString(JBSbatACIFM061.SEIKY_KEI_NO) + ")");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "請求年月(" + inMap.getString(JBSbatACIFM061.SEIKY_YM) + ")");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "割引料金コースコード(" + inMap.getString(JBSbatACIFM061.WRIB_PCRS_CD) + ")");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "割引料金サービスコード(" + inMap.getString(JBSbatACIFM061.WRIB_PRC_SVC_CD) + ")");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "サービス番号(" + inMap.getString(JBSbatACIFM061.SVC_NO) + ")");

		return keyBuf.toString();
	}
	
	/**
	 * 割引段階コード取得処理です。
	 * 
	 * @param inMap 割引対象情報(ファイル入力）
	 * @return String 割引段階コード
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getWbgrade_cd(JBSbatServiceInterfaceMap inMap) throws Exception
	{

		String tmpWaribFrlCd = null; // 割引段階コード

		// マスタ検索用の請求先番号の設定をする
		String aitaiNo = null;
		// 相対識別　＝　"2"(請求先相対契約)の場合
		if(inMap.getString(JBSbatACIFM061.AIT_DIV).equals(JACStrConst.AITAIKBN_SEIKYU))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "相対識別 ＝ 2(請求先相対契約)");
			aitaiNo = inMap.getString(JBSbatACIFM061.SEIKY_KEI_NO);	// 請求先番号
			// ログ出力
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "相対番号に請求番号が設定されました。(" + aitaiNo + ")");
		}
		
		// 相対識別　＝　"3"(サービス相対契約)の場合
		else if(inMap.getString(JBSbatACIFM061.AIT_DIV).equals(JACStrConst.AITAIKBN_SVC))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "相対識別 ＝ 3(サービス相対契約)");
			aitaiNo = inMap.getString(JBSbatACIFM061.SVC_NO);		// サービス番号
			// ログ出力
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "相対番号にサービス番号が設定されました。(" + aitaiNo + ")");
		}
		// 上記以外の場合
		else
		{
			aitaiNo = JACStrConst.AITAINO_SPACE;							// 相対番号（ALLスペース）
			// ログ出力
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "相対番号にALLスペースが設定されました。");
		}

		// 割引段階情報を取得する
		JBSbatCommonDBInterface dbMap = this.getBYWbdankaiMst(inMap, aitaiNo);

		// 相対識別が"2"請求先相対契約または相対識別が"3"サービス相対契約の場合で該当データなしの場合
		if (JBSbatInterface.isNull(dbMap) && (inMap.getString(JBSbatACIFM061.AIT_DIV).equals(JACStrConst.AITAIKBN_SEIKYU)
				|| inMap.getString(JBSbatACIFM061.AIT_DIV).equals(JACStrConst.AITAIKBN_SVC)))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "相対識別が=2 請求先相対契約または相対識別が 3 サービス相対契約の場合で該当データなし");
			// 対象キー：相対番号の設定
			aitaiNo = JACStrConst.AITAINO_SPACE; 							// 相対番号（ALLスペース）
			// ログ出力
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "相対番号にALLスペースが設定されました。");
			// 割引段階情報を取得する
			dbMap = this.getBYWbdankaiMst(inMap, aitaiNo);
		}
		// 正常終了した場合
		if (dbMap != null)
		{
			// 退避・割引段階コード ← 割引段階マスタ・割引段階コード
			tmpWaribFrlCd = dbMap.getString(JBSbatAC_M_WRIB_FLR.WRIB_FLR_CD);
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "退避・割引段階コード(" + tmpWaribFrlCd + ") ← 割引段階マスタ・割引段階コード");
		}
		// 該当データなしの場合
		else
		{
			// 退避・割引段階コード ← null
		}
		
		// ログ出力(退避．割引段階コード)
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "退避．割引段階コード：" + tmpWaribFrlCd);

		return tmpWaribFrlCd;
	}

	/**
	 * 割引段階情報を取得します。
	 * 
	 * @param inMap 割引対象情報
	 * @param aitaiNo 相対番号
	 * @return JBSbatCommonDBInterface 割引段階情報リスト
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getBYWbdankaiMst(JBSbatServiceInterfaceMap inMap, String aitaiNo) throws Exception
	{
		JBSbatCommonDBInterface retMap = null;

		for (int i = 0; i < wribFlrJudgeMap.size(); i++)
		{

			// 割引料金コースコード
			String pcrs = ((JBSbatCommonDBInterface)wribFlrJudgeMap.get(i)).getString(JBSbatAC_M_WRIB_FLR.PCRS_CD);
			// 割引料金サービスコード
			String svcCd = ((JBSbatCommonDBInterface)wribFlrJudgeMap.get(i)).getString(JBSbatAC_M_WRIB_FLR.PRC_SVC_CD);
			// 相対番号
			String aitaiNoM = ((JBSbatCommonDBInterface)wribFlrJudgeMap.get(i)).getString(JBSbatAC_M_WRIB_FLR.AITAI_NO);
			// 割引集計コード
			String shukiCd = ((JBSbatCommonDBInterface)wribFlrJudgeMap.get(i)).getString(JBSbatAC_M_WRIB_FLR.WRIB_SHUK_CD);
			// 下限値
			String lowlValue = ((JBSbatCommonDBInterface)wribFlrJudgeMap.get(i)).getString(JBSbatAC_M_WRIB_FLR.LOWL_VALUE);
			// 上限値
			String upplValue = ((JBSbatCommonDBInterface)wribFlrJudgeMap.get(i)).getString(JBSbatAC_M_WRIB_FLR.UPPL_VALUE);
			
			// 料金
			BigDecimal prc = inMap.getBigDecimal(JBSbatACIFM061.PRC);
			
			// マッチした場合
			if (pcrs.equals(inMap.getString(JBSbatACIFM061.WRIB_PCRS_CD)) 
					&& svcCd.equals(inMap.getString(JBSbatACIFM061.WRIB_PRC_SVC_CD))
					&& aitaiNoM.equals(aitaiNo)
					&& shukiCd.equals(inMap.getString(JBSbatACIFM061.WRIB_SHUK_CD))
					&& JACbatRknBusinessUtil.rangeCheck(upplValue, false, lowlValue, true, prc.toString(), "1"))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "割引段階情報にマッチ" +
								" 割引料金コースコード(" + pcrs + ")" +
								" 割引料金サービスコード(" + svcCd + ")" +
								" 相対番号(" + aitaiNoM + ")" +
								" 割引集計コード(" + shukiCd + ")" +
								" 下限値(" + lowlValue + ")" +
								" 上限値(" + upplValue + ")" +
								" 料金(" + prc + ")");
				retMap = (JBSbatCommonDBInterface)wribFlrJudgeMap.get(i);
				break;
			}		
		}
		
		return retMap;
	}

	/**
	 * 割引段階情報を取得します。
	 * 
	 * @return JBSbatCommonDBInterface 割引段階情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getBYWbdankaiMst() throws Exception
	{
		JBSbatCommonDBInterface retMap = null;

		// 対象キーの設定
		JBSbatCommonDBInterface keyList = new JBSbatCommonDBInterface();
		keyList.setValue(super.systemCode); 	// システムコード
		keyList.setValue(super.opeDate); 		// 運用日

		// SQL実行
		executeAC_M_WRIB_FLR_AC_SELECT_001(keyList.getList().toArray());
		
		retMap = this.db_AC_M_WRIB_FLR.selectNext();

		return retMap;
	}

	/**
	 * 出力情報設定処理です。
	 * 
	 * @param inMap 割引対象情報(ファイル入力）
	 * @param inWaribCtrlSkbtCd 退避・割引制御識別コード
	 * @param inWribFrlCd 退避・割引段階コード
	 * @param outItem 割引対象情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setOutputInfo(JBSbatServiceInterfaceMap inMap, String inWaribCtrlSkbtCd, String inWribFrlCd, JBSbatOutputItem outItem)
			throws Exception
	{

		// 出力オブジェクト格納リストの初期化
		outItem.clearOutMapList();

		// レコード出力電文
		JBSbatServiceInterfaceMap tmpOutMap = new JBSbatServiceInterfaceMap();

		// 退避．割引制御識別コード　＝　"1"(割引段階)の場合
		if (JACStrConst.WRIB_CTRL_SKBT_CD_FLR.equals(inWaribCtrlSkbtCd))
		{
			// 割引段階コード　←　退避．割引段階コード
			tmpOutMap.setString(JBSbatACIFM061.WRIB_FLR_CD, 		inWribFrlCd); 											// 割引段階コード
		}
		// 上記以外の場合
		else
		{
			// 入力情報の同項目を設定
			tmpOutMap.setString(JBSbatACIFM061.WRIB_FLR_CD, 		inMap.getString(JBSbatACIFM061.WRIB_FLR_CD)); 			// 割引段階コード
		}
		
		// 入力情報→出力情報
		tmpOutMap.setString(JBSbatACIFM061.WRIB_PCRS_CD, 			inMap.getString(JBSbatACIFM061.WRIB_PCRS_CD)); 			// 割引料金コースコード
		tmpOutMap.setString(JBSbatACIFM061.WRIB_PRC_SVC_CD, 		inMap.getString(JBSbatACIFM061.WRIB_PRC_SVC_CD)); 		// 割引料金サービスコード
		tmpOutMap.setString(JBSbatACIFM061.WRIB_SVC_SKBT, 			inMap.getString(JBSbatACIFM061.WRIB_SVC_SKBT)); 		// 割引サービス識別
		tmpOutMap.setString(JBSbatACIFM061.WRIB_CTRL_SKBT_CD, 		inMap.getString(JBSbatACIFM061.WRIB_CTRL_SKBT_CD)); 	// 割引制御識別コード
		tmpOutMap.setString(JBSbatACIFM061.SHUK_TANI_CD, 			inMap.getString(JBSbatACIFM061.SHUK_TANI_CD)); 			// 集計単位コード
		tmpOutMap.setString(JBSbatACIFM061.SHUK_KEY, 				inMap.getString(JBSbatACIFM061.SHUK_KEY)); 				// 集計キー
		tmpOutMap.setString(JBSbatACIFM061.WRIB_SHUK_CD, 			inMap.getString(JBSbatACIFM061.WRIB_SHUK_CD)); 			// 割引集計コード
		tmpOutMap.setString(JBSbatACIFM061.WRIB_YUSEN_JUN, 			inMap.getString(JBSbatACIFM061.WRIB_YUSEN_JUN)); 		// 割引優先順位
		tmpOutMap.setString(JBSbatACIFM061.SEIKY_KEI_NO, 			inMap.getString(JBSbatACIFM061.SEIKY_KEI_NO)); 			// 請求先番号
		tmpOutMap.setString(JBSbatACIFM061.SEIKY_YM, 				inMap.getString(JBSbatACIFM061.SEIKY_YM)); 				// 請求年月
		tmpOutMap.setString(JBSbatACIFM061.SEIRI_NO, 				inMap.getString(JBSbatACIFM061.SEIRI_NO)); 				// 整理番号 
		tmpOutMap.setString(JBSbatACIFM061.WRIB_SVC_KEI_NO, 		inMap.getString(JBSbatACIFM061.WRIB_SVC_KEI_NO)); 		// 割引サービス契約番号
		tmpOutMap.setString(JBSbatACIFM061.WRISVC_TRGT_KEI_NO, 		inMap.getString(JBSbatACIFM061.WRISVC_TRGT_KEI_NO)); 	// 割引サービス対象契約番号
		tmpOutMap.setString(JBSbatACIFM061.SVC_NO, 					inMap.getString(JBSbatACIFM061.SVC_NO)); 				// サービス番号
		tmpOutMap.setString(JBSbatACIFM061.OP_SVKEI_NO, 			inMap.getString(JBSbatACIFM061.OP_SVKEI_NO)); 			// オプションサービス契約番号
		tmpOutMap.setString(JBSbatACIFM061.SHUK_PRC_GRP_CD, 		inMap.getString(JBSbatACIFM061.SHUK_PRC_GRP_CD)); 		// 集計料金グループコード
		tmpOutMap.setString(JBSbatACIFM061.SHUK_PCRS_CD, 			inMap.getString(JBSbatACIFM061.SHUK_PCRS_CD)); 			// 集計料金コースコード
		tmpOutMap.setString(JBSbatACIFM061.SHUK_PRC_SVC_CD, 		inMap.getString(JBSbatACIFM061.SHUK_PRC_SVC_CD)); 		// 集計料金サービスコード
		tmpOutMap.setString(JBSbatACIFM061.SHUK_PRC_KMK_CD, 		inMap.getString(JBSbatACIFM061.SHUK_PRC_KMK_CD)); 		// 集計料金項目コード
		tmpOutMap.setBigDecimal(JBSbatACIFM061.PRC, 				inMap.getBigDecimal(JBSbatACIFM061.PRC)); 				// 料金
		tmpOutMap.setString(JBSbatACIFM061.USE_STAYMD,				inMap.getString(JBSbatACIFM061.USE_STAYMD)); 			// 利用開始日
		tmpOutMap.setString(JBSbatACIFM061.USE_ENDYMD,				inMap.getString(JBSbatACIFM061.USE_ENDYMD)); 			// 利用終了日
		tmpOutMap.setString(JBSbatACIFM061.SVC_STAYMD,				inMap.getString(JBSbatACIFM061.SVC_STAYMD)); 			// サービス開始日
		tmpOutMap.setString(JBSbatACIFM061.FIRST_CHRG_STAYMD, 		inMap.getString(JBSbatACIFM061.FIRST_CHRG_STAYMD)); 	// 初回課金開始日
		tmpOutMap.setString(JBSbatACIFM061.SVC_DSL_YMD,				inMap.getString(JBSbatACIFM061.SVC_DSL_YMD)); 			// サービス解約日
		tmpOutMap.setString(JBSbatACIFM061.SVC_DLRE,				inMap.getString(JBSbatACIFM061.SVC_DLRE)); 				// サービス解約理由
		tmpOutMap.setString(JBSbatACIFM061.SVC_KAIHK_DAY,			inMap.getString(JBSbatACIFM061.SVC_KAIHK_DAY)); 		// サービス回復日
		tmpOutMap.setBigDecimal(JBSbatACIFM061.USE_DAY_CNT, 		inMap.getBigDecimal(JBSbatACIFM061.USE_DAY_CNT)); 		// 利用日数
		tmpOutMap.setBigDecimal(JBSbatACIFM061.USE_FAIL_DAY_CNT,	inMap.getBigDecimal(JBSbatACIFM061.USE_FAIL_DAY_CNT)); 	// 利用不可日数
		tmpOutMap.setString(JBSbatACIFM061.AIT_DIV, 				inMap.getString(JBSbatACIFM061.AIT_DIV)); 				// 相対区分
		tmpOutMap.setString(JBSbatACIFM061.SIME_DAY, 				inMap.getString(JBSbatACIFM061.SIME_DAY)); 				// 締め日
		tmpOutMap.setString(JBSbatACIFM061.SVC_DTL_SKBT_NO, 		inMap.getString(JBSbatACIFM061.SVC_DTL_SKBT_NO)); 		// サービス詳細識別番号
		
		tmpOutMap.setOutFlg(true); // 出力フラグ

		// 出力レコード情報を設定する
		outItem.addOutMapList(tmpOutMap);

	}
	/**▲▲▲▲▲▲メソッド追加 終了▲▲▲▲▲▲*/
}
