/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKAdChgAddDataCst
*	ソースファイル名	：JBSbatKKAdChgAddDataCst.java
*	作成者				：富士通　
*	作成日				：2012年08月23日
*＜機能概要＞
*　住所変更登録対象データ抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/08/23  富士通		新規作成
*	v8.00.00	2014/04/25	FJ)星野		OM-2014-0001653対応
*	v8.01.00	2014/04/28	FJ)星野		OM-2014-0001680対応
*  v10.00.00    2014/08/15  FJ) 谷口    IT1-2014-0000288
*  v12.00.00    2015/01/26  FJ) 阮      OM-2014-0003552
*  v20.00.00    2015/12/28  FJ)星野     OM-2015-0003210
*********************************************************************/
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.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM101;
import eo.business.util.table.JBSbatKK_T_ADCHG;
import eo.business.util.table.JBSbatKK_T_ADCHG_DTL;
import eo.business.util.table.JBSbatKK_T_KAISEN_TG_SVKEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVKEI_EXC_CTRL;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.business.util.table.JBSbatKU_T_SVKEI_KOJIAK;
import eo.common.constant.JKUStrConst;
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 JBSbatKKAdChgAddDataCst extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約回線内訳)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";

	/** テーブル(工事完了ワーク)*/
	private static final String D_TBL_NAME_KK_T_KJ_FIN_WK = "KK_T_KJ_FIN_WK";

	/** テーブル(住所変更明細)*/
	private static final String D_TBL_NAME_KK_T_ADCHG_DTL = "KK_T_ADCHG_DTL";

	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(サービス契約＿工事案件)*/
	private static final String D_TBL_NAME_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";

	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_TG_SVKEI = "KK_T_KAISEN_TG_SVKEI";

	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";

// 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_019)*/
	private static final String KK_T_KJ_FIN_WK_KK_SELECT_019 = "KK_SELECT_019";

	/** SQL定義キー(KK_SELECT_020)*/
	private static final String KK_T_KJ_FIN_WK_KK_SELECT_020 = "KK_SELECT_020";

	/** SQL定義キー(KK_SELECT_023)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_023 = "KK_SELECT_023";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_011)*/
	private static final String KU_T_KOJIAK_KK_SELECT_011 = "KK_SELECT_011";

	/** SQL定義キー(KK_SELECT_007)*/
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_007 = "KK_SELECT_007";

	/** SQL定義キー(KK_SELECT_024)*/
	private static final String KK_T_KAISEN_TG_SVKEI_KK_SELECT_024 = "KK_SELECT_024";

	/** SQL定義キー(KK_SELECT_012)*/
	private static final String KU_T_KOJIAK_KK_SELECT_012 = "KK_SELECT_012";

// IT1-2013-0001349 2013.07.10 T.TORIKAI ADD START
	/** SQL定義キー(KK_SELECT_028)*/
	private static final String KU_T_KOJIAK_KK_SELECT_028 = "KK_SELECT_028";
//IT1-2013-0001349 2013.07.10 T.TORIKAI ADD END

	/** SQL定義キー(KK_SELECT_008)*/
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_008 = "KK_SELECT_008";

// 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

// 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
// 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
// IT1-2013-0000759対応 20130404 星野 ADD START
	/** SQL定義キー(KK_SELECT_112)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_112 = "KK_SELECT_112";
// IT1-2013-0000759対応 20130404 星野 ADD END
	// OM-2014-0003552 2015/01/24 ADD START
	/** SQL定義キー(KK_SELECT_038)*/
	private static final String KK_T_KJ_FIN_WK_KK_SELECT_038 = "KK_SELECT_038";
	// OM-2014-0003552 2015/01/24 ADD END

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;

	/** テーブルアクセスクラス(工事完了ワーク)*/
	private JBSbatSQLAccess db_KK_T_KJ_FIN_WK = null;

	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL = null;

	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(サービス契約＿工事案件)*/
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;

	/** テーブルアクセスクラス(回線対象サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_TG_SVKEI = null;

	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = 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

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 最大日付 */
	private static final String MAX_DATE = "20991231";

	/** 住所変更明細種別コード（ サービス契約番号） */
	private static final String ADCHG_DTL_SBT_CD_SVC_KEI_NO = "01";

	/** 住所変更明細種別コード（工事案件番号） */
	private static final String ADCHG_DTL_SBT_CD_KOJIAK_NO = "06";

	/** サービス契約回線内訳ステータス（受付済）*/
	public static final String SVC_KEI_KAISEN_UCWK_STAT_UKTKZM = "010";

	/** サービス契約回線内訳ステータス（使用中）*/
	public static final String SVC_KEI_KAISEN_UCWK_STAT_UNDER_USE = "100";

	/** サービス契約回線内訳ステータス（未使用）*/
	public static final String SVC_KEI_KAISEN_UCWK_STAT_INTACT = "210";

// ST2-2013-0001008対応 20130301 OKITA ADD START
	/** 工事案件ステータス（中止） */
	public static final String KU_T_KOJIAK_KOJIAK_STAT = "900";
// ST2-2013-0001008対応 20130301 OKITA ADD END

	/** OPMS変更連携要否（否）*/
	public static final String OPMS_CHGE_RNKI_YH_OFF = "0";

	/** OPMS変更連携要否（要） */
	public static final String OPMS_CHGE_RNKI_YH_ON = "1";

	/** 時分秒（0:0:0.000） */
	public static final String SYS_TIME_BASE = "000000000";

	/** ディレイド（起動） */
	public static final String DELAYED_START = "1";

	/** ディレイド（でない） */
	public static final String DELAYED_NOT_START = "0";

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
	/** 移転元のネットのサービス契約番号 */
	private String itenMotoSvcNoNet = null;

	/** 移転元の電話のサービス契約番号 */
	private String itenMotoSvcNoTel = null;

	/** 移転元のテレビのサービス契約番号 */
	private String itenMotoSvcNoTv = null;
//ANK-1429-00-00 2013.03.21 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);
		db_KK_T_KJ_FIN_WK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KJ_FIN_WK);
		db_KK_T_ADCHG_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG_DTL);
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_KK_T_KAISEN_TG_SVKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_TG_SVKEI);
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
// 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);	// 移転先サービス契約回線内訳番号
		String inItnmSvkeiKisuwNo =
			inMap.getString(JBSbatKK_T_ADCHG.ITNM_SVKEI_KISUW_NO);	// 移転元サービス契約回線内訳番号
		String kshadChgUm =
			inMap.getString(JBSbatKK_T_ADCHG.KSHAD_CHG_UM);			// 契約者住所変更有無
// IT1-2013-0001122対応 星野 ADD START
		String adchgFinAddRunPtn = 
			inMap.getString("ADCHG_FIN_ADD_RUN_PTN");				// 住所変更確定パターン(1:住所変更確定 2:確定後の撤去完了)
// IT1-2013-0001122対応 星野 ADD END
		// ディレイド起動フラグ
		String isDelayed = inMap.getString("IS_DELAYED");
		if (isBlank(isDelayed)) {
			isDelayed = DELAYED_NOT_START;
		}

		// ----- サービス契約回線内訳情報 -----
		// ディレイドで起動されたサービス契約回線内訳情報
		JBSbatCommonDBInterface delayedStartKisnInfo = null;
		// 入居予定日が到来したサービス契約回線内訳情報
		JBSbatCommonDBInterface nyukyoRsvTriKisnInfo = null;
		// 新設工事が完了したサービス契約回線内訳情報
		JBSbatCommonDBInterface newKjFinRnkiKisnInfo = null;
		// 撤去工事が完了したサービス契約回線内訳情報
		JBSbatCommonDBInterface dslKjFinRnkiKisnInfo = null;

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
		// 移転元のサービス契約番号初期化
		itenMotoSvcNoNet = null;
		itenMotoSvcNoTel = null;
		itenMotoSvcNoTv = null;
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END

		// +++++ 主処理 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// ST1-2013-0000503対応 20130328 星野 DEL START
// 下に移動
//		// ●住所変更を設定
//		setAdchg(outMap, inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO), inMap.getString(JBSbatKK_T_ADCHG.UPD_DTM));
// ST1-2013-0000503対応 20130328 星野 DEL 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-0003325対応 20131016 星野 ADD START
//// 確定後の撤去完了はチェック対象外
//			&& !"2".equals(adchgFinAddRunPtn)
//// OM-2013-0003325対応 20131016 星野 ADD END
//		) {
//			// 業務ログをワーニング出力し、処理をスキップする
//// 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
		
		// ----- ディレイドの起動を確認 -----
		if (DELAYED_START.equals(isDelayed)) {

			// 移転先サービス契約回線内訳番号を基にサービス契約回線内訳を取得
			executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItensSvkeiKisuwNo});

			delayedStartKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
		}

		// ----- 入居予定日の到来を確認 -----
// IT1-2013-0001122対応 20130502 星野 ADD START
		// 確定後の撤去完了の場合、入居予定日到来を見ない
		if(!"2".equals(adchgFinAddRunPtn))
// IT1-2013-0001122対応 20130502 星野 ADD END
		{
			// サービス契約回線内訳番号と運用日の前日を基にサービス契約回線内訳を取得
			executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_026(new String[]{inItensSvkeiKisuwNo, JBSbatDateUtil.adjustDate(opeDate, 1)});

			nyukyoRsvTriKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
		}

		// ----- 新設工事の完了を確認 -----
		// 新設工事完了連携情報リスト
		List<JBSbatCommonDBInterface> newKjFinRnkiList = null;
		
// IT1-2013-0001122対応 20130502 星野 ADD START
		// 確定後の撤去完了の場合、新設工事完了を見ない
		if(!"2".equals(adchgFinAddRunPtn))
