/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHSksSendFukaListMake
*	ソースファイル名	：JBSbatCHSksSendFukaListMake.java
*	作成者				：富士通　
*	作成日				：2023年06月19日
*＜機能概要＞
*　訂正版請求書印刷データ差込(口振)部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者			修正内容
*	v67.00.00	2023/06/23	 FJ)松永		新規作成
*				2023/08/16	 FJ)松永		【ANK-4401-14-00】請求書送信不可リストの出力条件、出力項目の変更
*				2024/01/10	 FJ)松永		【#83557】Javaヒープ領域不足エラー
*********************************************************************/
package eo.business.service;

import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCHIFM048;
import eo.business.util.file.JBSbatCHIFM428;
import eo.business.util.file.JBSbatCHIFM430;
import eo.business.util.file.JBSbatCHIFM431;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JACStrConst;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

public class JBSbatCHSksSendFukaListMake extends JBSbatBusinessService {
	
	/** テーブル(督促) */
	private static final String D_TBL_NAME_CH_T_TOKUSOKU = "CH_T_TOKUSOKU";
	/** テーブル(コード名称管理) */
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";
	/** テーブルアクセスクラス(請求抑止) */
	private JBSbatSQLAccess db_CH_T_TOKUSOKU = null;
	/** テーブルアクセスクラス(コード名称管理) */
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;
	/** SQL定義キー(CH_SELECT_012)*/
	private static final String CH_T_TOKUSOKU_CH_SELECT_012 = "CH_SELECT_012";
	/** SQL定義キー(CH_SELECT_005)*/
	private static final String ZM_M_CD_NM_KANRI_CH_SELECT_005 = "CH_SELECT_005";
	
	/** 督促内容マップ */
	private HashMap<String, String> tkskNaiyoMap = new HashMap<String, String>();
	
	/** コード種別コード：請求抑止コード */
	private static final String CD_SBT_CD_SEIKY_YOKSI_CD = "CD00111";
	
	/** 督促ステータス 初期値*/
	private static final String TOKUSOKU_STAT_00 = "00";
	
	/** 空文字 */
	private static final String BLANK = "";
	
	// ANK-4401-14-00 ADD START
	/** テーブル(請求抑止) */
	private static final String D_TBL_NAME_KK_T_SEIKY_YOKSI = "KK_T_SEIKY_YOKSI";
	/** テーブルアクセスクラス(請求抑止) */
	private JBSbatSQLAccess db_KK_T_SEIKY_YOKSI = null;
	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_SEIKY_YOKSI_KK_SELECT_001 = "KK_SELECT_001";
	
	/** 抑止内容マップ */
	private HashMap<String, String> yoksiNaiyoMap = new HashMap<String, String>();
	/** 請求方法内容マップ */
	private HashMap<String, String> seikyWayNaiyoMap = new HashMap<String, String>();
	/** 退避．請求契約情報リスト */
	Map<String, JBSbatServiceInterfaceMap> seikyKeiInfoListMap = null;
	
	/** 送信不可理由：定例請求なし */
	private final String SENDS_FUKA_RIYU_NOT_REGULAR_BILLING = "定例請求なし";
	
	/** コード種別コード：請求方法コード */
	private static final String CD_SBT_CD_SEIKY_WAY_CD = "CD00166";
	/** コード種別コード：督促ステータス */
	private static final String CD_SBT_CD_TKSK_ST = "CD00184";
	/** コード区分：ハガキ化抑止 */
	private static final String CD_DIV_HAGAKI = "15";
	
	/** 請求書送信不可リスト出力判定セット */
	private Set<String> outputJudgeKeySet = new HashSet<String>();
	
	/** 請求書発行要否：要 */
	private static final String SEIKYUS_HAKKO_YH_YOU = "1";
	
