/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKAdChgSodUpd
*	ソースファイル名	：JBSbatKKAdChgSodUpd.java
*	作成者				：富士通　
*	作成日				：2012年10月15日
*＜機能概要＞
*　住所変更ＳＯＤ更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/10/15   富士通		新規作成
*	v8.00.00	2014/04/03   星野		IT2-2014-0000180対応
*	v8.01.00	2014/04/28   星野		OM-2014-0001721対応
*	v8.02.00	2014/06/03   星野		OM-2014-0001576対応
*	v15.00.00	2015/08/11   FJ)三浦	OM-2015-0001799対応
*	v26.00.00	2016/09/20   FJ)江藤	OM-2016-0001519対応
*	v32.00.00	2017/06/14   FJ)澤田   【ANK-3149-04-00】セキュリティーパック導入
*	v36.00.00	2018/05/10   FJ)河邊    【OM-2018-0000362】住所変更確定エラー
*   v37.00.00   2018/04/23   FJ)澤田   【ANK-3383-00-00】工事費割賦請求STEP2
*   v37.01.00   2018/06/15   FJ)澤田   【IT2-2018-0000061】工事費割賦請求STEP2 HT⇒MTに住所変更確定したが割引適用CCが呼ばれない
*   v38.00.00	2018/07/20   FJ)杉本	【OM-2018-0000517】住所変更撤去時オーダ発行不備
*   v50.00.00	2020/09/02   FJ)吉田	【OM-2020-0001078】VDSL⇒光配線3点住変を確定したとき、多機能OLSにISP認証IDが設定されない
*   v72.00.00   2024/06/27   FJ)藤井    【ANK-4494-00-00】【eo定期】 双方向番ポ対応
 *  v72.00.01	2024/11/26   FJ)星野    【ANK-4494-00-00】【eo定期】 双方向番ポ対応 Step2
*   v74.00.00	2025/02/14   FJ)橋本    【ANK-4642-00-00】瑕疵外障害改修対応
*********************************************************************/
package eo.business.service;

import static eo.common.util.JKKStringUtil.isNullBlank;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.util.file.JBSbatKKIFM102;
import eo.business.util.table.JBSbatKK_T_ADCHG_DTL;
import eo.business.util.table.JBSbatKK_T_IDO_RSV;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_MSKM_DTL;
import eo.business.util.table.JBSbatKK_T_OPSVKEI_ISP;
import eo.business.util.table.JBSbatKK_T_OP_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SBOPSVKEI_ISP;
import eo.business.util.table.JBSbatKK_T_SBOP_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_UCWK;
import eo.business.util.table.JBSbatKK_T_SVKEIUW_EOH_TEL;
import eo.business.util.table.JBSbatKK_T_SVKEI_EXC_CTRL;
import eo.business.util.table.JBSbatKK_T_WRIB_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_WRISVC_TG_KEI;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKAdChgSodUpd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(住所変更明細)*/
	private static final String D_TBL_NAME_KK_T_ADCHG_DTL = "KK_T_ADCHG_DTL";

	/** テーブル(異動予約)*/
	private static final String D_TBL_NAME_KK_T_IDO_RSV = "KK_T_IDO_RSV";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";

	/** テーブル(オプションサービス契約)*/
	private static final String D_TBL_NAME_KK_T_OP_SVC_KEI = "KK_T_OP_SVC_KEI";

	/** テーブル(オプションサービス契約＜ＩＳＰ＞)*/
	private static final String D_TBL_NAME_KK_T_OPSVKEI_ISP = "KK_T_OPSVKEI_ISP";

	/** テーブル(サブオプションサービス契約)*/
	private static final String D_TBL_NAME_KK_T_SBOP_SVC_KEI = "KK_T_SBOP_SVC_KEI";

	/** テーブル(サブオプションサービス契約＜ＩＳＰ＞)*/
	private static final String D_TBL_NAME_KK_T_SBOPSVKEI_ISP = "KK_T_SBOPSVKEI_ISP";

	/** テーブル(申込明細)*/
	private static final String D_TBL_NAME_KK_T_MSKM_DTL = "KK_T_MSKM_DTL";
	//ANK-3149-04-00 ADD START
	/** テーブル(割引サービス契約)*/
	private static final String D_TBL_NAME_KK_T_WRIB_SVC_KEI = "KK_T_WRIB_SVC_KEI";
	//ANK-3149-04-00 ADD END
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
	/** テーブル(割引サービス対象契約)*/
	private static final String D_KK_T_WRISVC_TG_KEI = "KK_T_WRISVC_TG_KEI";
	/** テーブル(サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_UCWK = "KK_T_SVC_KEI_UCWK";
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
	// ANK-4494-00-00 ADD START
	/** テーブル(サービス契約内訳<eo光電話>)*/
	private static final String D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL = "KK_T_SVKEIUW_EOH_TEL";
	// ANK-4494-00-00 ADD END
	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_014)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_014 = "KK_SELECT_014";

// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
	/** SQL定義キー(KK_SELECT_024)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_024 = "KK_SELECT_024";
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END

	/** SQL定義キー(KK_SELECT_028)*/
	private static final String KK_T_IDO_RSV_KK_SELECT_028 = "KK_SELECT_028";

	/** SQL定義キー(KK_SELECT_032)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_032 = "KK_SELECT_032";
	
	/** SQL定義キー(KK_SELECT_222)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_222 = "KK_SELECT_222";

	/** SQL定義キー(KK_SELECT_228)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_228 = "KK_SELECT_228";

	/** SQL定義キー(KK_SELECT_056)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_056 = "KK_SELECT_056";

	/** SQL定義キー(KK_SELECT_013)*/
	private static final String KK_T_SBOP_SVC_KEI_KK_SELECT_013 = "KK_SELECT_013";

	/** SQL定義キー(KK_SELECT_082)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_082 = "KK_SELECT_082";

	/** SQL定義キー(KK_SELECT_025)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_025 = "KK_SELECT_025";
	
	// OM-2016-0001519 住所変更中に個別解約されたメールオプションが住所変更確定で引き継がれてしまう 2016/09/20 ADD START
	/** SQL定義キー(KK_SELECT_126)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_126 = "KK_SELECT_126";
	// OM-2016-0001519 住所変更中に個別解約されたメールオプションが住所変更確定で引き継がれてしまう 2016/09/20 ADD END

	// OM-2018-0000517 2018/07/20 ADD START
	/** SQL定義キー(KK_SELECT_135)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_135 = "KK_SELECT_135";
	// OM-2018-0000517 2018/07/20 ADD END
 
	//ANK-3149-04-00 ADD START
	/** SQL定義キー(KK_SELECT_011)*/
	private static final String KK_T_WRIB_SVC_KEI_KK_SELECT_011 = "KK_SELECT_011";
	/** SQL定義キー(KK_SELECT_074)*/
	private static final String KK_T_WRIB_SVC_KEI_KK_SELECT_074 = "KK_SELECT_074";
	/** SQL定義キー(KK_SELECT_049)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_049 = "KK_SELECT_049";
	/** SQL定義キー(KK_SELECT_133)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_133 = "KK_SELECT_133";
	//ANK-3149-04-00 ADD END
	// ANK-4494-00-00 ADD START
	/** SQL定義キー(KK_SELECT_013)*/
	private static final String KK_T_SVKEIUW_EOH_TEL_KK_SELECT_013 = "KK_SELECT_013";
	// ANK-4494-00-00 ADD END
	// ANK-4642-00-00_瑕疵外障害改修対応 ADD START
	/** SQL定義キー(KK_SELECT_005)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_012 = "KK_SELECT_012";
	/** SQL定義キー(KK_SELECT_067)*/
	private static final String KK_T_WRISVC_TG_KEI_KK_SELECT_067 = "KK_SELECT_067";
	/** SQL定義キー(KK_SELECT_079)*/
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_079 = "KK_SELECT_079";
	// ANK-4642-00-00_瑕疵外障害改修対応 ADD END
	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL = null;

	/** テーブルアクセスクラス(異動予約)*/
	private JBSbatSQLAccess db_KK_T_IDO_RSV = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;

	/** テーブルアクセスクラス(オプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_OP_SVC_KEI = null;

	/** テーブルアクセスクラス(オプションサービス契約＜ＩＳＰ＞)*/
	private JBSbatSQLAccess db_KK_T_OPSVKEI_ISP = null;

	/** テーブルアクセスクラス(サブオプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_SBOP_SVC_KEI = null;

	/** テーブルアクセスクラス(サブオプションサービス契約＜ＩＳＰ＞)*/
	private JBSbatSQLAccess db_KK_T_SBOPSVKEI_ISP = null;

	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL2 = null;
	//ANK-3149-04-00 ADD START
	/** テーブルアクセスクラス(割引サービス契約)*/
	private JBSbatSQLAccess db_KK_T_WRIB_SVC_KEI = null;
	/** テーブルアクセスクラス(割引サービス契約)*/
	private JBSbatSQLAccess db_KK_T_WRIB_SVC_KEI_74 = null;
	/** テーブルアクセスクラス(オプションサービス契約 KK_SELECT_133専用)*/
	private JBSbatSQLAccess db_KK_T_OP_SVC_KEI_133 = null;
	//ANK-3149-04-00 ADD END
	// ANK-4494-00-00 ADD START
	/** テーブルアクセスクラス(サービス契約内訳<eo光電話>)*/
	private JBSbatSQLAccess db_KK_T_SVKEIUW_EOH_TEL = null;
	// ANK-4494-00-00 ADD END
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
	/** テーブルアクセスクラス(割引サービス対象契約)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_TG_KEI = null;
	/** テーブルアクセスクラス(サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEIUW = null;
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
	// ***** ユースケースID・オペレーションID *****
	/** ユースケースID */
	private static final String USECASE_ID = "KKSV0565";

	/** オペレーションID */
	private static final String OPERATION_ID = "KKSV0565OP";

	/** オーダ発行契機区分 - 撤去完了 */
	private static final String ODR_EXEC_DIV_DSL_FIN = "2";

	/** オーダ発行契機区分 - 新設完了 */
	private static final String ODR_EXEC_DIV_NEW_FIN = "3";

	/** 機器親契約識別コード - サービス契約 */
	public static final String KKTK_OYA_KEI_SKBT_CD_SVC_KEI = "01";

// ANK-1578-00-00 2013.12.10 Y.Kanata ADD START
	/** 機器親契約識別コード - サービス契約回線内訳 */
	public static final String KKTK_OYA_KEI_SKBT_CD_SVC_KEI_KAISEN_UCWK = "02";
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD END

	/** 機器親契約識別コード - サービス契約内訳 */
	public static final String KKTK_OYA_KEI_SKBT_CD_SVC_KEI_UCWK = "03";

	/** オプション親契約識別コード - サービス契約 */
	public static final String OP_OYA_KEI_SKBT_CD_SVC_KEI = "01";

	/** オプション親契約識別コード - サービス契約内訳 */
	public static final String OP_OYA_KEI_SKBT_CD_SVC_KEI_UCWK = "03";

	/** 住所変更明細種別コード - サービス契約番号 */
	public static final String ADCHG_DTL_SBT_CD_SVC_KEI = "01";

	/** 住所変更明細種別コード - サービス契約内訳番号 */
	public static final String ADCHG_DTL_SBT_CD_UCWK = "02";

	/** 住所変更明細種別コード - 機器提供サービス契約番号 */
	public static final String ADCHG_DTL_SBT_CD_KKTK = "03";

	/** 住所変更明細種別コード - オプションサービス契約番号 */
	public static final String ADCHG_DTL_SBT_CD_OP = "04";
	
	//ANK-3149-04-00 ADD START
	/** 住所変更明細種別コード - ネットオプションパック割引サービス契約番号 */
	public static final String ADCHG_DTL_SBT_CD_NET_WRIB = "11";
	//ANK-3149-04-00 ADD END
	
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
	/** 住所変更明細種別コード - 電話オプションパック割引サービス契約番号 */
	public static final String ADCHG_DTL_SBT_CD_TEL_WRIB = "10";
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
	
	/** サービスコード：ネット */
	private static final String SVC_CD_NET = "01";

	/** サービスコード：電話 */
	private static final String SVC_CD_TEL = "02";

// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
	/** オプションサービスコード：固定IPアドレス */
	private static final String OP_SVC_CD_FIXIPAD = "B004";
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END
	
	// ANK-4642-00-00_瑕疵外障害改修対応 ADD START
	/** 電話セレクトオプションパック：eo光電話パック3 */
	private static final String WRBK_CD_3 = "W00000007";
	/** 電話セレクトオプションパック：eo光電話パック7 */
	private static final String WRBK_CD_7 = "W00000008";
	/** 電話セレクトオプションパック：あんしん電話パック7 */
	private static final String WRBK_CD_ANSN = "W00000023";
	/** 割引サービスステータス：解約済み */
	private static final String WRBK_STAT_KIYK = "910";
	/** 割引サービスステータス：キャンセル済み */
	private static final String WRBK_STAT_CANCEL = "920";
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
	
	// オーダ発行対象サービス契約リスト
	ArrayList<HashMap<String, Object>> odr_hakko_svc_kei_list = null;
	
	// オプション引継用リスト
	ArrayList<HashMap<String, Object>> op_svc_hktgi_upd_list = null;
	
	// オプション解約用リスト
	ArrayList<HashMap<String, Object>> op_svc_kei_dsl_list = null;
	
	// オプションキャンセル用リスト
	ArrayList<HashMap<String, Object>> op_svc_kei_cnsl_list = null;
	
	// 割引自動適用ＣＣ用リスト
	ArrayList<HashMap<String, Object>> wrisvc_auto_aply_list = null;
	
	// 割引自動適用ＣＣリスト作成用ワーク
	ArrayList<String> adchgNoList = new ArrayList<String>();
	
	// ANK-4494-00-00 ADD START
	// ＥＮＵＭ消去ＳＯＤ発行用ワーク
	ArrayList<HashMap<String, Object>> enum_sod_target_list = null;
	// ANK-4494-00-00 ADD END
	
// OM-2014-0001576対応 20140603 星野 ADD START
	// 住所変更確定用
	String adchgNo = null;
// OM-2014-0001576対応 20140603 星野 ADD END

	//ANK-3149-04-00 ADD START
	HashMap<String, Object> wrib_op_svc_hktgi_upd_map = null;
	//ANK-3149-04-00 ADD END
	// IT2-2018-0000XXX ADD START
	private static final String ADD_CHGE_DIV_KOJIHI_KAP_CP_DEL = "17";
	// IT2-2018-0000XXX ADD END
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_ADCHG_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG_DTL);
		db_KK_T_IDO_RSV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_IDO_RSV);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
		db_KK_T_OP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OP_SVC_KEI);
		db_KK_T_OPSVKEI_ISP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OPSVKEI_ISP);
		db_KK_T_SBOP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SBOP_SVC_KEI);
		db_KK_T_SBOPSVKEI_ISP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SBOPSVKEI_ISP);
		db_KK_T_MSKM_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		db_KK_T_ADCHG_DTL2 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG_DTL);
		//ANK-3149-04-00 ADD START
		db_KK_T_WRIB_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRIB_SVC_KEI);
		db_KK_T_WRIB_SVC_KEI_74 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRIB_SVC_KEI);
		db_KK_T_OP_SVC_KEI_133 = new JBSbatSQLAccess(commonItem, JBSbatKK_T_OP_SVC_KEI.TABLE_NAME);
		//ANK-3149-04-00 ADD END
		// ANK-4494-00-00 ADD START
		db_KK_T_SVKEIUW_EOH_TEL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL);
		// ANK-4494-00-00 ADD END
		//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
		db_KK_T_WRISVC_TG_KEI = new JBSbatSQLAccess(commonItem, D_KK_T_WRISVC_TG_KEI);
		db_KK_T_SVKEIUW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
		//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @param outputInItem 入力情報
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		// 入力電文の読み込みが終了した場合
		if (inMap == null) {

			// 中間ファイルが0件の場合
			if (outputInItem == null || outputInItem.getOutMapList().isEmpty()) {
				return null;
			}
			// ログ出力
			if (odr_hakko_svc_kei_list != null)
			{
				printDebugLog();
			}

			//-------------------------------
			// サービス呼出
			//-------------------------------
			HashMap<String, Object> paramMap = new HashMap<String, Object>();
			HashMap<String, Object> inputMap = new HashMap<String, Object>();
			HashMap<String, Object> outputMap = new HashMap<String, Object>();
			
			paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, USECASE_ID);
			paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID, OPERATION_ID);
			
// OM-2014-0001576対応 20140603 星野 ADD START
			// 住所変更確定処理
			HashMap mapKKSV056506CC = new HashMap();
			mapKKSV056506CC.put("adchg_adchg_no", this.adchgNo);
			mapKKSV056506CC.put("func_code", "1");
			mapKKSV056506CC.put("func_cd", "1");
			inputMap.put("KKSV056506CC", mapKKSV056506CC);
			this.adchgNo = null;
