/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTicketShinIdoIfCstChk
*	ソースファイル名	：JBSbatKKTicketShinIdoIfCstChk.java
*	作成者				：富士通　
*	作成日				：2016年05月19日
*＜機能概要＞
*	チケット申請中異動情報抽出チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v26.00.00	2016/05/23	FJ)謝		【ANK-2687-00-00】プレミアムサポート施策 新規作成
*	v26.00.01	2016/08/02	FJ)謝		【IT2-2016-0000040】障害対応
*	v26.00.02	2016/09/23	FJ)謝		【OT-2016-0000007】障害対応
*	v66.00.00	2023/02/17	FJ)吉川		【ANK-4307-00-00】【eo定期】プレミアムクラブリニューアル対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFE337;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatBusinessFileUtil;
import eo.framework.util.JBSbatCheckUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTicketShinIdoIfCstChk extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 必須、形式、桁数チェック用配列のサイズ */
	private static final int PROPERTIES_SIZE = 5;
	
	/** 異動情報抽出結果送信（対象外） */
	private static final String FILE_KKIFE338001 = "KKIFE338001.csv";
	
	/** 異動情報抽出結果（工事完了日） */
	private static final String FILE_KKIFM705001 = "KKIFM705001.csv";
	
	/** 異動情報抽出結果（出荷完了日＋10日） */
	private static final String FILE_KKIFM705002 = "KKIFM705002.csv";
	
	/** 異動情報抽出結果（異動予約反映日） */
	private static final String FILE_KKIFM705003 = "KKIFM705003.csv";
	
	/** 異動情報抽出結果送信（対象外）ファイルオブジェクト */
	private JBSbatBusinessFileUtil kkife338001FileObj = null;
	
	/** 異動情報抽出結果（工事完了日）ファイルオブジェクト */
	private JBSbatBusinessFileUtil kkifm705001FileObj = null;
	
	/** 異動情報抽出結果（出荷完了日＋10日）ファイルオブジェクト */
	private JBSbatBusinessFileUtil kkifm705002FileObj = null;
	
	/** 異動情報抽出結果（異動予約反映日）ファイルオブジェクト */
	private JBSbatBusinessFileUtil kkifm705003FileObj = null;
	
	/** SYSID */
	private String sysid = "";
	
	/** 施策申請枝番 */
	private String sisakShinseiSeq = "";
	
	/** サービス契約番号 */
	private String svcKeiNo = "";
	
	/** キャンペーン登録契機コード */
	private String cmpAddOptntyCd = "";
	
	/** キャンペーン登録契機対象キー1 */
	private String cmpAddOptyTgKey1 = "";
	
	/** キャンペーン登録契機対象キー2 */
	private String cmpAddOptyTgKey2 = "";
	
	/** キャンペーン登録契機対象キー3 */
	private String cmpAddOptyTgKey3 = "";
	
	/** キャンペーン登録契機対象キー4 */
	private String cmpAddOptyTgKey4 = "";
	
	/** キャンペーン登録契機対象キー5 */
	private String cmpAddOptyTgKey5 = "";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		// フリー項目を取得する
		String[] freeItems = commonItem.getFreeItem().split(JKKBatConst.S_PARAM_DELIM);
		
		// 異動情報抽出結果送信（対象外）ファイルオブジェクトを生成する
		kkife338001FileObj = JKKBatCommon.createBusinessFileUtil(freeItems[0] + FILE_KKIFE338001,
				JKKBatConst.SJIS, JKKStrConst.LINE_SEPARATOR, JKKBatConst.S_SEP_CAM);
		
		// 異動情報抽出結果（工事完了日）ファイルオブジェクトを生成する
		kkifm705001FileObj = JKKBatCommon.createBusinessFileUtil(freeItems[0] + FILE_KKIFM705001,
				JKKBatConst.SJIS, JKKStrConst.LINE_SEPARATOR, JKKBatConst.S_SEP_CAM);
		
		// 異動情報抽出結果（出荷完了日＋10日）ファイルオブジェクトを生成する
		kkifm705002FileObj = JKKBatCommon.createBusinessFileUtil(freeItems[0] + FILE_KKIFM705002,
				JKKBatConst.SJIS, JKKStrConst.LINE_SEPARATOR, JKKBatConst.S_SEP_CAM);
		
		// 異動情報抽出結果（異動予約反映日）ファイルオブジェクトを生成する
		kkifm705003FileObj = JKKBatCommon.createBusinessFileUtil(freeItems[0] + FILE_KKIFM705003,
				JKKBatConst.SJIS, JKKStrConst.LINE_SEPARATOR, JKKBatConst.S_SEP_CAM);
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 入力レコードに異常があった場合
		if (inMap.isInputErrorFlg())
		{
			return null;
		}
		
		// 異動情報抽出依頼受信ファイルの読み込みを行う
		setKkife337(inMap);
		
		// 単項目チェック仕様を設定する
		LinkedHashMap<String, String []> hashData = propertiesKkife337();
		
		// 単項目チェックを行う
		if (!isSingleCheck(inMap, hashData))
		{
			// 異動情報抽出結果送信（対象外）にデータ情報を出力する
			outputKkife338001();
			return null;
		}
		
		// 単項目関連チェックを行う
		// キャンペーン登録契機コードが「01：工事完了日」、「02：出荷完了日＋10日」、「03：異動予約反映日」のいずれかでない場合
		if (!JBSbatKKConst.CMP_ADD_OPTNTY_CD_KJ_FIN_YMD.equals(cmpAddOptntyCd)
				&& !JBSbatKKConst.CMP_ADD_OPTNTY_CD_SHKA_FIN_YMD_PLUS_10.equals(cmpAddOptntyCd)
				&& !JBSbatKKConst.CMP_ADD_OPTNTY_CD_IDO_RSV_HANEI_YMD.equals(cmpAddOptntyCd))
		{
			// %1%,%2%：%3%エラー（%4%：%5%）
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB1290AI, new String[]{
					sysid, sisakShinseiSeq, "コード", "キャンペーン登録契機コード", cmpAddOptntyCd});
			
			// 異動情報抽出結果送信（対象外）にデータ情報を出力する
			outputKkife338001();
			return null;
		}
		
		// キャンペーン登録契機対象キー1が未設定の場合
		if (!JKKBatCommon.isNotNull(cmpAddOptyTgKey1))
		{
			// %1%,%2%：%3%エラー（%4%：%5%）
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB1290AI, new String[]{
					sysid, sisakShinseiSeq, "必須", "キャンペーン登録契機コード、キャンペーン登録契機対象キー1",
					cmpAddOptntyCd + "、" + cmpAddOptyTgKey1});
			
			// 異動情報抽出結果送信（対象外）にデータ情報を出力する
			outputKkife338001();
			return null;
		}
		