	/** カンマ */
	private static final String COMMA = ",";
	// ANK-4401-14-00 ADD END


	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// DBアクセスクラスを生成します
		db_CH_T_TOKUSOKU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		// ANK-4401-14-00 ADD START
		db_KK_T_SEIKY_YOKSI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_YOKSI);
		// ANK-4401-14-00 ADD END

		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][onlineOpeDate=" + super.onlineOpeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][freeItem=" + super.freeItem + "]");
		
		// ANK-4401-14-00 MOD START
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTkskNaiyoMap]");
//		// コード名称管理に定義されている督促ステータスのレコードを全て取得する。
//		this.getTkskNaiyoMap();
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getTkskNaiyoMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCdNmKnari]");
		this.getCdNmKnari(CD_SBT_CD_SEIKY_YOKSI_CD);
		this.getCdNmKnari(CD_SBT_CD_SEIKY_WAY_CD);
		this.getCdNmKnari(CD_SBT_CD_TKSK_ST);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCdNmKnari]");
		
		// 請求契約情報取得
		seikyKeiInfoListMap = new HashMap<String, JBSbatServiceInterfaceMap>();
		this.getSeikyKeiInfo();
		// ANK-4401-14-00 MOD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
		}

	/**
	 * 主処理
	 * @param inMap 入力電文
	 * @param outputInItem 入力情報
	 * @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][inMap=" + inMap.getMap().toString() + "]") : true;
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// 入力電文が存在する場合
		if (inMap != null)
		{
			// ANK-4401-14-00 ADD START
			String inMapStr = inMap.getString(JBSbatCHIFM430.SYUSEI_SKS_PRINT_DATA);
			String seikyKeiNo = inMapStr.substring(71, 81);
			String seikyYm = inMapStr.substring(57, 63);
			
			String outputJudgeKey = seikyKeiNo + seikyYm;
			
			// 請求書送信不可リスト作成判定済の請求契約番号である場合
			if (outputJudgeKeySet.contains(outputJudgeKey))
			{
				// 以降の処理をせず、次のレコードの処理を行う
				return outputItem;
			}
			
			// 変数初期化
			String seikyYoksiCd = BLANK;
			String seikyWayCd = BLANK;
			String seikyusHakkoYh = BLANK;
			
			// 請求抑止コード取得
			seikyYoksiCd = this.getSeikyYoksiCd(seikyKeiNo);
			// 請求方法コード取得
			JBSbatServiceInterfaceMap map = seikyKeiInfoListMap.get(seikyKeiNo);
			if (map != null)
			{
				seikyusHakkoYh = map.getString(JBSbatCHIFM048.SEIKYUS_HAKKO_YH);
			}
			 // 請求抑止コードが空でない、かつ請求契約番号に基づく請求書発行要否が要の場合
			if (!seikyYoksiCd.isEmpty() && SEIKYUS_HAKKO_YH_YOU.equals(seikyusHakkoYh))
			{
				seikyWayCd = map.getString(JBSbatCHIFM048.SEIKY_WAY_CD);
			}
			else
			{
				// 以降の処理をせず、次のレコードの処理を行う
				outputJudgeKeySet.add(outputJudgeKey);
				return outputItem;
			}
			// ANK-4401-14-00 ADD END
			
			// 督促.督促ステータス取得
			String tkskStat = this.getTkskSt(inMap); 
			
			// 督促内容取得
			String tkskNaiyo = tkskNaiyoMap.get(tkskStat);
			
			// ANK-4401-14-00 ADD START
			String yoksiNaiyo = yoksiNaiyoMap.get(seikyYoksiCd);
			String seikyWayNaiyo = seikyWayNaiyoMap.get(seikyWayCd);
			// ANK-4401-14-00 ADD END
			
			// 督促内容が取得できなかった場合
			if (tkskNaiyo == null)
			{
				tkskNaiyo = BLANK;
			}
			
			// 請求送信不可リスト作成
			outMap = this.addSeikyuSendFukaMap(inMap, outMap, tkskStat, tkskNaiyo, seikyYoksiCd, yoksiNaiyo, seikyWayCd, seikyWayNaiyo);
			
			outputJudgeKeySet.add(outputJudgeKey);
			
			//出力フラグを設定
			outMap.setOutFlg(true);
			// 出力電文に請求送信不可リストを設定
			outputItem.addOutMapList(outMap);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputItem;
		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	@Override
	public void terminal() throws Exception {
		/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		
		// DBアクセスクラスをクローズします
		db_CH_T_TOKUSOKU.close();
		db_ZM_M_CD_NM_KANRI.close();
		
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	// ANK-4401-14-00 DEL START
//	/**
//	 * コード名称管理に定義されている督促内容を全て取得します。
//	 * 
//	 * @param tkskStat 督促ステータス
//	 * @return 督促内容
//	 * @throws Exception 
//	 */
//	public void getTkskNaiyoMap() throws Exception
//	{
//		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
//		
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTkskNaiyoMap][param=" + whereMap.getList().toString() + "]");
//		
//		String tkskStat =BLANK;
//		String tkskNaiyo = BLANK;
//		
//		this.executeZM_M_CD_NM_KANRI_CH_SELECT_005(whereMap.getList().toArray());
//		
//		JBSbatCommonDBInterface dbMap = this.db_ZM_M_CD_NM_KANRI.selectNext();
//		
//		// 督促ステータスに基づく督促内容を取得(取得できる督促内容は１つ)
//		while(dbMap != null)
//		{
//			tkskStat = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV);
//			tkskNaiyo = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
//			this.tkskNaiyoMap.put(tkskStat, tkskNaiyo);
//			dbMap = this.db_ZM_M_CD_NM_KANRI.selectNext();
//		}
//		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getTkskNaiyoMap]");
//		return;
//	}
	// ANK-4401-14-00 DEL END
	
	// ANK-4401-14-00 ADD START
	public void getCdNmKnari(String cdSbtCd) throws Exception
	{
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(cdSbtCd);
		
		String cdDiv = BLANK;
		String cdDivNm = BLANK;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getCdNmKnari][param=" + whereMap.getList().toString() + "]");
		
		this.executeZM_M_CD_NM_KANRI_CH_SELECT_005(whereMap.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = this.db_ZM_M_CD_NM_KANRI.selectNext();
		
		while(dbMap != null)
		{
			cdDiv = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV);
			cdDivNm = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
			
			if (CD_SBT_CD_SEIKY_YOKSI_CD.equals(cdSbtCd))
			{
			this.yoksiNaiyoMap.put(cdDiv, cdDivNm);
			} 
			else if (CD_SBT_CD_SEIKY_WAY_CD.equals(cdSbtCd))
			{
				this.seikyWayNaiyoMap.put(cdDiv, cdDivNm);
			} 
			else if (CD_SBT_CD_TKSK_ST.equals(cdSbtCd))
			{
				this.tkskNaiyoMap.put(cdDiv, cdDivNm);
			}
			dbMap = this.db_ZM_M_CD_NM_KANRI.selectNext();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCdNmKnari]");
		return;
	}
	// ANK-4401-14-00 ADD END
	
	/**
	 * SQLKEY(CH_SELECT_005)でDBアクセスを行います。<br>
	 * 
	 * @param param [コード種別コード]
	 * @throws Exception
	 */
	public void executeZM_M_CD_NM_KANRI_CH_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		// ANK-4401-14-00 MOD START
