/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHKhriHukaDirect
*	ソースファイル名	：JBSbatCHKhriHukaDirect.java
*	作成者				：富士通　
*	作成日				：2011年08月12日
*＜機能概要＞
*　口座振替情報付加（間接）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/12   富士通		新規作成
*	v4.00		2012/11/06   FJ）加島	【TG1-2012-0000251】金融マスタの検索条件変更
*	v4.01		2013/04/23   FJ）後藤	【IKK-2013-0000996】口座振替収納機関取得方法変更
*	v5.00		2013/10/23   FJ）北端	【OM-2013-0003549】名義人カナのデータ出所を修正
*	v67.00		2023/05/29   FJ）孫		ANK-4415-00-00_口振請求及びWeb申込システム移行 STEP1
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatInterface;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatCHIFE006;
import eo.business.util.file.JBSbatCHIFM006;
import eo.business.util.file.JBSbatCHIFM420;
import eo.business.util.table.JBSbatCH_M_KHRI_SHUNOKIKAN;
import eo.business.util.table.JBSbatCH_M_PRC_SCHDL_TEIGI;
import eo.business.util.table.JBSbatCH_T_SEIKY;
import eo.business.util.table.JBSbatKK_M_BANK;
import eo.business.util.table.JBSbatKK_T_KOZA;
import eo.business.util.table.JBSbatKK_T_SEIKY_KEI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JKKStringConverter;
import eo.common.util.JPCConvertString;
import eo.common.util.JPCEditString;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatAplConst;

/**
* 口座振替情報付加（間接） <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHKhriHukaDirect extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(料金スケジュール定義)*/
	private static final String D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI = "CH_M_PRC_SCHDL_TEIGI";

	/** テーブル(請求)*/
	private static final String D_TBL_NAME_CH_T_SEIKY = "CH_T_SEIKY";

	/** テーブル(口座振替収納機関)*/
	private static final String D_TBL_NAME_CH_M_KHRI_SHUNOKIKAN = "CH_M_KHRI_SHUNOKIKAN";

	/** テーブル(金融機関)*/
	private static final String D_TBL_NAME_KK_M_BANK = "KK_M_BANK";

//ANK-4415-00-00 ADD START
	/** テーブル(口座)*/
	private static final String D_TBL_NAME_KK_T_KOZA = "KK_T_KOZA";
//ANK-4415-00-00 ADD END
	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_CH_SELECT_002 = "CH_SELECT_002";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String CH_M_KHRI_SHUNOKIKAN_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_M_BANK_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_004)*/
	private static final String CH_T_SEIKY_CH_SELECT_004 = "CH_SELECT_004";

//ANK-4415-00-00 ADD START
	/** SQL定義キー(CH_SELECT_004)*/
	private static final String KK_T_KOZA_CH_SELECT_004 = "CH_SELECT_004";
//ANK-4415-00-00 ADD END
	/** テーブルアクセスクラス(料金スケジュール定義)*/
	private JBSbatSQLAccess db_CH_M_PRC_SCHDL_TEIGI = null;

	/** テーブルアクセスクラス(請求)*/
	private JBSbatSQLAccess db_CH_T_SEIKY = null;

	/** テーブルアクセスクラス(口座振替収納機関)*/
	private JBSbatSQLAccess db_CH_M_KHRI_SHUNOKIKAN = null;

	/** テーブルアクセスクラス(金融機関)*/
	private JBSbatSQLAccess db_KK_M_BANK = null;
//ANK-4415-00-00 ADD START
	/** テーブルアクセスクラス(口座)*/
	private JBSbatSQLAccess db_KK_T_KOZA = null;
//ANK-4415-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/


	/**▼▼▼▼▼▼クラス変数追加 開始▼▼▼▼▼▼*/
	
	 /** 合計件数 */
	private int gkCnt = 0;
	
	/** 合計金額 */
	private BigDecimal gkAmnt = BigDecimal.ZERO;
	
//ANK-4415-00-00 ADD START
	 /** SMBCFS合計件数 */
	private int smbcfsGkCnt = 0;
	
	/** SMBCFS合計金額 */
	private BigDecimal smbcfsGkAmnt = BigDecimal.ZERO;
	
	/** 口座振替日CP */
	private String khuriDayCp = null;
	
	/** 料金計算日 */
	private String prcCalcYmd = null;
//ANK-4415-00-00 ADD END
	/** 口座振替日 */
	private String khuriDay = null;
	
	/** 委託者コード */
	private String itkShaCd = SPACE;
//ANK-4415-00-00 ADD START
	private String itkShaCdSmbcfs = SPACE;
//ANK-4415-00-00 ADD END
	/** スペース */
	private static final String SPACE = " ";
	
	/** ヘッダ・種別コードの桁数 */
	private static final int HDER_SBT_CD_DIG = 2;
	
	/** ヘッダ・委託者コードの桁数 */
	private static final int HDER_ITKSHA_CD_DIG = 10;

	/** ヘッダ・委託者名の桁数 */
	private static final int HDER_ITKSHA_NM_DIG = 40;
	
	/** ヘッダ・取引銀行番号の桁数 */
	private static final int HDER_TRHK_BANK_NO_DIG = 4;
	
	/** ヘッダ・取引銀行名の桁数 */
	private static final int HDER_TRHK_BANK_NM_DIG = 15;
	
	/** ヘッダ・取引支店番号の桁数 */
	private static final int HDER_TRHK_SITEN_NO_DIG = 3;
	
	/** ヘッダ・取引支店名の桁数 */
	private static final int HDER_TRHK_SITEN_NM_DIG = 15;
	
//ANK-4415-00-00 ADD START
	/** ヘッダ・預金種目（委託者）の桁数 */
	private static final int HDER_YOKIN_SHUMOKU_NM_DIG = 1;
//ANK-4415-00-00 ADD END
	/** ヘッダ・口座番号（委託者）の桁数 */
	private static final int HDER_KOZA_NO_DIG = 7;
	
	/** データ・引落銀行番号の桁数 */
	private static final int DT_HKOTSI_BANK_NO_DIG = 4;
	
	/** データ・引落銀行名の桁数 */
	private static final int DT_HKOTSI_BANK_NM_DIG = 15;
	
	/** データ・引落支店番号の桁数 */
	private static final int DT_HKOTSI_SHITEN_NO_DIG = 3;
	
	/** データ・引落支店名の桁数 */
	private static final int DT_HKOTSI_SHITEN_NM_DIG = 15;
	
	/** データ・口座番号の桁数 */
	private static final int DT_KOZA_NO_DIG = 7;
	
	/** データ・預金者名の桁数 */
	private static final int DT_NM_DIG = 30;
//ANK-4415-00-00 ADD START
	/** データ・請求年月の桁数 */
	private static final int DT_SEIKY_YM_DIG = 6;
//ANK-4415-00-00 ADD END
	
	/** 件数の桁数 */
	private static final int CNT_DIG = 6;
	
	/** 金額の桁数 */
	private static final int AMNT_DIG = 12;

	
	/** ヘッダ・コード区分 */
	private static final String HDER_CD_DIV = "1";
	
