/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSvcKeiStaSmtVlAdd
*	ソースファイル名	：JBSbatKKSvcKeiStaSmtVlAdd.java
*	作成者				：富士通　
*	作成日				：2013年06月11日
*＜機能概要＞
*　サービス開始時スマートバリュー異動情報登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v5.00.00	2013/06/11  FJ)藤本		新規作成
*	v5.00.01	2013/08/06  FJ)中作		【IT2-2013-0000701】障害対応
*	v5.00.02	2013/10/06  FJ)中作		【OM-2013-0002332】障害対応
*	v22.00.00	2015/11/26	FJ)杉本		【ANK-2732-00-00】プロジェクト正常化 サービス開始に関するソース可読性向上
*********************************************************************/
package eo.business.service;

import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.util.file.JBSbatKKIFM492;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatStringUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKSvcKeiStaSmtVlAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	// ++++++++++ v22.00.00 削除開始 ++++++++++
//	/** 
//	 * 異動区分 00041：光電話・番号追加 
//	 */
//	private static final String IDO_DIV_HIKARI_TEL_NO_ADD = "00041";
//	
//	/** 
//	 * 異動区分 00042：光電話・番号変更 
//	 */
//	private static final String IDO_DIV_HIKARI_TEL_NO_CHG = "00042";
	// ++++++++++ v22.00.00 削除終了 ++++++++++
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 異動区分
		String idoDiv = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM492.IDO_DIV));
		
		super.logPrint.printDebugLog("■異動区分：" + idoDiv);
		
		// 異動区分!="00041:光電話・番号追加","00042:光電話・番号変更"以外
		// ++++++++++ v22.00.00 変更開始 ++++++++++
//		if(!IDO_DIV_HIKARI_TEL_NO_ADD.equals(idoDiv) && !IDO_DIV_HIKARI_TEL_NO_CHG.equals(idoDiv))
		if(!JBSbatKKConst.CD00576_IDO_DIV_00041.equals(idoDiv) && !JBSbatKKConst.CD00576_IDO_DIV_00042.equals(idoDiv))
		// ++++++++++ v22.00.00 変更終了 ++++++++++
		{
			// サービスに渡す業務データを格納するMAP
			HashMap<String, Object> inputMap = new HashMap<String, Object>();
			inputMap.put("svc_kei_no", JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM492.SVC_KEI_NO)));
			inputMap.put("ido_div", idoDiv);
			inputMap.put("prg_stat", JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM492.PRG_STAT)));
			inputMap.put("prg_dtm", JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM492.PRG_DTM)));
			
			super.logPrint.printDebugLog("■料金グループコード[" + JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM492.PRC_GRP_CD)) + "]");
			super.logPrint.printDebugLog("■サービス契約番号：" + inputMap.get("svc_kei_no"));
			super.logPrint.printDebugLog("■異動区分：" + inputMap.get("ido_div"));
			super.logPrint.printDebugLog("■進捗ステータス：" + inputMap.get("prg_stat"));
			super.logPrint.printDebugLog("■進捗年月日時分秒：" + inputMap.get("prg_dtm"));
			super.logPrint.printDebugLog("■スマートバリュー異動情報登録CCの呼出実行--サービス契約番号->" + JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM492.SVC_KEI_NO)));
			
			// スマートバリュー異動情報登録CCの呼出を行う。
			this.execKKSV0650(inputMap);
		}
		else
		{
			super.logPrint.printDebugLog("■スマートバリュー異動情報登録CCの呼出なし--異動区分->" + idoDiv);
			super.logPrint.printDebugLog("■スマートバリュー異動情報登録CCの呼出なし--サービス契約番号->" + JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM492.SVC_KEI_NO)));
		}
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 
	 * スマートバリュー異動情報登録処理部品の呼出を行います。
	 * 
	 * @param inputMap 設定パラメータ
	 */
	private void execKKSV0650(HashMap<String, Object> inputMap) throws Exception 
	{
		// サービスに渡す業務データを格納するMAP
		HashMap<Object, Object> inputSmtvlIdoInfMap = new HashMap<Object, Object>();
		
		// ユースケースIDを格納するMAP
		HashMap<Object, Object>  paramMap = new HashMap<Object, Object>();
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, "KKSV0650");
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID, "KKSV0650OP");
		
		// サービスの処理結果が格納されるMAP
		HashMap<Object, Object> outputMap = new HashMap<Object, Object>();
		
		String listTitle = "KKSV065001CC";
		
		// inputShijishoMapにデータを""タイトルをキーとして設定する。
		inputSmtvlIdoInfMap.put(listTitle, inputMap);
		
		// サービス呼び出し
		JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputSmtvlIdoInfMap, outputMap);
		
		// 部品からのリターンコードを取得します。
		String returnCode = (String)outputMap.get("RETURN_CODE");
		super.logPrint.printDebugLog("★RETURN_CODE：" + returnCode);
		
		// サービスインターフェースよりエラーが返却された場合
		if(!"0000".equals(returnCode))
		{
			String svcKeiNo = (String)inputMap.get("svc_kei_no");
			String idoDiv = (String)inputMap.get("ido_div");
			String prg_stat = (String)inputMap.get("prg_stat");
			StringBuffer sb = new StringBuffer();
			sb.append(" サービス契約番号：" +svcKeiNo);
			sb.append("、異動区分：" +idoDiv);
			sb.append("、進捗ステータス：" +prg_stat);
			// 「サービスインターフェイスエラーの場合は、下記のログ出力する。
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, 
				new String[]{"スマートバリュー異動情報登録CCでエラーが発生しました(リターンコード):" + returnCode + sb.toString()});
		}
	}
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
