/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKCreditSkekkaHanei
*	ソースファイル名	：JBSbatKKCreditSkekkaHanei.java
*	作成者				：富士通　
*	作成日				：2011年09月15日
*＜機能概要＞
*　クレジット審査結果反映部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/23  FJ)藤本		新規作成
*	v1.01.00	2012/02/13  FJ)倉上 	ST2-2012-0000196障害対応
*	v1.02.00	2012/03/21  FJ)藤本 	ST2-2012-0000435障害対応
*	v2.00.00	2012/04/10  FJ)藤本		【TAI-2012-0000027】排他制御対応
*	v3.00.00	2012/05/01	FJ)神吉		【巻@登録テーブル項目同期】対応
*	v4.00.00	2012/10/04	FJ)中作		【ANK-1223-00-00】進捗補足事項編集対応
*	v4.00.01	2012/12/29  FJ)中作		【ST4-2012-0000301】障害対応
*	v4.01.00	2013/03/25  FJ)柳		【IT1-2012-0000498】障害対応
*	v5.00.00	2013/08/14  FJ)藤本		【KT1-2013-0000806】障害対応
*	v5.00.01	2013/08/14  FJ)藤本		【KT1-2013-0000807】障害対応
*	v5.00.02	2013/08/15  FJ)藤本		【KT1-2013-0000807】障害対応
*	v5.00.03	2013/09/12  FJ)柳		【OM-2013-0001748】【OM-2013-0001762】障害対応
*	v5.00.04	2013/10/01  FJ)柳		【OM-2013-0002799】障害対応
*	v5.00.05	2013/10/24  FJ)古内		【OM-2013-0003643】障害対応
*	v5.00.06	2013/12/23  FJ)古内		【OM-2013-0004425】障害対応
*	v5.00.07	2014/05/21  FJ)古内		【ST4-2013-0000544】性能改善
*	v5.00.08	2014/05/25  FJ)古内		【OM-2014-0001967】KK_T_KAKINSのSQLIDを採番しなおし
*	v5.00.09	2014/06/23  FJ)村山		【OM-2014-0002062】障害対応：オーソリチェック更新不具合
*	v19.00.00	2015/09/18  FJ)窪田		【OM-2015-0001876】障害対応
*	v20.00.00	2015/10/15  FJ)黒田(耕)	【ANK-2073-00-00】支払方法変更時のメール通知機能の追加
*	v20.00.01	2015/11/26  FJ)阪口		【ANK-2565-00-00】クレジットカード番号預かりサービス導入（Step3：預かり番号化）
*	v23.00.00	2016/04/13  FJ)謝		【ANK-2810-00-00】クレジットカード番号並行保持期間終了に伴うマスク化対応
*	v41.00.00	2019/02/04	FJ)星野		【ANK-3396-00-00】利用停止スケジュールの変更
*	v45.00.00	2019/07/18	FJ)上間		【ANK-3602-00-00】特定クレジットカードの売上オーソリ実施対応
*	v48.00.00	2020/02/21	FJ)谷川		【ANK-3750-00-00】サービス解約後クレカ有効性チェックの進捗情報への書き込み対応
*	v52.00.00	2021/02/26	FJ)謝		【ANK-3981-00-00】【eo】預かりＩＤ最新化対応
*	v59.00.00	2022/05/06	FJ)謝		【OM-2022-0000260】「，」を含んだ契約が有効性依頼対象に含まれない
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.List;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatKKIFM035;
import eo.business.util.table.JBSbatKK_T_CRECARD;
import eo.business.util.table.JBSbatKK_T_KAKINS;
import eo.business.util.table.JBSbatKK_T_SEIKY_KEI;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessError;
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;
// OM-2015-0001876 ADD START
import eo.common.util.JFUCommonUtil;
// OM-2015-0001876 ADD END
/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKCreditSkekkaHanei extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(請求契約)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_KEI = "KK_T_SEIKY_KEI";

//	/** テーブル(請求契約_登録用)*/
//	private static final String D_TBL_NAME_KK_T_SEIKY_KEI_INSERT = "KK_T_SEIKY_KEI";

	/** テーブル(クレジットカード)*/
	private static final String D_TBL_NAME_KK_T_CRECARD = "KK_T_CRECARD";

	/** テーブル(課金先)*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";

// +++++++++++++ v5.00.07 削除開始 ++++++++++++++++++
//	/** テーブル(サービス契約)*/
//	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";
// +++++++++++++ v5.00.07 削除終了 ++++++++++++++++++

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";
	
	/** テーブル(異動予約)*/
	private static final String D_TBL_NAME_KK_T_IDO_RSV = "KK_T_IDO_RSV";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_CRECARD_KK_SELECT_003 = "KK_SELECT_003";
	
	/** SQL定義キー(KK_SELECT_005)*/
	private static final String KK_T_CRECARD_KK_SELECT_005 = "KK_SELECT_005";
	
	/* ++++++++++ v5.00.09 追加開始 ++++++++++ */
	/** SQL定義キー(KK_SELECT_006)*/
	private static final String KK_T_CRECARD_KK_SELECT_006 = "KK_SELECT_006";
    /* ++++++++++ v5.00.09 追加終了 ++++++++++ */

// +++++++++++++ v5.00.08 変更開始 ++++++++++++++++++
//	/** SQL定義キー(KK_SELECT_015)*/
//	private static final String KK_T_KAKINS_KK_SELECT_015 = "KK_SELECT_015";
	/** SQL定義キー(KK_SELECT_047)*/
	private static final String KK_T_KAKINS_KK_SELECT_047 = "KK_SELECT_047";
// +++++++++++++ v5.00.08 変更終了 ++++++++++++++++++

// ANK-3750-00-00 ADD START
	/** SQL定義キー(KK_SELECT_055)*/
	private static final String KK_T_KAKINS_KK_SELECT_055 = "KK_SELECT_055";
// ANK-3750-00-00 ADD END
// ANK-3981-00-00 ADD START
	/** SQL定義キー(KK_SELECT_070)*/
	private static final String KK_T_SEIKY_KEI_KK_SELECT_070 = "KK_SELECT_070";
// ANK-3981-00-00 ADD END

	// +++++++++++++ v5.00.07 削除開始 ++++++++++++++++++
//	/** SQL定義キー(KK_SELECT_002)*/
//	private static final String KK_T_SVC_KEI_KK_SELECT_002 = "KK_SELECT_002";
// +++++++++++++ v5.00.07 削除終了 ++++++++++++++++++

	/** テーブルアクセスクラス(請求契約_検索用)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI = null;

	/** テーブルアクセスクラス(クレジットカード)*/
	private JBSbatSQLAccess db_KK_T_CRECARD = null;
	
	/** テーブルアクセスクラス(クレジットカード)*/
	private JBSbatSQLAccess db_KK_T_CRECARD_005 = null;

	/* ++++++++++ v5.00.09 追加開始 ++++++++++ */
	/** テーブルアクセスクラス(クレジットカード)*/
	private JBSbatSQLAccess db_KK_T_CRECARD_006 = null;
    /* ++++++++++ v5.00.09 追加終了 ++++++++++ */

	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;

// ANK-3750-00-00 ADD START
	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS_055 = null;
// ANK-3750-00-00 ADD END
// ANK-3981-00-00 ADD START
	/** テーブルアクセスクラス(請求契約)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI_070 = null;
// ANK-3981-00-00 ADD END

// +++++++++++++ v5.00.07 削除開始 ++++++++++++++++++
//	/** テーブルアクセスクラス(サービス契約)*/
//	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
// +++++++++++++ v5.00.07 削除終了 ++++++++++++++++++

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;
	
	/** テーブルアクセスクラス(異動予約)*/
	private JBSbatSQLAccess db_KK_T_IDO_RSV = null;

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 有効性確認結果(OK) */
	private  static final String YK_CFM_RSLT_OK = "0";
	
	/** クレジットカードステータス(審査済) */
	private  static final String CRECARD_STAT_JUDGE_ZUMI = "100";
	
//	/** クレジットカードステータス(無効) */
//	private  static final String CRECARD_STAT_JUDGE_MUKO = "190";
	
	/** クレジットカード事業コード(FTTH事業) */
	private  static final String CRECARD_JIGYO_CD = "2";
	
//	/** 無効フラグ(無効：1) */
//	private static final String MK_FLG_MK = "1";
	
	/** 空白*/
	private static final String SPACE = "";

	/** 請求方法番号（クレジットカード）採番キー*/
	private static final String KEY_SEQ_SEIKY_WAY_NO_CRECARD = "SEQ_SEIKY_WAY_NO_CRECARD";
	
	/** 進捗番号（進捗）採番キー*/
	private static final String KEY_SEQ_PRG_NO = "SEQ_PRG_NO";
	
	/** テーブル名（クレジットカード） */
	private static final String TABLE_NAME = "クレジットカード";
	
	/** INPUTファイルより読み込んだ請求契約番号 */
	private String in_seiky_kei_no = "";
	
	/** INPUTファイルより読み込んだ審査反映対象月 */
	private String in_judge_hanei_tgt_m = "";
	
	/** INPUTファイルより読み込んだクレジットカード会社コード */
	private String in_crecard_comp_cd = "";
	
	/** INPUTファイルより読み込んだクレジット交換コード */
	private String in_credit_kokan_cd = "";
	
	/** INPUTファイルより読み込んだ旧クレジットカード番号 */
	private String in_old_crecard_no = "";
	
	/** INPUTファイルより読み込んだ旧クレジットカード有効期限 */
	private String in_old_crecard_yk_ki = "";
	
	/** INPUTファイルより読み込んだ新クレジットカード番号 */
	private String in_new_crecard_no = "";
	
	/** INPUTファイルより読み込んだ新クレジットカード有効期限 */
	private String in_new_crecard_yk_ki = "";
	
	/** INPUTファイルより読み込んだクレジットカード名義カナ名 */
	private String in_crecard_nm_kana = "";
	
	/** INPUTファイルより読み込んだ有効性確認結果区分 */
	private String in_yk_cfm_rslt_div = "";
	
	/** INPUTファイルより読み込んだ異動区分 */
	private String in_ido_div = "";
	
	/** INPUTファイルより読み込んだ進捗ステータス */
	private String in_prg_stat = "";
	
// ANK-2565-00-00 ADD START
	/** INPUTファイルより読み込んだクレジットカード番号更新サイン */
	private String in_crecard_no_up_sign = "";
	
	/** INPUTファイルより読み込んだクレジットカード有効期限更新サイン */
	private String in_crecard_yk_kigen_up_sign = "";
	
	/** クレジットカード番号・有効期限更新サイン：変更あり */
	private static final String UP_SIGN_UP = "1";
// ANK-2565-00-00 ADD END
	
	/* ++++++++++ v5.00.09 追加開始 ++++++++++ */
	/** 有効性確認結果区分 */
	private  static final String YK_CFM_RSLT_KBN_OK = "40";
    /* ++++++++++ v5.00.09 追加終了 ++++++++++ */
    
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SEIKY_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		db_KK_T_CRECARD = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_CRECARD);
		db_KK_T_CRECARD_005 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_CRECARD);
		/* ++++++++++ v5.00.09 追加開始 ++++++++++ */
		db_KK_T_CRECARD_006 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_CRECARD);
	    /* ++++++++++ v5.00.09 追加終了 ++++++++++ */
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
// ANK-3750-00-00 ADD START
		db_KK_T_KAKINS_055 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
// ANK-3750-00-00 ADD END
// ANK-3981-00-00 ADD START
		db_KK_T_SEIKY_KEI_070 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