// OM-2014-0001576対応 20140603 星野 ADD END
			
			// オプション解約ＣＣ用
			HashMap mapKKSV056501CC = new HashMap();
			mapKKSV056501CC.put("op_svc_kei_dsl_list", op_svc_kei_dsl_list);
			inputMap.put("KKSV056501CC", mapKKSV056501CC);
			inputMap.put("HakkoSODCC", new HashMap<String, Object>());
			op_svc_kei_dsl_list = null;
			
			// オプションキャンセルＣＣ用
			HashMap mapKKSV056505CC = new HashMap();
			mapKKSV056505CC.put("op_svc_kei_cnsl_list", op_svc_kei_cnsl_list);
			inputMap.put("KKSV056505CC", mapKKSV056505CC);
			op_svc_kei_cnsl_list = null;
			
			// オプション引継ＣＣ用
			HashMap mapKKSV056502CC = new HashMap();
			mapKKSV056502CC.put("op_svc_hktgi_upd_list", op_svc_hktgi_upd_list);
			inputMap.put("KKSV056502CC", mapKKSV056502CC);
			op_svc_hktgi_upd_list = null;
			
			//ANK-3149-04-00 ADD START
			// セキュリティーパック操作部品CC設定
			inputMap.put("KKSV056507CC", wrib_op_svc_hktgi_upd_map);
			wrib_op_svc_hktgi_upd_map = null;
			//ANK-3149-04-00 ADD END
			
			// 割引サービス自動適用ＣＣ用
			HashMap mapKKSV056503CC = new HashMap();
			mapKKSV056503CC.put("wrisvc_auto_aply_list", wrisvc_auto_aply_list);
			inputMap.put("KKSV056503CC", mapKKSV056503CC);
			wrisvc_auto_aply_list = null;
			
			// ＳＯＤ発行ＣＣ用
			HashMap mapKKSV056504CC = new HashMap();
			mapKKSV056504CC.put("odr_hakko_svc_kei_list", odr_hakko_svc_kei_list);
			mapKKSV056504CC.put("func_code", "1");
			inputMap.put("KKSV056504CC", mapKKSV056504CC);
			odr_hakko_svc_kei_list = null;
			
			// ANK-4494-00-00 ADD START
			// ＥＮＵＭ消去ＳＯＤ発行（ポートアウトの終了）用
			HashMap mapKKSV056509CC = new HashMap();
			mapKKSV056509CC.put("targetList", enum_sod_target_list);
			mapKKSV056509CC.put("func_code", "1");
			inputMap.put("KKSV056509CC", mapKKSV056509CC);
			// パラメータ受け皿
			inputMap.put("KKSV056508CC", new HashMap<String, Object>());
			// ANK-4494-00-00 ADD END
			
			JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
			
			String returnCode = outputMap.get(JCCBatchEsbInterface.RETURN_CODE).toString();
			if (!JCCBatchEsbInterface.RETURN_CODE_SUCCESS.equals(returnCode)) {
				throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0270CE, new String[]{"サービスオーダ発行部品（住所変更）"});
			}
			
// OM-2013-0002465対応 20130928 星野 ADD START
			// 番ポ工事更新ワーニングチェック
			warningBmp(outputMap);
// OM-2013-0002465対応 20130928 星野 ADD END
			
			
		} else {

			// 住所変更番号
			String inAdchgNo = inMap.getString(JBSbatKKIFM102.ADCHG_NO);
			// 申込番号
			String inMskmNo = inMap.getString(JBSbatKKIFM102.MSKM_NO);
			// 新設サービス契約回線内訳番号
			String inNewSvkeiKisuwNo = inMap.getString(JBSbatKKIFM102.NEW_SVKEI_KISUW_NO);
			// 撤去サービス契約回線内訳番号
			String inDslSvkeiKisuwNo = inMap.getString(JBSbatKKIFM102.DSL_SVKEI_KISUW_NO);
			// 新設サービス契約番号
			String inNewSvcKeiNo = inMap.getString(JBSbatKKIFM102.NEW_SVC_KEI_NO);
			// 撤去サービス契約番号
			String inDslSvcKeiNo = inMap.getString(JBSbatKKIFM102.DSL_SVC_KEI_NO);
			// サービス契約異動種別コード
			String inSvcKeiIdoSbtCd = inMap.getString(JBSbatKKIFM102.SVC_KEI_IDO_SBT_CD);
			// 新設サービス契約回線内訳世代
			String inNewSvkeiKisuwGene = inMap.getString(JBSbatKKIFM102.NEW_SVKEI_KISUW_GENE);
			// 撤去サービス契約回線内訳世代
			String inDslSvkeiKisuwGene = inMap.getString(JBSbatKKIFM102.DSL_SVKEI_KISUW_GENE);
			// 新設完了フラグ
			String inNewFinFlg = inMap.getString(JBSbatKKIFM102.NEW_FIN_FLG);
			// 撤去完了フラグ
			String inDslFinFlg = inMap.getString(JBSbatKKIFM102.DSL_FIN_FLG);
			
// OM-2014-0001576対応 20140603 星野 ADD START
			if("1".equals(inNewFinFlg)){
				this.adchgNo = inAdchgNo;
			}
// OM-2014-0001576対応 20140603 星野 ADD END
			
			// 2012/12/30 IT1-2012-0002621 ADD-START
			// 割引自動適用実行フラグ
			String inWribExeFlg = inMap.getString(JBSbatKKIFM102.WRIB_EXE_FLG);
			if ("1".equals(inWribExeFlg))
			{
			// 2012/12/30 IT1-2012-0002621 ADD-END
				//-------------------------------------
				// 割引自動適用CC呼出設定
				//-------------------------------------
				setWrisvcAutoAply(inAdchgNo, inMskmNo);
				// 2012/12/30 IT1-2012-0002621 ADD-START
				outputInItem.addOutMapList(inMap);
				return outputInItem;
				// 2012/12/30 IT1-2012-0002621 ADD-END
			}

			String cndNewSvcKeiNo = "ZZZZZZZZZZ";
			if (!(inNewSvcKeiNo == null || "".equals(inNewSvcKeiNo.trim()))) {
				cndNewSvcKeiNo = inNewSvcKeiNo;
			}

			String cndDslSvcKeiNo = "ZZZZZZZZZZ";
			if (!(inDslSvcKeiNo == null || "".equals(inDslSvcKeiNo.trim()))) {
				cndDslSvcKeiNo = inDslSvcKeiNo;
			}
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD START
// 解約新規の場合のみ回線に紐付く多機能ルータを取得する。
			// オーダ発行契機区分を存在しない内容で初期化する。
			String odrExecDivMfr = "x";
			if (isNetRlsAdd(inAdchgNo)) {
				// 異動が解約新規の場合のみ撤去完了時に処理を行うようにする。
				odrExecDivMfr = "2";
			}
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD END
// IT2-2014-0000040 2014.01.18 Y.Kanata ADD START
			if (isNetKeep(inAdchgNo)) {
				// 異動が引継ぎの撤去完了時に処理を行うようにする。
				// 機器オプションサービス契約のみを解約する際に解約SODを発行するため。
				odrExecDivMfr = "2";
			}   
// IT2-2014-0000040 2014.01.18 Y.Kanata ADD END

			executeKK_T_ADCHG_DTL_KK_SELECT_014(new String[]{
					ODR_EXEC_DIV_DSL_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					KKTK_OYA_KEI_SKBT_CD_SVC_KEI,			// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_KKTK,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndDslSvcKeiNo,							// 変更前識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_DSL_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					opeDate,								// 予約適用年月日
					KKTK_OYA_KEI_SKBT_CD_SVC_KEI_UCWK,		// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_KKTK,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndDslSvcKeiNo,							// 変更前識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_DSL_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					OP_OYA_KEI_SKBT_CD_SVC_KEI,				// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_OP,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndDslSvcKeiNo,							// 変更前識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_DSL_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					opeDate,								// 予約適用年月日
					OP_OYA_KEI_SKBT_CD_SVC_KEI_UCWK,		// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_OP,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndDslSvcKeiNo,							// 変更前識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					KKTK_OYA_KEI_SKBT_CD_SVC_KEI,			// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_KKTK,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndNewSvcKeiNo,							// 変更後識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					opeDate,								// 予約適用年月日
					KKTK_OYA_KEI_SKBT_CD_SVC_KEI_UCWK,		// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_KKTK,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndNewSvcKeiNo,							// 変更後識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					OP_OYA_KEI_SKBT_CD_SVC_KEI,				// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_OP,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndNewSvcKeiNo,							// 変更後識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					opeDate,								// 予約適用年月日
					OP_OYA_KEI_SKBT_CD_SVC_KEI_UCWK,		// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_OP,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndNewSvcKeiNo,							// 変更後識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					OP_OYA_KEI_SKBT_CD_SVC_KEI,				// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_OP,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndNewSvcKeiNo,							// 変更後識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					opeDate,								// 予約適用年月日
					OP_OYA_KEI_SKBT_CD_SVC_KEI_UCWK,		// 親契約識別コード
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_OP,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndNewSvcKeiNo,							// 変更後識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					
// OT-2013-000311 2013.03.26 T.TORIKAI MOD START
//					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
//					opeDate,								// 予約適用年月日
//					opeDate,								// 予約適用年月日
//					ADCHG_DTL_SBT_CD_UCWK,					// 住所変更明細種別コード
//					inAdchgNo,								// 住所変更番号
//					cndNewSvcKeiNo,							// 変更後識別番号
//					ADCHG_DTL_SBT_CD_SVC_KEI,				// 住所変更明細種別コード
					ODR_EXEC_DIV_NEW_FIN,					// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					ADCHG_DTL_SBT_CD_UCWK,					// 住所変更明細種別コード
					opeDate,								// 予約適用年月日
					opeDate,								// 予約適用年月日
					inAdchgNo,								// 住所変更番号
					cndNewSvcKeiNo,							// 変更後識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI				// 住所変更明細種別コード
// OT-2013-000311 2013.03.26 T.TORIKAI MOD END
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD START
// 解約新規の場合のみ回線に紐付く多機能ルータを取得する。
					,odrExecDivMfr,							// オーダ発行契機区分
					opeDate,								// 予約適用年月日
					KKTK_OYA_KEI_SKBT_CD_SVC_KEI_KAISEN_UCWK,	// 親契約識別コード
					inAdchgNo,								// 住所変更番号
// IT2-2014-0000180対応 20140403 星野 ADD START
					inAdchgNo,								// 住所変更番号
// IT2-2014-0000180対応 20140403 星野 ADD END
					ADCHG_DTL_SBT_CD_KKTK,					// 住所変更明細種別コード
					inAdchgNo,								// 住所変更番号
					inAdchgNo,								// 住所変更番号
					cndDslSvcKeiNo,							// 変更前識別番号
					ADCHG_DTL_SBT_CD_SVC_KEI				// 住所変更明細種別コード
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD END
			});

			int index = 0;

			// 発行契機対象リスト
			ArrayList<HashMap<String, Object>> hakko_trgr_trgt_list = null;
			// 対象データリスト（機器）
			ArrayList<HashMap<String, Object>> kiki_trgt_data_list = null;
			// 対象データリスト（オプション）
			ArrayList<HashMap<String, Object>> opt_trgt_data_list = null;

			// 発行契機対象データマップ
			HashMap<String, Object> hakko_trgr_trgt_data_map = null;

			// オーダ発行契機区分
			String curOdrExecDiv = "";

			// オーダ発行契機区分
			String tempOdrExecDiv = null;
			
			ArrayList<HashMap<String, Object>> opSvcKeiList = new ArrayList<HashMap<String, Object>>();
			ArrayList<HashMap<String, Object>> emailOpSvcKeiNoList = new ArrayList<HashMap<String, Object>>();
			//ANK-3149-04-00 ADD START
			ArrayList<HashMap<String, Object>> opSvcKeiSecurityOpList = new ArrayList<HashMap<String, Object>>();
			ArrayList<HashMap<String, Object>> wribSvcKeiSecurityOpList = new ArrayList<HashMap<String, Object>>();
			//ANK-3149-04-00 ADD END
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
			boolean existFixIpOp = false;
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END

			JBSbatCommonDBInterface adchgDtlInfo = null;
			for (adchgDtlInfo = db_KK_T_ADCHG_DTL.selectNext(); adchgDtlInfo != null; adchgDtlInfo = db_KK_T_ADCHG_DTL.selectNext()) {

				String adchgNo = null;
				String svcKeiIdoSbtCd = null;
				String sysid = null;
				String svcCd = null;
				String svcKeiNo = null;
				String svcKeiGeneAddDtm = null;
				String svcKeiUcwkNo = null;
				String svcKeiUcwkGeneAddDtm = null;
				String kktkSvcKeiNo = null;
				String kktkSvcKeiGeneAddDtm = null;
				String opSvcKeiNo = null;
				String opSvcKeiGeneAddDtm = null;
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
				String opSvcCd = null;
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END
				String adchgDtlSbtCd = null;
				String odrExecDiv = null;
		        String chbfSkbtNo = null;
		        String chafSkbtNo = null;
// OT-2013-000311 2013.03.26 T.TORIKAI ADD START
				String sakiSvcKeiUcwkNo = null;
				String sakiSvcKeiGeneAddDtm = null;
// OT-2013-000311 2013.03.26 T.TORIKAI ADD END

				adchgNo = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.ADCHG_NO));
				svcKeiIdoSbtCd = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD));
				sysid = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
				svcCd = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
				svcKeiNo = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
				svcKeiGeneAddDtm = nullToBlank(adchgDtlInfo.getString("SVC_KEI_GENE_ADD_DTM"));
				svcKeiUcwkNo = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO));
				svcKeiUcwkGeneAddDtm = nullToBlank(adchgDtlInfo.getString("SVC_KEI_UCWK_GENE_ADD_DTM"));
				kktkSvcKeiNo = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
				kktkSvcKeiGeneAddDtm = nullToBlank(adchgDtlInfo.getString("KKTK_SVC_KEI_GENE_ADD_DTM"));
				opSvcKeiNo = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_NO));
				opSvcKeiGeneAddDtm = nullToBlank(adchgDtlInfo.getString("OP_SVC_KEI_GENE_ADD_DTM"));
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
				opSvcCd = nullToBlank(adchgDtlInfo.getString("OP_SVC_CD"));
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END
				adchgDtlSbtCd = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.ADCHG_DTL_SBT_CD));
				odrExecDiv = nullToBlank(adchgDtlInfo.getString("ODR_EXEC_DIV"));
				chbfSkbtNo = nullToBlank(adchgDtlInfo.getString("CHBF_SKBT_NO"));
				chafSkbtNo = nullToBlank(adchgDtlInfo.getString("CHAF_SKBT_NO"));
// OT-2013-000311 2013.03.26 T.TORIKAI ADD START
				sakiSvcKeiUcwkNo = nullToBlank(adchgDtlInfo.getString("SAKI_SVC_KEI_UCWK_NO"));
				sakiSvcKeiGeneAddDtm = nullToBlank(adchgDtlInfo.getString("SAKI_SVC_KEI_UCWK_GENE_ADD_DTM"));
