/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKFirstSeikyYmUpdSeikyYm
*	ソースファイル名	：JBSbatKKFirstSeikyYmUpdSeikyYm.java
*	作成者				：富士通　
*	作成日				：2012年10月20日
*＜機能概要＞
*　初回請求年月更新（請求年月）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/10/20  FJ)中作		【ANK-1144-00-99】料金管理システム 請求書要否 初回請求月について対応
*	v4.00.01	2012/12/29  FJ)中作		【ST4-2012-0000301】障害対応
*	v4.00.02	2013/02/20	FJ)古内		【ST4-2013-0000122】性能障害対応
*	v4.00.03	2013/03/16	FJ)石原		【IT1-2013-0000498】システムエラー対処の横展開
*	v4.00.04	2013/03/24	FJ)強矢		【ST4-2013-0000344】性能障害対応
*	v4.00.05	2013/04/04	FJ)強矢		【ST4-2013-0000344】性能障害対応
*	v4.00.06	2013/04/22	FJ)松浦		【ST4-2013-0000344】性能障害対応
*	v4.00.07	2013/09/19	FJ)柳		【OM-2013-0002163】障害対応
*	v4.00.08	2013/09/28	FJ)柳		【OM-2013-0002484】障害対応
*	v4.00.09	2013/11/27	FJ)古内		【OM-2013-0004680】障害対応
*	v8.00.00	2014/04/24	FJ)澁谷		【OM-2014-0001601】障害対応
*	v9.00.00	2014/09/17	FJ)星野		【OM-2014-0003034】障害対応
*	v12.00.00	2015/02/10	FJ)柿坂		【OM-2015-0000157】障害対応
*	v20.00.00	2015/10/08	FJ)北川		【ANK-2073-00-00】支払方法変更時のメール通知機能の追加
*	v24.00.00	2015/09/30	FJ)柿坂		【ANK-2691-00-00】請求書発行手数料の見直し対応
*	v24.00.01	2016/01/20	FJ)大山		【OM-2015-0002547 】性能改善対応
*	v41.00.00	2019/02/04	FJ)星野		【ANK-3396-00-00】利用停止スケジュールの変更
*	v54.00.00	2021/08/27	FJ)森脇		【ANK-4145-00-00】夜間バッチ性能改善対応
*********************************************************************/
package eo.business.service;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM074;
import eo.business.util.table.JBSbatKK_T_PRG;
import eo.business.util.table.JBSbatKK_T_SEIKY_KEI;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JPCDateChecker;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatOracleSeqUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKFirstSeikyYmUpdSeikyYm extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(請求契約)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_KEI = "KK_T_SEIKY_KEI";

// ++++++++++ v24.00.00 削除開始 ++++++++++
//	/** テーブル(請求オプションサービス契約)*/
//	private static final String D_TBL_NAME_KK_T_SEIOPSVC_KEI = "KK_T_SEIOPSVC_KEI";
// ++++++++++ v24.00.00 削除終了 ++++++++++

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

// ++++++++++ v24.00.00 削除開始 ++++++++++
//	/** SQL定義キー(KK_SELECT_016)*/
//	private static final String KK_T_SEIOPSVC_KEI_KK_SELECT_016 = "KK_SELECT_016";
// ++++++++++ v24.00.00 削除終了 ++++++++++

	/** テーブルアクセスクラス(請求契約)検索用*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI_SELECT = null;
	
	/** テーブルアクセスクラス(請求契約)登録用*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI_INSERT = null;
	
	/** テーブルアクセスクラス(請求契約)更新用*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI_UPDATE = null;
	
	/** テーブルアクセスクラス(請求契約)排他用*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI_HAITA = null;

// ++++++++++ v24.00.00 削除開始 ++++++++++
//	/** テーブルアクセスクラス(請求オプションサービス契約)検索用*/
//	private JBSbatSQLAccess db_KK_T_SEIOPSVC_KEI_SELECT = null;
//	
//	/** テーブルアクセスクラス(請求オプションサービス契約)登録用*/
//	private JBSbatSQLAccess db_KK_T_SEIOPSVC_KEI_INSERT = null;
//	
//	/** テーブルアクセスクラス(請求オプションサービス契約)更新用*/
//	private JBSbatSQLAccess db_KK_T_SEIOPSVC_KEI_UPDATE = null;
// ++++++++++ v24.00.00 削除開始 ++++++++++
	
	/** テーブルアクセスクラス(共通部品)*/
	private JBSbatSQLAccess stmt = null;
	
	/** 無効フラグ(有効)*/
	private static final String MK_FLG_YK = "0";
	
	/** 異動区分(00015:請求先情報変更)*/
	private static final String IDO_DIV_SEIKY_IFCG = "00015";
	
	/** シーケンスID(進捗)*/
	private static final String SEQ_ID_PRG_NO = "SEQ_PRG_NO";
	
	/** 空白*/
	private static final String SPACE = "";
	
	/** 異動区分 00015:請求契約情報変更*/
	private static final String IDO_DIV_SIKY_KEI_INFO_CHG = "00015";
	
	/** 進捗ステータス 4100:請求先変更完了*/
	private static final String PRG_STAT_SIKY_SK_CHG_FIN = "4100";
	
	/** 業務パラメータＩＤ(KK_FIRST_SEIKY_PRD:初回請求無料期間) */
	private static final String PARAM_ID_KK_FIRST_SEIKY_PRD = "KK_FIRST_SEIKY_PRD";
	
	/** 業務パラメータＩＤ(KK_SKSHAK_HCHRG_PRGP:請求書発行手数料非課金料金グループ) */
	private static final String PARAM_ID_KK_SKSHAK_HCHRG_PRGP = "KK_SKSHAK_HCHRG_PRGP";
	
	/** 改行コードCRLF */
	private static final String LINE_SEPARAOR_CRLF = "\r\n";
	
	/** エンコード */
	private static final String ENCODE = "Shift-JIS";
	
	/** 初回請求無料期間（業務パラメータ設定値）*/
	private String firstSeikyPrd = "";
	
	/** 請求書発行手数料非課金料金グループ（業務パラメータ設定値）*/
	private String skshakHchrgPrgp = "";
	
	/** 最終処理請求契約番号 */
	private String workSeikyKeiNo = "";
	
	/** 処理済予約請求契約 */
	// 2016/1/20 V24.00.01 MOD START
//	private List<String> processedRsvSeiky = new ArrayList<String>();
	private Set<String> processedRsvSeiky = new HashSet<String>();
	// 2016/1/20 V24.00.01 MOD END
	
// ++++++++++ v24.00.00 削除開始 ++++++++++
//	//*** v9.00.00 追加開始 ***/
//	/** 処理済請求オプションサービス契約 */
//	private List<String> processedSeiOp = new ArrayList<String>();
//	//*** v9.00.00 追加終了 ***/
// ++++++++++ v24.00.00 削除終了 ++++++++++
	
	/** 進捗登録リスト */
	private List<JBSbatCommonDBInterface> insPrgLst = null;
	
	/** 進捗登録リストフルパス */
	private String midInsPrgPath = "";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SEIKY_KEI_SELECT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		db_KK_T_SEIKY_KEI_INSERT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		db_KK_T_SEIKY_KEI_UPDATE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		db_KK_T_SEIKY_KEI_HAITA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
