/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHMakeEoElecKyseKiykList
*	ソースファイル名	：JBSbatCHMakeEoElecKyseKiykList.java
*	作成者				：富士通　
*	作成日				：2015年09月30日
*＜機能概要＞
*　ｅｏ電気強制解約リスト作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v16.00.00	2015/09/30   富士通		【ANK-2480-00-00 新電力対応】
*	v24.00.00	2016/05/17   FJ) 寺園	【ANK-2480-03-00 新電力対応（仕様変更・2016年5月末リリース）】
*	v33.00.00	2017/08/08   FJ) 鈴木	【OM-2017-0000666】請求抑止の取得条件誤り対応
*	v41.00.00	2019/02/04   FJ)星野	【ANK-3396-00-00】 利用停止スケジュールの変更
*********************************************************************/
package eo.business.service;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatCHIFM246;
import eo.business.util.file.JBSbatCHIFM248;
import eo.business.util.table.JBSbatCH_M_PRC_SCHDL_TEIGI;
import eo.business.util.table.JBSbatCH_T_SAIKEN_UCWK;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_T_SEIKY_YOKSI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JACStrConst;
import eo.common.util.JPCDateUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JCCbatFrameworkException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.util.JBSbatAplConst;


/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHMakeEoElecKyseKiykList extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;
	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";
	
	/** テーブルアクセスクラス(債権内訳)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN_UCWK = null;
	/** テーブル(債権内訳 * )*/
	private static final String D_TBL_NAME_CH_T_SAIKEN_UCWK = "CH_T_SAIKEN_UCWK";
	
// v24.00.00 MOD START
//	/** テーブルアクセスクラス(債権内訳)*/
//	private JBSbatSQLAccess db_CH_T_TOKUSK_SKN_KNRN = null;
//	
//	/** テーブル(債権内訳 * )*/
//	private static final String D_TBL_NAME_CH_T_TOKUSK_SKN_KNRN = "CH_T_TOKUSK_SKN_KNRN";
	/** テーブルアクセスクラス(督促)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU = null;
	/** テーブル(督促 * )*/
	private static final String D_TBL_NAME_CH_T_TOKUSOKU = "CH_T_TOKUSOKU";
// v24.00.00 MOD END
	
	/** テーブルアクセスクラス(料金スケジュール定義)*/
	private JBSbatSQLAccess db_CH_M_PRC_SCHDL_TEIGI = null;
	
	/** テーブル(料金スケジュール定義 * )*/
	private static final String D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI = "CH_M_PRC_SCHDL_TEIGI";
	
	
	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;
	
	/** テーブル(課金先 * )*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";
	
	/** テーブルアクセスクラス(サービス契約グループ設定)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_GRP_SETE = null;
	
	/** テーブル(サービス契約グループ設定 * )*/
	private static final String D_TBL_NAME_KK_T_SVKEI_GRP_SETE = "KK_T_SVKEI_GRP_SETE";
	
	/** テーブルアクセスクラス(請求抑止)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_YOKSI = null;
	
	/** テーブル(請求抑止 * )*/
	private static final String D_TBL_NAME_KK_T_SEIKY_YOKSI = "KK_T_SEIKY_YOKSI";

	/** テーブルアクセスクラス(ダウンロードファイル管理)*/
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;
	
	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";
	
	/** SQL定義キー(CH_SELECT_009)*/
	private static final String ZM_M_CD_NM_KANRI_CH_SELECT_009 = "CH_SELECT_009";
	
	/** SQL定義キー(CH_SELECT_004)*/
	private static final String CH_T_SAIKEN_UCWK_CH_SELECT_004 = "CH_SELECT_004";
	
// v24.00.00 MOD START
//	/** SQL定義キー(CH_SELECT_001)*/
//	private static final String CH_T_TOKUSK_SKN_KNRN_CH_SELECT_001 = "CH_SELECT_001";
	/** SQL定義キー(CH_SELECT_018)*/
	private static final String CH_T_TOKUSOKU_CH_SELECT_018 = "CH_SELECT_018";
// v24.00.00 MOD END
	
	/** SQL定義キー(CH_SELECT_019)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_CH_SELECT_019 = "CH_SELECT_019";
	
	/** SQL定義キー(CH_SELECT_006)*/
	private static final String KK_T_KAKINS_CH_SELECT_006 = "CH_SELECT_006";
	
	/** SQL定義キー(CH_SELECT_008)*/
	private static final String KK_T_SEIKY_YOKSI_CH_SELECT_008 = "CH_SELECT_008";
	
	/** SQL定義キー(CH_SELECT_001)*/
	private static final String KK_T_SVKEI_GRP_SETE_CH_SELECT_001 = "CH_SELECT_001";
	
// v41.00.00 ADD START
	/** 早期利用停止対象フラグ:早期利用停止対象  */
	private static final String EARLY_USE_STP_TG = "1";
