/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTchiTaishoJudge
*	ソースファイル名	：JBSbatKKTchiTaishoJudge.java
*	作成者				：富士通　
*	作成日				：2012年04月23日
*＜機能概要＞
*　通知対象物判定部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/23   富士通		新規作成
*	v5.01		2013/09/18	FJ)坂東		【OM-2013-0002062】アンロード対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM194;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_TCHI_TG_BPIN;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTchiTaishoJudge extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	// 2013/09/18 OM-2013-0002062 del Start
//	/** テーブル(通知対象物)*/
//	private static final String D_TBL_NAME_KK_T_TCHI_TG_BPIN = "KK_T_TCHI_TG_BPIN";
//
//	/** SQL定義キー(KK_SELECT_003)*/
//	private static final String KK_T_TCHI_TG_BPIN_KK_SELECT_003 = "KK_SELECT_003";
//
//	/** SQL定義キー(KK_SELECT_004)*/
//	private static final String KK_T_TCHI_TG_BPIN_KK_SELECT_004 = "KK_SELECT_004";
//
//	/** テーブルアクセスクラス(通知対象物)*/
//	private JBSbatSQLAccess db_KK_T_TCHI_TG_BPIN = null;
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
//	/** 通知書ステータス 新規 */
//	private static final String TCHISHO_STAT_SHINKI = "010";
	// 2013/09/18 OM-2013-0002062 del End
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		// 2013/09/18 OM-2013-0002062 del Start
//		db_KK_T_TCHI_TG_BPIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_TCHI_TG_BPIN);
		// 2013/09/18 OM-2013-0002062 del End
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap tchishoInfo) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		// 通知対象物のうち、サービス契約が無効になったデータを抽出する。
		// 2013/09/18 OM-2013-0002062 del Start
//		String[] param1 = new String[]{
//				TCHISHO_STAT_SHINKI, super.opeDate, 
//				JKKBatConst.CD_SBT_SVC_KEI_STAT_910, JKKBatConst.CD_SBT_SVC_KEI_STAT_920};
//		List<JBSbatCommonDBInterface> invalidList = executeKK_T_TCHI_TG_BPIN_KK_SELECT_003(param1);
//		
//		// 通知対象物のうち、サービス契約が有効になったデータを抽出する。
//		String[] param2 = new String[]{
//				TCHISHO_STAT_SHINKI, super.opeDate, 
//				JKKBatConst.CD_SBT_SVC_KEI_STAT_100};
//		List<JBSbatCommonDBInterface> validList = executeKK_T_TCHI_TG_BPIN_KK_SELECT_004(param2);
		// 2013/09/18 OM-2013-0002062 del End
		// 抽出結果を編集する。
		JBSbatServiceInterfaceMap outMap = null;
//		JBSbatCommonDBInterface tchishoInfo = null;
		String svcStat = null;
		String endYmd = null;
		// 2013/09/18 OM-2013-0002062 mod Start
		String maxDate = JKKBatCommon.getMaxDate();
//		if (null != invalidList && !invalidList.isEmpty())
//		{
//			for (int i = 0; i < invalidList.size(); i++)
//			{
//				tchishoInfo = invalidList.get(i);
		outMap = new JBSbatServiceInterfaceMap();
		
		// ----------------------------------------------------
		// 通知対象物番号
		// ----------------------------------------------------
		outMap.setString(JBSbatKKIFM194.TCHI_TG_BPIN_NO, 
				JBSbatStringUtil.Rtrim(tchishoInfo.getString(JBSbatKK_T_TCHI_TG_BPIN.TCHI_TG_BPIN_NO)));
		// ----------------------------------------------------
		// 通知対象物適用終了年月日
		// ----------------------------------------------------
		// サービス契約ステータスを取得する
		svcStat = JBSbatStringUtil.Rtrim(tchishoInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
		
		// キャンセルと解約で取得する日を変更する
		if (JKKBatConst.CD_SBT_SVC_KEI_STAT_910.equals(svcStat))
		{
			endYmd = JBSbatStringUtil.Rtrim(tchishoInfo.getString(JBSbatKK_T_SVC_KEI.SVC_ENDYMD));
		}
		else if (JKKBatConst.CD_SBT_SVC_KEI_STAT_920.equals(svcStat))
		{
			endYmd = JBSbatStringUtil.Rtrim(tchishoInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CANCEL_YMD));
		}
		else {
			// 最大年月日を取得し設定する
			endYmd = maxDate;
		}
		
		outMap.setString(JBSbatKKIFM194.TCHI_TG_BPIN_TENDYMD, endYmd);
		// 出力フラグ
		outMap.setOutFlg(true);
		outputItem.addOutMapList(outMap);