// IT1-2013-0001122対応 20130502 星野 ADD END
		{
			newKjFinRnkiList = new ArrayList<JBSbatCommonDBInterface>();

			// 住所変更番号と運用日を基に新設の工事完了ワークを取得
			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()) {
				newKjFinRnkiList.add(newKjFinRnkiInfo);
			}

			// 新設工事の完了連携があった場合
			if (!newKjFinRnkiList.isEmpty()) {

				// 移転先サービス契約回線内訳番号を基にサービス契約回線内訳を取得
				executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItensSvkeiKisuwNo});

				newKjFinRnkiKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
			}
		}

		// ----- 撤去工事の完了確認 -----
		// 撤去工事完了連携情報リスト
		List<JBSbatCommonDBInterface> dslKjFinRnkiList = null;
		{
			dslKjFinRnkiList = new ArrayList<JBSbatCommonDBInterface>();

// OM-2014-0003552 2015/01/24 MOD START
			// 住所変更番号で工事完了した工事案件を取得
//			executeKK_T_KJ_FIN_WK_KK_SELECT_019(new String[]{inAdchgNo, opeDate});
			executeKU_T_KOJIAK_KK_SELECT_038(new String[]{inAdchgNo, opeDate});
			// OM-2014-0003552 2015/01/24 MOD END

			JBSbatCommonDBInterface dslKjFinRnkiInfo = null;
			// OM-2014-0003552 2015/01/24 MOD START
//			for (dslKjFinRnkiInfo = db_KK_T_KJ_FIN_WK.selectNext(); dslKjFinRnkiInfo != null; dslKjFinRnkiInfo = db_KK_T_KJ_FIN_WK.selectNext()) {
			for (dslKjFinRnkiInfo = db_KU_T_KOJIAK.selectNext(); dslKjFinRnkiInfo != null; dslKjFinRnkiInfo = db_KU_T_KOJIAK.selectNext()) {
			// OM-2014-0003552 2015/01/24 MOD END
				dslKjFinRnkiList.add(dslKjFinRnkiInfo);
			}

			// 撤去工事完了連携があった場合
			if (!dslKjFinRnkiList.isEmpty()) {

				// 移転元サービス契約回線内訳番号を基にサービス契約回線内訳を取得
				executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItnmSvkeiKisuwNo});

				dslKjFinRnkiKisnInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
			}
		}

		// ----- 確定チェック -----
		// 確定条件のいずれにも一致しない場合
		if (delayedStartKisnInfo == null && nyukyoRsvTriKisnInfo == null && newKjFinRnkiKisnInfo == null && dslKjFinRnkiKisnInfo == null) {
			return null;
		}

		if (delayedStartKisnInfo != null || nyukyoRsvTriKisnInfo != null) {

			// -----　ディレイドが起動した場合（何よりも優先して処理）　-----
			// -----　入居予定日が到来した場合（新設工事完了より優先して処理）　-----
			
// ST1-2013-0000503対応 20130328 星野 ADD START
// 上から移動
			// ●住所変更を設定
			setAdchg(outMap, inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO), inMap.getString(JBSbatKK_T_ADCHG.UPD_DTM));
// ST1-2013-0000503対応 20130328 星野 ADD END

			// 対象回線情報
			JBSbatCommonDBInterface targKisnInfo = null;
			// 対象使用開始年月日
			String targUseStaymd = null;
			if (delayedStartKisnInfo != null) {
				targKisnInfo = delayedStartKisnInfo;
				targUseStaymd = opeDate;
			} else if (nyukyoRsvTriKisnInfo != null) {
				targKisnInfo = nyukyoRsvTriKisnInfo;
				targUseStaymd = nyukyoRsvTriKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.NYUKYO_RSV_YMD);
			} else {
				// ignore
			}

			if (SVC_KEI_KAISEN_UCWK_STAT_UKTKZM.equals(targKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_STAT))
					&& (isBlank(targKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.USE_STAYMD))
							|| MAX_DATE.equals(targKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.USE_STAYMD)))) {

				setNewSvkeiKaisenUw(outMap,
						targKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO),	// （出力）移転先サービス契約回線内訳番号
						targKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.GENE_ADD_DTM),			// （出力）移転先サービス契約回線内訳世代登録年月日時分秒
						targUseStaymd,																// （出力）使用開始年月日
						targKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.UPD_DTM));				// （出力）移転先サービス契約回線内訳更新年月日時分秒
			}

			executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO});

			JBSbatCommonDBInterface adcDtlSvcKeiNoInfo = null;
			for (adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext(); adcDtlSvcKeiNoInfo != null; adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext()) {

				// 新設サービス契約番号
				String newSvcKeiNo = null;
				newSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);

				// 新設サービス契約番号が存在する場合
				if (!isBlank(newSvcKeiNo)) {

					executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, newSvcKeiNo, inItensSvkeiKisuwNo});

					JBSbatCommonDBInterface newKisnTgSvkeiInfo = null;
					newKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext();

					if (newKisnTgSvkeiInfo != null) {

						if (isBlank(newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_STAYMD))
								|| MAX_DATE.equals(newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_STAYMD))) {

							setNewKaisenTgSvkei(outMap,  newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD),
									newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO),	// （出力）移転先サービス契約回線内訳番号
									newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_NO),				// （出力）移転先サービス契約番号（ネット）
									targUseStaymd,																		// （出力）回線内訳使用開始年月日（ネット）
									newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.UPD_DTM));					// （出力）移転先回線対象サービス契約更新年月日時分秒（ネット）
						}

						setAdChgNewKojiak(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), inAdchgNo, newSvcKeiNo);

// IT故障 AB100039 2012.12.30 suzuki mod start
//						if ("0".equals(adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD))) {
						if (isSvcKeizoku(adcDtlSvcKeiNoInfo)) {
// IT故障 AB100039 2012.12.30 suzuki mod end
							setPrg(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), newSvcKeiNo, kshadChgUm, true);
							
// OM-2014-0001653対応 20140425 星野 ADD START
						// 解約/新規の場合、元先両方に進捗登録
						}else if(isDslNew(adcDtlSvcKeiNoInfo)){
							String dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
							setPrg(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), newSvcKeiNo, dslSvcKeiNo, kshadChgUm, true);

// OM-2014-0001653対応 20140425 星野 ADD END
						}
						
// IT1-2013-0000759対応 20130404 星野 ADD START
						// 解約新規の場合
						if(isDslNew(adcDtlSvcKeiNoInfo)){
							
							// 解約サービス契約情報取得
							JBSbatCommonDBInterface dslSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(new Object[]{adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO), opeDate});
							// 新規サービス契約情報取得
							JBSbatCommonDBInterface newSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(new Object[]{newSvcKeiNo, opeDate});
							// 新規サービス契約排他情報取得
							JBSbatCommonDBInterface newSvkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{newSvcKeiNo});
							
							if(dslSvcKeiInfo != null && newSvcKeiInfo != null && newSvkeiExcCtrlInfo != null){
								
								// 引継先サービス契約世代登録年月日時分秒
								String hktgsSvcKeiGeneAddDtm = newSvcKeiInfo.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM);
								// 引継先サービス契約最終更新年月日時分秒
								String hktgsSvcKeiLastUpdDtm = newSvkeiExcCtrlInfo.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM);
								// 引継サービス開始年月日（解約側から）
								String svcStaYmd = dslSvcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_STA_YMD);
								
								// サービス契約引継設定
								setSvcKeiHktg(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), 
										newSvcKeiNo, 
										hktgsSvcKeiGeneAddDtm, svcStaYmd, hktgsSvcKeiLastUpdDtm);
							}
						}
// IT1-2013-0000759対応 20130404 星野 ADD END
					}

				}

				// 撤去サービス契約番号
				String dslSvcKeiNo = null;
				dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);

				// 撤去サービス契約番号が存在する場合
				if (!isBlank(dslSvcKeiNo)) {

					executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, dslSvcKeiNo, inItnmSvkeiKisuwNo});

					JBSbatCommonDBInterface dslKisnTgSvkeiInfo = null;
					dslKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext();

					if (dslKisnTgSvkeiInfo != null) {

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
						// 移転元のサービス契約番号を保持しておく
						setItenMotoSvcNo(adcDtlSvcKeiNoInfo, dslKisnTgSvkeiInfo);
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END

						if (isBlank(dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_ENDYMD))
								|| MAX_DATE.equals(dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_ENDYMD))) {

							if (!"2".equals(adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD)))
							{
// ST1-2013-0000090対応 20130116 星野 ADD START
								// サービス継続となる場合（変更前後のサービス契約番号が一致）のみ回線との紐付けを切る
								if(!isBlank(dslSvcKeiNo) && !isBlank(newSvcKeiNo) && dslSvcKeiNo.equals(newSvcKeiNo)){
// ST1-2013-0000090対応 20130116 星野 ADD END
									setDslKaisenTgSvkei(outMap, dslKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD),
										dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO),	// （出力）移転元サービス契約回線内訳番号
										dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_NO),				// （出力）移転元サービス契約番号（ネット）
										JBSbatDateUtil.adjustDate(targUseStaymd, -1),										// （出力）回線内訳使用終了年月日（ネット）
										dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.UPD_DTM));					// （出力）移転元回線対象サービス契約更新年月日時分秒（ネット）
// ST1-2013-0000090対応 20130116 星野 ADD START
								}