//		paramList.setValue(CD_SBT_CD_TKSK_ST);
		paramList.setValue(param[0]);
		// ANK-4401-14-00 MOD END
		paramList.setValue(super.opeDate);
		paramList.setValue(super.opeDate);
		
		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CH_SELECT_005);
	}
	
	/**
	 * 督促ステータスを取得します
	 * 
	 * @param inMap 入力電文
	 * @throws Exception
	 */
	public String getTkskSt(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		String seikyKeiNo = inMap.getString(JBSbatCHIFM428.SEIKY_KEI_NO);
		String tkskStat = TOKUSOKU_STAT_00;
		
		whereMap.setValue(seikyKeiNo);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getTkskSt][param=" + whereMap.getList().toString() + "]");
		
		this.executeCH_T_TOKUSOKU_CH_SELECT_012(whereMap.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = this.db_CH_T_TOKUSOKU.selectNext();
		
		// 請求契約番号に基づく督促ステータスを取得(取得できるステータスは１つ)
		while(dbMap != null)
		{
			tkskStat = dbMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT);
			dbMap = this.db_CH_T_TOKUSOKU.selectNext();
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getTkskSt]");
		return tkskStat;
	}
	
	/**
	 * SQLKEY(CH_SELECT_012)でDBアクセスを行います。<br>
	 * 
	 * @param param [請求契約番号]
	 * @throws Exception
	 */
	public void executeCH_T_TOKUSOKU_CH_SELECT_012(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(super.opeDate);
		paramList.setValue(super.opeDate);
		
		// DBアクセスを実行します
		db_CH_T_TOKUSOKU.selectBySqlDefine(paramList, CH_T_TOKUSOKU_CH_SELECT_012);
	}
	
	/**
	 * 請求書送信不可リストの未設定項目を取得し、設定します
	 * 
	 * @param inMap 入力電文
	 * @param outMap 出力電文
	 * @param tkskStat 督促ステータス
	 * @param tkskNaiyo 督促内容
	 * @param seikyYoksiCd 請求抑止コード
	 * @param yoksiNaiyo 抑止内容
	 * @param seikyWayCd 支払方法コード
	 * @param seikyWayNaiyo 支払方法内容
	 * @return 出力電文
	 * @throws Exception
	 */