// ANK-3981-00-00 ADD END
		// +++++++++++++ v5.00.07 削除開始 ++++++++++++++++++
//		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
// +++++++++++++ v5.00.07 削除終了 ++++++++++++++++++
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		db_KK_T_IDO_RSV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_IDO_RSV);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		String getu_matu = "";               // 月末
		// 請求契約番号の取得
		in_seiky_kei_no = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.SEIKY_KEI_NO));
		// 審査反映対象月の取得
		in_judge_hanei_tgt_m = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.JUDGE_HANEI_TRGT_MON));
		// クレジットカード会社コードの取得
		in_crecard_comp_cd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.CRECARD_COMP_CD));
		// クレジット交換コードの取得
		in_credit_kokan_cd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.CREDIT_KOKAN_CD));
		// 旧クレジットカード番号の取得（※カード預りID）
		in_old_crecard_no = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.OLD_CRECARD_NO));
		// 旧クレジットカード有効期限
		in_old_crecard_yk_ki = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.OLD_CRECARD_YK_KIGEN));
		// 新クレジットカード番号の取得
		in_new_crecard_no = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.NEW_CRECARD_NO));
		// 新クレジットカード有効期限の取得
		in_new_crecard_yk_ki = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.NEW_CRECARD_YK_KIGEN));
		// クレジットカード名義カナ名の取得
		// OM-2015-0001876 MOD START
		//in_crecard_nm_kana = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.CRECARD_NM_KANA));
// OM-2022-0000260 MOD START
//		in_crecard_nm_kana = JFUCommonUtil.convertToZenkaku(JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.CRECARD_NM_KANA)));
		in_crecard_nm_kana = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.CRECARD_NM_KANA));
// OM-2022-0000260 MOD END
		// OM-2015-0001876 MOD END
		// 有効性確認結果区分の取得
		in_yk_cfm_rslt_div = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.YK_CFM_RSLT_DIV));
		// 異動区分の取得
		in_ido_div = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.IDO_DIV));
		// 進捗ステータスの取得
		in_prg_stat = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.PRG_STAT));
// ANK-2565-00-00 ADD START
		// クレジットカード番号更新サインの取得
		in_crecard_no_up_sign = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.CRECARD_NO_UP_SIGN));
		// クレジットカード有効期限更新サインの取得
		in_crecard_yk_kigen_up_sign = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM035.CRECARD_YK_KIGEN_UP_SIGN));
// ANK-2565-00-00 ADD END
		
// ANK-2565-00-00 DEL START
//		long long_in_old_crecard_no = Long.parseLong(in_old_crecard_no);
//		String crecardNoEncrypt = JCCBatCommon.getEncryptResult(commonItem, String.valueOf(long_in_old_crecard_no));
// ANK-2565-00-00 DEL END
		
		// 有効性確認結果区分が「OK」の場合
		if (YK_CFM_RSLT_OK.equals(in_yk_cfm_rslt_div)) 
		{
			// 請求方法番号(クレジットカード)を採番します。
			String seiky_way_no_crecard = JBSbatStringUtil.padNumFormString(JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), KEY_SEQ_SEIKY_WAY_NO_CRECARD), 12);
			
// ANK-2565-00-00 DEL START
//			// クレジットカード登録処理を実施。
//			addCrecardData(seiky_way_no_crecard);
// ANK-2565-00-00 DEL END
			
// ++++++++++++++++++++++++++ v5.00.06 修正開始 ++++++++++++++++++++++++++
			// 審査反映対象月から月末を取得します。
//			getu_matu = JBSbatDateUtil.getEndOfMonth(in_judge_hanei_tgt_m);
			getu_matu = JBSbatDateUtil.getEndOfMonth(super.opeDate.substring(0, 6));
			
			// 審査反映対象月の月末年月日(yyyymmdd)
//			String judge_hanei_last_d = in_judge_hanei_tgt_m + getu_matu;
			String judge_hanei_last_d = super.opeDate.substring(0, 6) + getu_matu;
// ++++++++++++++++++++++++++ v5.00.06 修正終了 ++++++++++++++++++++++++++
			
// ANK-2565-00-00 ADD START
// ANK-3981-00-00 DEL START
//			// クレジットカード登録処理を実施。
//			addCrecardData(seiky_way_no_crecard, judge_hanei_last_d);
// ANK-3981-00-00 DEL END
// ANK-2565-00-00 ADD START
			
			String judge_hanei_next_month_1day = JBSbatDateUtil.adjustDate(judge_hanei_last_d, 1);
// ANK-3981-00-00 ADD START
			// クレジットカード登録処理を実施。
			addCrecardData(seiky_way_no_crecard, judge_hanei_next_month_1day);
// ANK-3981-00-00 ADD END
			
			// *************** 運用日時点の予約を作成 ***************
			// クレジットカード情報を取得します。
// ANK-2565-00-00 MOD START
//			executeKK_T_CRECARD_KK_SELECT_003(new Object[]{crecardNoEncrypt, in_old_crecard_yk_ki, in_seiky_kei_no, judge_hanei_next_month_1day});
			executeKK_T_CRECARD_KK_SELECT_003(new Object[]{in_old_crecard_no, in_old_crecard_yk_ki, in_seiky_kei_no, judge_hanei_next_month_1day});
// ANK-2565-00-00 MOD END
			
			JBSbatCommonDBInterface crecaOutMap = db_KK_T_CRECARD.selectNext();
			
			if (crecaOutMap != null)
			{
				// 請求契約．予約適用年月日
				String rsv_aply_ymd = JBSbatStringUtil.Rtrim(crecaOutMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD));
				
				//請求契約．予約適用年月日数字チェック
				if(!JCCBatCommon.isNotNull(rsv_aply_ymd)  || !JCCBatCommon.isHannkakuSuuji1(rsv_aply_ymd)){
					throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0090TE, new String[]{"請求契約．予約適用年月日:" + rsv_aply_ymd});
				}
				
// ANK-3981-00-00 MOD START
//				if (!rsv_aply_ymd.equals(judge_hanei_next_month_1day))
				if (Integer.parseInt(rsv_aply_ymd) <= Integer.parseInt(super.opeDate))
// ANK-3981-00-00 MOD END
				{
					JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
					// 請求契約番号の設定
					paramList.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, in_seiky_kei_no);
					// 世代登録年月日時分秒の設定
					paramList.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, JBSbatStringUtil.Rtrim(crecaOutMap.getString("KK0491_GENE_ADD_DTM")));
					// 請求契約排他制御処理を実行する
					JBSbatCommonDBInterface outDbMap = db_KK_T_SEIKY_KEI.selectByPrimaryKeys(paramList);
					// 請求契約情報１件分を登録用データへ格納します。
// ANK-3981-00-00 MOD START
//					createSeikyKeiyakuIf(outDbMap, judge_hanei_last_d, seiky_way_no_crecard);
					createSeikyKeiyakuIf(outDbMap, seiky_way_no_crecard, null);
// ANK-3981-00-00 MOD END
				}
// ANK-3981-00-00 ADD START
				else
				{
					// 運用日時点の請求契約を取得する
					executeKK_T_SEIKY_KEI_KK_SELECT_070(new Object[]{in_seiky_kei_no, super.opeDate});
					JBSbatCommonDBInterface seikyKeiMap = db_KK_T_SEIKY_KEI_070.selectNext();
					if (seikyKeiMap != null)
					{
						// 請求契約．請求契約カナ名
						String seikyKeiKana = JBSbatStringUtil.Rtrim(crecaOutMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_KANA));
						
						JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
						// 請求契約番号の設定
						paramList.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, in_seiky_kei_no);
						// 世代登録年月日時分秒の設定
						paramList.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, seikyKeiMap.getString(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM));
						// 請求契約排他制御処理を実行する
						JBSbatCommonDBInterface outDbMap = db_KK_T_SEIKY_KEI.selectByPrimaryKeys(paramList);
						// 請求契約情報１件分を登録用データへ格納します。
						createSeikyKeiyakuIf(outDbMap, seiky_way_no_crecard, seikyKeiKana);
					}
				}
// ANK-3981-00-00 ADD END
			}
			
			// ******************** 予約データへの審査結果適用 ********************
			// 予約データにおいて、審査依頼と同一カードにおける予約が存在する場合、そのカード情報へ審査結果を反映する
			// クレジットカード情報更新。(請求契約の予約適用年月日が未来)処理
			
			// クレジットカード情報を取得(未来)します。
// ANK-3981-00-00 MOD START
//			executeKK_T_CRECARD_KK_SELECT_005(new Object[]{in_seiky_kei_no, judge_hanei_next_month_1day});
			executeKK_T_CRECARD_KK_SELECT_005(new Object[]{in_seiky_kei_no, super.opeDate});
// ANK-3981-00-00 MOD END
			
			//一時格納用変数を定義
			JBSbatCommonDBInterface creMiraiOutMap = null;
			
			// 未来のカードに対し、審査と同一カードが存在した場合、そのカードへ審査結果を反映する
			// ※ 同一の予約適用日が存在する場合、その最新世代に対してのみ処理を行う。
			List<String> processedRsvAplyYmdList = new ArrayList<String>();
			while((creMiraiOutMap=db_KK_T_CRECARD_005.selectNext())!=null){
				
				String db_crecard_comp_cd = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_COMP_CD);
				String db_crecard_yk_ki = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_YK_KIGEN);
// ANK-2565-00-00 DEL START
//				String db_crecardNo = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_NO);
// ANK-2565-00-00 DEL END
// ANK-2565-00-00 ADD START
				String db_crecardNoAzkriId = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_NO_AZKRI_ID);
// ANK-2565-00-00 ADD END
				
				// 同一の予約適用年月日が処理済であれば、スキップ
				if (processedRsvAplyYmdList.contains(creMiraiOutMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD)))
				{
					continue;
				}
				
// ANK-2565-00-00 MOD START
				// カード会社コード・有効期限・カード預りIDが一致するデータに対し、審査結果を反映する。
//				if (in_crecard_comp_cd.equals(db_crecard_comp_cd) && in_old_crecard_yk_ki.equals(db_crecard_yk_ki) && crecardNoEncrypt.equals(db_crecardNo))
				if (in_crecard_comp_cd.equals(db_crecard_comp_cd) && in_old_crecard_yk_ki.equals(db_crecard_yk_ki) && in_old_crecard_no.equals(db_crecardNoAzkriId))
// ANK-2565-00-00 MOD END
				{
					// 請求契約情報を更新します。
					JBSbatCommonDBInterface out_db_Map = updateSeikyKeiData(in_seiky_kei_no, JBSbatStringUtil.Rtrim(creMiraiOutMap.getString("KK0491_GENE_ADD_DTM")));
					// 請求契約情報１件分を登録用データへ格納します。
// ANK-3981-00-00 MOD START
//					createSeikyKeiyakuIf(out_db_Map, judge_hanei_last_d, seiky_way_no_crecard);
					createSeikyKeiyakuIf(out_db_Map, seiky_way_no_crecard, null);
// ANK-3981-00-00 MOD END
				}
				processedRsvAplyYmdList.add(creMiraiOutMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD));
			}
		}
		// 有効性確認結果区分が「NG」，「エラー」の場合(空白も含む)
		else
		{
			
			// クレジットカード情報を取得します。
// ANK-2565-00-00 MOD START
//			executeKK_T_CRECARD_KK_SELECT_003(new Object[]{crecardNoEncrypt, in_old_crecard_yk_ki, in_seiky_kei_no, in_judge_hanei_tgt_m + "01"});
			executeKK_T_CRECARD_KK_SELECT_003(new Object[]{in_old_crecard_no, in_old_crecard_yk_ki, in_seiky_kei_no, in_judge_hanei_tgt_m + "01"});
// ANK-2565-00-00 MOD END
			
			JBSbatCommonDBInterface crecaOutMap = db_KK_T_CRECARD.selectNext();
			
			if (crecaOutMap != null)
			{
				// クレジットカード情報更新。
				updateCrecardData(crecaOutMap);
				
				// カレントの予約適用年月日
				String rsvAplyYmd = JBSbatStringUtil.Rtrim(crecaOutMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD));
				
				// クレジットカード情報を取得(未来)します。
				executeKK_T_CRECARD_KK_SELECT_005(new Object[]{in_seiky_kei_no, rsvAplyYmd});
				
				//一時格納用変数を定義
				JBSbatCommonDBInterface creMiraiOutMap = null;
				
				// 未来のカードに対し、審査と同一カードが存在した場合、そのカードへ審査結果を反映する
				// ※ 未来の全世代において、同一のカードに対し処理を行う。
				while((creMiraiOutMap=db_KK_T_CRECARD_005.selectNext())!=null){
					
					String db_crecard_comp_cd = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_COMP_CD);
					String db_crecard_yk_ki = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_YK_KIGEN);
