/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKAdChgFinAddRun
*	ソースファイル名	：JBSbatKKAdChgFinAddRun.java
*	作成者				：富士通　
*	作成日				：2012年04月28日
*＜機能概要＞
*　住所変更完了登録実行部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/04/28   富士通		新規作成
*	v5.00.00	2013/02/19	FJ)ASARI	ST2-2013-0000896対応
*	v8.00.00	2014/04/25	FJ)星野		OM-2014-0001653対応
*	v8.01.00	2014/06/03	FJ)星野		OM-2014-0001576対応
*	v19.00.00	2015/12/04	FJ)星野		OM-2015-0000962対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatKKIFM101;
import eo.business.util.table.JBSbatKK_T_ADCHG;
import eo.business.util.table.JBSbatKK_T_ADCHM_TPPV;
import eo.business.util.table.JBSbatKK_T_KAISEN_TG_SVKEI;
import eo.business.util.table.JBSbatKK_T_SVKEI_EXC_CTRL;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.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.JBSbatOracleSeqUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKAdChgFinAddRun extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(住所変更)*/
	private static final String D_TBL_NAME_KK_T_ADCHG = "KK_T_ADCHG";

	/** テーブル(サービス契約回線内訳)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";

	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_TG_SVKEI = "KK_T_KAISEN_TG_SVKEI";

	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

// IT1-2013-0000759対応 20130404 星野 ADD START
	/** テーブル(サービス契約排他制御)*/
	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_SVC_KEI = "KK_T_SVC_KEI";
// IT1-2013-0000759対応 20130404 星野 ADD END

// IT2-2013-0000596 2013.07.08 T.TORIKAI ADD
	/** テーブル(住所変更申込一時保存) */
	private static final String D_TBL_NAME_KK_T_ADCHM_TPPV = "KK_T_ADCHM_TPPV";
//IT2-2013-0000596 2013.07.08 T.TORIKAI END

// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD START
	/** テーブル(住所変更明細) */
	private static final String D_TBL_NAME_KK_T_ADCHG_DTL = "KK_T_ADCHG_DTL";
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD END

	/** SQL定義キー(KK_UPDATE_001)*/
	private static final String KK_T_ADCHG_KK_UPDATE_001 = "KK_UPDATE_001";

	/** SQL定義キー(KK_UPDATE_001)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_UPDATE_001 = "KK_UPDATE_001";

	/** SQL定義キー(KK_UPDATE_002)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_UPDATE_002 = "KK_UPDATE_002";

	/** SQL定義キー(KK_UPDATE_001)*/
	private static final String KK_T_KAISEN_TG_SVKEI_KK_UPDATE_001 = "KK_UPDATE_001";

	/** SQL定義キー(KK_UPDATE_002)*/
	private static final String KK_T_KAISEN_TG_SVKEI_KK_UPDATE_002 = "KK_UPDATE_002";

	/* ++++++++++ v19.00.00 DEL START ++++++++++ */
//// OM-2013-0004120対応 20131219 星野 ADD START
//	/** SQL定義キー(KK_UPDATE_003)*/
//	private static final String KK_T_KAISEN_TG_SVKEI_KK_UPDATE_003 = "KK_UPDATE_003";
//// OM-2013-0004120対応 20131219 星野 ADD END
	/* ++++++++++ v19.00.00 DEL END   ++++++++++ */
	
	/* ++++++++++ v19.00.00 ADD START ++++++++++ */
	/** SQL定義キー(KK_UPDATE_004)*/
	private static final String KK_T_KAISEN_TG_SVKEI_KK_UPDATE_004 = "KK_UPDATE_004";
	/* ++++++++++ v19.00.00 ADD END   ++++++++++ */
	
	/** SQL定義キー(KK_SELECT_009)*/
	private static final String KK_T_PRG_KK_SELECT_009 = "KK_SELECT_009";

// IT1-2013-0000759対応 20130404 星野 ADD START
	/** SQL定義キー(KK_UPDATE_014)*/
	private static final String KK_T_SVC_KEI_KK_UPDATE_014 = "KK_UPDATE_014";
	
	/** SQL定義キー(KK_UPDATE_002)*/
	private static final String KK_T_SVKEI_EXC_CTRL_KK_UPDATE_002 = "KK_UPDATE_002";
// IT1-2013-0000759対応 20130404 星野 ADD END

// IT2-2013-0000596 2013.07.08 T.TORIKAI ADD
	/** SQL定義キー(住所変更申込一時保存 KK_SELECT_001) */
	private static final String KK_T_ADCHM_TPPV_KK_SELECT_001 = "KK_SELECT_001";
//IT2-2013-0000596 2013.07.08 T.TORIKAI END

	/** テーブルアクセスクラス(住所変更)*/
	private JBSbatSQLAccess db_KK_T_ADCHG = null;

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;

	/** テーブルアクセスクラス(回線対象サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_TG_SVKEI = null;

	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;
	
// IT1-2013-0000759対応 20130404 星野 ADD START
	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
// IT1-2013-0000759対応 20130404 星野 ADD END

// IT2-2013-0000596 2013.07.08 T.TORIKAI ADD
	/** テーブルアクセスクラス(住所変更申込一時保存) */
	private JBSbatSQLAccess db_KK_T_ADCHM_TPPV = null;
//IT2-2013-0000596 2013.07.08 T.TORIKAI END

// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD START
	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL = null;
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD END

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_ADCHG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
		db_KK_T_KAISEN_TG_SVKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_TG_SVKEI);
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
// IT1-2013-0000759対応 20130404 星野 ADD START
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
// IT1-2013-0000759対応 20130404 星野 ADD END
// IT2-2013-0000596 2013.07.08 T.TORIKAI ADD
		db_KK_T_ADCHM_TPPV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHM_TPPV);