//			}
//		}
		// 2013/09/18 OM-2013-0002062 mod End
		// 2013/09/18 OM-2013-0002062 del Start
//		if (null != validList && !validList.isEmpty())
//		{
//			for (int i = 0; i < validList.size(); i++)
//			{
//				tchishoInfo = validList.get(i);
//				outMap = new JBSbatServiceInterfaceMap();
//				// ----------------------------------------------------
//				// 通知対象物番号
//				// ----------------------------------------------------
//				outMap.setString(JBSbatKKIFM194.TCHI_TG_BPIN_NO, 
//						JBSbatStringUtil.Rtrim(tchishoInfo.getString(JBSbatKK_T_TCHI_TG_BPIN.TCHI_TG_BPIN_NO)));
//				// ----------------------------------------------------
//				// 通知対象物適用終了年月日
//				// ----------------------------------------------------
//				// サービス契約ステータスを取得する
//				svcStat = JBSbatStringUtil.Rtrim(tchishoInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
//				
//				// ステータスがサービス提供中であるかを確認
//				if (JKKBatConst.CD_SBT_SVC_KEI_STAT_100.equals(svcStat))
//				{
//					// 最大年月日を取得し設定する
//					endYmd = JKKBatCommon.getMaxDate();
//				}
//
//				outMap.setString(JBSbatKKIFM194.TCHI_TG_BPIN_TENDYMD, endYmd);
//				// 出力フラグ
//				outMap.setOutFlg(true);
//				outputItem.addOutMapList(outMap);
//			}
//		}
		// 2013/09/18 OM-2013-0002062 del End
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		// 2013/09/18 OM-2013-0002062 del Start
//		db_KK_T_TCHI_TG_BPIN.close();
		// 2013/09/18 OM-2013-0002062 del End
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(KK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	印刷依頼年月日
	 *		 	受付済
	 *		 	予約適用年月日
	 *		 	解約ステータス
	 *		 	キャンセルステータス
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return list 検索結果リスト
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	// 2013/09/18 OM-2013-0002062 del Start
//	private List<JBSbatCommonDBInterface> executeKK_T_TCHI_TG_BPIN_KK_SELECT_003(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
//		paramList.setValue(param[3].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_TCHI_TG_BPIN.selectBySqlDefine(paramList, KK_T_TCHI_TG_BPIN_KK_SELECT_003);
//		
//		List<JBSbatCommonDBInterface> tchishoList = new ArrayList<JBSbatCommonDBInterface>();
//		JBSbatCommonDBInterface tchishoInfo = db_KK_T_TCHI_TG_BPIN.selectNext();
//
//		while(tchishoInfo != null) 
//		{
//			tchishoList.add(tchishoInfo);
//			tchishoInfo = db_KK_T_TCHI_TG_BPIN.selectNext();
//		}
//		return tchishoList;
//	}
	// 2013/09/18 OM-2013-0002062 del End

	/**
	 * SQLKEY(KK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	印刷適用年月日
	 *		 	通知書ステータス
	 *		 	予約適用年月日
	 *		 	サービス契約ステータス
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return list 検索結果リスト
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	// 2013/09/18 OM-2013-0002062 del Start
//	private List<JBSbatCommonDBInterface> executeKK_T_TCHI_TG_BPIN_KK_SELECT_004(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_TCHI_TG_BPIN.selectBySqlDefine(paramList, KK_T_TCHI_TG_BPIN_KK_SELECT_004);
//		
//		List<JBSbatCommonDBInterface> tchishoList = new ArrayList<JBSbatCommonDBInterface>();
//		JBSbatCommonDBInterface tchishoInfo = db_KK_T_TCHI_TG_BPIN.selectNext();
//
//		while(tchishoInfo != null) 
//		{
//			tchishoList.add(tchishoInfo);
//			tchishoInfo = db_KK_T_TCHI_TG_BPIN.selectNext();
//		}
//		return tchishoList;
//	}
	// 2013/09/18 OM-2013-0002062 del End
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