// ANK-2565-00-00 DEL START
//					String db_crecardNo = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_NO);
// ANK-2565-00-00 DEL END
// ANK-2565-00-00 ADD START
					String db_crecardNoAzkriId = creMiraiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_NO_AZKRI_ID);
// ANK-2565-00-00 ADD END
					
					// カード会社コード・有効期限・カード番号（カード預りID）が一致するデータに対し、審査結果を反映する。
// ANK-2565-00-00 MOD START
//					if (in_crecard_comp_cd.equals(db_crecard_comp_cd) && in_old_crecard_yk_ki.equals(db_crecard_yk_ki) && crecardNoEncrypt.equals(db_crecardNo))
					if (in_crecard_comp_cd.equals(db_crecard_comp_cd) && in_old_crecard_yk_ki.equals(db_crecard_yk_ki) && in_old_crecard_no.equals(db_crecardNoAzkriId))
// ANK-2565-00-00 MOD END
					{
						updateCrecardMiraiData(creMiraiOutMap);
					}
				}
			}
			else
			{
// ANK-2565-00-00 MOD START
//				super.logPrint.printBusinessErrorLog("EKKB0210CE", new String[] {TABLE_NAME, "該当のクレジットカード番号"});
				super.logPrint.printBusinessErrorLog("EKKB0210CE", new String[] {TABLE_NAME, "該当のクレジットカード番号預りID"});
// ANK-2565-00-00 MOD END
				throw new JBSbatBusinessError();
			}
		}
		
		// 検索条件の保持
// +++++++++++++ v5.00.07 変更開始 ++++++++++++++++++
//		Object[] param = new Object[2];
		Object[] param = new Object[3];
// +++++++++++++ v5.00.07 変更終了 ++++++++++++++++++
		
		// 請求契約番号
		param[0] = in_seiky_kei_no;
		// 予約適用年月日
		param[1] = in_judge_hanei_tgt_m + "01";
		
// +++++++++++++ v5.00.07 追加開始 ++++++++++++++++++
		// 予約適用年月日
		param[2] = in_judge_hanei_tgt_m + "01";
// +++++++++++++ v5.00.07 追加終了 ++++++++++++++++++
		
// +++++++++++++ v5.00.08 変更開始 ++++++++++++++++++
		// 課金先TBLからサービス契約番号を取得します。
//		executeKK_T_KAKINS_KK_SELECT_015(param);
		executeKK_T_KAKINS_KK_SELECT_047(param);
// +++++++++++++ v5.00.08 変更終了 ++++++++++++++++++

// ANK-3750-00-00 ADD START
		// 進捗登録済フラグ（初期値：FALSE）
		boolean prgAddFlg = false;
// ANK-3750-00-00 ADD END

		JBSbatCommonDBInterface seiky_kei_outMap = new JBSbatCommonDBInterface();
		
		// 取得したサービス契約番号分、繰り返す。
		while ((seiky_kei_outMap = db_KK_T_KAKINS.selectNext()) != null)
		{
// +++++++++++++ v5.00.07 変更開始 ++++++++++++++++++
//			param = new Object[2];
//			
//			// サービス契約番号の設定。
//			param[0] = JBSbatStringUtil.Rtrim(seiky_kei_outMap.getString(JBSbatKK_T_KAKINS.SVC_KEI_NO));
//			
//			// 予約適用年月日（審査反映対象月の初日を設定。）
//			param[1] = in_judge_hanei_tgt_m + "01";
//			
//			// 取得したサービス契約番号よりサービス契約情報を取得します。
//			executeKK_T_SVC_KEI_KK_SELECT_002(param);
//			
//			JBSbatCommonDBInterface svc_kei_outMap = db_KK_T_SVC_KEI.selectNext();
//			
//			// サービス契約情報が取得できた場合
//			if(svc_kei_outMap != null)
//			{
//				// 進捗情報を設定します。
//				setPrgIfAdd(svc_kei_outMap);
//			}
			String svcKeiNo = JBSbatStringUtil.Rtrim(seiky_kei_outMap.getString(JBSbatKK_T_KAKINS.SVC_KEI_NO));
			if (!"".equals(svcKeiNo))
			{
				setPrgIfAdd(svcKeiNo);
// ANK-3750-00-00 ADD START
				// 進捗登録済フラグをTRUEへ
				prgAddFlg = true;
// ANK-3750-00-00 ADD END
			}
// +++++++++++++ v5.00.07 変更終了 ++++++++++++++++++
		}
// ANK-3750-00-00 ADD START
		// 進捗登録済でない場合
		if (!prgAddFlg)
		{
			// 課金先TBLからサービス契約番号を取得
			executeKK_T_KAKINS_KK_SELECT_055(param);
			// 取得したサービス契約番号分、繰り返す。
			while ((seiky_kei_outMap = db_KK_T_KAKINS_055.selectNext()) != null)
			{
				// 取得したサービス契約番号を取得
				String svcKeiNo = JBSbatStringUtil.Rtrim(seiky_kei_outMap.getString(JBSbatKK_T_KAKINS.SVC_KEI_NO));
				// 進捗情報登録
				setPrgIfAdd(svcKeiNo);
			}
		}
// ANK-3750-00-00 ADD END
		super.logPrint.printDebugLog("execute_END");

		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
// +++++++++++++ v5.00.07 追加開始 ++++++++++++++++++
		// 配列更新の未反映分を処理する。
		db_KK_T_CRECARD.clearBatch();
		db_KK_T_SEIKY_KEI.clearBatch();
		db_KK_T_IDO_RSV.clearBatch();
		db_KK_T_PRG.clearBatch();
// +++++++++++++ v5.00.07 追加終了 ++++++++++++++++++

	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SEIKY_KEI.close();
		db_KK_T_CRECARD.close();
		db_KK_T_CRECARD_005.close();
		/* ++++++++++ v5.00.09 追加開始 ++++++++++ */
		db_KK_T_CRECARD_006.close();
	    /* ++++++++++ v5.00.09 追加終了 ++++++++++ */
// +++++++++++++ v5.00.07 削除開始 ++++++++++++++++++
//		db_KK_T_SVC_KEI.close();
// +++++++++++++ v5.00.07 削除終了 ++++++++++++++++++
		db_KK_T_PRG.close();
		db_KK_T_KAKINS.close();
// ANK-3750-00-00 ADD START
		db_KK_T_KAKINS_055.close();
// ANK-3750-00-00 ADD END
// ANK-3981-00-00 ADD START
		db_KK_T_SEIKY_KEI_070.close();
// ANK-3981-00-00 ADD END
		db_KK_T_IDO_RSV.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	請求方法番号（クレジットカード）				SEIKY_WAY_NO_CRECARD
	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
	 *		 	クレジットカードステータス				CRECARD_STAT
	 *		 	クレジットカード事業コード				CRECARD_JIGYO_CD
	 *		 	クレジットカード会社コード				CRECARD_COMP_CD
	 *		 	クレジットカード番号				CRECARD_NO
	 *		 	クレジットカード有効期限				CRECARD_YK_KIGEN
	 *		 	クレジット交換コード				CREDIT_KOKAN_CD
	 *		 	クレジットカード名義（ローマ字）				CRECARD_NM_ROMAJI
	 *		 	クレジットカード名義カナ名				CRECARD_NM_KANA
	 *		 	クレジット請求手続キャンセル年月日				CRDTSIK_TTDK_CNCL_YMD
	 *		 	クレジット請求手続キャンセル理由コード				CRDTSIK_TTDK_CNCL_RSN_CD
	 *		 	クレジット請求手続キャンセル理由メモ				CRDTSIK_TTDK_CNCL_RSN_MEMO
	 *		 	支払い審査依頼年月日				PAY_JUDGE_REQYMD
	 *		 	記載不備審査結果コード				KSHBI_SKEKKA_CD
	 *		 	支払い審査結果コード				PAY_SKEKKA_CD
	 *		 	支払い審査結果ＮＧ理由コード				PAY_SKEKKA_NG_RSN_CD
	 *		 	支払い審査結果ＮＧ理由メモ				PAY_SKEKKA_NG_RSN_MEMO
	 *		 	オーソリ確認年月日時分秒				AUTHORI_CFM_DTM
	 *		 	オーソリ承認番号				AUTHORI_SHONIN_NO
	 *		 	仕向先会社コード				SHIKOSAKI_COMP_CD
	 *		 	有効性要求年月日				YK_YOKYU_YMD
	 *		 	有効性確認結果区分				YK_CFM_RSLT_DIV
	 *		 	有効性確認年月日				YK_CFM_YMD
	 *		 	再オーソリ確認年月日時分秒				RE_AUTHORI_CFM_DTM
	 *		 	再オーソリ結果コード				RE_AUTHORI_RSLT_CD
	 *		 	クレジットカード無効年月				CRECA_MK_YM
	 *		 	異動区分				IDO_DIV
	 *		 	登録年月日時分秒				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
	 *		 	クレジットカード番号預りID				CRECARD_NO_AZKRI_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_CRECARD_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SEIKY_WAY_NO_CRECARD", setParam[0]);
		setMap.setValue("GENE_ADD_DTM", setParam[1]);
		setMap.setValue("CRECARD_STAT", setParam[2]);
		setMap.setValue("CRECARD_JIGYO_CD", setParam[3]);
		setMap.setValue("CRECARD_COMP_CD", setParam[4]);
		setMap.setValue("CRECARD_NO", setParam[5]);
		setMap.setValue("CRECARD_YK_KIGEN", setParam[6]);
		setMap.setValue("CREDIT_KOKAN_CD", setParam[7]);
		setMap.setValue("CRECARD_NM_ROMAJI", setParam[8]);
		setMap.setValue("CRECARD_NM_KANA", setParam[9]);
		setMap.setValue("CRDTSIK_TTDK_CNCL_YMD", setParam[10]);
		setMap.setValue("CRDTSIK_TTDK_CNCL_RSN_CD", setParam[11]);
		setMap.setValue("CRDTSIK_TTDK_CNCL_RSN_MEMO", setParam[12]);
		setMap.setValue("PAY_JUDGE_REQYMD", setParam[13]);
		setMap.setValue("KSHBI_SKEKKA_CD", setParam[14]);
		setMap.setValue("PAY_SKEKKA_CD", setParam[15]);
		setMap.setValue("PAY_SKEKKA_NG_RSN_CD", setParam[16]);
		setMap.setValue("PAY_SKEKKA_NG_RSN_MEMO", setParam[17]);
		setMap.setValue("AUTHORI_CFM_DTM", setParam[18]);
		setMap.setValue("AUTHORI_SHONIN_NO", setParam[19]);
		setMap.setValue("SHIKOSAKI_COMP_CD", setParam[20]);
		setMap.setValue("YK_YOKYU_YMD", setParam[21]);
		setMap.setValue("YK_CFM_RSLT_DIV", setParam[22]);
		setMap.setValue("YK_CFM_YMD", setParam[23]);
		setMap.setValue("RE_AUTHORI_CFM_DTM", setParam[24]);
		setMap.setValue("RE_AUTHORI_RSLT_CD", setParam[25]);
		setMap.setValue("CRECA_MK_YM", setParam[26]);
		setMap.setValue("IDO_DIV", setParam[27]);
		setMap.setValue("ADD_DTM", setParam[28]);
		setMap.setValue("ADD_OPEACNT", setParam[29]);
		setMap.setValue("UPD_DTM", setParam[30]);
		setMap.setValue("UPD_OPEACNT", setParam[31]);
		setMap.setValue("DEL_DTM", setParam[32]);
		setMap.setValue("DEL_OPEACNT", setParam[33]);
		setMap.setValue("MK_FLG", setParam[34]);
		setMap.setValue("ADD_UNYO_YMD", setParam[35]);
		setMap.setValue("ADD_TRN_ID", setParam[36]);
		setMap.setValue("UPD_UNYO_YMD", setParam[37]);
		setMap.setValue("UPD_TRN_ID", setParam[38]);
		setMap.setValue("DEL_UNYO_YMD", setParam[39]);
		setMap.setValue("DEL_TRN_ID", setParam[40]);