// OT-2013-000311 2013.03.26 T.TORIKAI ADD END
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD START
				// 多機能ルータは、解約新規でのみ処理対象にする。
				if ("x".equals(odrExecDiv)) {
					continue;
				}
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD END

				//--------------------------------------
				// オプション引継 設定処理
				//--------------------------------------
				if (ADCHG_DTL_SBT_CD_OP.equals(adchgDtlSbtCd)
						&& !isNullBlank(chbfSkbtNo)
						&& !isNullBlank(chafSkbtNo)
						&& !isNullBlank(inNewSvcKeiNo)
						&& SVC_CD_NET.equals(svcCd))
				{
					// OM-2016-0001519 住所変更中に個別解約されたメールオプションが住所変更確定で引き継がれてしまう 2016/09/20 ADD START
					// 転居元オプションがオプション引継対象外の場合、処理中の住変明細に対する処理は不要。次の住変明細へ。
					if(!isOpHktgiTrgt(chbfSkbtNo))
					{
						continue;
					}
					// OM-2016-0001519 住所変更中に個別解約されたメールオプションが住所変更確定で引き継がれてしまう 2016/09/20 ADD END
					/*
					 * オプション引継ＣＣ用情報設定
					 */
					// ANK-3149-04-00 MOD START
					//setHikOpSvcKeiList(opSvcKeiList, opSvcKeiNo, emailOpSvcKeiNoList, inNewSvcKeiNo, adchgNo);
					setHikOpSvcKeiList(opSvcKeiList, opSvcKeiNo, emailOpSvcKeiNoList, inNewSvcKeiNo, adchgNo, opSvcKeiSecurityOpList);
					// ANK-3149-04-00 MOD END
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
					// ネットを解約新規で引継ぐ場合に、固定IPのオプションがある情報を保持する
					if (OP_SVC_CD_FIXIPAD.equals(opSvcCd)) {
						existFixIpOp = true;
					}
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END
				}
				
				if ("0".equals(inNewFinFlg) && ODR_EXEC_DIV_NEW_FIN.equals(odrExecDiv)) {
					continue;
				}
				if ("0".equals(inDslFinFlg) && ODR_EXEC_DIV_DSL_FIN.equals(odrExecDiv)) {
					continue;
				}

				tempOdrExecDiv = odrExecDiv;

				if (index < 1) {

					// 発行契機対象リスト
					hakko_trgr_trgt_list = new ArrayList<HashMap<String, Object>>();
					// 対象データリスト（機器）
					kiki_trgt_data_list = new ArrayList<HashMap<String, Object>>();
					// 対象データリスト（オプション）
					opt_trgt_data_list = new ArrayList<HashMap<String, Object>>();

					// 発行契機対象データマップ
					hakko_trgr_trgt_data_map = new HashMap<String, Object>();

					curOdrExecDiv = odrExecDiv;
				} else {

					if (!curOdrExecDiv.equals(odrExecDiv)) {

						hakko_trgr_trgt_data_map.put("kiki_trgt_data_list", kiki_trgt_data_list);
						hakko_trgr_trgt_data_map.put("opt_trgt_data_list", opt_trgt_data_list);
						if (ODR_EXEC_DIV_NEW_FIN.equals(odrExecDiv)) {
							hakko_trgr_trgt_data_map.put("odr_exec_div", odrExecDiv);
						}  if (ODR_EXEC_DIV_DSL_FIN.equals(odrExecDiv)) {
							hakko_trgr_trgt_data_map.put("odr_exec_div", odrExecDiv);
						}

						hakko_trgr_trgt_list.add(hakko_trgr_trgt_data_map);

						// 発行契機対象リスト
						hakko_trgr_trgt_list = new ArrayList<HashMap<String, Object>>();
						// 対象データリスト（機器）
						kiki_trgt_data_list = new ArrayList<HashMap<String, Object>>();
						// 対象データリスト（オプション）
						opt_trgt_data_list = new ArrayList<HashMap<String, Object>>();

						// 発行契機対象データマップ
						hakko_trgr_trgt_data_map = new HashMap<String, Object>();

						curOdrExecDiv = odrExecDiv;
					}
				}

				HashMap<String, Object> sod_map = null;
				sod_map = new HashMap<String, Object>();
				{

					HashMap<String, Object> sod_kihon_info = null;
					sod_kihon_info = new HashMap<String, Object>();
					sod_kihon_info.put("sysid", sysid);

					//-------------------------------------
					// サービス契約情報設定
					//-------------------------------------
					HashMap<String, Object> svc_kei_info = null;
					svc_kei_info = new HashMap<String, Object>();
					if (ODR_EXEC_DIV_NEW_FIN.equals(odrExecDiv)) {
						// 電話の場合は新設完了起因でも内訳番号は変更前に入れる
						if(SVC_CD_TEL.equals(svcCd)){
							svc_kei_info.put("svc_kei_no", svcKeiNo);
							svc_kei_info.put("saki_svc_kei_no", "");
							svc_kei_info.put("chbf_svc_kei_gene_add_dtm", svcKeiGeneAddDtm);
							svc_kei_info.put("chaf_svc_kei_gene_add_dtm", "");
						}else{
							svc_kei_info.put("svc_kei_no", "");
							svc_kei_info.put("saki_svc_kei_no", svcKeiNo);
							svc_kei_info.put("chbf_svc_kei_gene_add_dtm", "");
							svc_kei_info.put("chaf_svc_kei_gene_add_dtm", svcKeiGeneAddDtm);
						}
					} else  if (ODR_EXEC_DIV_DSL_FIN.equals(odrExecDiv)) {

						// コース変更の場合は、前コース時代の世代登録年月日時分秒を設定する。
						String oldCrsGeneAddDtm = null;
						{
							if ("1".equals(svcKeiIdoSbtCd) && inNewSvcKeiNo.equals(inDslSvcKeiNo)) {
								if (!(inNewSvcKeiNo == null || "".equals(inNewSvcKeiNo.trim()))) {
									if (inNewSvcKeiNo.equals(inDslSvcKeiNo)) {

										executeKK_T_IDO_RSV_KK_SELECT_028(new String[]{
												JBSbatKKConst.MK_FLG_YK,
												inMskmNo,
												JBSbatKKConst.MK_FLG_YK,
												"00019",
												"003",
												inDslSvcKeiNo,
												JBSbatKKConst.MK_FLG_YK});

										JBSbatCommonDBInterface idoRsvInfo = null;
										idoRsvInfo = db_KK_T_IDO_RSV.selectNext();

										if (idoRsvInfo != null) {

											executeKK_T_SVC_KEI_KK_SELECT_222(new String[]{
													inDslSvcKeiNo,
													idoRsvInfo.getString(JBSbatKK_T_IDO_RSV.OLD_PRC_GRP_CD),
													idoRsvInfo.getString(JBSbatKK_T_IDO_RSV.OLD_PCRS_CD),
													idoRsvInfo.getString(JBSbatKK_T_IDO_RSV.OLD_PPLAN_CD),
													opeDate,
													JBSbatKKConst.RSV_APLY_CD_FIX,
													JBSbatKKConst.MK_FLG_YK});

											JBSbatCommonDBInterface svcKeiInfo = null;
											svcKeiInfo = db_KK_T_SVC_KEI.selectNext();

											if (svcKeiInfo != null) {
												oldCrsGeneAddDtm = svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM);
											}
										}
									}
								}
							}
						}

						svc_kei_info.put("svc_kei_no", svcKeiNo);
						svc_kei_info.put("saki_svc_kei_no", "");
						if (oldCrsGeneAddDtm == null || "".equals(oldCrsGeneAddDtm)) {
							svc_kei_info.put("chbf_svc_kei_gene_add_dtm", svcKeiGeneAddDtm);
						} else {
							svc_kei_info.put("chbf_svc_kei_gene_add_dtm", oldCrsGeneAddDtm);
						}
						svc_kei_info.put("chaf_svc_kei_gene_add_dtm", "");
					} else {
						svc_kei_info.put("svc_kei_no", "");
						svc_kei_info.put("saki_svc_kei_no", "");
						svc_kei_info.put("chbf_svc_kei_gene_add_dtm", "");
						svc_kei_info.put("chaf_svc_kei_gene_add_dtm", "");
					}
					
					// 変更の場合は新旧ともに設定する
					setOldNewSvcKeiNo(svc_kei_info, inAdchgNo);
					
					//-------------------------------------
					// サービス契約内訳情報設定
					//-------------------------------------
					HashMap<String, Object> svc_kei_ucwk_info = null;
					svc_kei_ucwk_info = new HashMap<String, Object>();
					if (ODR_EXEC_DIV_NEW_FIN.equals(odrExecDiv)) {
						// 電話の場合は新設完了起因でも内訳番号は変更前に入れる
						if(SVC_CD_TEL.equals(svcCd)){
// OT-2013-000311 2013.03.26 T.TORIKAI MOD START
//							svc_kei_ucwk_info.put("svc_kei_ucwk_no", svcKeiUcwkNo);
//							svc_kei_ucwk_info.put("saki_svc_kei_ucwk_no", "");
//							svc_kei_ucwk_info.put("chbf_svc_kei_ucwk_gene_add_dtm", "");
//							svc_kei_ucwk_info.put("chaf_svc_kei_ucwk_gene_add_dtm", svcKeiUcwkGeneAddDtm);
							svc_kei_ucwk_info.put("svc_kei_ucwk_no", sakiSvcKeiUcwkNo);
							svc_kei_ucwk_info.put("saki_svc_kei_ucwk_no", "");
							svc_kei_ucwk_info.put("chbf_svc_kei_ucwk_gene_add_dtm", "");
							svc_kei_ucwk_info.put("chaf_svc_kei_ucwk_gene_add_dtm", sakiSvcKeiGeneAddDtm);
// OT-2013-000311 2013.03.26 T.TORIKAI MOD END
// IKK-2013-0001085 20130509 星野 ADD START
							if("02".equals(adchgDtlSbtCd)){
								svc_kei_ucwk_info.put("moto_svc_kei_ucwk_no", svcKeiUcwkNo);
								svc_kei_ucwk_info.put("moto_svc_kei_ucwk_gene_add_dtm", svcKeiUcwkGeneAddDtm);
							}
// IKK-2013-0001085 20130509 星野 ADD END
						}else{
							svc_kei_ucwk_info.put("svc_kei_ucwk_no", "");
							svc_kei_ucwk_info.put("saki_svc_kei_ucwk_no", svcKeiUcwkNo);
							svc_kei_ucwk_info.put("chbf_svc_kei_ucwk_gene_add_dtm", "");
							svc_kei_ucwk_info.put("chaf_svc_kei_ucwk_gene_add_dtm", svcKeiUcwkGeneAddDtm);
						}
					} else  if (ODR_EXEC_DIV_DSL_FIN.equals(odrExecDiv)) {
						svc_kei_ucwk_info.put("svc_kei_ucwk_no", svcKeiUcwkNo);
						svc_kei_ucwk_info.put("saki_svc_kei_ucwk_no", "");
						svc_kei_ucwk_info.put("chbf_svc_kei_ucwk_gene_add_dtm", svcKeiUcwkGeneAddDtm);
						svc_kei_ucwk_info.put("chaf_svc_kei_ucwk_gene_add_dtm", "");
					} else {
						svc_kei_ucwk_info.put("svc_kei_ucwk_no", "");
						svc_kei_ucwk_info.put("saki_svc_kei_ucwk_no", "");
						svc_kei_ucwk_info.put("chbf_svc_kei_ucwk_gene_add_dtm", "");
						svc_kei_ucwk_info.put("chaf_svc_kei_ucwk_gene_add_dtm", "");
					}

					//-------------------------------------
					// 機器提供サービス契約情報設定
					//-------------------------------------
					HashMap<String, Object> kktsvkei_info = null;
					kktsvkei_info = new HashMap<String, Object>();
					if (ODR_EXEC_DIV_NEW_FIN.equals(odrExecDiv)) {
						kktsvkei_info.put("chbf_kktsvkei_no", "");
						kktsvkei_info.put("chbf_kktsvkei_gene_add_dtm", "");
						kktsvkei_info.put("chaf_kktsvkei_no", kktkSvcKeiNo);
						kktsvkei_info.put("chaf_kktsvkei_gene_add_dtm", kktkSvcKeiGeneAddDtm);
					} else  if (ODR_EXEC_DIV_DSL_FIN.equals(odrExecDiv)) {
						kktsvkei_info.put("chbf_kktsvkei_no", kktkSvcKeiNo);
						kktsvkei_info.put("chbf_kktsvkei_gene_add_dtm", kktkSvcKeiGeneAddDtm);
						kktsvkei_info.put("chaf_kktsvkei_no", "");
						kktsvkei_info.put("chaf_kktsvkei_gene_add_dtm", "");
					} else {
						kktsvkei_info.put("chbf_kktsvkei_no", "");
						kktsvkei_info.put("chbf_kktsvkei_gene_add_dtm", "");
						kktsvkei_info.put("chaf_kktsvkei_no", "");
						kktsvkei_info.put("chaf_kktsvkei_gene_add_dtm", "");
					}

					//-------------------------------------
					// オプションサービス契約情報設定
					//-------------------------------------
					HashMap<String, Object> opsvkei_info = null;
					opsvkei_info = new HashMap<String, Object>();
					if ("04".equals(adchgDtlSbtCd)) {
// OM-2018-0000517 2018/07/20 ADD START
						//--------------------------------------
						// 住変中に引継済オプションの解約オーダ発行させない 設定処理
						//--------------------------------------
						if (!isNullBlank(chbfSkbtNo) && isOpHktgiDlTrgt(chbfSkbtNo))
						{
							opsvkei_info.put("chbf_opsvkei_no", "");
							opsvkei_info.put("chbf_opsvkei_gene_add_dtm", "");
							opsvkei_info.put("chaf_opsvkei_no", "");
							opsvkei_info.put("chaf_opsvkei_gene_add_dtm", "");
							opsvkei_info.put("chbf_sbopsvkei_no", "");
							opsvkei_info.put("chbf_sbopsvkei_gene_add_dtm", "");
							opsvkei_info.put("chaf_sbopsvkei_no", "");
							opsvkei_info.put("chaf_sbopsvkei_gene_add_dtm", "");
						} else
						{
//OM-2018-0000517 2018/07/20 ADD END
							opsvkei_info.put("chbf_opsvkei_no", chbfSkbtNo);
							opsvkei_info.put("chbf_opsvkei_gene_add_dtm", getOpSvcKeiGeneDtm(chbfSkbtNo));
							opsvkei_info.put("chaf_opsvkei_no", chafSkbtNo);
							opsvkei_info.put("chaf_opsvkei_gene_add_dtm", getOpSvcKeiGeneDtm(chafSkbtNo));
							opsvkei_info.put("chbf_sbopsvkei_no", "");
							opsvkei_info.put("chbf_sbopsvkei_gene_add_dtm", "");
							opsvkei_info.put("chaf_sbopsvkei_no", "");
							opsvkei_info.put("chaf_sbopsvkei_gene_add_dtm", "");
// OM-2018-0000517 2018/07/20 ADD START
						}
// OM-2018-0000517 2018/07/20 ADD END
					}

					
					sod_map.put("sod_kihon_info", sod_kihon_info);
					sod_map.put("svc_kei_info", svc_kei_info);
					sod_map.put("svc_kei_ucwk_info", svc_kei_ucwk_info);
					if ("03".equals(adchgDtlSbtCd)) {
						sod_map.put("kktsvkei_info", kktsvkei_info);
					}
					if ("04".equals(adchgDtlSbtCd) || "02".equals(adchgDtlSbtCd)) {
						sod_map.put("opsvkei_info", opsvkei_info);
					}
					sod_map.put("chbf_svc_kei_kaisen_ucwk_no", inDslSvkeiKisuwNo);
					sod_map.put("chaf_svc_kei_kaisen_ucwk_no", inNewSvkeiKisuwNo);
					sod_map.put("chbf_svc_kei_kaisen_ucwk_no_gene_add_dtm", inDslSvkeiKisuwGene);
					sod_map.put("chaf_svc_kei_kaisen_ucwk_no_gene_add_dtm", inNewSvkeiKisuwGene);
				}

				if ("03".equals(adchgDtlSbtCd)) {
					kiki_trgt_data_list.add(sod_map);
				}
				if ("04".equals(adchgDtlSbtCd) || "02".equals(adchgDtlSbtCd)) {
					opt_trgt_data_list.add(sod_map);
				}
				
				sod_map.put("adchg_no", inAdchgNo);
				
				// ANK-4494-00-00 ADD START
