/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSvcKeiStaInfPrgAdd
*	ソースファイル名	：JBSbatKKSvcKeiStaInfPrgAdd.java
*	作成者				：富士通　
*	作成日				：2011年06月09日
*＜機能概要＞
*　サービス契約開始情報進捗登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/09  FJ)久保田	新規作成
*	v1.01.00	2011/11/13  FJ)倉上		IT2-2011-0000218
*	v1.02.00	2011/11/26  FJ)倉上		IT1-2011-0000328障害対応
*	v1.03.00	2012/02/15  FJ)久保田	ST2-2012-0000207障害対応
*	v3.00.00	2012/05/01	FJ)藤本		【巻@登録テーブル項目同期】対応
*	v4.00.00	2012/09/19  FJ)藤本		【ANK-0406-00-00】スマートバリュー情報連携
*	v4.01.00	2012/11/07  FJ)桑島		【ANK-1223-00-00】進捗対応
*	v4.02.00	2012/12/29  FJ)岡田		【ST4-2012-0000301】共通部品パラメタ変更対応
*	v4.03.00	2013/01/31  FJ)藤本		【ST2-2013-0000383】障害対応
*	v4.04.00	2013/03/14	FJ)中作		【IT1-2013-0000498】品質強化対策
*	v4.05.00	2013/03/26	FJ)柳		【IT1-2013-0000498】品質強化対策
*	v5.00.00	2013/04/04	FJ)藤本		【ST2-2013-0001705】障害対応
*	v5.00.01	2013/04/04	FJ)藤本		【IT1-2013-0000575】障害対応
*	v5.00.02	2013/04/11	FJ)中作		【ST2-2013-0001726】障害対応
*	v5.00.03	2013/06/11	FJ)藤本		【ST4-2013-0000469】性能改善
*	v5.00.04	2013/08/29	FJ)中作		【OM-2013-0000894】障害対応
*	v6.00.00	2013/12/24	FJ)中作		【OM-2013-0004436】障害対応
*	v7.00.00	2014/03/17	FJ)中作		【OM-2014-0000834】障害対応
*	v8.00.00	2014/03/20  FJ)岡田		【ANK-1855-00-00】契約形態が「締結済」の場合に開通前の番ポ無し⇒番ポ有などの登録不可対応
*	v11.00.00	2014/12/03	FJ)柿坂		【OM-2014-0003665】障害対応
*	v20.00.00	2015/12/03	FJ)米谷		【OM-2015-0002994】障害対応
*	v22.00.00	2015/11/20	FJ)金本		【ANK-2732-00-00】プロジェクト正常化施策 ソースの可読性向上  
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatKKIFM030;
import eo.business.util.file.JBSbatKKIFM492;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_M_PCRS;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_UCWK;
import eo.business.util.table.JBSbatKK_T_SVKEIUW_EOH_TEL;
import eo.common.util.JPCFomatString;
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;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKSvcKeiStaInfPrgAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_UCWK = "KK_T_SVC_KEI_UCWK";

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

	/** テーブル(料金コース)*/
	private static final String D_TBL_NAME_KK_M_PCRS = "KK_M_PCRS";

	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(サービス契約内訳＜ｅｏ光電話＞)*/
	private static final String D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL = "KK_T_SVKEIUW_EOH_TEL";

	// ++++++++++ v20.00.00 追加開始 ++++++++++
	/** テーブル(異動予約)*/
	private static final String D_TBL_NAME_KK_T_IDO_RSV = "KK_T_IDO_RSV";
	// ++++++++++ v20.00.00 追加終了 ++++++++++

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_032 = "KK_SELECT_032";

	/** SQL定義キー(KK_SELECT_237)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_237 = "KK_SELECT_237";

	/** SQL定義キー(KK_SELECT_070)*/
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_070 = "KK_SELECT_070";

	/** SQL定義キー(KK_SELECT_005)*/
	private static final String KK_M_PCRS_KK_SELECT_005 = "KK_SELECT_005";

	/** SQL定義キー(KK_SELECT_020)*/
	private static final String CK_T_CUST_KK_SELECT_020 = "KK_SELECT_020";

	/** SQL定義キー(KK_SELECT_043)*/
	private static final String KK_T_SVKEIUW_EOH_TEL_KK_SELECT_043 = "KK_SELECT_043";

	// ++++++++++ v20.00.00 追加開始 ++++++++++
	/** SQL定義キー(KK_SELECT_089)*/
	private static final String KK_T_IDO_RSV_KK_SELECT_089 = "KK_SELECT_089";
	// ++++++++++ v20.00.00 追加終了 ++++++++++

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_UCWK = null;

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;

	/** テーブルアクセスクラス(料金コース)*/
	private JBSbatSQLAccess db_KK_M_PCRS = null;

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(サービス契約内訳＜ｅｏ光電話＞)*/
	private JBSbatSQLAccess db_KK_T_SVKEIUW_EOH_TEL = null;

	// ++++++++++ v20.00.00 追加開始 ++++++++++
	/** テーブルアクセスクラス(異動予約)*/
	private JBSbatSQLAccess db_KK_T_IDO_RSV = null;
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_PK = null;
	// ++++++++++ v20.00.00 追加終了 ++++++++++
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** テーブルアクセスクラス(共通部品)*/
	private JBSbatSQLAccess stmt = null;

	/** シーケンス定義名(SEQ_PRG_NO)*/
	private static final String SEQ_PRG_NO = "SEQ_PRG_NO";
	
	/**
	 * 処理年月日
	 */
	protected String sriYmd = "";
	
	/**
	 * サービス開始処理種別コード
	 */
	protected String svcKisSrsbCd = "";
	
	/**
	 * サービス開始処理単位コード
	 */
	protected String svcKisSrtiCd = "";
	
	/**
	 * サービス契約番号
	 */
	protected String svcKeiNo = "";
	
	/**
	 * サービス契約内訳番号
	 */
	protected String svcKeiUcwkNo = "";
	
	/**
	 * 基準年月日
	 */
	protected String kjnYmd = "";
	
	/** 
	 * 変更前サービス開始年月日 
	 */
	protected String hnkMaeSvcStaYmd = "";

	/** 
	 * 変更前サービス課金開始年月日 
	 */
	protected String hnkMaeSvcChrgStaymd = "";

	/** 
	 * 変更後サービス開始年月日 
	 */
	protected String hnkAtoSvcStaYmd = "";

	/** 
	 * 変更後サービス課金開始年月日 
	 */
	protected String hnkAtoSvcChrgStaymd = "";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		db_KK_M_PCRS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_PCRS);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_SVKEIUW_EOH_TEL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEIUW_EOH_TEL);
		// ++++++++++ v20.00.00 追加開始 ++++++++++
		db_KK_T_SVC_KEI_PK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_IDO_RSV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_IDO_RSV);
		// ++++++++++ v20.00.00 追加終了 ++++++++++
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 共通部品用
		stmt = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// 中間ファイルの読み込みを行います。
		getKkifm030(inMap);
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// 進捗情報の登録処理を行います。
		insertPrg(outputBean);
		
		super.logPrint.printDebugLog("execute_END");
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVC_KEI_UCWK.close();
		db_KK_T_PRG.close();
		db_KK_M_PCRS.close();
		db_CK_T_CUST.close();
		db_KK_T_SVKEIUW_EOH_TEL.close();
		// ++++++++++ v20.00.00 追加開始 ++++++++++
		db_KK_T_SVC_KEI_PK.close();
		db_KK_T_IDO_RSV.close();
		// ++++++++++ v20.00.00 追加終了 ++++++++++
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		// 共通部品用
		stmt.close();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(KK_SELECT_032)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_032(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_032);
	}

	/**
	 * SQLKEY(KK_SELECT_237)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_237(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_237);
	}

	/**
	 * SQLKEY(KK_SELECT_070)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_UCWK_NO
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_UCWK_KK_SELECT_070(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_SVC_KEI_UCWK_KK_SELECT_070);
	}

	/**
	 * 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);
	}

	/**
	 * SQLKEY(KK_SELECT_043)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約内訳番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_043(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEIUW_EOH_TEL.selectBySqlDefine(paramList, KK_T_SVKEIUW_EOH_TEL_KK_SELECT_043);
	}	
	/**
	 * SQLKEY(KK_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	PCRS_CD
	 *		 	PCRS_TSTAYMD
	 *		 	PCRS_TENDYMD
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_PCRS_KK_SELECT_005(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_M_PCRS.selectBySqlDefine(paramList, KK_M_PCRS_KK_SELECT_005);
	}

	/**
	 * SQLKEY(KK_SELECT_020)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SYSID
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_CUST_KK_SELECT_020(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_KK_SELECT_020);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	入会年月日				JOIN_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SYSID
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_CUST_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("JOIN_YMD", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SYSID", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		db_CK_T_CUST.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 
	 * 中間ファイルの読み込みを行います。
	 * 
	 * @param inMap 中間ファイルの値。
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void getKkifm030(JBSbatServiceInterfaceMap inMap) throws Exception 
	{
		
		sriYmd              = inMap.getString(JBSbatKKIFM030.SRI_YMD);						// 処理年月日
		svcKisSrsbCd        = inMap.getString(JBSbatKKIFM030.SVC_KIS_SRSB_CD);				// サービス開始処理種別コード
		svcKisSrtiCd        = inMap.getString(JBSbatKKIFM030.SVC_KIS_SRTI_CD);				// サービス開始処理単位コード
		svcKeiNo            = inMap.getString(JBSbatKKIFM030.SVC_KEI_NO);					// サービス契約番号
		svcKeiUcwkNo        = inMap.getString(JBSbatKKIFM030.SVC_KEI_UCWK_NO);				// サービス契約内訳番号
		kjnYmd              = inMap.getString(JBSbatKKIFM030.KJN_YMD);						// 基準年月日
		hnkMaeSvcStaYmd     = inMap.getString(JBSbatKKIFM030.HNK_MAE_SVC_STA_YMD);			// 変更前サービス開始年月日
		hnkMaeSvcChrgStaymd = inMap.getString(JBSbatKKIFM030.HNK_MAE_SVC_CHRG_STAYMD);		// 変更前サービス課金開始年月日
		hnkAtoSvcStaYmd     = inMap.getString(JBSbatKKIFM030.HNK_ATO_SVC_STA_YMD);			// 変更後サービス開始年月日
		hnkAtoSvcChrgStaymd = inMap.getString(JBSbatKKIFM030.HNK_ATO_SVC_CHRG_STAYMD);		// 変更後サービス課金開始年月日
	}
	
	/**
	 * 
	 * 進捗の登録を行います。
	 * 
	 * @param outputBean 出力共通電文
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void insertPrg(JBSbatOutputItem outputBean) throws Exception 
	{
		// SQL定義キー(KK_SELECT_032)を実行する
		String [] paramList01 = {svcKeiNo, opeDate};
		executeKK_T_SVC_KEI_KK_SELECT_032(paramList01);
		
		// 検索結果を取得する
		JBSbatCommonDBInterface svcKeiMap = db_KK_T_SVC_KEI.selectNext();
		if(null != svcKeiMap)
		{
			// サービス契約情報の項目を取得
			/* ++++++++++ v1.01.00 修正開始 ++++++++++ */
			//String mskmDtlNo = svcKeiMap.getString("MSKM_DTL_NO");
			//String idoDiv = svcKeiMap.getString("IDO_DIV");
			//String svcStaDtm = svcKeiMap.getString("SVC_STA_YMD");
			
			String mskmDtlNo = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
			String idoDiv    = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
			
			// サービスコード
			String svcCd = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
			
