/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatAKDBSknChkTsInfEdit
*	ソースファイル名	：JBSbatAKDBSknChkTsInfEdit.java
*	作成者				：富士通　
*	作成日				：2013年06月17日
*＜機能概要＞
*　DB相関チェック対象情報編集部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2013/06/17   富士通		新規作成
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatAKIFM037;
import eo.business.util.file.JBSbatAKIFM050;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatAKDBSknChkTsInfEdit extends JBSbatBusinessService
{
	/** 請求方法コード：1(窓口払い) */
	private static final String WAY_CD_1 = "1";
	/** 請求方法コード：2(預金口座振替) */
	private static final String WAY_CD_2 = "2";
	/** 請求方法コード：3(郵便自動振り込み) */
	private static final String WAY_CD_3 = "3";
	/** 請求方法コード：4(クレジット) */
	private static final String WAY_CD_4 = "4";
	/** 請求方法コード：E(不正パターン) */
	private static final String WAY_CD_ERR = "E";
	
	/** 督促ステータス：15(強制解約予告済み) */
	private static final int TOKUSOKU_STAT_15 = 15;
	/** 口座ステータス：090(有効性NG) */
	private static final String KOZA_STAT_090 = "090";
	/** クレジットカードステータス：190(無効) */
	private static final String CRECARD_STAT_190 = "190";
	/** クレジットカードステータス：100(審査済) */
	private static final String CRECARD_STAT_100 = "100";
	/** フロアリミット越え：有(1) */
	private static final String RIMIT_OVER = "1";
	/** フロアリミット越え：無(0) */
	private static final String RIMIT_SAFE = "0";
	/** オーソリ審査結果コード：NG(1) */
	private static final String AUTH_SKEKKA_CD_NG = "1";

	/** 検証年月 */
	private String opeYm = null;

	/** 検証年月の26日 */
	private String choseiYmd = null;
	
	/** フロアリミット越え有無：有(1) 無(0) */
	private String rimitFlg = null;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		String[] freeItem = super.freeItem.split(";");
		opeYm = freeItem[0];
		choseiYmd = freeItem[1];
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 主処理
	 * @param mastMap　入力電文
	 * @param tranMap　入力電文
	 * @param outputInItem  入力情報
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		if (inMap.getString(JBSbatAKIFM050.RIMIT_SEIKY_KEI_NO).isEmpty()
				|| "".equals(inMap.getString(JBSbatAKIFM050.RIMIT_SEIKY_KEI_NO))) {
			rimitFlg = RIMIT_SAFE;
		} else {
			rimitFlg = RIMIT_OVER;
		}
		
		return getJBSbatOutputItem(inMap);

		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	
	/**
	 * 請求方法コードの予測値を返却します。
	 * 
	 * @param inMap
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getSeikyWayCd(JBSbatServiceInterfaceMap inMap) throws Exception  {
		// 督促ステータス
		String stat = inMap.getString(JBSbatAKIFM050.TOKUSOKU_STAT);
		int stat_ = 0;
		if (stat != null && !"".equals(stat)) {
			stat_ = Integer.parseInt(inMap.getString(JBSbatAKIFM050.TOKUSOKU_STAT));
		}
		
		if (stat_ >= TOKUSOKU_STAT_15
				&& inMap.getString(JBSbatAKIFM050.KSI_MDGT_SEIKY_YOKSI_CD).isEmpty()) {
			return WAY_CD_1;
		}
		
		if (WAY_CD_1.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD))) {
			return WAY_CD_1;
		}

		if ((WAY_CD_2.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD)) || WAY_CD_3.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD)))
			&& KOZA_STAT_090.equals(inMap.getString(JBSbatAKIFM050.KOZA_KOZA_STAT))) {
			return WAY_CD_1;
		}
		
		if ((WAY_CD_2.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD)) || WAY_CD_3.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD)))
				&& compYmd(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_APLY_ADJ_YMD),choseiYmd)) {
				return WAY_CD_1;
		}
		
		if (WAY_CD_2.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD))) {
			return WAY_CD_2;
		}

		if (WAY_CD_3.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD))) {
			return WAY_CD_3;
		}
		
		if (WAY_CD_4.equals(inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD))) {
			// 請求方法コードがクレジットの場合
			if (CRECARD_STAT_190.equals(inMap.getString(JBSbatAKIFM050.CRECARD_STAT))) {
				return WAY_CD_1;
			}
			
			if (CRECARD_STAT_100.equals(inMap.getString(JBSbatAKIFM050.CRECARD_STAT))
					&& compYm(inMap.getString(JBSbatAKIFM050.CRECA_MK_YM),opeYm)) {
				return WAY_CD_1;
			}
			
			if (RIMIT_SAFE.equals(rimitFlg)) {
				return WAY_CD_4;
			}
			
			if (inMap.getString(JBSbatAKIFM050.CREDIT_AUTH_JSK_NO).isEmpty()) {
				return WAY_CD_ERR;
			}
			
			// クレジットオーソリ審査結果コードの1桁目を判定
			String authSkekkaCdTopByte = "";
			
			if (!inMap.getString(JBSbatAKIFM050.AUTH_SKEKKA_CD).isEmpty()
					|| !"".equals(inMap.getString(JBSbatAKIFM050.AUTH_SKEKKA_CD))) {
				// 値が存在する場合は1桁目を取得
				authSkekkaCdTopByte = inMap.getString(JBSbatAKIFM050.AUTH_SKEKKA_CD).substring(0,1);
			}
			
			if (!AUTH_SKEKKA_CD_NG.equals(authSkekkaCdTopByte)) {
				return WAY_CD_4;
			}
			
			if (inMap.getString(JBSbatAKIFM050.SEIKYSHO_SEIKY_YOKSI_CD).isEmpty()) {
				return WAY_CD_1;
			}
			
			return WAY_CD_4;
		}
		
		return null;
	}
	
	/**
	 * ファイルレコード
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception 
	 */
	private JBSbatOutputItem getJBSbatOutputItem(JBSbatServiceInterfaceMap inMap) throws Exception {
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		outMap.set(JBSbatAKIFM037.SEIKY_NO, inMap.getString(JBSbatAKIFM050.SEIKY_NO));
		outMap.set(JBSbatAKIFM037.SEIKY_STAT, inMap.getString(JBSbatAKIFM050.SEIKY_STAT));
		outMap.set(JBSbatAKIFM037.SEIKY_KEI_NO, inMap.getString(JBSbatAKIFM050.SEIKY_KEI_NO));
		outMap.set(JBSbatAKIFM037.SEIKY_YM, inMap.getString(JBSbatAKIFM050.SEIKY_YM));
		outMap.set(JBSbatAKIFM037.SEIKY_SBT_CD, inMap.getString(JBSbatAKIFM050.SEIKY_SBT_CD));
		outMap.set(JBSbatAKIFM037.KEI_SEIKY_WAY_CD, inMap.getString(JBSbatAKIFM050.KEI_SEIKY_WAY_CD));
		outMap.set(JBSbatAKIFM037.PRC_GRP_CD, inMap.getString(JBSbatAKIFM050.PRC_GRP_CD));
		outMap.set(JBSbatAKIFM037.PCRS_CD, inMap.getString(JBSbatAKIFM050.PCRS_CD));
		outMap.set(JBSbatAKIFM037.PRC_SVC_CD, inMap.getString(JBSbatAKIFM050.PRC_SVC_CD));
		outMap.set(JBSbatAKIFM037.PRC_KMK_CD, inMap.getString(JBSbatAKIFM050.PRC_KMK_CD));
		outMap.set(JBSbatAKIFM037.AMNT, inMap.getString(JBSbatAKIFM050.AMNT));
		outMap.set(JBSbatAKIFM037.PRC_TEISE_ADD_FLG, inMap.getString(JBSbatAKIFM050.PRC_TEISE_ADD_FLG));
		outMap.set(JBSbatAKIFM037.SAIKEN_NO, inMap.getString(JBSbatAKIFM050.SAIKEN_NO));
		outMap.set(JBSbatAKIFM037.SAIKEN_YM, inMap.getString(JBSbatAKIFM050.SAIKEN_YM));
		outMap.set(JBSbatAKIFM037.SAIKEN_STAT, inMap.getString(JBSbatAKIFM050.SAIKEN_STAT));
		outMap.set(JBSbatAKIFM037.SEIKYU_PRC_GRP_CD, inMap.getString(JBSbatAKIFM050.SEIKYU_PRC_GRP_CD));
		outMap.set(JBSbatAKIFM037.SEIKYU_PCRS_CD, inMap.getString(JBSbatAKIFM050.SEIKYU_PCRS_CD));
		outMap.set(JBSbatAKIFM037.SEIKYU_PRC_SVC_CD, inMap.getString(JBSbatAKIFM050.SEIKYU_PRC_SVC_CD));
		outMap.set(JBSbatAKIFM037.SEIKYU_PRC_KMK_CD, inMap.getString(JBSbatAKIFM050.SEIKYU_PRC_KMK_CD));
		outMap.set(JBSbatAKIFM037.SEIKYU_AMNT, inMap.getString(JBSbatAKIFM050.SEIKYU_AMNT));
		outMap.set(JBSbatAKIFM037.MISHU_PRC_GRP_CD, inMap.getString(JBSbatAKIFM050.MISHU_PRC_GRP_CD));
		outMap.set(JBSbatAKIFM037.MISHU_PCRS_CD, inMap.getString(JBSbatAKIFM050.MISHU_PCRS_CD));
		outMap.set(JBSbatAKIFM037.MISHU_PRC_SVC_CD, inMap.getString(JBSbatAKIFM050.MISHU_PRC_SVC_CD));
		outMap.set(JBSbatAKIFM037.MISHU_PRC_KMK_CD, inMap.getString(JBSbatAKIFM050.MISHU_PRC_KMK_CD));
		outMap.set(JBSbatAKIFM037.MISHU_AMNT, inMap.getString(JBSbatAKIFM050.MISHU_AMNT));
		outMap.set(JBSbatAKIFM037.TOKUSOKU_NO, inMap.getString(JBSbatAKIFM050.TOKUSOKU_NO));
		outMap.set(JBSbatAKIFM037.TOKUSOKU_STAT, inMap.getString(JBSbatAKIFM050.TOKUSOKU_STAT));
		outMap.set(JBSbatAKIFM037.TOKUSOKU_AMNT, inMap.getString(JBSbatAKIFM050.TOKUSOKU_AMNT));
		outMap.set(JBSbatAKIFM037.TOKUSOKU_STAYMD, inMap.getString(JBSbatAKIFM050.TOKUSOKU_STAYMD));
		outMap.set(JBSbatAKIFM037.TOKUSOKU_ENDYMD, inMap.getString(JBSbatAKIFM050.TOKUSOKU_ENDYMD));
		outMap.set(JBSbatAKIFM037.TOKUSOKU_IDO_YMD, inMap.getString(JBSbatAKIFM050.TOKUSOKU_IDO_YMD));
		outMap.set(JBSbatAKIFM037.SEIKYSHO_SEIKY_YOKSI_CD, inMap.getString(JBSbatAKIFM050.SEIKYSHO_SEIKY_YOKSI_CD));
		outMap.set(JBSbatAKIFM037.SEIKYSHO_SEIKY_YOKSI_FLG, inMap.getString(JBSbatAKIFM050.SEIKYSHO_SEIKY_YOKSI_FLG));
		outMap.set(JBSbatAKIFM037.SEIKYSHO_SEIKY_YOKSI_YMD, inMap.getString(JBSbatAKIFM050.SEIKYSHO_SEIKY_YOKSI_YMD));
		outMap.set(JBSbatAKIFM037.SEIKYSHO_UTWK_SEIKY_YOKSI_CD, inMap.getString(JBSbatAKIFM050.SEIKYSHO_UTWK_SEIKY_YOKSI_CD));
		outMap.set(JBSbatAKIFM037.SEIKYSHO_UTWK_SEIKY_YOKSI_FLG, inMap.getString(JBSbatAKIFM050.SEIKYSHO_UTWK_SEIKY_YOKSI_FLG));
		outMap.set(JBSbatAKIFM037.SEIKYSHO_UTWK_SEIKY_YOKSI_YMD, inMap.getString(JBSbatAKIFM050.SEIKYSHO_UTWK_SEIKY_YOKSI_YMD));
		outMap.set(JBSbatAKIFM037.GSN_SEIKY_YOKSI_CD, inMap.getString(JBSbatAKIFM050.GSN_SEIKY_YOKSI_CD));
		outMap.set(JBSbatAKIFM037.GSN_SEIKY_YOKSI_FLG, inMap.getString(JBSbatAKIFM050.GSN_SEIKY_YOKSI_FLG));
		outMap.set(JBSbatAKIFM037.GSN_SEIKY_YOKSI_YMD, inMap.getString(JBSbatAKIFM050.GSN_SEIKY_YOKSI_YMD));
		outMap.set(JBSbatAKIFM037.KSI_MDGT_SEIKY_YOKSI_CD, inMap.getString(JBSbatAKIFM050.KSI_MDGT_SEIKY_YOKSI_CD));
		outMap.set(JBSbatAKIFM037.KSI_MDGT_SEIKY_YOKSI_FLG, inMap.getString(JBSbatAKIFM050.KSI_MDGT_SEIKY_YOKSI_FLG));
		outMap.set(JBSbatAKIFM037.KSI_MDGT_SEIKY_YOKSI_YMD, inMap.getString(JBSbatAKIFM050.KSI_MDGT_SEIKY_YOKSI_YMD));
		outMap.set(JBSbatAKIFM037.GENE_ADD_DTM, inMap.getString(JBSbatAKIFM050.GENE_ADD_DTM));
		outMap.set(JBSbatAKIFM037.SEIKY_KEI_STAT, inMap.getString(JBSbatAKIFM050.SEIKY_KEI_STAT));
		outMap.set(JBSbatAKIFM037.SYSID, inMap.getString(JBSbatAKIFM050.SYSID));
		outMap.set(JBSbatAKIFM037.MANSION_OWNR_ID, inMap.getString(JBSbatAKIFM050.MANSION_OWNR_ID));
		outMap.set(JBSbatAKIFM037.SEIKY_WAY_CD, inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CD));
		outMap.set(JBSbatAKIFM037.SEIKY_WAY_CHGE_YMD, inMap.getString(JBSbatAKIFM050.SEIKY_WAY_CHGE_YMD));
		outMap.set(JBSbatAKIFM037.SEIKY_WAY_NO_KOZA, inMap.getString(JBSbatAKIFM050.SEIKY_WAY_NO_KOZA));
		outMap.set(JBSbatAKIFM037.SEIKY_WAY_NO_CRECARD, inMap.getString(JBSbatAKIFM050.SEIKY_WAY_NO_CRECARD));
		outMap.set(JBSbatAKIFM037.SEIKY_WAY_APLY_ADJ_YMD, inMap.getString(JBSbatAKIFM050.SEIKY_WAY_APLY_ADJ_YMD));
		outMap.set(JBSbatAKIFM037.SEIKYUS_HAKKO_YH, inMap.getString(JBSbatAKIFM050.SEIKYUS_HAKKO_YH));
		outMap.set(JBSbatAKIFM037.KOZA_GENE_ADD_DTM, inMap.getString(JBSbatAKIFM050.KOZA_GENE_ADD_DTM));
		outMap.set(JBSbatAKIFM037.KOZA_STAT, inMap.getString(JBSbatAKIFM050.KOZA_KOZA_STAT));
		outMap.set(JBSbatAKIFM037.BANK_CD, inMap.getString(JBSbatAKIFM050.KOZA_BANK_CD));
		outMap.set(JBSbatAKIFM037.BANK_SHITEN_CD, inMap.getString(JBSbatAKIFM050.KOZA_BANK_SHITEN_CD));
		outMap.set(JBSbatAKIFM037.KHRI_TTDK_CNCL_YMD, inMap.getString(JBSbatAKIFM050.KOZA_KHRI_TTDK_CNCL_YMD));
		outMap.set(JBSbatAKIFM037.KSHBI_SKEKKA_CD, inMap.getString(JBSbatAKIFM050.KOZA_KSHBI_SKEKKA_CD));
		outMap.set(JBSbatAKIFM037.PAY_JUDGE_REQYMD, inMap.getString(JBSbatAKIFM050.KOZA_PAY_JUDGE_REQYMD));
		outMap.set(JBSbatAKIFM037.PAY_JUDGE_REQ_CL_YMD, inMap.getString(JBSbatAKIFM050.KOZA_PAY_JUDGE_REQ_CL_YMD));
		outMap.set(JBSbatAKIFM037.PAY_SKEKKA_CD, inMap.getString(JBSbatAKIFM050.KOZA_PAY_SKEKKA_CD));
		outMap.set(JBSbatAKIFM037.OUT_KHRI_JUDGE_FIN_YMD, inMap.getString(JBSbatAKIFM050.KOZA_OUT_KHRI_JUDGE_FIN_YMD));
		outMap.set(JBSbatAKIFM037.CRECARD_YK_CFM_YMD, inMap.getString(JBSbatAKIFM050.KOZA_YK_CFM_YMD));
		outMap.set(JBSbatAKIFM037.CRECARD_GENE_ADD_DTM, inMap.getString(JBSbatAKIFM050.CRECARD_GENE_ADD_DTM));
		outMap.set(JBSbatAKIFM037.CRECARD_STAT, inMap.getString(JBSbatAKIFM050.CRECARD_STAT));
		outMap.set(JBSbatAKIFM037.CRECARD_COMP_CD, inMap.getString(JBSbatAKIFM050.CRECARD_COMP_CD));
		outMap.set(JBSbatAKIFM037.CRECARD_NO, inMap.getString(JBSbatAKIFM050.CRECARD_NO));
		outMap.set(JBSbatAKIFM037.CRECARD_YK_KIGEN, inMap.getString(JBSbatAKIFM050.CRECARD_YK_KIGEN));
		outMap.set(JBSbatAKIFM037.CRECARD_KSHBI_SKEKKA_CD, inMap.getString(JBSbatAKIFM050.CRECARD_KSHBI_SKEKKA_CD));
		outMap.set(JBSbatAKIFM037.CRECARD_PAY_SKEKKA_CD, inMap.getString(JBSbatAKIFM050.CRECARD_PAY_SKEKKA_CD));
		outMap.set(JBSbatAKIFM037.AUTHORI_CFM_DTM, inMap.getString(JBSbatAKIFM050.AUTHORI_CFM_DTM));
		outMap.set(JBSbatAKIFM037.YK_YOKYU_YMD, inMap.getString(JBSbatAKIFM050.YK_YOKYU_YMD));
		outMap.set(JBSbatAKIFM037.YK_CFM_RSLT_DIV, inMap.getString(JBSbatAKIFM050.YK_CFM_RSLT_DIV));
		outMap.set(JBSbatAKIFM037.YK_CFM_YMD, inMap.getString(JBSbatAKIFM050.YK_CFM_YMD));
		outMap.set(JBSbatAKIFM037.RE_AUTHORI_CFM_DTM, inMap.getString(JBSbatAKIFM050.RE_AUTHORI_CFM_DTM));
		outMap.set(JBSbatAKIFM037.RE_AUTHORI_RSLT_CD, inMap.getString(JBSbatAKIFM050.RE_AUTHORI_RSLT_CD));
		outMap.set(JBSbatAKIFM037.CRECA_MK_YM, inMap.getString(JBSbatAKIFM050.CRECA_MK_YM));
		outMap.set(JBSbatAKIFM037.CREDIT_AUTH_JSK_NO, inMap.getString(JBSbatAKIFM050.CREDIT_AUTH_JSK_NO));
		outMap.set(JBSbatAKIFM037.CREDIT_AUTH_GENE_ADD_DTM, inMap.getString(JBSbatAKIFM050.CREDIT_AUTH_GENE_ADD_DTM));
		outMap.set(JBSbatAKIFM037.AUTH_TRAN_CD, inMap.getString(JBSbatAKIFM050.AUTH_TRAN_CD));
		outMap.set(JBSbatAKIFM037.SALES_AUTHORI_AMNT, inMap.getString(JBSbatAKIFM050.SALES_AUTHORI_AMNT));
		outMap.set(JBSbatAKIFM037.AUTH_FLG, inMap.getString(JBSbatAKIFM050.AUTH_FLG));
		outMap.set(JBSbatAKIFM037.AUTH_SKEKKA_CD, inMap.getString(JBSbatAKIFM050.AUTH_SKEKKA_CD));
		outMap.set(JBSbatAKIFM037.AUTHORI_YOKYU_CD, inMap.getString(JBSbatAKIFM050.AUTHORI_YOKYU_CD));
		outMap.set(JBSbatAKIFM037.OP_SVC_KEI_NO, inMap.getString(JBSbatAKIFM050.OP_SVC_KEI_NO));
		outMap.set(JBSbatAKIFM037.OP_SVC_GENE_ADD_DTM, inMap.getString(JBSbatAKIFM050.OP_SVC_GENE_ADD_DTM));
		outMap.set(JBSbatAKIFM037.OP_SVC_KEI_STAT, inMap.getString(JBSbatAKIFM050.OP_SVC_KEI_STAT));
		outMap.set(JBSbatAKIFM037.OP_SVC_CD, inMap.getString(JBSbatAKIFM050.OP_SVC_CD));
		outMap.set(JBSbatAKIFM037.OP_SVC_PCRS_CD, inMap.getString(JBSbatAKIFM050.OP_SVC_PCRS_CD));
		outMap.set(JBSbatAKIFM037.PPLAN_CD, inMap.getString(JBSbatAKIFM050.PPLAN_CD));
		outMap.set(JBSbatAKIFM037.SVC_KEI_NO, inMap.getString(JBSbatAKIFM050.SVC_KEI_NO));
		outMap.set(JBSbatAKIFM037.PLAN_STAYMD, inMap.getString(JBSbatAKIFM050.PLAN_STAYMD));
		outMap.set(JBSbatAKIFM037.PLAN_ENDYMD, inMap.getString(JBSbatAKIFM050.PLAN_ENDYMD));
		outMap.set(JBSbatAKIFM037.PLAN_CHRG_STAYMD, inMap.getString(JBSbatAKIFM050.PLAN_CHRG_STAYMD));
		outMap.set(JBSbatAKIFM037.PLAN_CHRG_ENDYMD, inMap.getString(JBSbatAKIFM050.PLAN_CHRG_ENDYMD));
		outMap.set(JBSbatAKIFM037.SVC_STAYMD, inMap.getString(JBSbatAKIFM050.SVC_STAYMD));
		outMap.set(JBSbatAKIFM037.SVC_CHRG_STAYMD, inMap.getString(JBSbatAKIFM050.SVC_CHRG_STAYMD));
		outMap.set(JBSbatAKIFM037.SVC_STP_YMD, inMap.getString(JBSbatAKIFM050.SVC_STP_YMD));
		outMap.set(JBSbatAKIFM037.SVC_STP_RLS_YMD, inMap.getString(JBSbatAKIFM050.SVC_STP_RLS_YMD));
		outMap.set(JBSbatAKIFM037.SVC_ENDYMD, inMap.getString(JBSbatAKIFM050.SVC_ENDYMD));
		outMap.set(JBSbatAKIFM037.SVC_CHRG_ENDYMD, inMap.getString(JBSbatAKIFM050.SVC_CHRG_ENDYMD));
		outMap.set(JBSbatAKIFM037.SVC_DSL_YMD, inMap.getString(JBSbatAKIFM050.SVC_DSL_YMD));
		outMap.set(JBSbatAKIFM037.KAIHK_YMD, inMap.getString(JBSbatAKIFM050.KAIHK_YMD));
		// リミット越え有無
		outMap.set(JBSbatAKIFM037.FLORLMT_ORVER, rimitFlg);
		// 請求方法予想コード
		outMap.set(JBSbatAKIFM037.SEIKY_WAY_CD_YOSO, getSeikyWayCd(inMap));
		
		outMap.setOutFlg(true);
		outputItem.addOutMapList(outMap);
		return outputItem;
	}
	
	/**
	 * 
	 * @param ymd1
	 * @param ymd2
	 * @return ymd1 >= ymd2
	 */
	private boolean compYmd(String ymd1, String ymd2) {
		
		if (("".equals(ymd1) || ymd1.isEmpty()) || ("".equals(ymd2) || ymd2.isEmpty())) {
			return false;
		}
		
		int res = ymd1.compareTo(ymd2);
		
		if(res >= 0) {
			return true;
		}
		
		return false;
	}
	
	/**
	 * 
	 * @param ym1
	 * @param ym2
	 * @return ym1 <= ym2
	 */
	private boolean compYm(String ym1, String ym2) {
		
		if (("".equals(ym1) || ym1.isEmpty()) || ("".equals(ym2) || ym2.isEmpty())) {
			return false;
		}
		
		int res = ym1.compareTo(ym2);
		
		if(res <= 0) {
			return true;
		}
		
		return false;
	}
}