// ANK-4494-00-00 Step2品質強化対応No.9 20241126 星野 MOD START
//				if(SVC_CD_TEL.equals(svcCd) && !sakiSvcKeiUcwkNo.isEmpty()){
				if( SVC_CD_TEL.equals(svcCd) && !sakiSvcKeiUcwkNo.isEmpty()
					// サービス契約異動種別コードが「3:追加」の場合、ポートアウト終了/法人契約終了のENUM消去は番ポ工事完了時に発行されるため、ここでは発行不要
					&& !"3".equals(inSvcKeiIdoSbtCd)
					// 同番引継の場合はポートアウト/法人契約は既に終わっているはずなのでENUM消去は発行不要
// ANK-4494-00-00 障害管理台帳No.112対応 20241212 星野 MOD START
//					&& !sakiSvcKeiUcwkNo.equals(sakiSvcKeiUcwkNo)
					&& !sakiSvcKeiUcwkNo.equals(svcKeiUcwkNo)
// ANK-4494-00-00 障害管理台帳No.112対応 20241212 星野 MOD END
				){
// ANK-4494-00-00 Step2品質強化対応No.9 20241126 星野 MOD END
					// 電話サービスの場合
					// サービス契約内訳番号から電話番号を取得する
					executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_013(new String[]{sakiSvcKeiUcwkNo});
					JBSbatCommonDBInterface svkeiuwEohTelInfo = db_KK_T_SVKEIUW_EOH_TEL.selectNext();
					String telno = nullToBlank(svkeiuwEohTelInfo.getString(JBSbatKK_T_SVKEIUW_EOH_TEL.TELNO));
					
					// ＥＮＵＭ消去ＳＯＤ発行ＣＣのパラメータをセットする
					setEnumSodTarget(telno, svcKeiNo, sakiSvcKeiUcwkNo);
				}
				// ANK-4494-00-00 ADD END

				index++;
			}

			if (0 < index) {

				hakko_trgr_trgt_data_map.put("kiki_trgt_data_list", kiki_trgt_data_list);
				hakko_trgr_trgt_data_map.put("opt_trgt_data_list", opt_trgt_data_list);
				if ("1".equals(inNewFinFlg) && "3".equals(tempOdrExecDiv)) {
					hakko_trgr_trgt_data_map.put("odr_exec_div", tempOdrExecDiv);
				} else if ("1".equals(inDslFinFlg) && "2".equals(tempOdrExecDiv)) {
					hakko_trgr_trgt_data_map.put("odr_exec_div", tempOdrExecDiv);
				}

				hakko_trgr_trgt_list.add(hakko_trgr_trgt_data_map);
			}

			if (!(hakko_trgr_trgt_list == null || hakko_trgr_trgt_list.isEmpty())) {

				// 対象データマップ
				HashMap<String, Object> trgt_data_map = new HashMap<String, Object>();
				trgt_data_map.put("hakko_trgr_trgt_list", hakko_trgr_trgt_list);
				trgt_data_map.put("use_svc_chg_div", inSvcKeiIdoSbtCd);
				
				if (!isNullBlank(inDslSvcKeiNo))
				{
					// 申込明細番号を設定
					trgt_data_map.put("adchg_mskm_dtl_no", getCrcChgMskmDtlNo(inMskmNo));
				}


				// オーダ発行対象サービス契約リスト
				if (odr_hakko_svc_kei_list == null) {
					odr_hakko_svc_kei_list = new ArrayList();
				}
				odr_hakko_svc_kei_list.add(trgt_data_map);
			}

			outputInItem.addOutMapList(inMap);

			//--------------------------------------------
			// オプション解約呼出設定（eメールだけ）
			//--------------------------------------------
			if (!emailOpSvcKeiNoList.isEmpty())
			{
				setKKSV056501CC_KKSV056505CC(inAdchgNo, emailOpSvcKeiNoList);
			}
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
			//--------------------------------------------
			// オプション解約呼出設定（解約・新規で固定IPオプションが含まれる場合はマルチセッションオプションを解約する）
			//--------------------------------------------
			if (existFixIpOp)
			{
				setKKSV056501CC(inAdchgNo);
			}
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END
			//--------------------------------------------
			// オプション引継呼出設定
			//--------------------------------------------
			if (!opSvcKeiList.isEmpty())
			{
				setKKSV056502CC(inAdchgNo, opSvcKeiList);
			}
			//ANK-3149-04-00 ADD START
			//移転先のサービス契約番号が存在する場合
			if (!(inNewSvcKeiNo == null || "".equals(inNewSvcKeiNo.trim()))) {
				if (isRlsAdd(adchgNo, inNewSvcKeiNo)) {
					String[] param = {inNewSvcKeiNo, opeDate, inAdchgNo, ADCHG_DTL_SBT_CD_NET_WRIB};
					this.executeKK_T_ADCHG_DTL_KK_SELECT_049(param);
					JBSbatCommonDBInterface netPackMap = db_KK_T_ADCHG_DTL.selectNext();
					//存在チェック
					if(null != netPackMap)
					{
						String adchgDtlSbtCd = nullToBlank(netPackMap.getString(JBSbatKK_T_ADCHG_DTL.ADCHG_DTL_SBT_CD));
						String chbfSkbtNo = nullToBlank(netPackMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO));
						String chafSkbtNo = nullToBlank(netPackMap.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO));
						String svcCd = nullToBlank(netPackMap.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
						// 割引引継 設定処理
						if (ADCHG_DTL_SBT_CD_NET_WRIB.equals(adchgDtlSbtCd)
								&& !isNullBlank(chbfSkbtNo)
								&& !isNullBlank(chafSkbtNo)
								&& !isNullBlank(inNewSvcKeiNo)
								&& SVC_CD_NET.equals(svcCd))
						{
							HashMap<String, Object> wribSvcKeiMap = new HashMap<String, Object>();
							wribSvcKeiMap.put("wrib_svc_kei_no", chafSkbtNo);
							wribSvcKeiSecurityOpList.add(wribSvcKeiMap);
						}
					}		
					if (!opSvcKeiSecurityOpList.isEmpty() || !wribSvcKeiSecurityOpList.isEmpty())
					{
						isSecPackOpeMapCC(inAdchgNo, opSvcKeiSecurityOpList, wribSvcKeiSecurityOpList, inMskmNo);
					}
				}
			}
			//ANK-3149-04-00 ADD END
			
			//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
			if (!isNullBlank(inDslSvcKeiNo))
			{
				//-----------------------------------------------------------------
				// 引継ぎ対象のオプション契約が解約済みの場合にマイナーアラームを発行する
				//-----------------------------------------------------------------
				executeKK_T_SVC_KEI_KK_SELECT_012(new String[]{inDslSvcKeiNo, opeDate});
				JBSbatCommonDBInterface svcKei = db_KK_T_SVC_KEI.selectNext();
				String svcCd = nullToBlank(svcKei.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
				String svcKeiNo = nullToBlank(svcKei.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
				
				//サービスコードが電話の場合
				//サービスコードが０２：電話の場合　isTelRlsAdd（住所変更番号・サービス契約番号）
				if(SVC_CD_TEL.equals(svcCd)){
					isTelRlsAdd(inAdchgNo,svcKeiNo);
				}
			}
			//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
			
			return outputInItem;
		}

		return outputInItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

// OM-2013-0002465対応 20130928 星野 ADD START
	/**
	 * 番ポ工事ワーニングチェック
	 */
	private void warningBmp(HashMap<String, Object> outputMap) {
		// ＳＯＤ発行ＣＣ用マップ
		HashMap mapKKSV056504CC = (HashMap) outputMap.get("KKSV056504CC");
		if(mapKKSV056504CC==null){
			return;
		}
		
		ArrayList<HashMap<String, Object>> odrHakkoSvcKeiList = (ArrayList<HashMap<String, Object>>) mapKKSV056504CC.get("odr_hakko_svc_kei_list");
		if(odrHakkoSvcKeiList==null){
			return;
		}
		
		for(HashMap<String, Object> trgt_data_map : odrHakkoSvcKeiList){
			// 発行契機対象リスト
			ArrayList<HashMap<String, Object>> hakko_trgr_trgt_list = (ArrayList<HashMap<String, Object>>) trgt_data_map.get("hakko_trgr_trgt_list");
			if(hakko_trgr_trgt_list==null){
				continue;
			}
			
			for(HashMap<String, Object> hakko_trgr_trgt_data_map : hakko_trgr_trgt_list){
				// 対象データリスト（機器）
				ArrayList<HashMap<String, Object>> kiki_trgt_data_list = (ArrayList<HashMap<String, Object>>) hakko_trgr_trgt_data_map.get("kiki_trgt_data_list");
				warningBmp(kiki_trgt_data_list);
				
				// 対象データリスト（オプション）
				ArrayList<HashMap<String, Object>> opt_trgt_data_list = (ArrayList<HashMap<String, Object>>) hakko_trgr_trgt_data_map.get("opt_trgt_data_list");
				warningBmp(opt_trgt_data_list);
			}
		}
	}

	/**
	 * 番ポ工事ワーニングチェック
	 */
	private void warningBmp(ArrayList<HashMap<String, Object>> trgt_data_list) {
		if(trgt_data_list!=null){
			for(HashMap<String, Object> sod_map : trgt_data_list){
				if("1".equals( sod_map.get("bmp_koji_warn_flg") ) ){
					// 番ポ工事情報
					HashMap<String, Object> eETU0011B010Hash = (HashMap<String, Object>) sod_map.get("ETU0011B010");
					// SOD基本情報
					HashMap<String, Object> sod_kihon_info = (HashMap<String, Object>)sod_map.get("sod_kihon_info");
					// サービス契約情報
					HashMap<String, Object> svc_kei_info = (HashMap<String, Object>)sod_map.get("svc_kei_info");
					
					String msg = "ＳＯＤ発行は完了しましたが、番ポ工事の状態を確認してください。";
					if(sod_kihon_info!=null){
						msg += "SYSID:" + sod_kihon_info.get("sysid") + " ";
					}
					if(svc_kei_info!=null){
						msg += "サービス契約番号:" + svc_kei_info.get("svc_kei_no") + " ";
					}
					if(eETU0011B010Hash!=null){
						msg += "番ポ工事番号:" + eETU0011B010Hash.get("bmp_koji_no") + " ";
						msg += "電話番号:" + eETU0011B010Hash.get("ntt_kei_tel_kaisen_no") + " ";
						msg += "番ポ工事ステータス:" + eETU0011B010Hash.get("bmp_koji_stat_nm") + " ";
					}
					super.logPrint.printBusinessErrorLog("EKKB0310JW", new String[]{"番ポ工事","ステータス", msg});
				}
			}
		}
	}
// OM-2013-0002465対応 20130928 星野 ADD END

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_ADCHG_DTL.close();
		db_KK_T_IDO_RSV.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVKEI_EXC_CTRL.close();
		db_KK_T_OP_SVC_KEI.close();
		db_KK_T_OPSVKEI_ISP.close();
		db_KK_T_SBOP_SVC_KEI.close();
		db_KK_T_SBOPSVKEI_ISP.close();
		db_KK_T_MSKM_DTL.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		db_KK_T_ADCHG_DTL2.close();
		//ANK 3149-04-00 ADD START
		db_KK_T_WRIB_SVC_KEI.close();
		db_KK_T_WRIB_SVC_KEI_74.close();
		db_KK_T_OP_SVC_KEI_133.close();
		//ANK 3149-04-00 ADD END
		// ANK-4494-00-00 ADD START
		db_KK_T_SVKEIUW_EOH_TEL.close();
		// ANK-4494-00-00 ADD END
		//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
		db_KK_T_WRISVC_TG_KEI.close();
		db_KK_T_SVKEIUW.close();
		//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_014)で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_014(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());
		paramList.setValue(param[14].toString());
		paramList.setValue(param[15].toString());
		paramList.setValue(param[16].toString());
		paramList.setValue(param[17].toString());
		paramList.setValue(param[18].toString());
		paramList.setValue(param[19].toString());
		paramList.setValue(param[20].toString());
		paramList.setValue(param[21].toString());
		paramList.setValue(param[22].toString());
		paramList.setValue(param[23].toString());
		paramList.setValue(param[24].toString());
		paramList.setValue(param[25].toString());
		paramList.setValue(param[26].toString());
		paramList.setValue(param[27].toString());
		paramList.setValue(param[28].toString());
		paramList.setValue(param[29].toString());
		paramList.setValue(param[30].toString());
		paramList.setValue(param[31].toString());
		paramList.setValue(param[32].toString());
		paramList.setValue(param[33].toString());
		paramList.setValue(param[34].toString());
		paramList.setValue(param[35].toString());
		paramList.setValue(param[36].toString());
		paramList.setValue(param[37].toString());
		paramList.setValue(param[38].toString());
		paramList.setValue(param[39].toString());
		paramList.setValue(param[40].toString());
		paramList.setValue(param[41].toString());
		paramList.setValue(param[42].toString());
		paramList.setValue(param[43].toString());
		paramList.setValue(param[44].toString());
		paramList.setValue(param[45].toString());
		paramList.setValue(param[46].toString());
		paramList.setValue(param[47].toString());
		paramList.setValue(param[48].toString());
		paramList.setValue(param[49].toString());
		paramList.setValue(param[50].toString());
		paramList.setValue(param[51].toString());
		paramList.setValue(param[52].toString());
		paramList.setValue(param[53].toString());
		paramList.setValue(param[54].toString());
		paramList.setValue(param[55].toString());
		paramList.setValue(param[56].toString());
		paramList.setValue(param[57].toString());
		paramList.setValue(param[58].toString());
		paramList.setValue(param[59].toString());
		paramList.setValue(param[60].toString());
		paramList.setValue(param[61].toString());
		paramList.setValue(param[62].toString());
		paramList.setValue(param[63].toString());
		paramList.setValue(param[64].toString());
		paramList.setValue(param[65].toString());
		paramList.setValue(param[66].toString());
		paramList.setValue(param[67].toString());
		paramList.setValue(param[68].toString());
		paramList.setValue(param[69].toString());
		paramList.setValue(param[70].toString());
		paramList.setValue(param[71].toString());
		paramList.setValue(param[72].toString());
		paramList.setValue(param[73].toString());
		paramList.setValue(param[74].toString());
		paramList.setValue(param[75].toString());
		paramList.setValue(param[76].toString());
		paramList.setValue(param[77].toString());
		paramList.setValue(param[78].toString());
		paramList.setValue(param[79].toString());
		paramList.setValue(param[80].toString());
		paramList.setValue(param[81].toString());
		paramList.setValue(param[82].toString());
		paramList.setValue(param[83].toString());
		paramList.setValue(param[84].toString());
		paramList.setValue(param[85].toString());
		paramList.setValue(param[86].toString());
		paramList.setValue(param[87].toString());
		paramList.setValue(param[88].toString());
		paramList.setValue(param[89].toString());
		paramList.setValue(param[90].toString());
		paramList.setValue(param[91].toString());
		paramList.setValue(param[92].toString());
		paramList.setValue(param[93].toString());
		paramList.setValue(param[94].toString());
		paramList.setValue(param[95].toString());
		paramList.setValue(param[96].toString());
		paramList.setValue(param[97].toString());
		paramList.setValue(param[98].toString());
		paramList.setValue(param[99].toString());
		paramList.setValue(param[100].toString());
		paramList.setValue(param[101].toString());
// OT-2013-000311 2013.03.26 T.TORIKAI MOD START
		paramList.setValue(param[102].toString());
// OT-2013-000311 2013.03.26 T.TORIKAI MOD END
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD START
		paramList.setValue(param[103].toString());
		paramList.setValue(param[104].toString());
		paramList.setValue(param[105].toString());
		paramList.setValue(param[106].toString());
		paramList.setValue(param[107].toString());
		paramList.setValue(param[108].toString());
		paramList.setValue(param[109].toString());
		paramList.setValue(param[110].toString());
		paramList.setValue(param[111].toString());
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD END
// IT2-2014-0000180対応 20140403 星野 ADD START
		paramList.setValue(param[112].toString());
// IT2-2014-0000180対応 20140403 星野 ADD END
		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_014);
	}

	/**
	 * SQLKEY(KK_SELECT_028)で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_IDO_RSV_KK_SELECT_028(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());

		// DBアクセスを実行します
		db_KK_T_IDO_RSV.selectBySqlDefine(paramList, KK_T_IDO_RSV_KK_SELECT_028);
	}

	/**
	 * SQLKEY(KK_SELECT_032)で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_SVC_KEI_KK_SELECT_032(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_032);
	}
	
	/**
	 * SQLKEY(KK_SELECT_222)で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_SVC_KEI_KK_SELECT_222(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_222);
	}

	/**
	 * 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_228)で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_SVC_KEI_KK_SELECT_228(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_228);
	}

	/**
	 * 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_DTL2.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_003);
	}

	/**
	 * SQLKEY(KK_SELECT_056)で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_OP_SVC_KEI_KK_SELECT_056(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_OP_SVC_KEI.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_056);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	OP_SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_OPSVKEI_ISP_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("OP_SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_OPSVKEI_ISP.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(KK_SELECT_013)で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_SBOP_SVC_KEI_KK_SELECT_013(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SBOP_SVC_KEI.selectBySqlDefine(paramList, KK_T_SBOP_SVC_KEI_KK_SELECT_013);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	OP_SVC_KEI_NO
	 *		 	SBOP_SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SBOPSVKEI_ISP_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("OP_SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("SBOP_SVC_KEI_NO", whereParam[1]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[2]);

		// DBアクセスを実行します
		return db_KK_T_SBOPSVKEI_ISP.selectByPrimaryKeys(whereMap);
	}


	/**
	 * SQLKEY(KK_SELECT_082)で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_OP_SVC_KEI_KK_SELECT_082(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_OP_SVC_KEI.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_082);
	}

	/**
	 * SQLKEY(KK_SELECT_025)で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_MSKM_DTL_KK_SELECT_025(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_MSKM_DTL.selectBySqlDefine(paramList, KK_T_MSKM_DTL_KK_SELECT_025);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	private String nullToBlank(String value) {
		
		if (value == null) {
			return "";
		}

		return value;
	}
	
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
	/**
	 * SQLKEY(KK_SELECT_079)で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_SVC_KEI_UCWK_KK_SELECT_079(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW.selectBySqlDefine(paramList, KK_T_SVC_KEI_UCWK_KK_SELECT_079);
	}
	
	/**
	 * SQLKEY(KK_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	割引サービス契約番号
	 * </pre>
	 * <p>
	 * @param param サービス契約番号
	 * @param param バッチ運用日
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_012(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_012);
	}
	

	/**
	 * SQLKEY(KK_SELECT_067)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	割引サービス契約番号
	 * </pre>
	 * <p>
	 * @param param サービス契約内訳番号
	 * @param param バッチ運用日
	 * @param param バッチ運用日
	 * @param param バッチ運用日
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRISVC_TG_KEI_KK_SELECT_067(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_T_WRISVC_TG_KEI.selectBySqlDefine(paramList, KK_T_WRISVC_TG_KEI_KK_SELECT_067);
	}
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
	
	/**
	 * オプションの解約処理とキャンセル処理をオプションサービス契約ステータスによって振り分ける
	 * 
	 * @param inAdchgNo
	 * @param emailOpSvcKeiNoList
	 * @throws Exception
	 */
	private void setKKSV056501CC_KKSV056505CC(String inAdchgNo, ArrayList<HashMap<String, Object>> emailOpSvcKeiNoList) throws Exception
	{
		// オプションサービス契約ステータスが照査済ならキャンセル、それ以外なら解約を呼び出す
		String op_svc_kei_stat = (String)emailOpSvcKeiNoList.get(0).get("op_svc_kei_stat");
		if (JBSbatKKConst.SVC_KEI_STAT_SHOSA_ZM.equals(op_svc_kei_stat))
		{
			// オプションキャンセルＣＣ用設定
			setKKSV056505CC(inAdchgNo, emailOpSvcKeiNoList);
		}
		else
		{
			// オプション解約ＣＣ用設定
			setKKSV056501CC(inAdchgNo, emailOpSvcKeiNoList);
		}
	}
	
	
	/**
	 * オプション解約ＣＣ呼出に必要な情報を設定する
	 * 
	 * @param inAdchgNo
	 * @param emailOpSvcKeiNoList
	 * @return
	 * @throws Exception 
	 */
	private void setKKSV056501CC(String inAdchgNo, ArrayList<HashMap<String, Object>> emailOpSvcKeiNoList) throws Exception
	{
		HashMap<String, Object> kKSV056501CC = new HashMap<String, Object>();
		
		// 住所変更明細を検索
		JBSbatCommonDBInterface adchgDtlInfo = getAdChgDtlInfo(inAdchgNo);
		String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
		
		// サービス契約を検索
		JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(newSvcKeiNo);
		
		// 機能コード
		kKSV056501CC.put("func_code", "1");
		// ＳＹＳＩＤ
		kKSV056501CC.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
		// サービス契約番号
		kKSV056501CC.put( "svc_kei_no", newSvcKeiNo);
		// オプションサービス契約番号
		kKSV056501CC.put( "op_svc_kei_no", emailOpSvcKeiNoList.get(0).get("op_svc_kei_no"));
		// 異動区分
		kKSV056501CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
		// サービス終了年月日
		kKSV056501CC.put("svc_endymd", opeDate);
		// サービス課金終了年月日
		kKSV056501CC.put("svc_chrg_endymd", opeDate);
		// 進捗特記事項１
		kKSV056501CC.put("prg_tkjk_1", "Ｅメール情報解約");
		// エイジング
		String op_svc_kei_no = (String)emailOpSvcKeiNoList.get(0).get("op_svc_kei_no");
		String gene_add_dtm = (String)emailOpSvcKeiNoList.get(0).get("gene_add_dtm");
		kKSV056501CC.put("aging_info_list", makeAgingInfoList(op_svc_kei_no, gene_add_dtm));
		// 異動理由明細
		ArrayList<HashMap<String, Object>> idoRsnList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> idoRsnMap = new HashMap<String, Object>();
		idoRsnMap.put("ido_rsn_cd", "C2");
		idoRsnList.add(idoRsnMap);
		kKSV056501CC.put("EKK1091D010CBSMsg1List", idoRsnList);
		
		if (op_svc_kei_dsl_list == null)
		{
			op_svc_kei_dsl_list = new ArrayList<HashMap<String,Object>>();
		}
		op_svc_kei_dsl_list.add(kKSV056501CC);
		
		return;
	}
	
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD START
	/**
	 * オプション解約ＣＣ呼出に必要な情報を設定する<br>
	 * <br>
	 * 住変明細より転居元の解約可能なマルチセッションオプションの情報を取得し<br>
	 * オプション解約ＣＣへのパラメータを設定する
	 * 
	 * @param inAdchgNo
	 * @return
	 * @throws Exception 
	 */
	private void setKKSV056501CC(String inAdchgNo) throws Exception
	{
		// 検索条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opeDate);
		paramList.setValue(inAdchgNo);
		
		// 検索
		db_KK_T_ADCHG_DTL2.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_024);
		
		// マルチセッションは複数設定可能なため、取得全件を解約する
		while (true) {
			// 住所変更明細のオプションよりマルチセッションオプションの情報を取得
			JBSbatCommonDBInterface opInfo = db_KK_T_ADCHG_DTL2.selectNext();
			if (opInfo == null) {
				break;		// マルチセッションオプションは無いので処理なし
			}
			// KKSV056501CC用パラメータ
			HashMap<String, Object> kKSV056501CC = new HashMap<String, Object>();
			
			// 機能コード
			kKSV056501CC.put("func_code", "1");
			// ＳＹＳＩＤ
			kKSV056501CC.put("sysid", opInfo.getString(JBSbatKK_T_OP_SVC_KEI.SYSID));
			// サービス契約番号
			kKSV056501CC.put( "svc_kei_no", opInfo.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO));
			// オプションサービス契約番号
			kKSV056501CC.put( "op_svc_kei_no", opInfo.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_NO));
			// 異動区分
			kKSV056501CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
			// サービス終了年月日
			kKSV056501CC.put("svc_endymd", opeDate);
			// サービス課金終了年月日
			kKSV056501CC.put("svc_chrg_endymd", opeDate);
			// 進捗特記事項１
			kKSV056501CC.put("prg_tkjk_1", "マルチセッション情報解約");
			// エイジング
			kKSV056501CC.put("aging_info_list", null);
			// 異動理由明細
			ArrayList<HashMap<String, Object>> idoRsnList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> idoRsnMap = new HashMap<String, Object>();
			idoRsnMap.put("ido_rsn_cd", "C2");	// 異動理由コード：C2 オプション引継ぎ受付
			idoRsnList.add(idoRsnMap);
			kKSV056501CC.put("EKK1091D010CBSMsg1List", idoRsnList);
			
			if (op_svc_kei_dsl_list == null) {
				op_svc_kei_dsl_list = new ArrayList<HashMap<String,Object>>();
			}
			op_svc_kei_dsl_list.add(kKSV056501CC);
		}
		
		return;
	}
