/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKUseFailPrdAdd
*	ソースファイル名	：JBSbatKKUseFailPrdAdd.java
*	作成者				：富士通　
*	作成日				：2011年09月13日
*＜機能概要＞
*　利用不可期間登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/13   富士通		新規作成
*	v7.00.00	2014/03/14	星野		OM-2014-0000960
*	v14.00.00	2015/05/08	森脇		OM-2015-0000176
*   v14.01.00   2015/05/18  FJ)阮		ANK-2460-00-00対応
*	v19.00.00	2015/10/13	森脇		OM-2015-0002486
*	v20.00.00	2015/12/08	FJ)星野		IT1-2015-0000148対応
*	v26.00.00	2016/07/01	FJ)澤田		ANK-2681-00-00対応
*	v33.00.00	2017/09/14  FJ)森脇		OM-2017-0000898対応
*	v31.00.01	2018/06/12	FJ)山地		ANK-3136-05-00対応
*	v40.00.00	2019/02/14	FJ)星野		OM-2018-0001195対応
*	v59.00.00	2022/04/27	FJ)平野		ANK-4245-00-00対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatKKIFM105;
import eo.business.util.table.JBSbatCH_M_PRC_SCHDL_TEIGI;
import eo.business.util.table.JBSbatKK_T_PRG;
import eo.business.util.table.JBSbatKK_T_SBOP_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_USE_STP_PRD;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.common.util.JKKStringUtil;
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 JBSbatKKUseFailPrdAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(利用停止期間)*/
	private static final String D_TBL_NAME_KK_T_USE_STP_PRD = "KK_T_USE_STP_PRD";

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

	/** テーブル(料金スケジュール定義)*/
	private static final String D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI = "CH_M_PRC_SCHDL_TEIGI";

// IT1-2012-0002247対応 20121130 星野 ADD START
	/** テーブル(サブオプションサービス契約)*/
	private static final String D_TBL_NAME_KK_T_SBOP_SVC_KEI = "KK_T_SBOP_SVC_KEI";
// IT1-2012-0002247対応 20121130 星野 ADD END
// ANK-2460-00-00 2015/05/18 ADD START
	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";
// ANK-2460-00-00 2015/05/18 ADD END
	
	/** SQL定義キー(KK_SELECT_007)*/
	private static final String KK_T_USE_STP_PRD_KK_SELECT_007 = "KK_SELECT_007";

	/** SQL定義キー(KK_SELECT_008)*/
	private static final String KK_T_USE_STP_PRD_KK_SELECT_008 = "KK_SELECT_008";

	/** SQL定義キー(KK_SELECT_009)*/
	private static final String KK_T_USE_STP_PRD_KK_SELECT_009 = "KK_SELECT_009";

	/** SQL定義キー(KK_SELECT_010)*/
	private static final String KK_T_USE_STP_PRD_KK_SELECT_010 = "KK_SELECT_010";

	/** SQL定義キー(KK_SELECT_011)*/
	private static final String KK_T_USE_STP_PRD_KK_SELECT_011 = "KK_SELECT_011";

	/** SQL定義キー(KK_SELECT_012)*/
	private static final String KK_T_USE_STP_PRD_KK_SELECT_012 = "KK_SELECT_012";

	/** SQL定義キー(KK_SELECT_011)*/
	private static final String KK_T_PRG_KK_SELECT_011 = "KK_SELECT_011";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_KK_SELECT_002 = "KK_SELECT_002";
	
// IT1-2012-0002247対応 20121130 星野 ADD START
	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_T_SBOP_SVC_KEI_KK_SELECT_011 = "KK_SELECT_011";
// IT1-2012-0002247対応 20121130 星野 ADD END

// ANK-1578-00-00 2013.12.06 KURATA ADD START
	/** SQL定義キー(KK_SELECT_044)*/
	private static final String KK_T_USE_STP_PRD_KK_SELECT_044 = "KK_SELECT_044";
// ANK-1578-00-00 2013.12.06 KURATA ADD END
// ANK-2460-00-00 2015/05/18 ADD START
/** SQL定義キー(KK_SELECT_035)*/
	private static final String KU_T_KOJIAK_KK_SELECT_035 = "KK_SELECT_035";
// ANK-2460-00-00 2015/05/18 ADD END 
	/** テーブルアクセスクラス(利用停止期間)*/
	private JBSbatSQLAccess db_KK_T_USE_STP_PRD = null;

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;

	/** テーブルアクセスクラス(料金スケジュール定義)*/
	private JBSbatSQLAccess db_CH_M_PRC_SCHDL_TEIGI = null;
	
// IT1-2012-0002247対応 20121130 星野 ADD START
	/** テーブルアクセスクラス(サブオプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_SBOP_SVC_KEI = null;
// IT1-2012-0002247対応 20121130 星野 ADD END
// ANK-2460-00-00 2015/05/18 ADD START
	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;
// ANK-2460-00-00 2015/05/18 ADD END
// OM-2013-0002800 Y.Kanata 2013.10.02 ADD START
	/** 処理済の機器提供サービス契約番号管理用 */
	private ArrayList<String> pastKikiList;
// OM-2013-0002800 Y.Kanata 2013.10.02 ADD START

	// ANK-4245-00-00 ADD START
	/** 住変利用停止登録済フラグ_"0"(未登録）*/
	private static final String ADCHG_USE_STP_ADD_FLG_0 = "0";
	// ANK-4245-00-00 ADD END
	

	/** 契約番号種類コード */
	/** サービス契約番号 */
	private static final String KEISTAT_CD_SVK= "1";
	/** サービス契約内訳番号 */
	private static final String KEISTAT_CD_SVKUW= "2";
	/** 機器提供サービス契約番号 */
	private static final String KEISTAT_CD_KKTKSV = "3";
	/** オプションサービス契約番号 */
	private static final String KEISTAT_CD_OPSV = "4";
	/** サブオプションサービス契約番号 */
	private static final String KEISTAT_CD_SBOPSV = "5";
	/** 請求オプションサービス契約番号 */
	private static final String KEISTAT_CD_KEI_SEIOPSV = "6";
	
// ANK-1578-00-00 2013.12.06 KURATA ADD START
	/**  機器オプションサービス契約番号 */
	private static final String KEISTAT_CD_KEI_KKOPSV = "7";