// v41.00.00 ADD END

	
	/** 督促ステータス名称マップ */
	private HashMap<String, String> tokusokuStatMap = null;
	
	/** 請求抑止情報マップ */
	private HashMap<String, String> seikyYkcCdMap = null;
	
	/** サービス契約ステータス名称マップ */
	private HashMap<String, String> svcKeiStatMap = null;
	
	
	/** フリー項目 */
	private String[] freeItems = null;
	
	/** 債権情報リスト */
	private ArrayList<JBSbatServiceInterfaceMap> saikenInfoList = null;
	
	/** 強制解約対象リスト */
	private ArrayList<JBSbatServiceInterfaceMap> kyseKiykList = null;
	
	/** SQL定義キー(KK_INSERT_002)*/
	private static final String DL_FILE_KANRI_CH_INSERT_001 = "CH_INSERT_001";
	
	/**処理管理番号（eo電気強制解約対象リスト）**/
	public static final String TRAN_KANRI_NO = "000000000128";
	
	/** 前回請求契約番号*/
	private String oldZenkaiSeikyKeiNo = null;
	
	/** 合算未納額・未納回数前回請求契約番号*/
	private String infoZenkaiSeikyKeiNo = null;
	
	/** 前回督促ステータス */
	private String zenkaiTokusokuStat = null;
	
	/** 最古未納月取得マップ */
	private HashMap<String, String> saikoMap = null;
	
	/** 最古未納月取得リスト */
	private ArrayList<String> saikoList = null;
	
	/** 合算未納額取得リスト */
	private ArrayList<String> gokeiMinoList = null;
	
	/** 請求年月（前月）*/
	private String seiykyYmZengetu  = null;
	
	/** 業務機能識別コード＿料金項目コード（未収金額）*/
	private String mishAmnt  = null;
	
	/** eo電気強制解約対象リスト件数*/
	private long dataCount = 0;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// FREEITEMの取得
		this.freeItems = super.freeItem.split(JACStrConst.SEMI_COLON);
		
		//債権情報ファイルを読込み債権情報リストに格納する
		setSaikenInfoList();
		
		// DBアクセスクラスを生成します
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_CH_T_SAIKEN_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN_UCWK);
// v24.00.00 MOD START
//		db_CH_T_TOKUSK_SKN_KNRN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSK_SKN_KNRN);
		db_CH_T_TOKUSOKU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU);
// v24.00.00 MOD END
		db_CH_M_PRC_SCHDL_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI);
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
		db_KK_T_SEIKY_YOKSI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_YOKSI);
		db_KK_T_SVKEI_GRP_SETE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_GRP_SETE);
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
		
		//請求年月前月を取得する
		seiykyYmZengetu = this.getSeikyYmZengetu(super.opeDate);
		
		//各種マップを初期化する
		tokusokuStatMap = new HashMap<String, String>();
		seikyYkcCdMap   = new HashMap<String, String>();
		svcKeiStatMap   = new HashMap<String, String>();
		
		
		//督促ステータスマップ取得
		tokusokuStatMap = getCdNmKanri("CD00184");
		
		//請求抑止マップを取得
		seikyYkcCdMap = getCdNmKanri("CD00111");
		
		//サービス契約ステータスマップを取得
		svcKeiStatMap = getCdNmKanri("CD00037");
		
		//業務パラメータを取得するため、パラメータ取得部品のインスタンスを生成する
		JACbatParamUtil paramUtil = new JACbatParamUtil(commonItem);
		
		//単項目チェックに利用するための値を業務パラメータ管理より取得する
		mishAmnt = paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_WKS_MISYU_KINGAKU);
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// DBアクセスクラスを生成します
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		//強制解約リストを初期化する
		kyseKiykList = new ArrayList<JBSbatServiceInterfaceMap>();
		
		//債権情報の件数分ループ処理を行う
		for(int i = 0; i < saikenInfoList.size(); i++)
		{
		
			//債権情報マップより、債権情報を取得する
			JBSbatServiceInterfaceMap inMap = saikenInfoList.get(i);
			
			//債権情報を元に、未収金額（合計）を取得する
			if(!getMishGokeiAmnt(inMap))
			{
				continue;
			}
			
			//債権情報を元に督促ステータスを取得する
			if(!getTokusokuStat(inMap))
			{
				continue;
			}
			
			//強制解約リストマップに設定する
			this.kyseKiykList.add(inMap);
		}
		
			
		//最古マップ取得処理を行う
		getSaikoMap();
		
		//合算未納額・未納回数・請求抑止情報・サービス契約情報の取得ファイル出力処理を行う
		createEoElecKyseKiykList(outputBean);
		
		
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		
		
		if(commonItem.getOutPutFile() != null) 
		{
			commonItem.getOutPutFile().close();
		}
		
		insertDlFileKanri();
		
		db_ZM_M_CD_NM_KANRI.close();
		db_CH_T_SAIKEN_UCWK.close();
// v24.00.00 MOD START
//		db_CH_T_TOKUSK_SKN_KNRN.close();
		db_CH_T_TOKUSOKU.close();
