/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JBSbatKKSvKeiIfVAKikiMatch
*	ソースファイル名：JBSbatKKSvKeiIfVAKikiMatch.java
*	作成者			：富士通
*	日付			：2013年4月8日
*＜機能概要＞
*	トランファイルとマスタファイルをマッチングし、
*	マスタファイルに存在しないサービス契約番号のトランレコードをオミットする。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2013/04/08	FJ)			新規作成
*
**********************************************************************/

package eo.business.service;


import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JBSbatMatchServiceInterface;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM019;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;

/**
 * (クラスの機能概要)<p>
 * トランファイルとマスタファイルをマッチングし、
 * マスタファイルに存在しないサービス契約番号のトランレコードをオミットする。
 * @author 富士通
 */
public class JBSbatKKSvKeiIfVAKikiMatch extends JBSbatBusinessService implements JBSbatMatchServiceInterface
{
	// ---------- JBSbatMatchServiceInterface start ---------- //
	/** キーマッチ処理フラグ*/
	private boolean matchProcFlg;

	/** マスタファイル処理フラグ*/
	private boolean mastProcFlg;

	/** トランファイル処理フラグ*/
	private boolean tranProcFlg;
	// ---------- JBSbatMatchServiceInterface end ---------- //

	/** 運用日付 */
	private String unyoDate = null;
	/** 利用月 */
	private String useMon = null;
	/** 対象月月末日 */
	private String useMonEndDay = null;
	/** フリー項目 */
	private String free = "";

	// ---------- JBSbatBusinessService start ---------- //
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	@Override
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
    	// --------------------------------------------------------------------------------- //
    	// JBSbatKKSvKeiIfFileSks.java のuseMonEndDayの取得 start
    	// --------------------------------------------------------------------------------- //
    	// useMonEndDayの取得

		// 運用日付
		unyoDate = commonItem.getOpeDate();
		// フリー項目
		String[] freeItems = super.freeItem.split(JKKBatConst.S_PARAM_DELIM);
		free = freeItems[0];

		// 運用日付より対象月を算出
		useMon = unyoDate.substring(0, 6);
		if(JBSbatKKConst.TRAN_TRGT_MON_BF.equals(free))
		{
			useMon = JBSbatDateUtil.adjustMonth(unyoDate, -1).substring(0, 6);
		}
		// 対象月の月末日を算出
		useMonEndDay = useMon + JBSbatDateUtil.getEndOfMonth(useMon);
    	// --------------------------------------------------------------------------------- //
    	// JBSbatKKSvKeiIfFileSks.java のuseMonEndDayの取得 end
    	// --------------------------------------------------------------------------------- //

		super.logPrint.printDebugLog("unyoDate["     + unyoDate     + "]");
		super.logPrint.printDebugLog("free["         + free         + "]");
		super.logPrint.printDebugLog("useMon["       + useMon       + "]");
		super.logPrint.printDebugLog("useMonEndDay[" + useMonEndDay + "]");

	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	@Override
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	// ---------- JBSbatBusinessService end ---------- //
	