// ANK-2565-00-00 ADD START
		setMap.setValue("CRECARD_NO_AZKRI_ID", setParam[41]);
// ANK-2565-00-00 ADD END
// ANK-3602-00-00 ADD START
		setMap.setValue("CRECARD_SBT_CD", setParam[42]);
		setMap.setValue("CRDT_ISSUER_DIV", setParam[43]);
// ANK-3602-00-00 ADD END
	
		// DBアクセスを実行します
// +++++++++++++++++ v5.00.07 変更開始（配列更新に変更）+++++++++++++++++
//		db_KK_T_CRECARD.insertByPrimaryKeys(setMap);
		db_KK_T_CRECARD.insertByPrimaryKeysBatch(setMap);
// +++++++++++++++++ v5.00.07 変更終了（配列更新に変更）+++++++++++++++++
	}
	
	/**
	 * 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_TELNO
	 *		 	送付先ＦＡＸ番号				SOHUS_FAX_NO
	 *		 	送付先メールアドレス				SOHUS_MLAD
	 *		 	請求書送付先住所確定後変更可否				SKS_SHS_AD_FIX_AF_CHGE_KH
	 *		 	請求書送付先変更年月日				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_TELNO", setParam[36]);
		setMap.setValue("SOHUS_FAX_NO", setParam[37]);
		setMap.setValue("SOHUS_MLAD", setParam[38]);
		setMap.setValue("SOHUS_AD_MAN_INPUT_FLG", 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
		
		// DBアクセスを実行します
// +++++++++++++++++ v5.00.07 変更開始（配列更新に変更）+++++++++++++++++
//		db_KK_T_SEIKY_KEI.insertByPrimaryKeys(setMap);
		db_KK_T_SEIKY_KEI.insertByPrimaryKeysBatch(setMap);
// +++++++++++++++++ v5.00.07 変更終了（配列更新に変更）+++++++++++++++++
	}
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	異動予約番号				IDO_RSV_NO
	 *		 	異動区分				IDO_DIV
	 *		 	異動予約詳細コード				IDO_RSV_DTL_CD
	 *		 	予約適用年月日				RSV_APLY_YMD
	 *		 	異動予約反映年月日				IDO_RSV_HANEI_YMD
	 *		 	異動予約取消年月日				IDO_RSV_CL_YMD
	 *		 	異動予約状態コード				IDO_RSV_STAT_CD
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	ＳＹＳＩＤ				SYSID
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	サービス契約回線内訳番号				SVC_KEI_KAISEN_UCWK_NO
	 *		 	併合先ＳＹＳＩＤ				HEIGO_SK_SYSID
	 *		 	分割先ＳＹＳＩＤ				BUNKATSU_SK_SYSID
	 *		 	併合先請求契約番号				HEIGO_SK_SEIKY_KEI_NO
	 *		 	分割先請求契約番号				BUNKATSU_SK_SEIKY_KEI_NO
	 *		 	新料金グループコード				NEW_PRC_GRP_CD
	 *		 	新料金コースコード				NEW_PCRS_CD
	 *		 	新料金プランコード				NEW_PPLAN_CD
	 *		 	新提供方式契約番号				NEW_TK_HOSHIKI_KEI_NO
	 *		 	新電波障害案件番号				NEW_DMPS_ANKEN_NO
	 *		 	旧料金グループコード				OLD_PRC_GRP_CD
	 *		 	旧料金コースコード				OLD_PCRS_CD
	 *		 	旧料金プランコード				OLD_PPLAN_CD
	 *		 	旧提供方式契約番号				OLD_TK_HOSHIKI_KEI_NO
	 *		 	旧電波障害案件番号				OLD_DMPS_ANKEN_NO
	 *		 	工事案件番号				KOJIAK_NO
	 *		 	違約金発生コード				PNLTY_HASSEI_CD
	 *		 	オプション引継先サービス契約番号				OP_HKTGI_SK_SVC_KEI_NO
	 *		 	サービス休止課金開始年月日				SVC_PAUSE_CHRG_STA_YMD
	 *		 	サービス課金終了年月日				SVC_CHRG_ENDYMD
	 *		 	プラン課金開始年月日				PLAN_CHRG_STAYMD
	 *		 	プラン課金終了年月日				PLAN_CHRG_ENDYMD
	 *			異動予約理由コード				IDO_RSV_RSN_CD
	 *			異動予約理由メモ				IDO_RSV_RSN_MEMO
	 *		 	登録年月日時分秒				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_IDO_RSV_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("IDO_RSV_NO", setParam[0]);
		setMap.setValue("IDO_DIV", setParam[1]);
		setMap.setValue("IDO_RSV_DTL_CD", setParam[2]);
		setMap.setValue("RSV_APLY_YMD", setParam[3]);
		setMap.setValue("IDO_RSV_HANEI_YMD", setParam[4]);
		setMap.setValue("IDO_RSV_CL_YMD", setParam[5]);
		setMap.setValue("IDO_RSV_STAT_CD", setParam[6]);
		setMap.setValue("MSKM_DTL_NO", setParam[7]);
		setMap.setValue("SYSID", setParam[8]);
		setMap.setValue("SEIKY_KEI_NO", setParam[9]);
		setMap.setValue("SVC_KEI_NO", setParam[10]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[11]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[12]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[13]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[14]);
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[15]);
		setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", setParam[16]);
		setMap.setValue("HEIGO_SK_SYSID", setParam[17]);
		setMap.setValue("BUNKATSU_SK_SYSID", setParam[18]);
		setMap.setValue("HEIGO_SK_SEIKY_KEI_NO", setParam[19]);
		setMap.setValue("BUNKATSU_SK_SEIKY_KEI_NO", setParam[20]);
		setMap.setValue("NEW_PRC_GRP_CD", setParam[21]);
		setMap.setValue("NEW_PCRS_CD", setParam[22]);
		setMap.setValue("NEW_PPLAN_CD", setParam[23]);
		setMap.setValue("NEW_TK_HOSHIKI_KEI_NO", setParam[24]);
		setMap.setValue("NEW_DMPS_ANKEN_NO", setParam[25]);
		setMap.setValue("OLD_PRC_GRP_CD", setParam[26]);
		setMap.setValue("OLD_PCRS_CD", setParam[27]);
		setMap.setValue("OLD_PPLAN_CD", setParam[28]);
		setMap.setValue("OLD_TK_HOSHIKI_KEI_NO", setParam[29]);
		setMap.setValue("OLD_DMPS_ANKEN_NO", setParam[30]);
		setMap.setValue("KOJIAK_NO", setParam[31]);
		setMap.setValue("PNLTY_HASSEI_CD", setParam[32]);
		setMap.setValue("OP_HKTGI_SK_SVC_KEI_NO", setParam[33]);
		setMap.setValue("SVC_PAUSE_CHRG_STA_YMD", setParam[34]);
		setMap.setValue("SVC_CHRG_ENDYMD", setParam[35]);
		setMap.setValue("PLAN_CHRG_STAYMD", setParam[36]);
		setMap.setValue("PLAN_CHRG_ENDYMD", setParam[37]);
		setMap.setValue("IDO_RSV_RSN_CD", setParam[38]);
		setMap.setValue("IDO_RSV_RSN_MEMO", setParam[39]);
		setMap.setValue("ADD_DTM", setParam[40]);
		setMap.setValue("ADD_OPEACNT", setParam[41]);
		setMap.setValue("UPD_DTM", setParam[42]);
		setMap.setValue("UPD_OPEACNT", setParam[43]);
		setMap.setValue("DEL_DTM", setParam[44]);
		setMap.setValue("DEL_OPEACNT", setParam[45]);
		setMap.setValue("MK_FLG", setParam[46]);
		setMap.setValue("ADD_UNYO_YMD", setParam[47]);
		setMap.setValue("ADD_TRN_ID", setParam[48]);
		setMap.setValue("UPD_UNYO_YMD", setParam[49]);
		setMap.setValue("UPD_TRN_ID", setParam[50]);
		setMap.setValue("DEL_UNYO_YMD", setParam[51]);
		setMap.setValue("DEL_TRN_ID", setParam[52]);
	
		// DBアクセスを実行します
// +++++++++++++++++ v5.00.07 変更開始（配列更新に変更）+++++++++++++++++
//		db_KK_T_IDO_RSV.insertByPrimaryKeys(setMap);
		db_KK_T_IDO_RSV.insertByPrimaryKeysBatch(setMap);
// +++++++++++++++++ v5.00.07 変更終了（配列更新に変更）+++++++++++++++++
	}

	/**
	 * SQLKEY(KK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	CRECARD_NO_AZKRI_ID
	 *		 	CRECARD_YK_KIGEN
	 *		 	SEIKY_KEI_NO
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_CRECARD_KK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_T_CRECARD.selectBySqlDefine(paramList, KK_T_CRECARD_KK_SELECT_003);
	}

	/**
	 * SQLKEY(KK_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SEIKY_KEI_NO
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_CRECARD_KK_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_CRECARD_005.selectBySqlDefine(paramList, KK_T_CRECARD_KK_SELECT_005);
	}
	
	/* ++++++++++ v5.00.09 追加開始 ++++++++++ */
	/**
	 * SQLKEY(KK_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	CRECARD_NO_AZKRI_ID
	 *		 	SEIKY_KEI_NO
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_CRECARD_KK_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
// ANK-2565-00-00 ADD START
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
// ANK-2565-00-00 ADD END

		// DBアクセスを実行します
		db_KK_T_CRECARD_006.selectBySqlDefine(paramList, KK_T_CRECARD_KK_SELECT_006);
	}
    /* ++++++++++ v5.00.09 追加終了 ++++++++++ */

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	有効性確認結果区分				YK_CFM_RSLT_DIV
	 *		 	有効性確認年月日				YK_CFM_YMD
	 *			クレジットカード無効年月		CRECA_MK_YM
	 *		 	異動区分				IDO_DIV
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SEIKY_WAY_NO_CRECARD
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_CRECARD_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("YK_CFM_RSLT_DIV", setParam[0]);
		setMap.setValue("YK_CFM_YMD", setParam[1]);
		setMap.setValue("CRECA_MK_YM", setParam[2]);
		setMap.setValue("IDO_DIV", setParam[3]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SEIKY_WAY_NO_CRECARD", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
// +++++++++++++ v5.00.07 変更開始 ++++++++++++++++++
//		db_KK_T_CRECARD.updateByPrimaryKeys(whereMap, setMap);
		db_KK_T_CRECARD.updateByPrimaryKeysBatch(whereMap, setMap, 1);
// +++++++++++++ v5.00.07 変更終了 ++++++++++++++++++
	}

