/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSmtvlRnkiInfCst
*	ソースファイル名	：JBSbatKKSmtvlRnkiInfCst.java
*	作成者				：富士通　
*	作成日				：2012年09月17日
*＜機能概要＞
*　スマートバリュー連携情報抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/09/17   富士通		新規作成
*	v8.00.00	2014/04/28	FJ)星野		OM-2014-0001680対応
*	v11.00.00	2014/11/25	FJ)谷口		OM-2014-0003080対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM267;
import eo.business.util.table.JBSbatKK_T_ADCHG;
import eo.business.util.table.JBSbatKK_T_ADCHG_DTL;
import eo.business.util.table.JBSbatKK_T_KJ_FIN_WK;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_TAJGSWKEI_TGKEI;
import eo.common.util.JKKStringUtil;
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;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKSmtvlRnkiInfCst extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約回線内訳)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";

// ST2-2013-0001008対応 20130301 OKITA ADD START
	/** テーブル(住所変更明細)*/
	private static final String D_TBL_NAME_KK_T_ADCHG_DTL = "KK_T_ADCHG_DTL";
// ST2-2013-0001008対応 20130301 OKITA ADD END
		
	/** テーブル(工事完了ワーク)*/
	private static final String D_TBL_NAME_KK_T_KJ_FIN_WK = "KK_T_KJ_FIN_WK";

	/** テーブル(サービス契約＿工事案件)*/
	private static final String D_TBL_NAME_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END

	/** SQL定義キー(KK_SELECT_026)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_026 = "KK_SELECT_026";

	/** SQL定義キー(KK_SELECT_020)*/
	private static final String KK_T_KJ_FIN_WK_KK_SELECT_020 = "KK_SELECT_020";

	/** SQL定義キー(KK_SELECT_007)*/
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_007 = "KK_SELECT_007";

// OM-2013-0000735 2013.09.08 T.TORIKAI ADD START
	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_003 = "KK_SELECT_003";
// OM-2013-0000735 2013.09.08 T.TORIKAI ADD END
// ST2-2013-0001008対応 20130301 OKITA ADD START
	/** SQL定義キー(KK_SELECT_020)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_020 = "KK_SELECT_020";
// ST2-2013-0001008対応 20130301 OKITA ADD END

// OM-2013-0000735 2013.09.08 T.TORIKAI ADD START
	/** SQL定義キー(KK_SELECT_023)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_023 = "KK_SELECT_023";
// OM-2013-0000735 2013.09.08 T.TORIKAI ADD END
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
	/** SQL定義キー(KK_SELECT_250)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_251 = "KK_SELECT_251";
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;

// ST2-2013-0001008対応 20130301 OKITA ADD START
	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL = null;
// ST2-2013-0001008対応 20130301 OKITA ADD END
	
	/** テーブルアクセスクラス(工事完了ワーク)*/
	private JBSbatSQLAccess db_KK_T_KJ_FIN_WK = null;

	/** テーブルアクセスクラス(サービス契約＿工事案件)*/
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

// ST2-2013-0000980対応 20130225 星野 ADD START
	/** ディレイド（起動） */
	public static final String DELAYED_START = "1";

	/** ディレイド（でない） */
	public static final String DELAYED_NOT_START = "0";
// ST2-2013-0000980対応 20130225 星野 ADD END

// ST2-2013-0001008対応 20130301 OKITA ADD START
	/** 住所変更明細種別コード（工事案件番号） */
	private static final String ADCHG_DTL_SBT_CD_KOJIAK_NO = "06";
	
	/** 工事案件ステータス（中止） */
	public static final String KU_T_KOJIAK_KOJIAK_STAT = "900";
// ST2-2013-0001008対応 20130301 OKITA ADD END

// OM-2013-0000735 2013.09.08 T.TORIKAI ADD START
	/** 住所変更明細種別コード（ サービス契約番号） */
	private static final String ADCHG_DTL_SBT_CD_SVC_KEI_NO = "01";
// OM-2013-0000735 2013.09.08 T.TORIKAI ADD END

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
// ST2-2013-0001008対応 20130301 OKITA ADD START
		db_KK_T_ADCHG_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG_DTL);
