/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatAKYsoJskTkawsSeikySho
*	ソースファイル名	：JBSbatAKYsoJskTkawsSeikySho.java
*	作成者				：富士通　
*	作成日				：2013年06月18日
*＜機能概要＞
*　予想・実績突き合わせ（請求書）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2013/06/18   富士通		新規作成
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatMatchServiceInterface;
import eo.business.util.file.JBSbatAKIFM043;
import eo.business.util.file.JBSbatAKIFM047;
import eo.business.util.file.JBSbatAKIFM049;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatAKYsoJskTkawsSeikySho extends JBSbatBusinessService implements JBSbatMatchServiceInterface
{

	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** キーマッチ処理フラグ*/
	private boolean matchProcFlg;

	/** マスタファイル処理フラグ*/
	private boolean mastProcFlg;

	/** トランファイル処理フラグ*/
	private boolean tranProcFlg;

	/** 実績作成有無予想フラグ */
	private boolean yosoFlg = false;
	/** 実績作成有無予想：なし */
	private static final String JISSEKI_YOSO_NASHI = "0";
	/** 実績作成有無予想：あり */
	private static final String JISSEKI_YOSO_ARI = "1";
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** マッチフラグ */
	private boolean matchFlg = false;

	/** 金額用ALL * */
	private static final String AMNT_ALL_ASTR = "***************";

	/** 請求金額（下1桁変換） */
	private String seikyAmnt = null;

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param mastMap　入力電文
	 * @param tranMap　入力電文
	 * @param outputInItem  入力情報
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert mastMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][入力Ｍ（口座振替依頼予想情報）=" + mastMap.getMap().toString() + "]") : true;
		assert tranMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][入力Ｔ（口座振替依頼実績情報）=" + tranMap.getMap().toString() + "]") : true;

		// 入力Ｔの請求金額の下1桁を変換する。
		if (tranMap != null){
			seikyAmnt = this.seikyS1Henkan(tranMap.getString(JBSbatAKIFM043.SEIKY_AMNT));
		}

		if (mastMap != null && JISSEKI_YOSO_ARI.equals(mastMap.getString(JBSbatAKIFM049.JISSEKI_UM_YOSO))) {
			this.yosoFlg = true;
		} else {
			this.yosoFlg = false;
		}
		
		// 入力Ｍのみ存在する
		if (mastMap != null && tranMap == null)
		{

			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍのみ存在する]");

			// マッチフラグがtrueの場合
			// 入力Ｍとマッチしていたのでフラグを戻す。
			if(matchFlg)
			{
				this.matchFlg = false;
			}
			else
			{
				if(yosoFlg)
				{
					// 上記以外の場合、マッチングの結果、口座振替依頼予想情報のみに存在しており、かつ、実績作成有無予想が「あり」なので出力対象。
					// 入力Ｍの情報をもとに、 出力レコードを編集し、出力情報に設定する。
					this.makeOutputItemMast(outputInItem, mastMap);
					this.matchFlg = false;
				}
			}

			this.setMastProcFlg(true);
		}
		// 入力Ｔのみ存在する
		else if (mastMap == null && tranMap != null)
		{

			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｔのみ存在する]");

			// 入力Ｔの情報をもとに、 出力レコードを編集し、出力情報に設定する。
			this.makeOutputItemTran(outputInItem, tranMap);

			this.setTranProcFlg(true);

		}
		// 入力Ｍ、入力Ｔともに存在する
		else
		{
			// マッチングキー取得
			String mastKey = mastMap.getString(JBSbatAKIFM049.SEIKY_KEI_NO);
		
			// マッチングキー取得
			String tranKey = tranMap.getString(JBSbatAKIFM043.SEIKY_KEY_NO);

			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ．比較キー=" + mastKey + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｔ．比較キー=" + tranKey + "]");

			// マッチング処理
			// 入力Ｍ＝入力Ｔ（マッチ）
			if (mastKey.equals(tranKey))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＝入力Ｔ（マッチ）]");

				// 入力Ｍ、Ｔの情報をもとに、 出力レコードを編集し、出力情報に設定する。
				// 出力対象になるものの判定はメソッド内にて行う。
				//this.makeOutputItemMatch(outputInItem, mastMap, tranMap);
				this.makeOutputItemMatch(outputInItem, mastMap, tranMap, yosoFlg);

				// マッチフラグ更新
				this.matchFlg = true;

				this.setTranProcFlg(true);

			}
			// 入力Ｍ＜入力Ｔ
			else if (mastKey.compareTo(tranKey) < 0)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＜入力Ｔ]");

				// マッチフラグがtrueの場合
				// 入力Ｍとマッチしていたのでフラグを戻す。
				if(matchFlg)
				{
					this.matchFlg = false;
				}
				else
				{
					if(yosoFlg)
					{
						// 上記以外の場合、口座振替依頼予想情報のみに存在しており、実績作成有無予想が「あり」なので出力対象。
						// 入力Ｍの情報をもとに、 出力レコードを編集し、出力情報に設定する。
						this.makeOutputItemMast(outputInItem, mastMap);
						this.matchFlg = false;
					}
				}

				this.setMastProcFlg(true);
			}
			// 入力Ｍ＞入力Ｔ
			else
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力Ｍ、入力Ｔともに存在する][入力Ｍ＞入力Ｔ]");

				// マッチングの結果、口座振替依頼実績情報のみに存在していたので出力対象。
				// 入力Ｔの情報をもとに、 出力レコードを編集し、出力情報に設定する。
				this.makeOutputItemTran(outputInItem, tranMap);
			
				this.setTranProcFlg(true);
			}
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputInItem;

	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * @return mastProcFlg を戻します。
	 */
	public boolean isMastProcFlg()
	{
		return mastProcFlg;
	}

	/**
	 * @return matchProcFlg を戻します。
	 */
	public boolean isMatchProcFlg()
	{
		return matchProcFlg;
	}

	/**
	 * @return tranProcFlg を戻します。
	 */
	public boolean isTranProcFlg()
	{
		return tranProcFlg;
	}

	/**
	 * @param mast_ProcFlg 設定する mastProcFlg。
	 */
	public void setMastProcFlg(boolean mast_ProcFlg)
	{
		this.mastProcFlg = mast_ProcFlg;
	}

	/**
	 * @param match_ProcFlg 設定する matchProcFlg。
	 */
	public void setMatchProcFlg(boolean match_ProcFlg)
	{
		this.matchProcFlg = match_ProcFlg;
	}

	/**
	 * @param tran_ProcFlg 設定する tranProcFlg。
	 */
	public void setTranProcFlg(boolean tran_ProcFlg)
	{
		this.tranProcFlg = tran_ProcFlg;
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**▼▼▼▼▼▼メソッド追加 開始▼▼▼▼▼▼*/

	/**
	 * 請求金額の下1桁を変換して返却します。
	 * 
	 * @param seikyKingak 請求金額
	 * @return String 変換後請求金額
	 * @throws Exception
	 */
	private String seikyS1Henkan(String seikyKingak) throws Exception
	{
		StringBuilder sb_seikyAmnt = new StringBuilder(seikyKingak);
		int mojisu       = sb_seikyAmnt.length();
		String simo1Moji  = sb_seikyAmnt.substring(mojisu - 1, mojisu);
		String henkanMoji = "";
		String fugo       = "";
		
		if(simo1Moji.equals("{")){
			henkanMoji = "0";
		}else if(simo1Moji.equals("A")){
			henkanMoji = "1";
		}else if(simo1Moji.equals("B")){
			henkanMoji = "2";
		}else if(simo1Moji.equals("C")){
			henkanMoji = "3";
		}else if(simo1Moji.equals("D")){
			henkanMoji = "4";
		}else if(simo1Moji.equals("E")){
			henkanMoji = "5";
		}else if(simo1Moji.equals("F")){
			henkanMoji = "6";
		}else if(simo1Moji.equals("G")){
			henkanMoji = "7";
		}else if(simo1Moji.equals("H")){
			henkanMoji = "8";
		}else if(simo1Moji.equals("I")){
			henkanMoji = "9";
		}else if(simo1Moji.equals("}")){
			henkanMoji = "0";
			fugo       = "-";
		}else if(simo1Moji.equals("J")){
			henkanMoji = "1";
			fugo       = "-";
		}else if(simo1Moji.equals("K")){
			henkanMoji = "2";
			fugo       = "-";
		}else if(simo1Moji.equals("L")){
			henkanMoji = "3";
			fugo       = "-";
		}else if(simo1Moji.equals("M")){
			henkanMoji = "4";
			fugo       = "-";
		}else if(simo1Moji.equals("N")){
			henkanMoji = "5";
			fugo       = "-";
		}else if(simo1Moji.equals("O")){
			henkanMoji = "6";
			fugo       = "-";
		}else if(simo1Moji.equals("P")){
			henkanMoji = "7";
			fugo       = "-";
		}else if(simo1Moji.equals("Q")){
			henkanMoji = "8";
			fugo       = "-";
		}else if(simo1Moji.equals("R")){
			henkanMoji = "9";
			fugo       = "-";
		}else{
			henkanMoji = simo1Moji;
		}
		
		String rt_seikyKingak = fugo + sb_seikyAmnt.replace(mojisu - 1, mojisu, henkanMoji);
		
		return rt_seikyKingak;
	}

	/**
	 * 入力Ｍ、Ｔの情報をもとに、
	 * 出力レコードを編集し、出力情報に設定する。
	 * 
	 * @param outputInItem 出力情報
	 * @param mastMap 入力Ｍ情報
	 * @param TranMap 入力Ｔ情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeOutputItemMatch(JBSbatOutputItem outputInItem, JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, boolean yosoFlg) throws Exception
	{

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputItemMatch]");

		boolean outputFlg = false;

		// 出力情報作成
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// 金額比較用
		BigDecimal amnt = new BigDecimal(mastMap.getString(JBSbatAKIFM049.AMNT));

		// 請求書実績情報.請求金額 <> 請求書予想情報.請求内訳.金額
		// または
		// ( 請求書実績情報.インターフェイスIDが'CHIFE201'(窓口明細なし),'CHIFE211'((窓口明細あり)のいずれか
		//   かつ
		//   請求書実績情報.OCR請求金額 <> 請求書予想情報.請求内訳.金額 )
		// または
		// ( 請求書予想情報.請求内訳.金額 > 0 
		//   かつ
		//   請求書実績情報.請求金額(編集) <> 請求書予想情報.請求内訳.金額 )
		// または
		// ( 請求書予想情報.請求内訳.金額 <= 0 
		//   かつ
		//   請求書実績情報.請求金額(編集) <> all * )

		if(!yosoFlg)
		{
			outMap.setString(JBSbatAKIFM047.OUTPUT_REASON_CD1, "12");
			outMap.setString(JBSbatAKIFM047.OUTPUT_REASON1, "予想外の請求書あり");

			outputFlg = true;
		}

		// 金額比較用
//		BigDecimal AMNT = new BigDecimal(mastMap.getString(JBSbatAKIFM049.AMNT));
//		BigDecimal OCR_SEIKY_AMNT = new BigDecimal(tranMap.getString(JBSbatAKIFM043.OCR_SEIKY_AMNT));
//		BigDecimal SEIKY_AMNT_EDIT = new BigDecimal(tranMap.getString(JBSbatAKIFM043.SEIKY_AMNT_EDIT));

		BigDecimal AMNT            = BigDecimalAMNT(mastMap.getString(JBSbatAKIFM049.AMNT));
		BigDecimal OCR_SEIKY_AMNT  = BigDecimalAMNT(tranMap.getString(JBSbatAKIFM043.OCR_SEIKY_AMNT));
		BigDecimal SEIKY_AMNT_EDIT = BigDecimalAMNT(tranMap.getString(JBSbatAKIFM043.SEIKY_AMNT_EDIT));
		BigDecimal seikyAmnt_BigDecimal = BigDecimalAMNT(seikyAmnt);
		
		if(
			yosoFlg &&
			// !mastMap.get(JBSbatAKIFM049.AMNT).equals(tranMap.get(JBSbatAKIFM043.SEIKY_AMNT)) ||
			// 請求書実績情報.請求金額の下1桁を変換することにより比較する。
			!AMNT.equals(seikyAmnt_BigDecimal) ||
			( (tranMap.get(JBSbatAKIFM043.INTFACE_ID).equals("CHIFE201")
						|| tranMap.get(JBSbatAKIFM043.INTFACE_ID).equals("CHIFE211"))
					&& !AMNT.equals(OCR_SEIKY_AMNT))
				|| (amnt.compareTo(BigDecimal.ZERO) > 0
					&& !AMNT.equals(SEIKY_AMNT_EDIT))
				|| (amnt.compareTo(BigDecimal.ZERO) <= 0
					&& !tranMap.get(JBSbatAKIFM043.SEIKY_AMNT_EDIT).equals(AMNT_ALL_ASTR)))
		{
			outMap.setString(JBSbatAKIFM047.OUTPUT_REASON_CD1, "13");
			outMap.setString(JBSbatAKIFM047.OUTPUT_REASON1, "請求金額確認要");

			outputFlg = true;
		}

		// 請求書実績情報.インターフェイスID <> 請求書予想情報.インターフェイスID
		//if(!mastMap.get(JBSbatAKIFM043.INTFACE_ID).equals(tranMap.get(JBSbatAKIFM049.INTFACE_ID)))
		if(yosoFlg && !mastMap.get(JBSbatAKIFM043.INTFACE_ID).equals(tranMap.get(JBSbatAKIFM049.INTFACE_ID)))
		{
			outMap.setString(JBSbatAKIFM047.OUTPUT_REASON_CD2, "14");
			outMap.setString(JBSbatAKIFM047.OUTPUT_REASON2, "インターフェイスID確認要");

			outputFlg = true;
		}

		// 上記いずれかに該当する場合は出力対象なので情報をセットする。
		if(outputFlg)
		{

			// 入力Ｍ、Ｔの情報をセットします。
			this.setData(outMap, mastMap, tranMap);
			outMap.setOutFlg(true);

			outputInItem.addOutMapList(outMap);
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputItemMatch]");
		return;
	}

	/**
	 * 入力Ｍの情報をもとに、
	 * 出力レコードを編集し、出力情報に設定する。
	 * 
	 * @param outputInItem 出力情報
	 * @param mastMap 入力Ｍ情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeOutputItemMast(JBSbatOutputItem outputInItem, JBSbatServiceInterfaceMap mastMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputItemMast]");

		// 出力情報作成
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// 入力Ｍ(実績情報)をセットします。
		this.setMastData(outMap, mastMap);

		outMap.setString(JBSbatAKIFM047.OUTPUT_REASON_CD1, "11");
		outMap.setString(JBSbatAKIFM047.OUTPUT_REASON1, "請求書なし");

		outMap.setOutFlg(true);

		outputInItem.addOutMapList(outMap);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputItemMast]");
		return;
	}

	/**
	 * 入力Ｔの情報をもとに、
	 * 出力レコードを編集し、出力情報に設定する。
	 * 
	 * @param outputInItem 出力情報
	 * @param TranMap 入力Ｔ情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeOutputItemTran(JBSbatOutputItem outputInItem, JBSbatServiceInterfaceMap tranMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputItemTran]");

		// 出力情報作成
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// 請求検証情報
		// 入力Ｔ(予想情報)をセットします。
		this.setTranData(outMap, tranMap);

		outMap.setString(JBSbatAKIFM047.OUTPUT_REASON_CD1, "12");
		outMap.setString(JBSbatAKIFM047.OUTPUT_REASON1, "予想外の請求書あり");

		outMap.setOutFlg(true);

		outputInItem.addOutMapList(outMap);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputItemTran]");
		return;
	}

	/**
	 * 入力Ｍ、Ｔの情報をもとに、
	 * 出力レコードを編集し、出力情報に設定する。
	 * 
	 * @param outMap 出力情報
	 * @param mastMap 入力Ｍ情報
	 * @param tranMap 入力Ｔ情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setData(JBSbatServiceInterfaceMap outMap, JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap)  throws Exception
	{

		// 請求検証情報
		// 入力Ｔ(予想情報)をセットします。
		this.setTranData(outMap, tranMap);

		// 入力Ｍ(実績情報)をセットします。
		this.setMastData(outMap, mastMap);
	}

	/**
	 * 入力Ｍの情報をもとに、
	 * 出力レコードを編集し、出力情報に設定する。
	 * 
	 * @param outMap 出力情報
	 * @param mastMap 入力Ｔ情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setMastData(JBSbatServiceInterfaceMap outMap, JBSbatServiceInterfaceMap mastMap)  throws Exception
	{

		// 予想情報.インターフェイスＩＤ
		outMap.setString(JBSbatAKIFM047.SEIKY_YOSO_INTFACE_ID, mastMap.getString(JBSbatAKIFM049.INTFACE_ID));

		// 予想情報.請求番号
		outMap.setString(JBSbatAKIFM047.SEIKY_NO, mastMap.getString(JBSbatAKIFM049.SEIKY_NO));

		// 予想情報.請求ステータス
		outMap.setString(JBSbatAKIFM047.SEIKY_STAT, mastMap.getString(JBSbatAKIFM049.SEIKY_STAT));

		// 予想情報.請求契約番号
		outMap.setString(JBSbatAKIFM047.SEIKY_KEI_NO, mastMap.getString(JBSbatAKIFM049.SEIKY_KEI_NO));

		// 予想情報.請求年月
		outMap.setString(JBSbatAKIFM047.SEIKY_YM, mastMap.getString(JBSbatAKIFM049.SEIKY_YM));

		// 予想情報.請求種別コード
		outMap.setString(JBSbatAKIFM047.SEIKY_SBT_CD, mastMap.getString(JBSbatAKIFM049.SEIKY_SBT_CD));

		// 予想情報.契約請求方法コード
		outMap.setString(JBSbatAKIFM047.KEI_SEIKY_WAY_CD, mastMap.getString(JBSbatAKIFM049.KEI_SEIKY_WAY_CD));

		// 予想情報.料金グループコード
		outMap.setString(JBSbatAKIFM047.PRC_GRP_CD, mastMap.getString(JBSbatAKIFM049.PRC_GRP_CD));

		// 予想情報.料金コースコード
		outMap.setString(JBSbatAKIFM047.PCRS_CD, mastMap.getString(JBSbatAKIFM049.PCRS_CD));

		// 予想情報.料金サービスコード
		outMap.setString(JBSbatAKIFM047.PRC_SVC_CD, mastMap.getString(JBSbatAKIFM049.PRC_SVC_CD));

		// 予想情報.料金項目コード
		outMap.setString(JBSbatAKIFM047.PRC_KMK_CD, mastMap.getString(JBSbatAKIFM049.PRC_KMK_CD));

		// 予想情報.金額
		outMap.setString(JBSbatAKIFM047.AMNT, mastMap.getString(JBSbatAKIFM049.AMNT));

		// 予想情報.料金訂正登録フラグ
		outMap.setString(JBSbatAKIFM047.PRC_TEISE_ADD_FLG, mastMap.getString(JBSbatAKIFM049.PRC_TEISE_ADD_FLG));

		// 予想情報.督促番号
		outMap.setString(JBSbatAKIFM047.TOKUSOKU_NO, mastMap.getString(JBSbatAKIFM049.TOKUSOKU_NO));

		// 予想情報.督促ステータス
		outMap.setString(JBSbatAKIFM047.TOKUSOKU_STAT, mastMap.getString(JBSbatAKIFM049.TOKUSOKU_STAT));

		// 予想情報.督促金額
		outMap.setString(JBSbatAKIFM047.TOKUSOKU_AMNT, mastMap.getString(JBSbatAKIFM049.TOKUSOKU_AMNT));

		// 予想情報.督促管理開始年月日
		outMap.setString(JBSbatAKIFM047.TOKUSOKU_STAYMD, mastMap.getString(JBSbatAKIFM049.TOKUSOKU_STAYMD));

		// 予想情報.督促管理終了年月日
		outMap.setString(JBSbatAKIFM047.TOKUSOKU_ENDYMD, mastMap.getString(JBSbatAKIFM049.TOKUSOKU_ENDYMD));

		// 予想情報.督促異動年月日
		outMap.setString(JBSbatAKIFM047.TOKUSOKU_IDO_YMD, mastMap.getString(JBSbatAKIFM049.TOKUSOKU_IDO_YMD));

		// 予想情報.請求書発行請求抑止コード
		outMap.setString(JBSbatAKIFM047.SEIKYSHO_SEIKY_YOKSI_CD, mastMap.getString(JBSbatAKIFM049.SEIKYSHO_SEIKY_YOKSI_CD));

		// 予想情報.請求書発行請求抑止フラグ
		outMap.setString(JBSbatAKIFM047.SEIKYSHO_SEIKY_YOKSI_FLG, mastMap.getString(JBSbatAKIFM049.SEIKYSHO_SEIKY_YOKSI_FLG));

		// 予想情報.請求書発行請求抑止年月日
		outMap.setString(JBSbatAKIFM047.SEIKYSHO_SEIKY_YOKSI_YMD, mastMap.getString(JBSbatAKIFM049.SEIKYSHO_SEIKY_YOKSI_YMD));

		// 予想情報.請求書内訳発行請求抑止コード
		outMap.setString(JBSbatAKIFM047.SEIKYSHO_UTWK_SEIKY_YOKSI_CD, mastMap.getString(JBSbatAKIFM049.SEIKYSHO_UTWK_SEIKY_YOKSI_CD));

		// 予想情報.請求書内訳発行請求抑止フラグ
		outMap.setString(JBSbatAKIFM047.SEIKYSHO_UTWK_SEIKY_YOKSI_FLG, mastMap.getString(JBSbatAKIFM049.SEIKYSHO_UTWK_SEIKY_YOKSI_FLG));

		// 予想情報.請求書内訳発行請求抑止年月日
		outMap.setString(JBSbatAKIFM047.SEIKYSHO_UTWK_SEIKY_YOKSI_YMD, mastMap.getString(JBSbatAKIFM049.SEIKYSHO_UTWK_SEIKY_YOKSI_YMD));

		// 予想情報.合算請求抑止コード
		outMap.setString(JBSbatAKIFM047.GSN_SEIKY_YOKSI_CD, mastMap.getString(JBSbatAKIFM049.GSN_SEIKY_YOKSI_CD));

		// 予想情報.合算請求抑止フラグ
		outMap.setString(JBSbatAKIFM047.GSN_SEIKY_YOKSI_FLG, mastMap.getString(JBSbatAKIFM049.GSN_SEIKY_YOKSI_FLG));

		// 予想情報.合算請求抑止年月日
		outMap.setString(JBSbatAKIFM047.GSN_SEIKY_YOKSI_YMD, mastMap.getString(JBSbatAKIFM049.GSN_SEIKY_YOKSI_YMD));

		// 予想情報.強制窓口請求抑止コード
		outMap.setString(JBSbatAKIFM047.KSI_MDGT_SEIKY_YOKSI_CD, mastMap.getString(JBSbatAKIFM049.KSI_MDGT_SEIKY_YOKSI_CD));

		// 予想情報.強制窓口請求抑止フラグ
		outMap.setString(JBSbatAKIFM047.KSI_MDGT_SEIKY_YOKSI_FLG, mastMap.getString(JBSbatAKIFM049.KSI_MDGT_SEIKY_YOKSI_FLG));

		// 予想情報.強制窓口請求抑止年月日
		outMap.setString(JBSbatAKIFM047.KSI_MDGT_SEIKY_YOKSI_YMD, mastMap.getString(JBSbatAKIFM049.KSI_MDGT_SEIKY_YOKSI_YMD));

		// 予想情報.世代登録年月日時分秒
		outMap.setString(JBSbatAKIFM047.GENE_ADD_DTM, mastMap.getString(JBSbatAKIFM049.GENE_ADD_DTM));

		// 予想情報.請求契約ステータス
		outMap.setString(JBSbatAKIFM047.SEIKY_KEI_STAT, mastMap.getString(JBSbatAKIFM049.SEIKY_KEI_STAT));

		// 予想情報.ＳＹＳＩＤ
		outMap.setString(JBSbatAKIFM047.SYSID, mastMap.getString(JBSbatAKIFM049.SYSID));

		// 予想情報.マンションオーナーＩＤ
		outMap.setString(JBSbatAKIFM047.MANSION_OWNR_ID, mastMap.getString(JBSbatAKIFM049.MANSION_OWNR_ID));

		// 予想情報.請求方法コード
		outMap.setString(JBSbatAKIFM047.SEIKY_WAY_CD, mastMap.getString(JBSbatAKIFM049.SEIKY_WAY_CD));

		// 予想情報.請求方法変更年月日
		outMap.setString(JBSbatAKIFM047.SEIKY_WAY_CHGE_YMD, mastMap.getString(JBSbatAKIFM049.SEIKY_WAY_CHGE_YMD));

		// 予想情報.請求方法番号（口座）
		outMap.setString(JBSbatAKIFM047.SEIKY_WAY_NO_KOZA, mastMap.getString(JBSbatAKIFM049.SEIKY_WAY_NO_KOZA));

		// 予想情報.請求方法番号（クレジットカード）
		outMap.setString(JBSbatAKIFM047.SEIKY_WAY_NO_CRECARD, mastMap.getString(JBSbatAKIFM049.SEIKY_WAY_NO_CRECARD));

		// 予想情報.請求方法適用調整年月日
		outMap.setString(JBSbatAKIFM047.SEIKY_WAY_APLY_ADJ_YMD, mastMap.getString(JBSbatAKIFM049.SEIKY_WAY_APLY_ADJ_YMD));

		// 予想情報.請求書発行要否
		outMap.setString(JBSbatAKIFM047.SEIKYUS_HAKKO_YH, mastMap.getString(JBSbatAKIFM049.SEIKYUS_HAKKO_YH));

		// 予想情報.オプションサービス契約番号
		outMap.setString(JBSbatAKIFM047.OP_SVC_KEI_NO, mastMap.getString(JBSbatAKIFM049.OP_SVC_KEI_NO));

		// 予想情報.オプションサービス世代登録年月日時分秒
		outMap.setString(JBSbatAKIFM047.OP_SVC_GENE_ADD_DTM, mastMap.getString(JBSbatAKIFM049.OP_SVC_GENE_ADD_DTM));

		// 予想情報.オプションサービス契約ステータス
		outMap.setString(JBSbatAKIFM047.OP_SVC_KEI_STAT, mastMap.getString(JBSbatAKIFM049.OP_SVC_KEI_STAT));

		// 予想情報.オプションサービスコード
		outMap.setString(JBSbatAKIFM047.OP_SVC_CD, mastMap.getString(JBSbatAKIFM049.OP_SVC_CD));

		// 予想情報.オプションサービス料金コースコード
		outMap.setString(JBSbatAKIFM047.OP_SVC_PCRS_CD, mastMap.getString(JBSbatAKIFM049.OP_SVC_PCRS_CD));

		// 予想情報.料金プランコード
		outMap.setString(JBSbatAKIFM047.PPLAN_CD, mastMap.getString(JBSbatAKIFM049.PPLAN_CD));

		// 予想情報.サービス契約番号
		outMap.setString(JBSbatAKIFM047.SVC_KEI_NO, mastMap.getString(JBSbatAKIFM049.SVC_KEI_NO));

		// 予想情報.プラン開始年月日
		outMap.setString(JBSbatAKIFM047.PLAN_STAYMD, mastMap.getString(JBSbatAKIFM049.PLAN_STAYMD));

		// 予想情報.プラン終了年月日
		outMap.setString(JBSbatAKIFM047.PLAN_ENDYMD, mastMap.getString(JBSbatAKIFM049.PLAN_ENDYMD));

		// 予想情報.プラン課金開始年月日
		outMap.setString(JBSbatAKIFM047.PLAN_CHRG_STAYMD, mastMap.getString(JBSbatAKIFM049.PLAN_CHRG_STAYMD));

		// 予想情報.プラン課金終了年月日
		outMap.setString(JBSbatAKIFM047.PLAN_CHRG_ENDYMD, mastMap.getString(JBSbatAKIFM049.PLAN_CHRG_ENDYMD));

		// 予想情報.サービス開始年月日
		outMap.setString(JBSbatAKIFM047.SVC_STAYMD, mastMap.getString(JBSbatAKIFM049.SVC_STAYMD));

		// 予想情報.サービス課金開始年月日
		outMap.setString(JBSbatAKIFM047.SVC_CHRG_STAYMD, mastMap.getString(JBSbatAKIFM049.SVC_CHRG_STAYMD));

		// 予想情報.サービス停止年月日
		outMap.setString(JBSbatAKIFM047.SVC_STP_YMD, mastMap.getString(JBSbatAKIFM049.SVC_STP_YMD));

		// 予想情報.サービス停止解除年月日
		outMap.setString(JBSbatAKIFM047.SVC_STP_RLS_YMD, mastMap.getString(JBSbatAKIFM049.SVC_STP_RLS_YMD));

		// 予想情報.サービス終了年月日
		outMap.setString(JBSbatAKIFM047.SVC_ENDYMD, mastMap.getString(JBSbatAKIFM049.SVC_ENDYMD));

		// 予想情報.サービス課金終了年月日
		outMap.setString(JBSbatAKIFM047.SVC_CHRG_ENDYMD, mastMap.getString(JBSbatAKIFM049.SVC_CHRG_ENDYMD));

		// 予想情報.サービス解約年月日
		outMap.setString(JBSbatAKIFM047.SVC_DSL_YMD, mastMap.getString(JBSbatAKIFM049.SVC_DSL_YMD));

		// 予想情報.回復年月日
		outMap.setString(JBSbatAKIFM047.KAIHK_YMD, mastMap.getString(JBSbatAKIFM049.KAIHK_YMD));

		// 実績作成有無予想
		outMap.setString(JBSbatAKIFM047.JISSEKI_UM_YOSO, mastMap.getString(JBSbatAKIFM049.JISSEKI_UM_YOSO));
	}

	/**
	 * 入力Ｔの情報をもとに、
	 * 出力レコードを編集し、出力情報に設定する。
	 * 
	 * @param outMap 出力情報
	 * @param tranMap 入力Ｔ情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setTranData(JBSbatServiceInterfaceMap outMap, JBSbatServiceInterfaceMap tranMap)  throws Exception
	{
		// 実績情報.請求契約番号
		outMap.setString(JBSbatAKIFM047.SEIKY_KEY_NO, tranMap.getString(JBSbatAKIFM043.SEIKY_KEY_NO));

		// 実績情報.郵便番号
		outMap.setString(JBSbatAKIFM047.YUBIN_NO, tranMap.getString(JBSbatAKIFM043.YUBIN_NO));

		// 実績情報.封書区分
		outMap.setString(JBSbatAKIFM047.FUSHO_KBN, tranMap.getString(JBSbatAKIFM043.FUSHO_KBN));

		// 実績情報.同封物種別１
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT1, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT1));

		// 実績情報.同封物種別１部数
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT1_CNT, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT1_CNT));

		// 実績情報.同封物種別２
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT2, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT2));

		// 実績情報.同封物種別２部数
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT2_CNT, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT2_CNT));

		// 実績情報.同封物種別３
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT3, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT3));

		// 実績情報.同封物種別３部数
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT3_CNT, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT3_CNT));

		// 実績情報.同封物種別４
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT4, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT4));

		// 実績情報.同封物種別４部数
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT4_CNT, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT4_CNT));

		// 実績情報.同封物種別５
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT5, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT5));

		// 実績情報.同封物種別５部数
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT5_CNT, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT5_CNT));

		// 実績情報.同封物種別６
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT6, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT6));

		// 実績情報.同封物種別６部数
		outMap.setString(JBSbatAKIFM047.DOHUBT_SBT6_CNT, tranMap.getString(JBSbatAKIFM043.DOHUBT_SBT6_CNT));

		// 実績情報.印刷枚数（総合計）
		outMap.setString(JBSbatAKIFM047.PRINT_CNT_TTL, tranMap.getString(JBSbatAKIFM043.PRINT_CNT_TTL));

		// 実績情報.印刷面数（内訳書）
		outMap.setString(JBSbatAKIFM047.PRINT_CNT_UCWK, tranMap.getString(JBSbatAKIFM043.PRINT_CNT_UCWK));

		// 実績情報.印刷面数（明細書）
		outMap.setString(JBSbatAKIFM047.PRINT_CNT_DTL, tranMap.getString(JBSbatAKIFM043.PRINT_CNT_DTL));

		// 実績情報.領収のみフラグ
		outMap.setString(JBSbatAKIFM047.RECEIPT_NOMI_FLG, tranMap.getString(JBSbatAKIFM043.RECEIPT_NOMI_FLG));

		// 実績情報.金融機関情報（当月）‐銀行コード
		outMap.setString(JBSbatAKIFM047.BANK_CD, tranMap.getString(JBSbatAKIFM043.BANK_CD));

		// 実績情報.金融機関情報（当月）‐店舗コード
		outMap.setString(JBSbatAKIFM047.TENPO_CD, tranMap.getString(JBSbatAKIFM043.TENPO_CD));

		// 実績情報.クレジット会社コード
		outMap.setString(JBSbatAKIFM047.CRDT_COMP_CD, tranMap.getString(JBSbatAKIFM043.CRDT_COMP_CD));

		// 実績情報.領収方法
		outMap.setString(JBSbatAKIFM047.RECEIPT_WAY, tranMap.getString(JBSbatAKIFM043.RECEIPT_WAY));

		// 実績情報.領収年月西暦
		outMap.setString(JBSbatAKIFM047.RECEIPT_YM_SIRK, tranMap.getString(JBSbatAKIFM043.RECEIPT_YM_SIRK));

		// 実績情報.領収年月日西暦
		outMap.setString(JBSbatAKIFM047.RECEIPT_YMD_SIRK, tranMap.getString(JBSbatAKIFM043.RECEIPT_YMD_SIRK));

		// 実績情報.領収金額
		outMap.setString(JBSbatAKIFM047.RECEIPT_AMNT, tranMap.getString(JBSbatAKIFM043.RECEIPT_AMNT));

		// 実績情報.消費税額
		outMap.setString(JBSbatAKIFM047.STAX_AMNT, tranMap.getString(JBSbatAKIFM043.STAX_AMNT));

		// 実績情報.前月金融機関情報‐銀行コード
		outMap.setString(JBSbatAKIFM047.ZEN_BANK_CD, tranMap.getString(JBSbatAKIFM043.ZEN_BANK_CD));

		// 実績情報.前月金融機関情報‐店舗コード
		outMap.setString(JBSbatAKIFM047.ZEN_TENPO_CD, tranMap.getString(JBSbatAKIFM043.ZEN_TENPO_CD));

		// 実績情報.請求年月西暦
		outMap.setString(JBSbatAKIFM047.SEIKY_YM_SIRK, tranMap.getString(JBSbatAKIFM043.SEIKY_YM_SIRK));

		// 実績情報.請求年月日西暦
		outMap.setString(JBSbatAKIFM047.HAKKO_YMD_SIRK, tranMap.getString(JBSbatAKIFM043.HAKKO_YMD_SIRK));

		// 実績情報.支払期限年月日西暦
		outMap.setString(JBSbatAKIFM047.PAY_KIGEN_YMD_SIRK, tranMap.getString(JBSbatAKIFM043.PAY_KIGEN_YMD_SIRK));

		// 実績情報.支払期限日（曜日）
		outMap.setString(JBSbatAKIFM047.PAY_KIGEN_DAY_DOW, tranMap.getString(JBSbatAKIFM043.PAY_KIGEN_DAY_DOW));

		// 実績情報.請求金額（編集）
		outMap.setString(JBSbatAKIFM047.SEIKY_AMNT_EDIT, tranMap.getString(JBSbatAKIFM043.SEIKY_AMNT_EDIT));

		// 実績情報.消費税
		outMap.setString(JBSbatAKIFM047.STAX, tranMap.getString(JBSbatAKIFM043.STAX));

		// 実績情報.請求金額
		//outMap.setString(JBSbatAKIFM047.SEIKY_AMNT, tranMap.getString(JBSbatAKIFM043.SEIKY_AMNT));
		outMap.setString(JBSbatAKIFM047.SEIKY_AMNT, seikyAmnt);

		// 実績情報.請求利用期間ＦＲＯＭ
		outMap.setString(JBSbatAKIFM047.SEIKY_RIYO_PRD_FROM, tranMap.getString(JBSbatAKIFM043.SEIKY_RIYO_PRD_FROM));

		// 実績情報.請求利用期間ＴＯ
		outMap.setString(JBSbatAKIFM047.SEIKY_RIYO_PRD_TO, tranMap.getString(JBSbatAKIFM043.SEIKY_RIYO_PRD_TO));

		// 実績情報.月額利用期間ＦＲＯＭ
		outMap.setString(JBSbatAKIFM047.GTGK_RIYO_PRD_FROM, tranMap.getString(JBSbatAKIFM043.GTGK_RIYO_PRD_FROM));

		// 実績情報.月額利用期間ＴＯ
		outMap.setString(JBSbatAKIFM047.GTGK_RIYO_PRD_TO, tranMap.getString(JBSbatAKIFM043.GTGK_RIYO_PRD_TO));

		// 実績情報.請求番号＿請求年月西暦
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_SEIKY_YM_SIRK, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_SEIKY_YM_SIRK));

		// 実績情報.請求番号＿請求先番号
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_SEIKY_SAKI_NO, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_SEIKY_SAKI_NO));

		// 実績情報.請求番号＿支払方法
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_PAY_WAY, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_PAY_WAY));

		// 実績情報.請求番号＿シーケンス番号
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_SEQ_NO, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_SEQ_NO));

		// 実績情報.請求番号＿発行月
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_HAKKO_MON, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_HAKKO_MON));

		// 実績情報.請求番号＿発行シーケンス
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_HAKKO_SEQ_NO, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_HAKKO_SEQ_NO));

		// 実績情報.請求番号＿群コード
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_GUN_CD, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_GUN_CD));

		// 実績情報.請求番号＿請求書区分
		outMap.setString(JBSbatAKIFM047.SEIKY_NO_SEIKYUS_KBN, tranMap.getString(JBSbatAKIFM043.SEIKY_NO_SEIKYUS_KBN));

		// 実績情報.バージョン番号
		outMap.setString(JBSbatAKIFM047.VSN_NO, tranMap.getString(JBSbatAKIFM043.VSN_NO));

		// 実績情報.ＯＣＲ請求年月
		outMap.setString(JBSbatAKIFM047.OCR_SEIKY_YM, tranMap.getString(JBSbatAKIFM043.OCR_SEIKY_YM));

		// 実績情報.ＯＣＲ請求先番号
		outMap.setString(JBSbatAKIFM047.OCR_SEIKY_SAKI_NO, tranMap.getString(JBSbatAKIFM043.OCR_SEIKY_SAKI_NO));

		// 実績情報.ＯＣＲ発行月
		outMap.setString(JBSbatAKIFM047.OCR_HAKKO_MON, tranMap.getString(JBSbatAKIFM043.OCR_HAKKO_MON));

		// 実績情報.ＯＣＲ発行シーケンス
		outMap.setString(JBSbatAKIFM047.OCR_HAKKO_SEQ, tranMap.getString(JBSbatAKIFM043.OCR_HAKKO_SEQ));

		// 実績情報.ＯＣＲ群番号
		outMap.setString(JBSbatAKIFM047.OCR_GUN_NO, tranMap.getString(JBSbatAKIFM043.OCR_GUN_NO));

		// 実績情報.ＯＣＲ請求金額
		outMap.setString(JBSbatAKIFM047.OCR_SEIKY_AMNT, tranMap.getString(JBSbatAKIFM043.OCR_SEIKY_AMNT));

		// 実績情報.ＯＣＲチェックデジット
		outMap.setString(JBSbatAKIFM047.OCR_CHKDGT, tranMap.getString(JBSbatAKIFM043.OCR_CHKDGT));

		// 実績情報.インフォメーション１
		outMap.setString(JBSbatAKIFM047.INFO1, tranMap.getString(JBSbatAKIFM043.INFO1));

		// 実績情報.インフォメーション２
		outMap.setString(JBSbatAKIFM047.INFO2, tranMap.getString(JBSbatAKIFM043.INFO2));

		// 実績情報.インフォメーション３
		outMap.setString(JBSbatAKIFM047.INFO3, tranMap.getString(JBSbatAKIFM043.INFO3));

		// 実績情報.インフォメーション４
		outMap.setString(JBSbatAKIFM047.INFO4, tranMap.getString(JBSbatAKIFM043.INFO4));

		// 実績情報.収入印紙マスクフラグ
		outMap.setString(JBSbatAKIFM047.SYNY_INSHI_MSK_FLG, tranMap.getString(JBSbatAKIFM043.SYNY_INSHI_MSK_FLG));

		// 実績情報.カスタマバーコード＿スタートビット
		outMap.setString(JBSbatAKIFM047.CSTM_BCD_START_BIT, tranMap.getString(JBSbatAKIFM043.CSTM_BCD_START_BIT));

		// 実績情報.カスタマバーコード＿郵便番号（主番号）
		outMap.setString(JBSbatAKIFM047.CSTM_BCD_YUBIN_NO_MAIN_NO, tranMap.getString(JBSbatAKIFM043.CSTM_BCD_YUBIN_NO_MAIN_NO));

		// 実績情報.カスタマバーコード＿郵便番号（副番上２桁）
		outMap.setString(JBSbatAKIFM047.CSTM_BCD_YUBIN_NO_SUB_NO_UE, tranMap.getString(JBSbatAKIFM043.CSTM_BCD_YUBIN_NO_SUB_NO_UE));

		// 実績情報.カスタマバーコード＿郵便番号（副番下２桁）
		outMap.setString(JBSbatAKIFM047.CSTM_BCD_YUBIN_NO_SUB_NO_ST, tranMap.getString(JBSbatAKIFM043.CSTM_BCD_YUBIN_NO_SUB_NO_ST));

		// 実績情報.カスタマバーコード＿住所表示番号
		outMap.setString(JBSbatAKIFM047.CSTM_BCD_AD_DSP_NO, tranMap.getString(JBSbatAKIFM043.CSTM_BCD_AD_DSP_NO));

		// 実績情報.カスタマバーコード＿チェックデジット
		outMap.setString(JBSbatAKIFM047.CSTM_BCD_CHKDGT, tranMap.getString(JBSbatAKIFM043.CSTM_BCD_CHKDGT));

		// 実績情報.カスタマバーコード＿ストップビット
		outMap.setString(JBSbatAKIFM047.CSTM_BCD_STOP_BIT, tranMap.getString(JBSbatAKIFM043.CSTM_BCD_STOP_BIT));

		// 実績情報.ＥＡＮバーコード＿識別子
		outMap.setString(JBSbatAKIFM047.EAN_BCD_SKBTS, tranMap.getString(JBSbatAKIFM043.EAN_BCD_SKBTS));

		// 実績情報.ＥＡＮバーコード＿メーカーコード
		outMap.setString(JBSbatAKIFM047.EAN_BCD_MAKER_CD, tranMap.getString(JBSbatAKIFM043.EAN_BCD_MAKER_CD));

		// 実績情報.ＥＡＮバーコード＿会社コード
		outMap.setString(JBSbatAKIFM047.EAN_BCD_COMP_CD, tranMap.getString(JBSbatAKIFM043.EAN_BCD_COMP_CD));

		// 実績情報.ＥＡＮバーコード＿請求月
		outMap.setString(JBSbatAKIFM047.EAN_BCD_SEIKY_YM, tranMap.getString(JBSbatAKIFM043.EAN_BCD_SEIKY_YM));

		// 実績情報.ＥＡＮバーコード＿請求年
		outMap.setString(JBSbatAKIFM047.EAN_BCD_SEIKY_YEAR, tranMap.getString(JBSbatAKIFM043.EAN_BCD_SEIKY_YEAR));

		// 実績情報.ＥＡＮバーコード＿群番号
		outMap.setString(JBSbatAKIFM047.EAN_BCD_GUN_NO, tranMap.getString(JBSbatAKIFM043.EAN_BCD_GUN_NO));

		// 実績情報.ＥＡＮバーコード＿発行シーケンス
		outMap.setString(JBSbatAKIFM047.EAN_BCD_HAKKO_SEQ, tranMap.getString(JBSbatAKIFM043.EAN_BCD_HAKKO_SEQ));

		// 実績情報.ＥＡＮバーコード＿請求先番号
		outMap.setString(JBSbatAKIFM047.EAN_BCD_SEIKY_SAKI_NO, tranMap.getString(JBSbatAKIFM043.EAN_BCD_SEIKY_SAKI_NO));

		// 実績情報.ＥＡＮバーコード＿再発行区分
		outMap.setString(JBSbatAKIFM047.EAN_BCD_RE_HAKKO_KBN, tranMap.getString(JBSbatAKIFM043.EAN_BCD_RE_HAKKO_KBN));

		// 実績情報.ＥＡＮバーコード＿支払期限日
		outMap.setString(JBSbatAKIFM047.EAN_BCD_PAY_KIGEN_DAY, tranMap.getString(JBSbatAKIFM043.EAN_BCD_PAY_KIGEN_DAY));

		// 実績情報.ＥＡＮバーコード＿印紙フラグ
		outMap.setString(JBSbatAKIFM047.EAN_BCD_INSHI_FLG, tranMap.getString(JBSbatAKIFM043.EAN_BCD_INSHI_FLG));

		// 実績情報.ＥＡＮバーコード＿支払金額
		outMap.setString(JBSbatAKIFM047.EAN_BCD_PAY_AMNT, tranMap.getString(JBSbatAKIFM043.EAN_BCD_PAY_AMNT));

		// 実績情報.ＥＡＮバーコード＿チェックデジット
		outMap.setString(JBSbatAKIFM047.EAN_BCD_CHKDGT, tranMap.getString(JBSbatAKIFM043.EAN_BCD_CHKDGT));

		// 実績情報.インターフェイスＩＤ
		outMap.setString(JBSbatAKIFM047.INTFACE_ID, tranMap.getString(JBSbatAKIFM043.INTFACE_ID));
	}
	
	/**
	 * 入力された文字列の値を判定し「***」 又は 空白の場合に1を返却する。
	 * 
	 * @param String 金額
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private BigDecimal BigDecimalAMNT(String AMNT)  throws Exception
	{
		String trimAMNT = AMNT.trim();
		
		BigDecimal Change_AMNT = BigDecimal.ZERO;
		
		if(AMNT == null || "".equals(trimAMNT)) {
			
			return Change_AMNT;
		}
		
		if(AMNT.equals(AMNT_ALL_ASTR)) {
			
			return Change_AMNT;
			
		}
		
		return new BigDecimal(trimAMNT);
	}
	
	
	/**▲▲▲▲▲▲メソッド追加 終了▲▲▲▲▲▲*/
}
