/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatAKFlrlmtOverChsht
*	ソースファイル名	：JBSbatAKFlrlmtOverChsht.java
*	作成者				：富士通　
*	作成日				：2013年06月17日
*＜機能概要＞
*　フロアリミット越え抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2013/06/17   富士通		新規作成
*	V25.00.00	2016/06/23		FJ)土居		OM-2016-0001949 クレジットカード番号単位の集約を削除。
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;

//2016/06/23 OM-2016-0001949 DEL START
////*** 2013/07/23 該当クレカ出力不具合対応 Amano [S]
//import java.util.ArrayList;
//import java.util.List;
////*** 2013/07/23 該当クレカ出力不具合対応 Amano [E]
//2016/06/23 OM-2016-0001949 DEL END

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatAKIFM035;
import eo.business.util.file.JBSbatAKIFM036;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatAKFlrlmtOverChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	//2016/06/23 OM-2016-0001949 MOD START
//	/** 金額合計 */
//	private BigDecimal sumAmnt = null;
//	
//	/** クレジットカード番号（待避用） */ 
//	private String creCardNo = "";
//	
//	/** 請求契約番号 */
//	//*** 2013/07/23 該当クレカ出力不具合対応 Amano [S]
////	private String seikyKeiNo = "";
//	private List<String> seikyKeiNo = null;
//	private String seikyKeiNoWork   = null;
//	// クレジットカード番号
//	private String nowCreCardNo = null;
	
	/** 請求契約番号 */
	private String seikyKeiNo = "";
	//2016/06/23 OM-2016-0001949 MOD END
	//　請求内訳.内訳金額
	private BigDecimal amnt = null;
	//*** 2013/07/23 該当クレカ出力不具合対応 Amano [E]
	/** フロアリミット金額 */
	private static final int RIMIT_AMNT = 30000;
	/** 実績作成有無予想：なし */
	private static final String JISSEKI_YOSO_NASHI = "0";

	/**
	 * 初期処理
	 * @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
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 実績作成有無予想がなしの場合は読み飛ばし ☆☆あるいはシェルで間引く☆☆
		if(inMap.getString(JBSbatAKIFM035.SEIKY_NO) != null
				&& JISSEKI_YOSO_NASHI.equals(inMap.getString(JBSbatAKIFM035.JISSEKI_UM_YOSO))){
			return null;
		}
		
		//2016/06/23 OM-2016-0001949 MOD START
//		// 最終行か確認
//		if(inMap.getString(JBSbatAKIFM035.SEIKY_NO) == null) {
//			if(sumAmnt != null && sumAmnt.intValue() > RIMIT_AMNT) {
//				// 最終行かつ、金額がリミット超えの場合はレコード出力
//				//*** 2013/07/23 該当クレカ出力不具合対応 Amano [S]
//				seikyKeiNoWork = inMap.getString(JBSbatAKIFM035.SEIKY_KEI_NO);
//				//*** 2013/07/23 該当クレカ出力不具合対応 Amano [E]
//				return getJBSbatOutputItem();
//			} else {
//				return null;
//			}
//		}
//		
//		// クレジットカード番号
//		nowCreCardNo = inMap.getString(JBSbatAKIFM035.CRECARD_NO);
//		//　請求内訳.内訳金額
//		amnt = new BigDecimal(inMap.getString(JBSbatAKIFM035.AMNT));
//		//*** 2013/07/23 該当クレカ出力不具合対応 Amano [S]
////		// 請求契約番号
////		seikyKeiNo = inMap.getString(JBSbatAKIFM035.SEIKY_KEI_NO);
//		//*** 2013/07/23 該当クレカ出力不具合対応 Amano [E]
//		
//		// 初回の場合
//		if (creCardNo.equals("")) {
//			// execute呼び出し初回
//			//*** 2013/07/23 該当クレカ出力不具合対応 Amano [S]
//			seikyKeiNo = null;
//			seikyKeiNo = new ArrayList<String>();
//			seikyKeiNo.add(inMap.getString(JBSbatAKIFM035.SEIKY_KEI_NO));
//			//*** 2013/07/23 該当クレカ出力不具合対応 Amano [E]
//			creCardNo = nowCreCardNo;
//			sumAmnt = amnt;
//			// 処理終了
//			return null;
//		}
//		
//		//*** 2013/07/23 該当クレカ出力不具合対応 Amano [S]
////		// クレジット番号が同じ場合は足し込み実施
////		if (creCardNo.equals(nowCreCardNo)) {
////			// 同一クレジットカード番号の場合は足しこみを行う。
////			sumAmnt = sumAmnt.add(amnt);
////			// 処理終了
////			return null;
////		} else {
////			if(sumAmnt.intValue() > RIMIT_AMNT) {
////				// クレジット番号でブレイクする。
////				// リミット額を超える場合はファイル出力。
////				return getJBSbatOutputItem(inMap.getString(JBSbatAKIFM035.SEIKY_KEI_NO));
////			}
////			creCardNo = nowCreCardNo;
////			sumAmnt = amnt;
////		}
//		// クレジット番号が同じ場合は足し込み実施
//		if (creCardNo.equals(nowCreCardNo)) {
//			creCardNo = nowCreCardNo;
//			sumAmnt = sumAmnt.add(amnt);
//			seikyKeiNo.add(inMap.getString(JBSbatAKIFM035.SEIKY_KEI_NO));
//		} else {
//			// クレジット番号でブレイクする。
//			// リミット額を超える場合は該当のクレジット番号の請求契約番号分ファイル出力。
//			if(sumAmnt.intValue() > RIMIT_AMNT) {
//				seikyKeiNoWork = inMap.getString(JBSbatAKIFM035.SEIKY_KEI_NO);
//				return getJBSbatOutputItem();
//			}
//		}
//		//*** 2013/07/23 該当クレカ出力不具合対応 Amano [E]
		
		// 請求契約番号
		seikyKeiNo = inMap.getString(JBSbatAKIFM035.SEIKY_KEI_NO);
		//　請求内訳.内訳金額
		amnt = new BigDecimal(inMap.getString(JBSbatAKIFM035.AMNT));
		// リミット額を超える場合は該当請求契約番号をファイル出力。
		if(amnt.intValue() > RIMIT_AMNT) {
			return getJBSbatOutputItem();
		}
		//2016/06/23 OM-2016-0001949 MOD END
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * ファイルレコード
	 * @return JBSbatOutputItem　出力情報
	 */
	//*** 2013/07/23 該当クレカ出力不具合対応 Amano [S]