// ANK-1578-00-00 2013.12.06 KURATA ADD END

	
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	
	/** 更新／登録パターン */
	/** 登録 */
	private static final String ADD = "1";
	/** 更新 */
	private static final String UPD = "2";
	/** 訂正 */
	private static final String TEISE = "3";

	/** 異動区分 */
	/** 住所変更・登録 */
	private static final String IDO_DIV_ADCHG_ADD = "00019";
	
	/** 進捗ステータス */
	/** 利用不可期間登録 */
	private static final String PRG_STAT_USE_FAIL_PRD_ADD = "6501";
	/** 利用不可期間変更 */
	private static final String PRG_STAT_USE_FAIL_PRD_CHG = "6502";
	
	
	/** 利用停止期間(シーケンス) */
	private static final String SEQ_USE_STP_PRD_NO = "SEQ_USE_STP_PRD_NO";

	/** 進捗(シーケンス) */
	private static final String SEQ_PRG_NO = "SEQ_PRG_NO";
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_USE_STP_PRD = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_USE_STP_PRD);
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		db_CH_M_PRC_SCHDL_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI);
// IT1-2012-0002247対応 20121130 星野 ADD START
		db_KK_T_SBOP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SBOP_SVC_KEI);
// IT1-2012-0002247対応 20121130 星野 ADD END
// ANK-2460-00-00 2015/05/18 ADD START
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
// ANK-2460-00-00 2015/05/18 ADD END
// OM-2013-0002800 Y.Kanata 2013.10.02 ADD START
		pastKikiList = new ArrayList<String>();
// OM-2013-0002800 Y.Kanata 2013.10.02 ADD START
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 契約番号種類コード
		String keiSbtNo = inMap.getString(JBSbatKKIFM105.KEI_NO_KIND_CD);
		// 登録／更新パターン
		String ptn = "";
		// 申込年月日
		String mskmYmd = inMap.getString(JBSbatKKIFM105.MSKM_YMD);
// ST2-2013-0001113対応 20130301 星野 ADD START
		// 住所変更撤去工事案件番号
		String adChgTkKjAkNo = inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO);
		if(adChgTkKjAkNo==null || adChgTkKjAkNo.trim().length()==0){
			// 撤去工事案件番号が存在しない場合は、ワンブランク
// LT-2013-0000388 2013/07/11 START 10ブランクに変更
			adChgTkKjAkNo = "          ";
// LT-2013-0000388 2013/07/11 END 10ブランクに変更
			
		/* ++++++++++ v20.00.00 ADD START ++++++++++ */
		}else{
			// 撤去工事案件番号が設定されている場合、工事案件番号のみで利用不可期間の特定が可能なため申込年月日の検索条件は不要。
			// 申込年月日の条件があると、住所変更再立上時の利用不可期間が正しく取得できないため、
			// ここで申込年月日を日付最小値に置き換える。
			mskmYmd = "19000101";
		/* ++++++++++ v20.00.00 ADD END   ++++++++++ */
		}
// ST2-2013-0001113対応 20130301 星野 ADD END
		
		// サービス契約番号
		if (KEISTAT_CD_SVK.equals(keiSbtNo)) 
		{
			String svKeiNo= inMap.getString(JBSbatKKIFM105.SVC_KEI_NO);
			JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_007(new Object[]{svKeiNo, mskmYmd, adChgTkKjAkNo});
			ptn = edit(inMap, useStpPrd, keiSbtNo);
// LT-2013-0000397 2013.07.12 T.TORIKAI ADD START ※サービス契約番号の場合のみ進捗を出力するようにする
			// 進捗情報の登録
			insPrg(inMap, keiSbtNo, ptn);
// LT-2013-0000397 2013.07.12 T.TORIKAI ADD END
		}
		// サービス契約内訳番号
		if (KEISTAT_CD_SVKUW.equals(keiSbtNo)) 
		{
			String svKeiUcwNo= inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
			JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_008(new Object[]{svKeiUcwNo, mskmYmd, adChgTkKjAkNo});
			ptn = edit(inMap, useStpPrd, keiSbtNo);
		}
		// 機器提供サービス契約番号
		if (KEISTAT_CD_KKTKSV.equals(keiSbtNo)) 
		{
			String kktksvKeiNo= inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
// OM-2013-0002800 Y.Kanata 2013.10.02 MOD START
//			JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_009(new Object[]{kktksvKeiNo, mskmYmd, adChgTkKjAkNo});
//			ptn = edit(inMap, useStpPrd, keiSbtNo);
			// 未処理の機器提供サービス契約番号のみ処理する
			if (!pastKikiList.contains(kktksvKeiNo)) {
				JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_009(new Object[]{kktksvKeiNo, mskmYmd, adChgTkKjAkNo});
				ptn = edit(inMap, useStpPrd, keiSbtNo);
				pastKikiList.add(kktksvKeiNo);
			}
// OM-2013-0002800 Y.Kanata 2013.10.02 MOD START
		}
		// オプションサービス契約番号
		if (KEISTAT_CD_OPSV.equals(keiSbtNo)) 
		{
			String opSvKeiNo= inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
			JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_010(new Object[]{opSvKeiNo, mskmYmd, adChgTkKjAkNo});
			ptn = edit(inMap, useStpPrd, keiSbtNo);
		}
		// サブオプションサービス契約番号
		
		if (KEISTAT_CD_SBOPSV.equals(keiSbtNo)) 
		{ 
			String sbOpSvkeiNo= inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
			JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_011(new Object[]{sbOpSvkeiNo, mskmYmd, adChgTkKjAkNo});
			ptn = edit(inMap, useStpPrd, keiSbtNo);
		}		
		// 請求オプションサービス契約番号
		if (KEISTAT_CD_KEI_SEIOPSV.equals(keiSbtNo))
		{
			String seiOpSvKeiNo= inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
			JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_012(new Object[]{seiOpSvKeiNo, mskmYmd, adChgTkKjAkNo});
			ptn = edit(inMap, useStpPrd, keiSbtNo);
		} 

// ANK-1578-00-00 2013.12.06 KURATA ADD START
		// 機器オプションサービス契約番号
		if (KEISTAT_CD_KEI_KKOPSV.equals(keiSbtNo))
		{
			String kkOpSvKeiNo= inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
			JBSbatCommonDBInterface useStpPrd = executeKK_T_USE_STP_PRD_KK_SELECT_044(new Object[]{kkOpSvKeiNo, mskmYmd, adChgTkKjAkNo});
			ptn = edit(inMap, useStpPrd, keiSbtNo);
		} 
// ANK-1578-00-00 2013.12.06 KURATA ADD START