// IT2-2013-0000596 2013.07.08 T.TORIKAI END
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD START
		db_KK_T_ADCHG_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG_DTL);
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		// +++++ 初期処理 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		// ----- 入力電文 -----
		// 住所変更番号
		String inAdchgNo = inMap.getString(JBSbatKKIFM101.ADCHG_NO);
		// 移転元サービス契約回線内訳番号
		String inItnmSvcKeiKaisenUcwkNo = inMap.getString(JBSbatKKIFM101.ITNM_SVC_KEI_KAISEN_UCWK_NO);
		// 移転元サービス契約回線内訳世代登録年月日時分秒
		String inItnmKaisenUcwkGeneAddDtm = inMap.getString(JBSbatKKIFM101.ITNM_KAISEN_UCWK_GENE_ADD_DTM);
		// 移転先サービス契約回線内訳番号
		String inItnsSvcKeiKaisenUcwkNo = inMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_KAISEN_UCWK_NO);
		// 移転先サービス契約回線内訳世代登録年月日時分秒
		String inItnsKaisenUcwkGeneAddDtm = inMap.getString(JBSbatKKIFM101.ITNS_KAISEN_UCWK_GENE_ADD_DTM);
		// 移転元サービス契約番号（ネット）
		String inItnmSvcKeiNoNet = inMap.getString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_NET);
		// 移転先サービス契約番号（ネット）
		String inItnsSvcKeiNoNet = inMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_NET);
		// 移転元サービス契約番号（電話）
		String inItnmSvcKeiNoTel = inMap.getString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TEL);
		// 移転先サービス契約番号（電話）
		String inItnsSvcKeiNoTel = inMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TEL);
		// 移転元サービス契約番号（ＴＶ）
		String inItnmSvcKeiNoTv = inMap.getString(JBSbatKKIFM101.ITNM_SVC_KEI_NO_TV);
		// 移転先サービス契約番号（ＴＶ）
		String inItnsSvcKeiNoTv = inMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_NO_TV);
		// 移転先工事案件番号（ネット）
		String itnsKojiakNoNet = inMap.getString(JBSbatKKIFM101.ITNS_KOJIAK_NO_NET);
		// 現基本工事案件番号（ネット）
		String curKihonKojiakNoNet = inMap.getString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_NO_NET);
		// 移転先工事案件番号（ＴＶ）
		String itnsKojiakNoTv = inMap.getString(JBSbatKKIFM101.ITNS_KOJIAK_NO_TV);
		// 現基本工事案件番号（ＴＶ）
		String curKihonKojiakNoTv = inMap.getString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_NO_TV);
		// 使用開始年月日
		String inUseStaymd = inMap.getString(JBSbatKKIFM101.USE_STAYMD);
		// 使用終了年月日
		String inUseEndymd = inMap.getString(JBSbatKKIFM101.USE_ENDYMD);
		// 回線内訳使用開始年月日（ネット）
		String inKaisenUcwkUseStaymdNet = inMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_NET);
		// 回線内訳使用終了年月日（ネット）
		String inKaisenUcwkUseEndymdNet = inMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_NET);
		// 回線内訳使用開始年月日（電話）
		String inKaisenUcwkUseStaymdTel = inMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TEL);
		// 回線内訳使用終了年月日（電話）
		String inKaisenUcwkUseEndymdTel = inMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TEL);
		// 回線内訳使用開始年月日（ＴＶ）
		String inKaisenUcwkUseStaymdTv = inMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_STAYMD_TV);
		// 回線内訳使用終了年月日（ＴＶ）
		String inKaisenUcwkUseEndymdTv = inMap.getString(JBSbatKKIFM101.KAISEN_UCWK_USE_ENDYMD_TV);
		// 住所変更確定年月日時分秒
		String adchgFixDtm = inMap.getString(JBSbatKKIFM101.ADCHG_FIX_DTM);
		// 工事受付契機異動年月日時分秒
		String kojiUkOptntyIdoDtm = inMap.getString(JBSbatKKIFM101.KOJI_UK_OPTNTY_IDO_DTM);
		// ＯＰＭＳ変更連携要否（ネット）
		String opmsChgeRnkiYhNet = inMap.getString(JBSbatKKIFM101.OPMS_CHGE_RNKI_YH_NET);
		// ＯＰＭＳ変更連携要否（ＴＶ）
		String opmsChgeRnkiYhTv = inMap.getString(JBSbatKKIFM101.OPMS_CHGE_RNKI_YH_TV);
		// 住所変更更新年月日時分秒
		String inAdchgUpdDtm = inMap.getString(JBSbatKKIFM101.ADCHG_UPD_DTM);
		// 移転元サービス契約回線内訳更新年月日時分秒
		String inItnmSvkeiKaisenUwUpdDtm = inMap.getString(JBSbatKKIFM101.ITNM_SVKEI_KAISEN_UW_UPD_DTM);
		// 移転先サービス契約回線内訳更新年月日時分秒
		String inItnsSvkeiKaisenUwUpdDtm = inMap.getString(JBSbatKKIFM101.ITNS_SVKEI_KAISEN_UW_UPD_DTM);
		// 移転元回線対象サービス契約更新年月日時分秒（ネット）
		String inItnmKisnTgSvkeiUpdDtmNet = inMap.getString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_NET);
		// 移転先回線対象サービス契約更新年月日時分秒（ネット）
		String inItnsKisnTgSvkeiUpdDtmNet = inMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_NET);
		// 移転元回線対象サービス契約更新年月日時分秒（電話）
		String inItnmKisnTgSvkeiUpdDtmTel = inMap.getString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TEL);
		// 移転先回線対象サービス契約更新年月日時分秒（電話）
		String inItnsKisnTgSvkeiUpdDtmTel = inMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TEL);
		// 移転元回線対象サービス契約更新年月日時分秒（ＴＶ）
		String inItnmKisnTgSvkeiUpdDtmTv = inMap.getString(JBSbatKKIFM101.ITNM_KISN_TG_SVKEI_UPD_DTM_TV);
		// 移転先回線対象サービス契約更新年月日時分秒（ＴＶ）
		String inItnsKisnTgSvkeiUpdDtmTv = inMap.getString(JBSbatKKIFM101.ITNS_KISN_TG_SVKEI_UPD_DTM_TV);
		// 移転先工事案件更新年月日時分秒（ネット）
		String itnsKojiakUpdDtmNet = inMap.getString(JBSbatKKIFM101.ITNS_KOJIAK_UPD_DTM_NET);
		// 現基本工事案件更新年月日時分秒（ネット）
		String curKihonKojiakUpdDtmNet = inMap.getString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_UPD_DTM_NET);
		// 移転先工事案件更新年月日時分秒（ＴＶ）
		String itnsKojiakUpdDtmTv = inMap.getString(JBSbatKKIFM101.ITNS_KOJIAK_UPD_DTM_TV);
		// 現基本工事案件更新年月日時分秒（ＴＶ）
		String curKihonKojiakUpdDtmTv = inMap.getString(JBSbatKKIFM101.CUR_KIHON_KOJIAK_UPD_DTM_TV);
		// 進捗サービス契約番号（ネット）
		String prgSvcKeiNoNet = inMap.getString(JBSbatKKIFM101.PRG_SVC_KEI_NO_NET);
// OM-2014-0001653対応 20140425 星野 ADD START
		// 進捗サービス契約番号（ネット・解約側）
		String prgSvcKeiNoNetDsl = inMap.getString(JBSbatKKIFM101.PRG_SVC_KEI_NO_NET_DSL);
// OM-2014-0001653対応 20140425 星野 ADD END
		// 進捗サービス契約番号（電話）
		String prgSvcKeiNoTel = inMap.getString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TEL);
		// 進捗サービス契約番号（ＴＶ）
		String prgSvcKeiNoTv = inMap.getString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TV);
// OM-2014-0001653対応 20140425 星野 ADD START
		// 進捗サービス契約番号（ＴＶ・解約側）
		String prgSvcKeiNoTvDsl = inMap.getString(JBSbatKKIFM101.PRG_SVC_KEI_NO_TV_DSL);
// OM-2014-0001653対応 20140425 星野 ADD END
		// 契約者住所変更有無
		String kshadChgUm = inMap.getString(JBSbatKKIFM101.KSHAD_CHG_UM);
		// 移転先提供方式契約初期化有無
		String itnsTkHoshikiKeiInitUm = inMap.getString(JBSbatKKIFM101.ITNS_TK_HOSHIKI_KEI_INIT_UM);
		// 移転先提供方式契約初期化有無
		String itnsMansionBukkenInitUm = inMap.getString(JBSbatKKIFM101.ITNS_MANSION_BUKKEN_INIT_UM);
		// 移転先サービス契約最終更新年月日時分秒（ネット）
		String itnsSvcKeiLastUpdDtmNet = inMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_NET);
		// 移転先サービス契約最終更新年月日時分秒（電話）
		String itnsSvcKeiLastUpdDtmTel = inMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_TEL);
		// 移転先サービス契約最終更新年月日時分秒（ＴＶ）
		String itnsSvcKeiLastUpdDtmTv = inMap.getString(JBSbatKKIFM101.ITNS_SVC_KEI_LAST_UPD_DTM_TV);