// ++++++++++ v24.00.00 削除開始 ++++++++++
//		db_KK_T_SEIOPSVC_KEI_SELECT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIOPSVC_KEI);
//		db_KK_T_SEIOPSVC_KEI_INSERT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIOPSVC_KEI);
//		db_KK_T_SEIOPSVC_KEI_UPDATE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIOPSVC_KEI);
// ++++++++++ v24.00.00 削除終了 ++++++++++
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 共通部品用
		stmt = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		
		// 業務パラメータより初回請求無料期間取得
		firstSeikyPrd = JKKBatCommon.getWorkParamSetteValue(commonItem, PARAM_ID_KK_FIRST_SEIKY_PRD);
		
		// 業務パラメータより初回請求無料期間が取得できなかった場合
		if (firstSeikyPrd == null)
		{
			throw new JBSbatBusinessException(
					JPCBatchMessageConstant.EKKB0150JE, new String[]{"業務パラメータ管理TBL(KEY:" + PARAM_ID_KK_FIRST_SEIKY_PRD + ")"});
		}
		
		// 業務パラメータより請求書発行手数料非課金料金グループ
		skshakHchrgPrgp = JKKBatCommon.getWorkParamSetteValue(commonItem, PARAM_ID_KK_SKSHAK_HCHRG_PRGP);
		
		// 業務パラメータより請求書発行手数料非課金料金グループが取得できなかった場合
		if (skshakHchrgPrgp == null)
		{
			throw new JBSbatBusinessException(
					JPCBatchMessageConstant.EKKB0150JE, new String[]{"業務パラメータ管理TBL(KEY:" + PARAM_ID_KK_SKSHAK_HCHRG_PRGP + ")"});
		}
		
		// リストの初期化
		insPrgLst = new ArrayList<JBSbatCommonDBInterface>();
		
		// フリー項目値の取得をします。
		String[] free_item = commonItem.getFreeItem().split(JKKBatConst.S_PARAM_DELIM);
		
		// フリー項目値をセットします。
		// １．中間ファイル「進捗登録リスト」ファイルパス
		midInsPrgPath = free_item[0];
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("請求年月情報ファイル：請求契約番号【" + inMap.getString(JBSbatKKIFM074.SEIKY_KEI_NO) + "】");
		super.logPrint.printDebugLog("請求年月情報ファイル：請求年月【" + inMap.getString(JBSbatKKIFM074.SEIKY_YM) + "】");

		// 請求契約番号
		String seikyKeiNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SEIKY_KEI_NO));
		
		// 予約適用年月日
		String rsvAplyYmd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.RSV_APLY_YMD));
		
		// 請求年月
		String seikyYm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SEIKY_YM));
		
		// 予約適用年月日 > 運用日の場合（予約レコードの処理）
		if (JPCDateChecker.isFutureDate(rsvAplyYmd, super.opeDate, "0"))
		{
			String geneAddDtm = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SEIKY_GENE_ADD_DTM));
			if (!processedRsvSeiky.contains(seikyKeiNo + "_" + geneAddDtm))
			{
				// 予約の処理
				// 予約レコードに対し請求年月を設定する。(アップデート)
				updateSeikyKei(seikyKeiNo, geneAddDtm, seikyYm);
				processedRsvSeiky.add(seikyKeiNo + "_" + geneAddDtm);
			}
		}
		// 予約適用年月日 <= 運用日の場合(カレントレコードの処理)
		else
		{
			// 直前のレコードと請求契約番号に差異がある場合のみ実行する。
			if (!workSeikyKeiNo.equals(seikyKeiNo))
			{
				// カレントレコード
				// カレントレコードに対し請求年月を設定する。（インサート）
				// 請求契約テーブル登録
				createSeikyKei(seikyKeiNo, 
				               JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SEIKY_GENE_ADD_DTM)),
				               seikyYm);
			//*** v9.00.00 追加開始 ***/
			// 下から移動
				// 2016/1/20 V24.00.01 MOD START
//				processedRsvSeiky = new ArrayList<String>();
				processedRsvSeiky.clear();
				// 2016/1/20 V24.00.01 MOD END
				workSeikyKeiNo = seikyKeiNo;
				
// ++++++++++ v24.00.00 削除開始 ++++++++++
//				// 請求契約番号がキーブレイクしたら処理済請求オプションサービス契約番号リストもクリアする
//				processedSeiOp = new ArrayList<String>();
// ++++++++++ v24.00.00 削除終了 ++++++++++
			}
			//*** v9.00.00 追加終了 ***/
				
// ++++++++++ v24.00.00 削除開始 ++++++++++
//			// 請求オプションが存在する場合、請求オプションの更新を行う。
//			String seiOpSvcKeiNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SEIOP_SVC_KEI_NO));
//			if (!"".equals(seiOpSvcKeiNo))
//			{
//				//*** v9.00.00 追加開始 ***/
//				// 処理済の番号は対象外
//				if(!processedSeiOp.contains(seiOpSvcKeiNo)){
//				//*** v9.00.00 追加終了 ***/
//					
//					String prcGrpCd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.PRC_GRP_CD));
//					String[] skshakHchrgPrgpList = skshakHchrgPrgp.split(",");
//					boolean prcGrpCdChk = true;
//					for(int i = 0; i < skshakHchrgPrgpList.length; i++)
//					{
//						if(skshakHchrgPrgpList[i].equals(prcGrpCd)){
//							prcGrpCdChk = false;
//						}
//					}
//					
//					if (prcGrpCdChk)
//					{
//						String svcKeiStat = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SVC_KEI_STAT));
//						if ("100".equals(svcKeiStat) || "210".equals(svcKeiStat) || "220".equals(svcKeiStat))
//						{
//							// 請求オプションサービス契約テーブル登録
//							createSeiOpSvcKei(seiOpSvcKeiNo, 
//									          JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SEIOP_GENE_ADD_DTM)),
//									          seikyYm,rsvAplyYmd);
//							
//							//*** v9.00.00 追加開始 ***/
//							// 処理済請求オプションサービス契約番号を格納
//							processedSeiOp.add(seiOpSvcKeiNo);
//							//*** v9.00.00 追加終了 ***/
//						}
//					}
//					
//				//*** v9.00.00 追加開始 ***/
//				}
//				//*** v9.00.00 追加終了 ***/
//			}
// ++++++++++ v24.00.00 削除終了 ++++++++++
				
			//*** v9.00.00 削除開始 ***/
			// 上に移動
//				processedRsvSeiky = new ArrayList<String>();
//				workSeikyKeiNo = seikyKeiNo;
//			}
			//*** v9.00.00 削除終了 ***/
			
			// 進捗の登録
			// サービス契約番号単位で進捗登録
			addInsPrgLst(seikyKeiNo, 
					  JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM074.SVC_KEI_NO)));
		}
		
		super.logPrint.printDebugLog("execute_END");
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// 2016/1/20 V24.00.01 ADD START
		db_KK_T_SEIKY_KEI_INSERT.clearBatch();
		db_KK_T_SEIKY_KEI_UPDATE.clearBatch();
		// 2016/1/20 V24.00.01 ADD END

		// DBアクセスクラスをクローズします
		db_KK_T_SEIKY_KEI_SELECT.close();
		db_KK_T_SEIKY_KEI_INSERT.close();
		db_KK_T_SEIKY_KEI_UPDATE.close();
		db_KK_T_SEIKY_KEI_HAITA.close();