// LT-2013-0000397 2013.07.12 T.TORIKAI DEL START ※サービス契約番号の場合のみ進捗を出力するようにする
//		// 進捗情報の登録
//		insPrg(inMap, keiSbtNo, ptn);
// LT-2013-0000397 2013.07.12 T.TORIKAI DEL END
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	
	/**
	 * 利用不可期間の編集処理を行います.
	 * @param inMap 入力電文
	 * @param useStpPrd 利用停止期間情報
	 * @param keiSbtNo 契約番号種類コード
	 * @return ptn 更新／登録パターン
	 * @throws Exception
	 */
	private String edit(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface useStpPrd, String keiSbtNo) throws Exception 
	{	
		// 更新／登録パターン
		String ptn = "";
		
		// OM-2015-0002486 ADD START
		// 新設工事完了日が20991231の場合は編集処理を行わない。
		if( "20991231".equals( inMap.getString(JBSbatKKIFM105.NEWESTA_KJ_FIN_DAY ) )
		){
			return ptn;
		}
		// OM-2015-0002486 ADD END
		// 利用停止期間が取得できない場合
		if (useStpPrd == null)
		{ 
			// 更新／登録パターンを登録と判断し編集作業を行う。
			ptn = ADD;
			addEdit(inMap, keiSbtNo);
		}
		
		// 利用停止終了年月日時分秒、利用停止日数のいずれかがnullの場合
		else if (useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_END_DTM) == null
				|| useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_CNT) == null) 
		{
// OM-2014-0000960対応 20140314 星野 ADD START
			// 画面から取消された利用不可期間は更新対象外とする。
			// 開始・終了の一致だけでは、バッチで登録した撤去・新設同時の利用不可期間が誤ヒットするため
			// 利用停止日数の設定で画面からの更新を判断している（画面からの登録・更新では利用停止日数を設定しない）
			if( !isBlank( useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM) ) 
				&& useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM).equals( useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_END_DTM) )
				&& !"0".equals( useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_CNT) )
			){
				// 更新対象外のため、更新／登録パターン未設定で返却
				return ptn;
			}
// OM-2014-0000960対応 20140314 星野 ADD END
			
			// 更新／登録パターンを更新と判断し編集作業を行う。
			ptn =UPD;
			updateEdit(inMap, useStpPrd);
		}
		// 利用停止終了年月日時分秒、利用停止日数のどちらも設定されている場合
		else if (useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_END_DTM) != null
				&& useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_CNT) != null)
		{
// OM-2014-0000960対応 20140314 星野 ADD START
			// 画面から取消された利用不可期間は更新対象外とする。
			// 開始・終了の一致だけでは、バッチで登録した撤去・新設同時の利用不可期間が誤ヒットするため
			// 利用停止日数の設定で画面からの更新を判断している（画面からの登録・更新では利用停止日数を設定しない）
			if( !isBlank( useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM) ) 
				&& useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM).equals( useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_END_DTM) )
				&& !"0".equals( useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_CNT) )
			){
				// 更新対象外のため、更新／登録パターン未設定で返却
				return ptn;
			}
// OM-2014-0000960対応 20140314 星野 ADD END
// OM-2015-0002486 DEL START
//// OM-2015-0000176 ADD START
//			// 新設工事完了日が20991231の場合は訂正処理を行わない。
//			if( "20991231".equals( inMap.getString(JBSbatKKIFM105.NEWESTA_KJ_FIN_DAY ) )
//			){
//				return ptn;
//			}
////OM-2015-0000176 ADD END
// OM-2015-0002486 DEL END
			// ANK-2681-00-00 2016/07/01 ADD START
			//入力電文から取得した「住所変更撤去工事案件番号」と利用停止期間情報の「住所変更撤去工事案件番号」が一致する場合
			// OM-2017-0000898 2017/09/14 MOD START