//	private JBSbatOutputItem getJBSbatOutputItem(String seikyKeiNo) {
//		JBSbatOutputItem outputItem = new JBSbatOutputItem();
//		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
//		outMap.set(JBSbatAKIFM036.SEIKY_KEI_NO, seikyKeiNo);
//		outMap.setOutFlg(true);
//		outputItem.addOutMapList(outMap);
//		return outputItem;
//	}
	//2016/06/23 OM-2016-0001949 MOD START
//	private JBSbatOutputItem getJBSbatOutputItem() {
//		JBSbatOutputItem outputItem = new JBSbatOutputItem();
//		JBSbatServiceInterfaceMap outMap = null;
//		for(int i = 0; i < seikyKeiNo.size(); i++)
//		{
//			outMap = new JBSbatServiceInterfaceMap();
//			outMap.set(JBSbatAKIFM036.SEIKY_KEI_NO, (String)seikyKeiNo.get(i));
//			outMap.setOutFlg(true);
//			outputItem.addOutMapList(outMap);
//		}
//		creCardNo = nowCreCardNo;
//		sumAmnt = amnt;
//		seikyKeiNo = null;
//		seikyKeiNo = new ArrayList<String>();
//		seikyKeiNo.add(seikyKeiNoWork);
//		return outputItem;
	
	private JBSbatOutputItem getJBSbatOutputItem() {
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		JBSbatServiceInterfaceMap outMap = null;
		outMap = new JBSbatServiceInterfaceMap();
		outMap.set(JBSbatAKIFM036.SEIKY_KEI_NO, (String)seikyKeiNo);
		outMap.setOutFlg(true);
		outputItem.addOutMapList(outMap);
		return outputItem;
	}
	//2016/06/23 OM-2016-0001949 MOD END
	//*** 2013/07/23 該当クレカ出力不具合対応 Amano [E]
}