	/**
	 * 主処理
	 * @param mastMap		マスタマップ(INF1)
	 * @param tranMap		トランマップ(INF2)
	 * @param outputInItem	出力情報(OTF1)
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem) throws Exception
	{
	    if (mastMap == null && tranMap != null) {
	        // 入力Ｍのみnullの場合

	    	// トランファイルを次レコードに進める。
	        this.setTranProcFlg(true);
	        
			if(JBSbatKKConst.CHSHT_KEI_DIV_30.equals(tranMap.getString(JBSbatKKIFM019.CHSHT_KEI_DIV)) 
					&& JBSbatKKConst.KKTK_SVC_CD_HTEL_VA.equals(tranMap.getString(JBSbatKKIFM019.TRGT_KEI_SVC_CD)))
			{
				// 処理月に課金中のVA機器が制御対象
				if(!(useMonEndDay.compareTo(tranMap.getString(JBSbatKKIFM019.PLAN_STAYMD)) >= 0))
				{
					// 出力情報生成
					JBSbatServiceInterfaceMap outMap = setOutMap(tranMap);
					outMap.setOutFlg(true);
					outputInItem.addOutMapList(outMap);
				}
			}
			else {
				// 出力情報生成
				JBSbatServiceInterfaceMap outMap = setOutMap(tranMap);
				outMap.setOutFlg(true);
				outputInItem.addOutMapList(outMap);
			}
	    } else if (mastMap != null && tranMap == null) {
	        // 入力Ｔのみnullの場合

	    	// マスタファイルを次レコードに進める。
	        this.setMastProcFlg(true);
	        return outputInItem;
	    } else {
	        // 入力Ｔ、入力Ｍが共にnullでない場合
	    	
			// 1-1.有効VA機器取得無条件出力(有効VA機器リストが未取得の場合([キャンセル][従量][開始済])は処理不要)
			//     かつ抽出区分が30(機器提供サービス)かつeo光電話のみ後続処理実施
			if(JBSbatKKConst.CHSHT_KEI_DIV_30.equals(tranMap.getString(JBSbatKKIFM019.CHSHT_KEI_DIV)) 
					&& JBSbatKKConst.KKTK_SVC_CD_HTEL_VA.equals(tranMap.getString(JBSbatKKIFM019.TRGT_KEI_SVC_CD)))
			{
				// 処理月に課金中のVA機器が制御対象
				if(useMonEndDay.compareTo(tranMap.getString(JBSbatKKIFM019.PLAN_STAYMD)) >= 0)
				{
			        // キー情報取得
			        String mastSVC_KEI_NO =  mastMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);	// サービス契約.サービス契約番号
			        String tranSVC_KEI_NO =  tranMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);	// サービス契約.サービス契約番号
		
			        // マッチングキー（マスタ）を作成
			        StringBuffer mastKey = new StringBuffer();
			        mastKey.append(mastSVC_KEI_NO);
		
			        // マッチングキー（トラン）を作成
			        StringBuffer tranKey = new StringBuffer();
			        tranKey.append(tranSVC_KEI_NO);
			        
					super.logPrint.printDebugLog("MatchingKey_mast[" + mastSVC_KEI_NO + "]");
		            super.logPrint.printDebugLog("MatchingKey_tran[" + tranSVC_KEI_NO + "]");

			        if (mastKey.toString().compareTo(tranKey.toString()) == 0) {
			            // 入力Ｍ = 入力Ｔ

			        	////////////////////////////////////////////////
			        	// [有効VA機器リスト＝入力情報]に該当（※３） //
			        	////////////////////////////////////////////////

			        	// トランファイルを次レコードに進める。
			            this.setMatchProcFlg(true);
			            // 出力情報生成

						// 有効VA機器であれば出力フラグをON
//OM-2013-0004005対応　安井　START
//						if(mastMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO).equals(tranMap.getString(JBSbatKKIFM019.KKTK_SVC_KEI_NO))
//								&& mastMap.getString(JBSbatKK_T_KKTK_SVC_KEI.PPLAN_CD).equals(tranMap.getString(JBSbatKKIFM019.PPLAN_CD))
//								&& mastMap.getString(JBSbatKK_T_SVC_KEI.PCRS_CD).equals(tranMap.getString(JBSbatKKIFM019.PCRS_CD)))
						if(mastMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO).equals(tranMap.getString(JBSbatKKIFM019.KKTK_SVC_KEI_NO))
								&& mastMap.getString(JBSbatKK_T_KKTK_SVC_KEI.PPLAN_CD).equals(tranMap.getString(JBSbatKKIFM019.PPLAN_CD)))
//OM-2013-0004005対応　安井　END
						{
							// 出力情報生成
							JBSbatServiceInterfaceMap outMap = setOutMap(tranMap);
							outMap.setOutFlg(true);
							outputInItem.addOutMapList(outMap);
						}
			        } else if (mastKey.toString().compareTo(tranKey.toString()) < 0) {
			            // 入力Ｍ < 入力Ｔ
		
			        	////////////////////////////////////////////////
			        	// [有効VA機器リスト＜入力情報]に該当（※１） //
			        	////////////////////////////////////////////////
			        	
			        	// マスタファイルを次レコードに進める。
			            this.setMastProcFlg(true);
			            // 出力情報生成
			        } else {
			            // 入力Ｍ > 入力Ｔ
			        	
			        	////////////////////////////////////////////////
			        	// [有効VA機器リスト＞入力情報]に該当（※２） //　
			        	////////////////////////////////////////////////
		
			        	// トランファイルを次レコードに進める。
			            this.setTranProcFlg(true);
			            // 出力情報生成
						super.logPrint.printDebugLog("SVC_KEI_NO[" + tranKey.toString() + "] is not in master.");
			        }
				} else {
		        	// トランファイルを次レコードに進める。
		            this.setTranProcFlg(true);

					// 出力情報生成
					JBSbatServiceInterfaceMap outMap = setOutMap(tranMap);
					outMap.setOutFlg(true);
					outputInItem.addOutMapList(outMap);
				}
			} else {
	        	// トランファイルを次レコードに進める。
	            this.setTranProcFlg(true);

				// 出力情報生成
				JBSbatServiceInterfaceMap outMap = setOutMap(tranMap);
				outMap.setOutFlg(true);
				outputInItem.addOutMapList(outMap);
			}
	    }
	    return outputInItem;
	}

	// ---------- JBSbatMatchServiceInterface start ---------- //
	/**
	 * @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;
	}
	// ---------- JBSbatMatchServiceInterface end ---------- //

	private JBSbatServiceInterfaceMap setOutMap(JBSbatServiceInterfaceMap tranMap) throws Exception
	{
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// No.01
		// 抽出契約区分
		// CHSHT_KEI_DIV,1,,String,2,0
		outMap.set(JBSbatKKIFM019.CHSHT_KEI_DIV, tranMap.getString(JBSbatKKIFM019.CHSHT_KEI_DIV));

		// No.02
		// サービス契約番号
		// SVC_KEI_NO,1,,String,10,0
		outMap.set(JBSbatKKIFM019.SVC_KEI_NO, tranMap.getString(JBSbatKKIFM019.SVC_KEI_NO));
		
		// No.03
		// サービスコード
		// SVC_CD,1,,String,2,0
		outMap.set(JBSbatKKIFM019.SVC_CD, tranMap.getString(JBSbatKKIFM019.SVC_CD));
		
		// No.04
		// 料金グループコード
		// PRC_GRP_CD,1,,String,2,0
		outMap.set(JBSbatKKIFM019.PRC_GRP_CD, tranMap.getString(JBSbatKKIFM019.PRC_GRP_CD));
		
		// No.05
		// 料金コースコード
		// PCRS_CD,1,,String,3,0
		outMap.set(JBSbatKKIFM019.PCRS_CD, tranMap.getString(JBSbatKKIFM019.PCRS_CD));
		
		// No.06
		// 料金プランコード
		// PPLAN_CD,1,,String,6,0
		outMap.set(JBSbatKKIFM019.PPLAN_CD, tranMap.getString(JBSbatKKIFM019.PPLAN_CD));
		
		// No.07
		// 対象契約サービスコード
		// TRGT_KEI_SVC_CD,1,,String,4,0
		outMap.set(JBSbatKKIFM019.TRGT_KEI_SVC_CD, tranMap.getString(JBSbatKKIFM019.TRGT_KEI_SVC_CD));
		
		// No.08
		// サービス契約内訳番号
		// SVC_KEI_UCWK_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.SVC_KEI_UCWK_NO, tranMap.getString(JBSbatKKIFM019.SVC_KEI_UCWK_NO));
		
		// No.09
		// 機器提供サービス契約番号
		// KKTK_SVC_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.KKTK_SVC_KEI_NO, tranMap.getString(JBSbatKKIFM019.KKTK_SVC_KEI_NO));
		
		// No.10
		// オプションサービス契約番号
		// OP_SVC_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.OP_SVC_KEI_NO, tranMap.getString(JBSbatKKIFM019.OP_SVC_KEI_NO));
		
		// No.11
		// 請求オプションサービス契約番号
		// SEIOPSVC_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.SEIOPSVC_KEI_NO, tranMap.getString(JBSbatKKIFM019.SEIOPSVC_KEI_NO));
		
		// No.12
		// サブオプションサービス契約番号
		// SBOP_SVC_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.SBOP_SVC_KEI_NO, tranMap.getString(JBSbatKKIFM019.SBOP_SVC_KEI_NO));
		
		// No.13
		// 割引サービス契約番号
		// WRIB_SVC_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.WRIB_SVC_KEI_NO, tranMap.getString(JBSbatKKIFM019.WRIB_SVC_KEI_NO));
		
		// No.14
		// 割引サービス対象契約番号
		// WRIB_SVC_TRGT_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.WRIB_SVC_TRGT_KEI_NO, tranMap.getString(JBSbatKKIFM019.WRIB_SVC_TRGT_KEI_NO));
		
		// No.15
		// 割引サービス単価番号
		// WRIB_SVC_TANKA_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.WRIB_SVC_TANKA_NO, tranMap.getString(JBSbatKKIFM019.WRIB_SVC_TANKA_NO));
		
		// No.16
		// オーナー契約番号
		// OWNR_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.OWNR_KEI_NO, tranMap.getString(JBSbatKKIFM019.OWNR_KEI_NO));
		
		// No.17
		// 提供方式契約番号
		// TK_HOSHIKI_KEI_NO,1,,String,12,0
		outMap.set(JBSbatKKIFM019.TK_HOSHIKI_KEI_NO, tranMap.getString(JBSbatKKIFM019.TK_HOSHIKI_KEI_NO));
		
		// No.18
		// 請求契約番号
		// SEIKY_KEI_NO,1,,String,10,0
		outMap.set(JBSbatKKIFM019.SEIKY_KEI_NO, tranMap.getString(JBSbatKKIFM019.SEIKY_KEI_NO));
		
		// No.19
		// サービス開始年月日
		// SVC_STAYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_STAYMD, tranMap.getString(JBSbatKKIFM019.SVC_STAYMD));
		
		// No.20
		// サービス課金開始年月日
		// SVC_CHRG_STAYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_CHRG_STAYMD, tranMap.getString(JBSbatKKIFM019.SVC_CHRG_STAYMD));
		
		// No.21
		// プラン課金開始年月日
		// PLAN_STAYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.PLAN_STAYMD, tranMap.getString(JBSbatKKIFM019.PLAN_STAYMD));
		
		// No.22
		// プラン課金終了年月日
		// PLAN_ENDYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.PLAN_ENDYMD, tranMap.getString(JBSbatKKIFM019.PLAN_ENDYMD));
		
		// No.23
		// サービス解約年月日
		// SVC_DSL_YMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_DSL_YMD, tranMap.getString(JBSbatKKIFM019.SVC_DSL_YMD));
		
		// No.24
		// サービス解約理由
		// SVC_DLRE_CD,1,,String,2,0
		outMap.set(JBSbatKKIFM019.SVC_DLRE_CD, tranMap.getString(JBSbatKKIFM019.SVC_DLRE_CD));
		
		// No.25
		// 違約金発生コード
		// PNLTY_HASSEI_CD,1,,String,1,0
		outMap.set(JBSbatKKIFM019.PNLTY_HASSEI_CD, tranMap.getString(JBSbatKKIFM019.PNLTY_HASSEI_CD));
		
		// No.26
		// プラン終了種別コード
		// PLAN_END_SBT_CD,1,,String,1,0
		outMap.set(JBSbatKKIFM019.PLAN_END_SBT_CD, tranMap.getString(JBSbatKKIFM019.PLAN_END_SBT_CD));
		
		// No.27
		// サービス回復年月日
		// KAIHK_YMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.KAIHK_YMD, tranMap.getString(JBSbatKKIFM019.KAIHK_YMD));
		
		// No.28
		// 休止中断コード
		// PAUSE_STP_CD,1,,String,2,0
		outMap.set(JBSbatKKIFM019.PAUSE_STP_CD, tranMap.getString(JBSbatKKIFM019.PAUSE_STP_CD));
		
		// No.29
		// サービス休止年月日
		// SVC_PAUSE_YMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_PAUSE_YMD, tranMap.getString(JBSbatKKIFM019.SVC_PAUSE_YMD));
		
		// No.30
		// サービス休止料金適用開始年月日
		// SVC_PAUSE_PRC_TSTAYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_PAUSE_PRC_TSTAYMD, tranMap.getString(JBSbatKKIFM019.SVC_PAUSE_PRC_TSTAYMD));
		
		// No.31
		// サービス休止解除年月日
		// SVC_PAUSE_RLS_YMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_PAUSE_RLS_YMD, tranMap.getString(JBSbatKKIFM019.SVC_PAUSE_RLS_YMD));
		
		// No.32
		// サービスキャンセル年月日
		// SVC_CANCEL_YMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_CANCEL_YMD, tranMap.getString(JBSbatKKIFM019.SVC_CANCEL_YMD));
		
		// No.33
		// サービス終了年月日
		// SVC_ENDYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_ENDYMD, tranMap.getString(JBSbatKKIFM019.SVC_ENDYMD));
		
		// No.34
		// サービス課金終了年月日
		// SVC_CHRG_ENDYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.SVC_CHRG_ENDYMD, tranMap.getString(JBSbatKKIFM019.SVC_CHRG_ENDYMD));
		
		// No.35
		// 異動区分
		// IDO_DIV,1,,String,5,0
		outMap.set(JBSbatKKIFM019.IDO_DIV, tranMap.getString(JBSbatKKIFM019.IDO_DIV));
		
		// No.36
		// 電話番号
		// TELNO,1,,String,11,0
		outMap.set(JBSbatKKIFM019.TELNO, tranMap.getString(JBSbatKKIFM019.TELNO));
		
		// No.37
		// 事業者用契約ＩＤ
		// JIGYOSHA_KEI_ID,1,,String,100,0
		outMap.set(JBSbatKKIFM019.JIGYOSHA_KEI_ID, tranMap.getString(JBSbatKKIFM019.JIGYOSHA_KEI_ID));
		
		// No.38
		// 契約数
		// KEI_CNT,1,,BigDecimal,2,0
		outMap.set(JBSbatKKIFM019.KEI_CNT, tranMap.getBigDecimal(JBSbatKKIFM019.KEI_CNT));
		
		// No.39
		// 容量
		// CAPA,1,,String,8,0
		outMap.set(JBSbatKKIFM019.CAPA, tranMap.getString(JBSbatKKIFM019.CAPA));

		// No.40
		// ？
		// TEIZO_KMK_DIV,1,,String,1,0
		outMap.set(JBSbatKKIFM019.TEIZO_KMK_DIV, tranMap.getString(JBSbatKKIFM019.TEIZO_KMK_DIV));

		// No.41
		// 月中最大契約数
		// MON_MAX_KEI_CNT,1,,BigDecimal,8,0
		outMap.set(JBSbatKKIFM019.MON_MAX_KEI_CNT, tranMap.getBigDecimal(JBSbatKKIFM019.MON_MAX_KEI_CNT));
		
		// No.42
		// 群コード
		// GUN_CD,1,,String,1,0
		outMap.set(JBSbatKKIFM019.GUN_CD, tranMap.getString(JBSbatKKIFM019.GUN_CD));
		
		// No.43
		// 利用不可開始年月日
		// USE_FAIL_STAYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.USE_FAIL_STAYMD, tranMap.getString(JBSbatKKIFM019.USE_FAIL_STAYMD));
		
		// No.44
		// 利用不可終了年月日
		// USE_FAIL_ENDYMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.USE_FAIL_ENDYMD, tranMap.getString(JBSbatKKIFM019.USE_FAIL_ENDYMD));

		// 元のソースでは以下が記載されているが、No.18でセット済
//		// 請求契約番号
//		outMap.set(JBSbatKKIFM019.SEIKY_KEI_NO, tranMap.getString(JBSbatKK_T_KAKINS.SEIKY_KEI_NO));
		
		// No.45
		// 整理番号
		// SEIRI_NO,1,,String,14,0
		outMap.set(JBSbatKKIFM019.SEIRI_NO, tranMap.getString(JBSbatKKIFM019.SEIRI_NO));
		
		// No.46
		// 更新運用年月日日
		// UPD_UNYO_YMD,1,,String,8,0
		outMap.set(JBSbatKKIFM019.UPD_UNYO_YMD, tranMap.getString(JBSbatKKIFM019.UPD_UNYO_YMD));
		
		// No.47
		// 世代登録年月日時分秒
		// GENE_ADD_DTM,1,,String,17,0
		outMap.set(JBSbatKKIFM019.GENE_ADD_DTM, tranMap.getString(JBSbatKKIFM019.GENE_ADD_DTM));
		
		// No.48
		// サービス契約課金開始年月日
		// SVCKEI_SVC_CHRG_STAYMD,1,,String,17,0
		outMap.set(JBSbatKKIFM019.SVCKEI_SVC_CHRG_STAYMD, tranMap.getString(JBSbatKKIFM019.SVCKEI_SVC_CHRG_STAYMD));
		
		// No.49
		// サービス契約課金終了年月日
		// SVCKEI_SVC_CHRG_ENDYMD,1,,String,17,0
		outMap.set(JBSbatKKIFM019.SVCKEI_SVC_CHRG_ENDYMD, tranMap.getString(JBSbatKKIFM019.SVCKEI_SVC_CHRG_ENDYMD));
		
		// No.50
		// 親契約識別コード
		// OYA_KEI_SKBT_CD,1,,String,2,0
		outMap.set(JBSbatKKIFM019.OYA_KEI_SKBT_CD, tranMap.getString(JBSbatKKIFM019.OYA_KEI_SKBT_CD));

		return outMap;
	}
	
//	private void sysoutdebug(String msg) {
//		
//		boolean isOut = true;
//		
//		if (isOut) {
//			System.out.println(msg);
//		}
//	}
}