// ST1-2013-0000090対応 20130116 星野 ADD END
							}
						}
					}
				}
			}
		} else if (newKjFinRnkiKisnInfo != null) {

			// -----　新設工事が完了した場合　-----
			
// ST1-2013-0000503対応 20130328 星野 ADD START
// 上から移動
			// ●住所変更を設定
			setAdchg(outMap, inMap.getString(JBSbatKK_T_ADCHG.ADCHG_NO), inMap.getString(JBSbatKK_T_ADCHG.UPD_DTM));
// ST1-2013-0000503対応 20130328 星野 ADD END

			if (SVC_KEI_KAISEN_UCWK_STAT_UKTKZM.equals(newKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_STAT))
					&& (isBlank(newKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.USE_STAYMD))
							|| MAX_DATE.equals(newKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.USE_STAYMD)))) {

				// ＴＥＭＰ使用開始年月日
				String tempUseStaymd = null;

				// 住所変更番号を基に、住所変更明細の工事案件番号を取得
				executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_KOJIAK_NO});

				// 一つでも新設工事が完了していれば、使用開始日をセット
				JBSbatCommonDBInterface adcDtlKojiakNoInfo = null;
				for (adcDtlKojiakNoInfo = db_KK_T_ADCHG_DTL.selectNext(); adcDtlKojiakNoInfo != null; adcDtlKojiakNoInfo = db_KK_T_ADCHG_DTL.selectNext()) {

					// 新設工事案件番号を取得
					String newKojiakNo = null;
					newKojiakNo = adcDtlKojiakNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);

					// 新設工事案件番号チェック
					if (isBlank(newKojiakNo)) {
						continue;
					}

					// 新設工事案件場号を基に、工事完了の工事案件情報を抽出
					executeKU_T_KOJIAK_KK_SELECT_011(new String[]{newKojiakNo});

					// 新設工事案件情報を取得
					JBSbatCommonDBInterface kojiakInfo = null;
					kojiakInfo = db_KU_T_KOJIAK.selectNext();

					// 新設工事案件情報チェック
					if (kojiakInfo == null) {
						continue;
					}

					// 工事案件実施年月日を取得
					String kojiakJssiYmd = null;
					kojiakJssiYmd = kojiakInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_JSSI_YMD);

					// 工事案件実施年月日チェック
					if (!JBSbatDateUtil.checkDate(kojiakJssiYmd, 8)) {
						continue;
					}

					// ＴＥＭＰ使用開始年月日が未設定の場合
					if (isBlank(tempUseStaymd)) {
						// ＴＥＭＰ使用開始年月日に工事案件実施年月日をセット
						tempUseStaymd = kojiakJssiYmd;
					} else {
						// ＴＥＭＰ使用開始年月日＞工事案件実施年月日の場合
						if (-1 < JBSbatDateUtil.dayDiff(tempUseStaymd, kojiakJssiYmd, "2")) {
							// ＴＥＭＰ使用開始年月日に工事案件実施年月日をセット
							tempUseStaymd = kojiakJssiYmd;
						}
					}
				}

				// ＴＥＭＰ使用開始年月日が存在する場合
				if (!isBlank(tempUseStaymd)) {

					setNewSvkeiKaisenUw(outMap,
							newKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO),	// （出力）移転先サービス契約回線内訳番号
							newKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.GENE_ADD_DTM),			// （出力）移転先サービス契約回線内訳世代登録年月日時分秒
							tempUseStaymd,																		// （出力）使用開始年月日
							newKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.UPD_DTM));			// （出力）移転先サービス契約回線内訳更新年月日時分秒
				}
			}

			// 住所変更番号を基に、住所変更明細のサービス契約番号を取得
			executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO});

			JBSbatCommonDBInterface adcDtlSvcKeiNoInfo = null;
			for (adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext(); adcDtlSvcKeiNoInfo != null; adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext()) {

				// 移転先サービス契約番号
				String newSvcKeiNo = null;
				newSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);

				if (isBlank(newSvcKeiNo)) {
					continue;
				}

				for (JBSbatCommonDBInterface tempNewKjFinRnkiInfo : newKjFinRnkiList) {

					executeKU_T_SVKEI_KOJIAK_KK_SELECT_007(new String[]{newSvcKeiNo, tempNewKjFinRnkiInfo.getString(JBSbatKU_T_SVKEI_KOJIAK.KOJIAK_NO)});

					JBSbatCommonDBInterface svkeiKojiakInfo = null;
					svkeiKojiakInfo = db_KU_T_SVKEI_KOJIAK.selectNext();

					if (svkeiKojiakInfo == null) {
						continue;
					}

// IT故障 AB100039 2012.12.30 suzuki add start
//					if ("0".equals(adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD))) {
					if (isSvcKeizoku(adcDtlSvcKeiNoInfo)) {
// IT故障 AB100039 2012.12.30 suzuki add end
						setPrg(outMap, svkeiKojiakInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), newSvcKeiNo, kshadChgUm, true);
						
// OM-2014-0001653対応 20140425 星野 ADD START
					// 解約/新規の場合、元先両方に進捗登録
					}else if(isDslNew(adcDtlSvcKeiNoInfo)){
						String dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
						setPrg(outMap, svkeiKojiakInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), newSvcKeiNo, dslSvcKeiNo, kshadChgUm, true);

// OM-2014-0001653対応 20140425 星野 ADD END
					}

					// 移転先サービス契約番号と（入力）移転先サービス契約回線内訳番号を基に、回線対象サービス契約を取得
					executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, newSvcKeiNo, inItensSvkeiKisuwNo});

					JBSbatCommonDBInterface newKisnTgSvkeiInfo = null;
					newKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext();

					if (newKisnTgSvkeiInfo == null) {
						continue;
					}

// IT2-2013-0000456 T.TORIKAI ADD START（住変障害：562 デグレーション試験フェーズUでの検出に対応）
					// -----　工事案件諸変更の住所変更確定　-----
					setAdChgNewKojiak(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), inAdchgNo, newSvcKeiNo);
// IT2-2013-0000456 T.TORIKAI ADD END

					if (isBlank(newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_STAYMD))
							|| MAX_DATE.equals(newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_STAYMD))) {

						setNewKaisenTgSvkei(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD),
								newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO),	// （出力）移転先サービス契約回線内訳番号
								newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_NO),				// （出力）移転先サービス契約番号
								svkeiKojiakInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_JSSI_YMD),						// （出力）回線内訳使用開始年月日
								newKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.UPD_DTM));					// （出力）移転先回線対象サービス契約更新年月日時分秒

// IT2-2013-0000456 T.TORIKAI DEL START（住変障害：562 デグレーション試験フェーズUでの検出に対応）
//						// -----　工事案件諸変更の住所変更確定　-----
//						setAdChgNewKojiak(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), inAdchgNo, newSvcKeiNo);
// IT2-2013-0000456 T.TORIKAI DEL END

						// 移転元サービス契約番号
						String dslSvcKeiNo = null;
						dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);

						if (isBlank(dslSvcKeiNo)) {
							continue;
						}

						executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, dslSvcKeiNo, inItnmSvkeiKisuwNo});

						JBSbatCommonDBInterface dslKisnTgSvkeiInfo = null;
						dslKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext();

						if (dslKisnTgSvkeiInfo == null) {
							continue;
						}

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
						// 移転元のサービス契約番号を保持しておく
						setItenMotoSvcNo(adcDtlSvcKeiNoInfo, dslKisnTgSvkeiInfo);
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END

						if (isBlank(dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_ENDYMD))
								|| MAX_DATE.equals(dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_ENDYMD))) {

// ST1-2013-0000090対応 20130116 星野 ADD START
							// サービス継続となる場合（変更前後のサービス契約番号が一致）のみ回線との紐付けを切る
							if(!isBlank(dslSvcKeiNo) && !isBlank(newSvcKeiNo) && dslSvcKeiNo.equals(newSvcKeiNo)){
//ST1-2013-0000090対応 20130116 星野 ADD END
								setDslKaisenTgSvkei(outMap, dslKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD),
									dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO),				// （出力）移転元サービス契約回線内訳番号
									dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_NO),							// （出力）移転元サービス契約番号
									JBSbatDateUtil.adjustDate(svkeiKojiakInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_JSSI_YMD), -1),	// （出力）回線内訳使用終了年月日
									dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.UPD_DTM));								// （出力）移転元回線対象サービス契約更新年月日時分秒
// ST1-2013-0000090対応 20130116 星野 ADD START
							}
// ST1-2013-0000090対応 20130116 星野 ADD END
						}
					}
					
// IT1-2013-0000759対応 20130404 星野 ADD START
					// 解約新規の場合
					if(isDslNew(adcDtlSvcKeiNoInfo)){
						
						// 解約サービス契約情報取得
						JBSbatCommonDBInterface dslSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(new Object[]{adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO), opeDate});
						// 新規サービス契約情報取得
						JBSbatCommonDBInterface newSvcKeiInfo = executeKK_T_SVC_KEI_KK_SELECT_112(new Object[]{newSvcKeiNo, opeDate});
						// 新規サービス契約排他情報取得
						JBSbatCommonDBInterface newSvkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{newSvcKeiNo});
						
						if(dslSvcKeiInfo != null && newSvcKeiInfo != null && newSvkeiExcCtrlInfo != null){
							
							// 引継先サービス契約世代登録年月日時分秒
							String hktgsSvcKeiGeneAddDtm = newSvcKeiInfo.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM);
							// 引継先サービス契約最終更新年月日時分秒
							String hktgsSvcKeiLastUpdDtm = newSvkeiExcCtrlInfo.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM);
							// 引継サービス開始年月日（解約側から）
							String svcStaYmd = dslSvcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_STA_YMD);
							
							// サービス契約引継設定
							setSvcKeiHktg(outMap, newKisnTgSvkeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD), 
									newSvcKeiNo, 
									hktgsSvcKeiGeneAddDtm, svcStaYmd, hktgsSvcKeiLastUpdDtm);
						}
					}