// IT1-2013-0000759対応 20130404 星野 ADD START
		// 引継先サービス契約番号（ネット）
		String hktgsSvcKeiNoNet = inMap.getString(JBSbatKKIFM101.HKTGS_SVC_KEI_NO_NET);
		// 引継先サービス契約世代登録年月日時分秒（ネット）
		String hktgsSvcKeiGeneAddDtmNet = inMap.getString(JBSbatKKIFM101.HKTGS_SVC_KEI_GENE_ADD_DTM_NET);
		// サービス開始年月日（ネット）
		String svcStaYmdNet = inMap.getString(JBSbatKKIFM101.SVC_STAYMD_NET);
		// 引継先サービス契約最終更新年月日時分秒（ネット）
		String hktgsSvcKeiLastUpdDtmNet = inMap.getString(JBSbatKKIFM101.HKTGS_SVC_KEI_LAST_UPD_DTM_NET);
		// 引継先サービス契約番号（ＴＶ）
		String hktgsSvcKeiNoTv = inMap.getString(JBSbatKKIFM101.HKTGS_SVC_KEI_NO_TV);
		// 引継先サービス契約世代登録年月日時分秒（ＴＶ）
		String hktgsSvcKeiGeneAddDtmTv = inMap.getString(JBSbatKKIFM101.HKTGS_SVC_KEI_GENE_ADD_DTM_TV);
		// サービス開始年月日（ＴＶ）
		String svcStaYmdTv = inMap.getString(JBSbatKKIFM101.SVC_STAYMD_TV);
		// 引継先サービス契約最終更新年月日時分秒（ＴＶ）
		String hktgsSvcKeiLastUpdDtmTv = inMap.getString(JBSbatKKIFM101.HKTGS_SVC_KEI_LAST_UPD_DTM_TV);
// IT1-2013-0000759対応 20130404 星野 ADD END
// OM-2013-0004120対応 20131219 星野 ADD START
		// 取消サービス契約番号（ネット）
		String cnclSvcKeiNoNet = inMap.getString(JBSbatKKIFM101.CNCL_SVC_KEI_NO_NET);
		// 取消サービス契約番号（電話）
		String cnclSvcKeiNoTel = inMap.getString(JBSbatKKIFM101.CNCL_SVC_KEI_NO_TEL);
		// 取消サービス契約番号（ＴＶ）
		String cnclSvcKeiNoTv = inMap.getString(JBSbatKKIFM101.CNCL_SVC_KEI_NO_TV);
		// 取消回線対象サービス契約更新年月日時分秒（ネット）
		String cnclKisnTgSvkeiUpdDtmNet = inMap.getString(JBSbatKKIFM101.CNCL_KISN_TG_SVKEI_UPD_DTM_NET);
		// 取消回線対象サービス契約更新年月日時分秒（電話）
		String cnclKisnTgSvkeiUpdDtmTel = inMap.getString(JBSbatKKIFM101.CNCL_KISN_TG_SVKEI_UPD_DTM_TEL);
		// 取消回線対象サービス契約更新年月日時分秒（ＴＶ）
		String cnclKisnTgSvkeiUpdDtmTv = inMap.getString(JBSbatKKIFM101.CNCL_KISN_TG_SVKEI_UPD_DTM_TV);
		// 取消年月日
		String cnclYmd = inMap.getString(JBSbatKKIFM101.CNCL_YMD);
// OM-2013-0004120対応 20131219 星野 ADD END

// ST1-2013-0000503対応 20130328 星野 DEL START
// 元に戻す
//// ST2-2013-0000968 2013.02.21 suzuki add start
//		// 移転先サービス契約回線内訳 更新したかどうかのフラグ
//		// 更新した場合だけ住所変更スキーマを更新するようにする。
//		boolean itnsSKKUUpdated = false;
//// ST2-2013-0000968 2013.02.21 suzuki add end
// ST1-2013-0000503対応 20130328 星野 DEL END
		
		// +++++ 主処理 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ST1-2013-0000503対応 20130328 星野 MOD START
// 削除箇所を復活
// ST2-2013-0000968 2013.02.21 suzuki del start  ↓に移動
		// ----- 住所変更 -----
		if (!(isBlank(inAdchgNo) || isBlank(inAdchgUpdDtm))) {
// OM-2014-0001576対応 20140604 星野 DEL START
// JBSbatKKAdChgSodUpdの頭に移動。
//			// 排他ロック
//			lockAdchg(inAdchgNo, inAdchgUpdDtm);
//			// 更新処理
//			executeKK_T_ADCHG_KK_UPDATE_001(new String[]{inAdchgNo});
// OM-2014-0001576対応 20140604 星野 DEL END

// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD START
			// 住所変更明細の登録処理
			// コース変更確定バッチ処理用の確定時運用日付を保存する。
			addAdchgDtl(inAdchgNo);
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD END
			
// IT2-2013-0000596 2013.07.08 T.TORIKAI ADD
			// 住所変更ステータス：完了済 に更新したので、住所変更申込一時保存を論理削除する
			deleteAdchmTppv(inAdchgNo);
// IT2-2013-0000596 2013.07.08 T.TORIKAI DEL
		}
// ST2-2013-0000968 2013.02.21 suzuki del end
// ST1-2013-0000503対応 20130328 星野 MOD END

		// ----- 移転元サービス契約回線内訳 -----
		if (!(isBlank(inItnmSvcKeiKaisenUcwkNo) || isBlank(inItnmKaisenUcwkGeneAddDtm)
				|| isBlank(inUseEndymd) || isBlank(inItnmSvkeiKaisenUwUpdDtm))) {
			// 排他ロック
			lockSvkeiKaisenUw(inItnmSvcKeiKaisenUcwkNo, inItnmKaisenUcwkGeneAddDtm, inItnmSvkeiKaisenUwUpdDtm);
			// 更新処理
			executeKK_T_SVKEI_KAISEN_UW_KK_UPDATE_001(
					new String[]{inUseEndymd, inItnmSvcKeiKaisenUcwkNo, inItnmKaisenUcwkGeneAddDtm});
		}

		// ----- 移転先サービス契約回線内訳 -----
		if (!(isBlank(inItnsSvcKeiKaisenUcwkNo) || isBlank(inItnsKaisenUcwkGeneAddDtm)
				|| isBlank(inUseStaymd) || isBlank(inItnsSvkeiKaisenUwUpdDtm))) {
			// 排他ロック
			lockSvkeiKaisenUw(inItnsSvcKeiKaisenUcwkNo, inItnsKaisenUcwkGeneAddDtm, inItnsSvkeiKaisenUwUpdDtm);
			// 更新処理
			executeKK_T_SVKEI_KAISEN_UW_KK_UPDATE_002(
					new String[]{inUseStaymd, inItnsSvcKeiKaisenUcwkNo, inItnsKaisenUcwkGeneAddDtm});
// ST1-2013-0000503対応 20130328 星野 DEL START
// 元に戻す
//// ST2-2013-0000968 2013.02.21 suzuki add start
//			itnsSKKUUpdated = true;
//// ST2-2013-0000968 2013.02.21 suzuki add end
// ST1-2013-0000503対応 20130328 星野 DEL END
		}

		// ----- 移転元回線対象サービス契約（ネット） -----
		if (!(isBlank(inItnmSvcKeiNoNet) || isBlank(inItnmSvcKeiKaisenUcwkNo)
				|| isBlank(inKaisenUcwkUseEndymdNet) || isBlank(inItnmKisnTgSvkeiUpdDtmNet))) {
			// 排他ロック
			lockKaisenTgSvkei(inItnmSvcKeiNoNet, inItnmSvcKeiKaisenUcwkNo, inItnmKisnTgSvkeiUpdDtmNet);
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_001(
					new String[]{inKaisenUcwkUseEndymdNet, inItnmSvcKeiNoNet, inItnmSvcKeiKaisenUcwkNo});
		}

		// ----- 移転先回線対象サービス契約（ネット） -----
		if (!(isBlank(inItnsSvcKeiNoNet) || isBlank(inItnsSvcKeiKaisenUcwkNo)
				|| isBlank(inKaisenUcwkUseStaymdNet) || isBlank(inItnsKisnTgSvkeiUpdDtmNet))) {
			// 排他ロック
			lockKaisenTgSvkei(inItnsSvcKeiNoNet, inItnsSvcKeiKaisenUcwkNo, inItnsKisnTgSvkeiUpdDtmNet);
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_002(
					new String[]{inKaisenUcwkUseStaymdNet, inItnsSvcKeiNoNet, inItnsSvcKeiKaisenUcwkNo});
		}
		