//ANK-4415-00-00 ADD START
	/** ヘッダ・マルチコード */
	private static final String MULTI_CD = "00";
//ANK-4415-00-00 ADD END
	/** ヘッダ・予備１ */
	private static final String HDER_YOBI_1 = JPCEditString.fillHalfSpace(" ", 17, true);
	
	/** データ・予備１ */
	private static final String DT_YOBI_1 = JPCEditString.fillHalfSpace(" ", 4, true);
	
	/** データ・予備２ */
	private static final String DT_YOBI_2 = JPCEditString.fillHalfSpace(" ", 8, true);

	
//ANK-4415-00-00 ADD START
	/** データ・ダミー */
	private static final String DUMMY = "0000";

	/** データ・委託者コード */
	private static final String ITAKU_CD = "00000000";
//ANK-4415-00-00 ADD END
	/** データ・群番号 */
	private static final String DT_GUN_NO = "6";
	
	/** データ・振替結果コード */
	private static final String DT_HRI_RSLT_CD = "0";
	
	/** トレーラ・予備１ */
	private static final String TRLER_YOBI_1 = JPCEditString.fillHalfSpace(" ", 65, true);
	
	/** エンド・予備１ */
	private static final String END_YOBI_1 = JPCEditString.fillHalfSpace(" ", 119, true);
	
	/** 件数（６桁０パディング） */
	private static final String CNT_ZERO = JPCEditString.fillZero("0", 6, true);
	
	/** 金額（１２桁０パディング） */
	private static final String AMNT_ZERO = JPCEditString.fillZero("0", 12, true);
	
	/**  クリアパスファイル書込みオブジェクト */
	JBSbatOutputFileUtil fileUtil = null;
	
	JBSbatDefFileUtil outFileDef = null;
	
//ANK-4415-00-00 ADD START
	/**  SMBCファイル書込みオブジェクト */
	JBSbatOutputFileUtil fileUtilSmbcfs = null;
	
	JBSbatDefFileUtil outFileDefSmbcfs = null;
	
	/** 口座振替依頼情報(SMBC)フラグファイル */
	private String khriReqInfoFlgFileName = null;
	
	/** 口座支払方法受付区分 */
	private String kozaPaywayUkDiv = null;
	
	private String khriInfo = "口座振替情報";
	
	/** インフォメーションログ出力用 */
	private Map<String, String> infoLogMap = new HashMap<String, String>();
//ANK-4415-00-00 ADD END
	/**▲▲▲▲▲▲クラス変数追加 終了▲▲▲▲▲▲*/
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_M_PRC_SCHDL_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI);
		db_CH_T_SEIKY = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY);
		db_CH_M_KHRI_SHUNOKIKAN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_KHRI_SHUNOKIKAN);
		db_KK_M_BANK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_BANK);
//ANK-4415-00-00 ADD START
		db_KK_T_KOZA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KOZA);
//ANK-4415-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][opeDate=" + super.opeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][freeItem=" + super.freeItem + "]");
		
		// 口座振替日取得
		setKhriDay();
//ANK-4415-00-00 ADD START
		// 口座振替日CP取得
		setKhriDayCp();
		//料金計算日取得
		setprcCalcDay();
//ANK-4415-00-00 ADD END
		
		// 口座振替依頼情報(クリアパス、SMBC)出力定義ファイルオブジェクト生成
		makeFileUtil();
		
		// ヘッダレコード作成
		makeHeaderRec();

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert inMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][mastMap=" + inMap.getMap().toString() + "]") : true;
		
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
//ANK-4415-00-00 MOD START
//		// データレコード作成
//		outputItem.addOutMapList(makeDateRec(inMap));
		
//		
//		// 合計件数カウントアップ
//		gkCnt++;
//		// 合計金額合算
//		gkAmnt =  gkAmnt.add(inMap.getBigDecimal(JBSbatCHIFM006.AMNT));
//		
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][合計件数=" + gkCnt + "]") : true;
//		assert gkAmnt != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][合計金額="
//											+ gkAmnt.toString() + "]") : true;
//		assert outputItem != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][=outputItem"
//											+ outputItem.getOutMapList().toString() + "]") : true;
		
		kozaPaywayUkDiv = null;
		// データレコード作成
		JBSbatServiceInterfaceMap resultMap = makeDateRec(inMap);
		
		if(null != resultMap)
		{
			//口座支払方法受付区分が"1"（クリアパス）の場合
			if(JACStrConst.KOZA_PAYWAY_UK_DIV_CLEAR_PASS.equals(kozaPaywayUkDiv))
			{
				// データレコード作成
				outputItem.addOutMapList(resultMap);
				
				// クリアパスの合計件数カウントアップ
				gkCnt++;
				// クリアパスの合計金額合算
				gkAmnt = gkAmnt.add(inMap.getBigDecimal(JBSbatCHIFM006.AMNT));
				
				// ログにクリアパス合計件数、合計金額、出力オブジェクト格納リストを出力する
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][クリアパス合計件数=" + gkCnt + "]") : true;
				assert gkAmnt != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][クリアパス合計金額=" + gkAmnt.toString() + "]") : true;
				assert outputItem != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][=outputItem" + outputItem.getOutMapList().toString() + "]") : true;
				
				//口座支払方法受付区分が"2"（ＳＭＢＣＦＳ）の場合
			}
			else if (JACStrConst.KOZA_PAYWAY_UK_DIV_SMBCFS.equals(kozaPaywayUkDiv))
			{
				// データレコード作成
				outputItem.addOutMapList_2(resultMap);
				// ＳＭＢＣＦＳの合計件数カウントアップ
				smbcfsGkCnt++;
				// ＳＭＢＣＦＳの合計金額合算
				smbcfsGkAmnt = smbcfsGkAmnt.add(inMap.getBigDecimal(JBSbatCHIFM006.AMNT));
				
				// ログにSMBCFS合計件数、合計金額、出力オブジェクト格納リストを出力する
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][SMBCFS合計件数=" + smbcfsGkCnt + "]") : true;
				assert smbcfsGkAmnt != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][SMBCFS合計金額=" + smbcfsGkAmnt.toString() + "]") : true;
				assert outputItem != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute][=outputItem" + outputItem.getOutMapList_2().toString() + "]") : true;
			}
		}
		
//ANK-4415-00-00 MOD END
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
//ANK-4415-00-00 MOD START
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][terminal][合計件数=" + gkCnt + "]") : true;
//		assert gkAmnt != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][terminal][合計金額=" + gkAmnt.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][terminal][クリアパス合計件数=" + gkCnt + "]") : true;
		assert gkAmnt != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][terminal][クリアパス合計金額=" + gkAmnt.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][terminal][SMBCFS合計件数=" + smbcfsGkCnt + "]") : true;
		assert smbcfsGkAmnt != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][terminal][SMBCFS合計金額=" + smbcfsGkAmnt.toString() + "]") : true;
//ANK-4415-00-00 MOD END
		// トレーラレコード作成
		makeTrailerRec();
		
		// エンドレコード作成
		makeEndRec();
		
