/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatFUWebMskmUktkJskGet
*	ソースファイル名	：JBSbatFUWebMskmUktkJskGet.java
*	作成者				：富士通
*	作成日				：2012年06月23日
*＜機能概要＞
*　ＷＥＢ申込受付実績データ抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/06/23  富士通		新規作成
*	v10.00		2014/07/24  FJ)岡井		【ANK-2137-00-00】提携住宅会社用WEB受付画面配置
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatFUIFM002001;
import eo.common.constant.JFUStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
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 JBSbatFUWebMskmUktkJskGet extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(Ｗｅｂ申込受付実績)*/
	private static final String D_TBL_NAME_FU_T_WEB_MSKM_UK_JSK = "FU_T_WEB_MSKM_UK_JSK";

	/** SQL定義キー(FU_SELECT_001)*/
	private static final String FU_T_WEB_MSKM_UK_JSK_FU_SELECT_001 = "FU_SELECT_001";

	/** テーブルアクセスクラス(Ｗｅｂ申込受付実績)*/
	private JBSbatSQLAccess db_FU_T_WEB_MSKM_UK_JSK = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** メッセージキー(EFUB0120AI)*/
	private static final String EFUB0120AI = JPCBatchMessageConstant.EFUB0120AI;

	/**メッセージID */
	private static final String EFUB0030KE = JPCBatchMessageConstant.EFUB0030KE;

	/** ファイル名(クレカ請求集計ファイル)*/
	private static final String S_FUIFM002001_NM = "ＷＥＢ申込実績データ抽出ファイル";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	@Override
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_FU_T_WEB_MSKM_UK_JSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_FU_T_WEB_MSKM_UK_JSK);

		// パラメータ読み出し
		String strFreeParam = commonItem.getFreeItem();

		// パラメータを区切り文字で分割する
		String[] lines = strFreeParam.split(JFUStrConst.S_PARAM_DELIM);
		// パラメータチェック
		if(lines.length != 1 || ("").equals(lines[0]))
		{
			throw new JBSbatBusinessException(EFUB0030KE);
		}
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		int mapCnt = 0;				// ファイル出力レコード件数カウント用
		int breakCnt = 0;			// セッションIDブレーク用
		String strTaihiSsid	= "";	// 退避用セッションID

		// FREEパラメータ取得(入力中間ファイルパス)
		String strFreeParam = commonItem.getFreeItem();

		// パラメータを区切り文字で分割する
		String[] lines = strFreeParam.split(JFUStrConst.S_PARAM_DELIM);
		// パラメータ取得
		String strFreeParam1 = lines[0];	// 起動コード

		// システム日付情報を取得
		String strSysDate = JCCBatCommon.getSysDateTimeStamp();

		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();

		// WEB申込受付実績SQL発行用領域作成
		JBSbatCommonDBInterface web_mskm_map = null;

		// SQL発行
		JBSbatCommonDBInterface dbList1 = new JBSbatCommonDBInterface();
		dbList1. setValue(strSysDate);
		executeFU_T_WEB_MSKM_UK_JSK_FU_SELECT_001(dbList1.getList().toArray());
		for(web_mskm_map = db_FU_T_WEB_MSKM_UK_JSK.selectNext(); null != web_mskm_map; web_mskm_map = db_FU_T_WEB_MSKM_UK_JSK.selectNext())
		{
			// 取得結果を1件ずつ読込み、ファイルへ書き出し
			JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();

			// 提携住宅WEBは対象外の為、読み飛ばす
			if(JFUStrConst.S_AGENT_WEB_03.equals(web_mskm_map.getString("AGNT_SBT_CD")))
			{
				continue;
			}

			// 定期起動用処理
			if(JFUStrConst.S_WEB_SHUK_KIDO_PARA_1.equals(strFreeParam1))
			{
				// 定期起動のときは読込んだ項目を全て設定
				outmap.setString(JBSbatFUIFM002001.SESSION_ID, web_mskm_map.getString("SESSION_ID"));
				outmap.setString(JBSbatFUIFM002001.SCREEN_ID, web_mskm_map.getString("SCREEN_ID"));
				outmap.setString(JBSbatFUIFM002001.SCREEN_DSP_DTM, web_mskm_map.getString("SCREEN_DSP_DTM"));
				outmap.setString(JBSbatFUIFM002001.MSKM_NO, web_mskm_map.getString("MSKM_NO"));
				outmap.setString(JBSbatFUIFM002001.MSKM_DSEN_SKBT_CD, web_mskm_map.getString("MSKM_DSEN_SKBT_CD"));
				outmap.setString(JBSbatFUIFM002001.SVC_TYPE_SKBT_CD, web_mskm_map.getString("SVC_TYPE_SKBT_CD"));
				outmap.setString(JBSbatFUIFM002001.AGNT_SBT_CD, web_mskm_map.getString("AGNT_SBT_CD"));
				outmap.setString(JBSbatFUIFM002001.NET_MSKM_FLG, web_mskm_map.getString("NET_MSKM_FLG"));
				outmap.setString(JBSbatFUIFM002001.TV_MSKM_FLG, web_mskm_map.getString("TV_MSKM_FLG"));
				outmap.setString(JBSbatFUIFM002001.TEL_MSKM_FLG, web_mskm_map.getString("TEL_MSKM_FLG"));
				outmap.setString(JBSbatFUIFM002001.MBL_MSKM_FLG, web_mskm_map.getString("MBL_MSKM_FLG"));
				outmap.setString(JBSbatFUIFM002001.ADSL_MSKM_FLG, web_mskm_map.getString("ADSL_MSKM_FLG"));
				outmap.setString(JBSbatFUIFM002001.MSKM_YMD, web_mskm_map.getString("MSKM_YMD"));
				outmap.setString(JBSbatFUIFM002001.INTR_CMP_FLG, web_mskm_map.getString("INTR_CMP_FLG"));
				outmap.setString(JBSbatFUIFM002001.WRIB_SVC_CD, web_mskm_map.getString("WRIB_SVC_CD"));
				outmap.setString(JBSbatFUIFM002001.AGNT_CD, web_mskm_map.getString("AGNT_CD"));
				outmap.setString(JBSbatFUIFM002001.AGNT_SHUK_KMK_CD, web_mskm_map.getString("AGNT_SHUK_KMK_CD"));
				outmap.setString(JBSbatFUIFM002001.NET_KST_UM, web_mskm_map.getString("NET_KST_UM"));
				outmap.setString(JBSbatFUIFM002001.TV_KST_UM, web_mskm_map.getString("TV_KST_UM"));
				outmap.setString(JBSbatFUIFM002001.REFERER, web_mskm_map.getString("REFERER"));
				outmap.setString(JBSbatFUIFM002001.SHUK_TANI_SKBT_CD, web_mskm_map.getString("SHUK_TANI_SKBT_CD"));

				// 出力フラグを設定
				outmap.setOutFlg(true);
				// 出力共通電文に入出力インターフェースを設定する。
				outputBean.addOutMapList(outmap);
				mapCnt++;
			}
			// 随時起動用処理
			else if(JFUStrConst.S_WEB_SHUK_KIDO_PARA_2.equals(strFreeParam1))
			{
				String strScrDspDtm = web_mskm_map.getString("SCREEN_DSP_DTM");
				String strSsid = web_mskm_map.getString("SESSION_ID");

				// セッションIDが前レコードと違うときはブレークカウントを初期化
				if(!strTaihiSsid.equals(strSsid))
				{
					breakCnt = 0;
				}

				// 随時起動時はセッションID毎の1件目の画面表示年月日がシステム日付と同じ日付のデータのみ出力
				if(breakCnt == 0 && strSysDate.substring(0, 8).equals(strScrDspDtm.substring(0, 8)))
				{
					outmap.setString(JBSbatFUIFM002001.SESSION_ID, strSsid);
					outmap.setString(JBSbatFUIFM002001.SCREEN_ID, web_mskm_map.getString("SCREEN_ID"));
					outmap.setString(JBSbatFUIFM002001.SCREEN_DSP_DTM, strScrDspDtm);
					outmap.setString(JBSbatFUIFM002001.MSKM_NO, web_mskm_map.getString("MSKM_NO"));
					outmap.setString(JBSbatFUIFM002001.MSKM_DSEN_SKBT_CD, web_mskm_map.getString("MSKM_DSEN_SKBT_CD"));
					outmap.setString(JBSbatFUIFM002001.SVC_TYPE_SKBT_CD, web_mskm_map.getString("SVC_TYPE_SKBT_CD"));
					outmap.setString(JBSbatFUIFM002001.AGNT_SBT_CD, web_mskm_map.getString("AGNT_SBT_CD"));
					outmap.setString(JBSbatFUIFM002001.NET_MSKM_FLG, web_mskm_map.getString("NET_MSKM_FLG"));
					outmap.setString(JBSbatFUIFM002001.TV_MSKM_FLG, web_mskm_map.getString("TV_MSKM_FLG"));
					outmap.setString(JBSbatFUIFM002001.TEL_MSKM_FLG, web_mskm_map.getString("TEL_MSKM_FLG"));
					outmap.setString(JBSbatFUIFM002001.MBL_MSKM_FLG, web_mskm_map.getString("MBL_MSKM_FLG"));
					outmap.setString(JBSbatFUIFM002001.ADSL_MSKM_FLG, web_mskm_map.getString("ADSL_MSKM_FLG"));
					outmap.setString(JBSbatFUIFM002001.MSKM_YMD, web_mskm_map.getString("MSKM_YMD"));
					outmap.setString(JBSbatFUIFM002001.INTR_CMP_FLG, web_mskm_map.getString("INTR_CMP_FLG"));
					outmap.setString(JBSbatFUIFM002001.WRIB_SVC_CD, web_mskm_map.getString("WRIB_SVC_CD"));
					outmap.setString(JBSbatFUIFM002001.AGNT_CD, web_mskm_map.getString("AGNT_CD"));
					outmap.setString(JBSbatFUIFM002001.AGNT_SHUK_KMK_CD, web_mskm_map.getString("AGNT_SHUK_KMK_CD"));
					outmap.setString(JBSbatFUIFM002001.NET_KST_UM, web_mskm_map.getString("NET_KST_UM"));
					outmap.setString(JBSbatFUIFM002001.TV_KST_UM, web_mskm_map.getString("TV_KST_UM"));
					outmap.setString(JBSbatFUIFM002001.REFERER, web_mskm_map.getString("REFERER"));
					outmap.setString(JBSbatFUIFM002001.SHUK_TANI_SKBT_CD, web_mskm_map.getString("SHUK_TANI_SKBT_CD"));

					// 出力フラグを設定
					outmap.setOutFlg(true);
					// 出力共通電文に入出力インターフェースを設定する。
					outputBean.addOutMapList(outmap);
					mapCnt++;
				}

				// セッションID退避
				strTaihiSsid = strSsid;
			}
		}
		// 処理結果ログ出力
		super.logPrint.printBusinessErrorLog(EFUB0120AI, new String[] {S_FUIFM002001_NM, String.valueOf(mapCnt)});

		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	@Override
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_FU_T_WEB_MSKM_UK_JSK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * SQLKEY(FU_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 *
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	画面表示年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeFU_T_WEB_MSKM_UK_JSK_FU_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_FU_T_WEB_MSKM_UK_JSK.selectBySqlDefine(paramList, FU_T_WEB_MSKM_UK_JSK_FU_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