// +++++++++++++ v5.00.08 変更開始 ++++++++++++++++++
//	/**
//	 * SQLKEY(KK_SELECT_015)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	SEIKY_KEI_NO
//	 *		 	KAKINS_TSTAYMD
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_KAKINS_KK_SELECT_015(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_KK_SELECT_015);
//	}
	/**
	 * SQLKEY(KK_SELECT_047)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SEIKY_KEI_NO
	 *		 	KAKINS_TSTAYMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAKINS_KK_SELECT_047(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_KK_SELECT_047);
	}
// +++++++++++++ v5.00.08 変更終了 ++++++++++++++++++

// ANK-3750-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_055)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	KK_T_KAKINS.SEIKY_KEI_NO
	 *		 	KK_T_KAKINS.KAKINS_TSTAYMD 〜 KK_T_KAKINS.KAKINS_TENDYMD
	 *			KK_T_SVC_KEI.RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAKINS_KK_SELECT_055(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_KAKINS_055.selectBySqlDefine(paramList, KK_T_KAKINS_KK_SELECT_055);
	}
// ANK-3750-00-00 ADD END

// +++++++++++++ v5.00.07 削除開始 ++++++++++++++++++
//	/**
//	 * SQLKEY(KK_SELECT_002)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	SVC_KEI_NO
//	 *		 	RSV_APLY_YMD
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_SVC_KEI_KK_SELECT_002(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_002);
//	}
// +++++++++++++ v5.00.07 削除終了 ++++++++++++++++++

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	進捗番号				PRG_NO
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	請求方法番号（口座）				SEIKY_WAY_NO_KOZA
	 *		 	請求方法番号（クレジットカード）				SEIKY_WAY_NO_CRECARD
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	サービス契約回線内訳番号				SVC_KEI_KAISEN_UCWK_NO
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	異動区分				IDO_DIV
	 *		 	異動年月日時分秒				IDO_DTM
	 *		 	進捗ステータス				PRG_STAT
	 *		 	進捗年月日時分秒				PRG_DTM
	 *		 	進捗メモ				PRG_MEMO
	 *		 	進捗特記事項１				PRG_TKJK_1
	 *		 	進捗特記事項２				PRG_TKJK_2
	 *		 	登録年月日時分秒				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_PRG_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("PRG_NO", setParam[0]);
		setMap.setValue("MSKM_DTL_NO", setParam[1]);
		setMap.setValue("SEIKY_KEI_NO", setParam[2]);
		setMap.setValue("SEIKY_WAY_NO_KOZA", setParam[3]);
		setMap.setValue("SEIKY_WAY_NO_CRECARD", setParam[4]);
		setMap.setValue("SVC_KEI_NO", setParam[5]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[6]);
		setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", setParam[7]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[8]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[9]);
		setMap.setValue("SEIOPSVC_KEI_NO", setParam[10]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[11]);
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[12]);
		setMap.setValue("IDO_DIV", setParam[13]);
		setMap.setValue("IDO_DTM", setParam[14]);
		setMap.setValue("PRG_STAT", setParam[15]);
		setMap.setValue("PRG_DTM", setParam[16]);
		setMap.setValue("PRG_MEMO", setParam[17]);
		setMap.setValue("PRG_TKJK_1", setParam[18]);
		setMap.setValue("PRG_TKJK_2", setParam[19]);
		setMap.setValue("ADD_DTM", setParam[20]);
		setMap.setValue("ADD_OPEACNT", setParam[21]);
		setMap.setValue("UPD_DTM", setParam[22]);
		setMap.setValue("UPD_OPEACNT", setParam[23]);
		setMap.setValue("DEL_DTM", setParam[24]);
		setMap.setValue("DEL_OPEACNT", setParam[25]);
		setMap.setValue("MK_FLG", setParam[26]);
		setMap.setValue("ADD_UNYO_YMD", setParam[27]);
		setMap.setValue("ADD_TRN_ID", setParam[28]);
		setMap.setValue("UPD_UNYO_YMD", setParam[29]);
		setMap.setValue("UPD_TRN_ID", setParam[30]);
		setMap.setValue("DEL_UNYO_YMD", setParam[31]);
		setMap.setValue("DEL_TRN_ID", setParam[32]);
	
		// DBアクセスを実行します
// +++++++++++++++++ v5.00.07 変更開始（配列更新に変更）+++++++++++++++++
//		db_KK_T_PRG.insertByPrimaryKeys(setMap);
		db_KK_T_PRG.insertByPrimaryKeysBatch(setMap);
// +++++++++++++++++ v5.00.07 変更終了（配列更新に変更）+++++++++++++++++
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー(更新区分== 1(無効化)の場合)</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	異動区分				IDO_DIV
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		where_param:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SEIKY_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param where_param 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_KEI_PKUPDATE_001(Object[] where_param) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SEIKY_KEI_NO", where_param[0]);
		whereMap.setValue("GENE_ADD_DTM", where_param[1]);
		
		// DBアクセスを実行します
		db_KK_T_SEIKY_KEI.logicalDeleteByPrimaryKeys(whereMap);
	}

	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 請求契約データを登録します。
	 * <br>
	 * @param outMap 請求契約検索結果情報
	 * @param seiky_way_no_crecard 請求方法番号（クレジットカード）
	 * @param seikyKeiKana 請求契約カナ名
	 * @throws Exception 
	 */
// ANK-3981-00-00 MOD START
//	private void createSeikyKeiyakuIf(JBSbatCommonDBInterface outMap ,
//			String judge_hanei_trgt_mon_lastday, String seiky_way_no_crecard) throws Exception
	private void createSeikyKeiyakuIf(JBSbatCommonDBInterface outMap ,
			String seiky_way_no_crecard, String seikyKeiKana) throws Exception
// ANK-3981-00-00 MOD END
	{
		// 登録用データ格納
// ANK-3396-00-00対応 2019/02/04 星野 MOD START
//// ANK-2073-00-00 MOD START 
////		Object[] paramInsert = new Object[65];
//		Object[] paramInsert = new Object[67];
//// ANK-2073-00-00 MOD END 
		Object[] paramInsert = new Object[68];
// ANK-3396-00-00対応 2019/02/04 星野 MOD END
		paramInsert[0]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO));               // 請求契約番号
		paramInsert[1]  = JBSbatDateUtil.getSystemDateTimeStamp();                                                   // 世代登録年月日時分秒(システム日時)
		paramInsert[2]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_STAT));             // 請求契約ステータス
		paramInsert[3]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SYSID));                      // SYSID
		paramInsert[4]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.MANSION_OWNR_ID));            // マンションオーナーID
		paramInsert[5]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.MSKM_DTL_NO));                // 申込明細番号
		paramInsert[6]  = "4";                                                                                       // 請求方法コード
		paramInsert[7]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.NEXT_SEIKY_WAY_DIV));         // 次回請求方法コード
		paramInsert[8]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.KEI_CNC_YMD));                // 契約締結年月日
		paramInsert[9]  = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_DSL_YMD));          // 請求契約解約年月日
		paramInsert[10] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_DLRE_CD));          // 請求契約解約理由コード
		paramInsert[11] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_DLRE_MEMO));        // 請求契約解約理由メモ
		paramInsert[12] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_CYCLE_CD));             // 請求サイクルコード
		paramInsert[13] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_CHGE_YMD));         // 請求方法変更年月日
// ANK-3981-00-00 MOD START
//		paramInsert[14] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_KANA));             // 請求契約カナ名
//		paramInsert[15] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_NO_KOZA));          // 請求方法番号(口座)
		if (seikyKeiKana != null)
		{
			paramInsert[14] = seikyKeiKana;             // 請求契約カナ名
		}
		else
		{
			paramInsert[14] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_KANA));             // 請求契約カナ名
		}
		paramInsert[15] = "";          // 請求方法番号(口座)
// ANK-3981-00-00 MOD END
		paramInsert[16] = seiky_way_no_crecard;                                                                      // 請求方法番号(クレジットカード)
		paramInsert[17] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.INFO_DSP_CD));                // 情報表示コード
		paramInsert[18] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKYUS_HAKKO_YH));           // 請求書発行要否
		paramInsert[19] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SKS_SHS_KSH_AD_SAI_FLG));     // 請求書送付先_契約者住所差異フラグ
		paramInsert[20] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SKS_SHS_NM_CUST_NM_SAI_FLG)); // 請求書送付先名_お客様名差異フラグ
		paramInsert[21] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SHS_HOJIN_SBT_CD));           // 送付先法人格種別コード
		paramInsert[22] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SHS_HOJIN_ZENGO_SHITEI_CD));  // 送付先法人格前後指定コード
		paramInsert[23] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SHS_KANA));                   // 送付先カナ名
		paramInsert[24] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_NM));                   // 送付先名
		paramInsert[25] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_BKM));                  // 送付先部課名
		paramInsert[26] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_TNTSHA_NM));            // 送付先担当者名
		paramInsert[27] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_AD_CD));                // 送付先住所コード
		paramInsert[28] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_PCD));                  // 送付先郵便番号
		paramInsert[29] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_STATE_NM));             // 送付先都道府県名
		paramInsert[30] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_CITY_NM));              // 送付先市区町村名
		paramInsert[31] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_OAZTSU_NM));            // 送付先大字通称名
		paramInsert[32] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_AZCHO_NM));             // 送付先字丁目名
		paramInsert[33] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_ADRTTM));               // 送付先住所補記・建物名
		paramInsert[34] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_ADRRM));                // 送付先住所補記・部屋番号
		paramInsert[35] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_BNCHIGO));              // 送付先番地号
		paramInsert[36] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_TELNO));                // 送付先電話番号
		paramInsert[37] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_FAX_NO));               // 送付先FAX番号
		paramInsert[38] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_MLAD));                 // 送付先メールアドレス
		paramInsert[39] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SOHUS_AD_MAN_INPUT_FLG));     // 送付先住所手動入力フラグ
		paramInsert[40] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKYUS_SOHUS_CHGE_YMD));     // 請求書送付先変更年月日
		paramInsert[41] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_APLY_ADJ_YMD));     // 請求方法適用調整年月日
		paramInsert[42] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.KYOSEI_MADOGUCHI_FLG));       // 強制窓口フラグ
		paramInsert[43] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_TSTA_KIBO_YMD));          // 予約適用開始希望年月日
		
		//請求契約．予約適用年月日数字チェック
		if(!JCCBatCommon.isNotNull(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD)))  
				|| !JCCBatCommon.isHannkakuSuuji1(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD)))){
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0090TE, 
					new String[]{"請求契約．予約適用年月日:" + JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD))});
		}
		