//IT1-2013-0000759対応 20130404 星野 ADD END
					
				}
			}
		}

		if (dslKjFinRnkiKisnInfo != null) {

			// ===== 撤去工事が完了した場合 =====

			String dslKasenUseEndYmd = null;
			dslKasenUseEndYmd = dslKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.USE_ENDYMD);

			if (SVC_KEI_KAISEN_UCWK_STAT_UNDER_USE.equals(dslKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_STAT))
					&& (isBlank(dslKasenUseEndYmd) || MAX_DATE.equals(dslKasenUseEndYmd))) {

				// ＴＥＭＰ使用終了年月日
				String tempUseEndymd = null;

				// 住所変更番号を基に、住所変更明細の工事案件番号を取得
				executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_KOJIAK_NO});

				// すべての撤去工事が完了していれば、使用終了日をセット
				for (JBSbatCommonDBInterface adcDtlKojiakNoInfo = db_KK_T_ADCHG_DTL.selectNext(); adcDtlKojiakNoInfo != null; adcDtlKojiakNoInfo = db_KK_T_ADCHG_DTL.selectNext()) {

					// 撤去工事案件番号を取得
					String dslKojiakNo = null;
					dslKojiakNo = adcDtlKojiakNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);

					// 撤去工事案件番号チェック
					if (isBlank(dslKojiakNo)) {
						continue;
					}

					// 撤去工事案件場号を基に、工事完了の工事案件情報を抽出
					executeKU_T_KOJIAK_KK_SELECT_011(new String[]{dslKojiakNo});

					// 撤去工事案件情報を取得
					JBSbatCommonDBInterface kojiakInfo = null;
					kojiakInfo = db_KU_T_KOJIAK.selectNext();

					// 撤去工事案件情報チェック
					if (kojiakInfo == null) {
						tempUseEndymd = null;
						break;
					}

					// 工事案件実施年月日を取得
					String kojiakJssiYmd = null;
					kojiakJssiYmd = kojiakInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_JSSI_YMD);

					// 工事案件実施年月日チェック
					if (!JBSbatDateUtil.checkDate(kojiakJssiYmd, 8)) {
						continue;
					}

					// ＴＥＭＰ使用終了年月日が未設定の場合
					if (isBlank(tempUseEndymd)) {
						tempUseEndymd = kojiakJssiYmd;
					} else {
						// ＴＥＭＰ使用終了年月日＜工事案件実施年月日の場合
						if (JBSbatDateUtil.dayDiff(tempUseEndymd, kojiakJssiYmd, "2") < 0) {
							// ＴＥＭＰ使用終了年月日に工事案件実施年月日をセット
							tempUseEndymd = kojiakJssiYmd;
						}
					}
				}

				// ＴＥＭＰ使用終了年月日が存在する場合
				if (!isBlank(tempUseEndymd)) {
					// 保留が有る場合は実施しない
					if (!isIdoSbtHoryu(inAdchgNo))
					{
// ST1-2013-0000090対応 20130116 星野 ADD START
						// 対象回線にひもづく回線対象サービス契約が残っていない場合
						if(!isZanTgSvcKei( inAdchgNo, dslKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO) )){
// ST1-2013-0000090対応 20130116 星野 ADD END
							setDslSvkeiKaisenUw(outMap,
									dslKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO),	// （出力）移転元サービス契約回線内訳番号
									dslKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.GENE_ADD_DTM),			// （出力）移転元サービス契約回線内訳世代登録年月日時分秒
									tempUseEndymd,																		// （出力）使用終了年月日
									dslKjFinRnkiKisnInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.UPD_DTM));			// （出力）移転元サービス契約回線内訳更新年月日時分秒
// ST1-2013-0000090対応 20130116 星野 ADD START
						}
// ST1-2013-0000090対応 20130116 星野 ADD END
					}
				}
			}

			// 住所変更番号を基に、住所変更明細のサービス契約番号を取得
			executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO});

			JBSbatCommonDBInterface adcDtlSvcKeiNoInfo = null;
			for (adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext(); adcDtlSvcKeiNoInfo != null; adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext()) {

				// 移転元サービス契約番号
				String dslSvcKeiNo = null;
				dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);

				if (isBlank(dslSvcKeiNo)) {
					continue;
				}

				for (JBSbatCommonDBInterface tempDslKjFinRnkiInfo : dslKjFinRnkiList) {

					executeKU_T_SVKEI_KOJIAK_KK_SELECT_007(new String[]{
							adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO),
							tempDslKjFinRnkiInfo.getString(JBSbatKU_T_SVKEI_KOJIAK.KOJIAK_NO)});

					JBSbatCommonDBInterface svkeiKojiakInfo = null;
					svkeiKojiakInfo = db_KU_T_SVKEI_KOJIAK.selectNext();

					if (svkeiKojiakInfo == null) {
						continue;
					}