// ST2-2013-0001008対応 20130301 OKITA ADD END
		db_KK_T_KJ_FIN_WK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KJ_FIN_WK);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		// +++++ 初期処理 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		// ----- 出力部品 -----
		JBSbatOutputItem outputItem = new JBSbatOutputItem();

		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		outMap.setOutFlg(true);

		// ----- 入力電文 -----
		// 住所変更番号
		String inAdchgNo = inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO);
		// 移転先サービス契約回線内訳番号
		String inItensSvkeiKisuwNo = inMap.getString(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO);
// ST2-2013-0000980対応 20130225 星野 ADD START
		// ディレイド起動フラグ
		String isDelayed = inMap.getString("IS_DELAYED");
		if (isDelayed == null || "".equals(isDelayed.trim())) {
			isDelayed = DELAYED_NOT_START;
		}
// ST2-2013-0000980対応 20130225 星野 ADD END

		// +++++ 主処理 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// OM-2014-0001680対応 20140428 星野 DEL START
//// ST2-2013-0001008 20130301 OKITA START
//		// 処理対象外判定 工事案件ステータス＝900(中止)データの場合、処理対象外
//		executeKK_T_ADCHG_DTL_KK_SELECT_020(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_KOJIAK_NO, KU_T_KOJIAK_KOJIAK_STAT});
//		JBSbatCommonDBInterface kojiakInf = db_KK_T_ADCHG_DTL.selectNext();
//		if (kojiakInf != null) {
//			// 業務ログをワーニング出力し、処理をスキップする
//// OM-2013-0000735 2013.09.08 T.TORIKAI MOD START
////			super.logPrint.printBusinessErrorLog("EKKB0310JW", new String[]{"新設工事","工事案件ステータス", "ADCHG_NO:[" + inAdchgNo + "], KOJIAK_NO:[" + kojiakInf.getValue("KOJIAK_NO") + "]"});
//			String msg = "新設工事が中止されているため処理対象外となります。";
//			msg += "住所変更番号:" + inAdchgNo;
//			msg += " 工事案件番号:" + kojiakInf.getValue("KOJIAK_NO");
//			msg += getLogMsgKojiStop(inAdchgNo);
//			super.logPrint.printBusinessErrorLog("EKKB0310JW", new String[]{"新設工事","工事案件ステータス", msg});
//// OM-2013-0000735 2013.09.08 T.TORIKAI MOD END
//			return outputItem;
//		}
//// ST2-2013-0001008 20130301 OKITA END
// OM-2014-0001680対応 20140428 星野 DEL END
		
// ST2-2013-0000980対応 20130225 星野 ADD START
		// ----- ディレイドの起動を確認 -----
		if (DELAYED_START.equals(isDelayed)) {
			// ----- 中間ファイルに出力 -----
			outMap.setString(JBSbatKKIFM267.ADCHG_NO,
					inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO));
			outMap.setString(JBSbatKKIFM267.MSKM_DTL_NO,
					inMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
			outMap.setString(JBSbatKKIFM267.ITNM_SVC_KEI_NO,
					inMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO));
			outMap.setString(JBSbatKKIFM267.ITNS_SVC_KEI_NO,
					inMap.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO));
			outMap.setString(JBSbatKKIFM267.TAJGS_WRIB_KEI_NO,
					inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGS_WRIB_KEI_NO));
			outMap.setString(JBSbatKKIFM267.TAJGSWKEI_TGKEI_NO,
					inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_NO));
			outMap.setString(JBSbatKKIFM267.GENE_ADD_DTM,
					inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.GENE_ADD_DTM));
			outMap.setString(JBSbatKKIFM267.UPD_DTM,
					inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.UPD_DTM));

// ANK-1429-00-00 2013.03.21 T.TORIKAI MOD START
			//outputItem.addOutMapList(outMap);
			// 移転元のサービス契約が解約されていない場合のみ抽出する
			// OM-2014-0003080 移転元ネットが解約されたら紐付け変更されない MOD START
//			if (!isSurrenderService(inMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO))) {
//				outputItem.addOutMapList(outMap);
//			}
			outputItem.addOutMapList(outMap);
			// OM-2014-0003080 移転元ネットが解約されたら紐付け変更されない MOD END
//ANK-1429-00-00 2013.03.21 T.TORIKAI MOD END

			return outputItem;
		}
