/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTgWrbSvcKeiUpdHaiso
*	ソースファイル名	：JBSbatKKTgWrbSvcKeiUpdHaiso.java
*	作成者				：富士通　
*	作成日				：2011年07月22日
*＜機能概要＞
*　対象割引サービス契約更新対象配送抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/22  FJ)久保田	新規作成
*	v2.00.00	2012/03/20  FJ)倉上		【ST2-2012-0000423】ファイル出力処理修正。
*	v2.01.00	2012/04/18  FJ)久保田	【TAI-2012-0000027】排他制御対応
*	v3.00.00	2012/07/17  FJ)藤本		【IT2-2012-0001348】割引関連スキーマの変更に伴う修正
*	v5.00.00	2013/08/05  FJ)藤本		【OM-2013-0000005】障害対応
*	v22.00.00	2015/11/20  FJ)杉本		【ANK-2732-00-00】プロジェクト正常化 サービス開始に関するソース可読性向上
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.util.file.JBSbatKKIFM069;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTgWrbSvcKeiUpdHaiso extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 
	 * 割引サービス契約番号 
	 */
	protected String wribSvcKeiNo = "";

	/** 
	 * 割引サービス契約内訳番号
	 */
	protected String wribSvcKeiUcwkNo = "";

	/** 
	 * 世代登録年月日時分秒 
	 */
	protected String geneAddDtm = "";

	/** 
	 * キャンペーン開始コード 
	 */
	protected String campaignStaCd = "";

	/** 
	 * 開始調整コード 
	 */
	protected String staAdjCd = "";

	/** 
	 * 開始調整期間 
	 */
	protected String staAdj = "";

	/** 
	 * 適用数判別コード 
	 */
	protected String aplyCntHambetCd = "";

	/** 
	 * 適用数 
	 */
	protected String aplyCnt = "";

	/** 
	 * 機器提供サービス契約番号 
	 */
	protected String kktkSvcKeiNo = "";

	/** 
	 * 機器提供サービス契約ステータス 
	 */
	protected String kktkSvcKeiStat = "";

	/** 
	 * サービス開始年月日 
	 */
	protected String svcStaYmd = "";

	/** 
	 * 配送完了年月日 
	 */
	protected String haisoFinYmd = "";

	/** 
	 * 更新対象フラグ 
	 * */
	protected String updTgFlg = "";
	

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// 中間ファイルの読み込みを行います。
		getKkifm069(inMap);
		
		// フィールド変数の初期化
		updTgFlg     = "";
		
		// 割引サービス契約番号に紐づく機器提供サービス契約ステータスが"受付済"、"キャンセル済"でない、または空白であった場合。
		// ++++++++++ v22.00.00 変更開始 ++++++++++
