/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKNhkDntIktMskDataFileSksi
*	ソースファイル名	：JBSbatKKNhkDntIktMskDataFileSksi.java
*	作成者				：富士通　
*	作成日				：2025年05月02日
*＜機能概要＞
*　NHK団体一括契約マイページ申込データを取込、CSVファイルに出力する部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v75.0.0	2025/05/02   FJ)峰村	新規作成【案件番号：ANK-4686-00-00】eoマイページからのNHK団体一括申込対応
*********************************************************************/
package eo.business.service;

import java.io.File;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.util.JBSbatDateUtil;

public class JBSbatKKNhkDntIktMskDataFileSksi extends JBSbatBusinessService
{
	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";
	
	/** フリー項目情報格納用配列 */
	private String[] fleeItemArray = null;
	
	/** 処理管理番号 */
	private static final String kanriNo = "000000000289";
	
	/** データ件数 */
	private long dataCount = 0;
	
	/** ファイルパス **/
	private String fileDir;
	
	/** ファイル名 **/
	private String fileName;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
		/** ▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼ */

		// 共通パラメータを設定します。
		super.setCommonInfo(commonItem);
		
		// フリー項目情報を取得
		fleeItemArray = super.freeItem.split(JACStrConst.FREE_DIV);
		
		// ファイルパス取得
		fileDir = fleeItemArray[0];
		
		// ファイル名取得
		fileName = fleeItemArray[1];
		
		/** ▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲ */
	}
	
	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
		/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// ファイル存在確認
		String insertFilePath = fileDir + "/" + fileName;
		File insertFile = new File(insertFilePath);
		if (insertFile.exists())
		{
			// データ件数取得
			dataCount = Long.valueOf(fleeItemArray[2]);
		}
		else
		{
			// メジャーエラーを発生「指定されたファイルまたはディレクトリが存在しません。：%1%」
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EACB0710CE, new String[] {insertFile.getName()});
		}
		
		return outputBean;
		
		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 業務サービス終了処理
	 * 
	 * @throws Exception
	 */
	public void terminal() throws Exception 
	{
		/** ▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼ */
		
		// 電子ファイル管理・ダウンロードファイル管理に登録
		JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
		
		JKKBatCommon.createFile(commonItem,
								kanriNo,
								dataCount,
								"0000",
								fileDir,
								fileName,
								JBSbatDateUtil.adjustDate(super.opeDate, 90),
								db_ZM_T_DL_FILE_KANRI,
								false);
		
		/** ▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲ */
	}
}
