/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatZMImageUserDataSend
*	ソースファイル名	：JBSbatZMImageUserDataSend.java
*	作成者				：富士通　
*	作成日				：2012年03月30日
*＜機能概要＞
*　ユーザー情報ファイル送信部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2012/03/30	FJ）日野	【SGY-2012-000006】新規作成
*	v3.01.00	2012/08/01	FJ）日野	【DES-2012-0000004】連携ディレクトリ(ZD)対応
*   v4.00.00	2012/11/14	FJ) 伊藤	【TAI-2012-0000140】品質強化対策
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JZMBatCommon;
import eo.business.common.JZMBatConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;

/**
* ユーザー情報ファイル送信クラスです。 <p>
*<BR>
* @author 富士通
*/
public class JBSbatZMImageUserDataSend extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		/* ++++++++++ v1.0.0 追加開始 ++++++++++ */
		
		// 送信するファイルの配置先を取得
		String inPath = JZMBatCommon.getZdGaibuSendDir(JZMBatConst.ZDIFE013_DIR);
		
		super.logPrint.printDebugLog("共通（イメージ）送信ファイルパス:" + inPath);
		
		// 外部インターフェイス名と前方一致するファイル名を取得
		String inFile = JZMBatCommon.getFileNameDatePattern(
				inPath, JZMBatConst.ZDIFE013 + JZMBatConst.UNDERSCORE, JZMBatConst.YYYYMMDDHHMMSS, JZMBatConst.CSV);
		
		if(inFile == null || inFile.equals(JZMBatConst.BLANK))
		{
			// CSVファイルが存在しない場合はエラー
			StringBuffer sb = new StringBuffer();
			sb.append(inPath).append(JZMBatConst.ZDIFE013).append(JZMBatConst.UNDERSCORE).append(JZMBatConst.YYYYMMDDHHMMSS).append(JZMBatConst.CSV);
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EZMB0140CW, new String[]{sb.toString()});
		}
		
		StringBuffer inFilePath = new StringBuffer();
		inFilePath.append(inPath).append(JZMBatCommon.nullToBlank(inFile));
		
		super.logPrint.printDebugLog("共通（イメージ）送信ファイルフルパス:" + inFilePath.toString());
		
		// ファイルパス格納用リスト
		ArrayList<String> filePathList = new ArrayList<String>();
		
		filePathList.add(inFilePath.toString());
		
		// 外部システムに対するFTP転送
		JZMBatCommon.putFTPGaibu(commonItem, filePathList, JZMBatConst.ZDIFE013);
		
		/* ++++++++++ v1.0.0 追加終了 ++++++++++ */
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