// IT1-2013-0001037 2013.04.23 T.TORIKAI ADD END
	
	/**
	 * オプションキャンセルＣＣ呼出に必要な情報を設定する
	 * 
	 * @param inAdchgNo
	 * @param emailOpSvcKeiNoList
	 * @return
	 * @throws Exception 
	 */
	private void setKKSV056505CC(String inAdchgNo, ArrayList<HashMap<String, Object>> emailOpSvcKeiNoList) throws Exception
	{
		HashMap<String, Object> kKSV056505CC = new HashMap<String, Object>();
		
		// 住所変更明細を検索
		JBSbatCommonDBInterface adchgDtlInfo = getAdChgDtlInfo(inAdchgNo);
		String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
		
		// サービス契約を検索
		JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(newSvcKeiNo);
		
		// 機能コード
		kKSV056505CC.put("func_code", "1");
		// ＳＹＳＩＤ
		kKSV056505CC.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
		// サービス契約番号
		kKSV056505CC.put( "svc_kei_no", newSvcKeiNo);
		// オプションサービス契約番号
		kKSV056505CC.put( "op_svc_kei_no", emailOpSvcKeiNoList.get(0).get("op_svc_kei_no"));
		// 最終更新年月日時分秒
		kKSV056505CC.put( "upd_dtm_bf", getSvkeiLastUpdDtm(newSvcKeiNo));
		// 異動区分
		kKSV056505CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
		// 進捗特記事項１
		kKSV056505CC.put("prg_tkjk_1", "Ｅメール情報キャンセル");
		// エイジング
		String op_svc_kei_no = (String)emailOpSvcKeiNoList.get(0).get("op_svc_kei_no");
		String gene_add_dtm = (String)emailOpSvcKeiNoList.get(0).get("gene_add_dtm");
		kKSV056505CC.put("aging_info_list", makeAgingInfoList(op_svc_kei_no, gene_add_dtm));
		// 異動理由明細
		ArrayList<HashMap<String, Object>> idoRsnList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> idoRsnMap = new HashMap<String, Object>();
		idoRsnMap.put("ido_rsn_cd", "C2");
		idoRsnList.add(idoRsnMap);
		kKSV056505CC.put("EKK1091D010CBSMsg1List", idoRsnList);
		
		if (op_svc_kei_cnsl_list == null)
		{
			op_svc_kei_cnsl_list = new ArrayList<HashMap<String,Object>>();
		}
		op_svc_kei_cnsl_list.add(kKSV056505CC);
		
		return;
//		mskm_no
//		mskm_dtl_no
//		
	}
	
	/**
	 * エイジング設定
	 * 
	 * @param emailOpSvcKeiNoList
	 * @return
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> makeAgingInfoList(String op_svc_kei_no, String gene_add_dtm) throws Exception
	{
		ArrayList<HashMap<String, Object>> agingInfoList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> agingInfoMap = null;
		
		//------------------------------------
		// オプションサービス契約<ISP>検索
		//------------------------------------
		JBSbatCommonDBInterface opSvcKeiISPInfo = getOpSvcKeiISPInfo(op_svc_kei_no, gene_add_dtm);
		
		// メールアドレス
		String mlad = opSvcKeiISPInfo.getString(JBSbatKK_T_OPSVKEI_ISP.MLAD);
		if (!isNullBlank(mlad))
		{
			agingInfoMap = new HashMap<String, Object>();
			agingInfoMap.put("aging_sbt_cd", "009");
			agingInfoMap.put("aging_tg_value", mlad);
			agingInfoList.add(agingInfoMap);
		}
		// POPID
		String popId = opSvcKeiISPInfo.getString(JBSbatKK_T_OPSVKEI_ISP.POP_ID);
		if (!isNullBlank(mlad))
		{
			agingInfoMap = new HashMap<String, Object>();
			agingInfoMap.put("aging_sbt_cd", "007");
			agingInfoMap.put("aging_tg_value", popId);
			agingInfoList.add(agingInfoMap);
		}
		
		//------------------------------------
		// サブオプションサービス契約<ISP>検索
		//------------------------------------
		executeKK_T_SBOP_SVC_KEI_KK_SELECT_013(new String[]{op_svc_kei_no, opeDate});
		JBSbatCommonDBInterface adchgDtlInfo = null;
		while ((adchgDtlInfo = db_KK_T_SBOP_SVC_KEI.selectNext()) != null)
		{
			String[] param = new String[]{
					op_svc_kei_no,
					adchgDtlInfo.getString(JBSbatKK_T_SBOP_SVC_KEI.SBOP_SVC_KEI_NO),
					adchgDtlInfo.getString(JBSbatKK_T_SBOP_SVC_KEI.GENE_ADD_DTM)};
			JBSbatCommonDBInterface sbopSvcKeiISPInfo = executeKK_T_SBOPSVKEI_ISP_PKSELECT(param);
			
			// メールエイリアス
			String alias = sbopSvcKeiISPInfo.getString(JBSbatKK_T_SBOPSVKEI_ISP.ALIAS);
			if (!isNullBlank(alias))
			{
				agingInfoMap = new HashMap<String, Object>();
				agingInfoMap.put("aging_sbt_cd", "008");
// IT3-2013-0000919 2013.05.23 Y.KANATA ADD START
				if (!isNullBlank(mlad)) {
					int idx = mlad.indexOf("@");
					if (idx != -1) {
						alias += mlad.substring(idx);
					}
				}
// IT3-2013-0000919 2013.05.23 Y.KANATA ADD END
				agingInfoMap.put("aging_tg_value", alias);
				agingInfoList.add(agingInfoMap);
			}
		}
		
		return agingInfoList;
	}
	
	/**
	 * オプション引継ＣＣ呼出に必要な情報を設定する
	 * 
	 * @param inAdchgNo
	 * @param opSvcKeiList
	 * @return
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void setKKSV056502CC(String inAdchgNo, ArrayList<HashMap<String, Object>> opSvcKeiList) throws Exception
	{
		HashMap<String, Object> kKSV056502CC = new HashMap<String, Object>();
		
		// 住所変更明細を検索
		JBSbatCommonDBInterface adchgDtlInfo = getAdChgDtlInfo(inAdchgNo);
		String dslSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
		String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
		
		// サービス契約を検索
		JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(newSvcKeiNo);
		
		// 機能コード
		kKSV056502CC.put("func_code", "1");
		// 異動区分
		kKSV056502CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
		// ＳＹＳＩＤ
		kKSV056502CC.put("hikimoto_sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
		kKSV056502CC.put("hikisaki_sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
		// サービス契約番号
		kKSV056502CC.put( "hikimoto_svc_kei_no", dslSvcKeiNo);
		kKSV056502CC.put( "hikisaki_svc_kei_no", newSvcKeiNo);
		// サービス契約ステータス
// IT2-2013-0000224 2013.03.01 T.TORIKAI MOD START
// サービス契約ステータスは「締結済」固定ではなく、運用日のステータス値を設定する
//		kKSV056502CC.put("hikisaki_svc_kei_stat_cd", JBSbatKKConst.SVC_KEI_STAT_CNC_ZM);
		kKSV056502CC.put("hikisaki_svc_kei_stat_cd", getSvcKeiStat(newSvcKeiNo, opeDate));
// IT2-2013-0000224 2013.03.01 T.TORIKAI MOD END
// OM-2013-0004884対応 20131206 星野 MOD START
//		// 適用開始年月日
//		kKSV056502CC.put("hikisaki_aply_ymd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.RSV_APLY_YMD));
		// 適用開始年月日（運用日を設定）
		kKSV056502CC.put("hikisaki_aply_ymd", this.opeDate);
// OM-2013-0004884対応 20131206 星野 MOD END
		//申込明細番号
		kKSV056502CC.put("mskm_dtl_no", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
		// 最終更新年月日時分秒
		kKSV056502CC.put("last_upd_dtm", getSvkeiLastUpdDtm(dslSvcKeiNo));
		kKSV056502CC.put("hikisaki_last_upd_dtm", getSvkeiLastUpdDtm(newSvcKeiNo));
		
		// 異動理由明細
		ArrayList idoRsnList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> idoRsnMap = new HashMap<String, Object>();
		idoRsnMap.put("ido_rsn_cd", "C2");
		idoRsnList.add(idoRsnMap);
		kKSV056502CC.put("ido_rsn_cdList", idoRsnList);
		
		// オプションサービス契約リスト
		kKSV056502CC.put("opSvcKeiList", opSvcKeiList);
		
		if (op_svc_hktgi_upd_list == null)
		{
			op_svc_hktgi_upd_list = new ArrayList<HashMap<String,Object>>();
		}
		op_svc_hktgi_upd_list.add(kKSV056502CC);
		
		return;
	}
	
	/**
	 * オプションサービス契約番号をマップに設定しリストに追加する
	 * 
	 * @param opSvcKeiList
	 * @param opSvcKeiNo
	 * @param emailOpSvcKeiNoList
	 * @param inNewSvcKeiNo
	 * @return
	 * @throws Exception 
	 */
	private void setHikOpSvcKeiList(ArrayList<HashMap<String, Object>> opSvcKeiList, 
			String opSvcKeiNo, 
			ArrayList<HashMap<String, Object>> emailOpSvcKeiNoList,
			String inNewSvcKeiNo,
			// ANK-3149-04-00 MOD START
			//String adchgNo) throws Exception
			String adchgNo, ArrayList<HashMap<String, Object>> opSvcKeiSecurityOpList) throws Exception
			// ANK-3149-04-00 MOD END
	{
		// 解約新規のみ引継ぎ対象
// OM-2014-0001721対応 20140428 星野 ADD START
//		if (isRlsAdd(adchgNo))
		if (isRlsAdd(adchgNo, inNewSvcKeiNo))
// OM-2014-0001721対応 20140428 星野 ADD END
		{
			// 設定済みのオプションなら設定しない
			for (HashMap<String, Object> opSvcKei : opSvcKeiList)
			{
				if (opSvcKei.get("op_svc_kei_no").equals(opSvcKeiNo))
				{
					return;
				}
			}
			//ANK-3149-04-00 ADD START
			String workOpSvcCd = getOpSvcCd(opSvcKeiNo);
			//インターネットサギウォール・ノートンファミリープレミア・マカフィーマルチアクセス・リモートサポートプラス
			//のオプションなら設定しない(セキュリテイーパック操作CCで登録を行うため)
			if (JKKStrConst.OP_SVC_CD_MCAFEE_MULTI_ACCSS.equals(workOpSvcCd) || JKKStrConst.OP_SVC_CD_INETSGWL.equals(workOpSvcCd) || JKKStrConst.OP_SVC_CD_NTFMLPRM.equals(workOpSvcCd)) {
				HashMap<String, Object> opSvcKeiMap = new HashMap<String, Object>();
				opSvcKeiMap.put("op_svc_kei_no", opSvcKeiNo);
				opSvcKeiMap.put("op_svc_cd", workOpSvcCd);
				opSvcKeiSecurityOpList.add(opSvcKeiMap);
				return;
			//リモートサポートは引継対象外
			} else if (JKKStrConst.OP_SVC_CD_RMTSPRT_PLUS.equals(workOpSvcCd)) {
				return;
			}
			//ANK-3149-04-00 ADD END
			// オプションサービス契約番号のリストを作成
			HashMap<String, Object> opSvcKeiMap = new HashMap<String, Object>();
			opSvcKeiMap.put("op_svc_kei_no", opSvcKeiNo);
			opSvcKeiList.add(opSvcKeiMap);
			
// OM-2013-0003924対応 20131107 星野 ADD START
			// メール以外の引継ぎでは以下の処理は不要
			if( !"B001".equals( getOpSvcCd(opSvcKeiNo) ) ){
				return;
			}
// OM-2013-0003924対応 20131107 星野 ADD END
			// 設定済みのオプションなら設定しない
			for (HashMap<String, Object> emailOpSvcKeiMap : emailOpSvcKeiNoList)
			{
				if (emailOpSvcKeiMap.get("svc_kei_no").equals(inNewSvcKeiNo))
				{
					return;
				}
			}
			
// OM-2015-0001799 2015/8/11 DEL START
//			// eメールのオプションサービス契約番号のリストを作成（1件だけ）
//			JBSbatCommonDBInterface opSvcKeiInfo = getOpSvcKeiInfo(inNewSvcKeiNo);
//			if (opSvcKeiInfo != null)
//			{
//				String opSvcKeiStat = opSvcKeiInfo.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_STAT);
//				if (!("910".equals(opSvcKeiStat) || "920".equals(opSvcKeiStat)))
//				{
//					HashMap<String, Object> emailOpSvcKeiMap = new HashMap<String, Object>();
//					emailOpSvcKeiMap.put("svc_kei_no", inNewSvcKeiNo);
//					emailOpSvcKeiMap.put("op_svc_kei_no", opSvcKeiInfo.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_NO));
//					emailOpSvcKeiMap.put("gene_add_dtm", opSvcKeiInfo.getString(JBSbatKK_T_OP_SVC_KEI.GENE_ADD_DTM));
//					emailOpSvcKeiMap.put("op_svc_kei_stat", opSvcKeiStat);
//					emailOpSvcKeiNoList.add(emailOpSvcKeiMap);
//				}
//			}
// OM-2015-0001799 2015/8/11 DEL END

		}
		
		return;
	}
	
	/**
	 * サービス契約排他制御テーブルの検索を行います。
	 * <br>
	 * @param  svc_kei_no サービス契約番号
	 * @return 最終更新年月日時分秒
	 * @throws Exception 
	 */
	private String getSvkeiLastUpdDtm(String svc_kei_no) throws Exception
	{
		// PK検索を行う
		JBSbatCommonDBInterface outMap = executeKK_T_SVKEI_EXC_CTRL_PKSELECT(new String[]{svc_kei_no});
		
		if (outMap == null)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"サービス契約排他制御", "サービス契約番号:" + svc_kei_no});
		}
	
		return outMap.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM);
	}
	
	/**
	 * 住所変更明細を検索
	 * 
	 * @param inAdchgNo
	 * @return
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getAdChgDtlInfo(String inAdchgNo) throws Exception
	{
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI});
		JBSbatCommonDBInterface adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext();
		if (adchgDtlInfo == null)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"住所変更明細", "住所変更番号:" + inAdchgNo});
		}
		return adchgDtlInfo;
	}
	
	/**
	 * サービス契約を検索
	 * 
	 * @param inSvcKeiNo
	 * @return
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getSvcKeiInfo(String inSvcKeiNo) throws Exception
	{
		executeKK_T_SVC_KEI_KK_SELECT_228(new String[]{inSvcKeiNo, opeDate});
		JBSbatCommonDBInterface svcKeiInfo = db_KK_T_SVC_KEI.selectNext();
		if (svcKeiInfo == null)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"サービス契約", "サービス契約番号:" + inSvcKeiNo});
		}
		return svcKeiInfo;
	}
	
	/**
	 * サービス契約の世代登録年月日時分秒を検索
	 * 
	 * @param inSvcKeiNo
	 * @return
	 * @throws Exception
	 */
	private String getSvcKeiGeneDtm(String svcKeiNo) throws Exception
	{
		if (isNullBlank(svcKeiNo))
		{
			return "";
		}
		executeKK_T_SVC_KEI_KK_SELECT_032(new String[]{svcKeiNo, "20991231"});
		JBSbatCommonDBInterface svcKeiInfo = db_KK_T_SVC_KEI.selectNext();
		if (svcKeiInfo == null)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"サービス契約", "サービス契約番号:" + "20991231"});
		}
		return svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM);
	}

	
	/**
	 * オプションサービス契約を検索
	 * 
	 * @param inSvcKeiNo
	 * @return
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getOpSvcKeiInfo(String inSvcKeiNo) throws Exception
	{
		executeKK_T_OP_SVC_KEI_KK_SELECT_056(new String[]{inSvcKeiNo, opeDate, "B001"});
		JBSbatCommonDBInterface opSvcKeiInfo = db_KK_T_OP_SVC_KEI.selectNext();
// OM-2013-0003517対応 20131026 星野 DEL START
//		if (opSvcKeiInfo == null)
//		{
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"オプションサービス契約", "サービス契約:" + inSvcKeiNo});
//		}
// OM-2013-0003517対応 20131026 星野 DEL END
		return opSvcKeiInfo;
	}
	
	/**
	 * オプションサービス契約＜ISP＞を検索
	 * 
	 * @param inSvcKeiNo
	 * @return
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getOpSvcKeiISPInfo(String opSvcKeiNo, String geneAddDtm) throws Exception
	{
		// PK検索を行う
		JBSbatCommonDBInterface opSvcKeiISPInfo = executeKK_T_OPSVKEI_ISP_PKSELECT(new String[]{opSvcKeiNo, geneAddDtm});
		
		if (opSvcKeiISPInfo == null)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"オプションサービス契約＜ISP＞", "オプションサービス契約:" + opSvcKeiNo});
		}
		return opSvcKeiISPInfo;
	}
	
	/**
	 * オプションサービス契約の世代登録年月日時分秒を検索
	 * 
	 * @param inSvcKeiNo
	 * @return
	 * @throws Exception
	 */
	private String getOpSvcKeiGeneDtm(String opSvcKeiNo) throws Exception
	{
		if (isNullBlank(opSvcKeiNo))
		{
			return "";
		}
		executeKK_T_OP_SVC_KEI_KK_SELECT_082(new String[]{opSvcKeiNo, opeDate});
		JBSbatCommonDBInterface svcKeiInfo = db_KK_T_OP_SVC_KEI.selectNext();
		if (svcKeiInfo == null)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"オプションサービス契約", "オプションサービス契約番号:" + opSvcKeiNo});
		}
		return svcKeiInfo.getString(JBSbatKK_T_OP_SVC_KEI.GENE_ADD_DTM);
	}
	
// OM-2013-0003924対応 20131107 星野 ADD START
	/**
	 * オプションサービス契約の世代登録年月日時分秒を検索
	 * 
	 * @param inSvcKeiNo
	 * @return
	 * @throws Exception
	 */
	private String getOpSvcCd(String opSvcKeiNo) throws Exception
	{
		if (isNullBlank(opSvcKeiNo))
		{
			return "";
		}
		executeKK_T_OP_SVC_KEI_KK_SELECT_082(new String[]{opSvcKeiNo, opeDate});
		JBSbatCommonDBInterface svcKeiInfo = db_KK_T_OP_SVC_KEI.selectNext();
		if (svcKeiInfo == null)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"オプションサービス契約", "オプションサービス契約番号:" + opSvcKeiNo});
		}
		return svcKeiInfo.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_CD);
	}