// ST2-2013-0000980対応 20130225 星野 ADD END

		// ----- 入居予定日の到来を確認 -----
		// 入居予定日が到来したサービス契約回線内訳情報
		JBSbatCommonDBInterface nyukyoRsvTriKisnInfo = null;
		{
			// サービス契約回線内訳番号と運用日の前日を基にサービス契約回線内訳を取得
			executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_026(new String[]{inItensSvkeiKisuwNo, JBSbatDateUtil.adjustDate(opeDate, 1)});
			nyukyoRsvTriKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
		}

		// 入居予定日が到来した場合
		if (nyukyoRsvTriKisnInfo != null) {

			// ----- 中間ファイルに出力 -----
			{
				outMap.setString(JBSbatKKIFM267.ADCHG_NO,
						inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO));
				outMap.setString(JBSbatKKIFM267.MSKM_DTL_NO,
						inMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
				outMap.setString(JBSbatKKIFM267.ITNM_SVC_KEI_NO,
						inMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO));
				outMap.setString(JBSbatKKIFM267.ITNS_SVC_KEI_NO,
						inMap.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO));
				outMap.setString(JBSbatKKIFM267.TAJGS_WRIB_KEI_NO,
						inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGS_WRIB_KEI_NO));
				outMap.setString(JBSbatKKIFM267.TAJGSWKEI_TGKEI_NO,
						inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_NO));
				outMap.setString(JBSbatKKIFM267.GENE_ADD_DTM,
						inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.GENE_ADD_DTM));
				outMap.setString(JBSbatKKIFM267.UPD_DTM,
						inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.UPD_DTM));
			}

// ANK-1429-00-00 2013.03.21 T.TORIKAI MOD START
			//outputItem.addOutMapList(outMap);
			// 移転元のサービス契約が解約されていない場合のみ抽出する
			if (!isSurrenderService(inMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO))) {
				outputItem.addOutMapList(outMap);
			}
//ANK-1429-00-00 2013.03.21 T.TORIKAI MOD END

			return outputItem;
		}

		// ----- 新設工事の完了を確認 -----
		{
			// 住所変更番号と運用日を基に新設の工事完了ワークを取得
			executeKK_T_KJ_FIN_WK_KK_SELECT_020(new String[]{inAdchgNo, opeDate});

			JBSbatCommonDBInterface newKjFinRnkiInfo = null;
			for (newKjFinRnkiInfo = db_KK_T_KJ_FIN_WK.selectNext(); newKjFinRnkiInfo != null; newKjFinRnkiInfo = db_KK_T_KJ_FIN_WK.selectNext()) {

				executeKU_T_SVKEI_KOJIAK_KK_SELECT_007(new String[]{inMap.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO), newKjFinRnkiInfo.getString(JBSbatKK_T_KJ_FIN_WK.KOJIAK_NO)});

				if (db_KU_T_SVKEI_KOJIAK.selectNext() != null) {

					// ----- 中間ファイルに出力 -----
					{
						outMap.setString(JBSbatKKIFM267.ADCHG_NO,
								inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO));
						outMap.setString(JBSbatKKIFM267.MSKM_DTL_NO,
								inMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
						outMap.setString(JBSbatKKIFM267.ITNM_SVC_KEI_NO,
								inMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO));
						outMap.setString(JBSbatKKIFM267.ITNS_SVC_KEI_NO,
								inMap.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO));
						outMap.setString(JBSbatKKIFM267.TAJGS_WRIB_KEI_NO,
								inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGS_WRIB_KEI_NO));
						outMap.setString(JBSbatKKIFM267.TAJGSWKEI_TGKEI_NO,
								inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_NO));
						outMap.setString(JBSbatKKIFM267.GENE_ADD_DTM,
								inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.GENE_ADD_DTM));
						outMap.setString(JBSbatKKIFM267.UPD_DTM,
								inMap.getString(JBSbatKK_T_TAJGSWKEI_TGKEI.UPD_DTM));
					}

// ANK-1429-00-00 2013.03.21 T.TORIKAI MOD START
					//outputItem.addOutMapList(outMap);
					// 移転元のサービス契約が解約されていない場合のみ抽出する
					if (!isSurrenderService(inMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO))) {
						outputItem.addOutMapList(outMap);
					}
//ANK-1429-00-00 2013.03.21 T.TORIKAI MOD END

					return outputItem;
				}
			}
		}

		// どれにも該当しない場合は何もしない
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVKEI_KAISEN_UW.close();
// ST2-2013-0001008対応 20130301 OKITA ADD START
		db_KK_T_ADCHG_DTL.close();
