/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKRouterDslTgStku
*	ソースファイル名	：JBSbatKKRouterDslTgStku.java
*	作成者				：富士通　
*	作成日				：2011年09月23日
*＜機能概要＞
*　ルータ解約対象取得部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/23  FJ)神吉		新規作成
*	v1.01.00	2012/04/05  FJ)藤本		【ST2-2012-0000433、437、438、439】障害対応
*	v3.00.00	2012/08/25  FJ)倉上		【ST3-2012-0000241】障害対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM123;
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 JBSbatKKRouterDslTgStku extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 
	 * 機器提供サービス契約ステータス 
	 */
	protected String kktkSvcKeiStat = "";
	
	/** 
	 * 機器設置先場所番号 
	 */
	protected String kikiStcSakiPlaceNo = "";
	
	/** 
	 * 宅内機器型式コード 
	 */
	protected String taknkikiModelCd = "";
	
	/** 
	 * 機器製造番号 
	 */
	protected String kikiSeizoNo = "";
	
	/** 
	 * 付属品型式コード
	 */
	protected String huzokuhinModelCd = "";
	
	/** 
	 * 異動区分
	 */
	protected String idoDiv = "";
	
	/** 
	 * 世代登録年月日時分秒
	 */
	protected String geneAddDtm = "";
	
	/** 
	 * 機器提供種別コード
	 */
	protected String kktkSbtCd = "";
	
	/** 
	 * 機器提供サービス契約番号 
	 */
	protected String kktkSvcKeiNo = "";
	
	/** 
	 * 配送番号
	 */
	protected String haisoNo = "";
	
	/** 
	 * 配送ステータス
	 */
	protected String haisoStat = "";
	
	/** エラーメッセージ */
	private static final String MASSEAGE1 = "機器提供サービス契約ステータスが「解約済」または「キャンセル済」です。";
	
	/** エラーメッセージ */
	private static final String MASSEAGE2 = "配送ステータスが「指示済」です。";

	/**
	 * 初期処理
	 * @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");
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		// 機器提供サービス契約ステータス
		kktkSvcKeiStat = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.KKTK_SVC_KEI_STAT));
		
		// 機器設置先場所番号
		kikiStcSakiPlaceNo = JBSbatStringUtil.Rtrim(String.valueOf(inMap.getBigDecimal(JBSbatKKIFM123.KIKI_STC_SAKI_PLACE_NO)));
		
		// 宅内機器型式コード
		taknkikiModelCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.TAKNKIKI_MODEL_CD));
		
		// 機器製造番号
		kikiSeizoNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.KIKI_SEIZO_NO));
		
		// 付属品型式コード
		huzokuhinModelCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.HUZOKUHIN_MODEL_CD));
		
		// 異動区分
		idoDiv = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.IDO_DIV));
		
		// 世代登録年月日時分秒
		geneAddDtm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.GENE_ADD_DTM));
		
		// 機器提供種別コード
		kktkSbtCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.KKTK_SBT_CD));
		
		// 機器提供サービス契約番号
		kktkSvcKeiNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.KKTK_SVC_KEI_NO));
		
		// 配送番号
		haisoNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.HAISO_NO));
		
		// 配送ステータス
		haisoStat = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.HAISO_STAT));
		
		//項目を設定
		outmap.setString(JBSbatKKIFM123.KKTK_SVC_KEI_STAT, kktkSvcKeiStat);				// 機器提供サービス契約ステータス
		outmap.setString(JBSbatKKIFM123.KIKI_STC_SAKI_PLACE_NO, kikiStcSakiPlaceNo);	// 機器設置先場所番号
		outmap.setString(JBSbatKKIFM123.KKTK_SVC_KEI_NO, kktkSvcKeiNo);					// 機器提供サービス契約番号
		outmap.setString(JBSbatKKIFM123.TAKNKIKI_MODEL_CD, taknkikiModelCd);			// 宅内機器型式コード
		outmap.setString(JBSbatKKIFM123.KIKI_SEIZO_NO, kikiSeizoNo);					// 機器製造番号
		outmap.setString(JBSbatKKIFM123.HUZOKUHIN_MODEL_CD, huzokuhinModelCd);			// 付属品型式コード
		outmap.setString(JBSbatKKIFM123.IDO_DIV, idoDiv);								// 異動区分
		outmap.setString(JBSbatKKIFM123.GENE_ADD_DTM, geneAddDtm);						// 世代登録年月日時分秒
		outmap.setString(JBSbatKKIFM123.KKTK_SBT_CD, kktkSbtCd);						// 機器提供種別コード
		outmap.setString(JBSbatKKIFM123.HAISO_STAT, haisoStat);							// 配送ステータス
		outmap.setString(JBSbatKKIFM123.HAISO_NO, haisoNo);								// 配送番号
		
		outmap.setString(JBSbatKKIFM123.SVC_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.SVC_KEI_NO)));		// サービス契約番号
		outmap.setString(JBSbatKKIFM123.LAST_UPD_DTM, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.LAST_UPD_DTM)));	// 最終更新年月日時分秒
		outmap.setString(JBSbatKKIFM123.KIKI_CHG_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.KIKI_CHG_NO)));		// 機器変更番号
		outmap.setString(JBSbatKKIFM123.MSKM_DTL_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM123.MSKM_DTL_NO)));		// 申込明細番号
		
		//出力フラグを設定
		outmap.setOutFlg(true);
		//出力共通電文に入出力インターフェースを設定する。
		outputBean.addOutMapList(outmap);
		
		// 機器提供サービス契約ステータスが「910（解約済）」または「920（キャンセル済）」の場合
		if("910".equals(kktkSvcKeiStat) || "920".equals(kktkSvcKeiStat))
		{
			//業務エラーログ出力
			super.logPrint.printBusinessErrorLog("EKKB0010CW", new String[]{MASSEAGE1 + "(機器提供サービス契約番号：" + kktkSvcKeiNo + ")" });
			
		}
		// 上記以外の場合で、ルータ解約対象取得結果の「配送．配送ステータス」が「002（指示済）」の場合
		else if("002".equals(haisoStat))
		{
			//業務エラーログ出力
			super.logPrint.printBusinessErrorLog("EKKB0010CW", new String[]{MASSEAGE2 + "(配送番号：" + haisoNo + ")"});
			
		}
		else
		{
			// 上記以外の場合はエラーログ出力なし
		}
		
		super.logPrint.printDebugLog("execute_END");
		
		//出力共通電文を返却
		return outputBean;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