// OM-2013-0004548対応 20131124 星野 DEL START
//// IT故障 AB100039 2012.12.30 suzuki mod start
////					if ("0".equals(adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD))) {
//					if (isSvcKeizoku(adcDtlSvcKeiNoInfo)) {
//// IT故障 AB100039 2012.12.30 suzuki mod end
//						setPrg(outMap, svkeiKojiakInfo.getString(JBSbatKU_T_SVKEI_KOJIAK.SVC_CD), dslSvcKeiNo, null, false);
//					}
// OM-2013-0004548対応 20131124 星野 DEL END
				}
			}
		}

		// ----- マンション物件番号 -----
		boolean isMansionToHome = false;
		String newMansionBukkenNo = null;
		{
			JBSbatCommonDBInterface newSvkeiKaisenUwInfo = null;
			if (nyukyoRsvTriKisnInfo != null) {
				newSvkeiKaisenUwInfo = nyukyoRsvTriKisnInfo;
			} else {
				if (newKjFinRnkiKisnInfo != null) {
					newSvkeiKaisenUwInfo = newKjFinRnkiKisnInfo;
				} else {
					executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItensSvkeiKisuwNo});
					newSvkeiKaisenUwInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
				}
			}
			if (newSvkeiKaisenUwInfo != null) {
				// TODO
//				newMansionBukkenNo = newSvkeiKaisenUwInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.MANSION_BUKKEN_NO);
				newMansionBukkenNo = "";
			}
		}
		String dslMansionBukkenNo = null;
		{
			JBSbatCommonDBInterface dslSvkeiKaisenUwInfo = null;
			if (dslKjFinRnkiKisnInfo != null) {
				dslSvkeiKaisenUwInfo = dslKjFinRnkiKisnInfo;
			} else {
				executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_023(new String[]{inItnmSvkeiKisuwNo});
				dslSvkeiKaisenUwInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
			}
			if (dslSvkeiKaisenUwInfo != null) {
				// TODO
//				dslMansionBukkenNo = dslSvkeiKaisenUwInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.MANSION_BUKKEN_NO);
				dslMansionBukkenNo = "";
			}
		}
		// マンション（メゾン） → ホーム
		if (!(dslMansionBukkenNo == null || "".equals(dslMansionBukkenNo.trim()))) {
			if (newMansionBukkenNo == null || "".equals(newMansionBukkenNo.trim())) {
				isMansionToHome = true;
			}
		}

		if (isMansionToHome) {

			outMap.setString(JBSbatKKIFM101.ITNS_TK_HOSHIKI_KEI_INIT_UM, "1");
			outMap.setString(JBSbatKKIFM101.ITNS_MANSION_BUKKEN_INIT_UM, "1");

			{
				String itnsSvcKeiNoNet = outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_NET);
				if (!(itnsSvcKeiNoNet == null || "".equals(itnsSvcKeiNoNet.trim()))) {
					JBSbatCommonDBInterface svkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{itnsSvcKeiNoNet});
					if (svkeiExcCtrlInfo != null) {
						outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_NET, svkeiExcCtrlInfo.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM));
					}
				}
			}
			{
				String itnsSvcKeiNoTel = outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TEL);
				if (!(itnsSvcKeiNoTel == null || "".equals(itnsSvcKeiNoTel.trim()))) {
					JBSbatCommonDBInterface svkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{itnsSvcKeiNoTel});
					if (svkeiExcCtrlInfo != null) {
						outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_NET, svkeiExcCtrlInfo.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM));
					}
				}
			}
			{
				String itnsSvcKeiNoTv = outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TV);
				if (!(itnsSvcKeiNoTv == null || "".equals(itnsSvcKeiNoTv.trim()))) {
					JBSbatCommonDBInterface svkeiExcCtrlInfo = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{itnsSvcKeiNoTv});
					if (svkeiExcCtrlInfo != null) {
						outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_NET, svkeiExcCtrlInfo.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM));
					}
				}
			}
		} else {
			outMap.setString(JBSbatKKIFM101.ITNS_TK_HOSHIKI_KEI_INIT_UM, "0");
			outMap.setString(JBSbatKKIFM101.ITNS_MANSION_BUKKEN_INIT_UM, "0");
		}

		outputItem.addOutMapList(outMap);

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD START
		// 移転元のサービス契約で、解約されているものがあれば、対応する情報を除去する
		removeSurrenderServiceContract(outputItem);
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD END
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVKEI_KAISEN_UW.close();
		db_KK_T_KJ_FIN_WK.close();
		db_KK_T_ADCHG_DTL.close();
		db_KU_T_KOJIAK.close();
		db_KU_T_SVKEI_KOJIAK.close();
		db_KK_T_KAISEN_TG_SVKEI.close();
		db_KK_T_SVKEI_EXC_CTRL.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].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_026);
	}

	/**
	 * SQLKEY(KK_SELECT_019)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	住所変更番号
	 *		 	連携年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
// OM-2014-0003552 2015/01/24 MOD START
//	private void executeKK_T_KJ_FIN_WK_KK_SELECT_019(Object[] param) throws Exception
	private void executeKU_T_KOJIAK_KK_SELECT_038(Object[] param) throws Exception
// OM-2014-0003552 2015/01/24 MOD END
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		// OM-2014-0003552 2015/01/24 DEL START
//		paramList.setValue(param[1].toString());
		// OM-2014-0003552 2015/01/24 DEL END

		// DBアクセスを実行します
		// OM-2014-0003552 2015/01/24 MOD START
//		db_KK_T_KJ_FIN_WK.selectBySqlDefine(paramList, KK_T_KJ_FIN_WK_KK_SELECT_019);
		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KK_T_KJ_FIN_WK_KK_SELECT_038);
		// OM-2014-0003552 2015/01/24 MOD END
	}

	/**
	 * 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].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KJ_FIN_WK.selectBySqlDefine(paramList, KK_T_KJ_FIN_WK_KK_SELECT_020);
	}

	/**
	 * SQLKEY(KK_SELECT_023)で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_023(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_023);
	}

	/**
	 * SQLKEY(KK_SELECT_003)で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_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_003);
	}

	/**
	 * SQLKEY(KK_SELECT_011)で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_KOJIAK_KK_SELECT_011(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_011);
	}

	/**
	 * 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].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_007);
	}

	/**
	 * SQLKEY(KK_SELECT_024)で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_KAISEN_TG_SVKEI_KK_SELECT_024(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_KAISEN_TG_SVKEI.selectBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_SELECT_024);
	}

	/**
	 * SQLKEY(KK_SELECT_012)で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_KOJIAK_KK_SELECT_012(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_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_012);
	}

	/**
	 * SQLKEY(KK_SELECT_008)で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_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_008);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVKEI_EXC_CTRL_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_KK_T_SVKEI_EXC_CTRL.selectByPrimaryKeys(whereMap);
	}
	

	/**
	 * 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].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_020);
	}
	
// IT1-2013-0000759対応 20130404 星野 ADD START
	/**
	 * SQLKEY(KK_SELECT_112)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVC_KEI_KK_SELECT_112(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_112);
		return db_KK_T_SVC_KEI.selectNext();

	}
// IT1-2013-0000759対応 20130404 星野 ADD END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 文字列がnull、または空文字列であるかチェックします。
	 * <br>
	 * @param value チェック文字列
	 * @return boolean true：null、または空文字列，false：左記以外
	 */
	private boolean isBlank(String value) {

		if (value == null || "".equals(value.trim())) {
			return true;
		}

		return false;
	}

	/**
	 * 運用年月日時分秒を取得します。
	 * <br>
	 * @return String 運用年月日時分秒
	 */
	private String getOpeDateTime() {

		String sysTime = "";

		String sysDate =  JCCBatCommon.getSysDateTimeStamp();
		
		if (isBlank(sysDate) || sysDate.length() < 17) {
			sysTime = SYS_TIME_BASE;
		}

		if (!JBSbatDateUtil.checkTime(sysTime, 9)) {
			sysTime = SYS_TIME_BASE;
		}

		return opeDate.concat(sysTime);
	}

	/**
	 * 住所変更を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param adchgNo 住所変更番号
	 * @param adchgUpdDtm 住所変更更新年月日時分秒
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setAdchg(JBSbatServiceInterfaceMap outMap, String adchgNo, String adchgUpdDtm) throws Exception {

		// 住所変更番号
		if (isBlank(adchgNo)) {
			outMap.setString(JBSbatKKIFM101.ADCHG_NO, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ADCHG_NO, adchgNo);
		}

		// 住所変更更新年月日時分秒
		if (isBlank(adchgUpdDtm)) {
			outMap.setString(JBSbatKKIFM101.ADCHG_UPD_DTM, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ADCHG_UPD_DTM, adchgUpdDtm);
		}
	}

	/**
	 * 移転先サービス契約回線内訳を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param itnsSvcKeiKaisenUcwkNo 移転先サービス契約回線内訳番号
	 * @param itnsKaisenUcwkGeneAddDtm 移転先サービス契約回線内訳世代登録年月日時分秒
	 * @param useStaymd 使用開始年月日
	 * @param itnsSvkeiKaisenUwUpdDtm 移転先サービス契約回線内訳更新年月日時分秒
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setNewSvkeiKaisenUw(JBSbatServiceInterfaceMap outMap, String itnsSvcKeiKaisenUcwkNo, String itnsKaisenUcwkGeneAddDtm, String useStaymd, String itnsSvkeiKaisenUwUpdDtm) throws Exception {

		// === 移転先サービス契約回線内訳 ===

		// 移転先サービス契約回線内訳番号
		if (isBlank(itnsSvcKeiKaisenUcwkNo)) {
			outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO, itnsSvcKeiKaisenUcwkNo);
		}

		// 移転先サービス契約回線内訳世代登録年月日時分秒
		if (isBlank(itnsKaisenUcwkGeneAddDtm)) {
			outMap.setString(JBSbatKKIFM101.ITNS_KAISEN_UCWK_GENE_ADD_DTM, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ITNS_KAISEN_UCWK_GENE_ADD_DTM, itnsKaisenUcwkGeneAddDtm);	
		}

		// 使用開始年月日
		if (isBlank(useStaymd)) {
			outMap.setString(JBSbatKKIFM101.USE_STAYMD, "");	
		} else {
			outMap.setString(JBSbatKKIFM101.USE_STAYMD, useStaymd);
		}

		// 移転先サービス契約回線内訳更新年月日時分秒
		if (isBlank(itnsSvkeiKaisenUwUpdDtm)) {
			outMap.setString(JBSbatKKIFM101.ITNS_SVKEI_KAISEN_UW_UPD_DTM, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ITNS_SVKEI_KAISEN_UW_UPD_DTM, itnsSvkeiKaisenUwUpdDtm);
		}
	}

	/**
	 * 移転元サービス契約回線内訳を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param itnmSvcKeiKaisenUcwkNo 移転元サービス契約回線内訳番号
	 * @param itnmKaisenUcwkGeneAddDtm 移転元サービス契約回線内訳世代登録年月日時分秒
	 * @param useEndymd 使用終了年月日
	 * @param itnmSvkeiKaisenUwUpdDtm 移転元サービス契約回線内訳更新年月日時分秒
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setDslSvkeiKaisenUw(JBSbatServiceInterfaceMap outMap, String itnmSvcKeiKaisenUcwkNo, String itnmKaisenUcwkGeneAddDtm, String useEndymd, String itnmSvkeiKaisenUwUpdDtm) throws Exception {

		// === 移転元サービス契約回線内訳 ===

		// 移転元サービス契約回線内訳番号
		if (isBlank(itnmSvcKeiKaisenUcwkNo)) {
			outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_KAISEN_UCWK_NO, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_KAISEN_UCWK_NO, itnmSvcKeiKaisenUcwkNo);
		}

		// 移転元サービス契約回線内訳世代登録年月日時分秒
		if (isBlank(itnmKaisenUcwkGeneAddDtm)) {
			outMap.setString(JBSbatKKIFM101.ITNM_KAISEN_UCWK_GENE_ADD_DTM, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ITNM_KAISEN_UCWK_GENE_ADD_DTM, itnmKaisenUcwkGeneAddDtm);
		}

		// 使用終了年月日
		if (isBlank(useEndymd)) {
			outMap.setString(JBSbatKKIFM101.USE_ENDYMD, "");
		} else {
			outMap.setString(JBSbatKKIFM101.USE_ENDYMD, useEndymd);
		}

		// 移転元サービス契約回線内訳更新年月日時分秒
		if (isBlank(itnmSvkeiKaisenUwUpdDtm)) {
			outMap.setString(JBSbatKKIFM101.ITNM_SVKEI_KAISEN_UW_UPD_DTM, "");
		} else {
			outMap.setString(JBSbatKKIFM101.ITNM_SVKEI_KAISEN_UW_UPD_DTM, itnmSvkeiKaisenUwUpdDtm);
		}
	}

	/**
	 * 移転先回線対象サービス契約を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param svcCd サービスコード
	 * @param itnsSvcKeiKaisenUcwkNo 移転先サービス契約回線内訳番号
	 * @param ItnsSvcKeiNo 移転先サービス契約番号
	 * @param kaisenUcwkUseStaymd 回線内訳使用開始年月日
	 * @param itnsKisnTgSvkeiUpdDtm 移転先回線対象サービス契約更新年月日時分秒
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setNewKaisenTgSvkei(JBSbatServiceInterfaceMap outMap, String svcCd, String itnsSvcKeiKaisenUcwkNo, String ItnsSvcKeiNo, String kaisenUcwkUseStaymd, String itnsKisnTgSvkeiUpdDtm) throws Exception {

		// === 移転先回線対象サービス契約 ===

		// 移転先サービス契約回線内訳番号
		if (isBlank(outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO))) {
			if (isBlank(itnsSvcKeiKaisenUcwkNo)) {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO, itnsSvcKeiKaisenUcwkNo);
			}
		}

		if (JKKBatConst.SVC_CD_NET.equals(svcCd)) {

			// - ネット -

			// 移転先サービス契約番号（ネット）
			if (isBlank(ItnsSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_NET, ItnsSvcKeiNo);
			}

			// 回線内訳使用開始年月日（ネット）
			if (isBlank(kaisenUcwkUseStaymd)) {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_NET, kaisenUcwkUseStaymd);
			}

			// 移転先回線対象サービス契約更新年月日時分秒（ネット）
			if (isBlank(itnsKisnTgSvkeiUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_NET, itnsKisnTgSvkeiUpdDtm);
			}
		} else if (JKKBatConst.SVC_CD_TEL.equals(svcCd)) {

			// - 電話 -

			// 移転先サービス契約番号（電話）
			if (isBlank(ItnsSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TEL, "");	
			} else {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TEL, ItnsSvcKeiNo);
			}

			// 回線内訳使用開始年月日（電話）
			if (isBlank(kaisenUcwkUseStaymd)) {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TEL, "");
			} else {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TEL, kaisenUcwkUseStaymd);
			}

			// 移転先回線対象サービス契約更新年月日時分秒（電話）
			if (isBlank(itnsKisnTgSvkeiUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TEL, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TEL, itnsKisnTgSvkeiUpdDtm);
			}
		} else if (JKKBatConst.SVC_CD_TV.equals(svcCd)) {

			// - ＴＶ -

			// 移転先サービス契約番号（ＴＶ）
			if (isBlank(ItnsSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TV, ItnsSvcKeiNo);
			}

			// 回線内訳使用開始年月日（ＴＶ）
			if (isBlank(kaisenUcwkUseStaymd)) {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TV, kaisenUcwkUseStaymd);
			}

			// 移転先回線対象サービス契約更新年月日時分秒（ＴＶ）
			if (isBlank(itnsKisnTgSvkeiUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TV, itnsKisnTgSvkeiUpdDtm);
			}
		} else {
			// ignore
		}
	}

	/**
	 * 移転元回線対象サービス契約を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param svcCd サービスコード
	 * @param itnmSvcKeiKaisenUcwkNo 移転元サービス契約回線内訳番号
	 * @param itnmSvcKeiNo 移転元サービス契約番号
	 * @param kaisenUcwkUseEndymd 回線内訳使用終了年月日
	 * @param itnmKisnTgSvkeiUpdDtm 移転元回線対象サービス契約更新年月日時分秒
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setDslKaisenTgSvkei(JBSbatServiceInterfaceMap outMap, String svcCd, String itnmSvcKeiKaisenUcwkNo, String itnmSvcKeiNo, String kaisenUcwkUseEndymd, String itnmKisnTgSvkeiUpdDtm) throws Exception {

		// === 移転元回線対象サービス契約 ===

		// 移転元サービス契約回線内訳番号
		if (isBlank(outMap.getString(JBSbatKKIFM101.ITNM_SVC_KEI_KAISEN_UCWK_NO))) {
			if (isBlank(itnmSvcKeiKaisenUcwkNo)) {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_KAISEN_UCWK_NO, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_KAISEN_UCWK_NO, itnmSvcKeiKaisenUcwkNo);
			}
		}

		if (JKKBatConst.SVC_CD_NET.equals(svcCd)) {

			// - ネット -

			// 移転元サービス契約番号（ネット）
			if (isBlank(itnmSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_NET, itnmSvcKeiNo);
			}

			// 回線内訳使用終了年月日（ネット）
			if (isBlank(kaisenUcwkUseEndymd)) {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_NET, kaisenUcwkUseEndymd);
			}

			// 移転元回線対象サービス契約更新年月日時分秒（ネット）
			if (isBlank(itnmKisnTgSvkeiUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_NET, itnmKisnTgSvkeiUpdDtm);
			}
		} else if (JKKBatConst.SVC_CD_TEL.equals(svcCd)) {

			// - 電話 -

			// 移転元サービス契約番号（電話）
			if (isBlank(itnmSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TEL, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TEL, itnmSvcKeiNo);	
			}

			// 回線内訳使用終了年月日（電話）
			if (isBlank(kaisenUcwkUseEndymd)) {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TEL, "");	
			} else {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TEL, kaisenUcwkUseEndymd);
			}

			// 移転元回線対象サービス契約更新年月日時分秒（電話）
			if (isBlank(itnmKisnTgSvkeiUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TEL, "");	
			} else {
				outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TEL, itnmKisnTgSvkeiUpdDtm);
			}
		} else if (JKKBatConst.SVC_CD_TV.equals(svcCd)) {

			// - ＴＶ -

			// 移転元サービス契約番号（ＴＶ）
			if (isBlank(itnmSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TV, itnmSvcKeiNo);
			}

			// 回線内訳使用終了年月日（ＴＶ）
			if (isBlank(kaisenUcwkUseEndymd)) {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TV, kaisenUcwkUseEndymd);
			}

			// 移転元回線対象サービス契約更新年月日時分秒（ＴＶ）
			if (isBlank(itnmKisnTgSvkeiUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TV, itnmKisnTgSvkeiUpdDtm);
			}
		} else {
			// ignore
		}
	}

	/**
	 * 工事案件諸変更の住所変更確定情報を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param svcCd サービスコード
	 * @param adchgNo 住所変更番号
	 * @param svcKeiNo サービス契約番号
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setAdChgNewKojiak(JBSbatServiceInterfaceMap outMap, String svcCd, String adchgNo, String svcKeiNo) throws Exception {

		JBSbatCommonDBInterface adchgFix4KojiInfo = null;
		executeKU_T_KOJIAK_KK_SELECT_012(new String[]{adchgNo, svcKeiNo, opeDate});
		adchgFix4KojiInfo = db_KU_T_KOJIAK.selectNext();

		// IT1-2014-0000288 2014/08/15 MOD START
		// 工事案件ステータスが"120:登録済"の場合も対象となるように条件を変更
//		if (adchgFix4KojiInfo != null
//				&& (JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD))
//						|| JKUStrConst.CD00577_NEWESTA.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD)))
//				&& JKUStrConst.CD00474_TOROKU_ZM.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT)) == false){
		if (adchgFix4KojiInfo != null
				&& (JKUStrConst.CD00577_AD_CHG_NEWESTA.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD))
						|| JKUStrConst.CD00577_NEWESTA.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD)))) {
		// IT1-2014-0000288 2014/08/15 MOD END
			/* ++++++++++ v20.00.00 ADD START ++++++++++ */
			// 中止済工事案件は処理対象外 最新基本工事案件フラグを立てない＆転居元のフラグも落とさない
			if( !JKUStrConst.CD00474_CHUSHI.equals( adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT) )
				&& !JKUStrConst.CD00474_CHUSHI.equals( adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.MANS_KOJIAK_STAT_CD) )
			){
			/* ++++++++++ v20.00.00 ADD END   ++++++++++ */
				{
					if (JKKBatConst.SVC_CD_NET.equals(svcCd) || JKKBatConst.SVC_CD_TEL.equals(svcCd)) {
	
						outMap.setString(JBSbatKKIFM101.ITNS_KOJIAK_NO_NET, adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO));
						outMap.setString(JBSbatKKIFM101.ITNS_KOJIAK_UPD_DTM_NET, adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.UPD_DTM));
						// IT1-2014-0000288 2014/08/15 MOD START
						// 条件を工事案件ステータス="130:受付済"またはマンション工事案件状態コード="130:受付済"の場合に変更
	//					if (JKUStrConst.CD00474_UK_ZM.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT))) {
						if (JKUStrConst.CD00474_UK_ZM.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT))
								|| JKUStrConst.CD00474_UK_ZM.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.MANS_KOJIAK_STAT_CD))) {
						// IT1-2014-0000288 2014/08/15 MOD END
							outMap.setString(JBSbatKKIFM101.OPMS_CHGE_RNKI_YH_NET, OPMS_CHGE_RNKI_YH_OFF);
						} else {
							outMap.setString(JBSbatKKIFM101.OPMS_CHGE_RNKI_YH_NET, OPMS_CHGE_RNKI_YH_ON);
						}
					} else if (JKKBatConst.SVC_CD_TV.endsWith(svcCd)) {
	
						outMap.setString(JBSbatKKIFM101.ITNS_KOJIAK_NO_TV, adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO));
						outMap.setString(JBSbatKKIFM101.ITNS_KOJIAK_UPD_DTM_TV, adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.UPD_DTM));
						if (JKUStrConst.CD00474_UK_ZM.equals(adchgFix4KojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_STAT))) {
							outMap.setString(JBSbatKKIFM101.OPMS_CHGE_RNKI_YH_TV, OPMS_CHGE_RNKI_YH_OFF);
						} else {
							outMap.setString(JBSbatKKIFM101.OPMS_CHGE_RNKI_YH_TV, OPMS_CHGE_RNKI_YH_ON);
						}
					} else {
						// ignore
					}
	
					outMap.setString(JBSbatKKIFM101.ADCHG_FIX_DTM, getOpeDateTime());
					outMap.setString(JBSbatKKIFM101.KOJI_UK_OPTNTY_IDO_DTM, getOpeDateTime());
				}
	
				JBSbatCommonDBInterface rcntKihonKojiInfo = null;
				executeKU_T_SVKEI_KOJIAK_KK_SELECT_008(new String[]{svcKeiNo});
				rcntKihonKojiInfo = db_KU_T_SVKEI_KOJIAK.selectNext();
	
				if (rcntKihonKojiInfo != null) {
	
					{
						if (JKKBatConst.SVC_CD_NET.equals(svcCd) || JKKBatConst.SVC_CD_TEL.equals(svcCd)) {
	// IT1-2013-0001349 2013.07.10 T.TORIKAI MOD START
							// 工事案件に紐づくサービス契約に保留されたものが存在しない場合のみ最新フラグを更新
							if (!existKojiAkTgSvcKei(adchgNo, rcntKihonKojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO))) {
								outMap.setString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_NO_NET, rcntKihonKojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO));
								outMap.setString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_UPD_DTM_NET, rcntKihonKojiInfo.getString(JBSbatKU_T_KOJIAK.UPD_DTM));
							}
	// IT1-2013-0001349 2013.07.10 T.TORIKAI MOD END
						} else if (JKKBatConst.SVC_CD_TV.endsWith(svcCd)) {
	
							outMap.setString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_NO_TV, rcntKihonKojiInfo.getString(JBSbatKU_T_KOJIAK.KOJIAK_NO));
							outMap.setString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_UPD_DTM_TV, rcntKihonKojiInfo.getString(JBSbatKU_T_KOJIAK.UPD_DTM));
						} else {
							// ignore
						}
	
						outMap.setString(JBSbatKKIFM101.KOJI_UK_OPTNTY_IDO_DTM, getOpeDateTime());
					}
				}
			/* ++++++++++ v20.00.00 ADD START ++++++++++ */
			}
			/* ++++++++++ v20.00.00 ADD END ++++++++++ */
		}
	}

	/**
	 * 進捗を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param svcCd サービスコード
	 * @param prgSvcKeiNo 進捗サービス契約番号
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setPrg(JBSbatServiceInterfaceMap outMap, String svcCd, String prgSvcKeiNo, String kshadChgUm, boolean isNew) throws Exception {
// OM-2014-0001653対応 20140425 星野 ADD START
		setPrg(outMap, svcCd, prgSvcKeiNo, null, kshadChgUm, isNew);
	}
	
	/**
	 * 進捗を出力Mapにセットします。
	 * <br>
	 * @param outMap 出力Map
	 * @param svcCd サービスコード
	 * @param prgSvcKeiNo 進捗サービス契約番号
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setPrg(JBSbatServiceInterfaceMap outMap, String svcCd, String prgSvcKeiNo, String prgSvcKeiNoDsl, String kshadChgUm, boolean isNew) throws Exception {
// OM-2014-0001653対応 20140425 星野 ADD END

		if (JKKBatConst.SVC_CD_NET.equals(svcCd)) {

			// - ネット -

			// 進捗サービス契約番号（ネット）
			if (isBlank(prgSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_NET, prgSvcKeiNo);
			}
			
// OM-2014-0001653対応 20140425 星野 ADD START
			// 進捗サービス契約番号（ネット・解約側）
			if (isBlank(prgSvcKeiNoDsl)) {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_NET_DSL, "");
			} else {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_NET_DSL, prgSvcKeiNoDsl);
			}
// OM-2014-0001653対応 20140425 星野 ADD END
		} else if (JKKBatConst.SVC_CD_TEL.equals(svcCd)) {

			// - 電話 -

			// 進捗サービス契約番号（電話）
			if (isBlank(prgSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TEL, "");	
			} else {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TEL, prgSvcKeiNo);
			}
		} else if (JKKBatConst.SVC_CD_TV.equals(svcCd)) {

			// - ＴＶ -

			// 進捗サービス契約番号（ＴＶ）
			if (isBlank(prgSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TV, prgSvcKeiNo);
			}
			
// OM-2014-0001653対応 20140425 星野 ADD START
			// 進捗サービス契約番号（ＴＶ・解約側）
			if (isBlank(prgSvcKeiNoDsl)) {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TV_DSL, "");
			} else {
				outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TV_DSL, prgSvcKeiNoDsl);
			}
// OM-2014-0001653対応 20140425 星野 ADD END
		} else {
			// ignore
		}

		// 契約者住所変更有無を設定
		if (isNew) {
			if (kshadChgUm == null || "".equals(kshadChgUm.trim())) {
				outMap.setString(JBSbatKKIFM101.KSHAD_CHG_UM, "");
			} else {
				outMap.setString(JBSbatKKIFM101.KSHAD_CHG_UM, kshadChgUm);
			}
		}
	}
// IT1-2013-0000759対応 20130404 星野 ADD START
	/**
	 * サービス契約引継情報を出力Mapにセットします。
	 * <br>
	 * @throws Exception 予期しない例外が発生した場合
	 */
	private void setSvcKeiHktg(JBSbatServiceInterfaceMap outMap, String svcCd, String hktgsSvcKeiNo, String hktgsSvcKeiGeneAddDtm, String svcStaYmd, String hktgsSvcKeiLastUpdDtm) throws Exception {

		// === 移転先回線対象サービス契約 ===

		if (JKKBatConst.SVC_CD_NET.equals(svcCd)) {

			// - ネット -

			// 引継先サービス契約番号（ネット）
			if (isBlank(hktgsSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_NO_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_NO_NET, hktgsSvcKeiNo);
			}

			// 引継先サービス契約世代登録年月日時分秒（ネット）
			if (isBlank(hktgsSvcKeiGeneAddDtm)) {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_GENE_ADD_DTM_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_GENE_ADD_DTM_NET, hktgsSvcKeiGeneAddDtm);
			}

			// サービス開始年月日（ネット）
			if (isBlank(svcStaYmd)) {
				outMap.setString(JBSbatKKIFM101.SVC_STAYMD_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.SVC_STAYMD_NET, svcStaYmd);
			}

			// 引継先サービス契約最終更新年月日時分秒（ネット）
			if (isBlank(hktgsSvcKeiLastUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_LAST_UPD_DTM_NET, "");
			} else {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_LAST_UPD_DTM_NET, hktgsSvcKeiLastUpdDtm);
			}
			
		} else if (JKKBatConst.SVC_CD_TV.equals(svcCd)) {

			// - ＴＶ -

			// 引継先サービス契約番号（ＴＶ）
			if (isBlank(hktgsSvcKeiNo)) {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_NO_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_NO_TV, hktgsSvcKeiNo);
			}

			// 引継先サービス契約世代登録年月日時分秒（ＴＶ）
			if (isBlank(hktgsSvcKeiGeneAddDtm)) {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_GENE_ADD_DTM_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_GENE_ADD_DTM_TV, hktgsSvcKeiGeneAddDtm);
			}

			// サービス開始年月日（ＴＶ）
			if (isBlank(svcStaYmd)) {
				outMap.setString(JBSbatKKIFM101.SVC_STAYMD_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.SVC_STAYMD_TV, svcStaYmd);
			}

			// 引継先サービス契約最終更新年月日時分秒（ＴＶ）
			if (isBlank(hktgsSvcKeiLastUpdDtm)) {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_LAST_UPD_DTM_TV, "");
			} else {
				outMap.setString(JBSbatKKIFM101.HKTGS_SVC_KEI_LAST_UPD_DTM_TV, hktgsSvcKeiLastUpdDtm);
			}
			
		} else {
			// ignore
		}
	}