//			if (inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO).equals(useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.AD_CHG_TEKKYO_KJAK_NO)) == true){
			if (inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO).trim().equals(useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.AD_CHG_TEKKYO_KJAK_NO).trim()) == true){
			// OM-2017-0000898 2017/09/14 MOD END
				deleteUseStpPrd(useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_PRD_NO));
			}
			// ANK-2681-00-00 2016/07/01 ADD END
			// 更新／登録パターンを更新と訂正と判断し編集作業を行う。
			ptn =TEISE;
			teiseiEdit(inMap, useStpPrd);
		}
		
		return ptn;
		
	}
	
	
	
	/**
	 * 利用不可期間の登録処理を行います.
	 * @param inMap 入力電文
	 * @param keiSbtNo 	契約番号種別コード
	 * @throws Exception 
	 */
	private void addEdit(JBSbatServiceInterfaceMap inMap, String keiSbtNo) throws Exception
	{
// ANK-1578-00-00 2013.12.06 KURATA MDD START
//		Object[] setParam =  new Object[]{null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null};
		Object[] setParam =  new Object[]{null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null};
// ANK-1578-00-00 2013.12.06 KURATA MDD END
		
		// 利用停止期間番号　連番を設定
		setParam[0] = JBSbatOracleSeqUtil.getFormatedNextSeq(commonItem.getConnection(),SEQ_USE_STP_PRD_NO, "", 12);
		
// IT1-2012-0002247対応 20121130 星野 ADD START
		// サービス契約番号
		if(KEISTAT_CD_SVK.equals(keiSbtNo)){
// IT1-2012-0002247対応 20121130 星野 ADD END
			
			setParam[1] = inMap.getString(JBSbatKKIFM105.SVC_KEI_NO);
			
// IT1-2012-0002247対応 20121130 星野 ADD START
		}
// IT1-2012-0002247対応 20121130 星野 ADD END

		// サービス契約内訳番号
		if (KEISTAT_CD_SVKUW.equals(keiSbtNo)) 
		{
			setParam[2] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else 
		{
			setParam[2] = null;
		}
		// 機器提供サービス契約番号
		if (KEISTAT_CD_KKTKSV.equals(keiSbtNo)) 
		{
			setParam[3] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		} 
		else
		{
			setParam[3] = null;
		}
		
		// オプションサービス契約番号
		if (KEISTAT_CD_OPSV.equals(keiSbtNo))
		{
			setParam[4] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
// IT1-2012-0002247対応 20121130 星野 ADD START
		}
		else if( KEISTAT_CD_SBOPSV.equals(keiSbtNo) ){
			// サブオプションのレコードの場合、ひもづくオプションサービス契約番号を設定
			String sbopSvcKeiNo = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
			JBSbatCommonDBInterface sbOpSvcKei = executeKK_T_SBOP_SVC_KEI_KK_SELECT_011(new Object[]{sbopSvcKeiNo, opeDate});
// OM-2018-0001195対応 20190214 星野 ADD START
			if(sbOpSvcKei==null){
				// 万が一取得できなかった場合は処理対象外とする
				return;
			}
// OM-2018-0001195対応 20190214 星野 ADD END

			setParam[4] = sbOpSvcKei.getString(JBSbatKK_T_SBOP_SVC_KEI.OP_SVC_KEI_NO);
// IT1-2012-0002247対応 20121130 星野 ADD END
		}
		else
		{
			setParam[4] = null;
		}
		
		// サブオプションサービス契約番号
		if (KEISTAT_CD_SBOPSV.equals(keiSbtNo)) 
		{
			setParam[5] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		} 
		else 
		{
			setParam[5] = null;
		}
		// 請求オプションサービス契約番号
		if (KEISTAT_CD_KEI_SEIOPSV.equals(keiSbtNo)) 
		{
			setParam[6] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else
		{
			setParam[6] = null;
		}
		// 宅内機器型式コード
		setParam[7] = null;
		// 機器製造番号
		setParam[8] = null;
		// 物流保全番号
		setParam[9] = null;
		// 無料開始年月日
		setParam[10] = null;
		// 無料終了年月日
		setParam[11] = null;
		// 利用停止コード
		setParam[12] = null;
		// 利用停止取扱コード
		setParam[13] = "11";
		// 利用停止理由コード
		setParam[14] = null;
		// 利用停止理由メモ
		setParam[15] = null;
		
		// 利用停止開始年月日時分秒
	    String usestpstadtm = null;
		
		//料金計算日の取得
		JBSbatCommonDBInterface prccalcday = executeCH_M_PRC_SCHDL_TEIGI_KK_SELECT_002(new Object[]{opeDate.substring(0,6)});
		String prccal = prccalcday.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		//撤去工事完了日
		String tkkjfin = inMap.getString(JBSbatKKIFM105.TK_KJ_FIN_DAY);
		
		// ANK-4245-00-00 ADD START
		// 住変利用停止登録済フラグ
		String adchgUseStpAddFlg = inMap.getString(JBSbatKKIFM105.ADCHG_USE_STP_ADD_FLG);
		// ANK-4245-00-00 ADD END
		// 撤去工事完了日が料金計算日より後の場合
		// ANK-4245-00-00 MOD START
//		if( prccal.compareTo(tkkjfin) < 0)
		if( prccal.compareTo(tkkjfin) < 0 && ADCHG_USE_STP_ADD_FLG_0.equals(adchgUseStpAddFlg))
		// ANK-4245-00-00 MOD END
		{
			// 利用停止開始年月日時分秒に撤去工事完了日の翌月の初日を設定
			usestpstadtm = JBSbatDateUtil.adjustMonth(tkkjfin, 1);
			usestpstadtm = usestpstadtm.substring(0, 6) +  "01";
			usestpstadtm = usestpstadtm+"000000000";
		}
		// 上記以外の場合
		else
		{
			// 利用停止開始年月日時分秒に撤去工事完了日を設定
			usestpstadtm = tkkjfin + "000000000";
		}
		
		// 利用停止開始年月日時分秒
		setParam[16] = usestpstadtm ;

		// 利用停止終了年月日時分秒
		String usestpenddtm = null;  

		//新設工事完了日
		String newestakjfin =inMap.getString(JBSbatKKIFM105.NEWESTA_KJ_FIN_DAY );
		//新設工事完了日が初期値以外の場合
		if(!"".equals(newestakjfin))
		{
			// 利用停止終了年月日時分秒に新設工事完了日を設定
			usestpenddtm = newestakjfin  + "000000000";
		}

		// 利用停止終了年月日時分秒
		setParam[17] = usestpenddtm;

		// 利用停止期間登録年月日
		setParam[18] = opeDate;
		
		// 利用停止日数
		String  usestpcnt = null;
		
		// 利用停止開始年月日時分秒,利用停止終了年月日時分秒が初期値(null)でない場合
		if(usestpstadtm != null && usestpenddtm != null) 
		{
			usestpcnt = String.valueOf(JBSbatDateUtil.dayDiff(usestpenddtm.substring(0, 8), usestpstadtm.substring(0, 8), "2"));
		}
// OM-2013-0005375対応 20131227 星野 ADD START
		// 桁あふれする場合は最大値
		if( usestpcnt != null && usestpcnt.length() > 3 ){
			usestpcnt = "999";
		}
// OM-2013-0005375対応 20131227 星野 ADD END
		
		// 利用停止日数
		setParam[19] = usestpcnt;
		
		// 処理対象年月日
		setParam[20] = opeDate;
		// サービス開始年月日
		setParam[21] = inMap.getString(JBSbatKKIFM105.SVC_STA_YMD);
		// 住所変更撤去工事案件番号
		setParam[22] = inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO);
		
// ANK-1578-00-00 2013.12.06 KURATA ADD START
		// 機器オプションサービス契約番号
		if (KEISTAT_CD_KEI_KKOPSV.equals(keiSbtNo)) 
		{
			setParam[30] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else
		{
			setParam[30] = null;
		}
// ANK-1578-00-00 2013.12.06 KURATA ADD END
		
		//利用停止期間の登録
		executeKK_T_USE_STP_PRD_PKINSERT(setParam);
	}
	
	/**
	 * 利用不可期間の更新処理を行います.
	 * @param inMap 入力電文
	 * @param useStpPrd 利用停止期間情報
	 * @throws Exception
	 */
	private void updateEdit(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface useStpPrd) throws Exception
	{
		
		Object[] setParam =  new Object[]{"","","",""};
		int idx = 0;

		// 利用停止開始年月日時分秒
	    String usestpstadtm = null;
		JBSbatCommonDBInterface prccalcday = executeCH_M_PRC_SCHDL_TEIGI_KK_SELECT_002(new Object[]{opeDate.substring(0,6)});
		String prccal = prccalcday.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		//撤去工事完了日
		String tkkjfin = inMap.getString(JBSbatKKIFM105.TK_KJ_FIN_DAY);

		// ANK-4245-00-00 ADD START
		// 住変利用停止登録済フラグ
		String adchgUseStpAddFlg = inMap.getString(JBSbatKKIFM105.ADCHG_USE_STP_ADD_FLG);
		// ANK-4245-00-00 ADD END
		// 撤去工事完了日が料金計算日より後で住変利用停止登録済フラグが0の場合
		// ANK-4245-00-00 MOD START
//		if( prccal.compareTo(tkkjfin) < 0)
		if( prccal.compareTo(tkkjfin) < 0 && ADCHG_USE_STP_ADD_FLG_0.equals(adchgUseStpAddFlg))
		// ANK-4245-00-00 MOD END
		{
		    // 利用停止開始年月日時分秒に撤去工事完了日の翌月の初日を設定
		    usestpstadtm = JBSbatDateUtil.adjustMonth(tkkjfin, 1);
		    usestpstadtm = usestpstadtm.substring(0, 6) +  "01";
		    usestpstadtm = usestpstadtm+"000000000";
		}
		// 上記以外の場合
		else
		{
			// 利用停止開始年月日時分秒に撤去工事完了日を設定
			usestpstadtm = tkkjfin + "000000000";
		}
// ANK-2460-00-00 2015/05/18 ADD START
		if ((String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO) != null
				// OM-2017-0000898 2017/09/14 MOD START
//				&& !"".equals((String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO))) {
				&& !"".equals((String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO).trim())) {
				// OM-2017-0000898 2017/09/14 MOD END
			// 撤去工事案件にて工事案件の一意照会を実施し、Muse連携（マンション工事）のみ下記考慮を行う
			JBSbatCommonDBInterface kojiakMap = executeKU_T_KOJIAK_WK_KK_SELECT_035(new Object[] {(String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO)});
			String mansKojiakStatCd = kojiakMap.getString(JBSbatKU_T_KOJIAK.MANS_KOJIAK_STAT_CD);
			// 利用不可期間から利用不可開始の日付を取得する
			// 利用不可期間の開始は撤去工事起因または解約希望日起因で設定されます、それに対して新設工事完了
			// を持って終了を埋める更新処理である。撤去工事の再連携は存在せず、解約希望日か撤去完了どちらか
			// より早い連携を基準に利用不可期間を作成するため、利用不可期間開始の変更は基本発生しない（Muse）
			if (useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM) != null && !"".equals(useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM))
					&& mansKojiakStatCd != null && !"".equals(mansKojiakStatCd)
			    )
			{
				usestpstadtm = (String)useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM);
			}
		}