// ANK-4401-14-00 MOD START
//	private JBSbatServiceInterfaceMap addSeikyuSendFukaMap (
//			  JBSbatServiceInterfaceMap inMap
//			, JBSbatServiceInterfaceMap outMap
//			, String tkskStat
//			, String tkskNaiyo) throws Exception
//	{
	private JBSbatServiceInterfaceMap addSeikyuSendFukaMap (
			  JBSbatServiceInterfaceMap inMap
			, JBSbatServiceInterfaceMap outMap
			, String tkskStat
			, String tkskNaiyo
			, String seikyYoksiCd
			, String yoksiNaiyo
			, String seikyWayCd
			, String seikyWayNaiyo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][addSeikyuSendFukaMap]");
		
		String inMapStr = inMap.getString(JBSbatCHIFM430.SYUSEI_SKS_PRINT_DATA);
		String seikyKeiNo = inMapStr.substring(71, 81);
		String seikyYm = inMapStr.substring(57, 63);
		
		// 請求契約番号
		outMap.setString(JBSbatCHIFM431.SEIKY_KEI_NO, seikyKeiNo);
		// 請求年月
		outMap.setString(JBSbatCHIFM431.SEIKY_YM, seikyYm);
		// 請求抑止コード
		outMap.setString(JBSbatCHIFM431.SEIKY_YOKSI_CD, seikyYoksiCd);
		// 抑止内容
		outMap.setString(JBSbatCHIFM431.YOKSI_NAIYO,yoksiNaiyo);
		// 送信不可理由
		outMap.setString(JBSbatCHIFM431.SENDS_FUKA_RIYU, SENDS_FUKA_RIYU_NOT_REGULAR_BILLING);
		// 督促ステータス
		outMap.setString(JBSbatCHIFM431.TOKUSOKU_STAT, tkskStat);
		// 督促内容
		outMap.set(JBSbatCHIFM431.TOKUSOKU_NAIYO, tkskNaiyo);
		// 支払方法コード
		outMap.set(JBSbatCHIFM431.PAYWAY_CD, seikyWayCd);
		// 支払方法内容
		outMap.set(JBSbatCHIFM431.PAYWAY_NAIYO, seikyWayNaiyo);
// ANK-4401-14-00 MOD END		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][addSeikyuSendFukaMap]");
		return outMap;
	}
	
	// ANK-4401-14-00 ADD START
	/**
	 * 請求書ハガキ化抑止の請求契約番号を取得して、
	 * 取得できた場合、請求書ハガキ化抑止のコード区分値を返却します。
	 * 
	 * @param seikyKeiNo 請求契約番号
	 * @return seikyYoksiCd 請求抑止コード
	 * @throws Exception
	 */
	private String getSeikyYoksiCd(String seikyKeiNo) throws Exception
	{
		String seikyYoksiCd = BLANK;
		
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(seikyKeiNo);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getSeikyYoksiCd][param=" + whereMap.getList().toString() + "]");
		
		this.executeKK_T_SEIKY_YOKSI_KK_SELECT_001(whereMap.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = this.db_KK_T_SEIKY_YOKSI.selectNext();
		
		// 請求契約番号が取得出来たら請求書ハガキ化抑止のコード区分を設定
		while(dbMap != null)
		{
			seikyYoksiCd = CD_DIV_HAGAKI;
			dbMap = this.db_KK_T_SEIKY_YOKSI.selectNext();
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikyYoksiCd]");
		
		return seikyYoksiCd;
	}
	
	/**
	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	 * 
	 * @param param [請求契約番号]
	 * @throws Exception
	 */
	private void executeKK_T_SEIKY_YOKSI_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		
		// DBアクセスを実行します
		db_KK_T_SEIKY_YOKSI.selectBySqlDefine(paramList, KK_T_SEIKY_YOKSI_KK_SELECT_001);
	}
	
	/**
	 * ファイルから請求契約情報を取得します。
	 * 
	 * @throws IOException
	 */
	private void getSeikyKeiInfo() throws IOException
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getSeikyKeiInfo]");
		
		String filePath = super.freeItem;
		
		// ファイル読み込み準備
		JBSbatInputFileUtil inFileUtil = new JBSbatInputFileUtil(filePath);
		inFileUtil.setEncode(JACStrConst.ENCODE_SJIS);
		inFileUtil.createReader();
		
		String sLine = null;
		
		// 入力ファイルのレコード件数分繰り返す
		while(true)
		{
			// 行文字列を取得
			sLine = inFileUtil.readLine();
			
			// レコード存在判定
			if (sLine == null)
			{
				// ループを抜ける
				break;
			}
			// 請求契約情報ファイルの要素分割
			String[] sLineArray = sLine.split(COMMA);

			// 請求契約番号をキーに請求方法コードと請求書発行要否の値を設定
			String seikyuKeiNo = sLineArray[0];
			JBSbatServiceInterfaceMap map = new JBSbatServiceInterfaceMap();
			// ＃83557 MOD START
			// map.set(JBSbatCHIFM048.SEIKY_WAY_CD, sLineArray[4]);
			// map.set(JBSbatCHIFM048.SEIKYUS_HAKKO_YH, sLineArray[9]);
			map.set(JBSbatCHIFM048.SEIKY_WAY_CD, sLineArray[1]);
			map.set(JBSbatCHIFM048.SEIKYUS_HAKKO_YH, sLineArray[2]);
			// #83557 MOD END
			seikyKeiInfoListMap.put(seikyuKeiNo, map);
		}
		// ファイルを閉じる
		if (inFileUtil != null)
		{
			inFileUtil.close();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getSeikyKeiInfo]");
		return;
	}
	
	// ANK-4401-14-00 ADD END
}