// ANK-3981-00-00 MOD START
//		// 請求契約．予約適用年月日 <= 末日
//		if (Integer.parseInt(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD)))
//				<= Integer.parseInt(judge_hanei_trgt_mon_lastday))
//		{
//			// 審査反映対象月の翌月１日を設定。
//			paramInsert[44] = JBSbatDateUtil.adjustDate(judge_hanei_trgt_mon_lastday, 1);       // 予約適用年月日
//		}
//		else
//		{
//			// 請求契約．予約適用年月日を設定。
//			paramInsert[44] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD));         // 予約適用年月日
//		}
		// 請求契約．予約適用年月日 <= バッチ運用日付
		if (Integer.parseInt(JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD)))
				<= Integer.parseInt(super.opeDate))
		{
			// バッチ運用日付を設定。
			paramInsert[44] = super.opeDate;       // 予約適用年月日
		}
		else
		{
			// 請求契約．予約適用年月日を設定。
			paramInsert[44] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD));         // 予約適用年月日
		}
// ANK-3981-00-00 MOD END
		
		paramInsert[45] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_CL_YMD));                 // 予約取消年月日
		paramInsert[46] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_CD));                // 予約適用コード
		paramInsert[47] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.IDO_DIV));                    // 異動区分
		paramInsert[48] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.FIRST_SEIKY_YM));             // 初回請求年月
		paramInsert[49] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.FIRST_PAY_MSKMSHO_SOHU_YH));  // 初回支払申込書送付要否
		paramInsert[50] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.FIRST_PAY_MSKMSHO_SOHU_YMD)); // 初回支払申込書送付年月日
		paramInsert[51] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.FIRST_PAY_MSKMSHO_RCP_YMD));  // 初回支払申込書受領年月日
		paramInsert[52] = JBSbatDateUtil.getSystemDateTimeStamp();
		paramInsert[53] = batchUserId;
		paramInsert[54] = JBSbatDateUtil.getSystemDateTimeStamp();
		paramInsert[55] = batchUserId;
		paramInsert[56] = "";
		paramInsert[57] = "";
		paramInsert[58] = "0";
		paramInsert[59] = "";
		paramInsert[60] = "";
		paramInsert[61] = "";
		paramInsert[62] = "";
		paramInsert[63] = "";
		paramInsert[64] = "";
// ANK-2073-00-00 ADD START
		paramInsert[65] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.PAYWAYTCML_CTL_CD));          // 支払方法通知メール制御コード
		paramInsert[66] = JBSbatStringUtil.Rtrim(outMap.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
		paramInsert[67] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.KYOSEI_DSL_YKK_CNT));  // 強制解約予告回数
// ANK-3396-00-00対応 2019/02/04 星野 ADD END
		
		// 請求契約情報へ新規レコード作成。 
		executeKK_T_SEIKY_KEI_PKINSERT(paramInsert);
		
		//予約適用年月日＞運用日 
		if (Integer.parseInt((String)paramInsert[44])
				> Integer.parseInt(opeDate)) {
			
			// 異動予約TBL登録処理
			this.insertIdoRsv((String)paramInsert[44],outMap);
		}

	}
	
	/**
	 * 進捗データを登録します。
	 * <br>
	 * @param outMap 請求契約検索結果
	 * @throws Exception 
	 */
// +++++++++++++ v5.00.07 変更開始 ++++++++++++++++++
//	private void setPrgIfAdd(JBSbatCommonDBInterface outMap) throws Exception
	private void setPrgIfAdd(String svcKeiNo) throws Exception
// +++++++++++++ v5.00.07 変更終了 ++++++++++++++++++
	{
// +++++++++++++ v5.00.07 削除開始 ++++++++++++++++++
//		// サービス契約番号
//		String svcKeiNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
// +++++++++++++ v5.00.07 削除終了 ++++++++++++++++++
		
//		// 異動年月日時分秒取得
//		String idoDtm = JKKBatCommon.getIdoDtmMax(commonItem, svcKeiNo, in_ido_div, stmt);
		
//		super.logPrint.printDebugLog("異動年月日時分秒取得 :" + idoDtm);
		
		// 登録用データ格納
		Object[] param_add = new Object[33];
		
		String sysdate = JBSbatDateUtil.getSystemDateTimeStamp();
		
		// 進捗番号							⇒ 採番部品呼び出し
		param_add[0] = JBSbatStringUtil.padNumFormString(JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), KEY_SEQ_PRG_NO), 12);
		// 申込明細番号						⇒ 空白
		param_add[1] = SPACE;
		// 請求契約番号						⇒ 空白
		param_add[2] = SPACE;
		// 請求方法番号(口座)				⇒ 空白
		param_add[3] = SPACE;
		// 請求方法番号(クレジットカード)	⇒ 空白
		param_add[4] = SPACE;
		// サービス契約番号					⇒ 更新対象の請求契約番号に紐づくサービス契約番号
		//param_add[5] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		param_add[5] = svcKeiNo;
		
		// サービス契約内訳番号				⇒ 空白
		param_add[6] = SPACE;
		// サービス契約回線内訳番号			⇒ 空白
		param_add[7] = SPACE;
		// 機器提供サービス契約番号			⇒ 空白
		param_add[8] = SPACE;
		// オプションサービス契約番号		⇒ 空白
		param_add[9] = SPACE;
		// 請求オプションサービス契約番号	⇒ 空白
		param_add[10] = SPACE;
		// サブオプションサービス契約番号	⇒ 空白
		param_add[11] = SPACE;
		// 割引サービス契約番号				⇒ 空白
		param_add[12] = SPACE;
		// 異動区分							⇒ INPUTの異動区分
		param_add[13] = in_ido_div;
		// 異動年月日時分秒					⇒ システム日時
		param_add[14] = sysdate;
//		// 異動年月日時分秒					⇒ 進捗.異動年月日時分秒
//		param_add[14] = idoDtm;
		
		// 進捗ステータス					⇒ INPUTの進捗ステータス
		param_add[15] = in_prg_stat;
		
		/* ++++++++++ v1.01.00 修正開始 ++++++++++ */		
		// 進捗年月日時分秒					⇒ システム日時
//		param_add[16] = sysdate;
		param_add[16] = super.opeDate + sysdate.substring(8);	// 進捗年月日時分秒 → バッチ運用日+実施日のhhmmssSSSを設定。
		/* ++++++++++ v1.01.00 修正終了 ++++++++++ */
		
		// 進捗メモ							⇒ 空白
		param_add[17] = SPACE;
		// 進捗特記事項１					⇒ 空白
		param_add[18] = SPACE;
		// 進捗特記事項２					⇒ 空白
		param_add[19] = SPACE;
		// 登録年月日時分秒					⇒ 空白
		param_add[20] = SPACE;
		// 登録オペレータアカウント			⇒ 空白
		param_add[21] = SPACE;
		// 更新年月日時分秒					⇒ 空白
		param_add[22] = SPACE;
		// 更新オペレータアカウント			⇒ 空白
		param_add[23] = SPACE;
		// 削除年月日時分秒					⇒ 空白
		param_add[24] = SPACE;
		// 削除オペレータアカウント			⇒ 空白
		param_add[25] = SPACE;
		// 無効フラグ						⇒ "0"
		param_add[26] = "0";
		// 登録運用年月日					⇒ 空白
		param_add[27] = SPACE;
		// 登録処理ID						⇒ 空白
		param_add[28] = SPACE;
		// 更新運用年月日					⇒ 空白
		param_add[29] = SPACE;
		// 更新処理ID						⇒ 空白
		param_add[30] = SPACE;
		// 削除運用年月日					⇒ 空白
		param_add[31] = SPACE;
		// 削除処理ID						⇒ 空白
		param_add[32] = SPACE;
		
		// 進捗データを登録します。
		executeKK_T_PRG_PKINSERT(param_add);
	}
	
	/**
	 * クレジットカード情報を登録します。
	 * <br>
	 * @param seiky_way_no_crecard 採番された請求方法番号
	 * @param judge_hanei_next_month_1day 運用月の翌月１日
	 * @throws Exception 
	 */
// ANK-2565-00-00 MOD START
//	private void addCrecardData(String seiky_way_no_crecard) throws Exception
// ANK-2565-00-00 MOD START
//	private void addCrecardData(String seiky_way_no_crecard, String judge_hanei_last_d) throws Exception
	private void addCrecardData(String seiky_way_no_crecard, String judge_hanei_next_month_1day) throws Exception
// ANK-2565-00-00 MOD END
// ANK-2565-00-00 MOD END
	{
		// クレジットカード情報の登録処理の実施。
		
		// 登録用データ格納
// ANK-3602-00-00 MOD START
//// ANK-2565-00-00 MOD START
////		Object[] param = new Object[41];
//		Object[] param = new Object[42];
		Object[] param = new Object[44];
//// ANK-2565-00-00 MOD END
// ANK-3602-00-00 MOD END
		
		/* ++++++++++ v5.00.09 追加開始 ++++++++++ */
		// クレジットカード情報(引継ぎ)を取得します。
// ANK-2565-00-00 MOD START
//		executeKK_T_CRECARD_KK_SELECT_006(new Object[]{in_seiky_kei_no});
// ANK-2565-00-00 MOD START
//		executeKK_T_CRECARD_KK_SELECT_006(new Object[]{in_old_crecard_no, in_seiky_kei_no, judge_hanei_last_d});
		executeKK_T_CRECARD_KK_SELECT_006(new Object[]{in_old_crecard_no, in_seiky_kei_no, judge_hanei_next_month_1day});
// ANK-2565-00-00 MOD END
// ANK-2565-00-00 MOD END
		
		//一時格納用変数を定義
		JBSbatCommonDBInterface creHikitsugiOutMap = db_KK_T_CRECARD_006.selectNext();
		
		if (creHikitsugiOutMap != null) {
			// 請求方法番号(クレジットカード) ⇒ 採番部品を利用して採番する。
			param[0] = seiky_way_no_crecard;
			// 世代登録年月日時分秒　⇒　システム日時
			param[1] = JBSbatDateUtil.getSystemDateTimeStamp();
			// クレジットカードステータス　⇒　「100：審査済」
			param[2] = CRECARD_STAT_JUDGE_ZUMI;
			// クレジットカード事業コード　⇒　「2：FTTH事業」
			param[3] = CRECARD_JIGYO_CD;
			// クレジットカード会社コード　⇒　INPUT．クレジットカード会社コード
			param[4] = in_crecard_comp_cd;
// ANK-2565-00-00 MOD START
//			if (in_new_crecard_no != null && ("".equals(in_new_crecard_no) || in_new_crecard_no.trim().matches("[0]+")))
//			{
//				// クレジットカード番号がオール０であるため、カード番号の変更がないと判断し、旧クレジットカード番号を設定する。
//				// クレジットカード番号　⇒　INPUT．旧クレジットカード番号の前方０を最大５桁までカットし設定。
//				param[5] = JCCBatCommon.getEncryptResult(commonItem, this.getCrecardnoZeroCut(in_old_crecard_no));
//			}
//			else
//			{
//				// クレジットカード番号　⇒　INPUT．新クレジットカード番号の前方０を最大５桁までカットし設定。
//				param[5] = JCCBatCommon.getEncryptResult(commonItem, this.getCrecardnoZeroCut(in_new_crecard_no));
//			}
//			
//			// クレジットカード有効期限　⇒　INPUT．新クレジットカード有効期限
//			if ("000000".equals(in_new_crecard_yk_ki)) {
//				param[6] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_YK_KIGEN);
//			}
//			else
//			{
//				param[6] = in_new_crecard_yk_ki;
//			}
			if (UP_SIGN_UP.equals(in_crecard_no_up_sign))
			{
				// クレジットカード番号更新サインが「1：変更あり」である場合
// ANK-2810-00-00 MOD START
//				// クレジットカード番号　⇒　INPUT．新クレジットカード番号の前方０を最大５桁までカットし設定。
//				param[5] = JCCBatCommon.getEncryptResult(commonItem, this.getCrecardnoZeroCut(in_new_crecard_no));
				// クレジットカード番号　⇒　INPUT．新クレジットカード番号
				param[5] = JCCBatCommon.getEncryptResult(commonItem, in_new_crecard_no);
// ANK-2810-00-00 MOD END
			}
			else
			{
				// クレジットカード番号　⇒　引継元データをそのまま設定。
				param[5] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_NO);
			}
			
			if (UP_SIGN_UP.equals(in_crecard_no_up_sign) || UP_SIGN_UP.equals(in_crecard_yk_kigen_up_sign))
			{
				// クレジットカード番号更新サインかクレジットカード有効期限更新サインが「1：変更あり」である場合
				// INPUT．新クレジットカード有効期限を設定。
				param[6] = in_new_crecard_yk_ki;
			}
			else
			{
				// クレジットカード有効期限　⇒　引継元データをそのまま設定。
				param[6] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_YK_KIGEN);
			}
