/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTgWrbSvcTgKeiBnkt
*	ソースファイル名	：JBSbatKKTgWrbSvcTgKeiBnkt.java
*	作成者				：富士通　
*	作成日				：2011年07月22日
*＜機能概要＞
*　対象割引サービス対象契約抽出（分割）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/22  FJ)久保田	新規作成
*	v3.00.00	2012/07/17  FJ)藤本		【IT2-2012-0001348】割引関連スキーマの変更に伴う修正
*	v4.00.00	2013/02/27  FJ)中作		【ST2-2013-0001012】更新対象条件追加
*	v7.00.00	2013/12/02  FJ)岡田		【ANK-1578-00-00】多機能ルーター(機器追加)対応
*	v22.00.00	2015/11/25	FJ)杉本		【ANK-2732-00-00】プロジェクト正常化 サービス開始に関するソース可読性向上
*	v50.00.00	2020/07/16	FJ)謝		【ANK-3889-00-00】機器単位キャンペーン対応（機器サービス開始日の開始契機導入）
**********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.util.file.JBSbatKKIFM068;
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 JBSbatKKTgWrbSvcTgKeiBnkt extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 
	 * 割引サービス契約番号 
	 */
	protected String wribSvcKeiNo = "";

	/** 
	 * 割引サービス内訳契約番号 
	 */
	protected String wribSvcKeiUcwkNo = "";

	/** 
	 * 世代登録年月日時分秒 
	 */
	protected String geneAddDtm = "";

	/** 
	 * 割引サービスコード 
	 */
	protected String wribSvcCd = "";

	/** 
	 * キャンペーン開始コード 
	 */
	protected String campaignStaCd = "";

	/** 
	 * 開始調整コード 
	 */
	protected String staAdjCd = "";

	/** 
	 * 開始調整期間 
	 */
	protected String staAdj = "";

	/** 
	 * 適用数判別コード 
	 */
	protected String aplyCntHambetCd = "";

	/** 
	 * 適用数 
	 */
	protected String aplyCnt = "";

	/** 
	 * 割引タイプコード
	 */
	protected String wribTypeCd = "";

	/** 
	 * サービス契約番号 
	 */
	protected String svcKeiNo = "";

	/** 
	 * サービス契約内訳番号 
	 */
	protected String svcKeiUcwkNo = "";

	/** 
	 * オプションサービス契約番号 
	 */
	protected String opSvcKeiNo = "";

	/** 
	 * サブオプションサービス契約番号 
	 */
	protected String sbopSvcKeiNo = "";

	/** 
	 * 機器提供サービス契約番号 
	 */
	protected String kktkSvcKeiNo = "";
	
	/** 
	 * 機器提供サービス契約ステータス 
	 */
	protected String kktkSvcKeiStat = "";

	/** 
	 * 請求オプションサービス契約番号
	 */
	protected String seiOpSvcKeiNo = "";
	
	/** 
	 * 機器オプションサービス契約番号 
	 */
	protected String kkopSvcKeiNo = "";

	/** 
	 * サービス開始年月日 
	 */
	protected String svcStaYmd = "";

	/** 
	 * 配送完了年月日 
	 */
	protected String haisoFinYmd = "";

	/** 
	 * 更新対象フラグ (配送)
	 */
	protected String updTgFlg = "";
	
	/** 
	 * 申込明細番号
	 */
	protected String mskmDtlNo = "";
	
	/** 
	 * 申込年月日
	 */
	protected String mskmYmd = "";
	
	/** 
	 * 更新対象フラグ (割引サービス対象契約)
	 */
	protected String updTgFlg_068 = "";
	
	/**
	 * 初期処理
	 * @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");
		
		// 中間ファイルの読み込みを行います。
		getKkifm068(inMap);
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// ++++++++++ v22.00.00 変更開始 ++++++++++
//		if(!"09".equals(campaignStaCd))
// ANK-3889-00-00 MOD START
//		if(!JBSbatKKConst.CAMPAIGN_STA_CD_SHUKKA_DAY_PLUS.equals(campaignStaCd))
		if(!JBSbatKKConst.CAMPAIGN_STA_CD_SHUKKA_DAY_PLUS.equals(campaignStaCd)
				&& !JBSbatKKConst.CAMPAIGN_STA_CD_KIKI_SVC_STA_DAY.equals(campaignStaCd))
// ANK-3889-00-00 MOD END
		// ++++++++++ v22.00.00 変更終了 ++++++++++
		{
			// 割引サービス対象契約抽出ファイルのファイル出力
			createKkifm068(outputBean);
		}
		else
		{
			// 対象配送取得ファイルのファイル出力
			createKkifm069(outputBean);
		}
		super.logPrint.printDebugLog("execute_END");
		return outputBean;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 
	 *  割引サービス対象契約抽出ファイルの作成を行います。
	 *  
	 * @param outputBean 出力共通電文
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void createKkifm068(JBSbatOutputItem outputBean) throws Exception
	{
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		//項目を設定
		outmap.setString(JBSbatKKIFM068.WRIB_SVC_KEI_NO, wribSvcKeiNo);				// 割引サービス契約番号
		outmap.setString(JBSbatKKIFM068.WRIB_SVC_KEI_UCWK_NO, wribSvcKeiUcwkNo);	// 割引サービス契約内訳番号
		outmap.setString(JBSbatKKIFM068.GENE_ADD_DTM, geneAddDtm);					// 世代登録年月日時分秒
		outmap.setString(JBSbatKKIFM068.WRIB_SVC_CD, wribSvcCd);					// 割引サービスコード
		outmap.setString(JBSbatKKIFM068.CAMPAIGN_STA_CD, campaignStaCd);			// キャンペーン開始コード
		outmap.setString(JBSbatKKIFM068.STA_ADJ_CD, staAdjCd);						// 開始調整コード
		outmap.setString(JBSbatKKIFM068.STA_ADJ, staAdj);							// 開始調整期間
		outmap.setString(JBSbatKKIFM068.APLY_CNT_HAMBET_CD, aplyCntHambetCd);		// 適用数判別コード
		outmap.setString(JBSbatKKIFM068.APLY_CNT , aplyCnt);						// 適用数
		outmap.setString(JBSbatKKIFM068.WRIB_TYPE_CD , wribTypeCd);					// 割引タイプコード
		outmap.setString(JBSbatKKIFM068.SVC_KEI_NO, svcKeiNo);						// サービス契約番号
		outmap.setString(JBSbatKKIFM068.SVC_KEI_UCWK_NO, svcKeiUcwkNo);				// サービス契約内訳番号
		outmap.setString(JBSbatKKIFM068.OP_SVC_KEI_NO, opSvcKeiNo);					// オプションサービス契約番号
		outmap.setString(JBSbatKKIFM068.SBOP_SVC_KEI_NO, sbopSvcKeiNo);				// サブオプションサービス契約番号
		outmap.setString(JBSbatKKIFM068.KKTK_SVC_KEI_NO, kktkSvcKeiNo);				// 機器提供サービス契約番号
		outmap.setString(JBSbatKKIFM068.SEIOPSVC_KEI_NO, seiOpSvcKeiNo);			// 請求オプションサービス契約番号
		outmap.setString(JBSbatKKIFM068.KKOP_SVC_KEI_NO, kkopSvcKeiNo);				// 機器オプションサービス契約番号
		outmap.setString(JBSbatKKIFM068.MSKM_DTL_NO, mskmDtlNo);					// 申込明細番号
		outmap.setString(JBSbatKKIFM068.MSKM_YMD, mskmYmd);							// 申込年月日
		outmap.setString(JBSbatKKIFM068.UPD_TG_FLG, updTgFlg_068);	 				// 更新対象フラグ
		
		//出力フラグを設定
		outmap.setOutFlg(true);
		//出力共通電文に入出力インターフェースを設定する。
		outputBean.addOutMapList(outmap);
	}

	/**
	 * 
	 *  対象配送取得ファイルの作成を行います。
	 *  
	 * @param outputBean 出力共通電文
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void 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_2(outmap);
	}
	
	/**
	 * 
	 * 中間ファイルの読み込みを行います。
	 * 
	 * @param inMap 中間ファイルの値。
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void getKkifm068(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		
		wribSvcKeiNo     = "";		// 割引サービス契約番号
		wribSvcKeiUcwkNo = "";		// 割引サービス契約内訳番号
		geneAddDtm       = "";		// 世代登録年月日時分秒
		wribSvcCd        = "";		// 割引サービスコード
		campaignStaCd    = "";		// キャンペーン開始コード
		staAdjCd         = "";		// 開始調整コード
		staAdj           = "";		// 開始調整期間
		aplyCntHambetCd  = "";		// 適用数判別コード
		aplyCnt          = "";		// 適用数
		wribTypeCd       = "";		// 割引タイプコード
		svcKeiNo         = "";		// サービス契約番号
		svcKeiUcwkNo     = "";		// サービス契約内訳番号
		opSvcKeiNo       = "";		// オプションサービス契約番号
		sbopSvcKeiNo     = "";		// サブオプションサービス契約番号
		kktkSvcKeiNo     = "";		// 機器提供サービス契約番号
		seiOpSvcKeiNo    = "";		// 請求オプションサービス契約番号
		kkopSvcKeiNo     = "";		// 機器オプションサービス契約番号
		mskmDtlNo        = "";		// 申込明細番号
		mskmYmd          = "";		// 申込年月日
		updTgFlg_068     = "";		// 更新対象フラグ (割引サービス対象契約)

		wribSvcKeiNo     = inMap.getString(JBSbatKKIFM068.WRIB_SVC_KEI_NO);
		wribSvcKeiUcwkNo = inMap.getString(JBSbatKKIFM068.WRIB_SVC_KEI_UCWK_NO);
		geneAddDtm       = inMap.getString(JBSbatKKIFM068.GENE_ADD_DTM);
		wribSvcCd        = inMap.getString(JBSbatKKIFM068.WRIB_SVC_CD);
		campaignStaCd    = inMap.getString(JBSbatKKIFM068.CAMPAIGN_STA_CD);
		staAdjCd         = inMap.getString(JBSbatKKIFM068.STA_ADJ_CD);
		staAdj           = inMap.getString(JBSbatKKIFM068.STA_ADJ);
		aplyCntHambetCd  = inMap.getString(JBSbatKKIFM068.APLY_CNT_HAMBET_CD);
		aplyCnt          = inMap.getString(JBSbatKKIFM068.APLY_CNT);
		wribTypeCd       = inMap.getString(JBSbatKKIFM068.WRIB_TYPE_CD);
		svcKeiNo         = inMap.getString(JBSbatKKIFM068.SVC_KEI_NO);
		svcKeiUcwkNo     = inMap.getString(JBSbatKKIFM068.SVC_KEI_UCWK_NO);
		opSvcKeiNo       = inMap.getString(JBSbatKKIFM068.OP_SVC_KEI_NO);
		sbopSvcKeiNo     = inMap.getString(JBSbatKKIFM068.SBOP_SVC_KEI_NO);
		kktkSvcKeiNo     = inMap.getString(JBSbatKKIFM068.KKTK_SVC_KEI_NO);
		seiOpSvcKeiNo    = inMap.getString(JBSbatKKIFM068.SEIOPSVC_KEI_NO);
		kkopSvcKeiNo     = inMap.getString(JBSbatKKIFM068.KKOP_SVC_KEI_NO);
		mskmDtlNo        = inMap.getString(JBSbatKKIFM068.MSKM_DTL_NO);
		mskmYmd          = inMap.getString(JBSbatKKIFM068.MSKM_YMD);
		updTgFlg_068     = inMap.getString(JBSbatKKIFM068.UPD_TG_FLG);

	}
}