// ANK-2460-00-00 2015/05/18 ADD END

	    // 上記以外の場合
	    setParam[idx++] = usestpstadtm ;

	    // 利用停止終了年月日時分秒
	     String usestpenddtm = null;  
	    //新設工事完了日
		// ANK-3136-05-00 ADD START
		if(!(JKKStringUtil.isNullBlank(inMap.getString(JBSbatKKIFM105.NEWESTA_KJ_FIN_DAY )))){
		// ANK-3136-05-00 ADD END
			String newestakjfin =inMap.getString(JBSbatKKIFM105.NEWESTA_KJ_FIN_DAY);
			// 利用停止終了年月日時分秒に新設工事完了日を設定
			usestpenddtm = newestakjfin  + "000000000";
		// ANK-3136-05-00 ADD START
		}
		// ANK-3136-05-00 ADD END
		setParam[idx++] = usestpenddtm;
	    String  usestpcnt = null;
		// 利用停止日数
	    // ANK-3136-05-00 MOD START
		// // 利用停止終了年月日時分秒が初期値(null)でない場合
		// if(usestpenddtm != null) 
		// 「利用停止開始年月日時分秒」「利用停止終了年月日時分秒」がどちらも初期値(null)以外である場合
		if(usestpstadtm != null && usestpenddtm != null)
		// ANK-3136-05-00 MOD END
		{
			usestpcnt = String.valueOf(JBSbatDateUtil.dayDiff(usestpenddtm.substring(0, 8), usestpstadtm.substring(0, 8), "2"));
		}
// OM-2013-0005375対応 20131227 星野 ADD START
		// 桁あふれする場合は最大値
		if( usestpcnt != null && usestpcnt.length() > 3 ){
			usestpcnt = "999";
		}
// OM-2013-0005375対応 20131227 星野 ADD END
		
		// 利用停止日数
		setParam[idx++] = usestpcnt;
	    
		// 処理対象年月日
		setParam[idx++] = opeDate;

/* ★★★ 排他対応 UPDATE 2012.04.16 H.MORITA START ★★★ */
		JBSbatCommonDBInterface whereMap = null;
		JBSbatCommonDBInterface resultMap = null;
		try {
			whereMap = new JBSbatCommonDBInterface();
			whereMap.setValue("USE_STP_PRD_NO", useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_PRD_NO));
			resultMap = db_KK_T_USE_STP_PRD.selectByPrimaryKeysForUpdateWait(whereMap);
		} catch(JBSbatBusinessException bie) {
			throw bie;
		}
/* ★★★ 排他対応 UPDATE 2012.04.16 H.MORITA END ★★★ */

		//利用停止期間の更新
		executeKK_T_USE_STP_PRD_PKUPDATE(setParam,new Object[]{ useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_PRD_NO)}); 
	}
	
	/**
	 * 利用不可期間の訂正処理を行います.
	 * @param inMap 入力電文
	 * @param useStpPrd 利用停止期間情報
	 * @throws Exception
	 */
	private void teiseiEdit(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface useStpPrd) throws Exception
	{
// ANK-1578-00-00 2013.12.06 KURATA ADD START
//		Object[] setParam =  new Object[]{null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null};
		Object[] setParam =  new Object[]{null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null};
// ANK-1578-00-00 2013.12.06 KURATA ADD END

		// 利用停止期間番号
		setParam[0] = JBSbatOracleSeqUtil.getFormatedNextSeq(commonItem.getConnection(), SEQ_USE_STP_PRD_NO, "", 12);
// IT1-2012-0002247対応 20121130 星野 MOD START
//		// サービス契約番号
//		setParam[1] = inMap.getString(JBSbatKKIFM105.SVC_KEI_NO);
//		// サービス契約内訳番号
//		setParam[2] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
//		// 機器提供サービス契約番号
//		setParam[3] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
//		// オプションサービス契約番号
//		setParam[4] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
//		// サブオプションサービス契約番号
//		setParam[5] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
//		// 請求オプションサービス契約番号
//		setParam[6] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		// サービス契約番号
		setParam[1] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.SVC_KEI_NO);
		// サービス契約内訳番号
		setParam[2] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.SVC_KEI_UCWK_NO);
		// 機器提供サービス契約番号
		setParam[3] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.KKTK_SVC_KEI_NO);
		// オプションサービス契約番号
		setParam[4] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.OP_SVC_KEI_NO);
		// サブオプションサービス契約番号
		setParam[5] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.SBOP_SVC_KEI_NO);
		// 請求オプションサービス契約番号
		setParam[6] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.SEIOPSVC_KEI_NO);