// v24.00.00 MOD END
		db_CH_M_PRC_SCHDL_TEIGI.close();
		db_KK_T_KAKINS.close();
		db_KK_T_SEIKY_YOKSI.close();
		db_KK_T_SVKEI_GRP_SETE.close();
		db_ZM_T_DL_FILE_KANRI.close();
		

		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * コード名称管理テーブルからコード区分名、コード区分略称を取得する
	 * @param cdSbtCd	コード種別コード
	 * @param cdDiv	コード区分
	 * @return	String	コード区分名
	 * @throws Exception
	 */
	private HashMap<String, String> getCdNmKanri(String cdSbtCd) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getCdNmKanri]");
		
		executeZM_M_CD_NM_KANRI_CH_SELECT_009(new Object[] {cdSbtCd, super.opeDate, super.opeDate});
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getCdNmKanri]");
			
			
		//コード名称管理検索結果返却用マップを作成する
		HashMap<String, String> cdNmKanriMap = new HashMap<String, String>();
		//コード名称管理検索結果格納用マップを作成する
		JBSbatCommonDBInterface dbCdNmKanri = null;

		//取得したコード名称管理の件数分ループ処理を行う
		while(null != (dbCdNmKanri = db_ZM_M_CD_NM_KANRI.selectNext()))
		{
			//コード名称管理マップに検索結果を格納する
			cdNmKanriMap.put(dbCdNmKanri.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV), dbCdNmKanri.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM));

		}
			
			return cdNmKanriMap;
	}
	
	/**
	 * SQLKEY(CH_SELECT_009)でDBアクセスを行います。<br>
	 *	コード種別コード
	 *	コード区分
	 *	コード適用開始年月日
	 *	コード適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_CH_SELECT_009(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CH_SELECT_009);
	}
	
	/**
	 * SQLKEY(CH_SELECT_004)でDBアクセスを行います。<br>
	 *	債権番号
	 *	業務機能識別コード
	 *	料金項目抽出変換適用開始年月日
	 *	料金項目抽出変換適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_UCWK_CH_SELECT_004(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_T_SAIKEN_UCWK.selectBySqlDefine(paramList, CH_T_SAIKEN_UCWK_CH_SELECT_004);
	}
	
	
	/**
	 * 債権情報を読込み、債権情報リストに格納を行う
	 * @throws Exception
	 */
	private void setSaikenInfoList() throws Exception
	{
		
		saikenInfoList = new ArrayList<JBSbatServiceInterfaceMap>();
		JBSbatServiceInterfaceMap rowMap = null;
		
		//債権情報ファイルを取得する
		JBSbatInputFileUtil readObj      = new JBSbatInputFileUtil(freeItems[1]);
		JBSbatDefFileUtil   fileDefUtil      = new JBSbatDefFileUtil(JBSbatAplConst.getAplConstValue("IND") + freeItems[0], readObj);
		
		readObj.createReader();
		
		String line = "";
		while(readObj.ready())
		{
			
			// 部品内部で「"（ダブルクォート）」を外している為,APでは不要
			line = readObj.readLine();
			rowMap = fileDefUtil.lineToObject(line, readObj, 0);
			
			// 取得したマップを債権情報格納リストに追加
			this.saikenInfoList.add(rowMap);
		}
	}
	
	/**
	 * 債権情報を元に、債権内訳を検索し、未収の合計金額を取得する
	 * @param inMap 債権情報
	 * @return true 合計金額取得成功 false 合計金額取得失敗
	 * @throws Exception
	 */
	private boolean getMishGokeiAmnt(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		
		executeCH_T_SAIKEN_UCWK_CH_SELECT_004(new Object[] {inMap.getString(JBSbatCHIFM246.SAIKEN_NO), mishAmnt, super.opeDate, super.opeDate});
		
		JBSbatCommonDBInterface dbSaikenUcwk = null;
		
		String gokeiAmnt = "";
	
		//取得した債権内訳検索結果を取得する
		while(null != (dbSaikenUcwk = db_CH_T_SAIKEN_UCWK.selectNext()))
		{
			//合計金額を取得する
			gokeiAmnt = dbSaikenUcwk.getString(JBSbatCH_T_SAIKEN_UCWK.AMNT);
		}
		
		if(!isNullBlank(gokeiAmnt))
		{

			//合計金額が取得できた場合、マップに合計金額を設定する
			inMap.set(JBSbatCHIFM248.GOKEI_AMNT, gokeiAmnt);
			
			return true;
		}

		return false;
	}
	
	/**
	 * 債権情報を元に、督促債権関連を検索し債権ステータスを取得する
	 * @param inMap 債権情報
	 * @return true 督促ステータス取得成功 false 督促ステータス取得失敗
	 * @throws Exception
	 */
	private boolean getTokusokuStat(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		
// v24.00.00 MOD START
//		executeCH_T_TOKUSK_SKN_KNRN_CH_SELECT_001(new Object[] {inMap.getString(JBSbatCHIFM246.SAIKEN_NO), super.opeDate, super.opeDate});
		executeCH_T_TOKUSOKU_CH_SELECT_018(new Object[] {inMap.getString(JBSbatCHIFM246.SEIKY_KEI_NO), super.opeDate, super.opeDate});
// v24.00.00 MOD END
		
		JBSbatCommonDBInterface dbTokuskSknKnrn = null;
		
		String saikenStat = "";
// v41.00.00 ADD START
		String earlyUseStpTgFlg = "";
// v41.00.00 ADD END
		
		//取得した督促債権関連検索結果を取得する
// v24.00.00 MOD START
//		while(null != (dbTokuskSknKnrn = db_CH_T_TOKUSK_SKN_KNRN.selectNext()))
		while(null != (dbTokuskSknKnrn = db_CH_T_TOKUSOKU.selectNext()))
// v24.00.00 MOD END
		{
			//督促ステータスを取得する
			saikenStat = dbTokuskSknKnrn.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT);
// v41.00.00 ADD START
			//早期利用停止対象フラグを取得する
			earlyUseStpTgFlg = dbTokuskSknKnrn.getString(JBSbatCH_T_TOKUSOKU.EARLY_USE_STP_TG_FLG);
// v41.00.00 ADD END
		}
		
		if(!isNullBlank(saikenStat))
		{
			
			//債権ステータスをマップに格納する
			inMap.set(JBSbatCHIFM248.TOKUSOKU_STAT, this.tokusokuStatMap.get(saikenStat));
// v41.00.00 ADD START
			//早期利用停止対象フラグをマップに格納する
			inMap.set(JBSbatCH_T_TOKUSOKU.EARLY_USE_STP_TG_FLG, earlyUseStpTgFlg);
// v41.00.00 ADD END
			
			return true;
		}
		

		return false;
	}
	
	/**
	 * 請求契約番号毎の最古未納月を取得し、最古未納月マップに格納し、各種パラメータを初期化する
	 * @param earlyUseStpTgFlg 早期利用停止対象フラグ
	 * @return true 督促ステータス取得成功 false 督促ステータス取得失敗
	 * @throws Exception
	 */