// OM-2013-0004120対応 20131219 星野 ADD START
		// ----- 移転先回線対象サービス契約（ネット）（取消） -----
		if (!(isBlank(cnclSvcKeiNoNet) || isBlank(inItnsSvcKeiKaisenUcwkNo)
				|| isBlank(cnclYmd) || isBlank(cnclKisnTgSvkeiUpdDtmNet))) {
			// 排他ロック
			lockKaisenTgSvkei(cnclSvcKeiNoNet, inItnsSvcKeiKaisenUcwkNo, cnclKisnTgSvkeiUpdDtmNet);
			/* ++++++++++ v19.00.00 MOD START ++++++++++ */
//			// 更新処理
//			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_003(
//					new String[]{cnclSvcKeiNoNet, inItnsSvcKeiKaisenUcwkNo});
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_004(
				new String[]{
					this.opeDate, 
					JBSbatDateUtil.adjustDate(this.opeDate, -1), 
					cnclSvcKeiNoNet, 
					inItnsSvcKeiKaisenUcwkNo
				}
			);
			/* ++++++++++ v19.00.00 MOD END   ++++++++++ */
		}
// OM-2013-0004120対応 20131219 星野 ADD END

		// ----- 移転元回線対象サービス契約（電話） -----
		if (!(isBlank(inItnmSvcKeiNoTel) || isBlank(inItnmSvcKeiKaisenUcwkNo)
				|| isBlank(inKaisenUcwkUseEndymdTel) || isBlank(inItnmKisnTgSvkeiUpdDtmTel))) {
			// 排他ロック
			lockKaisenTgSvkei(inItnmSvcKeiNoTel, inItnmSvcKeiKaisenUcwkNo, inItnmKisnTgSvkeiUpdDtmTel);
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_001(
					new String[]{inKaisenUcwkUseEndymdTel, inItnmSvcKeiNoTel, inItnmSvcKeiKaisenUcwkNo});
		}

		// ----- 移転先回線対象サービス契約（電話） -----
		if (!(isBlank(inItnsSvcKeiNoTel) || isBlank(inItnsSvcKeiKaisenUcwkNo)
				|| isBlank(inKaisenUcwkUseStaymdTel) || isBlank(inItnsKisnTgSvkeiUpdDtmTel))) {
			// 排他ロック
			lockKaisenTgSvkei(inItnsSvcKeiNoTel, inItnsSvcKeiKaisenUcwkNo, inItnsKisnTgSvkeiUpdDtmTel);
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_002(
					new String[]{inKaisenUcwkUseStaymdTel, inItnsSvcKeiNoTel, inItnsSvcKeiKaisenUcwkNo});
		}

// OM-2013-0004120対応 20131219 星野 ADD START
		// ----- 移転先回線対象サービス契約（電話）（取消） -----
		if (!(isBlank(cnclSvcKeiNoTel) || isBlank(inItnsSvcKeiKaisenUcwkNo)
				|| isBlank(cnclYmd) || isBlank(cnclKisnTgSvkeiUpdDtmTel))) {
			// 排他ロック
			lockKaisenTgSvkei(cnclSvcKeiNoTel, inItnsSvcKeiKaisenUcwkNo, cnclKisnTgSvkeiUpdDtmTel);
			/* ++++++++++ v19.00.00 MOD START ++++++++++ */
//			// 更新処理
//			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_003(
//					new String[]{cnclSvcKeiNoTel, inItnsSvcKeiKaisenUcwkNo});
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_004(
				new String[]{
					this.opeDate, 
					JBSbatDateUtil.adjustDate(this.opeDate, -1), 
					cnclSvcKeiNoTel, 
					inItnsSvcKeiKaisenUcwkNo
				}
			);
			/* ++++++++++ v19.00.00 MOD END   ++++++++++ */
		}
// OM-2013-0004120対応 20131219 星野 ADD END

		// ----- 移転元回線対象サービス契約（ＴＶ） -----
		if (!(isBlank(inItnmSvcKeiNoTv) || isBlank(inItnmSvcKeiKaisenUcwkNo)
				|| isBlank(inKaisenUcwkUseEndymdTv) || isBlank(inItnmKisnTgSvkeiUpdDtmTv))) {
			// 排他ロック
			lockKaisenTgSvkei(inItnmSvcKeiNoTv, inItnmSvcKeiKaisenUcwkNo, inItnmKisnTgSvkeiUpdDtmTv);
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_001(
					new String[]{inKaisenUcwkUseEndymdTv, inItnmSvcKeiNoTv, inItnmSvcKeiKaisenUcwkNo});
		}

		// ----- 移転先回線対象サービス契約（ＴＶ） -----
		if (!(isBlank(inItnsSvcKeiNoTv) || isBlank(inItnsSvcKeiKaisenUcwkNo)
				|| isBlank(inKaisenUcwkUseStaymdTv) || isBlank(inItnsKisnTgSvkeiUpdDtmTv))) {
			// 排他ロック
			lockKaisenTgSvkei(inItnsSvcKeiNoTv, inItnsSvcKeiKaisenUcwkNo, inItnsKisnTgSvkeiUpdDtmTv);
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_002(
					new String[]{inKaisenUcwkUseStaymdTv, inItnsSvcKeiNoTv, inItnsSvcKeiKaisenUcwkNo});
		}
		
// OM-2013-0004120対応 20131219 星野 ADD START
		// ----- 移転先回線対象サービス契約（ＴＶ）（取消） -----
		if (!(isBlank(cnclSvcKeiNoTv) || isBlank(inItnsSvcKeiKaisenUcwkNo)
				|| isBlank(cnclYmd) || isBlank(cnclKisnTgSvkeiUpdDtmTv))) {
			// 排他ロック
			lockKaisenTgSvkei(cnclSvcKeiNoTv, inItnsSvcKeiKaisenUcwkNo, cnclKisnTgSvkeiUpdDtmTv);
			/* ++++++++++ v19.00.00 MOD START ++++++++++ */
//			// 更新処理
//			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_003(
//					new String[]{cnclSvcKeiNoTv, inItnsSvcKeiKaisenUcwkNo});
			// 更新処理
			executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_004(
				new String[]{
					this.opeDate, 
					JBSbatDateUtil.adjustDate(this.opeDate, -1), 
					cnclSvcKeiNoTv, 
					inItnsSvcKeiKaisenUcwkNo
				}
			);
			/* ++++++++++ v19.00.00 MOD END   ++++++++++ */
		}
// OM-2013-0004120対応 20131219 星野 ADD END