// ANK-2565-00-00 MOD END
			// クレジット交換コード　⇒　INPUT．クレジット交換コード
			param[7] = in_credit_kokan_cd;
			// クレジットカード名義(ローマ字)
			param[8] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_NM_ROMAJI);
			// クレジットカード名義カナ名　⇒　INPUT．クレジットカード名義カナ名
			param[9] = in_crecard_nm_kana;
			// クレジット請求手続キャンセル年月日
			param[10] = SPACE;
			// クレジット請求手続キャンセル理由コード
			param[11] = SPACE;
			// クレジット請求手続キャンセル理由メモ
			param[12] = SPACE;
			// 支払い審査依頼年月日
			param[13] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.PAY_JUDGE_REQYMD);
			// 記載不備審査結果コード
			param[14] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.KSHBI_SKEKKA_CD);
			// 支払い審査結果コード
			param[15] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.PAY_SKEKKA_CD);
			// 支払い審査結果NG理由コード
			param[16] = SPACE;
			// 支払い審査結果NG理由メモ
			param[17] = SPACE;
			// オーソリ確認年月日時分秒
			param[18] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.AUTHORI_CFM_DTM);
			// オーソリ承認番号
			param[19] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.AUTHORI_SHONIN_NO);
			// 仕向先会社コード
			param[20] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.SHIKOSAKI_COMP_CD);
			// 有効性要求年月日
			param[21] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.YK_YOKYU_YMD);
			// 有効性確認結果区分　⇒　INPUT．有効性確認結果区分を読み替えて登録。
			param[22] = this.getYkCfmRsltDiv();
			// 有効性確認年月日　⇒　システム日付
			param[23] = JBSbatDateUtil.getSystemDate();
			// 再オーソリ確認年月日時分秒
			param[24] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.RE_AUTHORI_CFM_DTM);
			// 再オーソリ結果区分
			param[25] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.RE_AUTHORI_RSLT_CD);
			// クレジットカード無効年月
			param[26] = SPACE;
			// 異動区分　⇒　INPUT．異動区分
			param[27] = in_ido_div;
// ANK-2565-00-00 ADD START
			// クレジットカード番号預りID　⇒　INPUT．旧クレジットカード番号（カード預りID）
			param[41] = in_old_crecard_no;
// ANK-2565-00-00 ADD END
// ANK-3602-00-00 ADD START
			// クレジットカード種別コード
			param[42] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.CRECARD_SBT_CD);
			// クレジットイシュア区分
			param[43] = creHikitsugiOutMap.getString(JBSbatKK_T_CRECARD.CRDT_ISSUER_DIV);
// ANK-3602-00-00 ADD END
		}
		else
		{
			
	    /* ++++++++++ v5.00.09 追加終了 ++++++++++ */

			// 請求方法番号(クレジットカード) ⇒ 採番部品を利用して採番する。
			param[0] = seiky_way_no_crecard;
			// 世代登録年月日時分秒　⇒　システム日時
			param[1] = JBSbatDateUtil.getSystemDateTimeStamp();
			// クレジットカードステータス　⇒　「100：審査済」
			param[2] = CRECARD_STAT_JUDGE_ZUMI;
			// クレジットカード事業コード　⇒　「2：FTTH事業」
			param[3] = CRECARD_JIGYO_CD;
			// クレジットカード会社コード　⇒　INPUT．クレジットカード会社コード
			param[4] = in_crecard_comp_cd;
// ANK-2565-00-00 MOD START
//			if (in_new_crecard_no != null && ("".equals(in_new_crecard_no) || in_new_crecard_no.trim().matches("[0]+")))
//			{
//				// クレジットカード番号がオール０であるため、カード番号の変更がないと判断し、旧クレジットカード番号を設定する。
//				// クレジットカード番号　⇒　INPUT．旧クレジットカード番号の前方０を最大５桁までカットし設定。
//				param[5] = JCCBatCommon.getEncryptResult(commonItem, this.getCrecardnoZeroCut(in_old_crecard_no));
//			}
//			else
//			{
//				// クレジットカード番号　⇒　INPUT．新クレジットカード番号の前方０を最大５桁までカットし設定。
//				param[5] = JCCBatCommon.getEncryptResult(commonItem, this.getCrecardnoZeroCut(in_new_crecard_no));
//			}
			if (UP_SIGN_UP.equals(in_crecard_no_up_sign))
			{
				// クレジットカード番号更新サインが「1：変更あり」である場合
// ANK-2810-00-00 MOD START
//				// クレジットカード番号　⇒　INPUT．新クレジットカード番号の前方０を最大５桁までカットし設定。
//				param[5] = JCCBatCommon.getEncryptResult(commonItem, this.getCrecardnoZeroCut(in_new_crecard_no));
				// クレジットカード番号　⇒　INPUT．新クレジットカード番号
				param[5] = JCCBatCommon.getEncryptResult(commonItem, in_new_crecard_no);
// ANK-2810-00-00 MOD END
			}
			else
			{
				// 引継元がなければALL ZERO設定（設定するものがないため）
				param[5] = JCCBatCommon.getEncryptResult(commonItem, "0000000000000000");
			}
// ANK-2565-00-00 MOD END
			
			// クレジットカード有効期限　⇒　INPUT．新クレジットカード有効期限
			param[6] = in_new_crecard_yk_ki;
			// クレジット交換コード　⇒　INPUT．クレジット交換コード
			param[7] = in_credit_kokan_cd;
			// クレジットカード名義(ローマ字)
			param[8] = SPACE;
			// クレジットカード名義カナ名　⇒　INPUT．クレジットカード名義カナ名
			param[9] = in_crecard_nm_kana;
			// クレジット請求手続キャンセル年月日
			param[10] = SPACE;
			// クレジット請求手続キャンセル理由コード
			param[11] = SPACE;
			// クレジット請求手続キャンセル理由メモ
			param[12] = SPACE;
			// 支払い審査依頼年月日
			param[13] = SPACE;
			// 記載不備審査結果コード
			param[14] = SPACE;
			/* ++++++++++ v5.00.09 修正開始 ++++++++++ */
			// 支払い審査結果コード
			// param[15] = SPACE;
			param[15] = YK_CFM_RSLT_KBN_OK;
		    /* ++++++++++ v5.00.09 修正終了 ++++++++++ */
			// 支払い審査結果NG理由コード
			param[16] = SPACE;
			// 支払い審査結果NG理由メモ
			param[17] = SPACE;
			// オーソリ確認年月日時分秒
			param[18] = SPACE;
			// オーソリ承認番号
			param[19] = SPACE;
			// 仕向先会社コード
// ANK-2565-00-00 MOD START
//			param[20] = SPACE;
			param[20] = in_credit_kokan_cd;
// ANK-2565-00-00 MOD START
			// 有効性要求年月日
			param[21] = SPACE;
			// 有効性確認結果区分　⇒　INPUT．有効性確認結果区分を読み替えて登録。
			param[22] = this.getYkCfmRsltDiv();
			// 有効性確認年月日　⇒　システム日付
			param[23] = JBSbatDateUtil.getSystemDate();
			// 再オーソリ確認年月日時分秒
			param[24] = SPACE;
			// 再オーソリ結果区分
			param[25] = SPACE;
			// クレジットカード無効年月
			param[26] = SPACE;
			// 異動区分　⇒　INPUT．異動区分
			param[27] = in_ido_div;
// ANK-2565-00-00 ADD START
			// クレジットカード番号預りID　⇒　INPUT．旧クレジットカード番号
			param[41] = in_old_crecard_no;
// ANK-2565-00-00 ADD END
// ANK-3602-00-00 ADD START
			// クレジットカード種別コード　⇒　判別不能であるが、NULLを避けるため"0"（クレジットカード）を設定
			param[42] = "0";
			// クレジットイシュア区分　⇒　判別不能であるが、NULLを避けるため"0"（国内）を設定
			param[43] = "0";
// ANK-3602-00-00 ADD END
		}
		// 登録年月日時分秒					⇒ 空白
		param[28] = SPACE;
		// 登録オペレータアカウント			⇒ 空白
		param[29] = SPACE;
		// 更新年月日時分秒					⇒ 空白
		param[30] = SPACE;
		// 更新オペレータアカウント			⇒ 空白
		param[31] = SPACE;
		// 削除年月日時分秒					⇒ 空白
		param[32] = SPACE;
		// 削除オペレータアカウント			⇒ 空白
		param[33] = SPACE;
		// 無効フラグ						⇒ "0"
		param[34] = "0";
		// 登録運用年月日					⇒ 空白
		param[35] = SPACE;
		// 登録処理ID						⇒ 空白
		param[36] = SPACE;
		// 更新運用年月日					⇒ 空白
		param[37] = SPACE;
		// 更新処理ID						⇒ 空白
		param[38] = SPACE;
		// 削除運用年月日					⇒ 空白
		param[39] = SPACE;
		// 削除処理ID						⇒ 空白
		param[40] = SPACE;
		
		
		// クレジットカード情報登録
		executeKK_T_CRECARD_PKINSERT(param);
	}
	
	/**
	 * 異動予約登録をします。
	 * <br>
	 * @param rsvAplyYmd 予約適用年月日
	 * @param outMap 請求契約検索結果情報
	 * @param kojiakStpCancelPrcUm 工事案件中止キャンセル料有無
	 * @throws Exception 
	 */
	private void insertIdoRsv(String rsvAplyYmd,JBSbatCommonDBInterface outMap) throws Exception
	{
		super.logPrint.printDebugLog("insertIdoRsv_START");
		
		// 異動予約（自動採番）
		String seqIdoRsvNo = JBSbatStringUtil.padNumFormString(
				JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), "SEQ_IDO_RSV_NO"), 15);
		
		String mskmDtlNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.MSKM_DTL_NO));
		String seikyuNo = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO));
		// システム日付を取得
		String sysdate = JBSbatDateUtil.getSystemDateTimeStamp();
		
		// 登録用データ格納
		Object[] param_add = new Object[53];
		
		// 異動予約番号 → 自動採番
		param_add[0] = seqIdoRsvNo;
		// 異動区分 → 00015：請求先情報変更を設定
		param_add[1] = "00015";
		// 異動予約詳細コード → 002：請求契約併合・分割・変更
		param_add[2] = "002";
		// 予約適用年月日 → "20991231"を設定
		param_add[3] =rsvAplyYmd;
		// 異動予約反映年月日
		param_add[4] = "";
		// 異動予約取消年月日
		param_add[5] = "";
		// 異動予約状態コード → 04：異動予約対象外を設定
		param_add[6] = "04";
		// 申込明細番号
		param_add[7] = mskmDtlNo;
		// SYSID
		param_add[8] = "";
		// 請求契約番号
		param_add[9] = seikyuNo;
		// サービス契約番号
		param_add[10] = "";
		// サービス契約内訳番号
		param_add[11] = "";
		// オプションサービス契約番号
		param_add[12] = "";
		// サブオプションサービス契約番号
		param_add[13] = "";
		// 機器提供サービス契約番号
		param_add[14] = "";
		// 割引サービス契約番号
		param_add[15] = "";
		// サービス契約回線内訳番号
		param_add[16] = "";
		// 併合先SYSID
		param_add[17] = "";
		// 分割先SYSID
		param_add[18] = "";
		// 併合先請求契約番号
		param_add[19] = "";
		// 分割先請求契約番号
		param_add[20] = "";
		// 新料金グループコード
		param_add[21] = "";
		// 新料金コースコード
		param_add[22] = "";
		// 新料金プランコード
		param_add[23] = "";
		// 新提供方式契約番号
		param_add[24] = "";
		// 新電波障害案件番号
		param_add[25] = "";
		// 旧料金グループコード
		param_add[26] = "";
		// 旧料金コースコード
		param_add[27] = "";
		// 旧料金プランコード
		param_add[28] = "";
		// 旧提供方式契約番号
		param_add[29] = "";
		// 旧電波障害案件番号
		param_add[30] = "";
		// 工事案件番号
		param_add[31] = "";
		// 違約金発生コード
		param_add[32] = "";
		// オプション引継先サービス契約番号
		param_add[33] = "";
		// サービス休止課金開始年月日
		param_add[34] = "";
		// サービス課金終了年月日
		param_add[35] = "";
		// プラン課金開始年月日
		param_add[36] = "";
		// プラン課金終了年月日
		param_add[37] = "";
		// 異動予約理由コード
		param_add[38] = "";
		// 異動予約理由メモ
		param_add[39] = "";
		// 登録年月日時分秒
		param_add[40] = sysdate;
		// 登録オペレータアカウント
		param_add[41] = batchUserId;
		// 更新年月日時分秒
		param_add[42] = sysdate;
		// 更新オペレータアカウント
		param_add[43] = batchUserId;
		// 削除年月日時分秒
		param_add[44] = "";
		// 削除オペレータアカウント
		param_add[45] = "";
		// 無効フラグ → 0：有効を設定
		param_add[46] = "0";
		// 登録運用年月日
		param_add[47] = "";
		// 登録処理ID
		param_add[48] = "";
		// 更新運用年月日
		param_add[49] = "";
		// 更新処理ID
		param_add[50] = "";
		// 削除運用年月日
		param_add[51] = "";
		// 削除処理ID
		param_add[52] = "";
		
		// 異動予約の登録を行います。
		this.executeKK_T_IDO_RSV_PKINSERT(param_add);
		
		super.logPrint.printDebugLog("insertIdoRsv_END");
	}
	
	/**
	 * クレジットカード情報を更新します。
	 * <br>
	 * @param outMap クレジットカード情報
	 * @throws Exception 
	 */
	private void updateCrecardData(JBSbatCommonDBInterface outMap) throws Exception
	{
		// 請求契約の排他を行います。
		JBSbatCommonDBInterface seiky_kei_Map = new JBSbatCommonDBInterface();
		String gene_add_dtm = JBSbatStringUtil.Rtrim(outMap.getString("KK0491_GENE_ADD_DTM"));
		seiky_kei_Map.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, in_seiky_kei_no);
		seiky_kei_Map.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, gene_add_dtm);
		JBSbatCommonDBInterface outDbMap = db_KK_T_SEIKY_KEI.selectByPrimaryKeysForUpdateWait(seiky_kei_Map);
		
		if (outDbMap != null)
		{
			// クレジットカード情報更新用データ格納
			Object[] param_update = new Object[5];
			// 有効性確認結果区分	⇒ INPUTの有効性確認結果区分を読み替える。
			param_update[0] = this.getYkCfmRsltDiv();
			// 有効性確認年月日		⇒ システム日付
			param_update[1] = JBSbatDateUtil.getSystemDate();
			// クレジットカード無効年月		⇒ INPUTの審査反映対象月
			param_update[2] = in_judge_hanei_tgt_m;
			// 異動区分		⇒ INPUTの異動区分
			param_update[3] = in_ido_div;
			// 検索条件格納
			Object[] where_param = new Object[2];
			where_param[0] = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_CRECARD.SEIKY_WAY_NO_CRECARD));	// 請求方法番号(クレジットカード)
			where_param[1] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_CRECARD.GENE_ADD_DTM));			// 世代登録年月日時分秒
			
			// クレジットカード情報更新
			executeKK_T_CRECARD_PKUPDATE(param_update, where_param);
		}
		else
		{
			throw new JBSbatBusinessException("EKKB0360KE", new String[] {"請求契約TBL", in_seiky_kei_no});
		}
		
		// 請求契約の更新年月日時分秒の更新を行う。
		JBSbatCommonDBInterface paramMap = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		// 請求契約番号を設定
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, in_seiky_kei_no);
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, gene_add_dtm);
		
		// 更新年月日時分秒を更新。
		paramMap.setValue(JBSbatKK_T_SEIKY_KEI.UPD_DTM, JBSbatDateUtil.getSystemDateTimeStamp());
