/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACDlydTrnFileCstZuiji
*	ソースファイル名	：JBSbatACDlydTrnFileCstZuiji.java
*	作成者				：富士通　
*	作成日				：2011年09月14日
*＜機能概要＞
*　ディレイド処理ファイル抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v38.00.00	2018/09/26   富士通		【ANK-2135-00-00】台風２１号に伴う利用不可減額対応方法検討
*
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatACIFM099;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACDlydTrnFileCstZuiji extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(ディレイド処理依頼)*/
	private static final String D_TBL_NAME_CC_T_DLYD_TRN_REQ = "CC_T_DLYD_TRN_REQ";

	/** テーブルアクセスクラス(ディレイド処理依頼)*/
	private JBSbatSQLAccess db_CC_T_DLYD_TRN_REQ = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CC_T_DLYD_TRN_REQ = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CC_T_DLYD_TRN_REQ);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		// ディレイド処理依頼番号を採番する。
		String seqDlydTrnReqNo = JCCBatCommon.getFormatedNextSeq(commonItem, "SEQ_DLYD_TRN_REQ_NO", "D", 14);

		// ディレイド処理依頼情報の登録を行う。
		String[] paramValue = this.createCcTDlydTrnReq(seqDlydTrnReqNo);
		this.executeCC_T_DLYD_TRN_REQ_PKINSERT(paramValue);

		// 出力ファイル作成
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		outMap.setString(JBSbatACIFM099.DLYD_TRN_REQ_NO,	seqDlydTrnReqNo);	// ディレイド処理依頼番号
		outMap.setOutFlg(true);

		// 出力共通電文クラス作成
		JBSbatOutputItem outputInItem = new JBSbatOutputItem();
		outputInItem.addOutMapList(outMap);

		return outputInItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CC_T_DLYD_TRN_REQ.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ディレイド処理依頼番号				DLYD_TRN_REQ_NO
	 *		 	ディレイド処理依頼ステータス				DLYD_TRN_REQ_STAT
	 *		 	ディレイド処理実施運用年月日時分秒				DLYD_TRN_JSSI_UNYO_DTM
	 *		 	入力電子ファイル管理番号				INPUT_EFILE_KANRI_NO
	 *		 	入力電子ファイル世代登録年月日時分秒				INPUT_EFILE_GENE_ADD_DTM
	 *		 	依頼ジョブＩＤ				REQ_JOB_ID
	 *		 	システムコード				SYS_CD
	 *		 	ディレイド処理依頼種別コード				DLYD_TRN_REQ_SBT_CD
	 *		 	ディレイド処理結果コード				DLYD_TRN_RSLT_CD
	 *		 	エラー電子ファイル管理番号				ERR_EFILE_KANRI_NO
	 *		 	エラー電子ファイル世代登録年月日時分秒				ERR_EFILE_GENE_ADD_DTM
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCC_T_DLYD_TRN_REQ_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("DLYD_TRN_REQ_NO", setParam[0]);
		setMap.setValue("DLYD_TRN_REQ_STAT", setParam[1]);
		setMap.setValue("DLYD_TRN_JSSI_UNYO_DTM", setParam[2]);
		setMap.setValue("INPUT_EFILE_KANRI_NO", setParam[3]);
		setMap.setValue("INPUT_EFILE_GENE_ADD_DTM", setParam[4]);
		setMap.setValue("REQ_JOB_ID", setParam[5]);
		setMap.setValue("SYS_CD", setParam[6]);
		setMap.setValue("DLYD_TRN_REQ_SBT_CD", setParam[7]);
		setMap.setValue("DLYD_TRN_RSLT_CD", setParam[8]);
		setMap.setValue("ERR_EFILE_KANRI_NO", setParam[9]);
		setMap.setValue("ERR_EFILE_GENE_ADD_DTM", setParam[10]);
		setMap.setValue("ADD_DTM", setParam[11]);
		setMap.setValue("ADD_OPEACNT", setParam[12]);
		setMap.setValue("UPD_DTM", setParam[13]);
		setMap.setValue("UPD_OPEACNT", setParam[14]);
		setMap.setValue("DEL_DTM", setParam[15]);
		setMap.setValue("DEL_OPEACNT", setParam[16]);
		setMap.setValue("MK_FLG", setParam[17]);
	
		// DBアクセスを実行します
		db_CC_T_DLYD_TRN_REQ.insertByPrimaryKeys(setMap);
	}

	/**
	 * ディレイド処理依頼情報登録文字配列を作成します。<br>
	 * <br>
	 * @param seqDlydTrnReqNo ディレイド処理依頼番号
	 * @param retDenshiFile 電子ファイル管理情報
	 * @return 登録用文字配列
	 */
	private String[] createCcTDlydTrnReq(String seqDlydTrnReqNo)
	{

		String[] strParam = new String[18];

		// ディレイド処理依頼番号
		strParam[0] = seqDlydTrnReqNo;

		// ディレイド処理依頼ステータス
		strParam[1] = "002";

		// ディレイド処理実施運用年月日時分秒
		strParam[2] = "00000000000000000";

		// 入力電子ファイル管理番号
		strParam[3] = null;

		// 入力電子ファイル世代登録年月日時分秒
		strParam[4] = null;

		// 依頼ジョブID
		strParam[5] = this.jobid;

		// システムコード
		strParam[6] = "CH";

		// ディレイド処理依頼種別コード
		strParam[7] = "00000";

		// ディレイド処理結果コード
		strParam[8] = null;

		// エラー電子ファイル管理番号
		strParam[9] = null;

		// エラー電子ファイル世代登録年月日時分秒
		strParam[10] = null;

		return strParam;
	}
}