// v41.00.00 MOD START
//	private boolean setSaikoMinoYm() throws Exception
	private boolean setSaikoMinoYm(String earlyUseStpTgFlg) throws Exception
// v41.00.00 MOD END
	{
		
		//最古未納月を取得する
		String saikoMinoYm = getOldMinoYm();
		
		//最古未納月が請求年月の前月となるものは対象外とする
		if(!seiykyYmZengetu.equals(saikoMinoYm)
// v41.00.00 ADD START
			// 早期利用停止対象者は請求年月の前月も対象
			|| EARLY_USE_STP_TG.equals(earlyUseStpTgFlg)
// v41.00.00 ADD END
		)
		{
		
			//最古未納年月日をyyyymm形式からyyyy/mm形式に変換する
			saikoMinoYm = saikoMinoYm.substring(0, 4) + "/" + saikoMinoYm.substring(4, 6);
			//最古未納月を取得し最古マップに格納する
			saikoMap.put(oldZenkaiSeikyKeiNo, saikoMinoYm);
		
		}
		
		//最古リストを初期化する
		saikoList = new ArrayList<String>();

		
		return false;
	}
	
	/**
	 * 請求契約番号毎の合算未納額を取得し、合計未納額リストに格納する
	 * @param outputBean 出力情報
	 * @param kyseKiykMap 強制解約マップ
	 * @return true 督促ステータス取得成功 false 督促ステータス取得失敗
	 * @throws Exception
	 */
	private boolean setInfoMap(JBSbatOutputItem outputBean) throws Exception
	{
		
		//最古マップに請求契約番号が存在しない場合は出力しない（最古未納月が請求年月前月の場合）
		if(!saikoMap.containsKey(infoZenkaiSeikyKeiNo))
		{
			
			//合計未納額リストを初期化する
			gokeiMinoList = new ArrayList<String>();
			
			return false;	
		}
		
		//eo電気契約情報を取得する
		executeKK_T_KAKINS_CH_SELECT_006(new Object[] {infoZenkaiSeikyKeiNo, 
														super.opeDate,
														super.opeDate,
														super.opeDate,
														super.opeDate
														});
		
		//eo電気契約情報取得マップを作成する
		JBSbatCommonDBInterface dbKakins = null;
		//取得したeo電気契約上法文結果分出力ファイルを作成する
		while(null != (dbKakins = db_KK_T_KAKINS.selectNext()))
		{
			
			//出力対象が1レコード目だった場合、見出し行の出力を行う
			if(0 == dataCount)
			{
				//見出し出力用
				JBSbatServiceInterfaceMap outMidasiMap = new JBSbatServiceInterfaceMap();
				// 請求契約番号
				outMidasiMap.setString(JBSbatCHIFM248.SEIKY_KEI_NO, "請求契約番号");
			
				// サービス契約番号(eo電気)
				outMidasiMap.setString(JBSbatCHIFM248.SVC_KEI_NO_ELEC,  "お客さまID(eo電気)");
			
				// サービス契約ステータス(eo電気)
				outMidasiMap.setString(JBSbatCHIFM248.SVC_KEI_STAT_ELEC, "サービス状態(eo電気)");

				//サービス契約ステータス（ネット）
				outMidasiMap.setString(JBSbatCHIFM248.SVC_KEI_NO_NET,  "お客さまID(eo光ネット)");
				
				//サービス契約ステータス（ネット）
				outMidasiMap.setString(JBSbatCHIFM248.SVC_KEI_STAT_NET,  "サービス状態(eo光ネット)");
			
				//督促ステータス
				outMidasiMap.setString(JBSbatCHIFM248.TOKUSOKU_STAT, "督促ステータス");
				
				//最古未納月
				outMidasiMap.setString((JBSbatCHIFM248.OLD_MINO_YM), "最古未納月");
				
				//合計未納額
				outMidasiMap.setString((JBSbatCHIFM248.GOKEI_AMNT), "合算未納額");
				
				//未納回数
				outMidasiMap.setString(JBSbatCHIFM248.MINO_COUNT, "未納回数");
				
				//請求抑止情報
				outMidasiMap.setString(JBSbatCHIFM248.SEIKY_YKS_INFO, "請求抑止情報");
				
				// SYSID
				outMidasiMap.setString(JBSbatCHIFM248.SYSID, "SYSID");
				
				// お客様名
				outMidasiMap.setString(JBSbatCHIFM248.CUST_NM, "お客様氏名");	
				
				outputBean.addOutMapList(outMidasiMap);
				
			}
			
			JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
			
			// 請求契約番号
			outmap.setString(JBSbatCHIFM248.SEIKY_KEI_NO, infoZenkaiSeikyKeiNo);
			// サービス契約番号(eo電気)
			outmap.setString(JBSbatCHIFM248.SVC_KEI_NO_ELEC,  dbKakins.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
			// サービス契約ステータス(eo電気)
			outmap.setString(JBSbatCHIFM248.SVC_KEI_STAT_ELEC, svcKeiStatMap.get(dbKakins.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT)));
			//サービス契約ネット・サービス契約ステータスネットの取得処理を行う、出力ファイルへの設定は下記の処理内で行う
			setSvcInfo(outmap, dbKakins);
			//督促ステータス
			outmap.setString(JBSbatCHIFM248.TOKUSOKU_STAT, zenkaiTokusokuStat);
			//最古未納月
			outmap.setString((JBSbatCHIFM248.OLD_MINO_YM), saikoMap.get(infoZenkaiSeikyKeiNo));
			//合計未納額
			outmap.setString((JBSbatCHIFM248.GOKEI_AMNT), getGokeiMinoAmnt());
			//未納回数
			outmap.setString(JBSbatCHIFM248.MINO_COUNT, String.valueOf(gokeiMinoList.size()));
			//請求抑止情報
			outmap.setString(JBSbatCHIFM248.SEIKY_YKS_INFO, getSeikyYksCd());
			// SYSID
			outmap.setString(JBSbatCHIFM248.SYSID,  dbKakins.getString(JBSbatCK_T_CUST.SYSID));
			// お客様名
			outmap.setString(JBSbatCHIFM248.CUST_NM,  dbKakins.getString(JBSbatCK_T_CUST.CUST_NM));	
			outputBean.addOutMapList(outmap);
			dataCount++;
			
		}
		
		//合計未納額リストを初期化する
		gokeiMinoList = new ArrayList<String>();

		
		return true;
	}
	
	/**
	 * @param param
	 * 請求契約番号
	 * 督促管理開始年月日
	 * 督促管理終了年月日
	 * @throws Exception
	 */