/* ++++++++++ v11.00.00 追加開始 ++++++++++ */
			Boolean b00041 = false;
/* ++++++++++ v11.00.00 追加終了 ++++++++++ */
			
			// カレントの異動区分が「00019：住所変更・登録」以外の場合
			// ++++++++++ v22.00.00 変更開始 ++++++++++
//			if(!"00019".equals(idoDiv))
			if(!JBSbatKKConst.CD00576_IDO_DIV_00019.equals(idoDiv))
			// ++++++++++ v22.00.00 変更終了 ++++++++++
			{
				// 対象のサービス契約が「電話」の場合
				// ++++++++++ v22.00.00 変更開始 ++++++++++
//				if("02".equals(JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CD))))
				if(JBSbatKKConst.SVC_CD_TEL_SVC.equals(JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CD))))
				// ++++++++++ v22.00.00 変更終了 ++++++++++
				{
					// サービス契約内訳より受付時の異動区分を検索する。
					String[] param = {svcKeiUcwkNo, super.opeDate};
					this.executeKK_T_SVC_KEI_UCWK_KK_SELECT_070(param);
					JBSbatCommonDBInterface svc_kei_ucwk_map = db_KK_T_SVC_KEI_UCWK.selectNext();
					if(null != svc_kei_ucwk_map)
					{
						// 取得した異動区分に置き換える。
						idoDiv = JBSbatStringUtil.Rtrim(svc_kei_ucwk_map.getString(JBSbatKK_T_SVC_KEI_UCWK.IDO_DIV));
						
						// 取得した異動区分が「00042：光電話・番号変更」の場合、新規契約扱いとして、
						//   「00001：新規契約」に置き換える。
						super.logPrint.printDebugLog("idoDiv：" +  idoDiv);
						
						// ++++++++++ v22.00.00 変更開始 ++++++++++
//						if ("00042".equals(idoDiv))
						if (JBSbatKKConst.CD00576_IDO_DIV_00042.equals(idoDiv))
						// ++++++++++ v22.00.00 変更終了 ++++++++++
						{
							// ++++++++++ v22.00.00 変更開始 ++++++++++
//							idoDiv = "00001";
							idoDiv = JBSbatKKConst.CD00576_IDO_DIV_00001;
							// ++++++++++ v22.00.00 変更終了 ++++++++++
							super.logPrint.printDebugLog("置換後idoDiv：" +  idoDiv);
						}
						
/* ++++++++++ v11.00.00 追加開始 ++++++++++ */
						// 取得した異動区分が「00041：光電話・番号追加」かつ、変更前のサービス課金開始年月日が空の場合、
						// 新規契約扱い「00001：新規契約」として、ファイル出力時に置き換える。
						//   ※"EO20902C0J"でスマートバリュー異動情報登録CCを呼び出すため
						// ++++++++++ v22.00.00 変更開始 ++++++++++
//						if ("00041".equals(idoDiv) && hnkMaeSvcChrgStaymd.isEmpty())
						if (JBSbatKKConst.CD00576_IDO_DIV_00041.equals(idoDiv) && hnkMaeSvcChrgStaymd.isEmpty())
						// ++++++++++ v22.00.00 変更終了 ++++++++++
						{
							b00041 = true;
						}
/* ++++++++++ v11.00.00 追加終了 ++++++++++ */
					}
				}
				else
				{
					// サービス契約より受付時の異動区分を検索する。
					String[] param = {svcKeiNo, super.opeDate};
					this.executeKK_T_SVC_KEI_KK_SELECT_237(param);
					JBSbatCommonDBInterface svc_kei_map = db_KK_T_SVC_KEI.selectNext();
					if(null != svc_kei_map)
					{
						// 取得した異動区分に置き換える。
						idoDiv = JBSbatStringUtil.Rtrim(svc_kei_map.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
					}
				}
			}
			
			// サービス開始年月日
			String svcStaDtm = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_STA_YMD));
			// サービス課金開始年月日
			String svcChrgStaymd = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
			
			// 共通部品（進捗.異動年月日取得部品）より異動年月日時分秒（またはシステム日付）を取得
			String idoDtm = JKKBatCommon. getIdoDtmMax(commonItem, svcKeiNo, idoDiv, stmt);
			
			/* ++++++++++ v1.01.00 修正終了 ++++++++++ */
			
			/* ++++++++++ v1.03.00 修正開始 ++++++++++ */
			// サービス開始年月日が設定されたデータの進捗登録を行う
			if(!"".equals(svcStaDtm))
			{
				// システム日付を取得
				String sysDate = JCCBatCommon.getSysDateTimeStamp();
				
				// 登録用の進捗年月日時分秒
				String prg_dtm = super.opeDate + sysDate.substring(8);
				
				// 進捗ステータス
				String prg_stat = "";
				
				// 異動区分="00041:光電話・番号追加"
				// ++++++++++ v22.00.00 変更開始 ++++++++++
//				if("00041".equals(idoDiv))
				if(JBSbatKKConst.CD00576_IDO_DIV_00041.equals(idoDiv))
				// ++++++++++ v22.00.00 変更終了 ++++++++++
				{
					// 進捗ステータス「B401：光電話番号追加完了」
					// ++++++++++ v22.00.00 変更開始 ++++++++++
//					prg_stat = "B401";
					prg_stat = JBSbatKKConst.CD00647_PRG_STAT_B401;
					// ++++++++++ v22.00.00 変更終了 ++++++++++
				}
				else
				{
					// 進捗ステータス「1000：サービス提供中」
					// ++++++++++ v22.00.00 変更開始 ++++++++++
//					prg_stat = "1000";
					prg_stat = JBSbatKKConst.CD00647_PRG_STAT_1000;
					// ++++++++++ v22.00.00 変更終了 ++++++++++
				}
				
				// 登録する進捗のパラメータを設定します
				String [] setParam = {
						JBSbatStringUtil.padNumFormString(
						JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), SEQ_PRG_NO), 12),// 進捗番号 → 自動採番
						mskmDtlNo,																	// 申込明細番号 → KK_T_SVC_KEI.KK_SELECT_032.MSKM_DTL_NO
						"",																			// 請求契約番号 → NULL（未設定）
						"",																			// 請求方法番号（口座） → NULL（未設定）
						"",																			// 請求方法番号（クレジットカード） → NULL（未設定）
						svcKeiNo,																	// サービス契約番号 → サービス開始対象契約取得ファイル.サービス契約番号
						"",																			// サービス契約内訳番号 → NULL（未設定）
						"",																			// サービス契約回線内訳番号 → NULL（未設定）
						"",																			// 機器提供サービス契約番号 → NULL（未設定）
						"",																			// オプションサービス契約番号 → NULL（未設定）
						"",																			// 請求オプションサービス契約番号 → NULL（未設定）
						"",																			// サブオプションサービス契約番号 → NULL（未設定）
						"",																			// 割引サービス契約番号 → NULL（未設定）
						idoDiv,																		// 異動区分 → KK_T_SVC_KEI.KK_SELECT_032.IDO_DIV
						/* ++++++++++ v1.03.00 修正開始 ++++++++++ */