// OM-2013-0003924対応 20131107 星野 ADD END

	/**
	 * デバッグログ出力
	 * 
	 */
	private void printDebugLog()
	{
		super.logPrint.printDebugLog("<odr_hakko_svc_kei_list>");

		for (HashMap<String, Object> trgt_data_map : odr_hakko_svc_kei_list) {

			super.logPrint.printDebugLog("    <trgt_data_map>");
			super.logPrint.printDebugLog("        <use_svc_chg_div value=\"" + trgt_data_map.get("use_svc_chg_div") + "\" />");

			ArrayList<HashMap<String, Object>> hakko_trgr_trgt_list = null;
			hakko_trgr_trgt_list = (ArrayList<HashMap<String, Object>>) trgt_data_map.get("hakko_trgr_trgt_list");
			if (hakko_trgr_trgt_list != null) {
				super.logPrint.printDebugLog("        <hakko_trgr_trgt_list>");
				for (HashMap<String, Object> hakko_trgr_trgt_data_map : hakko_trgr_trgt_list) {
					super.logPrint.printDebugLog("            <hakko_trgr_trgt_data_map>");

					super.logPrint.printDebugLog("                <kiki_trgt_data_list>");
					ArrayList<HashMap<String, Object>> kiki_trgt_data_list = null;
					kiki_trgt_data_list = (ArrayList<HashMap<String, Object>>)hakko_trgr_trgt_data_map.get("kiki_trgt_data_list");
					for (HashMap<String, Object> sod_map : kiki_trgt_data_list) {
						super.logPrint.printDebugLog("                    <sod_map>");
						super.logPrint.printDebugLog("                        <sod_kihon_info>");
						HashMap<String, Object> sod_kihon_info = null;
						sod_kihon_info = (HashMap<String, Object>)sod_map.get("sod_kihon_info");
						super.logPrint.printDebugLog("                            <sysid value=\"" + sod_kihon_info.get("sysid") + "\" />");
						super.logPrint.printDebugLog("                        </sod_kihon_info>");
						super.logPrint.printDebugLog("                        <svc_kei_info>");
						HashMap<String, Object> svc_kei_info = null;
						svc_kei_info = (HashMap<String, Object>)sod_map.get("svc_kei_info");
						super.logPrint.printDebugLog("                            <svc_kei_no value=\"" + svc_kei_info.get("svc_kei_no") + "\" />");
						super.logPrint.printDebugLog("                            <saki_svc_kei_no value=\"" + svc_kei_info.get("saki_svc_kei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_svc_kei_gene_add_dtm value=\"" + svc_kei_info.get("chbf_svc_kei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_svc_kei_gene_add_dtm value=\"" + svc_kei_info.get("chaf_svc_kei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        </svc_kei_info>");
						super.logPrint.printDebugLog("                        <svc_kei_ucwk_info>");
						HashMap<String, Object> svc_kei_ucwk_info = null;
						svc_kei_ucwk_info = (HashMap<String, Object>)sod_map.get("svc_kei_ucwk_info");
						super.logPrint.printDebugLog("                            <svc_kei_ucwk_no value=\"" + svc_kei_ucwk_info.get("svc_kei_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                            <saki_svc_kei_ucwk_no value=\"" + svc_kei_ucwk_info.get("saki_svc_kei_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_svc_kei_ucwk_gene_add_dtm value=\"" + svc_kei_ucwk_info.get("chbf_svc_kei_ucwk_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_svc_kei_ucwk_gene_add_dtm value=\"" + svc_kei_ucwk_info.get("chaf_svc_kei_ucwk_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        </svc_kei_ucwk_info>");
						super.logPrint.printDebugLog("                        <kktsvkei_info>");
						HashMap<String, Object> kktsvkei_info = null;
						kktsvkei_info = (HashMap<String, Object>)sod_map.get("kktsvkei_info");
						super.logPrint.printDebugLog("                            <chbf_kktsvkei_no value=\"" + kktsvkei_info.get("chbf_kktsvkei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_kktsvkei_gene_add_dtm value=\"" + kktsvkei_info.get("chbf_kktsvkei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_kktsvkei_no value=\"" + kktsvkei_info.get("chaf_kktsvkei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_kktsvkei_gene_add_dtm value=\"" + kktsvkei_info.get("chaf_kktsvkei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        </kktsvkei_info>");
						super.logPrint.printDebugLog("                        <chbf_svc_kei_kaisen_ucwk_no value=\"" + sod_map.get("chbf_svc_kei_kaisen_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                        <chaf_svc_kei_kaisen_ucwk_no value=\"" + sod_map.get("chaf_svc_kei_kaisen_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                        <chbf_svc_kei_kaisen_ucwk_no_gene_add_dtm value=\"" + sod_map.get("chbf_svc_kei_kaisen_ucwk_no_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        <chaf_svc_kei_kaisen_ucwk_no_gene_add_dtm value=\"" + sod_map.get("chaf_svc_kei_kaisen_ucwk_no_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                    </sod_map>");
					}
					super.logPrint.printDebugLog("                </kiki_trgt_data_list>");

					super.logPrint.printDebugLog("                <opt_trgt_data_list>");
					ArrayList<HashMap<String, Object>> opt_trgt_data_list = null;
					opt_trgt_data_list = (ArrayList<HashMap<String, Object>>)hakko_trgr_trgt_data_map.get("opt_trgt_data_list");
					for (HashMap<String, Object> sod_map : opt_trgt_data_list) {
						super.logPrint.printDebugLog("                    <sod_map>");
						super.logPrint.printDebugLog("                        <sod_kihon_info>");
						HashMap<String, Object> sod_kihon_info = null;
						sod_kihon_info = (HashMap<String, Object>)sod_map.get("sod_kihon_info");
						super.logPrint.printDebugLog("                            <sysid value=\"" + sod_kihon_info.get("sysid") + "\" />");
						super.logPrint.printDebugLog("                        </sod_kihon_info>");
						super.logPrint.printDebugLog("                        <svc_kei_info>");
						HashMap<String, Object> svc_kei_info = null;
						svc_kei_info = (HashMap<String, Object>)sod_map.get("svc_kei_info");
						super.logPrint.printDebugLog("                            <svc_kei_no value=\"" + svc_kei_info.get("svc_kei_no") + "\" />");
						super.logPrint.printDebugLog("                            <saki_svc_kei_no value=\"" + svc_kei_info.get("saki_svc_kei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_svc_kei_gene_add_dtm value=\"" + svc_kei_info.get("chbf_svc_kei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_svc_kei_gene_add_dtm value=\"" + svc_kei_info.get("chaf_svc_kei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        </svc_kei_info>");
						super.logPrint.printDebugLog("                        <svc_kei_ucwk_info>");
						HashMap<String, Object> svc_kei_ucwk_info = null;
						svc_kei_ucwk_info = (HashMap<String, Object>)sod_map.get("svc_kei_ucwk_info");
						super.logPrint.printDebugLog("                            <svc_kei_ucwk_no value=\"" + svc_kei_ucwk_info.get("svc_kei_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                            <saki_svc_kei_ucwk_no value=\"" + svc_kei_ucwk_info.get("saki_svc_kei_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_svc_kei_ucwk_gene_add_dtm value=\"" + svc_kei_ucwk_info.get("chbf_svc_kei_ucwk_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_svc_kei_ucwk_gene_add_dtm value=\"" + svc_kei_ucwk_info.get("chaf_svc_kei_ucwk_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        </svc_kei_ucwk_info>");
						super.logPrint.printDebugLog("                        <opsvkei_info>");
						HashMap<String, Object> opsvkei_info = null;
						opsvkei_info = (HashMap<String, Object>)sod_map.get("opsvkei_info");
						super.logPrint.printDebugLog("                            <chbf_opsvkei_no value=\"" + opsvkei_info.get("chbf_opsvkei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_opsvkei_gene_add_dtm value=\"" + opsvkei_info.get("chbf_opsvkei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_opsvkei_no value=\"" + opsvkei_info.get("chaf_opsvkei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_opsvkei_gene_add_dtm value=\"" + opsvkei_info.get("chaf_opsvkei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_sbopsvkei_no value=\"" + opsvkei_info.get("chbf_sbopsvkei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chbf_sbopsvkei_gene_add_dtm value=\"" + opsvkei_info.get("chbf_sbopsvkei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_sbopsvkei_no value=\"" + opsvkei_info.get("chaf_sbopsvkei_no") + "\" />");
						super.logPrint.printDebugLog("                            <chaf_sbopsvkei_gene_add_dtm value=\"" + opsvkei_info.get("chaf_sbopsvkei_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        </opsvkei_info>");
						super.logPrint.printDebugLog("                        <chbf_svc_kei_kaisen_ucwk_no value=\"" + sod_map.get("chbf_svc_kei_kaisen_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                        <chaf_svc_kei_kaisen_ucwk_no value=\"" + sod_map.get("chaf_svc_kei_kaisen_ucwk_no") + "\" />");
						super.logPrint.printDebugLog("                        <chbf_svc_kei_kaisen_ucwk_no_gene_add_dtm value=\"" + sod_map.get("chbf_svc_kei_kaisen_ucwk_no_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                        <chaf_svc_kei_kaisen_ucwk_no_gene_add_dtm value=\"" + sod_map.get("chaf_svc_kei_kaisen_ucwk_no_gene_add_dtm") + "\" />");
						super.logPrint.printDebugLog("                    </sod_map>");
					}
					super.logPrint.printDebugLog("                </opt_trgt_data_list>");
					
					super.logPrint.printDebugLog("                <odr_exec_div value=\"" + hakko_trgr_trgt_data_map.get("odr_exec_div") + "\" />");
					super.logPrint.printDebugLog("            </hakko_trgr_trgt_data_map>");
				}
				super.logPrint.printDebugLog("        </hakko_trgr_trgt_list>");
			}

			super.logPrint.printDebugLog("    </trgt_data_map>");
		}

		super.logPrint.printDebugLog("</odr_hakko_svc_kei_list>");
	}
	
	/**
	 * 割引サービス自動適用ＣＣ呼出に必要な情報を設定する
	 * 
	 * @param mskmNo
	 * @param svcKeiNo
	 * @throws Exception
	 */
	private void setWrisvcAutoAply(String adchgNo, String mskmNo) throws Exception
	{
		if (adchgNoList.contains(adchgNo))
		{
			return;
		}
		adchgNoList.add(adchgNo);
		// 住所変更明細を検索
		JBSbatCommonDBInterface adchgDtlInfo = getAdChgDtlInfo(adchgNo);
		
		while (adchgDtlInfo != null)
		{
			String bfSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String afSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
			String svcKeiIdoSbtCd = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD);
			
// OM-2013-0004609対応 20131127 星野 MOD START
//			// 旧が設定有りで、区分が保留なら回線併合にて割引サービス自動適用CCを呼び出す（転居元用）
//			// 新旧ともに設定有りで、同一サービス契約番号（=サービス継続）なら回線併合にて割引サービス自動適用CCを呼び出す（転居先用）
//// OM-2013-0003767対応 20131112 星野 MOD START
////			if (!isNullBlank(bfSvcKeiNo) && isNullBlank(afSvcKeiNo) && "2".equals(svcKeiIdoSbtCd))
//			if (
//					( !isNullBlank(bfSvcKeiNo) && isNullBlank(afSvcKeiNo) && "2".equals(svcKeiIdoSbtCd) )
//					||
//					( !isNullBlank(bfSvcKeiNo) && !isNullBlank(afSvcKeiNo) && bfSvcKeiNo.equals(afSvcKeiNo) )
//			)
//// OM-2013-0003767対応 20131112 星野 MOD END
			
			// 変更前サービス契約番号（解約・保留・解約/新規 分） を解約として呼び出す
			if ( !isNullBlank(bfSvcKeiNo) && !bfSvcKeiNo.equals(afSvcKeiNo) )
// OM-2013-0004609対応 20131127 星野 MOD END
			{
				HashMap<String, Object> kKSV056503CC = new HashMap<String, Object>();
				
				// サービス契約を検索
				JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(bfSvcKeiNo);
				
				// ◆◆◆ 作業領域
				// ＳＹＳＩＤ
				kKSV056503CC.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
// OM-2013-0004609対応 20131127 星野 MOD START
//				// 登録／変更区分（回線併合）
//				kKSV056503CC.put("add_chge_div", "15");
				// 登録／変更区分（解約）
				kKSV056503CC.put("add_chge_div", "03");
// OM-2013-0004609対応 20131127 星野 MOD END
				// 機能コード
				kKSV056503CC.put("func_code", "1");
				// 異動区分
				kKSV056503CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
				// 申込種別コード
				kKSV056503CC.put("mskm_sbt_cd", "00017");
				// 申込番号
				kKSV056503CC.put("mskm_no", mskmNo);
// OM-2013-0004609対応 20131127 星野 ADD START
				// サービス解約理由コード（通常解約）
				kKSV056503CC.put("svc_dlre_cd", "01");
// OM-2013-0004609対応 20131127 星野 ADD END
				//ANK-3383-00-00 ADD START
				kKSV056503CC.put("kojihi_kap_adchg_div", "00020");
				//ANK-3383-00-00 ADD END
				// ◆◆◆ サービス契約グループリスト
				ArrayList<HashMap<String, Object>> svc_kei_grp_list = new ArrayList<HashMap<String, Object>>();
				HashMap<String, Object> svc_kei_grp_list_map = new HashMap<String, Object>();
				
				// ◆◆◆ 基準契約用
				ArrayList<HashMap<String, Object>> svc_kei_list = new ArrayList<HashMap<String, Object>>();
				HashMap<String, Object> svc_kei_list_map = new HashMap<String, Object>();
				// KKSV009832CC.サービス契約グループリスト
				kKSV056503CC.put( "svc_kei_grp_list", svc_kei_grp_list );
				
				// グループ区分
				svc_kei_grp_list_map.put( "grp_div", "00" );
				// サービス契約リスト
				svc_kei_grp_list_map.put( "svc_kei_list", svc_kei_list );
				
// OM-2013-0004609対応 20131127 星野 ADD START
				// ＳＹＳＩＤ
				svc_kei_list_map.put( "sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID) );
// OM-2013-0004609対応 20131127 星野 ADD END
				// 対象契約識別コード
				svc_kei_list_map.put( "tg_kei_skbt_cd", "01" );
				// サービス契約番号
				svc_kei_list_map.put( "svc_kei_no", bfSvcKeiNo);
				// サービスコード
				svc_kei_list_map.put( "svc_cd",  svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
				// サービス契約ステータス
				svc_kei_list_map.put( "svc_kei_stat", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				// 料金グループコード
				svc_kei_list_map.put( "prc_grp_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PRC_GRP_CD));
				// 料金コースコード
				svc_kei_list_map.put("pcrs_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PCRS_CD));
				// 料金プランコード
				svc_kei_list_map.put( "pplan_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PPLAN_CD));
// OM-2013-0004609対応 20131127 星野 ADD START
				// サービス終了年月日
				svc_kei_list_map.put( "svc_endymd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_ENDYMD));
				// サービス課金終了年月日
				svc_kei_list_map.put( "svc_chrg_endymd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CHRG_ENDYMD));
// OM-2013-0004609対応 20131127 星野 ADD END
				
				svc_kei_list.add( svc_kei_list_map );
				svc_kei_grp_list.add( svc_kei_grp_list_map );
				
				if (wrisvc_auto_aply_list == null)
				{
					wrisvc_auto_aply_list = new ArrayList<HashMap<String,Object>>();
				}
				wrisvc_auto_aply_list.add(kKSV056503CC);
			}
			
// OM-2013-0003767対応 20131112 星野 DEL START
//			// 新旧が設定有りでサービス契約番号が違うなら解約新規として登録で割引サービス自動適用CCを呼び出す
//			// 旧が設定なし、新が設定有りなら新規として登録で割引サービス自動適用CCを呼び出す
//			if (
//					((!isNullBlank(bfSvcKeiNo) && !isNullBlank(afSvcKeiNo)) && !bfSvcKeiNo.equals(afSvcKeiNo))
//					|| ((isNullBlank(bfSvcKeiNo) && !isNullBlank(afSvcKeiNo)))
//				)
//			{
//				HashMap<String, Object> kKSV056503CC = new HashMap<String, Object>();
//				
//				// サービス契約を検索
//				JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(afSvcKeiNo);
//				
//				// ◆◆◆ 作業領域
//				// ＳＹＳＩＤ
//				kKSV056503CC.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
//				// 登録／変更区分（登録）
//				kKSV056503CC.put("add_chge_div", "01");
//				// 機能コード
//				kKSV056503CC.put("func_code", "1");
//				// 異動区分
//				kKSV056503CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
//				// 申込種別コード
//				kKSV056503CC.put("mskm_sbt_cd", "00017");
//				// 申込番号
//				kKSV056503CC.put("mskm_no", mskmNo);
//				
//				// ◆◆◆ サービス契約グループリスト
//				ArrayList<HashMap<String, Object>> svc_kei_grp_list = new ArrayList<HashMap<String, Object>>();
//				HashMap<String, Object> svc_kei_grp_list_map = new HashMap<String, Object>();
//				
//				// ◆◆◆ 基準契約用
//				ArrayList<HashMap<String, Object>> svc_kei_list = new ArrayList<HashMap<String, Object>>();
//				HashMap<String, Object> svc_kei_list_map = new HashMap<String, Object>();
//				// KKSV009832CC.サービス契約グループリスト
//				kKSV056503CC.put( "svc_kei_grp_list", svc_kei_grp_list );
//				
//				// グループ区分
//				svc_kei_grp_list_map.put( "grp_div", "00" );
//				// サービス契約リスト
//				svc_kei_grp_list_map.put( "svc_kei_list", svc_kei_list );
//				
//				// 対象契約識別コード
//				svc_kei_list_map.put( "tg_kei_skbt_cd", "01" );
//				// サービス契約番号
//				svc_kei_list_map.put( "svc_kei_no", afSvcKeiNo);
//				// サービスコード
//				svc_kei_list_map.put( "svc_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
//				// サービス契約ステータス
//				svc_kei_list_map.put( "svc_kei_stat", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
//				// 料金グループコード
//				svc_kei_list_map.put( "prc_grp_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PRC_GRP_CD));
//				// 料金コースコード
//				svc_kei_list_map.put("pcrs_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PCRS_CD));
//				// 料金プランコード
//				svc_kei_list_map.put( "pplan_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PPLAN_CD));
//				
//				svc_kei_list.add( svc_kei_list_map );
//				svc_kei_grp_list.add( svc_kei_grp_list_map );
//				
//				if (wrisvc_auto_aply_list == null)
//				{
//					wrisvc_auto_aply_list = new ArrayList<HashMap<String,Object>>();
//				}
//				wrisvc_auto_aply_list.add(kKSV056503CC);
//			}
// OM-2013-0003767対応 20131112 星野 DEL END
			
			 adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext();
		}
		
		
// OM-2013-0004609対応 20131127 星野 MOD START
// 追加サービス分の呼出を解約分の後で処理するため、別ループとする
		// 住所変更明細を検索
		adchgDtlInfo = getAdChgDtlInfo(adchgNo);
		
		while (adchgDtlInfo != null)
		{
			String bfSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String afSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
			
			// 変更後サービス契約番号（追加・解約/新規 分） を登録として呼び出す
			if ( !isNullBlank(afSvcKeiNo) && !afSvcKeiNo.equals(bfSvcKeiNo) )
			{
				HashMap<String, Object> kKSV056503CC = new HashMap<String, Object>();
				
				// サービス契約を検索
				JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(afSvcKeiNo);
				
				// ◆◆◆ 作業領域
				// ＳＹＳＩＤ
				kKSV056503CC.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
				// 登録／変更区分（登録）
				kKSV056503CC.put("add_chge_div", "01");
				// 機能コード
				kKSV056503CC.put("func_code", "1");
				// 異動区分
				kKSV056503CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
				// 申込種別コード
				kKSV056503CC.put("mskm_sbt_cd", "00017");
				// 申込番号
				kKSV056503CC.put("mskm_no", mskmNo);
				//ANK-3383-00-00 ADD START
				kKSV056503CC.put("kojihi_kap_adchg_div", "00020");
				//ANK-3383-00-00 ADD END
				// ◆◆◆ サービス契約グループリスト
				ArrayList<HashMap<String, Object>> svc_kei_grp_list = new ArrayList<HashMap<String, Object>>();
				HashMap<String, Object> svc_kei_grp_list_map = new HashMap<String, Object>();
				
				// ◆◆◆ 基準契約用
				ArrayList<HashMap<String, Object>> svc_kei_list = new ArrayList<HashMap<String, Object>>();
				HashMap<String, Object> svc_kei_list_map = new HashMap<String, Object>();
				// KKSV009832CC.サービス契約グループリスト
				kKSV056503CC.put( "svc_kei_grp_list", svc_kei_grp_list );
				
				// グループ区分
				svc_kei_grp_list_map.put( "grp_div", "00" );
				// サービス契約リスト
				svc_kei_grp_list_map.put( "svc_kei_list", svc_kei_list );
				
				// 対象契約識別コード
				svc_kei_list_map.put( "tg_kei_skbt_cd", "01" );
				// サービス契約番号
				svc_kei_list_map.put( "svc_kei_no", afSvcKeiNo);
				// サービスコード
				svc_kei_list_map.put( "svc_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
				// サービス契約ステータス
				svc_kei_list_map.put( "svc_kei_stat", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				// 料金グループコード
				svc_kei_list_map.put( "prc_grp_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PRC_GRP_CD));
				// 料金コースコード
				svc_kei_list_map.put("pcrs_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PCRS_CD));
				// 料金プランコード
				svc_kei_list_map.put( "pplan_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PPLAN_CD));
				
				svc_kei_list.add( svc_kei_list_map );
				svc_kei_grp_list.add( svc_kei_grp_list_map );
				
				if (wrisvc_auto_aply_list == null)
				{
					wrisvc_auto_aply_list = new ArrayList<HashMap<String,Object>>();
				}
				wrisvc_auto_aply_list.add(kKSV056503CC);
			}
			
			 adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext();
		}

// OM-2013-0004609対応 20131127 星野 MOD END
		// IT2-2018-0000061 ADD START
		adchgDtlInfo = getAdChgDtlInfo(adchgNo);
		
		while (adchgDtlInfo != null)
		{
			String bfSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String afSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
			
			// 変更前サービス契約番号と変更後サービス契約番号が同じ場合
			if ( !isNullBlank(bfSvcKeiNo) && !isNullBlank(afSvcKeiNo) && afSvcKeiNo.equals(bfSvcKeiNo) )
			{
				HashMap<String, Object> kKSV056503CC = new HashMap<String, Object>();
				
				// サービス契約を検索
				JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(afSvcKeiNo);
				
				// ◆◆◆ 作業領域
				// ＳＹＳＩＤ
				kKSV056503CC.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
				// 登録／変更区分（工事費割賦CP削除）
				kKSV056503CC.put("add_chge_div", ADD_CHGE_DIV_KOJIHI_KAP_CP_DEL);
				// 機能コード
				kKSV056503CC.put("func_code", "1");
				// 異動区分
				kKSV056503CC.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
				// 申込種別コード
				kKSV056503CC.put("mskm_sbt_cd", "00017");
				// 申込番号
				kKSV056503CC.put("mskm_no", mskmNo);
				
				kKSV056503CC.put("kojihi_kap_adchg_div", "00020");
				// ◆◆◆ サービス契約グループリスト
				ArrayList<HashMap<String, Object>> svc_kei_grp_list = new ArrayList<HashMap<String, Object>>();
				HashMap<String, Object> svc_kei_grp_list_map = new HashMap<String, Object>();
				
				// ◆◆◆ 基準契約用
				ArrayList<HashMap<String, Object>> svc_kei_list = new ArrayList<HashMap<String, Object>>();
				HashMap<String, Object> svc_kei_list_map = new HashMap<String, Object>();
				kKSV056503CC.put( "svc_kei_grp_list", svc_kei_grp_list );
				
				// グループ区分
				svc_kei_grp_list_map.put( "grp_div", "00" );
				// サービス契約リスト
				svc_kei_grp_list_map.put( "svc_kei_list", svc_kei_list );
				
				// 対象契約識別コード
				svc_kei_list_map.put( "tg_kei_skbt_cd", "01" );
				// サービス契約番号
				svc_kei_list_map.put( "svc_kei_no", afSvcKeiNo);
				// サービスコード
				svc_kei_list_map.put( "svc_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
				// サービス契約ステータス
				svc_kei_list_map.put( "svc_kei_stat", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
				// 料金グループコード
				svc_kei_list_map.put( "prc_grp_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PRC_GRP_CD));
				// 料金コースコード
				svc_kei_list_map.put("pcrs_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PCRS_CD));
				// 料金プランコード
				svc_kei_list_map.put( "pplan_cd", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PPLAN_CD));
				
				svc_kei_list.add( svc_kei_list_map );
				svc_kei_grp_list.add( svc_kei_grp_list_map );
				
				if (wrisvc_auto_aply_list == null)
				{
					wrisvc_auto_aply_list = new ArrayList<HashMap<String,Object>>();
				}
				wrisvc_auto_aply_list.add(kKSV056503CC);
			}
			
			 adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext();
		}
		// IT2-2018-0000061 ADD END
		
		return;
	}
	
	/**
	 * ＳＯＤ発行ＣＣ呼出パラメータの編集
	 * ・サービス契約異動種別コードが変更の場合、片側しか設定されていない為両方設定する
	 * 
	 * @param svc_kei_info
	 * @param adchgNo
	 * @throws Exception
	 */
	private void setOldNewSvcKeiNo(HashMap<String, Object> svc_kei_info, String adchgNo) throws Exception
	{
		// 住所変更明細を検索
		JBSbatCommonDBInterface adchgDtlInfo = getAdChgDtlInfo(adchgNo);
		
		// OM-2020-0001078 ADD START
		while(adchgDtlInfo != null)
		{
		// OM-2020-0001078 ADD END
			// 変更の場合は、設定されていない側を設定する
			if ("1".equals(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.SVC_KEI_IDO_SBT_CD)))
			{
				String svcKeiNo = (String)svc_kei_info.get("svc_kei_no");
				String sakiSvcKeiNo = (String)svc_kei_info.get("saki_svc_kei_no");
				// OM-2020-0001078 MOD START
//				if (isNullBlank(svcKeiNo) && !isNullBlank(sakiSvcKeiNo))
				if (isNullBlank(svcKeiNo) && !isNullBlank(sakiSvcKeiNo)
						&& sakiSvcKeiNo.equals(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO)))
				// OM-2020-0001078 MOD END
				{
					String dslSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
					svc_kei_info.put("svc_kei_no", dslSvcKeiNo);
					svc_kei_info.put("chbf_svc_kei_gene_add_dtm", getSvcKeiGeneDtm(dslSvcKeiNo));
					// OM-2020-0001078 ADD START
					break;
					// OM-2020-0001078 ADD END
				}
				// OM-2020-0001078 MOD START
//				if (!isNullBlank(svcKeiNo) && isNullBlank(sakiSvcKeiNo))
				if (!isNullBlank(svcKeiNo) && isNullBlank(sakiSvcKeiNo)
						&& svcKeiNo.equals(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO)))
				// OM-2020-0001078 MOD END
				{
					String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
					svc_kei_info.put("saki_svc_kei_no", newSvcKeiNo);
					svc_kei_info.put("chaf_svc_kei_gene_add_dtm", getSvcKeiGeneDtm(newSvcKeiNo));
					// OM-2020-0001078 ADD START
					break;
					// OM-2020-0001078 ADD END
				}
			}
			// OM-2020-0001078 ADD START
			adchgDtlInfo= db_KK_T_ADCHG_DTL2.selectNext();
		}
		// OM-2020-0001078 ADD END
	}
	
// OM-2014-0001721対応 20140428 星野 MOD START
//	private boolean isRlsAdd(String inAdchgNo) throws Exception
	private boolean isRlsAdd(String inAdchgNo, String inNewSvcKeiNo) throws Exception
// OM-2014-0001721対応 20140428 星野 MOD END
	{
// OM-2014-0001721対応 20140428 星野 MOD START
//		// 住所変更明細を検索
//		JBSbatCommonDBInterface adchgDtlInfo = getAdChgDtlInfo(inAdchgNo);
		
		// 住所変更明細を検索
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI});
		JBSbatCommonDBInterface adchgDtlInfo = null;
		for (adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext(); adchgDtlInfo != null; adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext()) {
// OM-2014-0001721対応 20140428 星野 MOD END
			
			String oldSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
			
			if (!isNullBlank(oldSvcKeiNo) && !isNullBlank(newSvcKeiNo) && !oldSvcKeiNo.equals(newSvcKeiNo)
// OM-2014-0001721対応 20140428 星野 ADD START
				&& newSvcKeiNo.equals(inNewSvcKeiNo)
// OM-2014-0001721対応 20140428 星野 ADD END
			)
			{
				// 変更前識別番号と変更後識別番号が違うので解約新規とみなす
				return true;
			}
			
// OM-2014-0001721対応 20140428 星野 ADD START
		}
// OM-2014-0001721対応 20140428 星野 ADD END
		return false;
	}
	
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD START
	/**
	 * 
	 * 電話サービス引継ぎ　かつ　電話番号の変更の場合　/　引継ぎ済みのオプションパック割引が解約の場合　マイナーアラームを発行
	 * 
	 * @param 住所変更番号
	 * @param サービスコード
	 * @throws Exception
	 */
	//電話サービス引継ぎ　かつ　電話番号の変更の場合 ANK-4642-00-00_瑕疵外障害改修対応
	private void isTelRlsAdd(String inAdchgNo,String svcKeiNo) throws Exception
	{
		//引継対象のサービス契約に紐づくサービス契約内訳番号保持用List
		List<String> svcKeiUtwkNoKeiZokuList = new ArrayList<String>();

		//電話番号変更のサービス契約内訳番号保持用List
		List<String> svcKeiUtwkNoTelList = new ArrayList<String>();


		// 住所変更明細番号と種別コード”01”に該当するレコード取得
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI});
		JBSbatCommonDBInterface adchgDtlInfo = null;

		for (adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext(); adchgDtlInfo != null; adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext()) {

			String oldSvcKeiNo = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO));
			String newSvcKeiNo = nullToBlank(adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO));

			//サービス契約の変更前識別番号と変更後識別番号が同一（継続の場合）かつ電話の契約の場合
			if (oldSvcKeiNo.equals(newSvcKeiNo) && oldSvcKeiNo.equals(svcKeiNo)){

				//サービス契約番号に紐づくサービス契約内訳番号を取得
				executeKK_T_SVC_KEI_UCWK_KK_SELECT_079(new String[]{svcKeiNo, opeDate});
				JBSbatCommonDBInterface svcKeiUwInfo = null ;
				for (svcKeiUwInfo = db_KK_T_SVKEIUW.selectNext(); svcKeiUwInfo != null; svcKeiUwInfo = db_KK_T_SVKEIUW.selectNext()) {
					String svcKeiUtwkNo = svcKeiUwInfo.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_NO);

					//引継対象のサービス契約に紐づくサービス契約内訳番号を取得する
					svcKeiUtwkNoKeiZokuList.add(svcKeiUtwkNo);
				}
			}
		}

		// 住所変更明細番号と種別コード”02”で該当するレコード取得
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_UCWK});
		JBSbatCommonDBInterface adchgDtlUtwkInfo = null;

		for (adchgDtlUtwkInfo = db_KK_T_ADCHG_DTL2.selectNext(); adchgDtlUtwkInfo != null; adchgDtlUtwkInfo = db_KK_T_ADCHG_DTL2.selectNext()) {

			String oldSvcKeiUtwkNo = nullToBlank(adchgDtlUtwkInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO));
			String newSvcKeiUtwkNo = nullToBlank(adchgDtlUtwkInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO));

			//サービス契約内訳番号保持用Listに変更前のサービス契約内訳番号が存在する。かつ変更前識別番号と変更後識別番号が同一ではない
			if(svcKeiUtwkNoKeiZokuList.contains(oldSvcKeiUtwkNo) && !oldSvcKeiUtwkNo.equals(newSvcKeiUtwkNo)){

				//サービス契約内訳番号を取得する
				svcKeiUtwkNoTelList.add(oldSvcKeiUtwkNo);

			}
		}

		// 住所変更明細番号と種別コード”10”で該当するレコード取得
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_TEL_WRIB});
		JBSbatCommonDBInterface adchgOptionWrbkInfo =  null;

		for (adchgOptionWrbkInfo = db_KK_T_ADCHG_DTL2.selectNext(); adchgOptionWrbkInfo != null; adchgOptionWrbkInfo = db_KK_T_ADCHG_DTL2.selectNext()) {

			String oldOptionNo = nullToBlank(adchgOptionWrbkInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO));
			String newOptionNo = nullToBlank(adchgOptionWrbkInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO));

			for (String svcKeiUtwkNoTel : svcKeiUtwkNoTelList) {
				//サービス契約内訳番号から該当する割引を取得する
				executeKK_T_WRISVC_TG_KEI_KK_SELECT_067(new String[]{svcKeiUtwkNoTel, opeDate,opeDate,opeDate});
				JBSbatCommonDBInterface wrbikTgKei = db_KK_T_WRISVC_TG_KEI.selectNext();

				String wribSvcKeiNo = nullToBlank(wrbikTgKei.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO));
				String wrbikStst = nullToBlank(wrbikTgKei.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT));
				String wrbikCd = nullToBlank(wrbikTgKei.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD));

				//割引サービス契約番号と変更前識別番号が同一かつ変更前識別番号と変更後識別番号が同一（引継ぎの場合）
				if (wribSvcKeiNo.equals(oldOptionNo) && oldOptionNo.equals(newOptionNo)) {

					//割引サービスコードがパック3・パック７・あんしん電話パック　かつ　ステータスが解約済み・キャンセル済みの場合
					if((WRBK_CD_3.equals(wrbikCd) || WRBK_CD_7.equals(wrbikCd) || WRBK_CD_ANSN.equals(wrbikCd))&&(WRBK_STAT_KIYK.equals(wrbikStst) || WRBK_STAT_CANCEL.equals(wrbikStst))){

						// マイナーアラームを発行する
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB2420GW, new String[]{inAdchgNo,wribSvcKeiNo.toString()});
					}
				}
			}
		}
	}
	//ANK-4642-00-00_瑕疵外障害改修対応 ADD END
	
	/**
	 * 申込明細番号を検索
	 * 
	 * @param inMskmNo
	 * @return
	 * @throws Exception
	 */
	private String getCrcChgMskmDtlNo(String inMskmNo) throws Exception
	{
		executeKK_T_MSKM_DTL_KK_SELECT_025(new String[]{opeDate, inMskmNo});
		JBSbatCommonDBInterface mkskDtlInfo = db_KK_T_MSKM_DTL.selectNext();
		if (mkskDtlInfo == null)
		{
			return "";
		}
		return mkskDtlInfo.getString(JBSbatKK_T_MSKM_DTL.MSKM_DTL_NO);
	}

//  2013.03.01 T.TORIKAI ADD START
	/**
	 * サービス契約番号について、サービス契約ステータスを取得する
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @param rsvAplyYmd 予約適用年月日
	 * @return サービス契約ステータス
	 * @throws Exception
	 */
	private String getSvcKeiStat(String svcKeiNo, String rsvAplyYmd) throws Exception {
		// SQL実行
		executeKK_T_SVC_KEI_KK_SELECT_032(new String[]{svcKeiNo, rsvAplyYmd});
		JBSbatCommonDBInterface svcKeiInfo = db_KK_T_SVC_KEI.selectNext();
		if (svcKeiInfo == null)
		{	// 該当データなし
			String msg = "サービス契約番号:" + svcKeiNo + "  予約適用年月日:" + rsvAplyYmd;
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"サービス契約", msg});
		}
		return svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT);
	}
// 2013.03.01 T.TORIKAI ADD END
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD START
	private boolean isNetRlsAdd(String inAdchgNo) throws Exception
	{
		ArrayList<String> adchgDtlList = new ArrayList<String>();
		// 住所変更明細を検索
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI});
		JBSbatCommonDBInterface adchgDtlInfo = null;
		for (adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext(); adchgDtlInfo != null; adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext()) {
			if (adchgDtlInfo == null) {
				throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"住所変更明細", "住所変更番号:" + inAdchgNo});
			}
			String oldSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
			// 判定
			if (!isNullBlank(oldSvcKeiNo) && !isNullBlank(newSvcKeiNo) && !oldSvcKeiNo.equals(newSvcKeiNo)) {
				// 変更前識別番号と変更後識別番号が違うので解約新規とみなす
				// 2スキーマの結果を持っている状態でselectNext()メソッドを使用することに対して動作保証が無かったため、
				// 住所変更明細の内容をためておいて個々にサービス契約への検索を行っている。
				adchgDtlList.add(oldSvcKeiNo);
			}
		}
		// 解約新規とみなしたサービス契約番号がネットであることを確認する。
		for (String oldSvcKeiNo : adchgDtlList) {
			// サービス契約を検索
			String svcCd = getSvcCd(oldSvcKeiNo, opeDate);
			// ネットの契約なら解約新規として結果を返す。
			if ("01".equals(svcCd)) {
				return true;
			}
		}
		return false;
	}
	/**
	 * サービス契約番号について、サービスコードを取得する
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @param rsvAplyYmd 予約適用年月日
	 * @return サービスコード
	 * @throws Exception
	 */
	private String getSvcCd(String svcKeiNo, String rsvAplyYmd) throws Exception {
		// SQL実行
		executeKK_T_SVC_KEI_KK_SELECT_032(new String[]{svcKeiNo, rsvAplyYmd});
		JBSbatCommonDBInterface svcKeiInfo = db_KK_T_SVC_KEI.selectNext();
		if (svcKeiInfo == null)
		{	// 該当データなし
			String msg = "サービス契約番号:" + svcKeiNo + "  予約適用年月日:" + rsvAplyYmd;
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"サービス契約", msg});
		}
		return svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD);
	}
// ANK-1578-00-00 2013.12.10 Y.Kanata ADD END
// IT2-2014-0000040 2014.01.18 Y.Kanata ADD START
	/**
	 * 住所変更明細にネット契約の継続が登録されているか確認する。
	 */
	private boolean isNetKeep(String inAdchgNo) throws Exception
	{
		ArrayList<String> adchgDtlList = new ArrayList<String>();
		// 住所変更明細を検索
		executeKK_T_ADCHG_DTL_KK_SELECT_003(new String[]{inAdchgNo, ADCHG_DTL_SBT_CD_SVC_KEI});
		JBSbatCommonDBInterface adchgDtlInfo = null;
		for (adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext(); adchgDtlInfo != null; adchgDtlInfo = db_KK_T_ADCHG_DTL2.selectNext()) {
			if (adchgDtlInfo == null) {
				throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0210CE, new String[]{"住所変更明細", "住所変更番号:" + inAdchgNo});
			}
			String oldSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
			String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
			// 判定
			if (!isNullBlank(oldSvcKeiNo) && !isNullBlank(newSvcKeiNo) && oldSvcKeiNo.equals(newSvcKeiNo)) {
				// 変更前識別番号と変更後識別番号が同じ場合、引継とみなす
				// 2スキーマの結果を持っている状態でselectNext()メソッドを使用することに対して動作保証が無かったため、
				// 住所変更明細の内容をためておいて個々にサービス契約への検索を行っている。
				adchgDtlList.add(oldSvcKeiNo);
			}
		}
		if(adchgDtlList == null){
			return false;
		}
		// 引継とみなしたサービス契約番号がネットであることを確認する。
		for (String oldSvcKeiNo : adchgDtlList) {
			// サービス契約を検索
			String svcCd = getSvcCd(oldSvcKeiNo, opeDate);
			// ネットの契約なら解約新規として結果を返す。
			if ("01".equals(svcCd)) {
				return true;
			}
		}
		return false;
	}
// IT2-2014-0000040 2014.01.18 Y.Kanata ADD END
// OM-2016-0001519 住所変更中に個別解約されたメールオプションが住所変更確定で引き継がれてしまう 2016/09/20 ADD START
	/**
	 * オプション引継可能かを判定する<br>
	 * @param opSvckeiNo オプションサービス契約番号（転居元）
	 * @return true:可、false:不可
	 * @throws Exception 
	 */
	private boolean isOpHktgiTrgt(String opSvckeiNo) throws Exception {
		
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opSvckeiNo);
		paramList.setValue(opeDate);
		
		// DBアクセスを実行します
		db_KK_T_OP_SVC_KEI.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_126);
		
		if (db_KK_T_OP_SVC_KEI.selectNext() == null) 
		{
			// オプションが利用中、または住変起因で解約済の場合、引継可
			return true;
		}
		
		// オプションが住変起因以外で解約済の場合、引継不可
		return false;
	}
// OM-2016-0001519 住所変更中に個別解約されたメールオプションが住所変更確定で引き継がれてしまう 2016/09/20 ADD END
// OM-2018-0000517 2018/07/20 ADD START
	/**
	 * オプションが引継解約済かを判定する<br>
	 * @param opSvckeiNo オプションサービス契約番号（転居元）
	 * @return true:引継解約済、false:引継解約以外
	 * @throws Exception 
	 */
	private boolean isOpHktgiDlTrgt(String opSvckeiNo) throws Exception {
		
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opSvckeiNo);
		paramList.setValue(opeDate);
		
		// DBアクセスを実行します
		db_KK_T_OP_SVC_KEI.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_135);
		
		if (db_KK_T_OP_SVC_KEI.selectNext() != null)
		{
			// オプションが引継解約済
			return true;
		}
		
		// オプションが引継解約済以外
		return false;
	}
// OM-2018-0000517 2018/07/20 ADD END
	//ANK-3149-04-00 ADD START
	/**
	 * セキュリティーパック操作CCの設定を行う。<br>
	 * @param opSvckeiNo オプションサービス契約番号（転居元）
	 * @return true:可、false:不可
	 * @throws Exception 
	 */
	private void isSecPackOpeMapCC(String inAdchgNo, ArrayList<HashMap<String, Object>> opSvcKeiSecurityOpList, ArrayList<HashMap<String, Object>> wribSvcKeiSecurityOpList, String inMskmNo) throws Exception {
		
		// 住所変更明細を検索
		JBSbatCommonDBInterface adchgDtlInfo = getAdChgDtlInfo(inAdchgNo);
		String dslSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
		String newSvcKeiNo = adchgDtlInfo.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);

		// サービス契約を検索
		JBSbatCommonDBInterface svcKeiInfo = getSvcKeiInfo(newSvcKeiNo);
		if (wrib_op_svc_hktgi_upd_map == null)
		{
			wrib_op_svc_hktgi_upd_map = new HashMap<String,Object>();
		}
		// 機能コード
		wrib_op_svc_hktgi_upd_map.put("func_code", "1");
		// 基準年月日
		wrib_op_svc_hktgi_upd_map.put("base_ymd", opeDate);
		// 引継有無
		wrib_op_svc_hktgi_upd_map.put("hikitugi_um", "1");
		// 異動区分
		wrib_op_svc_hktgi_upd_map.put("ido_div", JKKStrConst.CD00576_ADCHG_ADD);
		
		// 解約用リスト
		List<Map<String, String>> cancelInfoList = new ArrayList<Map<String, String>>();
		
		Map<String, String> cancelInfo = new HashMap<String, String>();
		// SYSID
		cancelInfo.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
		// サービス契約番号
		cancelInfo.put("svc_kei_no", dslSvcKeiNo);
		// 申込明細番号
		cancelInfo.put("mskm_dtl_no", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
		// 更新年月日時分秒
		cancelInfo.put("upd_dtm_bf", getSvkeiLastUpdDtm(dslSvcKeiNo));

		
		//登録用リスト
		List<Map<String, String>> addInfoList = new ArrayList<Map<String, String>>();
		
		Map<String, String> addInfo = new HashMap<String, String>();
		// SYSID
		addInfo.put("sysid", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SYSID));
		// サービス契約番号
		addInfo.put("svc_kei_no", newSvcKeiNo);
		// 申込明細番号
		addInfo.put("mskm_dtl_no", svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
		// 更新年月日時分秒
		addInfo.put("upd_dtm_bf", getSvkeiLastUpdDtm(newSvcKeiNo));
		
		for(int opIdx = 0; opIdx < opSvcKeiSecurityOpList.size(); opIdx++){
			Map<String, Object> opSvcKei = opSvcKeiSecurityOpList.get(opIdx);
			String opSvcKeiNo = "";
			String opSvcCd = "";
			opSvcKeiNo = (String)opSvcKei.get("op_svc_kei_no");
			opSvcCd = (String)opSvcKei.get("op_svc_cd");
			
			//解約済　かつ　異動区分が住所変更登録以外はオプション引継を行わない。
			if (getKK_T_OP_SVC_KEI_KK_SELECT_133(opSvcKeiNo, opeDate)){
				continue;
			}
			//オプションサービスコード マカフィーマルチアクセス
			if (JKKStrConst.OP_SVC_CD_MCAFEE_MULTI_ACCSS.equals(opSvcCd)) {
				// 住所変更用_マカフィーマルチアクセスオプションサービス契約番号
				cancelInfo.put("mcafee_op_svc_kei_no", opSvcKeiNo);
			//オプションサービスコード インターネットサギウォール	
			} else if (JKKStrConst.OP_SVC_CD_INETSGWL.equals(opSvcCd)) {
				// 住所変更用_インターネットサギウォールオプションサービス契約番号
				cancelInfo.put("inetsgwl_op_svc_kei_no", opSvcKeiNo);
				//インターネットサギウォール対象フラグ
				cancelInfo.put("inetsgwl_tg_flg", "1");
				//インターネットサギウォール課金非課金コード
				cancelInfo.put("inetsgwl_chrg_hichrg_cd", "");
				//インターネットサギウォール対象フラグ
				addInfo.put("inetsgwl_tg_flg", "1");
				//インターネットサギウォール利用開始希望日
				addInfo.put("inetsgwl_start_ymd", opeDate);
				
			//オプションサービスコード ノートンファミリープレミア
			} else if (JKKStrConst.OP_SVC_CD_NTFMLPRM.equals(opSvcCd)) {
				// 住所変更用_ノートンファミリープレミアオプションサービス契約番号
				cancelInfo.put("ntfmlprm_op_svc_kei_no", opSvcKeiNo);
				//ノートンファミリープレミア対象フラグ
				cancelInfo.put("ntfmlprm_tg_flg", "1");
				//ノートンファミリープレミア課金非課金コード
				cancelInfo.put("ntfmlprm_chrg_hichrg_cd", "");
				//ノートンファミリープレミア対象フラグ
				addInfo.put("ntfmlprm_tg_flg", "1");
				//ノートンファミリープレミア利用開始希望日
				addInfo.put("ntfmlprm_start_ymd", opeDate);
			}
		}
		//ネットパックの存在チェックを行う。
		for(int wribIdx = 0; wribIdx < wribSvcKeiSecurityOpList.size(); wribIdx++){
			Map<String, Object> opSvcKei = wribSvcKeiSecurityOpList.get(wribIdx);
			String wribSvcKeiNo = "";
			wribSvcKeiNo = (String)opSvcKei.get("wrib_svc_kei_no");
			String[] paramWribSvcKei = {wribSvcKeiNo, opeDate};
			this.executeKK_T_WRIB_SVC_KEI_KK_SELECT_011(paramWribSvcKei);
			JBSbatCommonDBInterface wribSvcKeiMap = db_KK_T_WRIB_SVC_KEI.selectNext();
			//存在チェック
			if(null != wribSvcKeiMap)
			{
				//割引サービス契約ステータス
				String wribSvcKeiStat = nullToBlank(JBSbatStringUtil.Rtrim(wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT)));
				//申込明細番号
				String mskmDtl = nullToBlank(JBSbatStringUtil.Rtrim(wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO)));
				//解約済の場合
				if (JBSbatKKConst.SVC_KEI_STAT_DLS_ZM.equals(wribSvcKeiStat)) {
					wribSvcKeiNo = (String)opSvcKei.get("wrib_svc_kei_no");
					String[] paramWribSvcKei_74 = {inMskmNo, mskmDtl, wribSvcKeiNo, opeDate};
					this.executeKK_T_WRIB_SVC_KEI_KK_SELECT_074(paramWribSvcKei_74);
					JBSbatCommonDBInterface wribSvcKeiMap_74 = db_KK_T_WRIB_SVC_KEI_74.selectNext();
					//住所変更以外での解約された場合、引継を行わない。
					if (wribSvcKeiMap_74 != wribSvcKeiMap){
						//割引サービス契約ステータス
						String cnt = nullToBlank(JBSbatStringUtil.Rtrim(wribSvcKeiMap.getString("cnt")));
						if ("0".equals(cnt)) {
							continue;
						}
					}
					
				}
				// 割引サービス契約ステータスを取得する
				String wribSvcCd = JBSbatStringUtil.Rtrim(wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD));
				//引継対象がセキュリティーパックの場合
				if (JKKStrConst.WRIB_SVC_CD_SECURITY_PACK.equals(wribSvcCd)) {
					//セキュリティーパック対象フラグ
					cancelInfo.put("security_pack_tg_flg", "1");
					//セキュリティーパック課金非課金コード
					cancelInfo.put("security_pack_chrg_hichrg_cd", "");
					//セキュリティーパック対象フラグ
					addInfo.put("security_pack_tg_flg", "1");
				}
				//引継対象がプレミアムパックの場合
				if (JKKStrConst.WRIB_SVC_SMARTLINK_PREMIUM.equals(wribSvcCd)) {
					//プレミアムパック対象フラグ
					cancelInfo.put("premium_pack_tg_flg", "1");
					//プレミアムパック課金非課金コード
					cancelInfo.put("premium_pack_chrg_hichrg_cd", "");
					//プレミアムパック対象フラグ
					addInfo.put("premium_pack_tg_flg", "1");
				}
			}
		}
// OM-2018-0000362 2018/05/10 ADD START
		// 引継対象のオプション（マカフィーマルチアクセス、インターネットサギウォール、
		// ノートンファミリープレミア）が存在する場合
		if (cancelInfo.containsKey("mcafee_op_svc_kei_no")
				|| cancelInfo.containsKey("inetsgwl_op_svc_kei_no")
				|| cancelInfo.containsKey("ntfmlprm_op_svc_kei_no"))
		{
// OM-2018-0000362 2018/05/10 ADD END
		// 解約用マップをリストに設定
		cancelInfoList.add(cancelInfo);
		//登録用マップをリストに設定
		addInfoList.add(addInfo);
		// 解約用マップを設定
		wrib_op_svc_hktgi_upd_map.put("cancel_info_list", cancelInfoList);
		// 登録用リストを設定
		wrib_op_svc_hktgi_upd_map.put("add_info_list", addInfoList);
// OM-2018-0000362 2018/05/10 ADD START
		}
		else
		{
			// エラーが発生しましたが、処理を継続します。エラー内容(%1%)
			String mesInfo = "引継対象のオプション（マカフィーマルチアクセス、インターネットサギウォール、"
				+ "ノートンファミリープレミア）が存在しません"
				+ "（住所変更番号："+ inAdchgNo  + ")";
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{mesInfo});
			
			super.commonItem.addErrorCount(1);
		}
// OM-2018-0000362 2018/05/10 ADD END
		
		return ;
	}
	
	/**
	 * 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 executeKK_T_ADCHG_DTL_KK_SELECT_049(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_049);
	}
	
	/**
	 * 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 executeKK_T_WRIB_SVC_KEI_KK_SELECT_011(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_WRIB_SVC_KEI.selectBySqlDefine(paramList, KK_T_WRIB_SVC_KEI_KK_SELECT_011);
	}
	
	/**
	 * SQLKEY(KK_SELECT_074)で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_WRIB_SVC_KEI_KK_SELECT_074(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_T_WRIB_SVC_KEI_74.selectBySqlDefine(paramList, KK_T_WRIB_SVC_KEI_KK_SELECT_074);
	}
	
	/**
	 * オプションサービス契約のレコードを返却します
	 * <br>
	 * @param opSvcKeiNo オプションサービス契約番号
	 * @param arg1 シード値
	 * @return String 変換後の文字列
	 */
	private boolean getKK_T_OP_SVC_KEI_KK_SELECT_133(String opSvcKeiNo, String opeDate) throws Exception
	{
		boolean bol = false;
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opSvcKeiNo);
		paramList.setValue(opeDate);

		// DBアクセスを実行します(オプションサービス契約番号の降順で結果を取得する)
		db_KK_T_OP_SVC_KEI_133.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_133);
		JBSbatCommonDBInterface opSvcKeiMap = db_KK_T_OP_SVC_KEI_133.selectNext();
		//存在チェック
		if(null != opSvcKeiMap)
		{
			String idoDiv = nullToBlank(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.IDO_DIV));
			String opSvcKeiStat = nullToBlank(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_STAT));
			//解約済　かつ　異動区分が住所変更登録以外はオプション引継を行わない。
			if (JBSbatKKConst.SVC_KEI_STAT_DLS_ZM.equals(opSvcKeiStat) && !JBSbatKKConst.CD00576_IDO_DIV_00019.equals(idoDiv)) {
				bol = true;
			}
		}
		return bol;
	}
	//ANK-3149-04-00 ADD END
	// ANK-4494-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_013)で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_SVKEIUW_EOH_TEL_KK_SELECT_013(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine(paramList, KK_T_SVKEIUW_EOH_TEL_KK_SELECT_013);
	}
	
	/**
	 * ＥＮＵＭ消去ＳＯＤ発行ＣＣのパラメータをセットします
	 * <br>
	 * @param telno オプションサービス契約番号
	 * @param svc_kei_no シード値
	 * @param svc_kei_ucwk_no シード値
	 */
	private void setEnumSodTarget(String telno, String svc_kei_no, String svc_kei_ucwk_no)
	{
		if (enum_sod_target_list == null)
		{
			enum_sod_target_list = new ArrayList<HashMap<String,Object>>();
		}
		
		HashMap<String, Object> targetMap = new HashMap<String, Object>();
		targetMap.put("telno", telno);
		targetMap.put("svc_kei_no", svc_kei_no);
		targetMap.put("svc_kei_ucwk_no", svc_kei_ucwk_no);
		enum_sod_target_list.add(targetMap);
	}
	// ANK-4494-00-00 ADD END
}