// IT1-2013-0000759対応 20130404 星野 ADD START
		// ----- サービス契約引継（ネット） -----
		if (!(isBlank(hktgsSvcKeiNoNet) || isBlank(hktgsSvcKeiGeneAddDtmNet)
				|| isBlank(svcStaYmdNet) || isBlank(hktgsSvcKeiLastUpdDtmNet))) {
			// 排他ロック
			lockSvcKei(hktgsSvcKeiNoNet, hktgsSvcKeiLastUpdDtmNet);
			// 更新処理
			executeKK_T_SVC_KEI_KK_UPDATE_014(new String[]{svcStaYmdNet, hktgsSvcKeiNoNet, hktgsSvcKeiGeneAddDtmNet});
			executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(new String[]{JKKBatCommon.getSysDateTimeStamp(), hktgsSvcKeiNoNet});

		}
		
		// ----- サービス契約引継（ＴＶ） -----
		if (!(isBlank(hktgsSvcKeiNoTv) || isBlank(hktgsSvcKeiGeneAddDtmTv)
				|| isBlank(svcStaYmdTv) || isBlank(hktgsSvcKeiLastUpdDtmTv))) {
			// 排他ロック
			lockSvcKei(hktgsSvcKeiNoTv, hktgsSvcKeiLastUpdDtmTv);
			// 更新処理
			executeKK_T_SVC_KEI_KK_UPDATE_014(new String[]{svcStaYmdTv, hktgsSvcKeiNoTv, hktgsSvcKeiGeneAddDtmTv});
			executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(new String[]{JKKBatCommon.getSysDateTimeStamp(), hktgsSvcKeiNoTv});

		}
// IT1-2013-0000759対応 20130404 星野 ADD END
		// ----- 移転先工事案件（ネット） -----
		if (!(isBlank(itnsKojiakNoNet) || isBlank(opmsChgeRnkiYhNet) || isBlank(adchgFixDtm) || isBlank(kojiUkOptntyIdoDtm)
				|| isBlank(itnsKojiakUpdDtmNet))) {
			// 排他ロック
			lockKojiak(itnsKojiakNoNet, itnsKojiakUpdDtmNet);
			// 更新処理
			String opmsChgeRnkiYh = null;
			if ("1".equals(opmsChgeRnkiYhNet)) {
				opmsChgeRnkiYh = "1";
			}
			executeKU_T_KOJIAK_PKUPDATE(
					new String[]{opmsChgeRnkiYh, "1", adchgFixDtm, kojiUkOptntyIdoDtm}, new String[]{itnsKojiakNoNet});
		}

		// ----- 現基本工事案件（ネット） -----
		if (!(isBlank(curKihonKojiakNoNet) ||  isBlank(kojiUkOptntyIdoDtm) || isBlank(curKihonKojiakUpdDtmNet))) {
			// 排他ロック
			lockKojiak(curKihonKojiakNoNet, curKihonKojiakUpdDtmNet);
			// 更新処理
			executeKU_T_KOJIAK_PKUPDATE(
					new String[]{null, "0", null, kojiUkOptntyIdoDtm}, new String[]{curKihonKojiakNoNet});
		}

		// ----- 移転先工事案件（ＴＶ） -----
		if (!(isBlank(itnsKojiakNoTv) || isBlank(opmsChgeRnkiYhTv) || isBlank(adchgFixDtm) || isBlank(kojiUkOptntyIdoDtm)
				|| isBlank(itnsKojiakUpdDtmTv))) {
			// 排他ロック
			lockKojiak(itnsKojiakNoTv, itnsKojiakUpdDtmTv);
			// 更新処理
			String opmsChgeRnkiYh = null;
			if ("1".equals(opmsChgeRnkiYhTv)) {
				opmsChgeRnkiYh = "1";
			}
			executeKU_T_KOJIAK_PKUPDATE(
					new String[]{opmsChgeRnkiYh, "1", adchgFixDtm, kojiUkOptntyIdoDtm}, new String[]{itnsKojiakNoTv});
		}

		// ----- 現基本工事案件（ＴＶ） -----
		if (!(isBlank(curKihonKojiakNoTv) ||  isBlank(kojiUkOptntyIdoDtm) || isBlank(curKihonKojiakUpdDtmTv))) {
			// 排他ロック
			lockKojiak(curKihonKojiakNoTv, curKihonKojiakUpdDtmTv);
			// 更新処理
			executeKU_T_KOJIAK_PKUPDATE(
					new String[]{null, "0", null, kojiUkOptntyIdoDtm}, new String[]{curKihonKojiakNoTv});
		}

		
// ST1-2013-0000503対応 20130328 星野 DEL START
// 元に戻す
//// ST2-2013-0000968 2013.02.21 suzuki add start 上にあったのを移動＋条件追加(itnsSKKUUpdated)
//		// ----- 住所変更 -----
//		// 移転先サービス契約回線内訳 を更新したときに、更新するように条件を追加
//		if (!(isBlank(inAdchgNo) || isBlank(inAdchgUpdDtm))
//				&& itnsSKKUUpdated ) {
//			// 排他ロック
//			lockAdchg(inAdchgNo, inAdchgUpdDtm);
//			// 更新処理
//			executeKK_T_ADCHG_KK_UPDATE_001(new String[]{inAdchgNo});
//		}
//// ST2-2013-0000968 2013.02.21 suzuki add start
// ST1-2013-0000503対応 20130328 星野 DEL END

		// ----- 進捗 -----
		if (!isBlank(prgSvcKeiNoNet)) {
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
//			addPrg(prgSvcKeiNoNet, "6100");
//			if (kshadChgUm != null && "1".equals(kshadChgUm)) {
//				addPrg(prgSvcKeiNoNet, "E010");
//			}
			addPrg(prgSvcKeiNoNet, "6100", kshadChgUm);
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
		}
		
// OM-2014-0001653対応 20140425 星野 ADD START
		// 解約/新規の解約側
		if (!isBlank(prgSvcKeiNoNetDsl)) {
			addPrg(prgSvcKeiNoNetDsl, "6100", kshadChgUm);
		}
// OM-2014-0001653対応 20140425 星野 ADD END
		
		if (!isBlank(prgSvcKeiNoTel)) {
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
//			addPrg(prgSvcKeiNoTel, "6100");
//			if (kshadChgUm != null && "1".equals(kshadChgUm)) {
//				addPrg(prgSvcKeiNoTel, "E010");
//			}
			addPrg(prgSvcKeiNoTel, "6100", kshadChgUm);
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
		}
		
		if (!isBlank(prgSvcKeiNoTv)) {
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
//			addPrg(prgSvcKeiNoTv, "6100");
//			if (kshadChgUm != null && "1".equals(kshadChgUm)) {
//				addPrg(prgSvcKeiNoTv, "E010");
//			}
			addPrg(prgSvcKeiNoTv, "6100", kshadChgUm);
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
		}
		
// OM-2014-0001653対応 20140425 星野 ADD START
		// 解約/新規の解約側
		if (!isBlank(prgSvcKeiNoTvDsl)) {
			addPrg(prgSvcKeiNoTvDsl, "6100", kshadChgUm);
		}
// OM-2014-0001653対応 20140425 星野 ADD END

		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_ADCHG.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
		db_KK_T_KAISEN_TG_SVKEI.close();
		db_KU_T_KOJIAK.close();
// IT1-2013-0000759対応 20130404 星野 ADD START
		db_KK_T_SVKEI_EXC_CTRL.close();
		db_KK_T_SVC_KEI.close();
// IT1-2013-0000759対応 20130404 星野 ADD END
// IT2-2013-0000596 2013.07.08 T.TORIKAI ADD
		db_KK_T_ADCHM_TPPV.close();
// IT2-2013-0000596 2013.07.08 T.TORIKAI END
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD START
		db_KK_T_ADCHG_DTL.close();
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_UPDATE_001)で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_KK_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHG.executeBySqlDefine(paramList, KK_T_ADCHG_KK_UPDATE_001);
	}

	/**
	 * SQLKEY(KK_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	使用終了年月日
	 *		 	サービス契約回線内訳番号
	 *		 	世代登録年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_KAISEN_UW_KK_UPDATE_001(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_SVKEI_KAISEN_UW.executeBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_UPDATE_001);
	}

	/**
	 * SQLKEY(KK_UPDATE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	使用開始年月日
	 *		 	サービス契約回線内訳番号
	 *		 	世代登録年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_KAISEN_UW_KK_UPDATE_002(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_SVKEI_KAISEN_UW.executeBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_UPDATE_002);
	}

	/**
	 * SQLKEY(KK_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	回線内訳使用終了年月日
	 *		 	サービス契約番号
	 *		 	サービス契約回線内訳番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_KAISEN_TG_SVKEI.executeBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_UPDATE_001);
	}

	/**
	 * SQLKEY(KK_UPDATE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	回線内訳使用開始年月日
	 *		 	サービス契約番号
	 *		 	サービス契約回線内訳番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_KAISEN_TG_SVKEI.executeBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_UPDATE_002);
	}
	
	/* ++++++++++ v19.00.00 DEL START ++++++++++ */