//ANK-4415-00-00 ADD START
		// 口座振替依頼情報(SMBC)フラグファイル作成
		JBSbatOutputFileUtil smbcfsFlgFile = new JBSbatOutputFileUtil(this.khriReqInfoFlgFileName);
		smbcfsFlgFile.setEncode(JACStrConst.ENCODE_SJIS);
		smbcfsFlgFile.setLine(JACStrConst.LINE_CRLF);
		smbcfsFlgFile.createWriter();
		smbcfsFlgFile.close();
		// インフォメーションログがあるの場合
		if(infoLogMap.size() > 0)
		{
			for (String keyStr : infoLogMap.keySet())
			{
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1490AI, new String[] {khriInfo, infoLogMap.get(keyStr), keyStr});
			}
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0260CW, new String[] {khriInfo});
		}
//ANK-4415-00-00 ADD END
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_M_PRC_SCHDL_TEIGI.close();
		db_CH_T_SEIKY.close();
		db_CH_M_KHRI_SHUNOKIKAN.close();
		db_KK_M_BANK.close();
//ANK-4415-00-00 ADD START
		db_KK_T_KOZA.close();
//ANK-4415-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

/**▼▼▼▼▼▼メソッド追加 開始▼▼▼▼▼▼*/
	
	/**
	 * 口座振替日を取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setKhriDay() throws Exception
	{

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setKhriDay]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setKhriDay][口座振替日=" + khuriDay + "]");
		
		// バッチ運用日の前月を算出
		String bfOpedate = JBSbatInterface.adjustMonth(super.opeDate, -1);
		
		// 口座振替日の取得
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// バッチ運用日の前月の年月
		whereParam.setValue(bfOpedate.substring(0, 6));
		
		// イベントコード（口座振替日）
		whereParam.setValue(JACStrConst.EVENT_CD_KOUZA_HURIKAE_YMD);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setKhriDay][whereParam=]" + whereParam.getList().toString());
		
		// SQL実行
		executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_002(whereParam.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface selectMap = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
		
		if(selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
					new String[] {JBSbatCH_M_PRC_SCHDL_TEIGI.TABLE_NAME, whereParam.getList().toString()});
			// 口座振替日（空白）
			khuriDay = JPCEditString.fillHalfSpace(" ", 8, true);
		}
		else
		{
			// 口座振替日
			khuriDay = selectMap.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setKhriDay][口座振替日=" + khuriDay + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setKhriDay]");
		
		return;
	}
	
//ANK-4415-00-00 ADD START
	/**
	 * 口座振替日CPを取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setKhriDayCp() throws Exception
	{

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setKhriDayCp]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setKhriDayCp][口座振替日CP=" + khuriDayCp + "]");
		
		// バッチ運用日の前月を算出
		String bfOpedate = JBSbatInterface.adjustMonth(super.opeDate, -1);
		
		// 口座振替日CPの取得
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// バッチ運用日の前月の年月
		whereParam.setValue(bfOpedate.substring(0, 6));
		
		// イベントコード（口座振替日CP）
		whereParam.setValue(JACStrConst.EVENT_CD_KOUZA_HURIKAE_YMD_CP);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setKhriDayCp][whereParam=]" + whereParam.getList().toString());
		
		// SQL実行
		executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_002(whereParam.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface selectMap = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
		
		if(selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
					new String[] {JBSbatCH_M_PRC_SCHDL_TEIGI.TABLE_NAME, whereParam.getList().toString()});
			// 口座振替日CP（空白）
			khuriDayCp = JPCEditString.fillHalfSpace(" ", 8, true);
		}
		else
		{
			// 口座振替日CP
			khuriDayCp = selectMap.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setKhriDayCp][口座振替日CP=" + khuriDayCp + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setKhriDayCp]");
		
		return;
	}
	
	/**
	 * 料金計算日を取得します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setprcCalcDay() throws Exception
	{

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setprcCalcDay]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setprcCalcDay][料金計算日=" + prcCalcYmd + "]");
		
		// バッチ運用日の前月を算出
		String bfOpedate = JBSbatInterface.adjustMonth(super.opeDate, -1);
		
		// 料金計算日の取得
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// バッチ運用日の前月の年月
		whereParam.setValue(bfOpedate.substring(0, 6));
		
		// イベントコード（料金計算日）
		whereParam.setValue(JACStrConst.EVENT_CD_RYOKIN_KEISAN_YMD);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setprcCalcDay][whereParam=]" + whereParam.getList().toString());
		
		// SQL実行
		executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_002(whereParam.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface selectMap = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
		
		if(selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
					new String[] {JBSbatCH_M_PRC_SCHDL_TEIGI.TABLE_NAME, whereParam.getList().toString()});
			// 料金計算日（空白）
			prcCalcYmd = JPCEditString.fillHalfSpace(" ", 8, true);
		}
		else
		{
			// 料金計算日
			prcCalcYmd = selectMap.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setprcCalcDay][料金計算日=" + prcCalcYmd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setprcCalcDay]");
		
		return;
	}
//ANK-4415-00-00 ADD END
	/**
	 * ヘッダレコードを設定します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void makeHeaderRec() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeHeaderRec]");
		
		JBSbatCommonDBInterface khrimap = new JBSbatCommonDBInterface();
//ANK-4415-00-00 ADD START
		JBSbatCommonDBInterface khrimapSmbcfs = new JBSbatCommonDBInterface();
//ANK-4415-00-00 ADD END
		JBSbatCommonDBInterface bankMap = new JBSbatCommonDBInterface();
		
		// その他情報の初期値設定
		// 種別コード
		String sbtCd = SPACE;
//ANK-4415-00-00 ADD START
		String sbtCdSmbcfs = SPACE;
//ANK-4415-00-00 ADD END
		// 委託者名
		String itkshaNm = SPACE;
//ANK-4415-00-00 ADD START
		String itkshaNmSmbcfs = SPACE;
//ANK-4415-00-00 ADD END
		// 取引銀行番号
		String trhkBankNo = SPACE;
		// 取引支店番号
		String trhkShitenNo = SPACE;
		// 預金種目（委託者）
		String yokinShumokuCd = SPACE;
		// 口座番号（委託者）
		String kozaNo = SPACE;
		// 取引銀行名
		String trhkBankNm = SPACE;
		// 取引支店名
		String trhkShitenNm = SPACE;
		
		// 口座振替収納機関検索
		khrimap = getkhriMap();
//ANK-4415-00-00 ADD START
		khrimapSmbcfs = getKhriMapSmbcfs();
//ANK-4415-00-00 ADD END
		// 口座振替収納機関情報の取得結果判定
		if(khrimap != null)
		{
			// 金融機関情報検索
			bankMap = getBankMap(khrimap);
			// 種別コード
			sbtCd = setNullChgSpeace(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_SBT_CD));
			// 委託者コード
			itkShaCd = setNullChgSpeace(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_CD));
			// 委託者名
			itkshaNm = setNullChgSpeace(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_NM));
			// 取引銀行番号
			trhkBankNo = setNullChgSpeace(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_BANK_CD));
			// 取引支店番号
			trhkShitenNo = setNullChgSpeace(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_BANK_SHITEN_CD));
			// 預金種目（委託者）
			yokinShumokuCd = setNullChgSpeace(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_YOKIN_SHUMOKU_CD));
			// 口座番号（委託者）
			kozaNo = setNullChgSpeace(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_KOZA_NO));
			
			// 金融機関情報の取得結果判定
			if(bankMap != null)
			{
				// 取引銀行名
				trhkBankNm = setNullChgSpeace(JKKStringConverter.convertHalf(JPCConvertString.convFullToHalfByKata(bankMap.getString(JBSbatKK_M_BANK.BANK_KANA))));
			}
		}
//ANK-4415-00-00 ADD START
		// 口座振替収納機関情報の取得結果判定
		if(khrimapSmbcfs != null)
		{
			// 金融機関情報検索
			bankMap = getBankMap(khrimapSmbcfs);
			// 種別コード
			sbtCdSmbcfs = setNullChgSpeace(khrimapSmbcfs.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.KHRI_SBT_CD));
			// 委託者コード
			itkShaCdSmbcfs = setNullChgSpeace(khrimapSmbcfs.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_CD));
			// 委託者名
			itkshaNmSmbcfs = setNullChgSpeace(khrimapSmbcfs.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_NM));
		}
//ANK-4415-00-00 ADD END
//ANK-4415-00-00 MOD START
//		// 委託者コードの桁数を１０桁に合わせる
//		itkShaCd = JPCEditString.fillHalfSpace(itkShaCd, HDER_ITKSHA_CD_DIG, true);
		// 委託者コードの桁数を１０桁に合わせる
		String clearPassItkShaCd = JPCEditString.fillHalfSpace(itkShaCd, HDER_ITKSHA_CD_DIG, true);
//ANK-4415-00-00 MOD END
		
		//口座振替依頼情報(クリアパス)ファイルのヘッダ設定
		StringBuffer outRecBuf = new StringBuffer();
		// 口振種別コード
		outRecBuf.append(JPCEditString.fillHalfSpace(sbtCd, HDER_SBT_CD_DIG, true));
		// コード区分
		outRecBuf.append(HDER_CD_DIV);
//ANK-4415-00-00 MOD START
//		// 委託者コード
//		outRecBuf.append(itkShaCd);
		// 委託者コード
		outRecBuf.append(clearPassItkShaCd);
//ANK-4415-00-00 MOD END
		// 委託者名
		outRecBuf.append(JPCEditString.fillHalfSpace(itkshaNm, HDER_ITKSHA_NM_DIG, true));
		// 引落日
//ANK-4415-00-00 MOD START
//		outRecBuf.append(khuriDay.substring(4, 8));
		outRecBuf.append(khuriDayCp.substring(4, 8));
//ANK-4415-00-00 MOD END
		// 取引銀行番号
		outRecBuf.append(JPCEditString.fillHalfSpace(trhkBankNo, HDER_TRHK_BANK_NO_DIG, true));
		// 取引銀行名（上15桁）
		outRecBuf.append(JPCEditString.fillHalfSpace(trhkBankNm, HDER_TRHK_BANK_NM_DIG, true).substring(0, HDER_TRHK_BANK_NM_DIG));
		// 取引支店番号
		outRecBuf.append(JPCEditString.fillHalfSpace(trhkShitenNo, HDER_TRHK_SITEN_NO_DIG, true));
		// 取引支店名（上15桁）
		outRecBuf.append(JPCEditString.fillHalfSpace(trhkShitenNm, HDER_TRHK_SITEN_NM_DIG, true).substring(0, HDER_TRHK_SITEN_NM_DIG));
		// 預金種目（委託者）
		outRecBuf.append(yokinShumokuCd);
		// 口座番号（委託者）
		outRecBuf.append(JPCEditString.fillHalfSpace(kozaNo, HDER_KOZA_NO_DIG, true));
		// 予備１
		outRecBuf.append(HDER_YOBI_1);
		
		JBSbatServiceInterfaceMap outRecMap = new JBSbatServiceInterfaceMap();
		// データ区分（"1"ヘッダレコード）
		outRecMap.setString(JBSbatCHIFE006.ID, JACStrConst.DATA_KUBUN_HEADER);
		// その他
		outRecMap.setString(JBSbatCHIFE006.OTHER, outRecBuf.toString());
		
		fileUtil.print(outRecMap, outFileDef);
//ANK-4415-00-00 ADD START
		// SMBCFSの委託者コードの桁数を８桁に合わせる
		String smbcfsItkshacd = JPCEditString.fillHalfSpace(itkShaCdSmbcfs,HDER_ITKSHA_CD_DIG, true).substring(2, HDER_ITKSHA_CD_DIG);
		//口座振替依頼情報(SMBCFS)ファイルのヘッダ設定
		StringBuffer outRecBufSmbcfs = new StringBuffer();
		// 口振種別コード
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(sbtCdSmbcfs, HDER_SBT_CD_DIG, true));
		// コード区分
		outRecBufSmbcfs.append(HDER_CD_DIV);
		// マルチコード
		outRecBufSmbcfs.append(MULTI_CD);
		// 委託者コード
		outRecBufSmbcfs.append(smbcfsItkshacd);
		// 委託者名
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(itkshaNmSmbcfs, HDER_ITKSHA_NM_DIG, true));
		// 引落日
		outRecBufSmbcfs.append(khuriDay.substring(4, 8));
		// 取引銀行番号
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(SPACE, HDER_TRHK_BANK_NO_DIG, true));
		// 取引銀行名（上15桁）
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(SPACE, HDER_TRHK_BANK_NM_DIG, true).substring(0, HDER_TRHK_BANK_NM_DIG));
		// 取引支店番号
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(SPACE, HDER_TRHK_SITEN_NO_DIG, true));
		// 取引支店名（上15桁）
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(trhkShitenNm, HDER_TRHK_SITEN_NM_DIG, true).substring(0, HDER_TRHK_SITEN_NM_DIG));
		// 預金種目（委託者）
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(SPACE, HDER_YOKIN_SHUMOKU_NM_DIG, true).substring(0, HDER_YOKIN_SHUMOKU_NM_DIG));
		// 口座番号（委託者）
		outRecBufSmbcfs.append(JPCEditString.fillHalfSpace(SPACE, HDER_KOZA_NO_DIG, true));
		// 予備１
		outRecBufSmbcfs.append(HDER_YOBI_1);
		JBSbatServiceInterfaceMap outRecMapSmbcfs = new JBSbatServiceInterfaceMap();
		// データ区分（"1"ヘッダレコード）
		outRecMapSmbcfs.setString(JBSbatCHIFM420.ID, JACStrConst.DATA_KUBUN_HEADER);
		// その他
		outRecMapSmbcfs.setString(JBSbatCHIFM420.OTHER, outRecBufSmbcfs.toString());
		fileUtilSmbcfs.print(outRecMapSmbcfs, outFileDefSmbcfs);
//ANK-4415-00-00 ADD END
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeHeaderRec]");
	}

	/**
	 * 口座振替収納機関検索を行います。（クリアパス）
	 * 
	 * @return JBSbatCommonDBInterface 口座振替収納機関検索結果情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getkhriMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getkhriMap]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 口座振替契約種別コード
		whereParam.setValue(JACStrConst.KHRI_KEI_SBT_CD_CLRPS);	
		// 適用開始年月日
		whereParam.setValue(super.opeDate);	
		// 適用終了年月日
		whereParam.setValue(super.opeDate);	
		// 予約適用年月日
		whereParam.setValue(super.opeDate);	
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getkhriMap][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_KHRI_SHUNOKIKAN_CH_SELECT_001(whereParam.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface selectMap = db_CH_M_KHRI_SHUNOKIKAN.selectNext();
		if(selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
					new String[] {JBSbatCH_M_KHRI_SHUNOKIKAN.TABLE_NAME, whereParam.getList().toString()});
		}
		assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getkhriMap][selectMap="
										+ selectMap.getMap().toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getkhriMap]");
		
		return selectMap;
	}
//ANK-4415-00-00 ADD START
	/**
	 * 口座振替収納機関検索を行います。（SMBC）
	 * 
	 * @return JBSbatCommonDBInterface 口座振替収納機関検索結果情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getKhriMapSmbcfs() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getKhriMapSmbcfs]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 口座振替契約種別コード
		whereParam.setValue(JACStrConst.KHRI_KEI_SBT_CD_SMBCFS);
		// 適用開始年月日
		whereParam.setValue(super.opeDate);	
		// 適用終了年月日
		whereParam.setValue(super.opeDate);	
		// 予約適用年月日
		whereParam.setValue(super.opeDate);	
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getKhriMapSmbcfs][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_KHRI_SHUNOKIKAN_CH_SELECT_001(whereParam.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface selectMap = db_CH_M_KHRI_SHUNOKIKAN.selectNext();
		if(selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
					new String[] {JBSbatCH_M_KHRI_SHUNOKIKAN.TABLE_NAME, whereParam.getList().toString()});
		}
		assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKhriMapSmbcfs][selectMap="
										+ selectMap.getMap().toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKhriMapSmbcfs]");
		
		return selectMap;
	}
//ANK-4415-00-00 ADD END
	/**
	 * 金融機関検索を行います。
	 * 
	 * @param khrimap 口座振替収納機関検索結果情報
	 * @return JBSbatCommonDBInterface 金融機関検索結果
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getBankMap(JBSbatCommonDBInterface khrimap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getBankMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getBankMap][selectMap=" + khrimap.getMap().toString() + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 金融機関コード
		whereParam.setValue(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_BANK_CD));
		// 金融機関支店コード
		whereParam.setValue(khrimap.getString(JBSbatCH_M_KHRI_SHUNOKIKAN.ITKSHA_BANK_SHITEN_CD));
		// 予約適用年月日
		whereParam.setValue(super.opeDate);
		// 無効フラグ
		whereParam.setValue(JACStrConst.MK_FLG_YK);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getBankMap][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeKK_M_BANK_CH_SELECT_001(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface selectMap = new JBSbatCommonDBInterface();
		
		//結果を取得
		selectMap = db_KK_M_BANK.selectNext();
		
		if(selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
					new String[] {JBSbatKK_M_BANK.TABLE_NAME, whereParam.getList().toString()});
		}
		
		assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getBankMap][selectMap="
							+ selectMap.getMap().toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getBankMap]");
		
		return selectMap;
	}
	
	/**
	 * データレコードを作成します。
	 * 
	 * @param inMap 入力情報
	 * @return JBSbatServiceInterfaceMap データレコード情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatServiceInterfaceMap makeDateRec(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeDateRec]");
		
//ANK-4415-00-00 ADD START
		// 出力用のフラグ
		boolean outputFlg = false;
		// データレコード情報
		JBSbatServiceInterfaceMap outRecMap = null;
		// 通帳番号
		String tsuchoNo = SPACE;
//ANK-4415-00-00 ADD END
		
		// その他情報の初期値設定
		// 引落銀行番号
		String hkotsiBankNo = SPACE;
		// 引落銀行名
		String hkotsiBankNm = SPACE;
		// 引落支店番号
		String hkotosiShitenNo = SPACE;
		// 引落支店名
		String hkotosiShitenNm = SPACE;
		// 預金科目
		String yokinKamk = SPACE;
		// 口座番号
		String kozaNo = SPACE;
		// 預金者名
		String name = SPACE;
		// 新規コード
		String newCd = SPACE;
		
		// 口座振替付加情報取得
		JBSbatCommonDBInterface khriHkMap = getKhuriHkMap(inMap);

		
		// 口座振替付加情報　≠　nullの場合
		if(khriHkMap != null)
		{
//ANK-4415-00-00 ADD START
			// 通帳番号
			tsuchoNo = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.TSUCHO_NO));
//ANK-4415-00-00 ADD END
			// 請求方法コード
			String seikyWayCd = inMap.getString(JBSbatCHIFM006.SEIKY_WAY_CD);
			
			// 引落銀行番号
			hkotsiBankNo = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.BANK_CD));
			// 引落銀行名
			hkotsiBankNm = setNullChgSpeace(JKKStringConverter.convertHalf(JPCConvertString.convFullToHalfByKata(khriHkMap.getString(JBSbatKK_M_BANK.BANK_KANA))));

			// 請求方法コードが"2"（預金口座振替）の場合
			if(seikyWayCd.equals(JACStrConst.SEIKY_KHRI))
			{
				// 引落支店番号
				hkotosiShitenNo = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.BANK_SHITEN_CD));
				// 引落支店名
				hkotosiShitenNm = setNullChgSpeace(JKKStringConverter.convertHalf(JPCConvertString.convFullToHalfByKata(khriHkMap.getString(JBSbatKK_M_BANK.BANK_SHITEN_KANA))));
				// 預金科目
				yokinKamk = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.YOKIN_SHUMOKU_CD));
				// 口座番号
				kozaNo = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.KOZA_NO));
				// 新規コード
				newCd = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.NEW_CD));
				
				// 口座振替依頼の受け入れ可能文字への変換
				// 氏名
				name = JCHbatSeikyKaknoBusinessUtil.formatKhriUkeirePsb(setNullChgSpeace(JKKStringConverter.convertHalf(JPCConvertString.convFullToHalfByKata(khriHkMap.getString(JBSbatCH_T_SEIKY.KOZA_MEIGIN_KANA)))));
			}
			// 請求方法コードが"3"（郵便自動振込）の場合
			else if(seikyWayCd.equals(JACStrConst.SEIKY_YUFUIRI))
			{
				// 引落支店番号
				hkotosiShitenNo = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.TSUCHO_SYMBOL));
				// 引落支店名
				hkotosiShitenNm = SPACE;
				// 預金科目
				yokinKamk = JACStrConst.YOKIN_SHUMOKU_NORMAL;
				// 口座番号
				kozaNo = setNullChgSpeace(khriHkMap.getString(JBSbatCH_T_SEIKY.TSUCHO_NO).substring(0, 7));
				// 新規コード
				newCd = JACStrConst.SINKI_KEIZOKU;
				
				// 口座振替依頼の受け入れ可能文字への変換
				// 氏名
				name = JCHbatSeikyKaknoBusinessUtil.formatKhriUkeirePsb(setNullChgSpeace(JKKStringConverter.convertHalf(JPCConvertString.convFullToHalfByKata(khriHkMap.getString(JBSbatCH_T_SEIKY.KOZA_MEIGIN_KANA)))));
			}
		}

//ANK-4415-00-00 MOD START
//		StringBuffer outRecBuf = new StringBuffer();
//		
//		// 引落銀行番号
//		outRecBuf.append(JPCEditString.fillHalfSpace(hkotsiBankNo, DT_HKOTSI_BANK_NO_DIG, true));
//		// 引落銀行名
//		outRecBuf.append(JPCEditString.fillHalfSpace(hkotsiBankNm, DT_HKOTSI_BANK_NM_DIG, true).substring(0, DT_HKOTSI_BANK_NM_DIG));
//		// 引落支店番号
//		outRecBuf.append(JPCEditString.fillHalfSpace(hkotosiShitenNo, DT_HKOTSI_SHITEN_NO_DIG, true));
//		// 引落支店名
//		outRecBuf.append(JPCEditString.fillHalfSpace(hkotosiShitenNm, DT_HKOTSI_SHITEN_NM_DIG, true).substring(0, DT_HKOTSI_SHITEN_NM_DIG));
//		// 予備１
//		outRecBuf.append(DT_YOBI_1);
//		// 預金科目
//		outRecBuf.append(yokinKamk);
//		// 口座番号
//		outRecBuf.append(JPCEditString.fillHalfSpace(kozaNo, DT_KOZA_NO_DIG, true));
//		// 預金者名
//		outRecBuf.append(JPCEditString.fillHalfSpace(name, DT_NM_DIG, true).substring(0, DT_NM_DIG));
//		// 請求金額
//		outRecBuf.append(JPCEditString.fillZero(inMap.getBigDecimal(JBSbatCHIFM006.AMNT).toString(), AMNT_DIG, false).substring(2, AMNT_DIG));
//		// 新規コード
//		outRecBuf.append(newCd);
//		// 委託者コード
//		outRecBuf.append(itkShaCd.substring(5, 10));
//		// 請求年月
//		outRecBuf.append(inMap.getString(JBSbatCHIFM006.SEIKY_YM).substring(2, 6));
//		// 請求者番号
//		outRecBuf.append(inMap.getString(JBSbatCHIFM006.SEIKY_KEI_NO));
//		// 群番号
//		outRecBuf.append(DT_GUN_NO);
//		// 振替結果コード
//		outRecBuf.append(DT_HRI_RSLT_CD);
//		// 予備３
//		outRecBuf.append(DT_YOBI_2);
//		
//		JBSbatServiceInterfaceMap outRecMap = new JBSbatServiceInterfaceMap();
//		
//		// データ区分（"2"データレコード）
//		outRecMap.set(JBSbatCHIFE006.ID, JACStrConst.DATA_KUBUN_DATA);
//		
//		
//		// 上記項目を設定
//		// その他
//		outRecMap.set(JBSbatCHIFE006.OTHER, outRecBuf.toString());
//		
//		outRecMap.setOutFlg(true);
		//口座支払方法受付区分取得
		JBSbatCommonDBInterface kozaMap = getKozaPaywayUkDiv(inMap);
		if(null != kozaMap)
		{
			//請求方法コード
			String seikyWayCd = setNullChgSpeace(kozaMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_CD));
			//口座番号
			String kozaNoKoza = setNullChgSpeace(kozaMap.getString(JBSbatKK_T_KOZA.KOZA_NO));
			//通帳番号
			String tsuchoNoKoza = setNullChgSpeace(kozaMap.getString(JBSbatKK_T_KOZA.TSUCHO_NO));
			//口座支払方法受付区分
			kozaPaywayUkDiv = setNullChgSpeace(kozaMap.getString(JBSbatKK_T_KOZA.KOZA_PAYWAY_UK_DIV));
			// 請求方法コードが"2"（預金口座振替）の場合
			if(JACStrConst.SEIKY_KHRI.equals(seikyWayCd))
			{
				if(kozaNo.equals(kozaNoKoza))
				{
					outputFlg = true;
				}
				
				// 請求方法コードが"3"（郵便自動振込）の場合
			}
			else if (JACStrConst.SEIKY_YUFUIRI.equals(seikyWayCd))
			{
				if(tsuchoNo.equals(tsuchoNoKoza))
				{
					outputFlg = true;
				}
				
			}
		}
		if(outputFlg && null != kozaPaywayUkDiv && !"".equals(kozaPaywayUkDiv)
				&& (JACStrConst.KOZA_PAYWAY_UK_DIV_CLEAR_PASS.equals(kozaPaywayUkDiv) || JACStrConst.KOZA_PAYWAY_UK_DIV_SMBCFS.equals(kozaPaywayUkDiv)))
		{
			outRecMap = setKhriReqInfo(hkotsiBankNo,hkotsiBankNm,hkotosiShitenNo,hkotosiShitenNm,yokinKamk,kozaNo,name,newCd,inMap);
		}
		else
		{
			if(!infoLogMap.containsKey(inMap.getString(JBSbatCH_T_SEIKY.SEIKY_NO)))
			{
				// インフォメーションログ出力用マップに請求番号、請求契約番号を格納する
				infoLogMap.put(inMap.getString(JBSbatCH_T_SEIKY.SEIKY_NO), inMap.getString(JBSbatCHIFM006.SEIKY_KEI_NO));
			}
		}
//ANK-4415-00-00 MOD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeDateRec]");
		
		return outRecMap;
	}
	
	/**
	 * 口座振替付加情報を取得します。
	 * 
	 * @param inMap 入力情報
	 * @return JBSbatCommonDBInterface 口座振替付加情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getKhuriHkMap(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getKhuriHkMap]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 請求番号
		whereParam.setValue(inMap.getString(JBSbatCHIFM006.SEIKY_NO));

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getKhuriHkMap][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SEIKY_CH_SELECT_004(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface selectMap = new JBSbatCommonDBInterface();
		
		selectMap = db_CH_T_SEIKY.selectNext();
		
		if(selectMap == null)
		{
			// ログ出力
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0240CW,
					new String[] {JBSbatCH_T_SEIKY.TABLE_NAME, whereParam.getList().toString()});
		}
		
		assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKhuriHkMap][selectMap="
				+ selectMap.getMap().toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getKhuriHkMap]");
		
		return selectMap;
	}
	
	/**
	 * トレーラレコードを設定します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void makeTrailerRec() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeTrailerRec]");
		
		// 合計件数（左詰め０パディング）
		String outGkCnt = JPCEditString.fillZero(String.valueOf(gkCnt), CNT_DIG, false);
		// 合計金額（左詰め０パディング）
		String outGkAmnt = JPCEditString.fillZero(String.valueOf(gkAmnt), AMNT_DIG, false);
		
		StringBuffer outRecBuf = new StringBuffer();
		
		// 合計件数
		outRecBuf.append(outGkCnt.substring(outGkCnt.length() - CNT_DIG, outGkCnt.length()));
		// 合計金額
		outRecBuf.append(outGkAmnt.substring(outGkAmnt.length() - AMNT_DIG, outGkAmnt.length()));
		// 振替済件数
		outRecBuf.append(CNT_ZERO);
		// 振替済金額
		outRecBuf.append(AMNT_ZERO);
		// 振替不能件数
		outRecBuf.append(CNT_ZERO);
		// 振替不能金額
		outRecBuf.append(AMNT_ZERO);
		// 予備１
		outRecBuf.append(TRLER_YOBI_1);
		
		JBSbatServiceInterfaceMap outRecMap = new JBSbatServiceInterfaceMap();
		
		// データ区分（"8"トレーラ）
		outRecMap.set(JBSbatCHIFE006.ID, JACStrConst.DATA_KUBUN_TRAILER);
		
		// その他
		outRecMap.set(JBSbatCHIFE006.OTHER, outRecBuf.toString());
		
		fileUtil.print(outRecMap, outFileDef);
		
//ANK-4415-00-00 ADD START	
		//SMBCFSのトレーラデータ作成
		// 合計件数（左詰め０パディング）
		String smbcfsOutGkCnt = JPCEditString.fillZero(String.valueOf(smbcfsGkCnt), CNT_DIG, false);
		// 合計金額（左詰め０パディング）
		String smbcfsOutGkAmnt = JPCEditString.fillZero(String.valueOf(smbcfsGkAmnt), AMNT_DIG, false);
		StringBuffer smbcfsOutRecBuf = new StringBuffer();
		// 合計件数
		smbcfsOutRecBuf.append(smbcfsOutGkCnt.substring(smbcfsOutGkCnt.length() - CNT_DIG, smbcfsOutGkCnt.length()));
		// 合計金額
		smbcfsOutRecBuf.append(smbcfsOutGkAmnt.substring(smbcfsOutGkAmnt.length() - AMNT_DIG, smbcfsOutGkAmnt.length()));
		// 振替済件数
		smbcfsOutRecBuf.append(CNT_ZERO);
		// 振替済金額
		smbcfsOutRecBuf.append(AMNT_ZERO);
		// 振替不能件数
		smbcfsOutRecBuf.append(CNT_ZERO);
		// 振替不能金額
		smbcfsOutRecBuf.append(AMNT_ZERO);
		// 予備１
		smbcfsOutRecBuf.append(TRLER_YOBI_1);
		JBSbatServiceInterfaceMap smbcfsOutRecMap = new JBSbatServiceInterfaceMap();
		// データ区分（"8"トレーラ）
		smbcfsOutRecMap.set(JBSbatCHIFE006.ID, JACStrConst.DATA_KUBUN_TRAILER);
		// その他
		smbcfsOutRecMap.set(JBSbatCHIFE006.OTHER, smbcfsOutRecBuf.toString());
		fileUtilSmbcfs.print(smbcfsOutRecMap, outFileDefSmbcfs);
//ANK-4415-00-00 ADD END
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeTrailerRec]");
	}
	
	/**
	 * エンドレコードを設定します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void makeEndRec() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeEndRec]");
		
		JBSbatServiceInterfaceMap outRecMap = new JBSbatServiceInterfaceMap();
		
		// データ区分（"9"エンドレコード）
		outRecMap.set(JBSbatCHIFE006.ID, JACStrConst.DATA_KUBUN_END);
		// その他
		outRecMap.set(JBSbatCHIFE006.OTHER, END_YOBI_1);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeEndRec]");
		
		//クリアパスのエンドレコード作成
		fileUtil.print(outRecMap, outFileDef);
//ANK-4415-00-00 ADD START
		//SMBCFSのエンドレコード作成
		fileUtilSmbcfs.print(outRecMap, outFileDefSmbcfs);
//ANK-4415-00-00 ADD END
	}
	
	/**
	 * 対象文字列がnullかどうかを判定し、nullの場合はスペース、
	 * null以外の場合は入力された値を返します。
	 * 
	 * @param trg 対象文字列
	 * @return String スペースまたは入力された値
	 */
	private String setNullChgSpeace(Object trg)
	{
		String rtn = (String)trg;
		if(trg == null)
		{
			rtn = SPACE;
		}
		return rtn;
	}
	/**
	 * 出力定義ファイルオブジェクトを生成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeFileUtil() throws Exception
	{
//ANK-4415-00-00 ADD START
		String[] fileNameAry = null;
		String freeNames = super.freeItem;
		if(freeNames != null && !"".equals(freeNames))
		{
			fileNameAry = freeNames.split(JACStrConst.FREE_DIV);
			this.khriReqInfoFlgFileName = fileNameAry[2];
		}
//ANK-4415-00-00 ADD END
		// クリアパスファイル出力部品を取得
		fileUtil = super.commonItem.getOutPutFile();
		// クリアパス設定されているエンコード形式を退避
		String enc = fileUtil.getEncode();
		
//ANK-4415-00-00 MOD START
		// クリアパス出力定義ファイル名を取得する。
//		String outFileDefName = JBSbatAplConst.getAplConstValue("OTD") + super.freeItem;
		String outFileDefName = JBSbatAplConst.getAplConstValue("OTD") + fileNameAry[0];
//ANK-4415-00-00 MOD END
		
		// クリアパス出力定義ファイルオブジェクトを生成する
		outFileDef = new JBSbatDefFileUtil(outFileDefName, fileUtil);
		// クリアパス退避したエンコード形式を戻す（出力定義ファイルオブジェクト生成時に上書きが発生しているため）
		fileUtil.setEncode(enc);
//ANK-4415-00-00 ADD START		
		// SMBCFSファイル出力部品を取得
		fileUtilSmbcfs = super.commonItem.getOutPutFile2();
		// SMBCFS設定されているエンコード形式を退避
		String encSmbcfs = fileUtilSmbcfs.getEncode();
		// SMBCFS出力定義ファイル名を取得する。
		String outFileDefNameSmbcfs = JBSbatAplConst.getAplConstValue("OTD") + fileNameAry[1];
		// SMBCFS出力定義ファイルオブジェクトを生成する
		outFileDefSmbcfs = new JBSbatDefFileUtil(outFileDefNameSmbcfs, fileUtilSmbcfs);
		// SMBCFS退避したエンコード形式を戻す（出力定義ファイルオブジェクト生成時に上書きが発生しているため）
		fileUtilSmbcfs.setEncode(encSmbcfs);
//ANK-4415-00-00 ADD END
	}
//ANK-4415-00-00 ADD START
	/**
	 * 口座から口座支払方法受付区分を取得する。
	 * 
	 * @param inMap 入力情報
	 * @return selectMap 口座検索結果
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getKozaPaywayUkDiv(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 口座支払方法受付区分の取得
		// ＤＢアクセス用のパラメータ定義
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();

		// 請求契約番号
		String seikyKeiNo = inMap.getString(JBSbatCH_T_SEIKY.SEIKY_KEI_NO);
		whereParam.setValue(seikyKeiNo);
		// 料金計算日
		whereParam.setValue(prcCalcYmd);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getKozaPaywayUkDiv][whereParam=]" + whereParam.getList().toString());
		
		// SQL実行
		executeKK_T_KOZA_CH_SELECT_004(whereParam.getList().toArray());

		// 結果を取得
		JBSbatCommonDBInterface selectMap = db_KK_T_KOZA.selectNext();
				
		if (selectMap == null)
		{
			// インフォメーションログ出力用マップに請求番号、請求契約番号を格納する
			infoLogMap.put(inMap.getString(JBSbatCH_T_SEIKY.SEIKY_NO), seikyKeiNo);
		}
		return selectMap;
	}
	/**
	 * 口座振替依頼情報のデータ項目を設定します。
	 * 
	 * @param hkotsiBankNo 引落銀行番号
	 * @param hkotsiBankNm 引落銀行名
	 * @param hkotosiShitenNo 引落支店番号
	 * @param hkotosiShitenNm 引落支店名
	 * @param yokinKamk 預金科目
	 * @param kozaNo 口座番号
	 * @param name 預金者名
	 * @param newCd 新規コード
	 * @param inMap 入力情報
	 * @return JBSbatServiceInterfaceMap データレコード情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatServiceInterfaceMap setKhriReqInfo(String hkotsiBankNo,String hkotsiBankNm,String hkotosiShitenNo,String hkotosiShitenNm,
			String yokinKamk,String kozaNo,String name,String newCd,JBSbatServiceInterfaceMap inMap) throws Exception
	{
		StringBuffer outRecBuf = new StringBuffer();

		//口座支払方法受付区分が"1"（クリアパス）の場合
		if(JACStrConst.KOZA_PAYWAY_UK_DIV_CLEAR_PASS.equals(kozaPaywayUkDiv))
		{
			// 引落銀行番号
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotsiBankNo, DT_HKOTSI_BANK_NO_DIG, true));
			// 引落銀行名
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotsiBankNm, DT_HKOTSI_BANK_NM_DIG, true).substring(0, DT_HKOTSI_BANK_NM_DIG));
			// 引落支店番号
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotosiShitenNo, DT_HKOTSI_SHITEN_NO_DIG, true));
			// 引落支店名
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotosiShitenNm, DT_HKOTSI_SHITEN_NM_DIG, true).substring(0, DT_HKOTSI_SHITEN_NM_DIG));
			// 予備１
			outRecBuf.append(DT_YOBI_1);
			// 預金科目
			outRecBuf.append(yokinKamk);
			// 口座番号
			outRecBuf.append(JPCEditString.fillHalfSpace(kozaNo, DT_KOZA_NO_DIG, true));
			// 預金者名
			outRecBuf.append(JPCEditString.fillHalfSpace(name, DT_NM_DIG, true).substring(0, DT_NM_DIG));
			// 請求金額
			outRecBuf.append(JPCEditString.fillZero(inMap.getBigDecimal(JBSbatCHIFM006.AMNT).toString(), AMNT_DIG, false).substring(2, AMNT_DIG));
			// 新規コード
			outRecBuf.append(newCd);
			// 委託者コード
			outRecBuf.append(itkShaCd.substring(5, 10));
			// 請求年月
			outRecBuf.append(JPCEditString.fillHalfSpace(setNullChgSpeace(inMap.getString(JBSbatCHIFM006.SEIKY_YM)), DT_SEIKY_YM_DIG, true).substring(2, 6));
			// 請求者番号
			outRecBuf.append(inMap.getString(JBSbatCHIFM006.SEIKY_KEI_NO));
			// 群番号
			outRecBuf.append(DT_GUN_NO);
			// 振替結果コード
			outRecBuf.append(DT_HRI_RSLT_CD);
			// 予備３
			outRecBuf.append(DT_YOBI_2);
			
			//口座支払方法受付区分が"2"（ＳＭＢＣＦＳ）の場合
		}
		else if (JACStrConst.KOZA_PAYWAY_UK_DIV_SMBCFS.equals(kozaPaywayUkDiv))
		{
			// 引落銀行番号
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotsiBankNo, DT_HKOTSI_BANK_NO_DIG, true));
			// 引落銀行名
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotsiBankNm, DT_HKOTSI_BANK_NM_DIG, true).substring(0, DT_HKOTSI_BANK_NM_DIG));
			// 引落支店番号
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotosiShitenNo, DT_HKOTSI_SHITEN_NO_DIG, true));
			// 引落支店名
			outRecBuf.append(JPCEditString.fillHalfSpace(hkotosiShitenNm, DT_HKOTSI_SHITEN_NM_DIG, true).substring(0, DT_HKOTSI_SHITEN_NM_DIG));
			// ダミー
			outRecBuf.append(DUMMY);
			// 預金科目
			outRecBuf.append(yokinKamk);
			// 口座番号
			outRecBuf.append(JPCEditString.fillHalfSpace(kozaNo, DT_KOZA_NO_DIG, true));
			// 預金者名
			outRecBuf.append(JPCEditString.fillHalfSpace(name, DT_NM_DIG, true).substring(0, DT_NM_DIG));
			// 請求金額
			outRecBuf.append(JPCEditString.fillZero(inMap.getBigDecimal(JBSbatCHIFM006.AMNT).toString(), AMNT_DIG, false).substring(2, AMNT_DIG));
			// 新規コード
			outRecBuf.append(newCd);
			// 委託者コード
			outRecBuf.append(ITAKU_CD);
			// 顧客番号
			outRecBuf.append(JPCEditString.fillHalfSpace(setNullChgSpeace(inMap.getString(JBSbatCHIFM006.SEIKY_YM)), DT_SEIKY_YM_DIG, true).substring(4, 6) + inMap.getString(JBSbatCHIFM006.SEIKY_KEI_NO));
			// 振替結果コード
			outRecBuf.append(DT_HRI_RSLT_CD);
			// 予備
			outRecBuf.append(DT_YOBI_2);
		}
		JBSbatServiceInterfaceMap outRecMap = new JBSbatServiceInterfaceMap();
		
		// データ区分（"2"データレコード）
		outRecMap.set(JBSbatCHIFE006.ID, JACStrConst.DATA_KUBUN_DATA);
		
		
		// 上記項目を設定
		// その他
		outRecMap.set(JBSbatCHIFE006.OTHER, outRecBuf.toString());
		
		outRecMap.setOutFlg(true);
		
		return outRecMap;
	}
//ANK-4415-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_M_PRC_SCHDL_TEIGI_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_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_CH_SELECT_002);
	}

	/**
	 * 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 executeCH_M_KHRI_SHUNOKIKAN_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_CH_M_KHRI_SHUNOKIKAN.selectBySqlDefine(paramList, CH_M_KHRI_SHUNOKIKAN_CH_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 executeKK_M_BANK_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_KK_M_BANK.selectBySqlDefine(paramList, KK_M_BANK_CH_SELECT_001);
	}

	/**
	 * 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_T_SEIKY_CH_SELECT_004(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_004);
	}
//ANK-4415-00-00 ADD START
	/**
	 * 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 executeKK_T_KOZA_CH_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KOZA.selectBySqlDefine(paramList, KK_T_KOZA_CH_SELECT_004);
	}
//ANK-4415-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