// ++++++++++ v24.00.00 削除開始 ++++++++++
//		db_KK_T_SEIOPSVC_KEI_SELECT.close();
//		db_KK_T_SEIOPSVC_KEI_INSERT.close();
//		db_KK_T_SEIOPSVC_KEI_UPDATE.close();
// ++++++++++ v24.00.00 削除終了 ++++++++++
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		// 共通部品用
		stmt.close();
		
		// 進捗登録リストの出力処理
		executeOutFileWritePrg();
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
// ++++++++++ v24.00.00 削除開始 ++++++++++
//	/**
//	 * SQLKEY(KK_SELECT_016)で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_SEIOPSVC_KEI_KK_SELECT_016(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_SEIOPSVC_KEI_SELECT.selectBySqlDefine(paramList, KK_T_SEIOPSVC_KEI_KK_SELECT_016);
//	}
// ++++++++++ v24.00.00 削除終了 ++++++++++

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
	 *		 	請求契約ステータス				SEIKY_KEI_STAT
	 *		 	ＳＹＳＩＤ				SYSID
	 *		 	マンションオーナーＩＤ				MANSION_OWNR_ID
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	請求方法コード				SEIKY_WAY_CD
	 *		 	次回請求方法コード				NEXT_SEIKY_WAY_DIV
	 *		 	契約締結年月日				KEI_CNC_YMD
	 *		 	請求契約解約年月日				SEIKY_KEI_DSL_YMD
	 *		 	請求契約解約理由コード				SEIKY_KEI_DLRE_CD
	 *		 	請求契約解約理由メモ				SEIKY_KEI_DLRE_MEMO
	 *		 	請求サイクルコード				SEIKY_CYCLE_CD
	 *		 	請求方法変更年月日				SEIKY_WAY_CHGE_YMD
	 *		 	請求契約カナ名				SEIKY_KEI_KANA
	 *		 	請求方法番号（口座）				SEIKY_WAY_NO_KOZA
	 *		 	請求方法番号（クレジットカード）				SEIKY_WAY_NO_CRECARD
	 *		 	情報表示コード				INFO_DSP_CD
	 *		 	請求書発行要否				SEIKYUS_HAKKO_YH
	 *		 	請求書送付先＿契約者住所差異フラグ				SKS_SHS_KSH_AD_SAI_FLG
	 *		 	請求書送付先名＿お客様名差異フラグ				SKS_SHS_NM_CUST_NM_SAI_FLG
	 *		 	送付先法人格種別コード				SHS_HOJIN_SBT_CD
	 *		 	送付先法人格前後指定コード				SHS_HOJIN_ZENGO_SHITEI_CD
	 *		 	送付先カナ名				SHS_KANA
	 *		 	送付先名				SOHUS_NM
	 *		 	送付先部課名				SOHUS_BKM
	 *		 	送付先担当者名				SOHUS_TNTSHA_NM
	 *		 	送付先住所コード				SOHUS_AD_CD
	 *		 	送付先郵便番号				SOHUS_PCD
	 *		 	送付先都道府県名				SOHUS_STATE_NM
	 *		 	送付先市区町村名				SOHUS_CITY_NM
	 *		 	送付先大字通称名				SOHUS_OAZTSU_NM
	 *		 	送付先字丁目名				SOHUS_AZCHO_NM
	 *		 	送付先住所補記・建物名				SOHUS_ADRTTM
	 *		 	送付先住所補記・部屋番号				SOHUS_ADRRM
	 *		 	送付先番地号				SOHUS_BNCHIGO
	 *		 	送付先住所手動入力フラグ				SOHUS_AD_MAN_INPUT_FLG
	 *		 	送付先電話番号				SOHUS_TELNO
	 *		 	送付先ＦＡＸ番号				SOHUS_FAX_NO
	 *		 	送付先メールアドレス				SOHUS_MLAD
	 *		 	請求書送付先変更年月日				SEIKYUS_SOHUS_CHGE_YMD
	 *		 	請求方法適用調整年月日				SEIKY_WAY_APLY_ADJ_YMD
	 *		 	強制窓口フラグ				KYOSEI_MADOGUCHI_FLG
	 *		 	予約適用開始希望年月日				RSV_TSTA_KIBO_YMD
	 *		 	予約適用年月日				RSV_APLY_YMD
	 *		 	予約取消年月日				RSV_CL_YMD
	 *		 	予約適用コード				RSV_APLY_CD
	 *		 	異動区分				IDO_DIV
	 *		 	初回請求年月				FIRST_SEIKY_YM
	 *		 	初回支払申込書送付要否				FIRST_PAY_MSKMSHO_SOHU_YH
	 *		 	初回支払申込書送付年月日				FIRST_PAY_MSKMSHO_SOHU_YMD
	 *		 	初回支払申込書受領年月日				FIRST_PAY_MSKMSHO_RCP_YMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 *		 	支払方法通知メール制御コード				PAYWAYTCML_CTL_CD
	 *		 	支払方法通知メール制御コード変更年月日				PAYWAYTCML_CTL_CD_CHG_YMD
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_KEI_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SEIKY_KEI_NO", setParam[0]);
		setMap.setValue("GENE_ADD_DTM", setParam[1]);
		setMap.setValue("SEIKY_KEI_STAT", setParam[2]);
		setMap.setValue("SYSID", setParam[3]);
		setMap.setValue("MANSION_OWNR_ID", setParam[4]);
		setMap.setValue("MSKM_DTL_NO", setParam[5]);
		setMap.setValue("SEIKY_WAY_CD", setParam[6]);
		setMap.setValue("NEXT_SEIKY_WAY_DIV", setParam[7]);
		setMap.setValue("KEI_CNC_YMD", setParam[8]);
		setMap.setValue("SEIKY_KEI_DSL_YMD", setParam[9]);
		setMap.setValue("SEIKY_KEI_DLRE_CD", setParam[10]);
		setMap.setValue("SEIKY_KEI_DLRE_MEMO", setParam[11]);
		setMap.setValue("SEIKY_CYCLE_CD", setParam[12]);
		setMap.setValue("SEIKY_WAY_CHGE_YMD", setParam[13]);
		setMap.setValue("SEIKY_KEI_KANA", setParam[14]);
		setMap.setValue("SEIKY_WAY_NO_KOZA", setParam[15]);
		setMap.setValue("SEIKY_WAY_NO_CRECARD", setParam[16]);
		setMap.setValue("INFO_DSP_CD", setParam[17]);
		setMap.setValue("SEIKYUS_HAKKO_YH", setParam[18]);
		setMap.setValue("SKS_SHS_KSH_AD_SAI_FLG", setParam[19]);
		setMap.setValue("SKS_SHS_NM_CUST_NM_SAI_FLG", setParam[20]);
		setMap.setValue("SHS_HOJIN_SBT_CD", setParam[21]);
		setMap.setValue("SHS_HOJIN_ZENGO_SHITEI_CD", setParam[22]);
		setMap.setValue("SHS_KANA", setParam[23]);
		setMap.setValue("SOHUS_NM", setParam[24]);
		setMap.setValue("SOHUS_BKM", setParam[25]);
		setMap.setValue("SOHUS_TNTSHA_NM", setParam[26]);
		setMap.setValue("SOHUS_AD_CD", setParam[27]);
		setMap.setValue("SOHUS_PCD", setParam[28]);
		setMap.setValue("SOHUS_STATE_NM", setParam[29]);
		setMap.setValue("SOHUS_CITY_NM", setParam[30]);
		setMap.setValue("SOHUS_OAZTSU_NM", setParam[31]);
		setMap.setValue("SOHUS_AZCHO_NM", setParam[32]);
		setMap.setValue("SOHUS_ADRTTM", setParam[33]);
		setMap.setValue("SOHUS_ADRRM", setParam[34]);
		setMap.setValue("SOHUS_BNCHIGO", setParam[35]);
		setMap.setValue("SOHUS_AD_MAN_INPUT_FLG", setParam[36]);
		setMap.setValue("SOHUS_TELNO", setParam[37]);
		setMap.setValue("SOHUS_FAX_NO", setParam[38]);
		setMap.setValue("SOHUS_MLAD", setParam[39]);
		setMap.setValue("SEIKYUS_SOHUS_CHGE_YMD", setParam[40]);
		setMap.setValue("SEIKY_WAY_APLY_ADJ_YMD", setParam[41]);
		setMap.setValue("KYOSEI_MADOGUCHI_FLG", setParam[42]);
		setMap.setValue("RSV_TSTA_KIBO_YMD", setParam[43]);
		setMap.setValue("RSV_APLY_YMD", setParam[44]);
		setMap.setValue("RSV_CL_YMD", setParam[45]);
		setMap.setValue("RSV_APLY_CD", setParam[46]);
		setMap.setValue("IDO_DIV", setParam[47]);
		setMap.setValue("FIRST_SEIKY_YM", setParam[48]);
		setMap.setValue("FIRST_PAY_MSKMSHO_SOHU_YH", setParam[49]);
		setMap.setValue("FIRST_PAY_MSKMSHO_SOHU_YMD", setParam[50]);
		setMap.setValue("FIRST_PAY_MSKMSHO_RCP_YMD", setParam[51]);
		setMap.setValue("ADD_DTM", setParam[52]);
		setMap.setValue("ADD_OPEACNT", setParam[53]);
		setMap.setValue("UPD_DTM", setParam[54]);
		setMap.setValue("UPD_OPEACNT", setParam[55]);
		setMap.setValue("DEL_DTM", setParam[56]);
		setMap.setValue("DEL_OPEACNT", setParam[57]);
		setMap.setValue("MK_FLG", setParam[58]);
		setMap.setValue("ADD_UNYO_YMD", setParam[59]);
		setMap.setValue("ADD_TRN_ID", setParam[60]);
		setMap.setValue("UPD_UNYO_YMD", setParam[61]);
		setMap.setValue("UPD_TRN_ID", setParam[62]);
		setMap.setValue("DEL_UNYO_YMD", setParam[63]);
		setMap.setValue("DEL_TRN_ID", setParam[64]);
// ANK-2073-00-00 ADD START
		setMap.setValue("PAYWAYTCML_CTL_CD", setParam[65]);
		setMap.setValue("PAYWAYTCML_CTL_CD_CHG_YMD", setParam[66]);
// ANK-2073-00-00 ADD END
// ANK-3396-00-00対応 2019/02/04 星野 ADD START
		setMap.setValue("KYOSEI_DSL_YKK_CNT", setParam[67]);
// ANK-3396-00-00対応 2019/02/04 星野 ADD END
	
		// 2016/1/20 V24.00.01 MOD START
		// DBアクセスを実行します
//		db_KK_T_SEIKY_KEI_INSERT.insertByPrimaryKeys(setMap);
		db_KK_T_SEIKY_KEI_INSERT.insertByPrimaryKeysBatch(setMap);
		// 2016/1/20 V24.00.01 MOD END
	}