// OM-2013-0004120対応 20131219 星野 ADD START
//	/**
//	 * SQLKEY(KK_UPDATE_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_KAISEN_TG_SVKEI_KK_UPDATE_003(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_KAISEN_TG_SVKEI.executeBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_UPDATE_003);
//	}
// OM-2013-0004120対応 20131219 星野 ADD END
	/* ++++++++++ v19.00.00 DEL END   ++++++++++ */
	
	/* ++++++++++ v19.00.00 ADD START ++++++++++ */
	/**
	 * SQLKEY(KK_UPDATE_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	回線内訳使用開始年月日
	 *		 	回線内訳使用終了年月日
	 *		 	サービス契約番号
	 *		 	サービス契約回線内訳番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KAISEN_TG_SVKEI_KK_UPDATE_004(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_KAISEN_TG_SVKEI.executeBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_UPDATE_004);
	}
	/* ++++++++++ v19.00.00 ADD END   ++++++++++ */

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	KOJIAK_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_KOJIAK_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		if (1 <= setParam.length || setParam[0] != null) {
			setMap.setValue(JBSbatKU_T_KOJIAK.OPMS_CHGE_RNKI_YH, setParam[0]);
		}
		if (2 <= setParam.length || setParam[1] != null) {
			setMap.setValue(JBSbatKU_T_KOJIAK.RCNT_KIHON_KOJI_FLG, setParam[1]);
		}
		if (3 <= setParam.length || setParam[2] != null) {
			setMap.setValue(JBSbatKU_T_KOJIAK.AD_CHG_FIX_DTM, setParam[2]);
		}
		if (4 <= setParam.length || setParam[3] != null) {
			setMap.setValue(JBSbatKU_T_KOJIAK.KOJI_UK_OPTNTY_IDO_DTM, setParam[3]);
		}

		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(JBSbatKU_T_KOJIAK.KOJIAK_NO, whereParam[0]);

		// DBアクセスを実行します
		db_KU_T_KOJIAK.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * SQLKEY(KK_SELECT_009)で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_PRG_KK_SELECT_009(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_PRG.selectBySqlDefine(paramList, KK_T_PRG_KK_SELECT_009);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	進捗番号				PRG_NO
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	請求方法番号（口座）				SEIKY_WAY_NO_KOZA
	 *		 	請求方法番号（クレジットカード）				SEIKY_WAY_NO_CRECARD
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	サービス契約回線内訳番号				SVC_KEI_KAISEN_UCWK_NO
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	異動区分				IDO_DIV
	 *		 	異動年月日時分秒				IDO_DTM
	 *		 	進捗ステータス				PRG_STAT
	 *		 	進捗年月日時分秒				PRG_DTM
	 *		 	進捗メモ				PRG_MEMO
	 *		 	進捗特記事項１				PRG_TKJK_1
	 *		 	進捗特記事項２				PRG_TKJK_2
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_PRG_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("PRG_NO", setParam[0]);
		setMap.setValue("MSKM_DTL_NO", setParam[1]);
		setMap.setValue("SEIKY_KEI_NO", setParam[2]);
		setMap.setValue("SEIKY_WAY_NO_KOZA", setParam[3]);
		setMap.setValue("SEIKY_WAY_NO_CRECARD", setParam[4]);
		setMap.setValue("SVC_KEI_NO", setParam[5]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[6]);
		setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", setParam[7]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[8]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[9]);
		setMap.setValue("SEIOPSVC_KEI_NO", setParam[10]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[11]);
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[12]);
		setMap.setValue("IDO_DIV", setParam[13]);
		setMap.setValue("IDO_DTM", setParam[14]);
		setMap.setValue("PRG_STAT", setParam[15]);
		setMap.setValue("PRG_DTM", setParam[16]);
		setMap.setValue("PRG_MEMO", setParam[17]);
		setMap.setValue("PRG_TKJK_1", setParam[18]);
		setMap.setValue("PRG_TKJK_2", setParam[19]);
		setMap.setValue("ADD_DTM", setParam[20]);
		setMap.setValue("ADD_OPEACNT", setParam[21]);
		setMap.setValue("UPD_DTM", setParam[22]);
		setMap.setValue("UPD_OPEACNT", setParam[23]);
		setMap.setValue("DEL_DTM", setParam[24]);
		setMap.setValue("DEL_OPEACNT", setParam[25]);
		setMap.setValue("MK_FLG", setParam[26]);
		setMap.setValue("ADD_UNYO_YMD", setParam[27]);
		setMap.setValue("ADD_TRN_ID", setParam[28]);
		setMap.setValue("UPD_UNYO_YMD", setParam[29]);
		setMap.setValue("UPD_TRN_ID", setParam[30]);
		setMap.setValue("DEL_UNYO_YMD", setParam[31]);
		setMap.setValue("DEL_TRN_ID", setParam[32]);
	
		// DBアクセスを実行します
		db_KK_T_PRG.insertByPrimaryKeys(setMap);
	}
	
// IT1-2013-0000759対応 20130404 星野 ADD START
	/**
	 * SQLKEY(KK_UPDATE_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_SVC_KEI_KK_UPDATE_014(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_SVC_KEI.executeBySqlDefine(paramList, KK_T_SVC_KEI_KK_UPDATE_014);
	}
	
	/**
	 * SQLKEY(KK_UPDATE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	更新年月日
	 *		 	更新オペレータＩＤ
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_EXC_CTRL_KK_UPDATE_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_EXC_CTRL.executeBySqlDefine(paramList, KK_T_SVKEI_EXC_CTRL_KK_UPDATE_002);
	}

// IT1-2013-0000759対応 20130404 星野 ADD END

	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 文字列がnull、または空文字列であるかチェックします。
	 * <br>
	 * @param value　チェック文字列
	 * @return boolean　true：null、または空文字列，false：左記以外
	 */
	private boolean isBlank(String value) {

		if (value == null || "".equals(value.trim())) {
			return true;
		}

		return false;
	}

	/**
	 * 住所変更排他ロック
	 * <br>
	 * @param adchgNo　住所変更番号
	 * @param updDtm　更新年月日時分秒
	 */
	private void lockAdchg(String adchgNo, String updDtm) throws Exception {

		JBSbatCommonDBInterface resultMap = null;

		try {

			JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();

			whereMap.setValue(JBSbatKK_T_ADCHG.ADCHG_NO, adchgNo);

			resultMap = db_KK_T_ADCHG.selectByPrimaryKeysForUpdateWait(whereMap);
		} catch(JBSbatBusinessException bie) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"住所変更", adchgNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		} catch(Exception ex) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"住所変更", adchgNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}

		if (!updDtm.equals(resultMap.getString(JBSbatKK_T_ADCHG.UPD_DTM))) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"住所変更", adchgNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}
	}

	/**
	 * サービス契約回線内訳排他ロック
	 * <br>
	 * @param svcKeiKaisenUcwkNo　サービス契約回線内訳番号
	 * @param geneAddDtm　世代登録年月日時分秒
	 * @param updDtm　更新年月日時分秒
	 */
	private void lockSvkeiKaisenUw(String svcKeiKaisenUcwkNo, String geneAddDtm, String updDtm) throws Exception {

		JBSbatCommonDBInterface resultMap = null;

		try {

			JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();

			whereMap.setValue(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);
			whereMap.setValue(JBSbatKK_T_SVKEI_KAISEN_UW.GENE_ADD_DTM, geneAddDtm);

			resultMap = db_KK_T_SVKEI_KAISEN_UW.selectByPrimaryKeysForUpdateWait(whereMap);
		} catch(JBSbatBusinessException bie) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"サービス契約回線内訳", svcKeiKaisenUcwkNo + ", " + geneAddDtm});
