/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKEoTelPackTgSksiAdchg
*	ソースファイル名	：JBSbatKKEoTelPackTgSksiAdchg.java
*	作成者				：富士通　
*	作成日				：2014年05月26日
*＜機能概要＞
*　です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v9.00.00	2014/05/26  FJ)江藤		新規作成(【ANK-2056-00-00】光電話セレクトオプションパック)
*   
*********************************************************************/
package eo.business.service;


import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKEoTelPackUtil;
import eo.business.util.file.JBSbatKKIFM600;
import eo.business.util.file.JBSbatKKIFM601;
import eo.common.util.JKKStringUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKEoTelPackTgSksiAdchg extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** お得チェック部品 */
	private JBSbatKKEoTelPackUtil packAplyChk = null;

	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// お得チェック部品の初期化
		packAplyChk = new JBSbatKKEoTelPackUtil();
		
		// お得チェック用初期処理
		packAplyChk.judgeOptPackInit(commonItem, commonItem.getOpeDate());
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap 入力電文
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// ■サービス開始日が到来しているオプション（サブオプション含む）情報取得
		ArrayList<HashMap<String, Object>> opSvcKeiList = packAplyChk.selectOpSvcKeiStaBySvcKeiUcwk(
															super.commonItem
															,inMap.getString(JBSbatKKIFM601.SVC_KEI_UCWK_NO)
															,super.opeDate
															);
		
		if (opSvcKeiList != null && opSvcKeiList.size() > 0)
		{
			// ■お得チェック部品の引数設定
			ArrayList<String[]> judgePcrsCdList = new ArrayList<String[]>(); 
			
			for (HashMap<String, Object> opSvcKei : opSvcKeiList)
			{
				String[] judgePcrsCd = {
						// 料金コースコード
						(String)opSvcKei.get("PCRS_CD")
						// 料金プランコード
						,(String)opSvcKei.get("PPLAN_CD")
				};
				
				judgePcrsCdList.add(judgePcrsCd);
				
			}
			/****************************デバッグログ(判定用料金コースコードリストオブジェクト情報出力詳細）*****************************/
			super.commonItem.getLogPrint().printDebugLog("\n\n■■■お得チェック部品呼出■■■\n"
					+"サービス契約番号："+inMap.getString(JBSbatKKIFM601.SVC_KEI_NO) + "\n"
					+"サービス契約内訳番号："+inMap.getString(JBSbatKKIFM601.SVC_KEI_UCWK_NO) + "\n");
			/**********************************************************************************************************************/

			// お得チェック部品実行
			String chkResult = packAplyChk.judgeOptPack(super.commonItem, judgePcrsCdList);
			
			if (!JKKStringUtil.isNullEmpty(chkResult))
			{
				// パック適用する場合
				JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
				
				// 電話番号
				outMap.setString(JBSbatKKIFM600.TELNO, inMap.get(JBSbatKKIFM601.TELNO));
				
				// サービス契約番号
				outMap.setString(JBSbatKKIFM600.SVC_KEI_NO, inMap.get(JBSbatKKIFM601.SVC_KEI_NO));
				
				// サービス契約内訳番号
				outMap.setString(JBSbatKKIFM600.SVC_KEI_UCWK_NO, inMap.get(JBSbatKKIFM601.SVC_KEI_UCWK_NO));
				
				// パック指定
				outMap.setString(JBSbatKKIFM600.PACK_STI, chkResult);
				
				// 起動モード
				outMap.setString(JBSbatKKIFM600.KIDOU_MODE, "登録");

				// ＳＹＳＩＤ
				outMap.setString(JBSbatKKIFM600.SYSID, inMap.get(JBSbatKKIFM601.SYSID));
				
				
				
				outMap.setOutFlg(true);
				
				outputBean.addOutMapList(outMap);
				
			}
		}
		
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