//						svcStaDtm,																	// 異動年月日時分秒 →KK_T_SVC_KEI.KK_SELECT_032.SVC_STA_YMD
//						svcStaDtm + "000000000",													// 異動年月日時分秒 →KK_T_SVC_KEI.KK_SELECT_032.SVC_STA_YMD
						/* ++++++++++ v1.03.00 修正終了 ++++++++++ */
						idoDtm,																		// 異動年月日時分秒 →共通部品（進捗.異動年月日取得部品）
						
						/* ++++++++++ v1.01.00 修正開始 ++++++++++ */
						//"1001",																	// 進捗ステータス → 100
						//sysDate,																	// 進捗年月日時分秒 → システム日時
						prg_stat,																	// 進捗ステータス → 1000
						// ++++++++++ v20.00.00 変更開始 ++++++++++
//						prg_dtm,																	// 進捗年月日時分秒 → バッチ運用日+実施日のhhmmssSSSを設定。
						this.getPrgDtm(svcKeiMap, sysDate),											// 進捗年月日時分秒
						// ++++++++++ v20.00.00 変更終了 ++++++++++
						/* ++++++++++ v1.01.00 修正開始 ++++++++++ */
						
						"",																			// 進捗メモ → NULL（未設定）
						"",																			// 進捗特記事項１ → NULL（未設定）
						getPrgTkjk2(svcStaDtm, svcChrgStaymd, svcCd),								// 進捗特記事項２ → サービス開始日、サービス課金開始日の表示
						sysDate,																	// 登録年月日時分秒 →  システム日時
						batchUserId,		 														// 登録オペレータアカウント → バッチ更新者ＩＤ
						sysDate,																	// 更新年月日時分秒 →  システム日時
						batchUserId,																// 更新オペレータアカウント → バッチ更新者ＩＤ
						"",																			// 削除年月日時分秒 → NULL（未設定）
						"",																			// 削除オペレータアカウント → NULL（未設定）
						// ++++++++++ v22.00.00 変更開始 ++++++++++
