/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHAthrChkRsltSksi
*	ソースファイル名	：JBSbatCHAthrChkRsltSksi.java
*	作成者				：富士通　
*	作成日				：2011年07月15日
*＜機能概要＞
*　オーソリチェック結果作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/15   富士通		新規作成
*	v4.00		2012/11/16   富士通		名称取得出来なかった場合、異常終了しないよう修正
*	v4.01		2013/01/10   FJ）後藤	売上オーソリ結果コード＝対応要のワーニングを、終了処理1度のみ出力するように修正
*	v4.02		2013/03/22   FJ) 小柴	【内部管理番号-0000302】クレジット会社交換コードの出力に対応
*	v15.00.00	2015/07/28   FJ) 黒田	【OM-2015-0001871】バッチ処理エラー対応
*	v58.00.00	2022/05/17   FJ) 秋末   【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
*	v62.00.00	2022/12/12   FJ) 北川	【ANK-4361-00-00】瑕疵外障害改修対応（２０２３年１月末リリース)
*********************************************************************/
package eo.business.service;

import java.util.HashMap;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatCHIFM066;
import eo.business.util.file.JBSbatCHIFM067;
import eo.business.util.table.JBSbatCH_T_SEIKY;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.business.util.table.JBSbatKK_M_CRECARD_COMP;
import eo.business.util.table.JBSbatKK_T_CREDIT_AUTH_JSK;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.constant.JZM0171Constant;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* オーソリチェック対象データ編集 <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHAthrChkRsltSksi extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(クレジットオーソリ実績)*/
	private static final String D_TBL_NAME_KK_T_CREDIT_AUTH_JSK = "KK_T_CREDIT_AUTH_JSK";

	/** テーブル(クレジットカード会社)*/
	private static final String D_TBL_NAME_KK_M_CRECARD_COMP = "KK_M_CRECARD_COMP";

	/** テーブル(督促)*/
	private static final String D_TBL_NAME_CH_T_TOKUSOKU = "CH_T_TOKUSOKU";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** テーブル(請求)*/
	private static final String D_TBL_NAME_CH_T_SEIKY = "CH_T_SEIKY";

	/** テーブル(請求抑止)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_YOKSI = "KK_T_SEIKY_YOKSI";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_T_CREDIT_AUTH_JSK_CH_SELECT_001 = "CH_SELECT_001";

	//ANK-3846-00-00 MOD START
	///** SQL定義キー(CH_SELECT_003)*/
	//private static final String KK_M_CRECARD_COMP_CH_SELECT_005 = "CH_SELECT_005";
	/** SQL定義キー(CH_SELECT_009)*/
	private static final String KK_M_CRECARD_COMP_CH_SELECT_009 = "CH_SELECT_009";
	//ANK-3846-00-00 MOD END

	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_T_TOKUSOKU_CH_SELECT_002 = "CH_SELECT_002";

	/** SQL定義キー(CH_SELECT_005)*/
	private static final String ZM_M_CD_NM_KANRI_CH_SELECT_005 = "CH_SELECT_005";

	/** SQL定義キー(CH_SELECT_015)*/
	private static final String CH_T_SEIKY_CH_SELECT_015 = "CH_SELECT_015";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_T_SEIKY_YOKSI_CH_SELECT_001 = "CH_SELECT_001";

	/** テーブルアクセスクラス(クレジットオーソリ実績)*/
	private JBSbatSQLAccess db_KK_T_CREDIT_AUTH_JSK = null;

	/** テーブルアクセスクラス(クレジットカード会社)*/
	private JBSbatSQLAccess db_KK_M_CRECARD_COMP = null;

	/** テーブルアクセスクラス(督促)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(請求)*/
	private JBSbatSQLAccess db_CH_T_SEIKY = null;

	/** テーブルアクセスクラス(請求抑止)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_YOKSI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 退避．督促ステータスマップ */
	private HashMap<String, String> tihTokusokuSataMap = null;
	
	/** 退避．売上オーソリ結果コードマップ */
	private HashMap<String, String> tihSalseAuthoriCdMap = null;
	
	/** 退避．オーソリ処理結果コードマップ */
	private HashMap<String, String> tihAuthoriTrnCdMap = null;
	
	/** 退避．売上オーソリ結果コード */
	private String tihSalesAuthoriRsltCd = null;
	
	//ANK-3846-00-00 ADD START
	/** 退避．クレジットカード種別コード */
	 private HashMap<String, String> tihcrecardSbtMap = null;
	 
	/** 退避．クレジットイシュア区分コード */
	 private HashMap<String, String> tihcrdtIssuerMap = null;	 
	//ANK-3846-00-00 ADD END
	
	/** オーソリ審査結果コード上一桁(ＯＫ)*/
	private static final String AUTHORI_KEKKA_1_YUKO = "0";
	
	/** オーソリ審査結果コード上一桁(ＮＧ)*/
	private static final String AUTHORI_KEKKA_1_MUKO = "1";
	
	/** オーソリ審査結果コード上一桁(対応要)*/
	private static final String AUTHORI_KEKKA_1_TAIOYO = "2";
	
	/** オーソリ審査結果コード上一桁(対応要（システム障害）)*/
	private static final String AUTHORI_KEKKA_1_TAIOYO_SYSERR = "9";
	
	/** ワーニング出力フラグ */
	private boolean warnFlg = false;
	
	//ANK-4361-00-00 ADD START
	/** クレジットカード種別_特定カード判別用*/
	private static final String TOKUTEI_CARD_DIST = "0";
	
	/** クレジットイシュア区分国外判別用*/
	private static final String ISS_USER_DIST = "0";
	
	/** フロアリミット超過*/
	private static final String TOKUTEI_FLOA_LIMIT_OVER = "1";
	//ANK-4361-00-00 ADD END
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_CREDIT_AUTH_JSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_CREDIT_AUTH_JSK);
		db_KK_M_CRECARD_COMP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_CRECARD_COMP);
		db_CH_T_TOKUSOKU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_CH_T_SEIKY = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY);
		db_KK_T_SEIKY_YOKSI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_YOKSI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][opeDate=" + super.opeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][freeItem=" + super.freeItem + "]");
		
		// 督促ステータスのマップ作成
		this.tihTokusokuSataMap = new HashMap<String, String>(); 
		makeCdNmKanriInfo(JZM0171Constant.CD00184, this.tihTokusokuSataMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihYokusiMap=" + this.tihTokusokuSataMap.toString() + "]");
		
		// 売上オーソリ結果コードのマップ作成
		this.tihSalseAuthoriCdMap = new HashMap<String, String>(); 
		makeCdNmKanriInfo(JZM0171Constant.CD00990, this.tihSalseAuthoriCdMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihYokusiMap=" + this.tihSalseAuthoriCdMap.toString() + "]");
		
		// オーソリ処理結果コードのマップ作成
		this.tihAuthoriTrnCdMap = new HashMap<String, String>(); 
		makeCdNmKanriInfo(JZM0171Constant.CD00991, this.tihAuthoriTrnCdMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihYokusiMap=" + this.tihAuthoriTrnCdMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
		//ANK-3846-00-00 ADD START
		//クレジットカード種別 のマップ作成
		this.tihcrecardSbtMap = new HashMap<String, String>(); 
		makeCdNmKanriInfo(JZM0171Constant.CD01743, this.tihcrecardSbtMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihYokusiMap=" + this.tihcrecardSbtMap.toString() + "]");

		//クレジットイシュア区分 のマップ作成
		this.tihcrdtIssuerMap = new HashMap<String, String>(); 
		makeCdNmKanriInfo(JZM0171Constant.CD01744, this.tihcrdtIssuerMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][tihYokusiMap=" + this.tihcrdtIssuerMap.toString() + "]");
		//ANK-3846-00-00 ADD END
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * コード名称管理スキーマを検索し、その結果を基にマップを作成します。
	 * 
	 * @param cdSbtCd　請求抑止コード
	 * @param map　空のマップ作成
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void makeCdNmKanriInfo(String cdSbtCd, HashMap<String, String> map) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeCdNmKanriInfo]");
		
		// 条件値
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// コード種別コード
		whereParam.setValue(cdSbtCd);
		// 適用開始年月日
		whereParam.setValue(super.opeDate);
		// 適用終了年月日
		whereParam.setValue(super.opeDate);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeCdNmKanriInfo][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実施
		executeZM_M_CD_NM_KANRI_CH_SELECT_005(whereParam.getList().toArray());
		
		// 結果取得
		JBSbatCommonDBInterface dbMap = db_ZM_M_CD_NM_KANRI.selectNext();

		// 取得した情報分情報を設定します。
		while(null != dbMap)
		{
			// 値を設定（KEY:コード名称管理．コード区分、VALUE:コード名称管理．コード区分名称）
			map.put(dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV),		dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM));
			
			// 次レコード　読み込み
			dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeCdNmKanriInfo]");
	}
	
	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][inMap=" + inMap.getMap().toString() + "]");
		
		String seikyKeiNo = inMap.getString(JBSbatCHIFM067.SEIKY_KEI_NO);
		
		JBSbatOutputItem outputBean = null;
		
		// クレジットオーソリ実績取得
		JBSbatCommonDBInterface creditFirstAuthoriMap = getCreditFirstAuthoriMap(seikyKeiNo);
		
		if (creditFirstAuthoriMap == null)
		{
			// クレジットオーソリ実績情報を取得できなかった場合、主処理を終了する。
			return outputBean;
		}
		
		// オーソリ審査結果コード
		String shinsaKekkaCd = creditFirstAuthoriMap.getString(JBSbatKK_T_CREDIT_AUTH_JSK.AUTH_SKEKKA_CD);
		
		String shoriKekka = JACStrConst.KARA_MOJI;
		if (shinsaKekkaCd != null)
		{
			// 処理結果内容（コード名称）取得
			shoriKekka = getCdMeisho(shinsaKekkaCd, this.tihAuthoriTrnCdMap);
		}
		//ANK-3846-00-00 MOD START
		//// クレジットカード会社名称取得
		//String[] retAry = getCrecardCompNm(inMap.getString(JBSbatCHIFM067.CRECARD_COMP_CD));
		//String[] crecardCompNm = retAry[0];
		String crecardCompNm = getCrecardCompNm(inMap.getString(JBSbatCHIFM067.SHIKOSAKI_COMP_CD));
		//ANK-3846-00-00 MOD END
		//ANK-3846-00-00 MOD START
		//// クレジット会社交換コード取得
		//String crecardCompKokanCd = retAry[1];
		//フロアリミット超過請求情報．仕向先会社コード
		String shikosakiCompCd = (String)inMap.get(JBSbatCHIFM067.SHIKOSAKI_COMP_CD);
		//ANK-3846-00-00 MOD END
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][test:crecardCompNm=" + crecardCompNm + "]");
		// 督促ステータス取得
		String tokusokuStat = getTokusokuStat(seikyKeiNo);
		
		// 督促ステータス名称取得
		String tokusokuStatNm = getCdMeisho(tokusokuStat, this.tihTokusokuSataMap);
		
		// 送付先カナ名取得
		String sohusakiKanaNm = getSohusakiKanaNm(inMap.getString(JBSbatCHIFM067.SEIKY_NO));
		
		// 強制窓口請求抑止情報取得
		String seikyYokushiFlg = getSeikyYokushiFlg(seikyKeiNo);
		
		// 売上オーソリチェック結果判定
		String authoriShinsaKekka = JACStrConst.KARA_MOJI;		
		if (shinsaKekkaCd == null)
		{
			String[] msgParam = new String[]
			                   { JBSbatKK_T_CREDIT_AUTH_JSK.AUTH_SKEKKA_CD, inMap.get(JBSbatCHIFM067.SEIKY_KEI_NO).toString() };
			                   // エラーログを出力する
								super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1200AW, msgParam);
		}
		else
		{
			authoriShinsaKekka = judgeAuthoriShinsaKekka(seikyKeiNo, shinsaKekkaCd);
		};
		
		//ANK-3846-00-00 ADD START
		//決済ID取得
		String kssaiId = creditFirstAuthoriMap.getString(JBSbatKK_T_CREDIT_AUTH_JSK.KSSAI_ID);
		//マーチャント取引IDコード
		String merchantDealId = creditFirstAuthoriMap.getString(JBSbatKK_T_CREDIT_AUTH_JSK.MERCHANT_DEAL_ID);
		//クレジットカード種別コード取得
		String crecardSbtCd = inMap.getString(JBSbatCHIFM067.CRECARD_SBT_CD);
		// クレジットカード種別名取得
		String crecardSbtNm = getCdMeisho(crecardSbtCd, this.tihcrecardSbtMap);
		//クレジットカードイシュア区分取得
		String crdtIssuerDiv = inMap.getString(JBSbatCHIFM067.CRDT_ISSUER_DIV);
		//クレジットイシュア区分名
		String crdtIssuerNm = getCdMeisho(crdtIssuerDiv, this.tihcrdtIssuerMap);
		//ANK-3846-00-00 ADD END
		
		//ANK-3846-00-00 MOD START
		// オーソリチェック結果情報作成
		//outputBean = makeOutputBean(inMap, creditFirstAuthoriMap, shoriKekka, crecardCompNm, tokusokuStat, crecardCompKokanCd
		//		, tokusokuStatNm , sohusakiKanaNm, seikyYokushiFlg, authoriShinsaKekka, shinsaKekkaCd);
		outputBean = makeOutputBean(inMap, creditFirstAuthoriMap, shoriKekka, crecardCompNm, tokusokuStat, shikosakiCompCd
				, tokusokuStatNm , sohusakiKanaNm, seikyYokushiFlg, authoriShinsaKekka, shinsaKekkaCd
				,kssaiId,merchantDealId,crecardSbtNm,crdtIssuerNm
				);
		//ANK-3846-00-00 MOD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * クレジットオーソリ実績情報を取得します。
	 * 
	 * @param seikyKeiNo 請求契約番号
	 * @return クレジットオーソリ実績情報マップ
	 * @throws Exception 
	 */
	private JBSbatCommonDBInterface getCreditFirstAuthoriMap(String seikyKeiNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCreditFirstAuthoriMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCreditFirstAuthoriMap][seikyKeiNo=" + seikyKeiNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 条件設定
		whereParam.setValue(seikyKeiNo);
		whereParam.setValue(JACStrConst.AUTHORI_TRAN_CD_FLOOR_LIMIT);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCreditFirstAuthoriMap][whereParam=" + whereParam.getList().toString() + "]");
		
		// クレジットオーソリ実績検索実行
		executeKK_T_CREDIT_AUTH_JSK_CH_SELECT_001(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface selectMap = db_KK_T_CREDIT_AUTH_JSK.selectNext();
		
		if (selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW
					, new String[] {JBSbatKK_T_CREDIT_AUTH_JSK.TABLE_NAME, whereParam.getList().toString()});
		}
		
		assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCreditFirstAuthoriMap][selectMap = " + selectMap.getMap().toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCreditFirstAuthoriMap]");
		
		return selectMap;
	}

	//ANK-3846-00-00 DEL START
