/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom  					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACSvcKeiBkt
*	ソースファイル名	：JBSbatACSvcKeiBkt.java
*	作成者				：富士通　
*	作成日				：2011年04月13日
*＜機能概要＞
*　サービス契約情報分割部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/04/13   富士通		新規作成
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatACIFI015;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACSvcKeiBkt extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	//解約理由フラグ
	boolean dlreFlg  = false;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @param outputInItem 入力情報
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		//出力用領域
		JBSbatServiceInterfaceMap tmpBean = new JBSbatServiceInterfaceMap();
		
		
		//入力なし（＝最終処理）の場合、出力して処理を終了する。
		if(inMap == null)
		{
			//解約理由フラグ判定
			if(dlreFlg  == true)
			{//強制解約のみの場合
				outputInItem.setOutMapList(outputInItem.getTmpList());
			}
			else
			{
				outputInItem.setOutMapList_2(outputInItem.getTmpList());
			}
			return outputInItem;
		}
		
		//解約理由取得
		StringBuffer inDlre = new StringBuffer();
		inDlre.append(inMap.getString(JBSbatACIFI015.SVC_DLRE));
		String dlre = inDlre.toString();
	
		// 1件目（退避リストが空のとき）
		if(!outputInItem.isTmpList())
		{
			//ダミーレコード作成
			outputInItem.addTmpList(new JBSbatServiceInterfaceMap());
			
			//入力データを退避
			inMap.setOutFlg(true);
			outputInItem.addTmpList(inMap);
			
			//解約理由判定
			if(!dlre.equals("02"))
			{//強制解約以外だったらtrue
				dlreFlg  = true;
			}
			return outputInItem;
		}
		//出力電文に設定されている内容を取得する。
		tmpBean = (JBSbatServiceInterfaceMap)outputInItem.getTmpList().get(1);
		
		//キー（入力）の設定
		StringBuffer inkeyBuf = new StringBuffer();
		inkeyBuf.append(inMap.getString(JBSbatACIFI015.SEIKY_KEI_NO));
		String inKey = inkeyBuf.toString();
		
		//キー（退避）の設定
		StringBuffer keyBufTmp = new StringBuffer();
		keyBufTmp.append(tmpBean.getString(JBSbatACIFI015.SEIKY_KEI_NO));
		String tmpKey = keyBufTmp.toString();
		
		//キーブレイク
		if(!inKey.equals(tmpKey))
		{
			//解約理由フラグ判定
			if(dlreFlg  == true)
			{//強制解約のみの場合
				outputInItem.setOutMapList(outputInItem.getTmpList());
			}
			else
			{
				outputInItem.setOutMapList_2(outputInItem.getTmpList());
			}

			//TmpListを再作成し、ダミーレコード作成
			outputInItem.setTmpList(new ArrayList());
			outputInItem.addTmpList(new JBSbatServiceInterfaceMap());
			//解約理由フラグリセット
			dlreFlg  = false;
		}
		
		//入力データを退避
		inMap.setOutFlg(true);
		outputInItem.addTmpList(inMap);	
		
		//解約理由判定
		if(!dlre.equals("02"))
		{//強制解約以外だったらtrue
			dlreFlg  = true;
		}
		return outputInItem;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