// IT1-2013-0000759対応 20130404 星野 ADD END
	
	/**
	 * 保留であるかどうかを判定
	 * 
	 * @param inAdchgNo
	 * @return
	 * @throws Exception
	 */
	private boolean isIdoSbtHoryu(String inAdchgNo) throws Exception
	{
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO});
		
		JBSbatCommonDBInterface adchgDtlInfo = null;
		while ((adchgDtlInfo = db_KK_T_ADCHG_DTL.selectNext()) != null)
		{
			// 保留ならtrue
			if ("2".equals(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD)))
			{
				return true;
			}
		}
		return false;
	}
// IT故障 AB100039 2012.12.30 suzuki add start
	/**
	 * サービス継続かどうかを判定します。
	 * 移転元サービス契約番号 ＝ 新設サービス契約番号 のとき、サービス継続と判断します。
	 * @param adcDtlSvcKeiNoInfo
	 * @return サービス継続のとき、true、以外のとき、false
	 * @throws Exception
	 */
	private boolean isSvcKeizoku(JBSbatCommonDBInterface adcDtlSvcKeiNoInfo)
			throws Exception {
		
		// 移転元サービス契約番号
		String dslSvcKeiNo = null;
		dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);

		// 新設サービス契約番号
		String newSvcKeiNo = null;
		newSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);

		if ( isBlank(dslSvcKeiNo) || isBlank(newSvcKeiNo) ) {
			// どちらか未設定のときは、継続ではない
			return false;
		}

		// 移転元サービス契約番号 ＝ 新設サービス契約番号 のとき、サービス継続と判断する
		if (dslSvcKeiNo.equals(newSvcKeiNo)) {
			return true;
		}
		return false;
	}