// ST2-2013-0001403対応 20130316 星野 MOD END
		} catch(Exception ex) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"サービス契約回線内訳", svcKeiKaisenUcwkNo + ", " + geneAddDtm});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}

		if (!updDtm.equals(resultMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.UPD_DTM))) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"サービス契約回線内訳", svcKeiKaisenUcwkNo + ", " + geneAddDtm});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}
	}

	/**
	 * 回線対象サービス契約排他ロック
	 * <br>
	 * @param svcKeiNo　サービス契約番号
	 * @param svcKeiKaisenUcwkNo　サービス契約回線内訳番号
	 * @param updDtm　更新年月日時分秒
	 */
	private void lockKaisenTgSvkei(String svcKeiNo, String svcKeiKaisenUcwkNo, String updDtm) throws Exception {

		JBSbatCommonDBInterface resultMap = null;

		try {

			JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();

			whereMap.setValue(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_NO, svcKeiNo);
			whereMap.setValue(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO, svcKeiKaisenUcwkNo);

			resultMap = db_KK_T_KAISEN_TG_SVKEI.selectByPrimaryKeysForUpdateWait(whereMap);
		} catch(JBSbatBusinessException bie) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"回線対象サービス契約", svcKeiNo + ", " + svcKeiKaisenUcwkNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		} catch(Exception ex) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"回線対象サービス契約", svcKeiNo + ", " + svcKeiKaisenUcwkNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}

		if (!updDtm.equals(resultMap.getString(JBSbatKK_T_KAISEN_TG_SVKEI.UPD_DTM))) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"回線対象サービス契約", svcKeiNo + ", " + svcKeiKaisenUcwkNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}
	}
	
// IT1-2013-0000759対応 20130404 星野 ADD START
	/**
	 * 回線対象サービス契約排他ロック
	 * <br>
	 * @param svcKeiNo　サービス契約番号
	 * @param svcKeiKaisenUcwkNo　サービス契約回線内訳番号
	 * @param updDtm　更新年月日時分秒
	 */
	private void lockSvcKei(String svcKeiNo, String updDtm) throws Exception {

		JBSbatCommonDBInterface resultMap = null;

		try {

			JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();

			whereMap.setValue(JBSbatKK_T_SVKEI_EXC_CTRL.SVC_KEI_NO, svcKeiNo);

			resultMap = db_KK_T_SVKEI_EXC_CTRL.selectByPrimaryKeysForUpdateWait(whereMap);
		} catch(JBSbatBusinessException bie) {
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"サービス契約", svcKeiNo + ", " + svcKeiNo});
		} catch(Exception ex) {
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"サービス契約", svcKeiNo + ", " + svcKeiNo});
		}

		if (!updDtm.equals(resultMap.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM))) {
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"サービス契約", svcKeiNo + ", " + svcKeiNo});
		}
	}
// IT1-2013-0000759対応 20130404 星野 ADD END
	
	/**
	 * 工事案件排他ロック
	 * <br>
	 * @param kojiakNo　工事案件番号
	 * @param updDtm　更新年月日時分秒
	 */
	private void lockKojiak(String kojiakNo, String updDtm) throws Exception {

		JBSbatCommonDBInterface resultMap = null;

		try {

			JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();

			whereMap.setValue(JBSbatKU_T_KOJIAK.KOJIAK_NO, kojiakNo);

			resultMap = db_KU_T_KOJIAK.selectByPrimaryKeysForUpdateWait(whereMap);
		} catch(JBSbatBusinessException bie) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"工事案件", kojiakNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		} catch(Exception ex) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"工事案件", kojiakNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}

		if (!updDtm.equals(resultMap.getString(JBSbatKU_T_KOJIAK.UPD_DTM))) {
// ST2-2013-0001403対応 20130316 星野 MOD START
//			throw new JBSbatBusinessException(JPCBatchMessageConstant.CS00002W, new String[] {""});
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"工事案件", kojiakNo});
// ST2-2013-0001403対応 20130316 星野 MOD END
		}
	}

	/**
	 * 進捗登録
	 * <br>
	 * @param svcKeiNo　サービス契約番号
	 * @param prgStat　進捗ステータス
	 * @param updDtm　契約者住所変更有無
	 */
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
//	private void addPrg(String svcKeiNo, String prgStat) throws Exception {
		private void addPrg(String svcKeiNo, String prgStat, String kshadChgUm) throws Exception {
// IT故障lot2IT 100022  2012.12.30 suzuki mod end

		if (isBlank(svcKeiNo)) {
			return;
		}

		String nextPrgNo = JBSbatOracleSeqUtil.getFormatedNextSeq(commonItem.getConnection(), "SEQ_PRG_NO", "", 12);

		executeKK_T_PRG_KK_SELECT_009(new String[]{svcKeiNo, "00020"});

		JBSbatCommonDBInterface samePrgInfo = db_KK_T_PRG.selectNext();

// OM-2013-0005318対応 20131227 星野 MOD START
//		String idoDtm = null;
//		if (samePrgInfo == null || isBlank(samePrgInfo.getString("MAX(TPR.IDO_DTM)"))) {
//			idoDtm = JBSbatDateUtil.getSystemDateTimeStamp();
//		} else {
//			idoDtm = samePrgInfo.getString("MAX(TPR.IDO_DTM)");
//		}
		
		String idoDtm = JBSbatDateUtil.getSystemDateTimeStamp();
// OM-2013-0005318対応 20131227 星野 MOD END

// IT故障lot2IT 100022  2012.12.30 suzuki add start
		String tokkiJikou1 = null;
		if (kshadChgUm != null && "1".equals(kshadChgUm)) {
			// 契約者住所変更ありの場合、「特記事項１」に補足を記入する。
			tokkiJikou1 = "処理区分：契約者情報変更";
		}
// IT故障lot2IT 100022  2012.12.30 suzuki add end
		
		// ST2-2013-0000896対応 20130219 ASARI ADD START
		String sysDate = JCCBatCommon.getSysDateTimeStamp();
		// ST2-2013-0000896対応 20130219 ASARI ADD END
		
		String[] setParam = {
				nextPrgNo,							//進捗番号
				null,								//申込明細番号
				null,								//請求契約番号
				null,								//進捗番号(口座)
				null,								//進捗番号(クレジットカード)
				svcKeiNo,							// サービス契約番号
				null,								//サービス契約内訳番号
				null,								//サービス契約回線内訳番号
				null,								//機器提供サービス契約番号
				null,								//オプションサービス契約番号
				null,								//請求オプションサービス契約番号
				null,								//サブオプションサービス契約番号
				null,								//割引サービス契約番号
				"00020",							//異動区分
				idoDtm,								//異動年月日時秒
				prgStat,								//進捗ステータス
				// ST2-2013-0000896対応 20130219 ASARI MOD START
//				JBSbatDateUtil.getSystemDateTime(),	//進捗年月日時秒
				super.opeDate + sysDate.substring(8),
				// ST2-2013-0000896対応 20130219 ASARI MOD END
				null,								//進捗メモ
// IT故障lot2IT 100022  2012.12.30 suzuki mod start
//				null,								//進捗特記事項1
				tokkiJikou1,						//進捗特記事項1
// IT故障lot2IT 100022  2012.12.30 suzuki mod end
				null,								//進捗特記事項2
				null,								//登録年月日時秒
				null,								//登録オペレータアカウント
				null,								//更新年月日時秒
				null,								//更新オペレータアカウント
				null,								//削除年月日時秒
				null,								//削除オペレータアカウント
				null,								//無効フラグ
				null,								//登録運用年月日
				null,								//登録処理ID
				null,								//更新運用年月日
				null,								//更新処理ID
				null,								//削除運用年月日
				null								//削除処理ID
				};

		executeKK_T_PRG_PKINSERT(setParam);
	}

