/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHNyukinDataChshtTran
*	ソースファイル名	：JBSbatCHNyukinDataChshtTran.java
*	作成者				：富士通　
*	作成日				：2011年10月19日
*＜機能概要＞
*　入金登録データ抽出処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/19   富士通		新規作成
*	v5.00.00	2013/09/27   早崎		【OM-2013-0002054,2457】
*	v5.01.00	2013/10/10   早崎		【OM-2013-0003187】
*	v8.00.00	2014/03/17   後藤		【IT2-2014-0000165】請求元会社取得方法修正
*********************************************************************/
package eo.business.service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatShoriIraiUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatCHIFE034;
import eo.business.util.table.JBSbatCH_M_CVSTORE;
import eo.business.util.table.JBSbatCH_M_PRC_KMK_OPUT_NM;
import eo.business.util.table.JBSbatCH_T_PRC_TAIOKRK;
import eo.business.util.table.JBSbatCH_M_SKNKSITKCM;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_M_BANK;
import eo.business.util.table.JBSbatKK_M_CRECARD_COMP;
import eo.business.util.table.JBSbatKK_T_SEIKY_KEI;
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.common.util.JPCFomatString;
import eo.common.util.JPCUtilCommon;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHNyukinDataChshtTran extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(請求契約)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_KEI = "KK_T_SEIKY_KEI";

	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(コード名称管理)*/
	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_M_PRC_KMK_OPUT_NM = "CH_M_PRC_KMK_OPUT_NM";

	/** テーブル(金融機関)*/
	private static final String D_TBL_NAME_KK_M_BANK = "KK_M_BANK";

	/** テーブル(クレジットカード会社)*/
	private static final String D_TBL_NAME_KK_M_CRECARD_COMP = "KK_M_CRECARD_COMP";

	/** テーブル(コンビニエンスストア)*/
	private static final String D_TBL_NAME_CH_M_CVSTORE = "CH_M_CVSTORE";

	/** テーブル(債権回収委託会社)*/
	private static final String D_TBL_NAME_CH_M_SKNKSITKCM = "CH_M_SKNKSITKCM";

	/** SQL定義キー(AC_SELECT_001)*/
	private static final String KK_T_SEIKY_KEI_AC_SELECT_001 = "AC_SELECT_001";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String CK_T_CUST_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_005)*/
	private static final String ZM_M_CD_NM_KANRI_CH_SELECT_005 = "CH_SELECT_005";

	/** SQL定義キー(CH_SELECT_007)*/
	private static final String KK_M_BANK_CH_SELECT_007 = "CH_SELECT_007";

	/** SQL定義キー(CH_SELECT_008)*/
	private static final String KK_M_CRECARD_COMP_CH_SELECT_008 = "CH_SELECT_008";

	/** SQL定義キー(CH_SELECT_004)*/
	private static final String CH_M_CVSTORE_CH_SELECT_004 = "CH_SELECT_004";

	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_M_SKNKSITKCM_CH_SELECT_002 = "CH_SELECT_002";

	/** SQL定義キー(CH_SELECT_005)*/
	private static final String CH_M_PRC_KMK_OPUT_NM_CH_SELECT_005 = "CH_SELECT_005";

	/** テーブルアクセスクラス(請求契約)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI = null;

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(料金項目出力名称)*/
	private JBSbatSQLAccess db_CH_M_PRC_KMK_OPUT_NM = null;

	/** テーブルアクセスクラス(金融機関)*/
	private JBSbatSQLAccess db_KK_M_BANK = null;

	/** テーブルアクセスクラス(クレジットカード会社)*/
	private JBSbatSQLAccess db_KK_M_CRECARD_COMP = null;

	/** テーブルアクセスクラス(コンビニエンスストア)*/
	private JBSbatSQLAccess db_CH_M_CVSTORE = null;

	/** テーブルアクセスクラス(債権回収委託会社)*/
	private JBSbatSQLAccess db_CH_M_SKNKSITKCM = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 取引先名マップ */
	private HashMap<String, String> trhkSkNmMap = null;

	/** 請求元会社名マップ */
	private HashMap<String, String> seikyMtCompNmMap = null;

	/** 入金経路名マップ */
	private HashMap<String, String> nyukinRouteNmMap = null;

	/** 収納機関名マップ */
	private HashMap<String, String> shunoKikanNmMap = null;

	/** 金融機関名マップ */
	private HashMap<String, ArrayList<String>> bankNmMap = null;

	/** クレジット会社名マップ */
	private HashMap<String, ArrayList<String>> creditCmpNmMap = null;

	/** コンビニ名マップ */
	private HashMap<String, String> cvsNmMap = null;

	/** 自社組織名マップ */
	private HashMap<String, String> orgNmMap = null;

	/** 債権委託会社名マップ */
	private HashMap<String, String> sknItkCmpNmMap = null;

	/** 電子ファイル情報リスト */
	private ArrayList<ArrayList<String>> efileInfoList = null;
	
	/** 退避.電子ファイル管理番号セット */
	private HashSet<String> bkEfileKanriNoSet = null;
	
	/** 退避.料金内訳名称マップ */
	private HashMap<String, String> bkPrcUcwkNmMap = null;

	/** 電子ファイル管理番号**/
	private String denshifileNo = null;

	/** SEQ */
	private int seqNum = 0;
	
	/** 文字セット(win31j, ms932) */
	public static final String CHAR_SET_WIN31J = "Windows-31J";

	/** 処理区分 */
	private static final String SYR_KBN        = "SYR_KBN";

	/** 処理区分名 */
	private static final String SYR_KBN_NM     = "SYR_KBN_NM";

	/** 改行文字 */
	private static final String LINE_SEP = "line.separator";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SEIKY_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_CH_M_PRC_KMK_OPUT_NM = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_KMK_OPUT_NM);
		db_KK_M_BANK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_BANK);
		db_KK_M_CRECARD_COMP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_CRECARD_COMP);
		db_CH_M_CVSTORE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_CVSTORE);
		db_CH_M_SKNKSITKCM = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_SKNKSITKCM);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][opeDate=" + super.opeDate + "]");

		// 取引先名マップを作成する
		this.trhkSkNmMap = new HashMap<String, String>();
		getCdNmMap(JZM0171Constant.CD00669, this.trhkSkNmMap);
		
		// 請求元会社名マップを作成する
		this.seikyMtCompNmMap = new HashMap<String, String>();
		getCdNmMap(JZM0171Constant.CD01318, this.seikyMtCompNmMap);
		
		// 入金経路名マップを作成する
		this.nyukinRouteNmMap = new HashMap<String, String>();
		getCdNmMap(JZM0171Constant.CD00176, this.nyukinRouteNmMap);
		
		// 収納機関名マップを作成する
		this.shunoKikanNmMap = new HashMap<String, String>();
		getCdNmMap(JZM0171Constant.CD00911, this.shunoKikanNmMap);
		
		// 自社組織名マップを作成する
		this.orgNmMap = new HashMap<String, String>();
		getCdNmMap(JZM0171Constant.CD01329, this.orgNmMap);
		
		// 金融機関名マップを作成する
		this.bankNmMap = new HashMap<String, ArrayList<String>>();
		getBankNmMap();
		
		// クレジット会社名マップを作成する
		this.creditCmpNmMap = new HashMap<String, ArrayList<String>>();
		getCreditCmpNmMap();
		
		// コンビニ名マップを作成する
		this.cvsNmMap = new HashMap<String, String>();
		getCvsNmMap();
		
		// 債権委託会社名マップを作成する
		this.sknItkCmpNmMap = new HashMap<String, String>();
		getSknItkCmpNmMap();
		
		// 退避.電子ファイル管理番号セットを初期化する
		this.bkEfileKanriNoSet = new HashSet<String>();
	
		// 退避.料金内訳名称マップを初期化する
		this.bkPrcUcwkNmMap = new HashMap<String, String>();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * コード名称管理より該当の名称マップを作成します。
	 * @param  cdSbtCd   コード種別コード
	 * @param  cdNmMap   名称マップ格納先
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void getCdNmMap(String cdSbtCd, HashMap<String, String> cdNmMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCdNmMap]");

		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(cdSbtCd);				// コード種別コード
		paramList.setValue(super.opeDate);			// 適用開始年月日
		paramList.setValue(super.opeDate);			// 適用終了年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCdNmMap][paramList=" + paramList.getList().toString() + "]");

		// SQL実行
		executeZM_M_CD_NM_KANRI_CH_SELECT_005(paramList.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_ZM_M_CD_NM_KANRI.selectNext();

		// 取得結果がない場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatZM_M_CD_NM_KANRI.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}

		// 結果をマップに設定
		while(dbMap != null)
		{
			// コード区分
			String cdDiv = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV);

			// コード区分名
			String cdDivNm = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
			
			// コード名称マップ
			// Key:コード区分 Value:コード区分名
			cdNmMap.put(cdDiv, cdDivNm);
			
			// 次レコードを取得
			dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		}
		
		assert cdNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCdNmMap][cdNmMap=" + cdNmMap.toString() + "]") : true;

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCdNmMap]");
		
		return;
	}
	
	/**
	 * 金融機関マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getBankNmMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getBankNmMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(super.opeDate);		// 予約適用年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getBankNmMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeKK_M_BANK_CH_SELECT_007(paramList.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_KK_M_BANK.selectNext();
		
		// 取得結果がない場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatKK_M_BANK.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		// 結果をマップに設定
		while(dbMap != null)
		{
			// 金融機関コード + 金融機関支店コード 
			StringBuffer mapKey = new StringBuffer();
			mapKey.append(dbMap.getString(JBSbatKK_M_BANK.BANK_CD));
			mapKey.append(dbMap.getString(JBSbatKK_M_BANK.BANK_SHITEN_CD));
			
			
			// 金融機関名
			String bankNm = dbMap.getString(JBSbatKK_M_BANK.BANK_NM);
			
			if(null == bankNm)
			{
				bankNm = JACStrConst.KARA_MOJI;
			}
			
			// 金融機関支店名
			String bankShitenNm = dbMap.getString(JBSbatKK_M_BANK.BANK_SHITEN_NM);
			
			if(null == bankShitenNm)
			{
				bankShitenNm = JACStrConst.KARA_MOJI;
			}
			
			ArrayList<String> tmpValueList = new ArrayList<String>();
			tmpValueList.add(bankNm);
			tmpValueList.add(bankShitenNm);
		
			// 金融機関名マップ 
			// Key:金融機関コード+金融機関支店コード Value:[0]金融機関名,[1]金融機関支店名
			this.bankNmMap.put(mapKey.toString(), tmpValueList);
			
			// 次レコードを取得
			dbMap = db_KK_M_BANK.selectNext();
		}
		assert this.bankNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getBankNmMap][bankNmMap=" + this.bankNmMap.toString() + "]") : true;

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getBankNmMap]");
		
		return;
	}
	
	/**
	 * クレジット会社名マップを作成します。
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getCreditCmpNmMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCreditCmpNmMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(super.opeDate);							// クレジット会社適用開始年月日
		paramList.setValue(super.opeDate);							// クレジット会社適用終了年月日
		paramList.setValue(super.opeDate);							// 予約適用年月日
		paramList.setValue(JACStrConst.CRECARD_JIGYO_CD_FTTH);		// クレジットカード事業コード
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCreditCmpNmMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeKK_M_CRECARD_COMP_CH_SELECT_008(paramList.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_KK_M_CRECARD_COMP.selectNext();
		
		// 取得結果がない場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatKK_M_CRECARD_COMP.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		// 結果をマップに設定
		while(dbMap != null)
		{
			// クレジットカード会社コード 
			String creditCompCd = dbMap.getString(JBSbatKK_M_CRECARD_COMP.CRECARD_COMP_CD);
			
			// クレジットカード会社名
			String creCardCompNm = dbMap.getString(JBSbatKK_M_CRECARD_COMP.CRECARD_COMP_NM);
			
			if(null == creCardCompNm)
			{
				creCardCompNm = JACStrConst.KARA_MOJI;
			}
			
			// クレジット交換コード 
			String creditKokanCd = dbMap.getString(JBSbatKK_M_CRECARD_COMP.CREDIT_KOKAN_CD);
			
			if(null == creditKokanCd)
			{
				creditKokanCd = JACStrConst.KARA_MOJI;
			}
			
			ArrayList<String> tmpValueList = new ArrayList<String>();
			tmpValueList.add(creditCompCd);
			tmpValueList.add(creditKokanCd);
			
			// クレジット会社名マップ
			// Key:クレジットカード会社コード  Value:[0]クレジットカード会社名,[1]クレジット交換コード 
			this.creditCmpNmMap.put(creditCompCd, tmpValueList);
			
			// 次レコードを取得
			dbMap = db_KK_M_CRECARD_COMP.selectNext();
		}
		assert this.creditCmpNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCreditCmpNmMap][creditCmpNmMap=" + this.creditCmpNmMap.toString() + "]") : true;

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCreditCmpNmMap]");
		
		return;
	}

	/**
	 * コンビニ名マップを作成します。
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getCvsNmMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCvsNmMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(super.opeDate);							// コンビニエンスストア適用開始年月日
		paramList.setValue(super.opeDate);							// コンビニエンスストア適用終了年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCvsNmMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_CVSTORE_CH_SELECT_004(paramList.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_CH_M_CVSTORE.selectNext();
		
		// 取得結果がない場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatCH_M_CVSTORE.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		// 結果をマップに設定
		while(dbMap != null)
		{
			// コンビニエンスストアコード
			String cvsCd = dbMap.getString(JBSbatCH_M_CVSTORE.CVSTORE_CD);
			
			// コンビニエンスストア会社名
			String cvsNm = dbMap.getString(JBSbatCH_M_CVSTORE.CVSTORE_COMP_NM);
			
			// コンビニ名マップ 
			// Key:コンビニエンスストアコード Value:コンビニエンスストア会社名
			this.cvsNmMap.put(cvsCd, cvsNm);
			
			// 次レコードを取得
			dbMap = db_CH_M_CVSTORE.selectNext();
		}
		assert this.cvsNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCvsNmMap][cvsNmMap=" + this.cvsNmMap.toString() + "]") : true;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCvsNmMap]");
		
		return;
	}
	
	/**
	 * 債権委託会社名マップを作成します。
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getSknItkCmpNmMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSknItkCmpNmMap]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(super.opeDate);							// 債権委託会社適用開始年月日
		paramList.setValue(super.opeDate);							// 債権委託会社適用終了年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSknItkCmpNmMap][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_SKNKSITKCM_CH_SELECT_002(paramList.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_CH_M_SKNKSITKCM.selectNext();
		
		// 取得結果がない場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatCH_M_SKNKSITKCM.TABLE_NAME, paramList.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		// 結果をマップに設定
		while(dbMap != null)
		{
			// 債権回収委託会社コード 
			String sknksitkcmCd = dbMap.getString(JBSbatCH_M_SKNKSITKCM.SKNKSITKCM_CD);
			
			// 債権回収委託会社名
			String sknksitkcmNm = dbMap.getString(JBSbatCH_M_SKNKSITKCM.SKNKSITKCM_NM);
			
			// 債権委託会社名マップ 
			// Key:債権回収委託会社コード Value:債権回収委託会社名
			this.sknItkCmpNmMap.put(sknksitkcmCd, sknksitkcmNm);
			
			dbMap = db_CH_M_SKNKSITKCM.selectNext();
		}
		assert this.sknItkCmpNmMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSknItkCmpNmMap][sknItkCmpNmMap=" + this.sknItkCmpNmMap.toString() + "]") : true;

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSknItkCmpNmMap]");
		
		return;
	}
	
	/**
	 * 主処理
	 * @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() + "]");

	// 出力情報
	JBSbatOutputItem outputItem = new JBSbatOutputItem();

	// 電子ファイル管理番号
	this.denshifileNo = inMap.getString(JBSbatCH_T_PRC_TAIOKRK.EFILE_KANRI_NO);

	// 電子ファイル情報リストを初期化する
	this.efileInfoList =  new ArrayList<ArrayList<String>>();

	// 電子ファイル管理番号退避セットに未存在の場合
	if(!this.bkEfileKanriNoSet.contains(denshifileNo))
	{
		// 電子ファイル管理番号を電子ファイル管理番号退避セットに格納する
		this.bkEfileKanriNoSet.add(denshifileNo);
	
		// 電子ファイル管理より登録されている電子ファイル情報を取得する
		getEfileInfo(JACbatShoriIraiUtil.getDenshiFileByte(commonItem, denshifileNo));
		
		// SEQ + 1
		this.seqNum++;
		
		// 入金登録結果リストを作成します
		outputItem = makeNyukinAddRsltInfo(inMap);
	}
	
	assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
	
	return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 *  電子ファイル情報を取得します
	 *  @param efileByte 電子ファイル情報
	 *  
	 *  @throws IOException, Exception 業務サービス内で発生した例外全般 
	 */
	private void getEfileInfo(byte[] efileByte) throws IOException, Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][outPutFileMake]");
		
		if(null != efileByte)
		{
		
			// 電子ファイル
			byte[] eBinaryFile = efileByte;
			
			// 電子ファイルの中身を取得する
			String dlydString = new String(eBinaryFile, CHAR_SET_WIN31J);
			
			// 取得文字列を改行コードで分割
			String[] recordList = dlydString.split(System.getProperty(LINE_SEP));
			
			// 取得配列をコンマ区切りで取得
			for(int i = 0; i < recordList.length; i++)
			{
				ArrayList<String> kmkList = new ArrayList<String>();
				
				String[] tempList = recordList[i].split(JACStrConst.COMMA, -1);
				
				for(int j = 0; j < tempList.length; j++)
				{
					kmkList.add(tempList[j]);
				}
				
				// 電子ファイル情報リストに取得情報を格納する
				this.efileInfoList.add(kmkList);
			}
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][outPutFileMake]");
	}

	/**
	 * 入金登録結果リストを作成
	 * @param  inMap　入力電文
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatOutputItem makeNyukinAddRsltInfo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeNyukinAddRsltInfo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeNyukinAddRsltInfo][inMap=" + inMap.getMap().toString() + "]");

		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		// 投入SEQ枝番
		int tonyuSeq = 1;
		
		// 共通情報出力済みフラグ
		boolean commonInfoOutZmiFlg = false;
		
		// 入金登録結果リストを作成を作成する
		for(int i = 0; i < this.efileInfoList.size(); i++)
		{
			JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
			
			ArrayList<String> tempOutInfoList = this.efileInfoList.get(i);
			
			// 処理区分
			String syrKbn = inMap.getString(SYR_KBN);
			
			// 共通情報未出力の場合
			if(!commonInfoOutZmiFlg)
			{
				// 01. 登録者
				outmap.setString(JBSbatCHIFE034.ADD_USER,			inMap.getString(JBSbatCH_T_PRC_TAIOKRK.PRC_TAIO_USER_ID));
				
				// 02. 登録時刻 HH:MM:SS
				outmap.setString(JBSbatCHIFE034.ADD_DTM,			makeTaioHMS(inMap.getString(JBSbatCH_T_PRC_TAIOKRK.TAIO_DTM)));
				
				// 03. SEQ
				outmap.setString(JBSbatCHIFE034.SEQ,				this.seqNum);
				
				// 05. 処理区分
				outmap.setString(JBSbatCHIFE034.TRN_DIV,			syrKbn);
				
				// 06. 処理区分名
				outmap.setString(JBSbatCHIFE034.TRN_DIV_NM,			inMap.getString(SYR_KBN_NM));
			}
			// 共通情報出力済の場合
			else
			{
				// 01. 登録者
				outmap.setString(JBSbatCHIFE034.ADD_USER,			JACStrConst.KARA_MOJI);
				
				// 02. 登録時刻 HH:MM:SS
				outmap.setString(JBSbatCHIFE034.ADD_DTM,			JACStrConst.KARA_MOJI);
				
				// 03. SEQ
				outmap.setString(JBSbatCHIFE034.SEQ,				JACStrConst.KARA_MOJI);
				
				// 05. 処理区分
				outmap.setString(JBSbatCHIFE034.TRN_DIV,			JACStrConst.KARA_MOJI);
				
				// 06. 処理区分名
				outmap.setString(JBSbatCHIFE034.TRN_DIV_NM,			JACStrConst.KARA_MOJI);

			}
			
			// 04. 投入SEQ枝番 
			outmap.setString(JBSbatCHIFE034.TONYU_SEQ,			tonyuSeq++);
			
			// 07. 請求契約番号
			outmap.setString(JBSbatCHIFE034.SEIKY_KEI_NO,		tempOutInfoList.get(0));
			
			// 08. 請求先名
			outmap.setString(JBSbatCHIFE034.SEIKY_SAKI_NM,		getSeikySkNm(tempOutInfoList.get(0)));
			
			// 09. 請求月     (yyyy/mm)
			outmap.setString(JBSbatCHIFE034.SEIKY_MON,			JPCUtilCommon.formatYears(tempOutInfoList.get(1)));
			
			// 10. サービス契約番号
			outmap.setString(JBSbatCHIFE034.SVC_KEI_NO,			tempOutInfoList.get(2));
			
			// 11. 取引先コード
			String trhkSkiCd = getTrhkSkiCd(tempOutInfoList.get(2));
			outmap.setString(JBSbatCHIFE034.DEAL_CD,			trhkSkiCd);
			
			// 12. 取引先名
			if(null != trhkSkiCd && !JACStrConst.KARA_MOJI.equals(trhkSkiCd))
			{
				if(this.trhkSkNmMap.containsKey(trhkSkiCd.substring(3, 6)))
				{
					outmap.setString(JBSbatCHIFE034.DEAL_NM,		this.trhkSkNmMap.get(trhkSkiCd.substring(3, 6)));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.DEAL_NM,		JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatZM_M_CD_NM_KANRI.TABLE_NAME
							, JZM0171Constant.CD00669});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.DEAL_NM,		JACStrConst.KARA_MOJI);
			}
			
			// 13. 請求元会社
			String prcKmkCd = tempOutInfoList.get(10);
			if(null != prcKmkCd && !JACStrConst.KARA_MOJI.equals(prcKmkCd))
			{
				// "0" + 料金項目コードの2桁目
				String prcUcwkCd = "0".concat(prcKmkCd.substring(1, 2));
				
				outmap.setString(JBSbatCHIFE034.SEIKY_MT_COMP,		prcUcwkCd);
				
				// 14. 請求元会社名
				if(this.seikyMtCompNmMap.containsKey(prcUcwkCd))
				{
					outmap.setString(JBSbatCHIFE034.SEIKY_MT_COMP_NM,	this.seikyMtCompNmMap.get(prcUcwkCd));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.SEIKY_MT_COMP_NM,	JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatZM_M_CD_NM_KANRI.TABLE_NAME
							, JZM0171Constant.CD01318});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.SEIKY_MT_COMP,		JACStrConst.KARA_MOJI);
				outmap.setString(JBSbatCHIFE034.SEIKY_MT_COMP_NM,	JACStrConst.KARA_MOJI);
			}
			
			// 15. 領収日     (yyyy/MM/dd)
			outmap.setString(JBSbatCHIFE034.RECEIPT_DAY,		JPCUtilCommon.formatDate(tempOutInfoList.get(3)));
			
			// 16. 入金処理日 (yyyy/MM/dd)
			outmap.setString(JBSbatCHIFE034.NYUKIN_TRN_DAY,		JPCUtilCommon.formatDate(tempOutInfoList.get(4)));
			
			// 17. 収納日     (yyyy/MM/dd)
			outmap.setString(JBSbatCHIFE034.SHUNO_DAY,			JPCUtilCommon.formatDate(tempOutInfoList.get(5)));
			
			// 18. 入金経路
			String nyukinRouteCd = tempOutInfoList.get(6);
			outmap.setString(JBSbatCHIFE034.NKIN_ROUTE,			nyukinRouteCd);
			
			// 19. 入金経路名
			if(null != nyukinRouteCd && !JACStrConst.KARA_MOJI.equals(nyukinRouteCd))
			{
				if(this.nyukinRouteNmMap.containsKey(nyukinRouteCd))
				{
					outmap.setString(JBSbatCHIFE034.NKIN_ROUTE_NM,		this.nyukinRouteNmMap.get(nyukinRouteCd));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.NKIN_ROUTE_NM,		JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatZM_M_CD_NM_KANRI.TABLE_NAME
							, JZM0171Constant.CD00176});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.NKIN_ROUTE_NM,		JACStrConst.KARA_MOJI);
			}
			
			// 20. 料金内訳コード
			outmap.setString(JBSbatCHIFE034.PRC_UCWK_CD,		prcKmkCd);
			
			// 21. 料金内訳名称
			String prcGrpCd = tempOutInfoList.get(7);
			String pcrcCd   = tempOutInfoList.get(8);
			String prcSvcCd = tempOutInfoList.get(9);
			
			if(!JACStrConst.PRC_GRP_CD_SP.equals(prcGrpCd)
				&& !JACStrConst.PCRS_CD_SP.equals(pcrcCd)
				&& !JACStrConst.PRC_SVC_CD_SP.equals(prcSvcCd)
				&& !JACStrConst.PRC_KMK_CD_SP.equals(prcKmkCd))
			{
				outmap.setString(JBSbatCHIFE034.PRC_UCWK_NM,		getPrcUcwkNm(prcGrpCd, pcrcCd, prcSvcCd, prcKmkCd));
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.PRC_UCWK_NM,		JACStrConst.KARA_MOJI);
			}
			
			// 22. 収納機関コード
			String shunoKikanCd = tempOutInfoList.get(11);
			outmap.setString(JBSbatCHIFE034.SHUNOKIKAN_CD,		shunoKikanCd);
			
			// 23. 収納機関名
			if(null != shunoKikanCd && !JACStrConst.KARA_MOJI.equals(shunoKikanCd))
			{
				if(this.shunoKikanNmMap.containsKey(shunoKikanCd))
				{
					outmap.setString(JBSbatCHIFE034.SHUNOKIKAN_NM,		this.shunoKikanNmMap.get(shunoKikanCd));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.SHUNOKIKAN_NM,		JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatZM_M_CD_NM_KANRI.TABLE_NAME
							, JZM0171Constant.CD00911});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.SHUNOKIKAN_NM,		JACStrConst.KARA_MOJI);
			}
			
			// 24. 入金額 (カンマ区切り)
			outmap.setString(JBSbatCHIFE034.NYUKIN_AMNT,		JPCFomatString.formatNumber(tempOutInfoList.get(12)));
			
			// 25. 充当額 (カンマ区切り)
			outmap.setString(JBSbatCHIFE034.JUTO_AMNT,			JPCFomatString.formatNumber(tempOutInfoList.get(13)));
		
			// 26. 預り金 (カンマ区切り)
			outmap.setString(JBSbatCHIFE034.DPSIT,				JPCFomatString.formatNumber(tempOutInfoList.get(14)));
			
			// 27. 金融機関コード
			String bankCd = tempOutInfoList.get(15);
			outmap.setString(JBSbatCHIFE034.BANK_CD,			bankCd);
			
			// 28. 金融機関名
			// 29. 店舗コード
			// 30. 店舗名
			String bankShitenCd = tempOutInfoList.get(16);
			
			if(!JACStrConst.BANK_CD_YUBIN.equals(bankCd))
			{
				outmap.setString(JBSbatCHIFE034.TEN_CD,				bankShitenCd);
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.TEN_CD,				JACStrConst.KARA_MOJI);
			}
			
			StringBuffer mapKey = new StringBuffer();
			mapKey.append(bankCd);
			mapKey.append(bankShitenCd);
			
			if(null != mapKey.toString() && !JACStrConst.KARA_MOJI.equals(mapKey.toString()))
			{
				if(this.bankNmMap.containsKey(mapKey.toString()))
				{
					ArrayList<String> tempList = new ArrayList<String>();
					tempList = (this.bankNmMap.get(mapKey.toString()));

					outmap.setString(JBSbatCHIFE034.BANK_NM,		tempList.get(0));
					outmap.setString(JBSbatCHIFE034.TEN_NM,			tempList.get(1));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.BANK_NM,		JACStrConst.KARA_MOJI);
					outmap.setString(JBSbatCHIFE034.TEN_NM,			JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatKK_M_BANK.TABLE_NAME
							, mapKey.toString()});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.BANK_NM,		JACStrConst.KARA_MOJI);
				outmap.setString(JBSbatCHIFE034.TEN_NM,			JACStrConst.KARA_MOJI);
			}
			
			// 31. クレジット会社コード
			String creditCdCd = tempOutInfoList.get(17);
			outmap.setString(JBSbatCHIFE034.CRDT_COMP_CD,			creditCdCd);
			
			// 32. クレジット会社名
			// 33. クレジット交換コード
			if(null != creditCdCd && !JACStrConst.KARA_MOJI.equals(creditCdCd))
			{
				if(this.creditCmpNmMap.containsKey(creditCdCd))
				{
					ArrayList<String> tempList = new ArrayList<String>();
					tempList = (this.creditCmpNmMap.get(creditCdCd));
					
					outmap.setString(JBSbatCHIFE034.CRDT_COMP_NM,		tempList.get(0));
					outmap.setString(JBSbatCHIFE034.CRDT_KOKAN_CD,		tempList.get(1));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.CRDT_COMP_NM,		JACStrConst.KARA_MOJI);
					outmap.setString(JBSbatCHIFE034.CRDT_KOKAN_CD,		JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatKK_M_CRECARD_COMP.TABLE_NAME
							, creditCdCd});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.CRDT_COMP_NM,		JACStrConst.KARA_MOJI);
				outmap.setString(JBSbatCHIFE034.CRDT_KOKAN_CD,		JACStrConst.KARA_MOJI);
			}
			
			// 34. コンビニコード
			String cvsCd = tempOutInfoList.get(18);
			outmap.setString(JBSbatCHIFE034.CVS_CD,					cvsCd);
			
			// 35. コンビニ名
			if(null != cvsCd && !JACStrConst.KARA_MOJI.equals(cvsCd))
			{
				if(this.cvsNmMap.containsKey(cvsCd))
				{
					outmap.setString(JBSbatCHIFE034.CVS_NM,			this.cvsNmMap.get(cvsCd));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.CVS_NM,			JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatCH_M_CVSTORE.TABLE_NAME
							, cvsCd});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.CVS_NM,			JACStrConst.KARA_MOJI);
			}
			
			// 36. 自社組織コード
			String orgCd = tempOutInfoList.get(19);
			outmap.setString(JBSbatCHIFE034.JISHA_ORG_CD,			orgCd);
			
			// 37. 自社組織名
			if(null != orgCd && !JACStrConst.KARA_MOJI.equals(orgCd))
			{
				if(this.orgNmMap.containsKey(orgCd))
				{
					outmap.setString(JBSbatCHIFE034.JISHA_ORG_NM,		this.orgNmMap.get(orgCd));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.JISHA_ORG_NM,		JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatZM_M_CD_NM_KANRI.TABLE_NAME
							, JZM0171Constant.CD01329});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.JISHA_ORG_NM,		JACStrConst.KARA_MOJI);
			}
			
			// 38. 債権委託会社コード
			String sknItkCompCd = tempOutInfoList.get(20);
			outmap.setString(JBSbatCHIFE034.SKITAKCOMP_CD,		sknItkCompCd);
			
			// 39. 債権委託会社名
			if(null != sknItkCompCd && !JACStrConst.KARA_MOJI.equals(sknItkCompCd))
			{
				if(this.sknItkCmpNmMap.containsKey(sknItkCompCd))
				{
					outmap.setString(JBSbatCHIFE034.SKITAKCOMP_NM,		this.sknItkCmpNmMap.get(sknItkCompCd));
				}
				else
				{
					outmap.setString(JBSbatCHIFE034.SKITAKCOMP_NM,		JACStrConst.KARA_MOJI);
					
					// ログ出力（【エラー】ＤＢ未存在エラー）
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
							new String[] {JBSbatCH_M_SKNKSITKCM.TABLE_NAME
							, sknItkCompCd});
				}
			}
			else
			{
				outmap.setString(JBSbatCHIFE034.SKITAKCOMP_NM,		JACStrConst.KARA_MOJI);
			}
		
			// 囲み文字付与
			outmap.setMap(JCHbatSeikyKaknoBusinessUtil.quote(outmap.getMap(), JACStrConst.DOUBLE_QUOTE , JACStrConst.DOUBLE_QUOTE));
			
			// 共通情報出力済みフラグ ← true
			commonInfoOutZmiFlg = true;
		
			// ファイル出力フラグ 
			outmap.setOutFlg(true);

			// 出力共通電文に設定
			outputItem.addOutMapList(outmap);
		
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputInf][outmap=" + outmap.getMap().toString() + "]");
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputInf]");

		return outputItem;
	}

	/**
	 * 請求先名を取得します。
	 * 
	 * @param  seikyKeiNo 請求契約番号
	 * @return seikySkNm 請求先名
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getSeikySkNm(String seikyKeiNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSeikySkNm]");
		
		// 請求先名
		String seikySkNm = JACStrConst.KARA_MOJI;
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(seikyKeiNo);						// 請求契約番号
		paramList.setValue(super.opeDate);					// 予約適用年月日
		paramList.setValue(JACStrConst.RSV_APLY_CD_FIX);	// 予約適用コード
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikySkNm][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeKK_T_SEIKY_KEI_AC_SELECT_001(paramList.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_KK_T_SEIKY_KEI.selectNext();
		
		// 取得結果が存在する場合
		if(null != dbMap)
		{
			// 送付先カナ名が設定されている場合
			if(null != dbMap.getString(JBSbatKK_T_SEIKY_KEI.SHS_KANA))
			{
				// 送付先カナ
				seikySkNm = dbMap.getString(JBSbatKK_T_SEIKY_KEI.SHS_KANA);
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikySkNm]");
		
		return seikySkNm;
	}

	/**
	 * 取引先コードを取得します。
	 * 
	 * @param  svcKeiNo  サービス契約番号
	 * @return trhkSkiCd 取引先コー
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getTrhkSkiCd(String svcKeiNo) throws Exception
	
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getTrhkSkiCd]");
		
		// 取引先コード
		String trhkSkiCd = JACStrConst.KARA_MOJI;
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件設定
		paramList.setValue(super.opeDate);					// 予約適用年月日
		paramList.setValue(svcKeiNo);						// サービス契約番号
		paramList.setValue(svcKeiNo);						// サービス契約番号
		paramList.setValue(super.opeDate);					// 予約適用年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTrhkSkiCd][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCK_T_CUST_CH_SELECT_001(paramList.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_CK_T_CUST.selectNext();
		
		// 取得結果が存在する場合
		if(null != dbMap)
		{
			// 内販企業識別コードが設定されている場合
			if(null != dbMap.getString(JBSbatCK_T_CUST.NAIHAN_COMP_SKBT_CD))
			{
				// 内販企業識別コード 
				trhkSkiCd = dbMap.getString(JBSbatCK_T_CUST.NAIHAN_COMP_SKBT_CD);
			}

			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTrhkSkiCd][trhkSkiCd=" + trhkSkiCd + "]");

		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getTrhkSkiCd]");
		
		return trhkSkiCd;
	}
	
	/**
	 * 料金内訳名称を取得します。
	 * 
	 * @param  prcGrpCd  料金グループコード
	 * @param  pcrcCd    料金コースコード
	 * @param  prcSvcCd  料金サービスコード
	 * @param  prcKmkCd  料金項目コード
	 * @return prcUcwkNm 料金内訳名称
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getPrcUcwkNm(String prcGrpCd, String pcrcCd, String prcSvcCd, String prcKmkCd) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getPrcUcwkNm]");
		
		// 料金内訳名称
		String prcUcwkNm = JACStrConst.KARA_MOJI;
		
		// 退避.料金内訳名称マップKey情報
		StringBuffer mapKey = new StringBuffer();
		mapKey.append(prcGrpCd);
		mapKey.append(pcrcCd);
		mapKey.append(prcSvcCd);
		mapKey.append(prcKmkCd);
		
		if(null != mapKey.toString() && !JACStrConst.KARA_MOJI.equals(mapKey.toString()))
		{
			if(!this.bkPrcUcwkNmMap.containsKey(mapKey))
			{
				JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
				
				// 検索条件設定
				paramList.setValue(JACStrConst.PRC_KMK_NM_SBT_CD_PRC_NM); 	// 料金項目名称種別コード
				paramList.setValue(prcGrpCd);								// 料金グループコード
				paramList.setValue(pcrcCd);									// 料金コースコード
				paramList.setValue(prcSvcCd);								// 料金サービスコード
				paramList.setValue(prcKmkCd);								// 料金項目コード
				paramList.setValue(super.opeDate); 							// 料金項目出力名称適用開始年月日
				paramList.setValue(super.opeDate); 							// 料金項目出力名称適用終了年月日
				
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getPrcUcwkNm][paramList=" + paramList.getList().toString() + "]");
			
				// SQL実行
				executeCH_M_PRC_KMK_OPUT_NM_CH_SELECT_005(paramList.getList().toArray());
			
				// 結果を取得
				JBSbatCommonDBInterface dbMap = db_CH_M_PRC_KMK_OPUT_NM.selectNext();
				
				// 取得結果がない場合
				if(null == dbMap)
				{
					// ログ出力（【最重要】ＤＢ未存在エラー）
					String[] msgParam = new String[]{ JBSbatCH_M_PRC_KMK_OPUT_NM.TABLE_NAME, paramList.getList().toString() };
					throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
				}
				
				// 料金内訳名称
				prcUcwkNm = dbMap.getString(JBSbatCH_M_PRC_KMK_OPUT_NM.PRC_KMK_NM);
				
				// 退避.料金内訳名称マップ に格納する
				this.bkPrcUcwkNmMap.put(mapKey.toString(), prcUcwkNm);
			}
			else
			{
				prcUcwkNm = this.bkPrcUcwkNmMap.get(mapKey);
			}
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getPrcUcwkNm]");
	
		return prcUcwkNm;
	}
	
	/**
	 * 対応年月日時分秒を表示フォーマット()に形成します。
	 * @param  taioDtm   対応年月日時分秒
	 * @return taioHMS   登録時刻
	 * @throws Exception
	 */
	private String makeTaioHMS(String taioDtm) throws Exception
	{
		// 登録時刻
		String taioHMS = JACStrConst.KARA_MOJI;
		
		// 表示フォーマットをyyyy/MM/dd HH:MM:SS.SSSに変換
		taioHMS = JPCUtilCommon.formatDatetimeSSS(taioDtm);

		// 変換に成功していた場合、時刻を取得
		if(taioHMS.length() == 23)
		{
			taioHMS = taioHMS.substring(11, 19);
		}
		
		return taioHMS;
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SEIKY_KEI.close();
		db_CK_T_CUST.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_CH_M_PRC_KMK_OPUT_NM.close();
		db_KK_M_BANK.close();
		db_KK_M_CRECARD_COMP.close();
		db_CH_M_CVSTORE.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(AC_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_KEI_AC_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_KEI.selectBySqlDefine(paramList, KK_T_SEIKY_KEI_AC_SELECT_001);
	}

	/**
	 * 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 executeCK_T_CUST_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());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CH_SELECT_001);
	}

	/**
	 * 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_007)で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_BANK_CH_SELECT_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_M_BANK.selectBySqlDefine(paramList, KK_M_BANK_CH_SELECT_007);
	}

	/**
	 * SQLKEY(CH_SELECT_008)で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_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_M_CRECARD_COMP.selectBySqlDefine(paramList, KK_M_CRECARD_COMP_CH_SELECT_008);
	}

	/**
	 * SQLKEY(CH_SELECT_004)で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_M_CVSTORE_CH_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_CVSTORE.selectBySqlDefine(paramList, CH_M_CVSTORE_CH_SELECT_004);
	}

	/**
	 * 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_M_SKNKSITKCM_CH_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_SKNKSITKCM.selectBySqlDefine(paramList, CH_M_SKNKSITKCM_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 executeCH_M_PRC_KMK_OPUT_NM_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());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_KMK_OPUT_NM.selectBySqlDefine(paramList, CH_M_PRC_KMK_OPUT_NM_CH_SELECT_005);
	}
	
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
