/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSendKsCtrlData
*	ソースファイル名	：JBSbatKKSendKsCtrlData.java
*	作成者				：富士通　
*	作成日				：2011年08月31日
*＜機能概要＞
*　監視制御データ送信部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/31   富士通		新規作成
*	v54.00.00	2021/08/12	GDC)オーヴィー	【ANK-4069-00-00】EOL対応(バッチ・DBサーバリプレース対応)
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.common.JKKBatFTPUtil;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;

/**
* (クラスの機能概要) <p>
* 監視制御用契約情報ファイル送信処理<BR>
*<BR>
* 監視制御用契約情報ファイルをFTP送信する。<BR>
*<BR>
* @author 富士通
*/
public class JBSbatKKSendKsCtrlData extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** コロン */
	private static final String DELIM = JKKBatConst.S_PARAM_DELIM;

	/** ディレクトリ区切り文字 */
	private static final String DRCTRY_SYMBOL  = JKKBatConst.S_HALF_SLASH;

	/** 日付形式*/
	private static final String DATE_TYPE = "yyyymmddhhmmss";

	/** 文字コード */
	private static final String SJIS  = JKKBatConst.SJIS;

	/** 改行コード */
	private static final String CODE_LF  = "LF";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// FreeパラメータよりインターフェイスIDとファイル名を取得
		// セパレータはセミコロン（;）
		if (super.freeItem != null)
		{
			String[] freeItems = super.freeItem.split(DELIM);
		
			if (freeItems.length == 3)
			{
				if ((freeItems[0].length() != 0) && (freeItems[1].length() != 0) && (freeItems[2].length() != 0))
				{
					try
					{
						// フラグファイルを作成
						String fileName = freeItems[1];
						fileName = fileName.substring(fileName.lastIndexOf(DRCTRY_SYMBOL), fileName.length());
						String changeDate = fileName.substring(10, 24);
						String flgFileName = freeItems[2].replace(DATE_TYPE, changeDate);
						JBSbatOutputFileUtil flgFile = new JBSbatOutputFileUtil(flgFileName);
						flgFile.setEncode(SJIS);
						flgFile.setLine(CODE_LF);
						flgFile.createWriter();
						flgFile.close();

						// ANK-4069-00-00 DEL START
						//String ifId = freeItems[0];			// FTP転送依頼するインターフェイスID
						//int esbSbt = JCCBatCommon.ISI;		// ESB種別
						//ArrayList<String> fileNameList = new ArrayList<String>();
						//fileNameList.add(freeItems[1]);		// 連携するデータファイル名を設定（フルパス指定）
						//fileNameList.add(flgFileName);		// 連携するフラグファイル名を設定（フルパス指定）

						//JKKBatFTPUtil.putFile(super.commonItem, ifId, esbSbt, fileNameList);
						// ANK-4069-00-00 DEL END

						return null;
					}
					catch (JBSbatBusinessException bie)
					{
					// 連携ファイル処理失敗
						throw new JBSbatBusinessException("EKKB0130CE",
								new String[] {"FREE=" + super.freeItem});
					}
				}
			}
		}
		// エラーログ出力
		super.logPrint.printBusinessErrorLog("EKKB0130CE",
				new String[] {"FREE=" + super.freeItem});
		// エラーフラグ設定
		super.commonItem.setErrFlg(true);
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