// IT故障 AB100039 2012.12.30 suzuki add end
	
// IT1-2013-0000759対応 20130404 星野 ADD START
	/**
	 * 解約/新規かどうかを判定します。
	 * @param adcDtlSvcKeiNoInfo
	 * @return 解約/新規のとき、true、以外のとき、false
	 * @throws Exception
	 */
	private boolean isDslNew(JBSbatCommonDBInterface adcDtlSvcKeiNoInfo)
			throws Exception {
		
		// 移転元サービス契約番号
		String dslSvcKeiNo = null;
		dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);

		// 新設サービス契約番号
		String newSvcKeiNo = null;
		newSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);

		if ( isBlank(dslSvcKeiNo) || isBlank(newSvcKeiNo) ) {
			// どちらか未設定のときは、継続ではない
			return false;
		}

		// 移転元サービス契約番号 ≠ 新設サービス契約番号 のとき、解約/新規と判断する
		if (!dslSvcKeiNo.equals(newSvcKeiNo)) {
			return true;
		}
		return false;
	}
// IT1-2013-0000759対応 20130404 星野 ADD START
	
// ST1-2013-0000090対応 20130116 星野 ADD START
	/**
	 * 対象回線にひもづく回線対象サービス契約が残っているか判定します
	 * @param inAdchgNo 住所変更番号
	 * @param inItnmSvkeiKisuwNo サービス契約回線内訳番号
	 * @return
	 * @throws Exception
	 */
	private boolean isZanTgSvcKei(String inAdchgNo, String inItnmSvkeiKisuwNo) throws Exception {
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO});

		JBSbatCommonDBInterface adcDtlSvcKeiNoInfo = null;
		for (adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext(); adcDtlSvcKeiNoInfo != null; adcDtlSvcKeiNoInfo = db_KK_T_ADCHG_DTL.selectNext()) {
			// 撤去サービス契約番号
			String dslSvcKeiNo = null;
			dslSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String newSvcKeiNo = adcDtlSvcKeiNoInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);

			// 撤去サービス契約番号が存在する場合
			if (!isBlank(dslSvcKeiNo)) {

				executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_024(new String[]{opeDate, dslSvcKeiNo, inItnmSvkeiKisuwNo});

				JBSbatCommonDBInterface dslKisnTgSvkeiInfo = null;
				dslKisnTgSvkeiInfo = db_KK_T_KAISEN_TG_SVKEI.selectNext();

				if (dslKisnTgSvkeiInfo != null) {

					// 使用終了していなければ
					if (isBlank(dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_ENDYMD))
							|| MAX_DATE.equals(dslKisnTgSvkeiInfo.getString(JBSbatKK_T_KAISEN_TG_SVKEI.KAISEN_UCWK_USE_ENDYMD)) 
					) {
						// かつ、サービス継続（今回切断対象）以外
						if( (isBlank(dslSvcKeiNo) || isBlank(newSvcKeiNo) || !dslSvcKeiNo.equals(newSvcKeiNo)) ){
							// 残サービスありとしてtrue返却
							return true;
						}
					}
				}
			}

		}

		return false;
	}