// IT2-2016-0000040 ADD START
		// キャンペーン登録契機コードが「02：出荷完了日＋10日」の時
		if (JBSbatKKConst.CMP_ADD_OPTNTY_CD_SHKA_FIN_YMD_PLUS_10.equals(cmpAddOptntyCd))
		{
			// キャンペーン登録契機対象キー2が未設定の場合
			if (!JKKBatCommon.isNotNull(cmpAddOptyTgKey2))
			{
				// %1%,%2%：%3%エラー（%4%：%5%）
				commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB1290AI, new String[]{
						sysid, sisakShinseiSeq, "必須", "キャンペーン登録契機コード、キャンペーン登録契機対象キー2",
						cmpAddOptntyCd + "、" + cmpAddOptyTgKey2});
				
				// 異動情報抽出結果送信（対象外）にデータ情報を出力する
				outputKkife338001();
				return null;
			}
		}
// IT2-2016-0000040 ADD END
		
		// 異動情報抽出結果出力
		// キャンペーン登録契機コードが「01：工事完了日」の場合
		if (JBSbatKKConst.CMP_ADD_OPTNTY_CD_KJ_FIN_YMD.equals(cmpAddOptntyCd))
		{
			// 異動情報抽出結果（工事完了日）にデータ情報を出力する
			outputKkifm705(kkifm705001FileObj);
		}
		// キャンペーン登録契機コードが「02：出荷完了日＋10日」の場合
		else if (JBSbatKKConst.CMP_ADD_OPTNTY_CD_SHKA_FIN_YMD_PLUS_10.equals(cmpAddOptntyCd))
		{
			// 異動情報抽出結果（出荷完了日＋10日）にデータ情報を出力する
			outputKkifm705(kkifm705002FileObj);
		}
		// キャンペーン登録契機コードが「03：異動予約反映日」の場合
		else if (JBSbatKKConst.CMP_ADD_OPTNTY_CD_IDO_RSV_HANEI_YMD.equals(cmpAddOptntyCd))
		{
			// 異動情報抽出結果（異動予約反映日）にデータ情報を出力する
			outputKkifm705(kkifm705003FileObj);
		}
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		// ファイルを閉じる
		JKKBatCommon.closeBusinessFileUtil(kkife338001FileObj);
		JKKBatCommon.closeBusinessFileUtil(kkifm705001FileObj);
		JKKBatCommon.closeBusinessFileUtil(kkifm705002FileObj);
		JKKBatCommon.closeBusinessFileUtil(kkifm705003FileObj);
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 異動情報抽出依頼受信ファイルの読み込みを行う。<br>
	 * @param inMap 入力電文
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void setKkife337(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		sysid            = inMap.getString(JBSbatKKIFE337.SYSID);					// SYSID
		sisakShinseiSeq  = inMap.getString(JBSbatKKIFE337.SISAK_SHINSEI_SEQ);		// 施策申請枝番
		svcKeiNo         = inMap.getString(JBSbatKKIFE337.SVC_KEI_NO);				// サービス契約番号
		cmpAddOptntyCd   = inMap.getString(JBSbatKKIFE337.CMP_ADD_OPTNTY_CD);		// キャンペーン登録契機コード
		cmpAddOptyTgKey1 = inMap.getString(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY1);	// キャンペーン登録契機対象キー1
		cmpAddOptyTgKey2 = inMap.getString(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY2);	// キャンペーン登録契機対象キー2
		cmpAddOptyTgKey3 = inMap.getString(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY3);	// キャンペーン登録契機対象キー3
		cmpAddOptyTgKey4 = inMap.getString(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY4);	// キャンペーン登録契機対象キー4
		cmpAddOptyTgKey5 = inMap.getString(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY5);	// キャンペーン登録契機対象キー5
	}
	
	/**
	 * パラメタのチェックのためハッシュを作成する。<br>
	 * @return LinkedHashMap 作成した異動情報抽出依頼受信のハッシュマップ
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private LinkedHashMap<String, String []> propertiesKkife337() throws Exception
	{
		LinkedHashMap<String, String []> hashData = new LinkedHashMap<String, String []>();
		
		// SYSID
		String [] value = new String[PROPERTIES_SIZE];
		value[0] = "SYSID";									// 項目名
		value[1] = "1";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "10";									// 最小桁数
		value[4] = "10";									// 最大桁数
		hashData.put(JBSbatKKIFE337.SYSID, value);
		
		// 施策申請枝番
		value = new String[PROPERTIES_SIZE];
		value[0] = "施策申請枝番";							// 項目名
		value[1] = "1";										// 必須フラグ
		value[2] = "hannkakusuuji1";						// 形式
		// ANK-4307-00-00 MOD START
		//value[3] = "2";										// 最小桁数
		//value[4] = "2";										// 最大桁数
		value[3] = "5";										// 最小桁数
		value[4] = "5";										// 最大桁数
		// ANK-4307-00-00 MOD END
		hashData.put(JBSbatKKIFE337.SISAK_SHINSEI_SEQ, value);
		
		// サービス契約番号
		value = new String[PROPERTIES_SIZE];
		value[0] = "サービス契約番号";						// 項目名
		value[1] = "1";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "10";									// 最小桁数
		value[4] = "10";									// 最大桁数
		hashData.put(JBSbatKKIFE337.SVC_KEI_NO, value);
		
		// キャンペーン登録契機コード
		value = new String[PROPERTIES_SIZE];
		value[0] = "キャンペーン登録契機コード";			// 項目名
		value[1] = "1";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "2";										// 最小桁数
		value[4] = "2";										// 最大桁数
		hashData.put(JBSbatKKIFE337.CMP_ADD_OPTNTY_CD, value);
		
		// キャンペーン登録契機対象キー1
		value = new String[PROPERTIES_SIZE];
		value[0] = "キャンペーン登録契機対象キー1";			// 項目名
		value[1] = "0";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "1";										// 最小桁数
		value[4] = "20";									// 最大桁数
		hashData.put(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY1, value);
		
		// キャンペーン登録契機対象キー2
		value = new String[PROPERTIES_SIZE];
		value[0] = "キャンペーン登録契機対象キー2";			// 項目名
		value[1] = "0";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "1";										// 最小桁数
		value[4] = "20";									// 最大桁数
		hashData.put(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY2, value);
		
		// キャンペーン登録契機対象キー3
		value = new String[PROPERTIES_SIZE];
		value[0] = "キャンペーン登録契機対象キー3";			// 項目名
		value[1] = "0";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "1";										// 最小桁数
		value[4] = "20";									// 最大桁数
		hashData.put(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY3, value);
		
		// キャンペーン登録契機対象キー4
		value = new String[PROPERTIES_SIZE];
		value[0] = "キャンペーン登録契機対象キー4";			// 項目名
		value[1] = "0";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "1";										// 最小桁数
		value[4] = "20";									// 最大桁数
		hashData.put(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY4, value);
		
		// キャンペーン登録契機対象キー5
		value = new String[PROPERTIES_SIZE];
		value[0] = "キャンペーン登録契機対象キー5";			// 項目名
		value[1] = "0";										// 必須フラグ
		value[2] = "hannkakuesuuji1";						// 形式
		value[3] = "1";										// 最小桁数
		value[4] = "20";									// 最大桁数
		hashData.put(JBSbatKKIFE337.CMP_ADD_OPTY_TG_KEY5, value);
		
		return hashData;
	}
	
	/**
	 * パラメタの単項目チェックを行う。<br>
	 * @param inMap 入力電文
	 * @param arrHash チェックするデータの属性
	 * @return boolean true：エラーなし、false：エラーあり
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private boolean isSingleCheck(JBSbatServiceInterfaceMap inMap, LinkedHashMap<String, String []> arrHash) throws Exception
	{
		String key = "";
		String strValue = "";
		String min = "";
		String max = "";
		Iterator<String> iterator = arrHash.keySet().iterator();
		while(iterator.hasNext())
		{
			key = iterator.next();
			strValue = inMap.getString(key);
			
			// 必須チェック
			if ("1".equals(arrHash.get(key)[1]))
			{
				if (!JKKBatCommon.isNotNull(strValue))
				{
					// %1%,%2%：%3%エラー（%4%：%5%）
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB1290AI, new String[]{
							sysid, sisakShinseiSeq, "必須", arrHash.get(key)[0], strValue});
					return false;
				}
			}
			
			if (JKKBatCommon.isNotNull(strValue))
			{
				// 形式チェック
				if (!JBSbatCheckUtil.invoke(strValue, new String[]{arrHash.get(key)[2]}))
				{
					// %1%,%2%：%3%エラー（%4%：%5%）
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB1290AI, new String[]{
							sysid, sisakShinseiSeq, "形式", arrHash.get(key)[0], strValue});
					return false;
				}
				min = arrHash.get(key)[3];
				max = arrHash.get(key)[4];
				
				// 桁数チェック
				if (!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", min, max}))
				{
					// %1%,%2%：%3%エラー（%4%：%5%）
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB1290AI, new String[]{
							sysid, sisakShinseiSeq, "桁数", arrHash.get(key)[0], strValue});
					return false;
				}
			}
		}
		return true;
	}
	
	/**
	 * 異動情報抽出結果送信（対象外）の出力を行う。<br>
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void outputKkife338001() throws Exception
	{
		ArrayList<String> outputInfo = new ArrayList<String>();
		
		// 項目設定
		outputInfo.add(sysid);							// SYSID
		outputInfo.add(sisakShinseiSeq);				// 施策申請枝番
		outputInfo.add(svcKeiNo);						// サービス契約番号
		outputInfo.add(cmpAddOptntyCd);					// キャンペーン登録契機コード
		outputInfo.add(cmpAddOptyTgKey1);				// キャンペーン登録契機対象キー1
		outputInfo.add(cmpAddOptyTgKey2);				// キャンペーン登録契機対象キー2
		outputInfo.add(cmpAddOptyTgKey3);				// キャンペーン登録契機対象キー3
		outputInfo.add(cmpAddOptyTgKey4);				// キャンペーン登録契機対象キー4
		outputInfo.add(cmpAddOptyTgKey5);				// キャンペーン登録契機対象キー5
		outputInfo.add("");								// キャンペーン登録期日到来区分
		outputInfo.add("");								// キャンペーン登録期日到来年月日
		outputInfo.add(JBSbatKKConst.TRN_RSLT_CD_ERR);	// 処理結果コード
		
		JKKBatCommon.printDoubleQuoteBusinessFileUtil(kkife338001FileObj, outputInfo);
	}
	
	/**
	 * 異動情報抽出結果の出力を行う。<br>
	 * @param fileObj ファイル出力制御クラスインスタンス
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void outputKkifm705(JBSbatBusinessFileUtil fileObj) throws Exception
	{
		ArrayList<String> outputInfo = new ArrayList<String>();
		
		// 項目設定
		outputInfo.add(sysid);							// SYSID
		outputInfo.add(sisakShinseiSeq);				// 施策申請枝番
		outputInfo.add(svcKeiNo);						// サービス契約番号
		outputInfo.add(cmpAddOptntyCd);					// キャンペーン登録契機コード
		outputInfo.add(cmpAddOptyTgKey1);				// キャンペーン登録契機対象キー1
		outputInfo.add(cmpAddOptyTgKey2);				// キャンペーン登録契機対象キー2
		outputInfo.add(cmpAddOptyTgKey3);				// キャンペーン登録契機対象キー3
		outputInfo.add(cmpAddOptyTgKey4);				// キャンペーン登録契機対象キー4
		outputInfo.add(cmpAddOptyTgKey5);				// キャンペーン登録契機対象キー5
		outputInfo.add("");								// キャンペーン登録期日到来区分
		outputInfo.add("");								// キャンペーン登録期日到来年月日
		outputInfo.add("");								// 処理結果コード
		outputInfo.add("");								// お客様＿ＳＹＳＩＤ
		outputInfo.add("");								// サービス契約＿サービス契約番号
		outputInfo.add("");								// 工事案件＿工事案件番号
		outputInfo.add("");								// 工事案件＿工事案件ステータス
		outputInfo.add("");								// 工事案件＿工事案件実施年月日
		outputInfo.add("");								// 配送＿配送番号
		outputInfo.add("");								// 配送＿配送ステータス
		outputInfo.add("");								// 配送＿配送完了年月日
		outputInfo.add("");								// 異動予約＿異動予約番号
		outputInfo.add("");								// 異動予約＿異動予約反映日
		outputInfo.add("");								// 異動予約＿異動予約状態コード
// OT-2016-0000007 ADD START
		outputInfo.add("");								// 機器提供サービス契約＿機器提供サービス契約ステータス
// OT-2016-0000007 ADD END
		
		JKKBatCommon.printDoubleQuoteBusinessFileUtil(fileObj, outputInfo);
	}
}