// ++++++++++ v24.00.00 削除開始 ++++++++++
//	/**
//	 * PK(全項目登録)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数で設定項目マップを作ります。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
//	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
//	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
//	 *		 	請求オプションサービス契約ステータス				SEIOPSVC_KEI_STAT
//	 *		 	請求契約番号				SEIKY_KEI_NO
//	 *		 	ＳＹＳＩＤ				SYSID
//	 *		 	請求オプションサービスコード				SEIOPSVC_CD
//	 *		 	料金コースコード				PCRS_CD
//	 *		 	料金プランコード				PPLAN_CD
//	 *		 	申込明細番号				MSKM_DTL_NO
//	 *		 	サービス契約番号				SVC_KEI_NO
//	 *		 	試用加入年月日				FTRIAL_KANYU_YMD
//	 *		 	試用期間終了年月日				FTRIAL_PRD_ENDYMD
//	 *		 	本加入年月日				HONKANYU_YMD
//	 *		 	本加入移行期限年月日				HONKANYU_IKO_KIGEN_YMD
//	 *		 	サービス利用開始希望年月日				SVC_USE_STA_KIBO_YMD
//	 *		 	予約適用開始希望年月日				RSV_TSTA_KIBO_YMD
//	 *		 	請求オプションサービス契約後続業務依頼年月日				SEIOPSVC_KEI_KZKWRK_REQYMD
//	 *		 	照査年月日				SHOSA_YMD
//	 *		 	照査取消年月日				SHOSA_CL_YMD
//	 *		 	審査結果送信コード				SKEKKA_SEND_CD
//	 *		 	契約締結年月日				KEI_CNC_YMD
//	 *		 	予約適用年月日				RSV_APLY_YMD
//	 *		 	予約取消年月日				RSV_CL_YMD
//	 *		 	予約適用コード				RSV_APLY_CD
//	 *		 	プラン開始年月日				PLAN_STAYMD
//	 *		 	プラン終了年月日				PLAN_ENDYMD
//	 *		 	プラン課金開始年月日				PLAN_CHRG_STAYMD
//	 *		 	プラン課金終了年月日				PLAN_CHRG_ENDYMD
//	 *		 	プラン終了種別コード				PLAN_END_SBT_CD
//	 *		 	サービスキャンセル年月日				SVC_CANCEL_YMD
//	 *		 	サービスキャンセル理由コード				SVC_CANCEL_RSN_CD
//	 *		 	サービス開始年月日				SVC_STA_YMD
//	 *		 	サービス課金開始年月日				SVC_CHRG_STAYMD
//	 *		 	サービス停止年月日				SVC_STP_YMD
//	 *		 	サービス停止理由コード				SVC_STP_RSN_CD
//	 *		 	サービス停止解除年月日				SVC_STP_RLS_YMD
//	 *		 	サービス停止解除理由コード				SVC_STP_RLS_RSN_CD
//	 *		 	休止中断コード				PAUSE_STP_CD
//	 *		 	サービス休止年月日				SVC_PAUSE_YMD
//	 *		 	サービス休止理由コード				SVC_PAUSE_RSN_CD
//	 *		 	サービス休止理由メモ				SVC_PAUSE_RSN_MEMO
//	 *		 	サービス休止解除年月日				SVC_PAUSE_RLS_YMD
//	 *		 	サービス休止解除理由コード				SVC_PAUSE_RLS_RSN_CD
//	 *		 	サービス休止解除理由メモ				SVC_PAUSE_RLS_RSN_MEMO
//	 *		 	サービス終了年月日				SVC_ENDYMD
//	 *		 	サービス課金終了年月日				SVC_CHRG_ENDYMD
//	 *		 	サービス解約年月日				SVC_DSL_YMD
//	 *		 	サービス解約理由コード				SVC_DLRE_CD
//	 *		 	サービス解約理由メモ				SVC_DLRE_MEMO
//	 *		 	サービス解約手続完了フラグ				SVC_DSL_TTDKI_FIN_FLG
//	 *		 	回復年月日				KAIHK_YMD
//	 *		 	サービスキャンセル取消年月日				SVC_CANCEL_CL_YMD
//	 *		 	サービス解約取消年月日				SVC_DSL_CL_YMD
//	 *		 	課金開始年月日補正有無				CHRG_STA_YMD_HOSEI_UM
//	 *		 	サービス休止課金開始年月日				SVC_PAUSE_CHRG_STA_YMD
//	 *		 	違約金発生コード				PNLTY_HASSEI_CD
//	 *		 	異動区分				IDO_DIV
//	 *		 	照査解約完了コード				SHOSA_DSL_FIN_CD
//	 *		 	登録年月日時分秒				ADD_DTM
//	 *		 	登録オペレータアカウント				ADD_OPEACNT
//	 *		 	更新年月日時分秒				UPD_DTM
//	 *		 	更新オペレータアカウント				UPD_OPEACNT
//	 *		 	削除年月日時分秒				DEL_DTM
//	 *		 	削除オペレータアカウント				DEL_OPEACNT
//	 *		 	無効フラグ				MK_FLG
//	 *		 	登録運用年月日				ADD_UNYO_YMD
//	 *		 	登録処理ＩＤ				ADD_TRN_ID
//	 *		 	更新運用年月日				UPD_UNYO_YMD
//	 *		 	更新処理ＩＤ				UPD_TRN_ID
//	 *		 	削除運用年月日				DEL_UNYO_YMD
//	 *		 	削除処理ＩＤ				DEL_TRN_ID
//	 * </pre>
//	 * <p>
//	 * @param setParam 設定項目の値。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_SEIOPSVC_KEI_PKINSERT(Object[] setParam) throws Exception
//	{
//		// 設定値のマップを作成します
//		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
//		setMap.setValue("SEIOPSVC_KEI_NO", setParam[0]);
//		setMap.setValue("GENE_ADD_DTM", setParam[1]);
//		setMap.setValue("SEIOPSVC_KEI_STAT", setParam[2]);
//		setMap.setValue("SEIKY_KEI_NO", setParam[3]);
//		setMap.setValue("SYSID", setParam[4]);
//		setMap.setValue("SEIOPSVC_CD", setParam[5]);
//		setMap.setValue("PCRS_CD", setParam[6]);
//		setMap.setValue("PPLAN_CD", setParam[7]);
//		setMap.setValue("MSKM_DTL_NO", setParam[8]);
//		setMap.setValue("SVC_KEI_NO", setParam[9]);
//		setMap.setValue("FTRIAL_KANYU_YMD", setParam[10]);
//		setMap.setValue("FTRIAL_PRD_ENDYMD", setParam[11]);
//		setMap.setValue("HONKANYU_YMD", setParam[12]);
//		setMap.setValue("HONKANYU_IKO_KIGEN_YMD", setParam[13]);
//		setMap.setValue("SVC_USE_STA_KIBO_YMD", setParam[14]);
//		setMap.setValue("RSV_TSTA_KIBO_YMD", setParam[15]);
//		setMap.setValue("SEIOPSVC_KEI_KZKWRK_REQYMD", setParam[16]);
//		setMap.setValue("SHOSA_YMD", setParam[17]);
//		setMap.setValue("SHOSA_CL_YMD", setParam[18]);
//		setMap.setValue("SKEKKA_SEND_CD", setParam[19]);
//		setMap.setValue("KEI_CNC_YMD", setParam[20]);
//		setMap.setValue("RSV_APLY_YMD", setParam[21]);
//		setMap.setValue("RSV_CL_YMD", setParam[22]);
//		setMap.setValue("RSV_APLY_CD", setParam[23]);
//		setMap.setValue("PLAN_STAYMD", setParam[24]);
//		setMap.setValue("PLAN_ENDYMD", setParam[25]);
//		setMap.setValue("PLAN_CHRG_STAYMD", setParam[26]);
//		setMap.setValue("PLAN_CHRG_ENDYMD", setParam[27]);
//		setMap.setValue("PLAN_END_SBT_CD", setParam[28]);
//		setMap.setValue("SVC_CANCEL_YMD", setParam[29]);
//		setMap.setValue("SVC_CANCEL_RSN_CD", setParam[30]);
//		setMap.setValue("SVC_STA_YMD", setParam[31]);
//		setMap.setValue("SVC_CHRG_STAYMD", setParam[32]);
//		setMap.setValue("SVC_STP_YMD", setParam[33]);
//		setMap.setValue("SVC_STP_RSN_CD", setParam[34]);
//		setMap.setValue("SVC_STP_RLS_YMD", setParam[35]);
//		setMap.setValue("SVC_STP_RLS_RSN_CD", setParam[36]);
//		setMap.setValue("PAUSE_STP_CD", setParam[37]);
//		setMap.setValue("SVC_PAUSE_YMD", setParam[38]);
//		setMap.setValue("SVC_PAUSE_RSN_CD", setParam[39]);
//		setMap.setValue("SVC_PAUSE_RSN_MEMO", setParam[40]);
//		setMap.setValue("SVC_PAUSE_RLS_YMD", setParam[41]);
//		setMap.setValue("SVC_PAUSE_RLS_RSN_CD", setParam[42]);
//		setMap.setValue("SVC_PAUSE_RLS_RSN_MEMO", setParam[43]);
//		setMap.setValue("SVC_ENDYMD", setParam[44]);
//		setMap.setValue("SVC_CHRG_ENDYMD", setParam[45]);
//		setMap.setValue("SVC_DSL_YMD", setParam[46]);
//		setMap.setValue("SVC_DLRE_CD", setParam[47]);
//		setMap.setValue("SVC_DLRE_MEMO", setParam[48]);
//		setMap.setValue("SVC_DSL_TTDKI_FIN_FLG", setParam[49]);
//		setMap.setValue("KAIHK_YMD", setParam[50]);
//		setMap.setValue("SVC_CANCEL_CL_YMD", setParam[51]);
//		setMap.setValue("SVC_DSL_CL_YMD", setParam[52]);
//		setMap.setValue("CHRG_STA_YMD_HOSEI_UM", setParam[53]);
//		setMap.setValue("SVC_PAUSE_CHRG_STA_YMD", setParam[54]);
//		setMap.setValue("PNLTY_HASSEI_CD", setParam[55]);
//		setMap.setValue("IDO_DIV", setParam[56]);
//		setMap.setValue("SHOSA_DSL_FIN_CD", setParam[57]);
//		setMap.setValue("ADD_DTM", setParam[58]);
//		setMap.setValue("ADD_OPEACNT", setParam[59]);
//		setMap.setValue("UPD_DTM", setParam[60]);
//		setMap.setValue("UPD_OPEACNT", setParam[61]);
//		setMap.setValue("DEL_DTM", setParam[62]);
//		setMap.setValue("DEL_OPEACNT", setParam[63]);
//		setMap.setValue("MK_FLG", setParam[64]);
//		setMap.setValue("ADD_UNYO_YMD", setParam[65]);
//		setMap.setValue("ADD_TRN_ID", setParam[66]);
//		setMap.setValue("UPD_UNYO_YMD", setParam[67]);
//		setMap.setValue("UPD_TRN_ID", setParam[68]);
//		setMap.setValue("DEL_UNYO_YMD", setParam[69]);
//		setMap.setValue("DEL_TRN_ID", setParam[70]);
//	
//		// DBアクセスを実行します
//		db_KK_T_SEIOPSVC_KEI_INSERT.insertByPrimaryKeys(setMap);
//	}
// ++++++++++ v24.00.00 削除終了 ++++++++++