// ST1-2013-0000090対応 20130116 星野 ADD END

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） START
	/**
	 * 移転元のサービス契約番号をネット・電話・ＴＶ別に設定する
	 * @param adchgDtl 住所変更明細（KK_T_ADCHG_DTL_KK_SELECT_003の結果：住所変更明細種別コードはサービス契約番号の前提）
	 * @param kaisenTgSvkei 回線対象サービス契約（KK_T_KAISEN_TG_SVKEI_KK_SELECT_024の結果）
	 * @throws Exception 
	 */
	private void setItenMotoSvcNo(JBSbatCommonDBInterface adchgDtl, JBSbatCommonDBInterface kaisenTgSvkei) throws Exception {
		
		// サービス契約．サービスコード
		String svcCd = kaisenTgSvkei.getString(JBSbatKK_T_SVC_KEI.SVC_CD);
		// 移転元サービス契約番号（住所変更明細．変更前識別番号）
		String svcNo = adchgDtl.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
		
		if (JKKBatConst.SVC_CD_NET.equals(svcCd)) {
			itenMotoSvcNoNet = svcNo;
		}
		
		if (JKKBatConst.SVC_CD_TEL.equals(svcCd)) {
			itenMotoSvcNoTel = svcNo;
		}
		
		if (JKKBatConst.SVC_CD_TV.equals(svcCd)) {
			itenMotoSvcNoTv = svcNo;
		}
	}
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） END

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） START
	/**
	 * 抽出した住所変更登録対象データより、住変中に解約されたサービスの情報をクリアする
	 * @param outputItem 抽出した住所変更登録対象データ
	 * @throws Exception 
	 */
	private void removeSurrenderServiceContract(JBSbatOutputItem outputItem) throws Exception {

		// 抽出データはList形式ではあるが１件しか格納されていない
		List<JBSbatServiceInterfaceMap> outMapList = outputItem.getOutMapList();
		for (JBSbatServiceInterfaceMap outMap : outMapList) {
			// 移転元のサービスが解約されている場合は設定した情報をクリアする
			
			// ネット
			removeNetSvcInfo(outMap, itenMotoSvcNoNet);

			// 電話
			removeTelSvcInfo(outMap, itenMotoSvcNoTel);

			// ＴＶ
			removeTvSvcInfo(outMap, itenMotoSvcNoTv);
		}
	}
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） END

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） START
	/**
	 * 住所変更登録対象データより、住変中にネットが解約されていた場合に、ネットサービスの情報をクリアする
	 * @param outMap 住所変更登録対象データ
	 * @param svcNoNet 移転元のネットのサービス契約番号
	 * @throws Exception 
	 */
	private void removeNetSvcInfo(JBSbatServiceInterfaceMap outMap, String svcNo) throws Exception {
		// ネット
		if (!isSurrenderService(svcNo)) {
			return;		// 移転元のネットは解約されていない
		}
		
// OM-2013-0004120対応 20131219 星野 ADD START
		// 転居先の回線対象サービス契約をキャンセルするため、移転先情報をクリア前に転記
		if( !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_NET) ) 
			&& !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO) )
			&& !isBlank( outMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_NET) )
			&& !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_NET) )
		){
			outMap.setString( JBSbatKKIFM101.CNCL_SVC_KEI_NO_NET, outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_NET) );
			outMap.setString( JBSbatKKIFM101.CNCL_YMD, outMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_NET) );
			outMap.setString( JBSbatKKIFM101.CNCL_KISN_TG_SVKEI_UPD_DTM_NET, outMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_NET) );
		}
// OM-2013-0004120対応 20131219 星野 ADD END
		
		// 移転元のネット契約が解約されているので、ネットの情報をクリアする
		// 移転元
		outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_NET, "");
		outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_NET, "");
		outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_NET, "");
		// 移転先
		outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_NET, "");
		outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_NET, "");
		outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_NET, "");
		outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_NET, "");
		// 進捗
		outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_NET, "");
	}
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） END

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） START
	/**
	 * 住所変更登録対象データより、住変中に電話が解約されていた場合に、電話サービスの情報をクリアする
	 * @param outMap 住所変更登録対象データ
	 * @param svcNoTel 移転元の電話のサービス契約番号
	 * @throws Exception 
	 */
	private void removeTelSvcInfo(JBSbatServiceInterfaceMap outMap, String svcNo) throws Exception {
		// 電話
		if (!isSurrenderService(svcNo)) {
			return;		// 移転元の電話は解約されていない
		}
		
// OM-2013-0004120対応 20131219 星野 ADD START
		// 転居先の回線対象サービス契約をキャンセルするため、移転先情報をクリア前に転記
		if( !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TEL) ) 
			&& !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO) )
			&& !isBlank( outMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TEL) )
			&& !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TEL) )
		){
			outMap.setString( JBSbatKKIFM101.CNCL_SVC_KEI_NO_TEL, outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TEL) );
			outMap.setString( JBSbatKKIFM101.CNCL_YMD, outMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TEL) );
			outMap.setString( JBSbatKKIFM101.CNCL_KISN_TG_SVKEI_UPD_DTM_TEL, outMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TEL) );
		}
// OM-2013-0004120対応 20131219 星野 ADD END
		
		// 移転元の電話契約が解約されているので、電話の情報をクリアする
		// 移転元
		outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TEL, "");
		outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TEL, "");
		outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TEL, "");
		// 移転先
		outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TEL, "");
		outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TEL, "");
		outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TEL, "");
		outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_TEL, "");
		// 進捗
		outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TEL, "");
	}
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） END

// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） START
	/**
	 * 住所変更登録対象データより、住変中にＴＶが解約されていた場合に、ＴＶサービスの情報をクリアする
	 * @param outMap 住所変更登録対象データ
	 * @param svcNoTv 移転元のテレビのサービス契約番号
	 * @throws Exception 
	 */
	private void removeTvSvcInfo(JBSbatServiceInterfaceMap outMap, String svcNo) throws Exception {
		// ＴＶ
		if (!isSurrenderService(svcNo)) {
			return;		// 移転元のＴＶは解約されていない
		}
		
// OM-2013-0004120対応 20131219 星野 ADD START
		// 転居先の回線対象サービス契約をキャンセルするため、移転先情報をクリア前に転記
		if( !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TV) ) 
			&& !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO) )
			&& !isBlank( outMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TV) )
			&& !isBlank( outMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TV) )
		){
			outMap.setString( JBSbatKKIFM101.CNCL_SVC_KEI_NO_TV, outMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TV) );
			outMap.setString( JBSbatKKIFM101.CNCL_YMD, outMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TV) );
			outMap.setString( JBSbatKKIFM101.CNCL_KISN_TG_SVKEI_UPD_DTM_TV, outMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TV) );
		}
// OM-2013-0004120対応 20131219 星野 ADD END
		
		// 移転元のＴＶ契約が解約されているので、ＴＶの情報をクリアする
		// 移転元
		outMap.setString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TV, "");
		outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TV, "");
		outMap.setString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TV, "");
		// 移転先
		outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TV, "");
		outMap.setString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TV, "");
		outMap.setString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TV, "");
		outMap.setString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_TV, "");
		// 進捗
		outMap.setString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TV, "");
	}
// ANK-1429-00-00 2013.03.21 T.TORIKAI ADD（メソッド追加） END

// 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

// IT1-2013-0001349 2013.07.10 T.TORIKAI メソッド追加
	private boolean existKojiAkTgSvcKei(String adchgNo, String kojiAkNo) throws Exception {

		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opeDate);
		paramList.setValue(opeDate);
		paramList.setValue(adchgNo);
		paramList.setValue(kojiAkNo);
		
		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_028);
		if (db_KU_T_KOJIAK.selectNext() == null) {
			return false;		// 工事案件番号に紐付く保留のサービスなし
		}

		return true;			// 工事案件番号に紐付く保留のサービス契約あり
	}

// OM-2013-0000735 2013.09.08 T.TORIKAI メソッド追加
	/**
	 * ログ出力用のメッセージ（SYSID、サービス契約番号）を取得する
	 */
	private String getLogMsgKojiStop(String adchgNo) throws Exception {

		String msgSvcKei = "";
		String sysId = "";
		
		// 住所変更明細取得（サービス契約）
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{adchgNo, ADCHG_DTL_SBT_CD_SVC_KEI_NO});
		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 "";
	}
}