// v24.00.00 MOD START
//	private void executeCH_T_TOKUSK_SKN_KNRN_CH_SELECT_001(Object[] param) throws Exception
	private void executeCH_T_TOKUSOKU_CH_SELECT_018(Object[] param) throws Exception
// v24.00.00 MOD END
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
// v24.00.00 MOD START
//		db_CH_T_TOKUSK_SKN_KNRN.selectBySqlDefine(paramList, CH_T_TOKUSK_SKN_KNRN_CH_SELECT_001);
		db_CH_T_TOKUSOKU.selectBySqlDefine(paramList, CH_T_TOKUSOKU_CH_SELECT_018);
// v24.00.00 MOD END
	}

	/**
	 * null又は空文字の場合、trueを返却する
	 * 
	 * @param str 検査対象文字列
	 * @return true:null、又は空文字／false:左記以外
	 */
	public static boolean isNullBlank(String str)
	{
		if (null == str || "".equals(str))
		{
			return true;
		}
		return false;
	}
	
	/**
	 * 電子ファイル管理／ダウンロードファイル管理の登録
	 * @throws Exception
	 */
	private void insertDlFileKanri() throws Exception
	{
		
		// 削除日付の取得(現在日付の1ヶ月後)
		String delYmd = JPCDateUtil.addMonth(super.opeDate, 1);

		createFile(commonItem,
					TRAN_KANRI_NO,
					Long.valueOf(dataCount), //暫定
					null,
					freeItems[2],
					freeItems[3],
					delYmd,
					db_ZM_T_DL_FILE_KANRI,
					false);		
	}
	
	/**
	 * ファイル登録処理<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.初期処理<br>
	 *
	 * 2.ファイル圧縮処理<br>
	 * 
	 * 3.電子ファイル管理処理<br>
	 * 
	 * 4.ダウンロードファイル管理登録処理<br>
	 * 
	 * 5.ファイル削除処理<br>
	 * 
	 * </pre>
	 * <p>
	 * @param commonItem    バッチ共通パラメータ電文
	 * @param trnKanriNo    処理管理番号
	 * @param dataCnt    データ件数
	 * @param fileCd    ファイルコード
	 * @param fileDir    ファイルディレクトリ
	 * @param fileName    ファイル名
	 * @param fileDelYmd    ファイル削除年月日
	 * @param dbDlFileKanri    テーブルアクセスクラス
	 * @param isCompress    圧縮実行フラグ
	 * @throws JCCbatFrameworkException, Exception      業務サービス内で発生した例外全般。
	 */
	public void createFile(JBSbatCommonItem commonItem, String trnKanriNo, Long dataCnt, 
									String fileCd, String fileDir, String fileName, String fileDelYmd, 
									JBSbatSQLAccess dbDlFileKanri, boolean isCompress) throws JCCbatFrameworkException, Exception
	{
		if (!JCCBatCommon.isNotNull(fileDir) || !JCCBatCommon.isNotNull(fileName))
		{
			return;
		}
		
		// 登録ファイルパス設定
		String insertFilePath = fileDir + "/" + fileName;
		
		
		File insertFile = new File(insertFilePath);
		
		// ファイル存在確認
		if (insertFile.exists())
		{
			// 電子ファイル管理登録処理
			String[] resultKey = null;		// 電子ファイル管理テーブルに登録された場合に返却されるPKEY
			
			resultKey = JCCBatCommon.createDenshiFile(commonItem, fileCd, insertFile.getPath(), fileDelYmd);
			
			// ダウンロードファイル管理登録処理
			JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
			
			// 処理管理番号
			paramList.setValue(trnKanriNo);
			// ファイル名
			paramList.setValue(insertFile.getName());
			// データ件数
			paramList.setValue(dataCnt);
			// 電子ファイル管理番号
			paramList.setValue(resultKey[0]);
			// 世代登録年月日時分秒
			paramList.setValue(resultKey[1]);
			
			// ダウンロードファイル管理登録
			createDlFileKanri(paramList, dbDlFileKanri);
			
		}
	
	}
	
	

	
	/**
	 * ファイル登録処理<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 *
	 * 1.DBアクセスを実行します。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param paramList    SQLパラメータリスト
	 * @param dbDlFileKanri    テーブルアクセスクラス
	 * @throws Exception      業務サービス内で発生した例外全般。
	 */
	private static void createDlFileKanri(JBSbatCommonDBInterface paramList, JBSbatSQLAccess dbDlFileKanri) throws Exception
	{
	
		// DBアクセスを実行します
		dbDlFileKanri.executeBySqlDefine(paramList, DL_FILE_KANRI_CH_INSERT_001);
	}
	
	
	/**
	 * 最古リストを元に、最も古い最古年月を取得する
	 * @return 最古年月日
	 * @throws Exception
	 */
	private String getOldMinoYm() throws Exception
	{
		
		//最古年月
		String saikoYm = null;
		
		for(int i = 0; i < saikoList.size(); i++)
		{
			
			//最古年月が設定されていない場合、請求年月を設定する
			
			if(isNullBlank(saikoYm))
			{
				saikoYm = saikoList.get(i);
			}
			
			//最古年月とリストの債権年月を比較し債権年月のほうが小さければを再設定する
			if(saikoYm.compareTo(saikoList.get(i)) > 0)
			{
			
				//最古年月に設定しなおす
				saikoYm = saikoList.get(i);
			
			}
		}

		return saikoYm;
	}
	
	/**
	 * 合計金額リストを元に合算を行い、合算未納額を取得する
	 * @return 合計未納額を文字列として変換する
	 * @throws Exception
	 */
	private String getGokeiMinoAmnt() throws Exception
	{
		
		//
		int gokeiMinoAmnt = 0;
		
		for(int i = 0; i < gokeiMinoList.size(); i++)
		{
			
			//最古年月が設定されていない場合、請求年月を設定する
			gokeiMinoAmnt = gokeiMinoAmnt + Integer.parseInt(gokeiMinoList.get(i));
				
		}
		
		//合計未納額を文字列として変換
		return String.valueOf(gokeiMinoAmnt);
	}
	
	
	/**
	 * バッチ運用日を元に請求年月の前月を取得する
	 * @param unyoYmd 運用年月日
	 * @return 請求年月の前月
	 * @throws Exception
	 */
	private String getSeikyYmZengetu(String unyoYmd) throws Exception
	{
		
		executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_001(new Object[] {unyoYmd});
		
		JBSbatCommonDBInterface dbPrcSchdlTeigi = null;
		
		String seikyYm = "";
		
		//取得した督促債権関連検索結果を取得する
		while(null != (dbPrcSchdlTeigi = db_CH_M_PRC_SCHDL_TEIGI.selectNext()))
		{
			//督促ステータスを取得する
			seikyYm = dbPrcSchdlTeigi.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.SEIKY_YM);
		}
		
		//和名に変換し返却する
		return seikyYm;
	}
	
	
	/**
	 * @param param
	 * 債権番号
	 * 督促管理開始年月日
	 * 督促管理終了年月日
	 * @throws Exception
	 */
	private void executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_CH_SELECT_019);
	}
	
	/**
	 * 債権情報リストより、最古となる請求年月の取得を行い
	 * マップに格納する
	 * @throws Exception
	 */
	private void getSaikoMap() throws Exception 
	{
		
		//最古リストを初期化する
		saikoList = new ArrayList<String>();
		
		//最古マップを初期化する
		saikoMap = new HashMap<String, String>();
		
// v41.00.00 ADD START
		//前回早期利用停止対象フラグ
		String oldEarlyUseStpTgFlg = "";
// v41.00.00 ADD END
		
		// 強制解約対象リストの件数分最古未納月取得処理を行う
		for (int i = 0;  i < kyseKiykList.size(); ++i) 
		{

			// 強制解約対象リストより強制解約対象マップを取得する
			JBSbatServiceInterfaceMap kyseKiykMap = kyseKiykList.get(i);

			// 強制解約対象マップより、請求契約番号、請求年月を取得する
			String seikyKeiNo = kyseKiykMap.getString(JBSbatCHIFM246.SEIKY_KEI_NO);

			// 前回請求契約番号がnull(未設定の場合現在の請求契約番号を登録する)1回目だけ呼び出される
			if (isNullBlank(oldZenkaiSeikyKeiNo)) 
			{
				// 請求契約番号を設定する
				oldZenkaiSeikyKeiNo = kyseKiykMap.getString(JBSbatCHIFM246.SEIKY_KEI_NO);
// v41.00.00 ADD START
				oldEarlyUseStpTgFlg = kyseKiykMap.getString(JBSbatCH_T_TOKUSOKU.EARLY_USE_STP_TG_FLG);
// v41.00.00 ADD END
			}

			// 前回請求契約番号と今回請求契約番号が同じ場合、最古未納月リストにマップを格納する
			if(oldZenkaiSeikyKeiNo.equals(seikyKeiNo))
			{
				// 最古リストに請求年月を設定する
				saikoList.add(kyseKiykMap.getString(JBSbatCHIFM246.SAIKEN_YM));

				// 前回請求契約番号と今回請求契約番号が違う場合、もしくは最終レコードの場合マップ設定処理を行う
				
			}
			else
			{
				
				// 最古未納マップに設定する
// v41.00.00 MOD START
//				setSaikoMinoYm();
				setSaikoMinoYm(oldEarlyUseStpTgFlg);
// v41.00.00 MOD END

				// 前回請求契約番号に次の対象の請求契約番号を設定する
				oldZenkaiSeikyKeiNo = kyseKiykMap.getString(JBSbatCHIFM246.SEIKY_KEI_NO);
// v41.00.00 ADD START
				oldEarlyUseStpTgFlg = kyseKiykMap.getString(JBSbatCH_T_TOKUSOKU.EARLY_USE_STP_TG_FLG);
// v41.00.00 ADD END

				// 今回分の請求年月を設定する
				saikoList.add(kyseKiykMap.getString(JBSbatCHIFM246.SAIKEN_YM));

			}

			// 対象のレコードが最終レコードだった場合、最古未納マップ設定処理を行う
			if (kyseKiykList.size() - 1 == i) 
			{

				// 最古未納マップに設定する
// v41.00.00 MOD START
//				setSaikoMinoYm();
				setSaikoMinoYm(oldEarlyUseStpTgFlg);
// v41.00.00 MOD END

			}
		}
	}
	
	/**
	 * 請求契約番号毎に合算未納額と未納回数を取得する
	 * @param outputBean ファイル出力用
	 * @throws Exception
	 */
	private void createEoElecKyseKiykList(JBSbatOutputItem outputBean) throws Exception
	{
		
		//合算未納額リストを初期化する
		gokeiMinoList = new ArrayList<String>();

		// 強制解約対象リストの件数分最古未納月取得処理を行う
		for (int i = 0; i < kyseKiykList.size(); ++i) 
		{

			// 強制解約対象リストより強制解約対象マップを取得する
			JBSbatServiceInterfaceMap kyseKiykMap = kyseKiykList.get(i);

			// 強制解約対象マップより、請求契約番号、請求年月を取得する
			String seikyKeiNo = kyseKiykMap.getString(JBSbatCHIFM248.SEIKY_KEI_NO);

			// 前回請求契約番号がnull(未設定の場合現在の請求契約番号を登録する)1回目だけ呼び出される
			if (isNullBlank(infoZenkaiSeikyKeiNo)) 
			{
				// 請求契約番号を設定する
				infoZenkaiSeikyKeiNo = kyseKiykMap.getString(JBSbatCHIFM248.SEIKY_KEI_NO);
				
				//前回督促ステータス
				zenkaiTokusokuStat = kyseKiykMap.getString(JBSbatCHIFM248.TOKUSOKU_STAT);
			}

			// 前回請求契約番号と今回請求契約番号が同じ場合、合算未納額リストに料金を追加する
			if(infoZenkaiSeikyKeiNo.equals(seikyKeiNo))
			{
				// 合算未納額リストに合計額を設定する
				gokeiMinoList.add(kyseKiykMap.getString(JBSbatCHIFM248.GOKEI_AMNT));

				// 前回請求契約番号と今回請求契約番号が違う場合、もしくは最終レコードの場合マップ設定処理を行う
			}
			else
			{
				// 合算未納額・未納回数を取得する
				setInfoMap(outputBean);

				// 前回請求契約番号に次の対象の合計金額を設定する
				infoZenkaiSeikyKeiNo = kyseKiykMap.getString(JBSbatCHIFM248.SEIKY_KEI_NO);
				
				zenkaiTokusokuStat = kyseKiykMap.getString(JBSbatCHIFM248.TOKUSOKU_STAT);

				// 今回分の合計額を設定する
				gokeiMinoList.add(kyseKiykMap.getString(JBSbatCHIFM248.GOKEI_AMNT));

			}

			// 対象のレコードが最終レコードだった場合、合算未納額・未納回数マップ設定処理を行う
			if (kyseKiykList.size() - 1 == i) 
			{

				// 最古未納マップに設定する
				setInfoMap(outputBean);

			}
		}
		
	}
	
	/**
	 * eo電気契約情報の取得を行う
	 * @param param
	 * 請求契約番号
	 * 課金先適用開始年月日
	 * 課金先適用終了年月日
	 * 予約適用年月日
	 * 予約適用年月日
	 * @throws Exception
	 */
	private void executeKK_T_KAKINS_CH_SELECT_006(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());

		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_CH_SELECT_006);
	}
	
	/**
	 * eo電気契約情報の取得を行う
	 * @param param
	 * サービス契約番号
	 * サービス契約グループ設定適用開始年月日
	 * サービス契約グループ設定適用終了年月日
	 * 回線内訳使用開始年月日
	 * 回線内訳使用終了年月日
	 * 予約適用年月日
	 * @throws Exception
	 */
	private void executeKK_T_SVKEI_GRP_SETE_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());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_GRP_SETE.selectBySqlDefine(paramList, KK_T_SVKEI_GRP_SETE_CH_SELECT_001);
	}
	
	/**
	 * 請求抑止情報の取得を行う
	 * @param param
	 * 請求契約番号
// 2017.08.08  OM-2017-0000666  mod start
//	 * 請求抑止年月日
//	 * 請求抑止解除年月日
	 * 請求抑止フラグ
// 2017.08.08  OM-2017-0000666  mod end
	 * @throws Exception
	 */
	private void executeKK_T_SEIKY_YOKSI_CH_SELECT_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