//	/**
//	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数で設定項目マップを作ります。<br>
//	 *
//	 * 2.引数で条件マップを作ります。<br>
//	 *
//	 * 3.DBアクセスを実行します。<br>
//	 * 
//	 * 4.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
//	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
//	 *		 	SEIOPSVC_KEI_NO
//	 *		 	GENE_ADD_DTM
//	 * </pre>
//	 * <p>
//	 * @param setParam 設定項目の値。
//	 * @param whereParam 条件項目の値。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_SEIOPSVC_KEI_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
//	{
//		// 設定値のマップを作成します
//		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
//		setMap.setValue(JBSbatKK_T_SEIOPSVC_KEI.SVC_CHRG_STAYMD, setParam[0]);
//		
//		// 条件のマップを作成します
//		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
//		whereMap.setValue("SEIOPSVC_KEI_NO", whereParam[0]);
//		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);
//
//		// DBアクセスを実行します
//		db_KK_T_SEIOPSVC_KEI_UPDATE.updateByPrimaryKeys(whereMap, setMap);
//	}
	
	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SEIKY_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_KEI_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue(JBSbatKK_T_SEIKY_KEI.FIRST_SEIKY_YM, setParam[0]);
		
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SEIKY_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		// 2016/1/20 V24.00.01 MOD START
//		db_KK_T_SEIKY_KEI_UPDATE.updateByPrimaryKeys(whereMap, setMap);
		db_KK_T_SEIKY_KEI_UPDATE.updateByPrimaryKeysBatch(whereMap, setMap,1);
		// 2016/1/20 V24.00.01 MOD END
	}

	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	

	
	/**
	 * 請求契約登録<br>
	 * <p>
	 * @param seikyKeiNo 請求契約番号
	 * @param seikyYm 請求年月
	 * @param dbMap 処理対象データ
	 * @throws Exception 
	 */	
	private void createSeikyKei(String seikyKeiNo, String geneAddDtm, String seikyYm) throws Exception
	{
		// システム日付を取得
		String sysDate = JBSbatDateUtil.getSystemDateTimeStamp();
		
		super.logPrint.printDebugLog("請求契約番号---->" + seikyKeiNo);
		super.logPrint.printDebugLog("世代登録年月日時分秒---->" + geneAddDtm);
		
		// 請求契約テーブルに排他制御処理を実行する
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		// 請求契約番号
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, seikyKeiNo);
		
		// 世代登録年月日時分秒
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, geneAddDtm);
		
		// 請求契約排他制御
		// 2016/1/20 V24.00.01 MOD START
		JBSbatCommonDBInterface dbInfoSeikyKei = db_KK_T_SEIKY_KEI_SELECT.selectByPrimaryKeys(whereMap);
		// 2016/1/20 V24.00.01 MOD END
		
		if(null == dbInfoSeikyKei)
		{
			super.logPrint.printDebugLog("排他エラーが発生しました。{請求契約番号:" + seikyKeiNo + "}");
			
			// MSG 請求契約テーブルに該当する請求契約情報が存在しません。
			throw new JBSbatBusinessException("EKKB0210CE", new String[]{"請求契約", "該当する請求契約情報"});
		}
		
		// 新規登録データ格納
// ANK-3396-00-00対応 2019/02/04 星野 MOD START
//// ANK-2073-00-00 MOD START
//		// Object[] setParam = new Object[65];
//		Object[] setParam = new Object[67];
//// ANK-2073-00-00 MOD END
		Object[] setParam = new Object[68];
// ANK-3396-00-00対応 2019/02/04 星野 MOD END
		// 請求契約番号
		setParam[0] = seikyKeiNo;
		
		// 世代登録年月日時分秒
		setParam[1] = sysDate;
		
		// 請求契約ステータス
		setParam[2] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_STAT));
		
		// ＳＹＳＩＤ
		setParam[3] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SYSID));
		
		// マンションオーナーＩＤ
		setParam[4] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.MANSION_OWNR_ID));
		
		// 申込明細番号
		setParam[5] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.MSKM_DTL_NO));
		
		// 請求方法コード
		setParam[6] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_CD));
		
		// 次回請求方法コード
		setParam[7] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.NEXT_SEIKY_WAY_DIV));
		
		// 契約締結年月日
		setParam[8] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.KEI_CNC_YMD));
		
		// 請求契約解約年月日
		setParam[9] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_DSL_YMD));
		
		// 請求契約解約理由コード
		setParam[10] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_DLRE_CD));
		
		// 請求契約解約理由メモ
		setParam[11] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_DLRE_MEMO));
		
		// 請求サイクルコード
		setParam[12] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_CYCLE_CD));
		
		// 請求方法変更年月日
		setParam[13] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_CHGE_YMD));
		
		// 請求契約カナ名
		setParam[14] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_KANA));
		
		// 請求方法番号（口座）
		setParam[15] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_NO_KOZA));
		
		// 請求方法番号（クレジットカード）
		setParam[16] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_NO_CRECARD));
		
		// 情報表示コード
		setParam[17] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.INFO_DSP_CD));
		
		// 請求書発行要否
		setParam[18] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKYUS_HAKKO_YH));
		
		// 請求書送付先＿契約者住所差異フラグ
		setParam[19] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SKS_SHS_KSH_AD_SAI_FLG));
		
		// 請求書送付先名＿お客様名差異フラグ
		setParam[20] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SKS_SHS_NM_CUST_NM_SAI_FLG));
		
		// 送付先法人格種別コード
		setParam[21] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SHS_HOJIN_SBT_CD));
		
		// 送付先法人格前後指定コード
		setParam[22] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SHS_HOJIN_ZENGO_SHITEI_CD));
		
		// 送付先カナ名
		setParam[23] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SHS_KANA));
		
		// 送付先名
		setParam[24] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_NM));
		
		// 送付先部課名
		setParam[25] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_BKM));
		
		// 送付先担当者名
		setParam[26] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_TNTSHA_NM));
		
		// 送付先住所コード
		setParam[27] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_AD_CD));
		
		// 送付先郵便番号
		setParam[28] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_PCD));
		
		// 送付先都道府県名
		setParam[29] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_STATE_NM));
		
		// 送付先市区町村名
		setParam[30] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_CITY_NM));
		
		// 送付先大字通称名
		setParam[31] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_OAZTSU_NM));
		
		// 送付先字丁目名
		setParam[32] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_AZCHO_NM));
		
		// 送付先住所補記・建物名
		setParam[33] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_ADRTTM));
		
		// 送付先住所補記・部屋番号
		setParam[34] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_ADRRM));
		
		// 送付先番地号
		setParam[35] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_BNCHIGO));
		
		// 送付先住所手動入力フラグ
		setParam[36] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_AD_MAN_INPUT_FLG));
		
		// 送付先電話番号
		setParam[37] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_TELNO));
		
		// 送付先ＦＡＸ番号
		setParam[38] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_FAX_NO));
		
		// 送付先メールアドレス
		setParam[39] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_MLAD));
		
		// 請求書送付先変更年月日
		setParam[40] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKYUS_SOHUS_CHGE_YMD));
		
		// 請求方法適用調整年月日
		setParam[41] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_APLY_ADJ_YMD));
		
		// 強制窓口フラグ
		setParam[42] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.KYOSEI_MADOGUCHI_FLG));
		
		// 予約適用開始希望年月日
		setParam[43] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.RSV_TSTA_KIBO_YMD));
		
		// 予約適用年月日
		setParam[44] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD));
		
		// 予約取消年月日
		setParam[45] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.RSV_CL_YMD));
		
		// 予約適用コード
		setParam[46] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_CD));
		
		// 異動区分
		// 請求契約情報変更"00015"
		setParam[47] = IDO_DIV_SEIKY_IFCG;
		
		// 初回請求年月
		// 請求年月情報ファイル.請求年月
		setParam[48] = seikyYm;
		
		// 初回支払申込書送付要否
		setParam[49] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.FIRST_PAY_MSKMSHO_SOHU_YH));
		
		// 初回支払申込書送付年月日
		setParam[50] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.FIRST_PAY_MSKMSHO_SOHU_YMD));
		
		// 初回支払申込書受領年月日
		setParam[51] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.FIRST_PAY_MSKMSHO_RCP_YMD));
		
		// 登録年月日時分秒
		setParam[52] = sysDate;
		
		// 登録オペレータアカウント
		setParam[53] = super.batchUserId;
		
		// 更新年月日時分秒
		setParam[54] = sysDate;
		
		// 更新オペレータアカウント
		setParam[55] = super.batchUserId;
		
		// 削除年月日時分秒設定なし
		setParam[56] = "";
		
		// 削除オペレータアカウント
		setParam[57] = "";
		
		// 無効フラグ
		setParam[58] = MK_FLG_YK;
		
		// 登録運用年月日
		setParam[59] = "";
		
		// 登録処理ＩＤ
		setParam[60] = "";
		
		// 更新運用年月日
		setParam[61] = "";
		
		// 更新処理ＩＤ
		setParam[62] = "";
		
		// 削除運用年月日
		setParam[63] = "";
		
		// 削除処理ＩＤ
		setParam[64] = "";