//						"0",																		// 無効フラグ → "0"(有効)
						JBSbatKKConst.MK_FLG_YK,													// 無効フラグ → "0"(有効)
						// ++++++++++ v22.00.00 変更終了 ++++++++++
						"",																			// 登録運用年月日 → NULL（未設定）
						"",																			// 登録処理ID → NULL（未設定）
						"",																			// 更新運用年月日 → NULL（未設定）
						"",																			// 更新処理ID → NULL（未設定）
						"",																			// 削除運用年月日 → NULL（未設定）
						""};																		// 削除処理ID → NULL（未設定）
				executeKK_T_PRG_PKINSERT(setParam);
				
				// 料金グループコードを取得
				String prc_grp_cd = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.PRC_GRP_CD));
				
				// 料金グループコードが「02：eo光ネットホームタイプ」、「03：eo光ネットメゾンタイプ」、「04：eo光ネットマンションタイプ」、「10：ｅｏ光電話」
				// の場合はスマートバリュー異動情報登録共通機能呼出処理を行う。
				// ++++++++++ v22.00.00 変更開始 ++++++++++
//				if("02".equals(prc_grp_cd) || "03".equals(prc_grp_cd) || "04".equals(prc_grp_cd) || "10".equals(prc_grp_cd))
				if(JBSbatKKConst.PGRP_NET_02.equals(prc_grp_cd) || JBSbatKKConst.PGRP_NET_03.equals(prc_grp_cd) || JBSbatKKConst.PGRP_NET_04.equals(prc_grp_cd) || JBSbatKKConst.PGRP_TEL.equals(prc_grp_cd))
				// ++++++++++ v22.00.00 変更終了 ++++++++++
				{
					super.logPrint.printDebugLog("★サービス契約番号---->" + svcKeiNo);
					super.logPrint.printDebugLog("★料金グループコード---->" + prc_grp_cd);
					super.logPrint.printDebugLog("★サービス課金開始日---->" + svcChrgStaymd);
					// 課金開始日="20991231"以外
					if(!"20991231".equals(svcChrgStaymd))
					{
/* ++++++++++ v11.00.00 修正開始 ++++++++++ */
						if (b00041)
						{
							// サービス契約がサービス提供中となる間に番号追加されていると判断した場合、
							// 新規契約扱い「00001：新規契約」とする。
							//   ※契約手続中に番号追加 → 番号解約(1番号目)とした際に
							//     "EO20902C0J"のスマートバリュー異動情報登録CCを実行するため。
							// ++++++++++ v22.00.00 変更開始 ++++++++++
//							idoDiv = "00001";
							idoDiv = JBSbatKKConst.CD00576_IDO_DIV_00001;
							// ++++++++++ v22.00.00 変更終了 ++++++++++
							// 進捗ステータスも併せて変更「1000：サービス提供中」
							// ++++++++++ v22.00.00 変更開始 ++++++++++
//							prg_stat = "1000";
							prg_stat = JBSbatKKConst.CD00647_PRG_STAT_1000;
							// ++++++++++ v22.00.00 変更終了 ++++++++++
						}
/* ++++++++++ v11.00.00 修正開始 ++++++++++ */
						// 入出力インターフェースオブジェクトを生成
						JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
						outmap.setString(JBSbatKKIFM492.SVC_KEI_NO, svcKeiNo);
						outmap.setString(JBSbatKKIFM492.IDO_DIV, idoDiv);
						outmap.setString(JBSbatKKIFM492.PRG_STAT, prg_stat);
						outmap.setString(JBSbatKKIFM492.PRG_DTM, prg_dtm);
						outmap.setString(JBSbatKKIFM492.PRC_GRP_CD, prc_grp_cd);
						
						// 出力フラグを設定
						outmap.setOutFlg(true);
						// 出力共通電文に入出力インターフェースを設定する。
						outputBean.addOutMapList(outmap);
					}
				}
				// お客様入会年月日設定処理を行う。
				this.setCustJoinYMD(svcKeiMap);
			}
			/* ++++++++++ v1.03.00 修正終了 ++++++++++ */
		}
	}
	
	/**
	 * 
	 * お客様入会年月日設定を行います。
	 * 
	 * @param svcKeiMap サービス契約検索結果
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void setCustJoinYMD(JBSbatCommonDBInterface svcKeiMap) throws Exception
	{
		// サービス契約検索結果より料金コースコードを取得する。
		String pcrs_cd = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.PCRS_CD));
		
		// 料金コースコードマスタの検索を行う。
		String[] param = {pcrs_cd, super.opeDate, super.opeDate, super.opeDate};
		this.executeKK_M_PCRS_KK_SELECT_005(param);
		JBSbatCommonDBInterface pcrsMap = db_KK_M_PCRS.selectNext();
		if(null != pcrsMap)
		{
			// ID通知書発行識別コードが「0：発行なし」以外の場合
			// ++++++++++ v22.00.00 変更開始 ++++++++++
//			if(!"0".equals(JBSbatStringUtil.Rtrim(pcrsMap.getString(JBSbatKK_M_PCRS.ID_TCHISHO_HAK_SKBT_CD))))
			if(!JBSbatKKConst.CD01493_ID_TCHISHO_HAK_SKBT_CD_0.equals(JBSbatStringUtil.Rtrim(pcrsMap.getString(JBSbatKK_M_PCRS.ID_TCHISHO_HAK_SKBT_CD))))
			// ++++++++++ v22.00.00 変更終了 ++++++++++
			{
				// お客様の検索を行う。
				String sysid = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SYSID));
				String[] param_cust = {sysid, super.opeDate};
				this.executeCK_T_CUST_KK_SELECT_020(param_cust);
				JBSbatCommonDBInterface custMap = db_CK_T_CUST.selectNext();
				if(null != custMap)
				{
					// 入会年月日が未設定の場合
					String join_ymd = JBSbatStringUtil.Rtrim(custMap.getString(JBSbatCK_T_CUST.JOIN_YMD));
					if("".equals(join_ymd))
					{
						// お客様の更新処理を行います。
						this.updateCust(custMap, JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_STA_YMD)));
					}
					else
					{
						super.logPrint.printDebugLog("入会年月日　設定済み[" + sysid + "]：" + join_ymd);
					}
				}
				else
				{
					super.logPrint.printDebugLog("お客様情報データなし。SYSID：" + sysid);
				}
			}
		}
		else
		{
			super.logPrint.printBusinessErrorLog("EDKB0020KE", new String[]{"料金コース", pcrs_cd});
		}
	}
	
	/**
	 * 
	 * お客様の更新を行います。
	 * 
	 * @param custMap お客様検索結果
	 * @param svc_sta_ymd サービス開始年月日
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void updateCust(JBSbatCommonDBInterface custMap, String svc_sta_ymd) throws Exception
	{
		// お客様の検索結果よりSYSID、GENE_ADD_DTMの取得。
		String sysid = JBSbatStringUtil.Rtrim(custMap.getString(JBSbatKK_T_SVC_KEI.SYSID));
		String gene_add_dtm = JBSbatStringUtil.Rtrim(custMap.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM));
		
		// お客様の排他制御を行う。
		JBSbatCommonDBInterface custMapForUpdate = new JBSbatCommonDBInterface();
		custMapForUpdate.setValue(JBSbatCK_T_CUST.SYSID, sysid);
		custMapForUpdate.setValue(JBSbatCK_T_CUST.GENE_ADD_DTM, gene_add_dtm);
		JBSbatCommonDBInterface dbmap = db_CK_T_CUST.selectByPrimaryKeysForUpdateWait(custMapForUpdate);
		if(null != dbmap)
		{
			// 入会年月日をサービス開始日でお客様の更新を行う。
			String[] setParam = {svc_sta_ymd};
			String[] whereParam = {sysid, gene_add_dtm};
			
			this.executeCK_T_CUST_PKUPDATE(setParam, whereParam);
		}
		else
		{
			super.logPrint.printBusinessErrorLog("EKKB0360KE", new String[]{"お客様", sysid});
			super.logPrint.printDebugLog("排他エラーが発生しました。{SYSID:" + sysid + "}");
		}
	}
	
	/**
	 * 処理結果に対応する進捗特記事項２を返却します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 
	 * 1.『"サービス開始日：" + サービス契約に設定したサービス開始年月日 + "サービス課金開始日：" + サービス契約に設定したサービス課金開始年月日』 に編集<br>
	 * 電話サービスの場合、電話番号付加「電話番号：0740000000」
	 * 
	 * </pre>
	 * <p>
	 * @param svcStaDtm　サービス開始年月日。
	 * @param svcChrgStaymd　サービス課金開始年月日。
	 * @param svcCd サービスコード
	 * @return String　進捗特記事項２ 表示内容
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getPrgTkjk2(String svcStaDtm, String svcChrgStaymd, String svcCd) throws Exception
	{
		StringBuffer value = new StringBuffer();
		
		if(!"".equals(svcStaDtm))
		{
			value.append("サービス開始日：");
			value.append(JPCFomatString.formatDate(svcStaDtm)+" ");
		}
		
		if(!"".equals(svcChrgStaymd))
		{
			value.append("サービス課金開始日：");
			value.append(JPCFomatString.formatDate(svcChrgStaymd));
		}
		
		// 電話サービスの場合
		// 電話番号付加
		// ++++++++++ v22.00.00 変更開始 ++++++++++
//		if("02".equals(svcCd))
		if(JBSbatKKConst.SVC_CD_TEL_SVC.equals(svcCd))
		// ++++++++++ v22.00.00 変更終了 ++++++++++
		{
			value.append(" ");
			value.append("電話番号：");
			value.append(getTelNo());
		}
		
		return  value.toString();
	}
	
	/**
	 * 
	 * サービス契約内訳<eo光電話>より電話番号を取得します。
	 * @throws Exception 
	 * 
	 */
	private Object getTelNo() throws Exception
	{
		String result = "";
		
		super.logPrint.printDebugLog("★★★サービス契約内訳番号-->" + svcKeiUcwkNo);
		
		executeKK_T_SVKEIUW_EOH_TEL_KK_SELECT_043(new Object[]{svcKeiUcwkNo, super.opeDate});
		
		JBSbatCommonDBInterface dbMap = db_KK_T_SVKEIUW_EOH_TEL.selectNext();
		
		if(null != dbMap)
		{
			// 電話番号
			result = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_SVKEIUW_EOH_TEL.TELNO));
		}
		
		return result;
	}
	
	// ++++++++++ v20.00.00 追加開始 ++++++++++
	/**
	 * 進捗登録用進捗年月日時分秒を返却します。
	 * @param svcKeiMap　サービス契約(カレント)
	 * @param sysDate	システム日付
	 * @return	進捗年月日時分秒
	 * @throws Exception
	 */
	private String getPrgDtm(JBSbatCommonDBInterface svcKeiMap, String sysDate) throws Exception
	{
		// バッチ運用日の翌日
		String opeDateNextDay = JBSbatDateUtil.adjustDate(super.opeDate, 1);
		// 当月末
		String endOfMonth = super.opeDate.substring(0,6) + JBSbatDateUtil.getEndOfMonth(super.opeDate.substring(0,6));
		
		if(!super.opeDate.equals(endOfMonth))
		{
			// 月末でない場合バッチ運用日+システム日付(時分秒)を返却します。
			return super.opeDate + sysDate.substring(8);
		}
		
		if(!JBSbatKKConst.PCRS_CD_TWONUMBER.equals(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.PCRS_CD)))
		{
			// 電話(2番号コース)でない場合バッチ運用日+システム日付(時分秒)を返却します。
			return super.opeDate + sysDate.substring(8);
		}
		
		// サービス契約のプラン開始年月日を取得する。
		String svcKeiNo = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		String geneAddDtm = JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM));
		String [] whereParam = {svcKeiNo, geneAddDtm};
		
		JBSbatCommonDBInterface svcKeiPkMap = executeKK_T_SVC_KEI_PKSELECT(whereParam);
		
		if(svcKeiPkMap == null)
		{
			return super.opeDate + sysDate.substring(8);
		}
		
		if(!(opeDateNextDay.equals(JBSbatStringUtil.Rtrim(svcKeiPkMap.getString(JBSbatKK_T_SVC_KEI.PLAN_STAYMD)))))
		{
			// プラン開始年月日がバッチ運用日 + 1日でない場合バッチ運用日+システム日付(時分秒)を返却します。
			return super.opeDate + sysDate.substring(8);
		}
		
		// 異動予約を検索
		Object[] param = {svcKeiNo, super.opeDate};
		executeKK_T_IDO_RSV_KK_SELECT_089(param);
		
		if(db_KK_T_IDO_RSV.selectNext() != null)
		{
			// コース変更が当日、適用されている場合は進捗．進捗登録年月日はバッチ運用日翌日 + システム日付(時分秒)を設定する。
			return opeDateNextDay + sysDate.substring(8);
		}
		
		return super.opeDate + sysDate.substring(8);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SVC_KEI_PKSELECT(Object[] param) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", param[0].toString());
		whereMap.setValue("GENE_ADD_DTM", param[1].toString());

		// DBアクセスを実行します
		return db_KK_T_SVC_KEI_PK.selectByPrimaryKeys(whereMap);
	}
	
	/**
	 * SQLKEY(KK_SELECT_089)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	IDO_RSV_HANEI_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_IDO_RSV_KK_SELECT_089(Object[] whereParam) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(whereParam[0]);
		paramList.setValue(whereParam[1]);

		// DBアクセスを実行します
		db_KK_T_IDO_RSV.selectBySqlDefine(paramList, KK_T_IDO_RSV_KK_SELECT_089);
	}
	// ++++++++++ v20.00.00 追加終了 ++++++++++
}