// +++++++++++++ v5.00.07 変更開始 ++++++++++++++++++
//		db_KK_T_SEIKY_KEI.updateByPrimaryKeys(whereMap, paramMap);
		db_KK_T_SEIKY_KEI.updateByPrimaryKeysBatch(whereMap, paramMap, 1);
// +++++++++++++ v5.00.07 変更終了 ++++++++++++++++++
	}
	
	/**
	 * クレジットカード情報を更新します。
	 * <br>
	 * @param outMap クレジットカード情報
	 * @throws Exception 
	 */
	private void updateCrecardMiraiData(JBSbatCommonDBInterface outMap) throws Exception
	{
		// 請求契約の排他を行います。
		JBSbatCommonDBInterface seiky_kei_Map = new JBSbatCommonDBInterface();
		String gene_add_dtm = JBSbatStringUtil.Rtrim(outMap.getString("KK0491_GENE_ADD_DTM"));
		seiky_kei_Map.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, in_seiky_kei_no);
		seiky_kei_Map.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, gene_add_dtm);
		JBSbatCommonDBInterface outDbMap = db_KK_T_SEIKY_KEI.selectByPrimaryKeysForUpdateWait(seiky_kei_Map);
		
		if (outDbMap != null)
		{
			// クレジットカード情報更新用データ格納
			Object[] param_update = new Object[5];
			// 有効性確認結果区分	⇒ INPUTの有効性確認結果区分を読み替える。
			param_update[0] = this.getYkCfmRsltDiv();
			// 有効性確認年月日		⇒ システム日付
			param_update[1] = JBSbatDateUtil.getSystemDate();
			// クレジットカード無効年月		⇒ INPUTの審査反映対象月
			param_update[2] = in_judge_hanei_tgt_m;
			// 異動区分		⇒ INPUTの異動区分
			param_update[3] = in_ido_div;
			// 検索条件格納
			Object[] where_param = new Object[2];
			where_param[0] = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_CRECARD.SEIKY_WAY_NO_CRECARD));	// 請求方法番号(クレジットカード)
			where_param[1] = JBSbatStringUtil.Rtrim(outMap.getString(JBSbatKK_T_CRECARD.GENE_ADD_DTM));			// 世代登録年月日時分秒
			
			// クレジットカード情報更新
			executeKK_T_CRECARD_PKUPDATE(param_update, where_param);
		}
		else
		{
			throw new JBSbatBusinessException("EKKB0360KE", new String[] {"請求契約TBL", in_seiky_kei_no});
		}
		
		// 請求契約の更新年月日時分秒の更新を行う。
		JBSbatCommonDBInterface paramMap = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		// 請求契約番号を設定
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, in_seiky_kei_no);
		whereMap.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, gene_add_dtm);
		
		// 更新年月日時分秒を更新。
		paramMap.setValue(JBSbatKK_T_SEIKY_KEI.UPD_DTM, JBSbatDateUtil.getSystemDateTimeStamp());
// +++++++++++++ v5.00.07 変更開始 ++++++++++++++++++
//		db_KK_T_SEIKY_KEI.updateByPrimaryKeys(whereMap, paramMap);
		db_KK_T_SEIKY_KEI.updateByPrimaryKeysBatch(whereMap, paramMap, 1);
// +++++++++++++ v5.00.07 変更終了 ++++++++++++++++++
	}
	
	/**
	 * 請求契約情報を更新します。
	 * <br>
	 * @param outMap 請求契約情報
	 * @return 
	 * @throws Exception 
	 */
	private JBSbatCommonDBInterface updateSeikyKeiData(String seiky_kei_no, String gene_add_dtm) throws Exception
	{
		// 検索条件格納
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		// 請求契約番号の設定
		paramList.setValue(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO, seiky_kei_no);
		// 世代登録年月日時分秒の設定
		paramList.setValue(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM, gene_add_dtm);
		// 請求契約排他制御処理を実行する
		JBSbatCommonDBInterface outDbMap = db_KK_T_SEIKY_KEI.selectByPrimaryKeysForUpdateWait(paramList);
		
		if (outDbMap != null)
		{
			// 検索条件格納
			Object[] where_param = new Object[2];
			where_param[0] = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO));	// 請求契約番号
			where_param[1] = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SEIKY_KEI.GENE_ADD_DTM));	// 世代登録年月日時分秒
			
			// 請求契約情報更新
			executeKK_T_SEIKY_KEI_PKUPDATE_001(where_param);
		} 
		else
		{
			throw new JBSbatBusinessException("EKKB0360KE", new String[] {"請求契約TBL", seiky_kei_no});
		}
		
		return outDbMap;
	}
	
// ANK-2810-00-00 DEL START
//	/**
//	 * 新クレジットカード番号の前０を最大５桁までカットします。
//	 * <br>
//	 * @param outMap 請求契約情報
//	 * @return String 成形後のクレジットカード番号
//	 */
//	private String getCrecardnoZeroCut(String crecardNo)
//	{
//		
//		// 新クレジットカード番号の文字列より先頭が0の場合カットする。
//		String value = crecardNo;
//		for(int i = 0; i < 5; i ++)
//		{
//			char c = crecardNo.charAt(i);
//			if("0".equals(String.valueOf(c)))
//			{
//				value = crecardNo.substring(i + 1);
//			}
//			else
//			{
//				break;
//			}
//		}
//		return value;
//	}
// ANK-2810-00-00 DEL END
	
	/**
	 * 有効性確認結果区分の読み替え処理
	 * INPUTの有効性確認結果区分は「0：OK」「1：NG」「2：エラー」であるため
	 * 有効性確認結果区分のコード値に合わせて読みかえる。
	 * <br>
	 * @param outMap 請求契約情報
	 * @return String 成形後のクレジットカード番号
	 */
	private String getYkCfmRsltDiv()
	{
		// 「0：OK」は「1：有効性ＯＫ」を返却。
		if("0".equals(in_yk_cfm_rslt_div))
		{
			return "1";
		}
		// 「1：NG」は「2：有効性ＮＧ」を返却。
		else if("1".equals(in_yk_cfm_rslt_div))
		{
			return "2";
		}
		// 上記以外（「2：エラー」）は「3：照合エラー」を返却。
		return "3";
	}
// ANK-3981-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_070)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_KEI_KK_SELECT_070(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SEIKY_KEI_070.selectBySqlDefine(paramList, KK_T_SEIKY_KEI_KK_SELECT_070);
	}
// ANK-3981-00-00 ADD END
}