//	/**
//	 * クレジットカード会社名称、クレジット会社交換コード取得
//	 * 
//	 * @param crecardCompCd クレジットカード会社コード
//	 * @return 0:クレジットカード会社名、1:クレジット会社交換コード
//	 * @throws Exception 
//	 */
//	private String[] getCrecardCompNm(String crecardCompCd) throws Exception
//	{
//		
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCrecardCompNm]");
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCrecardCompNm][crecardCompCd=" + crecardCompCd + "]");
//		
//		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
//		
//		// 条件設定
//		whereParam.setValue(crecardCompCd);
//		whereParam.setValue(this.opeDate);
//		whereParam.setValue(this.opeDate);
//		
//		// クレジットカード会社検索実行
//		
//		executeKK_M_CRECARD_COMP_CH_SELECT_005(whereParam.getList().toArray());
//		
//		JBSbatCommonDBInterface selectMap = db_KK_M_CRECARD_COMP.selectNext();
//		
//		String crecardCompNm[] = new String[2];
//		
//		if (selectMap != null)
//		{
//			// クレジット会社名取得
//			crecardCompNm[0] = selectMap.getString(JBSbatKK_M_CRECARD_COMP.CRECARD_COMP_NM);
//			crecardCompNm[1] = selectMap.getString(JBSbatKK_M_CRECARD_COMP.CREDIT_KOKAN_CD);
//		}
//		else
//		{
//			// マスタ未存在エラー
//			String[] msgParam = new String[]
//			{ JBSbatKK_M_CRECARD_COMP.TABLE_NAME, whereParam.getList().toString() };
//			// ログ出力
//			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW, msgParam);
//		}
//		
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCrecardCompNm][crecardCompNm=" + crecardCompNm[0] + "][crecardCompKokanCd=" + crecardCompNm[1] + "]");
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCrecardCompNm]");
//
//		return crecardCompNm;
//	}
	//ANK-3846-00-00 DEL END
	//ANK-3846-00-00 ADD START
	/**
	 * クレジットカード会社名称取得
	 * 
	 * @param crecardCompCd クレジットカード会社コード
	 * @return クレジットカード会社名
	 * @throws Exception 
	 */
	private String getCrecardCompNm(String shikosakiCompCd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCrecardCompNm]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCrecardCompNm][shikosakiCompCd=" + shikosakiCompCd + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 条件設定
		whereParam.setValue(shikosakiCompCd);
		whereParam.setValue(this.opeDate);
		whereParam.setValue(this.opeDate);
		
		// クレジットカード会社検索実行
		executeKK_M_CRECARD_COMP_CH_SELECT_009(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface selectMap = db_KK_M_CRECARD_COMP.selectNext();
		
		String crecardCompNm = "";
		
		if (selectMap != null)
		{
			// クレジット会社名取得
			crecardCompNm = selectMap.getString(JBSbatKK_M_CRECARD_COMP.CRECARD_COMP_NM);
		}
		else
		{
			// マスタ未存在エラー
			String[] msgParam = new String[]
			{ JBSbatKK_M_CRECARD_COMP.TABLE_NAME, whereParam.getList().toString() };
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW, msgParam);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCrecardCompNm][crecardCompNm=" + crecardCompNm + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCrecardCompNm]");

		return crecardCompNm;
	}
	//ANK-3846-00-00 ADD END
	/**
	 * 督促ステータス取得
	 * 
	 * @param seikyKeiNo 請求契約番号
	 * @return 督促ステータス
	 * @throws Exception 
	 */
	private String getTokusokuStat(String seikyKeiNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getTokusokuStat]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getTokusokuStat][seikyKeiNo=" + seikyKeiNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 条件設定
		whereParam.setValue(seikyKeiNo);
		whereParam.setValue(super.opeDate);
		whereParam.setValue(super.opeDate);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTokusokuStat][whereParam=" + whereParam.getList().toString() + "]");
		
		// 督促検索実行
		executeCH_T_TOKUSOKU_CH_SELECT_002(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface selectMap = db_CH_T_TOKUSOKU.selectNext();
		
		String tokusokuStatus = null;
		
		if (selectMap != null)
		{
			// 督促ステータス取得
			tokusokuStatus = selectMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT);
		}
		else
		{
			// 督促ステータス（督促なし）
			tokusokuStatus = JACStrConst.TOKUSOKU_STAT_NASHI;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTokusokuStat][tokusokuStatus=" + tokusokuStatus + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getTokusokuStat]");
		
		return tokusokuStatus;
	}

	/**
	 * 退避マップ情報取得
	 * @param cdKey マップキー
	 * @param map 退避マップ
	 * @return マップの値
	 * @throws Exception 
	 */
	private String getCdMeisho(String cdKey, HashMap<String, String> map) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCdMeisho]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCdMeisho][key:=" + cdKey + "]");
		// 退避マップにKEYが含まれない場合
		if (!map.containsKey(cdKey))
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW, new String[] {JBSbatZM_M_CD_NM_KANRI.TABLE_NAME, cdKey});
			return JACStrConst.KARA_MOJI;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCdMeisho][value:=" + map.containsKey(cdKey) + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCdMeisho]");
		
		return map.get(cdKey);
	}
	
	/**
	 * 送付先カナ名取得
	 * 
	 * @param seikyNo 請求番号
	 * @return 送付先カナ名
	 * @throws Exception 
	 */
	private String getSohusakiKanaNm(String seikyNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSohusakiKanaNm]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSohusakiKanaNm][seikyNo=" + seikyNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 条件設定
		whereParam.setValue(seikyNo);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSohusakiKanaNm][whereParam=" + whereParam.getList().toString() + "]");
		
		// 請求検索実行
		executeCH_T_SEIKY_CH_SELECT_015(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface selectMap = db_CH_T_SEIKY.selectNext();
		
		String sohusakiKanaNm = null;
		
		if (selectMap != null && selectMap.getString(JBSbatCH_T_SEIKY.SHS_KANA) != null)
		{
			// 送付先カナ名取得
			sohusakiKanaNm = selectMap.getString(JBSbatCH_T_SEIKY.SHS_KANA);
		}
		else
		{
			// 送付先カナ名を取得できなかった場合、空文字を設定
			sohusakiKanaNm = JACStrConst.KARA_MOJI;
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1200AW, new String[] {JBSbatCH_T_SEIKY.SHS_KANA, whereParam.getList().toString()});
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSohusakiKanaNm][sohusakiKanaNm=" + sohusakiKanaNm + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSohusakiKanaNm]");
		
		return sohusakiKanaNm;
	}

	/**
	 * 請求抑止フラグ取得
	 * 
	 * @param seikyKeiNo 請求契約番号
	 * @return 請求抑止フラグ
	 * @throws Exception 
	 */
	private String getSeikyYokushiFlg(String seikyKeiNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSeikyYokushiFlg]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSeikyYokushiFlg][seikyKeiNo=" + seikyKeiNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 条件設定
		whereParam.setValue(seikyKeiNo);
		whereParam.setValue(JACStrConst.SEIKY_YOKSI_CD_KYOSEI_MDGC);
		whereParam.setValue(JACStrConst.YOKSI_FLG_ARI);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyYokushiFlg][whereParam=" + whereParam.getList().toString() + "]");
		
		// 請求抑止検索実行
		executeKK_T_SEIKY_YOKSI_CH_SELECT_001(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface selectMap = db_KK_T_SEIKY_YOKSI.selectNext();
		
		String seikyYokushiFlg = null;
		
		if (selectMap != null)
		{
			// 請求抑止フラグを取得できた場合、請求抑止フラグ（抑止あり）
			seikyYokushiFlg = JACStrConst.YOKSI_FLG_ARI;
		}
		else
		{
			// 請求抑止フラグを取得できなかった場合、請求抑止フラグ（抑止なし）を設定
			seikyYokushiFlg = JACStrConst.YOKSI_FLG_NASHI;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyYokushiFlg][seikyYokushiFlg=" + seikyYokushiFlg + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikyYokushiFlg]");
		
		return seikyYokushiFlg;
	}

	/**
	 * 売上オーソリチェック結果判定
	 * 
	 * @param seikyKeiNo 請求契約番号
	 * @param shinsaKekkaCd オーソリ審査結果コード
	 * @return 判定結果
	 * @throws Exception 
	 */
	private String judgeAuthoriShinsaKekka(String seikyKeiNo, String shinsaKekkaCd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][judgeAuthoriShinsaKekka]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][judgeAuthoriShinsaKekka][seikyKeiNo=" + seikyKeiNo + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][judgeAuthoriShinsaKekka][shinsaKekkaCd=" + shinsaKekkaCd + "]");
		
		String hanteiKekka = null;
		
		// オーソリ審査結果コードの上一桁を取得
		String shinsaKekkaCdIni = shinsaKekkaCd.substring(0, 1);
		
		// ＯＫ
		if (AUTHORI_KEKKA_1_YUKO.equals(shinsaKekkaCdIni))
		{
			this.tihSalesAuthoriRsltCd = JACStrConst.SALES_AUTHORI_RSLT_CD_YK;
		}
		// ＮＧ
		else if (AUTHORI_KEKKA_1_MUKO.equals(shinsaKekkaCdIni))
		{
			this.tihSalesAuthoriRsltCd = JACStrConst.SALES_AUTHORI_RSLT_CD_MK;
		}
		// 対応要
		else if (AUTHORI_KEKKA_1_TAIOYO.equals(shinsaKekkaCdIni) || AUTHORI_KEKKA_1_TAIOYO_SYSERR.equals(shinsaKekkaCdIni))
		{
			this.tihSalesAuthoriRsltCd = JACStrConst.SALES_AUTHORI_RSLT_CD_TAIOYO;
			// ワーニング出力フラグ　←　true
			warnFlg = true;

			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][judgeAuthoriShinsaKekka][ ワーニング出力フラグ　←　true]");
		}
		
		// 売上オーソリ結果コードマップ取得
		hanteiKekka = getCdMeisho(this.tihSalesAuthoriRsltCd, this.tihSalseAuthoriCdMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][judgeAuthoriShinsaKekka][hanteiKekka=" + hanteiKekka + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][judgeAuthoriShinsaKekka]");
		
		return hanteiKekka;
	}

	/**
	 * オーソリチェック結果情報作成
	 * 
	 * @param inMap 入力電文
	 * @param creditFirstAuthoriMap クレジット初回オーソリ情報
	 * @param shoriKekka 処理結果内容
	 * @param crecardCompNm クレジット会社コード
	 * @param tokusokuStat 督促ステータス
	 * @param tokusokuStatNm 督促ステータス名
	 * @param sohusakiKanaNm 送付先カナ名
	 * @param seikyYokushiFlg 請求抑止フラグ
	 * @param authoriShinsaKekka オーソリ審査結果
	 * @param shinsaKekkaCd オーソリ審査結果コード
	 * @param kssaiId 決済ID
	 * @param merchantDealId マーチャント取引ID
	 * @param crecardSbtNm クレジット種別名
	 * @param crdtIssuerNm クレジットイシュア名
	 * @return 出力電文
	 * @throws Exception 
	 */
	//ANK-3846-00-00 MOD START
	//private JBSbatOutputItem makeOutputBean(JBSbatServiceInterfaceMap inMap, 
	//		JBSbatCommonDBInterface creditFirstAuthoriMap, String shoriKekka, String crecardCompNm,
	//		 String tokusokuStat, String crecardCompKokanCd, String tokusokuStatNm, String sohusakiKanaNm,
	//		String seikyYokushiFlg, String authoriShinsaKekka, String shinsaKekkaCd) throws Exception
	//		{
	private JBSbatOutputItem makeOutputBean(JBSbatServiceInterfaceMap inMap, 
			JBSbatCommonDBInterface creditFirstAuthoriMap, String shoriKekka, String crecardCompNm,
			 String tokusokuStat, String shikosakiCompCd, String tokusokuStatNm, String sohusakiKanaNm,
			String seikyYokushiFlg, String authoriShinsaKekka, String shinsaKekkaCd,
			String kssaiId,String merchantDealId,String crecardSbtNm,String crdtIssuerNm
			) throws Exception
			{
	//ANK-3846-00-00 MOD END	
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][shoriKekka=" + shoriKekka + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][crecardCompNm=" + crecardCompNm + "]");
		//ANK-3846-00-00 MOD START
		//assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][crecardCompKokanCd=" + crecardCompKokanCd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][shikosakiCompCd=" + shikosakiCompCd + "]");
		//ANK-3846-00-00 MOD END
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][tokusokuStat=" + tokusokuStat + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][tokusokuStatNm=" + tokusokuStatNm + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][sohusakiKanaNm=" + sohusakiKanaNm + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][seikyYokushiFlg=" + seikyYokushiFlg + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][authoriShinsaKekka=" + authoriShinsaKekka + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][shinsaKekkaCd=" + shinsaKekkaCd + "]");
		//ANK-3846-00-00 ADD START
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][kssaiId=" + kssaiId + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][merchantDealId=" + merchantDealId + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][crecardSbtNm=" + crecardSbtNm + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean][crdtIssuerNm=" + crdtIssuerNm + "]");
		//ANK-3846-00-00 ADD END
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		// 請求契約番号
		outmap.setString(JBSbatCHIFM066.SEIKY_KEI_NO, inMap.get(JBSbatCHIFM067.SEIKY_KEI_NO));

		// クレジット会社交換コード←フロアリミット超過請求情報．仕向先会社コード
		//ANK-3846-00-00 MOD START
		//outmap.setString(JBSbatCHIFM066.CRECARD_COMP_KOKAN_CD, crecardCompKokanCd)
		outmap.setString(JBSbatCHIFM066.CRECARD_COMP_KOKAN_CD, shikosakiCompCd);
		//ANK-3846-00-00 MOD END
		
		// クレジット会社コード
		outmap.setString(JBSbatCHIFM066.CRECARD_COMP_CD, inMap.get(JBSbatCHIFM067.CRECARD_COMP_CD));
		// クレジット会社名
		outmap.setString(JBSbatCHIFM066.CRDT_COMP_NM, crecardCompNm);
		// 加盟店番号
		outmap.setString(JBSbatCHIFM066.MEMBSTR_NO_15, inMap.get(JBSbatCHIFM067.MEMBSTR_NO_15));
		// クレジットカード番号
		outmap.setString(JBSbatCHIFM066.CRECARD_NO, inMap.get(JBSbatCHIFM067.CRECARD_NO));
		// 売上オーソリ結果コード
		outmap.setString(JBSbatCHIFM066.SALES_AUTHORI_RSLT_CD, tihSalesAuthoriRsltCd);
		// 売上オーソリチェック結果
		outmap.setString(JBSbatCHIFM066.SALES_AUTHORI_CHK_RSLT, authoriShinsaKekka);
		// 売上オーソリ実施年月日時分秒
		outmap.setString(JBSbatCHIFM066.SALES_AUTHORI_JSSI_DTM, JCCBatCommon.getSysDateTimeStamp());
		// 処理結果コード
		outmap.setString(JBSbatCHIFM066.TRN_RSLT_CD, creditFirstAuthoriMap.getString(JBSbatKK_T_CREDIT_AUTH_JSK.AUTH_SKEKKA_CD));
		// 処理結果内容
		outmap.setString(JBSbatCHIFM066.TRN_RSLT_NAIYO, shoriKekka);
		// オーソリ承認番号
		outmap.setString(JBSbatCHIFM066.AUTHORI_SHONIN_NO, creditFirstAuthoriMap.getString(JBSbatKK_T_CREDIT_AUTH_JSK.AUTHORI_SHONIN_NO));
		// 請求番号
		outmap.setString(JBSbatCHIFM066.SEIKY_NO, inMap.get(JBSbatCHIFM067.SEIKY_NO));
		// 請求年月
		outmap.setString(JBSbatCHIFM066.SEIKY_YM, inMap.get(JBSbatCHIFM067.SEIKY_YM));
		// 請求額
		outmap.setString(JBSbatCHIFM066.SEIKY_AMNT, inMap.get(JBSbatCHIFM067.AMNT));
		// 未納合算料金有無
		outmap.setString(JBSbatCHIFM066.MINO_GSAN_UM, inMap.get(JBSbatCHIFM067.MINO_GSAN_UM_FLG));
		// 督促ステータス
		outmap.setString(JBSbatCHIFM066.TOKUSOKU_STAT, tokusokuStat);
		// 督促ステータス名
		outmap.setString(JBSbatCHIFM066.TOKUSOKU_STAT_NM, tokusokuStatNm);
		// 請求先名（カナ）
		outmap.setString(JBSbatCHIFM066.SEIKY_SAKI_NM_KANA, sohusakiKanaNm);
		// 強制窓口抑止情報
		outmap.setString(JBSbatCHIFM066.KYOSEI_MDGC_YOKSI_INFO, seikyYokushiFlg);
		
		// 変更請求方法コード
		// 請求書データ作成結果コード
		String chgSeikyWayCd 	= JACStrConst.KARA_MOJI;	// 変更請求方法コード
		String seikySksRsltCd 	= JACStrConst.KARA_MOJI;	// 請求書データ作成結果コード
		String yoksiSikySkTgFlg = JACStrConst.KARA_MOJI;	// 抑止請求先一覧出力対象フラグ
		
		//ANK-3846-00-00 ADD START
		//決済ID
		outmap.setString(JBSbatCHIFM066.KSSAI_ID, creditFirstAuthoriMap.getString(JBSbatKK_T_CREDIT_AUTH_JSK.KSSAI_ID));
		//マーチャント取引ID
		outmap.setString(JBSbatCHIFM066.MERCHANT_DEAL_ID, creditFirstAuthoriMap.getString(JBSbatKK_T_CREDIT_AUTH_JSK.MERCHANT_DEAL_ID));
		//クレジットカード種別
		outmap.setString(JBSbatCHIFM066.CRECARD_SBT_CD,inMap.get(JBSbatCHIFM067.CRECARD_SBT_CD));
		//クレジットカード種別名
		outmap.setString(JBSbatCHIFM066.CRECARD_SBT_NM, crecardSbtNm);
		//クレジットイシュア区分
		outmap.setString(JBSbatCHIFM066.CRDT_ISSUER_DIV, inMap.get(JBSbatCHIFM067.CRDT_ISSUER_DIV));
		// クレジットイシュア区分名
		outmap.setString(JBSbatCHIFM066.CRDT_ISSUER_NM, crdtIssuerNm);
		//ANK-3846-00-00 ADD END
		
		// 売上オーソリ結果コード ＝ "1"（ＮＧ）　かつ、強制窓口抑止　＝　"0"（非適用）の場合、"1"(窓口払い)
		if (shinsaKekkaCd != null)
		{
			if(JACStrConst.SALES_AUTHORI_RSLT_CD_MK.equals(shinsaKekkaCd.substring(0, 1))
					&& JACStrConst.KYOSEI_MDGC_TRN_FLG_TRGT_GAI.equals(seikyYokushiFlg))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputBean][変更請求方法コード・請求書データ作成結果コード設定あり]");
				chgSeikyWayCd 	= JACStrConst.SEIKY_MADOGUCHI;
			}
	
			// 売上オーソリ結果コード ＝ "1"（ＮＧ）　かつ、強制窓口抑止　＝　"1"（適用）されている場合、"1"(対象)
			if(JACStrConst.SALES_AUTHORI_RSLT_CD_MK.equals(shinsaKekkaCd.substring(0, 1))
					&& JACStrConst.KYOSEI_MDGC_YOKSI_FLG_TRGT.equals(seikyYokushiFlg))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeOutputBean][抑止請求先一覧出力対象フラグ設定あり]");
				yoksiSikySkTgFlg = JACStrConst.YOKSI_SIKY_SK_TG_FLG_TRGT;
			}
		};
		// 変更請求方法コード
		outmap.setString(JBSbatCHIFM066.CHG_SEIKY_WAY_CD, chgSeikyWayCd);
		// 請求書データ作成結果コード
		outmap.setString(JBSbatCHIFM066.SEIKY_SKS_RSLT_CD, seikySksRsltCd);
		// 抑止請求先一覧出力対象フラグ
		outmap.setString(JBSbatCHIFM066.YOKSI_SIKY_SK_TG_FLG, yoksiSikySkTgFlg);
		
		//ANK-4361-00-00 ADD START
		//対象のカードが特定カードの場合、特定カードフロアリミット超過を"1"で設定する
		if (!(ISS_USER_DIST.equals(inMap.get(JBSbatCHIFM067.CRDT_ISSUER_DIV))) || !(TOKUTEI_CARD_DIST.equals(inMap.get(JBSbatCHIFM067.CRECARD_SBT_CD))))
		{
			outmap.setString(JBSbatCHIFM066.TOKUTEI_FLRLMT_CHOK_FLG, TOKUTEI_FLOA_LIMIT_OVER);
		}
		else
		{
			outmap.setString(JBSbatCHIFM066.TOKUTEI_FLRLMT_CHOK_FLG, "");
		}
		//ANK-4361-00-00 ADD END
		
		// 出力フラグ設定
		outmap.setOutFlg(true);
		
		// 出力共通電文に設定
		outputBean.addOutMapList(outmap);
		
		// 売上オーソリ結果コード初期化
		this.tihSalesAuthoriRsltCd = null;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputBean]");
		
		return outputBean;
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_CREDIT_AUTH_JSK.close();
		db_KK_M_CRECARD_COMP.close();
		db_CH_T_TOKUSOKU.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_CH_T_SEIKY.close();
		db_KK_T_SEIKY_YOKSI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		// ワーニング出力フラグ　＝　true の場合、ログ出力
		if(warnFlg)
		{
// OM-2015-0001871 MOD START
//			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1210AW);
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1510AI);
// OM-2015-0001871 MOD END
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(CH_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求契約番号
	 *		 	オーソリ処理コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_CREDIT_AUTH_JSK_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_CREDIT_AUTH_JSK.selectBySqlDefine(paramList, KK_T_CREDIT_AUTH_JSK_CH_SELECT_001);
	}
	//ANK-3846-00-00 DEL START
