/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTicketWrbAplyZumiKaisuInfoChsht
*	ソースファイル名	：JBSbatKKTicketWrbAplyZumiKaisuInfoChsht.java
*	作成者				：富士通
*	作成日				：2017年12月25日
*＜機能概要＞
*チケット割引適用済回数情報抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v34.00.00   2017/12/21  FJ)クウン   「ANK-3309-00-00」【eoプレミアムクラブ】回数型ＣＰの割引残回数表示対応
*	v66.00.00	2023/03/09	FJ)吉川		【ANK-4307-00-00】【eo定期】プレミアムクラブリニューアル対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFE370;
import eo.business.util.table.JBSbatKK_M_WRIB_SVC_DTL;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_WRISVC_KEI_UCWK;
import eo.business.util.table.JBSbatKK_T_WRISVC_TG_KEI;
import eo.common.constant.JKKStrConst;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.util.JBSbatBusinessFileUtil;
import eo.framework.util.JBSbatCheckUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTicketWrbAplyZumiKaisuInfoChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(割引サービス契約)*/
	private static final String D_TBL_NAME_KK_T_WRIB_SVC_KEI = "KK_T_WRIB_SVC_KEI";

	/** SQL定義キー(KK_SELECT_346)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_346 = "KK_SELECT_346";

	/** SQL定義キー(KK_SELECT_075)*/
	private static final String KK_T_WRIB_SVC_KEI_KK_SELECT_075 = "KK_SELECT_075";
	
	// ANK-4307-00-00 ADD START
	/** SQL定義キー(KK_SELECT_081)*/
	private static final String KK_T_WRIB_SVC_KEI_KK_SELECT_081 = "KK_SELECT_081";
	// ANK-4307-00-00 ADD END

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(割引サービス契約)*/
	private JBSbatSQLAccess db_KK_T_WRIB_SVC_KEI = null;

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** カウンタ */
	private int counter = 0;

	/** チケット割引適用済回数情報抽出依頼結果ファイルファイルオブジェクト */
	private JBSbatBusinessFileUtil kkife371FileObj = null;

	/** チケット割引適用済回数情報抽出依頼結果ファイル */
	private static final String FILE_KKIFE371001 = "KKIFE371001.csv";

	/** 処理結果コード_00:正常 */
	private static final String RESULT_CD_OK  = "00";

	/** 処理結果コード_99:異常 */
	private static final String RESULT_CD_NG  = "99";

	/** 割引総回数_チェックエラーの設定内容 */
	private static final String APLY_CNT_NG  = "";

	/** 適用済回数_チェックエラーの設定内容 */
	private static final String WRIB_APLY_CNT_NG  = "";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_WRIB_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRIB_SVC_KEI);

		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/

		String[] freeItems = commonItem.getFreeItem().split(JKKBatConst.S_PARAM_DELIM);
		kkife371FileObj = JKKBatCommon.createBusinessFileUtil(freeItems[0] + FILE_KKIFE371001,
				JKKBatConst.S_CHR_CODE, JKKStrConst.LINE_SEPARATOR, JKKBatConst.S_SEP_CAM);

	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		try
		{
			// カウンタを＋１
			counter++;
			// エラーメッセージ文言
			String message = "";

			// 入力ファイルの内容取得（SYSID）
			String inputSysid = (String)inMap.getString(JBSbatKKIFE370.SYSID);

			// 入力ファイルの内容取得（施策申請枝番）
			String inputSisakShinseiSeq = (String)inMap.getString(JBSbatKKIFE370.SISAK_SHINSEI_SEQ);

			// 入力ファイルの内容取得（サービス契約番号）
			String inputSvcKeiNo   = (String)inMap.getString(JBSbatKKIFE370.SVC_KEI_NO);

			// 入力ファイルの内容取得（割引契約サービス契約番号）
			String inputWribSvcKeiNo   = (String)inMap.getString(JBSbatKKIFE370.WRIB_SVC_KEI_NO);

			//---------------------------------------------
			// 例外チェック−ファイルフォーマットチェック
			//---------------------------------------------
			if(isSingleCheckKKIFEYYY_INF1(inMap.getMap(), counter))
			{
				// 業務チェック−割引サービス契約存在チェック
				//---------------------------------------------
				JBSbatCommonDBInterface existsWribKeiList = getExistWribSvcKei(inputWribSvcKeiNo);
				
				// ANK-4307-00-00 ADD START
				JBSbatCommonDBInterface existsAplyCntList = getExistAplyCnt(inputWribSvcKeiNo);
				// ANK-4307-00-00 ADD END

				if (existsWribKeiList == null)
				{
					// ログ出力
					message = "割引サービス契約番号(" + inputWribSvcKeiNo + ")に該当割引サービス契約情報";
					commonItem.getLogPrint().printBusinessErrorLog("EKKB0290AW", new String[]{message});


					// チケット割引適用済回数情報抽出依頼結果ファイルにデータ情報を出力する
					fileOutKKIFE371(inputSysid, inputSisakShinseiSeq, inputSvcKeiNo, inputWribSvcKeiNo
							, inputSysid, inputSvcKeiNo, APLY_CNT_NG, WRIB_APLY_CNT_NG, RESULT_CD_NG);

					return null;
				}

				// サービス契約番号を取得する
				String svcKeiNo = (String)existsWribKeiList.getString(JBSbatKK_T_WRISVC_TG_KEI.SVC_KEI_NO);
				//---------------------------------------------
				// 例外チェック−サービス契約存在チェック
				//---------------------------------------------
				JBSbatCommonDBInterface svcKeiInfo = getExistSvcKei(svcKeiNo);
				if(svcKeiInfo == null)
				{
					// 該当サービス存在せず
					message = "サービス契約に" + svcKeiNo;
					commonItem.getLogPrint().printBusinessErrorLog("EKKB0290AW", new String[]{message});

					// チケット割引適用済回数情報抽出依頼結果ファイルにデータ情報を出力する
					fileOutKKIFE371(inputSysid, inputSisakShinseiSeq, inputSvcKeiNo, inputWribSvcKeiNo
							, inputSysid, inputSvcKeiNo, APLY_CNT_NG, WRIB_APLY_CNT_NG, RESULT_CD_NG);
					return null;
				}
				
				// 適用数
				// ANK-4307-00-00 MOD START
				//String aplyCnt = (String)existsWribKeiList.getString(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT);
				String aplyCnt = (String)existsAplyCntList.getString(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT);
				// ANK-4307-00-00 MOD END
				
				// 割引適用回数
				String wribAplyCnt = (String)existsWribKeiList.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT);

				// チケット割引適用済回数情報抽出依頼結果ファイルにデータ情報を出力する
				fileOutKKIFE371(inputSysid
								, inputSisakShinseiSeq
								, inputSvcKeiNo
								, inputWribSvcKeiNo
								, (String)svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID)
								, svcKeiNo
								, aplyCnt
								, wribAplyCnt
								, RESULT_CD_OK);

			}
			// ファイルフォマットチェックでエラーが発生する場合、INPUT情報をそのまま設定する、
			// 割引総回数、適用済回数を空白で設定する
			// 処理結果コードに99を設定する
			else
			{
				fileOutKKIFE371(inputSysid, inputSisakShinseiSeq, inputSvcKeiNo, inputWribSvcKeiNo
						, inputSysid, inputSvcKeiNo, APLY_CNT_NG, WRIB_APLY_CNT_NG, RESULT_CD_NG);
			}
		}
		catch(Exception e)
		{
			throw e;
		}

		return null;
	}
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		// ファイルを閉じる
		JKKBatCommon.closeBusinessFileUtil(kkife371FileObj);

		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		db_KK_T_WRIB_SVC_KEI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 *入力情報（チケット利用キャンペーン登録依頼受信）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 *
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isSingleCheckKKIFEYYY_INF1(HashMap rsMap, int count)
	{
		// エラー時の引数１を設定
		String cnt = String.valueOf(counter);
		// エラー時の引数２を設定
		String message = (String)rsMap.get(JBSbatKKIFE370.SYSID)
							+ " " + (String)rsMap.get(JBSbatKKIFE370.SISAK_SHINSEI_SEQ)
							+ " " + (String)rsMap.get(JBSbatKKIFE370.SVC_KEI_NO)
							+ " " + (String)rsMap.get(JBSbatKKIFE370.WRIB_SVC_KEI_NO);

		// 単項目チェックを行います
		String strValue = null;

		// サービス契約番号項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFE370.WRIB_SVC_KEI_NO);
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0580TW", new String[]{
					cnt,
					message.toString()});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "12", "12"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0590TW", new String[]{
					cnt,
					message.toString()});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0600TW", new String[]{
					cnt,
					message.toString()});
			return false;
		}

		return true;
	}

	/**
	 * SQLKEY(KK_SELECT_346)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 *
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_346(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_346);
	}

	/**
	 * SQLKEY(KK_SELECT_075)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 *
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *			割引サービス契約番号
	 *			予約適用年月日
	 *			割引サービス詳細適用開始年月日
	 *			割引サービス詳細適用終了年月日
	 *			予約適用年月日
	 *			割引サービス対象契約適用開始年月日
	 *			割引サービス対象契約適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRIB_SVC_KEI_KK_SELECT_075(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());

		// DBアクセスを実行します
		db_KK_T_WRIB_SVC_KEI.selectBySqlDefine(paramList, KK_T_WRIB_SVC_KEI_KK_SELECT_075);
	}
	
	// ANK-4307-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_081)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 *
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *			割引サービス詳細適用開始年月日
	 *			割引サービス詳細適用終了年月日
	 *			予約適用年月日
	 *			割引サービス契約番号
	 *			予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRIB_SVC_KEI_KK_SELECT_081(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());

		// DBアクセスを実行します
		db_KK_T_WRIB_SVC_KEI.selectBySqlDefine(paramList, KK_T_WRIB_SVC_KEI_KK_SELECT_081);
	}
	// ANK-4307-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * サービス契約番号をもとにサービス契約スキーマを検索する.
	 * 取得項目：サービス契約番号
	 *           SYSID
	 *           サービス契約ステータス
	 *           料金プランコード
	 * @param  svcKeiNo
	 * @return JBSbatCommonDBInterface
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getExistSvcKei(String svcKeiNo) throws Exception
	{
		Object[] param = {
				svcKeiNo,			// サービス契約．サービス契約番号  = [サービス契約番号]
				super.opeDate		// サービス契約．予約適用年月日   <= 運用日
		};
		executeKK_T_SVC_KEI_KK_SELECT_346(param);
		JBSbatCommonDBInterface svcKeiInfo = new JBSbatCommonDBInterface();
		ArrayList<JBSbatCommonDBInterface> svcKeiList = new ArrayList<JBSbatCommonDBInterface>();

		while((svcKeiInfo = db_KK_T_SVC_KEI.selectNext()) != null)
		{
			svcKeiList.add(svcKeiInfo);
		}
		// サービス契約番号を条件にカレントレコードを抽出するSQLのため、2件以上取れることはない
		// データが取得出来た場合はリストの0番目、データが取得できなかった場合には、nullを返却
		return (svcKeiList.size() > 0 ? svcKeiList.get(0) : null);
	}

	/**
	 * 割引サービス契約番号をもとに割引サービス対象契約を検索する.
	 * 取得項目：割引適用回数、適用数、サービス契約番号、
	 * @param  wribSvcKeiNo
	 * @return ArrayList
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getExistWribSvcKei(String wribSvcKeiNo) throws Exception
	{
		Object[] param = {
				wribSvcKeiNo,		// 割引サービス契約．割引サービス契約番号                     = [割引サービス契約番号]
				super.opeDate,		// 割引サービス契約．予約適用年月日                           <= [運用日]
				super.opeDate,		// 割引サービス詳細．割引サービス詳細適用開始年月日           <= [運用日]
				super.opeDate,		// 割引サービス詳細．割引サービス詳細適用終了年月日           >= [運用日]
				super.opeDate,		// 割引サービス詳細．予約適用年月日                           <= [運用日]
				super.opeDate,		// 割引サービス対象契約．割引サービス対象契約適用開始年月日   <= [運用日]
				super.opeDate,		// 割引サービス対象契約．割引サービス対象契約適用終了年月日   >= [運用日]
		};
		executeKK_T_WRIB_SVC_KEI_KK_SELECT_075(param);
		JBSbatCommonDBInterface wribSvcKeiInfo = new JBSbatCommonDBInterface();
		ArrayList<JBSbatCommonDBInterface> existWribSvcKeiList = new ArrayList<JBSbatCommonDBInterface>();

		while((wribSvcKeiInfo = db_KK_T_WRIB_SVC_KEI.selectNext()) != null)
		{
			existWribSvcKeiList.add(wribSvcKeiInfo);
		}
		return (existWribSvcKeiList.size() > 0 ? existWribSvcKeiList.get(0) : null);
	}
	
	// ANK-4307-00-00 ADD START
	/**
	 * 割引サービス契約番号をもとに割引サービス契約を検索する.
	 * 取得項目：適用数
	 * @param  wribSvcKeiNo
	 * @return ArrayList
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getExistAplyCnt(String wribSvcKeiNo) throws Exception
	{
		Object[] param = {
				super.opeDate,		// 割引サービス詳細．割引サービス詳細適用開始年月日           <= [運用日]
				super.opeDate,		// 割引サービス詳細．割引サービス詳細適用終了年月日           >= [運用日]
				super.opeDate,		// 割引サービス詳細．予約適用年月日                           <= [運用日]
				wribSvcKeiNo,		// 割引サービス契約．割引サービス契約番号                      = [割引サービス契約番号]
				super.opeDate,		// 割引サービス契約．予約適用年月日                           <= [運用日]
		};
		executeKK_T_WRIB_SVC_KEI_KK_SELECT_081(param);
		JBSbatCommonDBInterface aplyCntInfo = new JBSbatCommonDBInterface();
		ArrayList<JBSbatCommonDBInterface> existAplyCntList = new ArrayList<JBSbatCommonDBInterface>();
		
		while((aplyCntInfo = db_KK_T_WRIB_SVC_KEI.selectNext()) != null)
		{
			existAplyCntList.add(aplyCntInfo);
		}
		//割引サービス詳細が複数取得できた場合、適用数の一番高いデータを返す
		return (existAplyCntList.size() > 0 ? existAplyCntList.get(0) : null);
	}
	// ANK-4307-00-00 ADD END

	/**
	 * TRANKファイルにキャンペーン登録結果情報を出力する
	 * @param sysid SYSID
	 * @param sisakShinseiSeq 施策申請枝番。
	 * @param svcKeiNo サービス契約番号。
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @param lasttestSysid 最新SYSID
	 * @param lasttestSvcKeiNo 最新サービス契約番号
	 * @param aplyCnt 割引総回数
	 * @param wribAplyCnt 割引適用回数
	 * @param resultCd 処理結果コード
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void fileOutKKIFE371(String sysid
									, String sisakShinseiSeq
									, String svcKeiNo
									, String wribSvcKeiNo
									, String lasttestSysid
									, String lasttestSvcKeiNo
									, String aplyCnt
									, String wribAplyCnt
									, String resultCd) throws Exception
	{
		// チケット割引適用済回数情報抽出依頼結果ファイルにデータ情報を出力する
		ArrayList<String> outputInfo = new ArrayList<String>();
		outputInfo.add(sysid);									// SYSID
		outputInfo.add(sisakShinseiSeq);						// 施策申請枝番
		outputInfo.add(svcKeiNo);								// サービス契約番号
		outputInfo.add(wribSvcKeiNo);							// 割引サービス契約番号
		outputInfo.add(lasttestSysid);							// 最新SYSID
		outputInfo.add(lasttestSvcKeiNo);						// 最新サービス契約番号
		outputInfo.add(aplyCnt);								// 割引総回数
		outputInfo.add(wribAplyCnt);							// 適用済回数
		outputInfo.add(resultCd);								// 処理結果コード

		JKKBatCommon.printDoubleQuoteBusinessFileUtil(kkife371FileObj, outputInfo);
	}

}