// ST2-2013-0001008対応 20130301 OKITA ADD END
		db_KK_T_KJ_FIN_WK.close();
		db_KU_T_SVKEI_KOJIAK.close();
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
		db_KK_T_SVC_KEI.close();
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_026)で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_SVKEI_KAISEN_UW_KK_SELECT_026(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);

		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_026);
	}

	/**
	 * SQLKEY(KK_SELECT_020)で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_KJ_FIN_WK_KK_SELECT_020(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);

		// DBアクセスを実行します
		db_KK_T_KJ_FIN_WK.selectBySqlDefine(paramList, KK_T_KJ_FIN_WK_KK_SELECT_020);
	}

	/**
	 * SQLKEY(KK_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	工事案件番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_SVKEI_KOJIAK_KK_SELECT_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_007);
	}
	
	/**
	 * SQLKEY(KK_SELECT_020)で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_ADCHG_DTL_KK_SELECT_020(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		paramList.setValue(param[2]);

		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_020);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） START
	/**
	 * 指定されたサービスが解約されているか判定する<br>
	 * 但し、異動区分が住所変更の場合は解約済みであっても解約とはしない
	 * @param svcNo サービス契約番号
	 * @return true:解約済み false:解約済み以外
	 * @throws Exception 
	 */
	private boolean isSurrenderService(String svcNo) throws Exception {
		
		// サービス契約番号が無い場合は「解約されていない」と判定
		if (JKKStringUtil.isNullBlank(svcNo)) {
			return false;
		}
		
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(svcNo);
		paramList.setValue(opeDate);
		
		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_251);
		if (db_KK_T_SVC_KEI.selectNext() == null) {
			return false;		// 解約済みではない
		}
		
		return true;	// 解約済み
	}
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） END

// OM-2013-0000735 2013.09.08 T.TORIKAI メソッド追加
	/**
	 * ログ出力用のメッセージ（SYSID、サービス契約番号）を取得する
	 */
	private String getLogMsgKojiStop(String adchgNo) throws Exception {
		
		String msgSvcKei = "";
		String sysId = "";
		
		// 住所変更明細取得（サービス契約）
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(adchgNo);
		paramList.setValue(ADCHG_DTL_SBT_CD_SVC_KEI_NO);
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_003);
		while (true) {
			JBSbatCommonDBInterface adchgDtl = db_KK_T_ADCHG_DTL.selectNext();
			if (adchgDtl == null) {
				break;
			}
			String motoSvcKeiNo = adchgDtl.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String sakiSvcKeiNo = adchgDtl.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
			String svcKeiNo = null;
			if (motoSvcKeiNo == null && sakiSvcKeiNo == null) {
				continue;
			}
			if (motoSvcKeiNo == null || sakiSvcKeiNo == null) {
				if (motoSvcKeiNo == null) {
					// 追加
					svcKeiNo = sakiSvcKeiNo;
				} else {
					// 解約、保留
					svcKeiNo = motoSvcKeiNo;
				}
				msgSvcKei += " サービス契約番号:" + svcKeiNo;
			} else {
				// 引越
				if (motoSvcKeiNo.equals(sakiSvcKeiNo)) {
					msgSvcKei += " サービス契約番号:" + motoSvcKeiNo;
				} else {
					// 引越：解約＋新規
					msgSvcKei += " サービス契約番号(転居元・先):" + motoSvcKeiNo + " / " + sakiSvcKeiNo;
				}
				svcKeiNo = motoSvcKeiNo;
			}
			// SYSID未取得の場合のみサービス契約より取得する
			if ("".equals(sysId)) {
				sysId = getSysId(svcKeiNo);
			}
		}
		return " SYSID:" + sysId + msgSvcKei;
	}
	
// OM-2013-0000735 2013.09.08 T.TORIKAI メソッド追加
	/**
	 * サービス契約よりSYSIDを取得する
	 */
	private String getSysId(String svcKeiNo) throws Exception {

		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(svcKeiNo);
		paramList.setValue(opeDate);

		// 検索
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_023);
		JBSbatCommonDBInterface svcKei = db_KK_T_SVC_KEI.selectNext();
		if (svcKei != null) {
			return svcKei.getString(JBSbatKK_T_SVC_KEI.SYSID);
		}

		return "";
	}
}