//		if("".equals(kktkSvcKeiStat) || (!"010".equals(kktkSvcKeiStat) && !"920".equals(kktkSvcKeiStat)))
		if("".equals(kktkSvcKeiStat) || (!JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_010.equals(kktkSvcKeiStat) && !JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_920.equals(kktkSvcKeiStat)))
		// ++++++++++ v22.00.00 変更終了 ++++++++++
		{
			// 更新対象フラグ に'1'(対象)を設定
			// ++++++++++ v22.00.00 変更開始 ++++++++++
//			updTgFlg = "1";
			updTgFlg = JBSbatKKConst.KKIFM068_UPD_TG_FLG_1;
			// ++++++++++ v22.00.00 変更終了 ++++++++++
		}
		// 割引サービス契約番号に紐づく各契約ステータスで1項目でも"サービス提供中"または空白以外が存在した場合。
		else
		{
			// 更新対象フラグ に'0'(対象外)を設定
			// ++++++++++ v22.00.00 変更開始 ++++++++++
//			updTgFlg = "0";
			updTgFlg = JBSbatKKConst.KKIFM068_UPD_TG_FLG_0;
			// ++++++++++ v22.00.00 変更終了 ++++++++++
		}
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		// 対象割引サービス契約抽出ファイルのファイル出力
		outputBean = createKkifm069(outputBean);
		
		super.logPrint.printDebugLog("execute_END");
		
		return outputBean;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 
	 * 中間ファイルの読み込みを行います。
	 * 
	 * @param inMap 中間ファイルの値。
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void getKkifm069(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		
		wribSvcKeiNo     = "";// 割引サービス契約番号
		wribSvcKeiUcwkNo = "";// 割引サービス契約内訳番号
		geneAddDtm       = "";// 世代登録年月日時分秒
		campaignStaCd    = "";// キャンペーン開始コード 
		staAdjCd         = "";// 開始調整コード 
		staAdj           = "";// 開始調整期間
		aplyCntHambetCd  = "";// 適用数判別コード 
		aplyCnt          = "";// 適用数
		kktkSvcKeiNo     = "";// 機器提供サービス契約番号
		kktkSvcKeiStat   = "";// 機器提供サービス契約ステータス 
		svcStaYmd        = "";// サービス開始年月日
		haisoFinYmd      = "";// 配送完了年月日
		updTgFlg         = "";// 更新対象フラグ 

		wribSvcKeiNo     = inMap.getString(JBSbatKKIFM069.WRIB_SVC_KEI_NO);
		wribSvcKeiUcwkNo = inMap.getString(JBSbatKKIFM069.WRIB_SVC_KEI_UCWK_NO);
		geneAddDtm       = inMap.getString(JBSbatKKIFM069.GENE_ADD_DTM);
		campaignStaCd    = inMap.getString(JBSbatKKIFM069.CAMPAIGN_STA_CD);
		staAdjCd         = inMap.getString(JBSbatKKIFM069.STA_ADJ_CD);
		staAdj           = inMap.getString(JBSbatKKIFM069.STA_ADJ);
		aplyCntHambetCd  = inMap.getString(JBSbatKKIFM069.APLY_CNT_HAMBET_CD);
		aplyCnt          = inMap.getString(JBSbatKKIFM069.APLY_CNT);
		kktkSvcKeiNo     = inMap.getString(JBSbatKKIFM069.KKTK_SVC_KEI_NO);
		kktkSvcKeiStat   = inMap.getString(JBSbatKKIFM069.KKTK_SVC_KEI_STAT);
		svcStaYmd        = inMap.getString(JBSbatKKIFM069.SVC_STA_YMD);
		haisoFinYmd      = inMap.getString(JBSbatKKIFM069.HAISO_FIN_YMD);
		updTgFlg         = inMap.getString(JBSbatKKIFM069.UPD_TG_FLG);

	}
	
	/**
	 * 
	 *  対象配送取得ファイルの作成を行います。
	 *  
	 * @param  outputBean JBSbatOutputItem
	 * @return outputBean JBSbatOutputItem
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private JBSbatOutputItem createKkifm069(JBSbatOutputItem outputBean) throws Exception
	{
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		//項目を設定
		outmap.setString(JBSbatKKIFM069.WRIB_SVC_KEI_NO, wribSvcKeiNo);				// 割引サービス契約番号
		outmap.setString(JBSbatKKIFM069.WRIB_SVC_KEI_UCWK_NO, wribSvcKeiUcwkNo);	// 割引サービス契約内訳番号
		outmap.setString(JBSbatKKIFM069.GENE_ADD_DTM, geneAddDtm);					// 世代登録年月日時分秒
		outmap.setString(JBSbatKKIFM069.CAMPAIGN_STA_CD, campaignStaCd);			// キャンペーン開始コード 
		outmap.setString(JBSbatKKIFM069.STA_ADJ_CD, staAdjCd);						// 開始調整コード 
		outmap.setString(JBSbatKKIFM069.STA_ADJ, staAdj);							// 開始調整期間
		outmap.setString(JBSbatKKIFM069.APLY_CNT_HAMBET_CD, aplyCntHambetCd);		// 適用数判別コード 
		outmap.setString(JBSbatKKIFM069.APLY_CNT, aplyCnt);							// 適用数
		outmap.setString(JBSbatKKIFM069.KKTK_SVC_KEI_NO, kktkSvcKeiNo);				// 機器提供サービス契約番号
		outmap.setString(JBSbatKKIFM069.KKTK_SVC_KEI_STAT, kktkSvcKeiStat);			// 機器提供サービス契約ステータス 
		outmap.setString(JBSbatKKIFM069.SVC_STA_YMD, svcStaYmd);					// サービス開始年月日
		outmap.setString(JBSbatKKIFM069.HAISO_FIN_YMD, haisoFinYmd);				// 配送完了年月日
		outmap.setString(JBSbatKKIFM069.UPD_TG_FLG, updTgFlg);						// 更新対象フラグ 
		
		//出力フラグを設定
		outmap.setOutFlg(true);
		//出力共通電文に入出力インターフェースを設定する。
		outputBean.addOutMapList(outmap);
		//出力共通電文を返却
		return outputBean;
	}
}