// IT1-2012-0002247対応 20121130 星野 MOD END
		// 宅内機器型式コード
		setParam[7] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.TAKNKIKI_MODEL_CD);
		// 機器製造番号
		setParam[8] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.KIKI_SEIZO_NO);
		// 物流保全番号
		setParam[9] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.BTRYHOZN_NO);
		// 無料開始年月日
		setParam[10] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.MRYO_STAYMD);
		// 無料終了年月日
		setParam[11] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.MRYO_ENDYMD);
		// 利用停止コード
		setParam[12] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_CD);
		// 利用停止取扱コード
		setParam[13] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_TORIATSU_CD);
		// 利用停止理由コード
		setParam[14] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_RSN_CD);
		// 利用停止理由メモ
		setParam[15] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_RSN_MEMO);
		
		// 利用停止開始年月日時分秒
	    String usestpstadtm = null;
		JBSbatCommonDBInterface prccalcday = executeCH_M_PRC_SCHDL_TEIGI_KK_SELECT_002(new Object[]{opeDate.substring(0,6)});
		String prccal = prccalcday.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		//撤去工事完了日
		String tkkjfin = inMap.getString(JBSbatKKIFM105.TK_KJ_FIN_DAY);

		// ANK-4245-00-00 ADD START
		// 住変利用停止登録済フラグ
		String adchgUseStpAddFlg = inMap.getString(JBSbatKKIFM105.ADCHG_USE_STP_ADD_FLG);
		// ANK-4245-00-00 ADD END
		// 撤去工事完了日が料金計算日より後で住変利用停止登録済フラグが0の場合
		// ANK-4245-00-00 MOD START
//		if( prccal.compareTo(tkkjfin) < 0)
		if( prccal.compareTo(tkkjfin) < 0 && ADCHG_USE_STP_ADD_FLG_0.equals(adchgUseStpAddFlg))
		// ANK-4245-00-00 MOD END
		{
			// 利用停止開始年月日時分秒に撤去工事完了日の翌月の初日を設定
	    	usestpstadtm = JBSbatDateUtil.adjustMonth(tkkjfin, 1);
	    	usestpstadtm = usestpstadtm.substring(0, 6) +  "01";
	    	usestpstadtm = usestpstadtm+"000000000";
		}
		// 上記以外の場合
		else
		{
			// 利用停止開始年月日時分秒に撤去工事完了日を設定
			usestpstadtm = tkkjfin + "000000000";
		}
// ANK-2460-00-00 2015/05/18 ADD START
		if ((String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO) != null
				// OM-2017-0000898 2017/09/14 MOD START
//				&& !"".equals((String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO))) {
				&& !"".equals((String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO).trim())) {
				// OM-2017-0000898 2017/09/14 MOD END
			// 撤去工事案件にて工事案件の一意照会を実施し、Muse連携（マンション工事）のみ下記考慮を行う
			JBSbatCommonDBInterface kojiakMap = executeKU_T_KOJIAK_WK_KK_SELECT_035(new Object[] {(String)inMap.getString(JBSbatKKIFM105.AD_CHG_TK_KJ_AK_NO)});
			String mansKojiakStatCd = kojiakMap.getString(JBSbatKU_T_KOJIAK.MANS_KOJIAK_STAT_CD);
			// 利用不可期間から利用不可開始の日付を取得する
			// 利用不可期間の開始は撤去工事起因または解約希望日起因で設定されます、それに対して新設工事完了
			// を持って終了を埋める更新処理である。撤去工事の再連携は存在せず、解約希望日か撤去完了どちらか
			// より早い連携を基準に利用不可期間を作成するため、利用不可期間開始の変更は基本発生しない（Muse）
			if (useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM) != null && !"".equals(useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM))
					&& mansKojiakStatCd != null && !"".equals(mansKojiakStatCd)
			    )
			{
				usestpstadtm = (String)useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.USE_STP_STA_DTM);
			}
		}
// ANK-2460-00-00 2015/05/18 ADD END

		// 利用停止開始年月日時分秒
		setParam[16] = usestpstadtm ;

		// 利用停止終了年月日時分秒
		String usestpenddtm = null;  

		//新設工事完了日
		String newestakjfin =inMap.getString(JBSbatKKIFM105.NEWESTA_KJ_FIN_DAY );
	    //新設工事完了日が初期値以外の場合
		if(!"".equals(newestakjfin))
		{
			// 利用停止終了年月日時分秒に新設工事完了日を設定
			usestpenddtm = newestakjfin  + "000000000";
		}

		// 利用停止終了年月日時分秒
		setParam[17] = usestpenddtm;

		// 利用停止期間登録年月日
		setParam[18] = opeDate;
		
		String  usestpcnt = null;
		// 利用停止日数
		// 利用停止終了年月日時分秒が初期値(null)でない場合
		if(usestpenddtm != null) 
		{
		    usestpcnt = String.valueOf(JBSbatDateUtil.dayDiff(usestpenddtm.substring(0, 8), usestpstadtm.substring(0, 8), "2"));
		}
// OM-2013-0005375対応 20131227 星野 ADD START
		// 桁あふれする場合は最大値
		if( usestpcnt != null && usestpcnt.length() > 3 ){
			usestpcnt = "999";
		}
// OM-2013-0005375対応 20131227 星野 ADD END
		
		// 利用停止日数
		setParam[19] = usestpcnt;		
		// 処理対象年月日
		setParam[20] = opeDate;
		// サービス開始年月日
		setParam[21] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.SVC_STAYMD);
		// 住所変更撤去工事案件番号
		setParam[22] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.AD_CHG_TEKKYO_KJAK_NO);	
		
// ANK-1578-00-00 2013.12.06 KURATA ADD START
		// 機器オプションサービス契約番号
		setParam[30] = useStpPrd.getString(JBSbatKK_T_USE_STP_PRD.KKOP_SVC_KEI_NO);