// ANK-2073-00-00 ADD START
		// 支払方法通知メール制御コード
		setParam[65] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.PAYWAYTCML_CTL_CD));
		
		// 支払方法通知メール制御コード変更年月日
		setParam[66] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.PAYWAYTCML_CTL_CD_CHG_YMD));
// ANK-2073-00-00 ADD END
// ANK-3396-00-00対応 2019/02/04 星野 ADD START
		// 強制解約予告回数
		setParam[67] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.KYOSEI_DSL_YKK_CNT));
// ANK-3396-00-00対応 2019/02/04 星野 ADD END
		
		// 請求契約新規登録
		executeKK_T_SEIKY_KEI_PKINSERT(setParam);
		
	}
	
	/**
	 * 進捗情報を登録リストへ格納
	 * @param dbSeikyKeiNo 請求契約番号
	 * @param svcKeiNo サービス契約番号
	 * @throws Exception 
	 */
	private void addInsPrgLst(String dbSeikyKeiNo, String svcKeiNo) throws Exception
	{
		// システム日付を取得
		String sysDate = JBSbatDateUtil.getSystemDateTimeStamp();
		
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("PRG_NO", JBSbatStringUtil.padNumFormString(JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), SEQ_ID_PRG_NO), 12));
		setMap.setValue("MSKM_DTL_NO", SPACE);
		setMap.setValue("SEIKY_KEI_NO", dbSeikyKeiNo);
		setMap.setValue("SEIKY_WAY_NO_KOZA", SPACE);
		setMap.setValue("SEIKY_WAY_NO_CRECARD", SPACE);
		setMap.setValue("SVC_KEI_NO", svcKeiNo);
		setMap.setValue("SVC_KEI_UCWK_NO", SPACE);
		setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", SPACE);
		setMap.setValue("KKTK_SVC_KEI_NO", SPACE);
		setMap.setValue("OP_SVC_KEI_NO", SPACE);
		setMap.setValue("SEIOPSVC_KEI_NO", SPACE);
		setMap.setValue("SBOP_SVC_KEI_NO", SPACE);
		setMap.setValue("WRIB_SVC_KEI_NO", SPACE);
		// 異動区分 "00015:請求契約情報変更"
		setMap.setValue("IDO_DIV", IDO_DIV_SIKY_KEI_INFO_CHG);
		setMap.setValue("IDO_DTM", sysDate);
		setMap.setValue("PRG_STAT", PRG_STAT_SIKY_SK_CHG_FIN);
// ++++++++++++++++++ v4.00.09 変更開始 ++++++++++++++++++
//		setMap.setValue("PRG_DTM", super.opeDate + sysDate.substring(8));
// ANK-4145-00-00 MOD START
//		setMap.setValue("PRG_DTM", JBSbatDateUtil.adjustDate(super.opeDate, 1) + sysDate.substring(8));
		setMap.setValue("PRG_DTM", super.opeDate + sysDate.substring(8));
// ANK-4145-00-00 MOD END
// ++++++++++++++++++ v4.00.09 変更終了 ++++++++++++++++++
		setMap.setValue("PRG_MEMO", SPACE);
		setMap.setValue("PRG_TKJK_1", SPACE);
		setMap.setValue("PRG_TKJK_2", "初回請求月：(変更前)");
		
		insPrgLst.add(setMap);
	}