// IT2-2013-0000596 2013.07.08 T.TORIKAI メソッド追加
	/**
	 * 住所変更申込一時保存のレコードを論理削除する
	 * 
	 * @param adchgNo	住所変更番号
	 * @throws Exception
	 */
	private void deleteAdchmTppv(String adchgNo) throws Exception {

		// サービス契約回線内訳番号取得
		String svcKaisenUcwkNo = getSvcKaisenWcwkNo(adchgNo);
		
		// 削除対象の抽出条件を設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(svcKaisenUcwkNo);

		try {
			// 削除対象レコードをロックして取得
			db_KK_T_ADCHM_TPPV.selectBySqlDefine(paramList, KK_T_ADCHM_TPPV_KK_SELECT_001);

		} catch (JBSbatBusinessException bie) {
			// 排他エラー
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0360KE, new String[]{"住所変更申込一時保存", svcKaisenUcwkNo});
		}

		// 削除対象一覧取得
		ArrayList<JBSbatCommonDBInterface> resultList = new ArrayList<JBSbatCommonDBInterface>();
		while (true) {
			JBSbatCommonDBInterface resultMap = db_KK_T_ADCHM_TPPV.selectNext();
			if (resultMap == null) {
				break;	// EOF
			}
			resultList.add(resultMap);
		}

		// 削除
		for (JBSbatCommonDBInterface resultMap : resultList) {
			// 削除条件設定
			JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
			whereMap.setValue(JBSbatKK_T_ADCHM_TPPV.SYSID, resultMap.getValue(JBSbatKK_T_ADCHM_TPPV.SYSID));
			whereMap.setValue(JBSbatKK_T_ADCHM_TPPV.ADCHM_TPPV_NO, resultMap.getValue(JBSbatKK_T_ADCHM_TPPV.ADCHM_TPPV_NO));
			// PKにて論理削除
			db_KK_T_ADCHM_TPPV.logicalDeleteByPrimaryKeys(whereMap);
		}
	}

	/**
	 * 住所変更スキーマよりサービス契約回線内訳番号を取得する
	 * 
	 * @param adchgNo	住所変更番号
	 * @return			サービス契約回線内訳番号
	 * @throws Exception
	 */
	private String getSvcKaisenWcwkNo(String adchgNo) throws Exception {

		String svcKaisenWcwkNo = "";

		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(JBSbatKK_T_ADCHG.ADCHG_NO, adchgNo);

		JBSbatCommonDBInterface resultMap = db_KK_T_ADCHG.selectByPrimaryKeys(whereMap);
		if (resultMap != null) {
			svcKaisenWcwkNo = resultMap.getString(JBSbatKK_T_ADCHG.ITNM_SVKEI_KISUW_NO);
		}

		return svcKaisenWcwkNo;
	}

// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD START
	/**
	 * 進捗登録
	 * <br>
	 * @param svcKeiNo　サービス契約番号
	 * @param prgStat　進捗ステータス
	 * @param updDtm　契約者住所変更有無
	 */
	private void addAdchgDtl(String adchgNo) throws Exception {
		
		String newAdchgDtlNo = JBSbatOracleSeqUtil.getFormatedNextSeq(commonItem.getConnection(), "SEQ_ADCHG_DTL_NO", "", 7);
		
		String[] setParam = {
				adchgNo,				// 住所変更番号
				newAdchgDtlNo,				// 住所変更明細番号
				"08",				// 住所変更明細種別コード
				null,				// 変更対象契約番号
				null,				// 変更前識別番号
				opeDate,				// 変更後識別番号
				null,				// サービス契約異動種別コード
				null,				// 請求書送付先変更有無
				null,				// 住所変更業務連絡備考
				null,				// 登録年月日時分秒
				null,				// 登録オペレータアカウント
				null,				// 更新年月日時分秒
				null,				// 更新オペレータアカウント
				null,				// 削除年月日時分秒
				null,				// 削除オペレータアカウント
				null,				// 無効フラグ
				null,				// 登録運用年月日
				null,				// 登録処理ID
				null,				// 更新運用年月日
				null,				// 更新処理ID
				null,				// 削除運用年月日
				null,				// 削除処理ID
				};

		executeKK_T_ADCHG_DTL_PKINSERT(setParam);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	住所変更番号					ADCHG_NO
	 *		 	住所変更明細番号				ADCHG_DTL_NO
	 *		 	住所変更明細種別コード			ADCHG_DTL_SBT_CD
	 *		 	変更対象契約番号				CHG_TG_KEI_NO
	 *		 	変更前識別番号					CHBF_SKBT_NO
	 *		 	変更後識別番号					CHAF_SKBT_NO
	 *		 	サービス契約異動種別コード		SVC_KEI_IDO_SBT_CD
	 *		 	請求書送付先変更有無			SKS_SHS_CHG_UM
	 *		 	住所変更業務連絡備考			ADCHG_WORK_RRK_BIKO
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント		ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント		UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント		DEL_OPEACNT
	 *		 	無効フラグ						MK_FLG
	 *		 	登録運用年月日					ADD_UNYO_YMD
	 *		 	登録処理ID						ADD_TRN_ID
	 *		 	更新運用年月日					UPD_UNYO_YMD
	 *		 	更新処理ID						UPD_TRN_ID
	 *		 	削除運用年月日					DEL_UNYO_YMD
	 *		 	削除処理ID						DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADCHG_DTL_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("ADCHG_NO", setParam[0]);
		setMap.setValue("ADCHG_DTL_NO", setParam[1]);
		setMap.setValue("ADCHG_DTL_SBT_CD", setParam[2]);
		setMap.setValue("CHG_TG_KEI_NO", setParam[3]);
		setMap.setValue("CHBF_SKBT_NO", setParam[4]);
		setMap.setValue("CHAF_SKBT_NO", setParam[5]);
		setMap.setValue("SVC_KEI_IDO_SBT_CD", setParam[6]);
		setMap.setValue("SKS_SHS_CHG_UM", setParam[7]);
		setMap.setValue("ADCHG_WORK_RRK_BIKO", setParam[8]);
		setMap.setValue("ADD_DTM", setParam[9]);
		setMap.setValue("ADD_OPEACNT", setParam[10]);
		setMap.setValue("UPD_DTM", setParam[11]);
		setMap.setValue("UPD_OPEACNT", setParam[12]);
		setMap.setValue("DEL_DTM", setParam[13]);
		setMap.setValue("DEL_OPEACNT", setParam[14]);
		setMap.setValue("MK_FLG", setParam[15]);
		setMap.setValue("ADD_UNYO_YMD", setParam[16]);
		setMap.setValue("ADD_TRN_ID", setParam[17]);
		setMap.setValue("UPD_UNYO_YMD", setParam[18]);
		setMap.setValue("UPD_TRN_ID", setParam[19]);
		setMap.setValue("DEL_UNYO_YMD", setParam[20]);
		setMap.setValue("DEL_TRN_ID", setParam[21]);
		
		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.insertByPrimaryKeys(setMap);
	}
// ANK-1659-00-00 Y.Kanata 2013.09.20 ADD END
}