// ANK-1578-00-00 2013.12.06 KURATA ADD END

		//利用停止期間の登録
		executeKK_T_USE_STP_PRD_PKINSERT(setParam);
	}
	
	/**
	 * 進捗情報の登録を行います.
	 * @param inMap 入力電文
	 * @param keiSbtNo 契約番号種類コード
	 * @param ptn 更新／登録パターン
	 * @throws Exception
	 */
	private void insPrg(JBSbatServiceInterfaceMap inMap, String keiSbtNo, String ptn) throws Exception
	{
// OM-2014-0000960対応 20140314 星野 ADD START
		// 更新／登録パターンが未設定の場合、更新/登録対象外と判断し、進捗も登録しない
		if(isBlank(ptn)){
			return;
		}
// OM-2014-0000960対応 20140314 星野 ADD END

		
		Object[] setParam =  new Object[]{null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null};
		// サービス契約番号
		String svcKeiNo = inMap.getString(JBSbatKKIFM105.SVC_KEI_NO);
        // 同一異動区分の進捗情報を取得
		JBSbatCommonDBInterface idoymddtm = executeKK_T_PRG_KK_SELECT_011(new Object[]{svcKeiNo, IDO_DIV_ADCHG_ADD});
		// システム年月日時分秒
		String sysdate = JCCBatCommon.getSysDateTimeStamp();

		// 異動年月日時分秒
		String idoDtm = sysdate;
		// 同一異動区分の進捗情報が取得できた場合
		if(idoymddtm != null && idoymddtm.getMap() != null)
		{
			idoDtm = idoymddtm.getString(JBSbatKK_T_PRG.IDO_DTM);
		}
		
		//進捗番号
		setParam[0] = JBSbatOracleSeqUtil.getFormatedNextSeq(commonItem.getConnection(), SEQ_PRG_NO, "" , 12);
		//申込明細番号
		setParam[1] = null;
		//請求契約番号
		setParam[2] = null;
		//請求方法番号(口座）
		setParam[3] = null;
		//請求方法番号(クレジットカード)
		setParam[4] = null;
		//サービス契約番号
		setParam[5] = inMap.getString(JBSbatKKIFM105.SVC_KEI_NO);
		//サービス内訳番号
		if (KEISTAT_CD_KKTKSV.equals(keiSbtNo)) 
		{
			setParam[6] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else
		{
			setParam[6] = null;
		}
		//サービス契約回線内訳番号
		setParam[7] =null;
		
		//機器提供サービス契約番号
		if(KEISTAT_CD_KKTKSV.equals(keiSbtNo)) 
		{
			setParam[8] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else
		{
			setParam[8] = null;
		}
		//オプションサービス契約番号
		if (KEISTAT_CD_OPSV.equals(keiSbtNo)) 
		{
			setParam[9] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else
		{
			setParam[9] = null;
		}
		//請求オプションサービス契約番号
		if (KEISTAT_CD_KEI_SEIOPSV.equals(keiSbtNo))
		{
			setParam[10] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else
		{
			setParam[10] = null;
		}
		//サブオプションサービス契約番号
		if (KEISTAT_CD_SBOPSV.equals(keiSbtNo)) 
		{ 
			setParam[11] = inMap.getString(JBSbatKKIFM105.VARI_KEI_NO);
		}
		else
		{
			setParam[11] = null;
		}
		//割引サービス契約番号
		setParam[12] = null;
		//異動区分
		setParam[13] = IDO_DIV_ADCHG_ADD;
		//異動年月日時分秒
		setParam[14] = idoDtm;
		
		//進捗ステータス
		
		if(ADD.equals(ptn) || UPD.equals(ptn))
		{
			setParam[15] = PRG_STAT_USE_FAIL_PRD_ADD;
		}
		else if(TEISE.equals(ptn))
		{
			setParam[15] = PRG_STAT_USE_FAIL_PRD_CHG;
		}
		//進捗年月日日時分秒
// ST2-2013-0001113対応 20130301 星野 MOD START
//		setParam[16] = sysdate;
		setParam[16] = super.opeDate + sysdate.substring(8);
// ST2-2013-0001113対応 20130301 星野 MOD END
		//進捗メモ
		setParam[17] = null;
		//進捗特記事項1
		setParam[18] = null;
		//進捗特記事項2
		setParam[19] = null;
		
		// 進捗情報をインサート
		executeKK_T_PRG_PKINSERT(setParam);	
	}
	
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_USE_STP_PRD.close();
		db_KK_T_PRG.close();
		db_KK_T_SBOP_SVC_KEI.close();
// ANK-1578-00-00 Kurata Add Start
		db_CH_M_PRC_SCHDL_TEIGI.close();
// ANK-1578-00-00 Kurata Add End
// ANK-2460-00-00 2015/05/18 ADD START
		db_KU_T_KOJIAK.close();
// ANK-2460-00-00 2015/05/18 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	利用停止期間登録年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_USE_STP_PRD_KK_SELECT_007(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_USE_STP_PRD.selectBySqlDefine(paramList, KK_T_USE_STP_PRD_KK_SELECT_007);
		return db_KK_T_USE_STP_PRD.selectNext();
	}

	/**
	 * SQLKEY(KK_SELECT_008)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約内訳番号
	 *		 	利用停止期間登録年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_USE_STP_PRD_KK_SELECT_008(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_USE_STP_PRD.selectBySqlDefine(paramList, KK_T_USE_STP_PRD_KK_SELECT_008);
		return db_KK_T_USE_STP_PRD.selectNext();
	}

	/**
	 * 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 JBSbatCommonDBInterface executeKK_T_USE_STP_PRD_KK_SELECT_009(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_USE_STP_PRD.selectBySqlDefine(paramList, KK_T_USE_STP_PRD_KK_SELECT_009);
		return db_KK_T_USE_STP_PRD.selectNext();
	}

	/**
	 * SQLKEY(KK_SELECT_010)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	オプションサービス契約番号
	 *		 	利用停止期間登録年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_USE_STP_PRD_KK_SELECT_010(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_USE_STP_PRD.selectBySqlDefine(paramList, KK_T_USE_STP_PRD_KK_SELECT_010);
		return db_KK_T_USE_STP_PRD.selectNext();
	}

	/**
	 * 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 JBSbatCommonDBInterface executeKK_T_USE_STP_PRD_KK_SELECT_011(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_USE_STP_PRD.selectBySqlDefine(paramList, KK_T_USE_STP_PRD_KK_SELECT_011);
		return db_KK_T_USE_STP_PRD.selectNext();
	}

	/**
	 * SQLKEY(KK_SELECT_012)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求オプションサービス契約番号
	 *		 	利用停止期間登録年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_USE_STP_PRD_KK_SELECT_012(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_USE_STP_PRD.selectBySqlDefine(paramList, KK_T_USE_STP_PRD_KK_SELECT_012);
		return db_KK_T_USE_STP_PRD.selectNext();
	}

	/**
	 * SQLKEY(KK_SELECT_044)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求オプションサービス契約番号
	 *		 	利用停止期間登録年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_USE_STP_PRD_KK_SELECT_044(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_USE_STP_PRD.selectBySqlDefine(paramList, KK_T_USE_STP_PRD_KK_SELECT_044);
		return db_KK_T_USE_STP_PRD.selectNext();
	}
	
	
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	利用停止期間番号				USE_STP_PRD_NO
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
	 *		 	機器オプションサービス契約番号				KKOP_SVC_KEI_NO
	 *		 	宅内機器型式コード				TAKNKIKI_MODEL_CD
	 *		 	機器製造番号				KIKI_SEIZO_NO
	 *		 	物流保全番号				BTRYHOZN_NO
	 *		 	無料開始年月日				MRYO_STAYMD
	 *		 	無料終了年月日				MRYO_ENDYMD
	 *		 	利用停止コード				USE_STP_CD
	 *		 	利用停止取扱コード				USE_STP_TORIATSU_CD
	 *		 	利用停止理由コード				USE_STP_RSN_CD
	 *		 	利用停止理由メモ				USE_STP_RSN_MEMO
	 *		 	利用停止開始年月日時分秒				USE_STP_STA_DTM
	 *		 	利用停止終了年月日時分秒				USE_STP_END_DTM
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	利用停止期間登録年月日				USE_STP_PRD_ADD_YMD
	 *		 	利用停止日数				USE_STP_CNT
	 *		 	処理対象年月日				TRN_TG_YMD
	 *		 	サービス開始年月日				SVC_STAYMD
	 *		 	住所変更撤去工事案件番号				AD_CHG_TEKKYO_KJAK_NO
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_USE_STP_PRD_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("USE_STP_PRD_NO", setParam[0]);
		setMap.setValue("SVC_KEI_NO", setParam[1]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[2]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[3]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[4]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[5]);
		setMap.setValue("SEIOPSVC_KEI_NO", setParam[6]);
		setMap.setValue("TAKNKIKI_MODEL_CD", setParam[7]);
		setMap.setValue("KIKI_SEIZO_NO", setParam[8]);
		setMap.setValue("BTRYHOZN_NO", setParam[9]);
		setMap.setValue("MRYO_STAYMD", setParam[10]);
		setMap.setValue("MRYO_ENDYMD", setParam[11]);
		setMap.setValue("USE_STP_CD", setParam[12]);
		setMap.setValue("USE_STP_TORIATSU_CD", setParam[13]);
		setMap.setValue("USE_STP_RSN_CD", setParam[14]);
		setMap.setValue("USE_STP_RSN_MEMO", setParam[15]);
		setMap.setValue("USE_STP_STA_DTM", setParam[16]);
		setMap.setValue("USE_STP_END_DTM", setParam[17]);
		setMap.setValue("USE_STP_PRD_ADD_YMD", setParam[18]);
		setMap.setValue("USE_STP_CNT", setParam[19]);
		setMap.setValue("TRN_TG_YMD", setParam[20]);
		setMap.setValue("SVC_STAYMD", setParam[21]);
		setMap.setValue("AD_CHG_TEKKYO_KJAK_NO", setParam[22]);
		setMap.setValue("ADD_DTM", setParam[23]);
		setMap.setValue("ADD_OPEACNT", setParam[24]);
		setMap.setValue("UPD_DTM", setParam[25]);
		setMap.setValue("UPD_OPEACNT", setParam[26]);
		setMap.setValue("DEL_DTM", setParam[27]);
		setMap.setValue("DEL_OPEACNT", setParam[28]);
		setMap.setValue("MK_FLG", setParam[29]);
// ANK-1578-00-00 2013.12.06 KURATA ADD START
		setMap.setValue("KKOP_SVC_KEI_NO", setParam[30]);
// ANK-1578-00-00 2013.12.06 KURATA ADD END
	
		// DBアクセスを実行します
		db_KK_T_USE_STP_PRD.insertByPrimaryKeys(setMap);
	}

	/**
	 * 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
	 * </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]);
	
		// DBアクセスを実行します
		db_KK_T_PRG.insertByPrimaryKeys(setMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	利用停止開始年月日時分秒				USE_STP_STA_DTM
	 *		 	利用停止終了年月日時分秒				USE_STP_END_DTM
	 *		 	利用停止日数				USE_STP_CNT
	 *		 	処理対象年月日				TRN_TG_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	USE_STP_PRD_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_USE_STP_PRD_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("USE_STP_STA_DTM", setParam[0]);
		setMap.setValue("USE_STP_END_DTM", setParam[1]);
		setMap.setValue("USE_STP_CNT", setParam[2]);
		setMap.setValue("TRN_TG_YMD", setParam[3]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("USE_STP_PRD_NO", whereParam[0]);

		// DBアクセスを実行します
		db_KK_T_USE_STP_PRD.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * 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 JBSbatCommonDBInterface executeKK_T_PRG_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_PRG.selectBySqlDefine(paramList, KK_T_PRG_KK_SELECT_011);
		return db_KK_T_PRG.selectNext();
	}
	
	/**
	 * SQLKEY(KK_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求年月
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeCH_M_PRC_SCHDL_TEIGI_KK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_KK_SELECT_002);
		return db_CH_M_PRC_SCHDL_TEIGI.selectNext();
	}
	
// IT1-2012-0002247対応 20121130 星野 ADD START
	/**
	 * 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 JBSbatCommonDBInterface executeKK_T_SBOP_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_SBOP_SVC_KEI.selectBySqlDefine(paramList, KK_T_SBOP_SVC_KEI_KK_SELECT_011);
		return db_KK_T_SBOP_SVC_KEI.selectNext();
	}
// IT1-2012-0002247対応 20121130 星野 ADD END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
// OM-2014-0000960対応 20140314 星野 ADD START
	/**
	 * 文字列がnull、または空文字列であるかチェックします。
	 * <br>
	 * @param value チェック文字列
	 * @return boolean true：null、または空文字列，false：左記以外
	 */
	private boolean isBlank(String value) {

		if (value == null || "".equals(value.trim())) {
			return true;
		}

		return false;
	}
// OM-2014-0000960対応 20140314 星野 ADD END
// ANK-2460-00-00 2015/05/18 ADD START
	/**
	 * SQLKEY(KK_SELECT_035)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * 
	 * <pre>
	 * 1.引数でバイント変数を設定します。&lt;br&gt;
	 * 
	 * 2.DBアクセスを実行します。&lt;br&gt;
	 * 
	 * 3.メソッの呼び出し方です。&lt;br&gt;
	 * 	引数:
	 * 	param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します
	 * 	 	工事案件番号
	 * </pre>
	 * <p>
	 * 
	 * @param param
	 *            バイント変数の値配列。
	 * @throws Exception
	 *             業務サービス内で発生した例外全般。
	 * @return JBSbatCommonDBInterfac 入出力情報
	 */
	private JBSbatCommonDBInterface executeKU_T_KOJIAK_WK_KK_SELECT_035(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_035);
		return db_KU_T_KOJIAK.selectNext();
	}
// ANK-2460-00-00 2015/05/18 ADD END
	
	// ANK-2681-00-00 2016/07/01 ADD START
	/**
	 * 利用停止期間論理削除
	 * @param useStpPrdNo 利用停止期間番号
	 * @throws Exception 例外
	 */
	private void deleteUseStpPrd(String useStpPrdNo) throws Exception
	{
		// 論理削除実行
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("USE_STP_PRD_NO", useStpPrdNo);
		db_KK_T_USE_STP_PRD.logicalDeleteByPrimaryKeys(whereMap);
	}
	// ANK-2681-00-00 2016/07/01 ADD END
}