// ++++++++++ v24.00.00 削除開始 ++++++++++
//	/**
//	 * 請求オプションサービス契約の新規登録処理
//	 * @param dbInfo 検索結果
//	 * @param seikyYm 請求年月
//	 * @param seikyuRsvApplyYmd 請求予約適用年月日
//	 * @throws Exception 
//	 */
//	private void createSeiOpSvcKei(String seiopsvcKeiNo, String geneAddDtm, String seikyYm,String seikyuRsvApplyYmd) throws Exception
//	{
//		// システム日付を取得
//		String sysDate = JBSbatDateUtil.getSystemDateTimeStamp();
//		
//		super.logPrint.printDebugLog("createSeiOpSvcKei★請求オプションサービス契約★登録対象請求オプションサービス契約番号【" + seiopsvcKeiNo + "】");
//		super.logPrint.printDebugLog("createSeiOpSvcKei★請求オプションサービス契約★登録対象世代登録年月日時分秒【" + geneAddDtm + "】");
//		
//		// 請求オプションサービス契約PK検索を実行する
//		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
//		
//		// 請求契約番号
//		whereMap.setValue(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_KEI_NO, seiopsvcKeiNo);
//		
//		// 世代登録年月日時分秒
//		whereMap.setValue(JBSbatKK_T_SEIOPSVC_KEI.GENE_ADD_DTM, geneAddDtm);
//		
//		// PK検索
//		JBSbatCommonDBInterface dbInfoSeiOpSvcKei = db_KK_T_SEIOPSVC_KEI_SELECT.selectByPrimaryKeys(whereMap);
//		
//		// 請求オプションサービス契約ステータス
//		String seiOpSvcKeiStat = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_KEI_STAT));
//		// 請求契約番号
////		String seikyuKeiNo = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIKY_KEI_NO));
//		// 予約適用年月日
//		String rsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.RSV_APLY_YMD));
//		
//		// サービス課金開始年月日
//		String svcChrgStaYmd = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CHRG_STAYMD));
//		
//		//請求オプションサービス契約ステータスが100，210，220の場合のみ登録処理を行う
//		if(!"100".equals(seiOpSvcKeiStat) && !"210".equals(seiOpSvcKeiStat) && !"220".equals(seiOpSvcKeiStat)) 
//		{
//// ++++++++++++++++++ v12.00.00 変更開始 ++++++++++++++++++
////			//解約でサービス課金開始年月日が20991231の場合は処理対象にする
////			if("910".equals(seiOpSvcKeiStat) && ("".equals(svcChrgStaYmd) || "20991231".equals(svcChrgStaYmd)) ){
////				
////			} else {
////				return;
////			}
//			
//			// 請求オプションサービス契約ステータスが解約の場合
//			if("910".equals(seiOpSvcKeiStat)) 
//			{
//				// サービス課金開始年月日が20991231の場合は処理対象にする
//				if ("".equals(svcChrgStaYmd) || "20991231".equals(svcChrgStaYmd))
//				{
//					// 後続処理を実行する
//				}
//				else 
//				{
//					// 初回請求年月日＋無料期間＋１ヶ月
//					String strSeikyMuryoYmd = JBSbatDateUtil.adjustMonth(seikyYm + "01", Integer.parseInt(firstSeikyPrd) + 1);
//					// サービス課金終了年月日
//					String svcChrgEndYmd = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CHRG_ENDYMD));
//					
//					if(JBSbatDateUtil.checkDate(strSeikyMuryoYmd,8) && JBSbatDateUtil.checkDate(svcChrgEndYmd,8))
//					{
//						// 初回請求年月日＋無料期間＋１ヶ月
//						String strSeikyMuryoYm = strSeikyMuryoYmd.substring(0,6);
//						// サービス課金終了年月日（前6桁：年月を使用）
//						String svcChrgEndYm = svcChrgEndYmd.substring(0,6);
//					
//						// 解約で、サービス課金終了年月日が初回請求年月日＋無料期間＋翌月以前の場合、処理対象とする。
//						if(strSeikyMuryoYm.compareTo(svcChrgEndYm) >= 0)
//						{
//							// 後続処理を実行する
//						} 
//						else 
//						{
//							return;
//						}
//					} 
//					else 
//					{
//						return;
//					}
//				}
//			} 
//			else 
//			{
//				return;
//			}
//// ++++++++++++++++++ v12.00.00 変更開始 ++++++++++++++++++
//		}
//
//		//予約データ中に初回請求月がNUULではないものを探すして予約適用年月日を請求契約（カレント）の予約適用年月日で設定
//		if(searchSeiOpSvcKeiRsv(seiopsvcKeiNo))
//		{
//			rsvAplyYmd = seikyuRsvApplyYmd;
//		}
//
//		// 請求年月情報ファイル.請求年月の+(初回請求無料期間+1)の月初め
//		// 初回請求無料期間+1
//		int add = Integer.parseInt(firstSeikyPrd) + 1;
//		// 201210 →201302
//		String svcChrgStaymd = JBSbatDateUtil.adjustMonth(seikyYm + "01", add);
//
//		//サービス開始日
//		String svcStaYmd = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_STA_YMD));
//
//		//サービス課金開始日とサービス開始日が存在する場合
//		if(JBSbatDateUtil.checkDate(svcChrgStaymd,8) && JBSbatDateUtil.checkDate(svcStaYmd,8))
//		{
//			String svcChrgStaym = svcChrgStaymd.substring(0,6);
//			String svcStaYm = svcStaYmd.substring(0,6);
//			// サービス開始年月がサービス課金開始年月より同月または未来の場合はサービス開始日の翌月月初をサービス課金開始日に設定
//			if(svcStaYm.compareTo(svcChrgStaym) >=0){
//				
//				svcChrgStaymd = JBSbatDateUtil.adjustMonth(svcStaYm + "01", 1);
//			}
//		}
//
//		// 新規登録データ格納
//		Object[] setParam = new Object[71];
//		
//		// 請求オプションサービス契約番号
//		setParam[0] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_KEI_NO));
//		
//		// 世代登録年月日時分秒
//		// システム日付
//		setParam[1] = sysDate;
//		
//		// 請求オプションサービス契約ステータス
//		setParam[2] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_KEI_STAT));
//		
//		// 請求契約番号
//		setParam[3] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIKY_KEI_NO));
//		
//		// ＳＹＳＩＤ
//		setParam[4] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SYSID));
//		
//		// 請求オプションサービスコード
//		setParam[5] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_CD));
//		
//		// 料金コースコード
//		setParam[6] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PCRS_CD));
//		
//		// 料金プランコード
//		setParam[7] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PPLAN_CD));
//		
//		// 申込明細番号
//		setParam[8] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.MSKM_DTL_NO));
//		
//		// サービス契約番号
//		setParam[9] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_KEI_NO));
//		
//		// 試用加入年月日
//		setParam[10] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.FTRIAL_KANYU_YMD));
//		
//		// 試用期間終了年月日
//		setParam[11] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.FTRIAL_PRD_ENDYMD));
//		
//		// 本加入年月日
//		setParam[12] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.HONKANYU_YMD));
//		
//		// 本加入移行期限年月日
//		setParam[13] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.HONKANYU_IKO_KIGEN_YMD));
//		
//		// サービス利用開始希望年月日
//		setParam[14] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_USE_STA_KIBO_YMD));
//		
//		// 予約適用開始希望年月日
//		setParam[15] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.RSV_TSTA_KIBO_YMD));
//		
//		// 請求オプションサービス契約後続業務依頼年月日
//		setParam[16] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_KEI_KZKWRK_REQYMD));
//		
//		// 照査年月日
//		setParam[17] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SHOSA_YMD));
//		
//		// 照査取消年月日
//		setParam[18] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SHOSA_CL_YMD));
//		
//		// 審査結果送信コード
//		setParam[19] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SKEKKA_SEND_CD));
//		
//		// 契約締結年月日
//		setParam[20] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.KEI_CNC_YMD));
//		
//		// 予約適用年月日
//		setParam[21] =rsvAplyYmd;
//		
//		// 予約取消年月日
//		setParam[22] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.RSV_CL_YMD));
//		
//		// 予約適用コード
//		setParam[23] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.RSV_APLY_CD));
//		
//		// プラン開始年月日
//		setParam[24] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PLAN_STAYMD));
//		
//		// プラン終了年月日
//		setParam[25] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PLAN_ENDYMD));
//		
//		// プラン課金開始年月日
//		setParam[26] = svcChrgStaymd;
//		
//		// プラン課金終了年月日
//		setParam[27] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PLAN_CHRG_ENDYMD));
//		
//		// プラン終了種別コード
//		setParam[28] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PLAN_END_SBT_CD));
//		
//		// サービスキャンセル年月日
//		setParam[29] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CANCEL_YMD));
//		
//		// サービスキャンセル理由コード
//		setParam[30] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CANCEL_RSN_CD));
//		
//		// サービス開始年月日
//		setParam[31] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_STA_YMD));
//		
//		// サービス課金開始年月日
//		//String svcChrgStaymd = JBSbatDateUtil.adjustMonth(seikyYm + "01", add);
//		setParam[32] = svcChrgStaymd;
//		
//		// サービス停止年月日
//		setParam[33] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_STP_YMD));
//		
//		// サービス停止理由コード
//		setParam[34] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_STP_RSN_CD));
//		
//		// サービス停止解除年月日
//		setParam[35] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_STP_RLS_YMD));
//		
//		// サービス停止解除理由コード
//		setParam[36] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_STP_RLS_RSN_CD));
//		
//		// 休止中断コード
//		setParam[37] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PAUSE_STP_CD));
//		
//		// サービス休止年月日
//		setParam[38] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_PAUSE_YMD));
//		
//		// サービス休止理由コード
//		setParam[39] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_PAUSE_RSN_CD));
//		
//		// サービス休止理由メモ
//		setParam[40] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_PAUSE_RSN_MEMO));
//		
//		// サービス休止解除年月日
//		setParam[41] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_PAUSE_RLS_YMD));
//		
//		// サービス休止解除理由コード
//		setParam[42] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_PAUSE_RLS_RSN_CD));
//		
//		// サービス休止解除理由メモ
//		setParam[43] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_PAUSE_RLS_RSN_MEMO));
//		
//		// サービス終了年月日
//		setParam[44] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_ENDYMD));
//		
//		// サービス課金終了年月日
//		setParam[45] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CHRG_ENDYMD));
//		
//		// サービス解約年月日
//		setParam[46] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_DSL_YMD));
//		
//		// サービス解約理由コード
//		setParam[47] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_DLRE_CD));
//		
//		// サービス解約理由メモ
//		setParam[48] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_DLRE_MEMO));
//		
//		// サービス解約手続完了フラグ
//		setParam[49] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_DSL_TTDKI_FIN_FLG));
//		
//		// 回復年月日
//		setParam[50] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.KAIHK_YMD));
//		
//		// サービスキャンセル取消年月日
//		setParam[51] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CANCEL_CL_YMD));
//		
//		// サービス解約取消年月日
//		setParam[52] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_DSL_CL_YMD));
//		
//		// 課金開始年月日補正有無
//		setParam[53] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.CHRG_STA_YMD_HOSEI_UM));
//		
//		// サービス休止課金開始年月日
//		setParam[54] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_PAUSE_CHRG_STA_YMD));
//		
//		// 違約金発生コード
//		setParam[55] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.PNLTY_HASSEI_CD));
//		
//		// 異動区分
//		setParam[56] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.IDO_DIV));
//		
//		// 照査解約完了コード
//		setParam[57] = JBSbatStringUtil.Rtrim(dbInfoSeiOpSvcKei.getString(JBSbatKK_T_SEIOPSVC_KEI.SHOSA_DSL_FIN_CD));
//		
//		// 登録年月日時分秒
//		setParam[58] = sysDate;
//		
//		// 登録オペレータアカウント
//		setParam[59] = super.batchUserId;
//		
//		// 更新年月日時分秒
//		setParam[60] = sysDate;
//		
//		// 更新オペレータアカウント
//		setParam[61] = super.batchUserId;
//		
//		// 削除年月日時分秒設定
//		setParam[62] = "";
//		
//		// 削除オペレータアカウント
//		setParam[63] = "";
//		
//		// 無効フラグ
//		setParam[64] = MK_FLG_YK;
//		
//		// 登録運用年月日
//		setParam[65] = "";
//		
//		// 登録処理ＩＤ
//		setParam[66] = "";
//		
//		// 更新運用年月日
//		setParam[67] = "";
//		
//		// 更新処理ＩＤ
//		setParam[68] = "";
//		
//		// 削除運用年月日
//		setParam[69] = "";
//		
//		// 削除処理ＩＤ
//		setParam[70] = "";
//		
//		// 登録処理実行
//		executeKK_T_SEIOPSVC_KEI_PKINSERT(setParam);
//		
//	}
// ++++++++++ v24.00.00 削除終了 ++++++++++
	
