/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSendCTITelnoData
*	ソースファイル名	：JBSbatKKSendCTITelnoData.java
*	作成者				：富士通　
*	作成日				：2011年10月18日
*＜機能概要＞
*　CTI電話番号情報送信部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/18   富士通		新規作成
*	v54.00.00	2021/08/12   GDC)j.hortilano		【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>
* CTI電話番号情報抽出バッチより出力されたCTI電話番号情報ファイルをePOPにFTP送信する。<BR>
*<BR>
* @author 富士通
*/
public class JBSbatKKSendCTITelnoData extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** ディレクトリ区切り文字 */
	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 DELIM  = JKKBatConst.S_PARAM_DELIM;

	/** 改行コード */
	private static final String CRLF  = "CR+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 >= 4) 
			{

				String ifId = freeItems[0];			// FTP転送依頼するインターフェイスID
				String flgFileNm = freeItems[1];	// FTP転送するフラグファイル名
				int esbSbt = JCCBatCommon.ISI;		// ESB種別

				int dataIndex = 2;
				try
				{
					for (int i = 0 ; i < (freeItems.length - 2) / 2 ; i++)
					{
						// 連携するフラグファイルを作成
						String[] filePath = freeItems[dataIndex].split(DRCTRY_SYMBOL);
						String fileName = filePath[filePath.length - 1];
						String changeDate = fileName.substring(9, 23);
						String flgFileName = flgFileNm.replace(DATE_TYPE, changeDate);
						JBSbatOutputFileUtil flgFile = new JBSbatOutputFileUtil(flgFileName);
						flgFile.setEncode(SJIS);
						flgFile.setLine(CRLF);
						flgFile.createWriter();
						flgFile.close();

						// ANK-4069-00-00 DEL START
						//ArrayList<String> fileNameList = new ArrayList<String>();
						//fileNameList.add(freeItems[dataIndex]);		// 連携するデータファイル名
						//fileNameList.add(freeItems[dataIndex + 1]);	// 連携する件数ファイル名
						//fileNameList.add(flgFileName);	// 連携するフラグファイル名
						//JKKBatFTPUtil.putFile(super.commonItem, ifId, esbSbt, fileNameList);
						// ANK-4069-00-00 DEL END

						dataIndex = dataIndex + 2;
					}
					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
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