// 2017.08.08  OM-2017-0000666  del start
//		paramList.setValue(param[2].toString());
// 2017.08.08  OM-2017-0000666  del end

		// DBアクセスを実行します
		db_KK_T_SEIKY_YOKSI.selectBySqlDefine(paramList, KK_T_SEIKY_YOKSI_CH_SELECT_008);
	}

	/**
	 * サービス契約番号(eo電気）を元にネットの契約情報を取得し、ネットのお客様ID、サービス契約ステータスを格納する
	 * @param outmap   出力ファイル用マップ
	 * @param dbKakins eo電気契約情報マップ
	 * @throws Exception
	 */
	private void setSvcInfo(JBSbatServiceInterfaceMap outmap, JBSbatCommonDBInterface dbKakins) throws Exception
	{
		
		//eo電気契約情報に紐付くネットの契約情報を取得する
		executeKK_T_SVKEI_GRP_SETE_CH_SELECT_001(new Object[] {dbKakins.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO), 
													super.opeDate,
													super.opeDate,
													super.opeDate,
													super.opeDate,
													super.opeDate
												});
		
		//eoNet契約情報マップを作成する
		JBSbatCommonDBInterface dbSvkeiGrpSete = null;
		//取得した督促債権関連検索結果分出力ファイルを作成する
		while(null != (dbSvkeiGrpSete = db_KK_T_SVKEI_GRP_SETE.selectNext()))
		{
			// サービス契約番号
			outmap.setString(JBSbatCHIFM248.SVC_KEI_NO_NET,  dbSvkeiGrpSete.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		    // サービス契約ステータス
			outmap.setString(JBSbatCHIFM248.SVC_KEI_STAT_NET,  svcKeiStatMap.get(dbSvkeiGrpSete.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT)));

		}
		
	}
	
	/**
	 * 請求契約番号を元に請求抑止フラグ＝1：抑止ありの条件で検索を行い
	 * 取得した請求抑止コードを和名に変換し、;区切りで文字列結合し呼出元に返却する
	 * @return [;]区切りされた請求抑止コード（和名）
	 * @throws Exception 
	 */
	private  String getSeikyYksCd() throws Exception
	{
		
		executeKK_T_SEIKY_YOKSI_CH_SELECT_008(new Object[] {infoZenkaiSeikyKeiNo, 
// 2017.08.08  OM-2017-0000666  mod start 請求抑止フラグ＝１（抑止あり）の抑止コードを取得
//															super.opeDate,
//															super.opeDate,
															JACStrConst.YOKSI_FLG_ARI
// 2017.08.08  OM-2017-0000666  mod end
															});

		//請求抑止情報設定用
		StringBuilder sb = new StringBuilder();
		//請求抑止情報区切文字設定用カウント
		int seikyYksCount = 0;
		
		//請求抑止情報取得マップを作成する
		JBSbatCommonDBInterface dbSeikyYks = null;
		
		//取得した請求抑止コードの件数分ループを行い、請求抑止情報を作成する
		while(null != (dbSeikyYks = db_KK_T_SEIKY_YOKSI.selectNext()))
		{
			
			//最初のレコード以外の場合区切り文字として[;]セミコロンを設定する
			if(0 != seikyYksCount)
			{
				sb.append(";");
			}
			sb.append(seikyYkcCdMap.get(dbSeikyYks.getString(JBSbatKK_T_SEIKY_YOKSI.SEIKY_YOKSI_CD)));
			
			seikyYksCount++;

		}
		return sb.toString();
	}
	
}