// ++++++++++ v24.00.00 削除開始 ++++++++++
//	/**
//	 * 請求契約オプションサービス契約の予約レコード取得
//	 * @param seikyKeiNo 請求オプションサービス契約番号
//	 * @throws Exception 
//	 */
//	private boolean searchSeiOpSvcKeiRsv(String seiopsvcKeiNo) throws Exception
//	{
//		executeKK_T_SEIOPSVC_KEI_KK_SELECT_016(new Object[]{seiopsvcKeiNo, opeDate});
//		
//		JBSbatCommonDBInterface dbInfo = db_KK_T_SEIOPSVC_KEI_SELECT.selectNext();
//		
//		if(dbInfo != null){
//			return true;
//		} else {
//			return false;
//		}
//	}
// ++++++++++ v24.00.00 削除終了 ++++++++++
	
//	/**
//	 * 請求オプションサービス契約の予約レコードのサービス課金開始年月日更新
//	 * @param dbInfo 検索結果
//	 * @param seikyYm 請求年月
//	 * @param svcChrgStaymd サービス課金開始年月日
//	 * @throws Exception 
//	 */
//	private void updateSeiOpSvcKei(JBSbatCommonDBInterface dbInfo, String seikyYm, String svcChrgStaymd) throws Exception
//	{
//		// 請求オプションサービス契約番号
//		String seiopsvcKeiNo = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_KEI_NO));
//		
//		// 世代登録年月日時分秒
//		String geneAddDtm = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_SEIOPSVC_KEI.GENE_ADD_DTM));
//		
//		super.logPrint.printDebugLog("updateSeiOpSvcKei★請求オプションサービス契約★更新対象請求オプションサービス契約番号【" + seiopsvcKeiNo + "】");
//		super.logPrint.printDebugLog("updateSeiOpSvcKei★請求オプションサービス契約★更新対象世代登録年月日時分秒【" + geneAddDtm + "】");
//		
//		// 更新条件格納
//		Object[] whereParam = new Object[2];
//		// 請求オプションサービス契約番号
//		whereParam[0] = seiopsvcKeiNo;
//		
//		// 世代登録年月日時分秒
//		whereParam[1] = geneAddDtm;
//		
//		// 請求契約情報更新用データ格納
//		Object[] setParam = new Object[1];
//		
//		// サービス課金開始年月日
//		setParam[0] = svcChrgStaymd;
//		
//		executeKK_T_SEIOPSVC_KEI_PKUPDATE(setParam, whereParam);
//		
//	}

	/**
	 * 初回請求年月更新対象の予約レコードの初回請求年月更新
	 * @param dbInfo 検索結果
	 * @param seikyYm 請求年月
	 * @throws Exception 
	 */
	private void updateSeikyKei(String seikyKeiNo, String geneAddDtm, String seikyYm) throws Exception
	{
		super.logPrint.printDebugLog("updateSeikyKei★更新対象請求契約番号【" + seikyKeiNo + "】");
		super.logPrint.printDebugLog("updateSeikyKei★更新対象世代登録年月日時分秒【" + geneAddDtm + "】");
		
		// 請求契約テーブルに排他制御処理を実行する
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		// 請求契約番号
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, seikyKeiNo);
		
		// 世代登録年月日時分秒
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, geneAddDtm);
		
		// 請求契約排他制御
		JBSbatCommonDBInterface dbInfoSeikyKei = db_KK_T_SEIKY_KEI_HAITA.selectByPrimaryKeysForUpdateWait(whereMap);
		
		if(null == dbInfoSeikyKei)
		{
			super.logPrint.printDebugLog("排他エラーが発生しました。{請求契約番号:" + seikyKeiNo + "}");
			
			// MSG 請求契約テーブルに該当する請求契約情報が存在しません。
			throw new JBSbatBusinessException("EKKB0210CE", new String[]{"請求契約", "該当する請求契約情報"});
		}
		
		// 更新条件格納
		Object[] whereParam = new Object[2];
		// 請求契約番号
		whereParam[0] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO));
		
		// 世代登録年月日時分秒
		whereParam[1] = JBSbatStringUtil.Rtrim(dbInfoSeikyKei.getString(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM));
		
		// 請求契約情報更新用データ格納
		Object[] setParam = new Object[1];
		
		// 初回請求年月
		setParam[0] = seikyYm;
		
		executeKK_T_SEIKY_KEI_PKUPDATE(setParam, whereParam);
		
	}
	
	/**
	 * 進捗、登録データファイル出力。<br>
	 * <p>
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */	
	private void executeOutFileWritePrg() throws Exception
	{
		BufferedWriter out_writer = null;
		
		try {
			out_writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(midInsPrgPath), ENCODE));
			StringBuilder fileData = null;
			// List件数分繰り返します。
			for (int i = 0; i < insPrgLst.size(); i++)
			{
				// Listから１レコード取り出します。
				JBSbatCommonDBInterface outMap = insPrgLst.get(i);
				
				// 2016/1/20 V24.00.01 MOD START
//				fileData = new StringBuilder();
				fileData = new StringBuilder(300);
				// 2016/1/20 V24.00.01 MOD END

				// 進捗登録項目を設定します。
				fileData.append(outMap.getString(JBSbatKK_T_PRG.PRG_NO));		// 進捗番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.MSKM_DTL_NO));		// 申込明細番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SEIKY_KEI_NO));		// 請求契約番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SEIKY_WAY_NO_KOZA));		// 請求方法番号(口座)
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SEIKY_WAY_NO_CRECARD));		// 請求方法番号(クレジットカード)
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SVC_KEI_NO));		// サービス契約番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SVC_KEI_UCWK_NO));		// サービス契約内訳番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SVC_KEI_KAISEN_UCWK_NO));		// サービス契約回線内訳番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.KKTK_SVC_KEI_NO));		// 機器提供サービス契約番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.OP_SVC_KEI_NO));		// オプションサービス契約番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SEIOPSVC_KEI_NO));		// 請求オプションサービス契約番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.SBOP_SVC_KEI_NO));		// サブオプションサービス契約番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.WRIB_SVC_KEI_NO));		// 割引サービス契約番号
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.IDO_DIV));		// 異動区分
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.IDO_DTM));		// 異動年月日時分秒
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.PRG_STAT));		// 進捗ステータス
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.PRG_DTM));		// 進捗年月日時分秒
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.PRG_MEMO));		// 進捗メモ
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.PRG_TKJK_1));		// 進捗特記事項1
				fileData.append(JKKBatConst.CONMA);		// 区切り文字「,」
				fileData.append(outMap.getString(JBSbatKK_T_PRG.PRG_TKJK_2));		// 進捗特記事項2
				fileData.append(LINE_SEPARAOR_CRLF);	// 改行コード「CRLF」

				// ファイルを出力します。
				out_writer.write(fileData.toString());
				
			}
			out_writer.flush();
		}catch(IOException e) {
			throw new JBSbatBusinessException("EKKB0250CE", new String[]{midInsPrgPath, e.getMessage()});
		} finally {
			if(out_writer != null) {
				out_writer.close();
			}
		}
	}
	
}
