/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACEmHojinChrgSvkeiSksi
*	ソースファイル名	：JBSbatACEmHojinChrgSvkeiSksi.java
*	作成者				：富士通　
*	作成日				：2011年12月28日
*＜機能概要＞
*　ＥＭ法人課金対象サービス契約作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/12/28   富士通		新規作成
*	v4.00.00	2012/11/12   FJ)早崎	【ANK-0141-00-00】対応 出力ファイル定義変更
*	v5.00.00	2013/11/02   FJ)黒木	【OM-2013-0002478 】EM精算結果出力不正対応
*	v6.00.00	2013/12/06   FJ)黒木	【OM-2013-0002478 】EM精算結果出力不正対応
*	v6.00.01	2013/12/19   FJ)黒木	【OM-2013-0005343 】EM精算結果出力不正対応
*	v6.00.02	2014/01/07   FJ)垣内	【OM-2013-0005343 】請求先番号にEM契約者コードを設定するよう修正
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;

import eo.business.common.JACBatCommon;
import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatSchdlUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatACIFM170;
import eo.business.util.table.JBSbatCH_M_EM_HJIN_SVC_CHG;
import eo.business.util.table.JBSbatCH_T_EM_HOJIN_KEI;
import eo.common.constant.JACStrConst;
import eo.common.util.JPCUtilCommon;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACEmHojinChrgSvkeiSksi extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**▼▼▼▼▼▼クラス変数追加 開始▼▼▼▼▼▼*/
	
	/** 月初日 */
	private static final String MON_STA_DAY = "01";
	
	/** １ */
	private static final BigDecimal ONE = new BigDecimal(1);
	
	/** 請求年月 */
	private String tmpSeikyYm = JACStrConst.KARA_MOJI;
	
	/** 前月月初日 */
	private String prvMonStaDay = JACStrConst.KARA_MOJI;
	
	/** 退避．請求年月月初日 */
	private String tmpSeikyYmStaDay = null;
	
	/** 退避．請求年月月末日 */
	private String tmpSeikyYmEndDay = null;
	
	/** 退避．請求年月前月末日 */
	private String tmpSeikyYmBfEndDay = null;
	
	/** 固定値：日付差分フラグ（両日付を差に含める） */
	private static final String DIFF_NAI_FLG 		= "1";
	
	/**▲▲▲▲▲▲クラス変数追加 終了▲▲▲▲▲▲*/
	
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]opeDate=" + super.opeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][freeItem=" + super.freeItem + "]");
		
		JACbatSchdlUtil su = new JACbatSchdlUtil(commonItem);
		
		try
		{
			// 請求年月取得（バッチ運用日の前月）
			this.tmpSeikyYm  = JBSbatDateUtil.adjustMonth(super.opeDate, -1).substring(0, 6);		// 請求年月
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial]tmpSeikyYm=" + this.tmpSeikyYm + "]");
			
			this.prvMonStaDay  = JBSbatDateUtil.adjustMonth(this.tmpSeikyYm.concat(MON_STA_DAY), -1);		// 前月請求年月
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial]prvMonStaDay=" + this.prvMonStaDay + "]");
			
			// 月初日[0] 月末日[1]
			String[] ymd 			= su.getUseStrEnd(this.tmpSeikyYm, JACStrConst.EVENT_CD_USE_STAYMD, JACStrConst.EVENT_CD_USE_ENDYMD);
			this.tmpSeikyYmStaDay 	= ymd[0];
			this.tmpSeikyYmEndDay	= ymd[1];
			
			this.tmpSeikyYmBfEndDay = JBSbatDateUtil.adjustDate(this.tmpSeikyYmStaDay, -1);				// 請求年月前月末日
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tmpSeikyYmStaDay=" + this.tmpSeikyYmStaDay + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tmpSeikyYmEndDay=" + this.tmpSeikyYmEndDay + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tmpSeikyYmBfEndDay=" + this.tmpSeikyYmBfEndDay + "]");
		}
		finally
		{
			su.close();
		}
		
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @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();
		
		int svcKeizokuMonCnt = 0;		// サービス継続月数
		
		int chrgKeizokuMonCnt = 0;		// 課金継続月数
		
		// サービス継続月数を算出します。
		svcKeizokuMonCnt = this.getSvcKeizokuMonCnt(inMap);
		
		// 課金継続月数を算出します。
		chrgKeizokuMonCnt = this.getChrgKeizokuMonCnt(inMap);
		
		// 出力情報を設定します。
		this.setOutputInf(outputItem, inMap, svcKeizokuMonCnt, chrgKeizokuMonCnt);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼メソッド追加 開始▼▼▼▼▼▼*/
	
	/**
	 * サービス継続月数を算出します。
	 * 
	 * @param inMap 入力情報
	 * @return int サービス継続月数
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private int getSvcKeizokuMonCnt(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSvcKeizokuMonCnt]");
		
		int svcKeizokuMonCnt = 0;
		
		String inSvcStaDay = inMap.getString(JBSbatCH_T_EM_HOJIN_KEI.SVC_STAYMD);
		String inSvcEndDay = inMap.getString(JBSbatCH_T_EM_HOJIN_KEI.SVC_ENDYMD);
		
		// 入力．サービス終了日が設定されていない場合
		if(null == inSvcEndDay || JACStrConst.SVC_CHRG_STAYMD_SP.equals(inSvcEndDay))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSvcKeizokuMonCnt][入力．サービス終了日が設定されていない場合]");
			// サービス継続月数　＝　利用月　−　入力．サービス開始日　＋　１
			svcKeizokuMonCnt = JBSbatDateUtil.monthDiff(this.tmpSeikyYmEndDay.substring(0, 6), inSvcStaDay.substring(0, 6) , "") + 1;
		}
		// 入力．サービス終了日が利用月より大きい場合は利用月を設定
		else if(inSvcEndDay.compareTo(this.tmpSeikyYmEndDay) > 0)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSvcKeizokuMonCnt]入力．サービス終了日が利用月より大きい場合]");
			// サービス継続月数　＝　利用月　−　入力．サービス開始日　＋　１
			svcKeizokuMonCnt = JBSbatDateUtil.monthDiff(this.tmpSeikyYmEndDay.substring(0, 6), inSvcStaDay.substring(0, 6) , "") + 1;
		}
		// 入力．サービス終了日が一日の場合
		else if(inSvcEndDay.substring(6).equals(MON_STA_DAY))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSvcKeizokuMonCnt][入力．サービス終了日が一日]");
			
			// サービス継続月数 ＝ 入力情報．サービス終了日 ー 入力情報．サービス開始日
			svcKeizokuMonCnt = JBSbatDateUtil.monthDiff(inSvcEndDay.substring(0, 6), inSvcStaDay.substring(0, 6), "");
		}
		// 入力．サービス終了日が一日以外の場合
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSvcKeizokuMonCnt][入力．サービス終了日が一日以外]");
			
			// サービス継続月数 ＝ 入力情報．サービス終了日 ー 入力情報．サービス開始日 ＋ １
			svcKeizokuMonCnt = JBSbatDateUtil.monthDiff(inSvcEndDay.substring(0, 6), inSvcStaDay.substring(0, 6), "") + 1;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSvcKeizokuMonCnt]svcKeizokuMonCnt=" + String.valueOf(svcKeizokuMonCnt) + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSvcKeizokuMonCnt]");
		return svcKeizokuMonCnt;
	}
	
	/**
	 * 課金継続月数を算出します。
	 * 
	 * @param inMap 入力情報
	 * @return int 課金継続月数
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private int getChrgKeizokuMonCnt(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getChrgKeizokuMonCnt]");
		
		int chrgKeizokuMonCnt = 0;
		
		String inEmChrgStaDay = inMap.getString(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_STAYMD);
		String inEmChrgEndDay = inMap.getString(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_ENDYMD);
		
		// 入力．EM課金終了年月日が設定されていない場合
		if(JACBatCommon.isNull(JPCUtilCommon.trim(inEmChrgEndDay)))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getChrgKeizokuMonCnt][入力．EM課金終了年月日が設定されていない場合]");
			// 課金継続月数　＝　利用月　−　入力．EM課金開始年月日　＋　１
			chrgKeizokuMonCnt = JBSbatDateUtil.monthDiff(this.tmpSeikyYmEndDay.substring(0, 6), inEmChrgStaDay.substring(0, 6) , "") + 1;
		}
		// 入力．EM課金終了年月日が利用月より大きい場合は利用月を設定
		else if(inEmChrgEndDay.compareTo(this.tmpSeikyYmEndDay) > 0)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getChrgKeizokuMonCnt]入力．EM課金開始年月日が利用月より大きい場合]");
			// サービス継続月数　＝　利用月　−　入力．EM課金開始年月日　＋　１
			chrgKeizokuMonCnt = JBSbatDateUtil.monthDiff(this.tmpSeikyYmEndDay.substring(0, 6), inEmChrgStaDay.substring(0, 6) , "") + 1;
		}
		// 入力．EM課金終了年月日が一日の場合
		else if(inEmChrgEndDay.substring(6).equals(MON_STA_DAY))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getChrgKeizokuMonCnt][入力．EM課金終了年月日が一日]");
			
			// 課金継続月数 ＝ 入力情報．EM課金終了年月日 ー 入力情報．EM課金開始年月日
			chrgKeizokuMonCnt = JBSbatDateUtil.monthDiff(inEmChrgEndDay.substring(0, 6), inEmChrgStaDay.substring(0, 6), "");
		}
		// 入力．EM課金終了年月日が一日以外の場合
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getChrgKeizokuMonCnt][入力．EM課金終了年月日が一日以外]");
			
			// 課金継続月数 ＝ 入力情報．EM課金終了年月日 ー 入力情報．EM課金開始年月日 ＋ １
			chrgKeizokuMonCnt = JBSbatDateUtil.monthDiff(inEmChrgEndDay.substring(0, 6), inEmChrgStaDay.substring(0, 6), "") + 1;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getChrgKeizokuMonCnt]svcKeizokuMonCnt=" + String.valueOf(chrgKeizokuMonCnt) + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getChrgKeizokuMonCnt]");
		return chrgKeizokuMonCnt;
	}

	/**
	 * 利用日数取得
	 * @param inMap　入力電文
	 * @return String[] [0]:利用開始日 [1]:利用終了日 [2]:利用日数
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String[] getUseDayCnt(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getUseDayCnt]");
		
		String[] returnData = new String[3];
		
		// 判定値取得
		String chrgStaymd = inMap.getString(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_STAYMD);						// 課金開始日
		String chrgEndymd = JPCUtilCommon.trim(inMap.getString(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_ENDYMD));	// 課金終了日
		
		// 課金終了日が空の場合、２０９９１２３１を設定
		String emChrgEndymd = (String)inMap.get(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_ENDYMD);
		if(JACBatCommon.isNull(JPCUtilCommon.trim(emChrgEndymd)))
		{
			emChrgEndymd = JACStrConst.MAX_DATE;
		}

		// 利用開始日取得
		{
			// 退避．請求年月月初日 ≦ 入力電文．課金開始日 の場合
			if(this.tmpSeikyYmStaDay.compareTo(chrgStaymd) <= 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getUseDayCnt][利用開始日取得：退避．請求年月月初日 ≦ 入力電文．課金開始日 の場合]");
				// 退避．利用開始日 ← 入力電文．課金開始日
				returnData[0] = chrgStaymd;
			}
			// 退避．請求年月月初日 ＞ 入力電文．課金開始日 の場合
			else if(this.tmpSeikyYmStaDay.compareTo(chrgStaymd) > 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getUseDayCnt][利用開始日取得：退避．請求年月月初日 ＞ 入力電文．課金開始日 の場合]");
				// 退避．利用開始日 ← 退避．請求年月月初日
				returnData[0] = this.tmpSeikyYmStaDay;
			}
		}
		// 利用終了日取得
		{
			// 入力電文．課金終了日 ≦ 退避．請求年月月末日 の場合
			if(chrgEndymd.compareTo(this.tmpSeikyYmEndDay) <= 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getUseDayCnt][利用終了日取得：退避．請求年月月初日 ＞ 入力電文．課金開始日 の場合]");
				// 退避．利用終了日 ← 入力電文．課金終了日
				returnData[1] = chrgEndymd;
			}
			// 上記以外の場合
			else
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getUseDayCnt][利用終了日取得：上記以外の場合]");
				// 退避．利用終了日 ← 退避．請求年月月末日
				returnData[1] = this.tmpSeikyYmEndDay;
			}
		}
		// 利用日数取得
		{
			// 入力電文．課金終了日が空の場合
			if(JACBatCommon.isNull(JPCUtilCommon.trim(chrgEndymd)))
			{
				returnData[1] = this.tmpSeikyYmEndDay;
			}
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getUseDayCnt][returnData[0]=" + returnData[0] + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getUseDayCnt][returnData[1]=" + returnData[1] + "]");
			// 日付共通処理部品を使用し、退避．利用開始日、退避．利用終了日から利用日数を求める。
			returnData[2] = String.valueOf(JBSbatDateUtil.dayDiff(returnData[1], returnData[0], DIFF_NAI_FLG));
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getUseDayCnt][returnData[2]=" + returnData[2] + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getUseDayCnt]");
		
		return returnData;
	}

	
	
	/**
	 * 出力情報を設定します。
	 * 
	 * @param outputItem 出力情報
	 * @param inMap 入力情報
	 * @param svcKeizokuMonCnt サービス継続月数
	 * @param chrgKeizokuMonCnt 課金継続月数
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setOutputInf(JBSbatOutputItem outputItem, JBSbatServiceInterfaceMap inMap, int svcKeizokuMonCnt, int chrgKeizokuMonCnt) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setOutputInf]");
		
		JBSbatServiceInterfaceMap outRec = new JBSbatServiceInterfaceMap();
		
		// 利用日数取得
		String[] useDayCntData = this.getUseDayCnt(inMap);
		
		// 課金終了日が空の場合、２０９９１２３１を設定
		String emChrgEndymd = (String)inMap.get(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_ENDYMD);
		if(JACBatCommon.isNull(JPCUtilCommon.trim(emChrgEndymd)))
		{
			emChrgEndymd = JACStrConst.MAX_DATE;
		}

		// 出力情報を設定
		outRec.set(JBSbatACIFM170.PCRS_CD,				inMap.get(JBSbatCH_M_EM_HJIN_SVC_CHG.PCRS_CD));				// 料金コースコード
		outRec.set(JBSbatACIFM170.PRC_SVC_CD,			inMap.get(JBSbatCH_M_EM_HJIN_SVC_CHG.PRC_SVC_CD));			// 料金サービスコード
		outRec.set(JBSbatACIFM170.TAKNKIKI_MODEL_CD,	inMap.get(JBSbatCH_T_EM_HOJIN_KEI.TAKNKIKI_MODEL_CD));		// 宅内機器型式コード
		outRec.set(JBSbatACIFM170.SVC_NO,				inMap.get(JBSbatCH_T_EM_HOJIN_KEI.HJIN_EO_YKAE_SVKEI_NO));	// サービス番号
		outRec.set(JBSbatACIFM170.SEIKY_KEI_NO,			inMap.get(JBSbatCH_T_EM_HOJIN_KEI.EM_KEISHA_CD));			// 請求先番号
		outRec.set(JBSbatACIFM170.SEIKY_YM,				this.tmpSeikyYm);											// 請求年月
		outRec.set(JBSbatACIFM170.SVC_STAYMD,			inMap.get(JBSbatCH_T_EM_HOJIN_KEI.SVC_STAYMD));				// サービス開始日
		outRec.set(JBSbatACIFM170.SVC_DSL_YMD,			inMap.get(JBSbatCH_T_EM_HOJIN_KEI.SVC_ENDYMD));				// サービス解約日
		outRec.set(JBSbatACIFM170.SVC_DLRE,				JACStrConst.KARA_MOJI);										// サービス解約理由
		outRec.set(JBSbatACIFM170.SVC_PAUSE_DAY,		JACStrConst.KARA_MOJI);										// サービス休止日
		outRec.set(JBSbatACIFM170.SVC_PAUSE_RLS_YMD,	JACStrConst.KARA_MOJI);										// サービス休止解除日
		outRec.set(JBSbatACIFM170.SVC_USE_FAIL_STAYMD,	JACStrConst.KARA_MOJI);										// サービス利用不可開始日
		outRec.set(JBSbatACIFM170.SVC_USE_FAIL_ENDYMD,	JACStrConst.KARA_MOJI);										// サービス利用不可終了日
		outRec.set(JBSbatACIFM170.USE_DAY_CNT,			useDayCntData[2]);											// 利用日数
		outRec.set(JBSbatACIFM170.CHRG_STAYMD,			inMap.get(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_STAYMD));			// 課金開始日
		outRec.set(JBSbatACIFM170.FIRST_CHRG_STAYMD,	inMap.get(JBSbatCH_T_EM_HOJIN_KEI.EM_CHRG_STAYMD));			// 初回課金開始日
		outRec.set(JBSbatACIFM170.CHRG_ENDYMD,			emChrgEndymd);												// 課金終了日
		outRec.set(JBSbatACIFM170.SVC_KEIZOKU_MON_CNT,	svcKeizokuMonCnt);											// サービス継続月数
		outRec.set(JBSbatACIFM170.CHRG_KEIZOKU_MON_CNT,	chrgKeizokuMonCnt);											// 課金継続月数
		outRec.set(JBSbatACIFM170.KEI_CNT,				ONE);														// 契約数
		outRec.set(JBSbatACIFM170.MON_CHU_MAX_KEI_CNT,	ONE);														// 月中最大契約数
		outRec.set(JBSbatACIFM170.AIT_DIV,				JACStrConst.AITAIKBN_NON);									// 相対区分(祖対なし)
		outRec.set(JBSbatACIFM170.SIME_DAY,				JACStrConst.SIME_DAY_GETUMATSU);							// 締め日(月末日)
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setOutputInf][outRec=" + outRec.getMap().toString() + "]");
		
		outRec.setOutFlg(true);
		
		outputItem.addOutMapList(outRec);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setOutputInf]");
	}
	
	/**▲▲▲▲▲▲メソッド追加 終了▲▲▲▲▲▲*/
	
}