//	/**
//	 * SQLKEY(CH_SELECT_005)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	クレジット会社コード
//	 *			クレジットカード会社適用開始年月日
//	 *			クレジットカード会社適用終了年月日
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	
//	private void executeKK_M_CRECARD_COMP_CH_SELECT_005(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
//
//		// DBアクセスを実行します
//		db_KK_M_CRECARD_COMP.selectBySqlDefine(paramList, KK_M_CRECARD_COMP_CH_SELECT_005);
//	}
	//ANK-3846-00-00 DEL END
	//ANK-3846-00-00 ADD START
	/**
	 * SQLKEY(CH_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	クレジット会社コード
	 *			クレジットカード会社適用開始年月日
	 *			クレジットカード会社適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_CRECARD_COMP_CH_SELECT_009(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_M_CRECARD_COMP.selectBySqlDefine(paramList, KK_M_CRECARD_COMP_CH_SELECT_009);
	}
	//ANK-3846-00-00 ADD END

	/**
	 * SQLKEY(CH_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	督促．請求契約番号
	 *		 	督促．督促開始年月日
	 *		 	督促．督促終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_CH_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_CH_T_TOKUSOKU.selectBySqlDefine(paramList, CH_T_TOKUSOKU_CH_SELECT_002);
	}

	/**
	 * SQLKEY(CH_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 *		 	適用開始年月日
	 *		 	適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_CH_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CH_SELECT_005);
	}

	/**
	 * SQLKEY(CH_SELECT_015)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求．請求番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_CH_SELECT_015(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY.selectBySqlDefine(paramList, CH_T_SEIKY_CH_SELECT_015);
	}

	/**
	 * SQLKEY(CH_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求抑止．請求契約番号
	 *		 	請求抑止．請求抑止コード
	 *		 	請求抑止．請求抑止フラグ
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_YOKSI_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_SEIKY_YOKSI.selectBySqlDefine(paramList, KK_T_SEIKY_YOKSI_CH_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
