/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKktkSvkeiChsht
*	ソースファイル名	：JBSbatKKKktkSvkeiChsht.java
*	作成者				：富士通　
*	作成日				：2012年05月03日
*＜機能概要＞
*　機器提供サービス契約抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v2.00.00	2012/05/03  FJ）藤本	新規作成
*	v4.00.00	2013/02/28  FJ）岡田	【ST2-2013-0001022】障害対応
*	v5.00.00	2013/11/05  FJ）中作	【OM-2013-0003705】障害対応
*	v22.00.00	2015/11/20  FJ) 広部	【ANK-2732-00-00】プロジェクト正常化施策 ソースの可読性向上
*	v25.00.00	2016/05/12  FJ) 謝		【IT1-2016-0000059】障害対応
*	v25.00.01	2016/06/01  FJ) 川島	【IT2-2016-0000029】対応
*********************************************************************/
package eo.business.service;

import java.util.HashSet;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.util.file.JBSbatKKIFM197;
import eo.business.util.table.JBSbatDK_T_HAISO_TG_BPIN;
import eo.business.util.table.JBSbatKK_T_KAISEN_TG_SVKEI;
import eo.business.util.table.JBSbatKK_T_KJ_FIN_WK;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVKEI_EXC_CTRL;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
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.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKKktkSvkeiChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(サービス契約回線内訳)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";

	/** SQL定義キー(KK_SELECT_248)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_248 = "KK_SELECT_248";

	/** SQL定義キー(KK_SELECT_066)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_066 = "KK_SELECT_066";

	/** SQL定義キー(KK_SELECT_161)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_161 = "KK_SELECT_161";

	/** SQL定義キー(KK_SELECT_022)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_022 = "KK_SELECT_022";

// IT1-2016-0000059 ADD START
	/** SQL定義キー(KK_SELECT_232)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_232 = "KK_SELECT_232";
// IT1-2016-0000059 ADD END

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
// IT2-2016-0000029 ADD START
	// 工事案件番号重複チェック用HashSet
	private HashSet<String> kojiakNoSet = new HashSet<String>();
// IT2-2016-0000029 ADD END
	
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		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);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		JBSbatOutputItem out_bean = new JBSbatOutputItem();
		
		// 取得した工事完了、配送予定となった機器情報から、
		// 新規契約/サービス追加時の光ネット（マンション）光配線に伴う機器情報の場合、
		//   光ネット（マンション）光配線の絞り込みを行います。
		// 新規契約/サービス追加時の光ネット（マンション）光配線に伴う機器のレコード判定を取得します。
		String kiki = JBSbatStringUtil.Rtrim(inMap.getString("KIKI"));
		super.logPrint.printDebugLog("kiki：" + kiki);
		
		// 取得結果が"2"の場合、光ネット（マンション）光配線の絞り込みを行います。
		if ("2".equals(kiki))
		{
			super.logPrint.printDebugLog("取得結果が「2」の場合、光ネット（マンション）光配線の" +
					"絞り込みを行います");
			
			// サービス契約番号
			String svcKeiNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_KJ_FIN_WK.SVC_KEI_NO));
			
			// 光ネット（マンション）光配線のレコードを取得します。
			JBSbatCommonDBInterface outDbMap248 = this.selectSvcKei248(svcKeiNo);
			
			// 検索結果なしの場合、光ネット（マンション）光配線以外とし、スキップします。
			if (null == outDbMap248)
			{
				super.logPrint.printDebugLog("光ネット（マンション）光配線以外とし、スキップ");
				return out_bean;
			}
		}
// IT2-2016-0000029 ADD START
		// 取得結果が"3"の場合、工事案件番号重複チェックを行い、重複したレコードを読み飛ばす。
		else if("3".equals(kiki))
		{
			// 工事案件番号
			String kojiakNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_KJ_FIN_WK.KOJIAK_NO));
			
			// 工事案件番号がすでに存在している場合
			if(kojiakNoSet.contains(kojiakNo))
			{
				// 処理をスキップする。
				return out_bean;
			}
			
			// 工事案件番号を重複チェック用HashSetに格納する。
			kojiakNoSet.add(kojiakNo);
		}
// IT2-2016-0000029 ADD END
		
		// 機器提供サービス契約の検索を行う。
		String[] param = {JBSbatStringUtil.Rtrim(inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.KKTK_SVC_KEI_NO))};
// IT1-2016-0000059 MOD START
//		this.executeKK_T_KKTK_SVC_KEI_KK_SELECT_066(param);
		// E-PON→GE-PON設備切替に伴うVA機器の場合
		if ("3".equals(kiki))
		{
			this.executeKK_T_KKTK_SVC_KEI_KK_SELECT_232(param);
		}
		// それ以外の場合
		else
		{
			this.executeKK_T_KKTK_SVC_KEI_KK_SELECT_066(param);
		}
// IT1-2016-0000059 MOD END
		JBSbatCommonDBInterface kktkMap = db_KK_T_KKTK_SVC_KEI.selectNext();
		
		// 検索結果がある場合
		if(null != kktkMap)
		{
			// 機器提供サービス契約ステータスを取得する。
			String kktk_svc_kei_stat = JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT));
			
			// 取得した先頭のステータスが以下の場合は対象外とする。
			// ++++++++++ v22.00.00 変更開始 ++++++++++
//			if("100".equals(kktk_svc_kei_stat)		// サービス提供中
//			|| "210".equals(kktk_svc_kei_stat)		// 休止・中断中
//			|| "220".equals(kktk_svc_kei_stat)		// 停止中
//			|| "910".equals(kktk_svc_kei_stat)		// 解約済
//			|| "920".equals(kktk_svc_kei_stat))		// キャンセル済
			if(JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_100.equals(kktk_svc_kei_stat)		// サービス提供中
			|| JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_210.equals(kktk_svc_kei_stat)		// 休止・中断中
			|| JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_220.equals(kktk_svc_kei_stat)		// 停止中
			|| JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_910.equals(kktk_svc_kei_stat)		// 解約済
			|| JBSbatKKConst.CD00056_KKTK_SVC_KEI_STAT_920.equals(kktk_svc_kei_stat))		// キャンセル済
			// ++++++++++ v22.00.00 変更終了 ++++++++++
			{
				return out_bean;
			}
			
			// 取得した先頭のレコードが予約の場合
			// ++++++++++ v22.00.00 変更開始 ++++++++++
//			if("1".equals(JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.RSV_APLY_CD))))
			if(JBSbatKKConst.RSV_APLY_CD_TTDK.equals(JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.RSV_APLY_CD))))
			// ++++++++++ v22.00.00 変更終了 ++++++++++
			{
				// 取得した機器提供サービス契約にサービス契約番号が設定されている場合
				if(!"".equals(JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO))))
				{
					// 出力ファイル項目設定を行う。
					this.createOutMap(out_bean, inMap, kktkMap);
				}
				else
				{
					// サービス契約番号が設定されていない場合はサービス契約回線内訳より抽出したサービス契約番号に紐づく排他制御を検索する。
					this.createOutFileKaisenUcwk(out_bean, inMap, kktkMap);
				}
			}
			else
			{
				// 取得した先頭のレコードが適用中の場合、親契約のステータスチェックを行う。
				// サービス契約番号が設定されている場合
				if(!"".equals(JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO))))
				{
					// サービス契約の検索を行う。
					String[] value = {JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO)), super.opeDate};
					this.executeKK_T_SVC_KEI_KK_SELECT_161(value);
					JBSbatCommonDBInterface svcKeiMap = db_KK_T_SVC_KEI.selectNext();
					
					// 検索結果がある場合
					if(null != svcKeiMap)
					{
						super.logPrint.printDebugLog("サービス契約の検索あり");
						// 出力ファイル項目設定を行う。
						this.createOutMap(out_bean, inMap, kktkMap);
					}
					else
					{
						// サービス提供中のレコードが無い場合は対象外とする。
						super.logPrint.printDebugLog("サービス提供中のレコードが無い場合は対象外とする");
					}
				}
				else
				{
					// サービス契約番号が設定されていない場合はサービス契約回線内訳より抽出したサービス契約番号に紐づく排他制御を検索する。
					this.createOutFileKaisenUcwk(out_bean, inMap, kktkMap);
				}
			}
		}
		
		super.logPrint.printDebugLog("execute_END");
		return out_bean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_KKTK_SVC_KEI.close();
		db_KK_T_SVKEI_EXC_CTRL.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_248)で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_248(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.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_248);
	}

	/**
	 * SQLKEY(KK_SELECT_066)で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_KKTK_SVC_KEI_KK_SELECT_066(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_066);
	}

	/**
	 * SQLKEY(KK_SELECT_161)で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_161(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_161);
	}

	/**
	 * SQLKEY(KK_SELECT_022)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約回線内訳番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_022(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_022);
	}

// IT1-2016-0000059 ADD START
	/**
	 * SQLKEY(KK_SELECT_232)で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_KKTK_SVC_KEI_KK_SELECT_232(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_232);
	}
// IT1-2016-0000059 ADD END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * サービス契約回線内訳を検索し、出力用ファイル項目を設定します。<br>
	 * @param out_bean 出力用ファイルクラス
	 * @param inMap 初期検索結果クラス
	 * @param kktkMap 機器提供サービス契約検索結果クラス
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void createOutFileKaisenUcwk(JBSbatOutputItem out_bean, JBSbatServiceInterfaceMap haisoMap, JBSbatCommonDBInterface kktkMap) throws Exception
	{
		// サービス契約回線内訳番号に紐づくサービス契約番号の排他制御を検索する。
		String[] value = {JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_KAISEN_UCWK_NO)), super.opeDate};
		this.executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_022(value);
		JBSbatCommonDBInterface svckeiKaiMap = db_KK_T_SVKEI_KAISEN_UW.selectNext();
		
		// 検索結果がある場合
		if(null != svckeiKaiMap)
		{
			// 出力ファイルクラスを生成
			JBSbatServiceInterfaceMap out_map = new JBSbatServiceInterfaceMap();
			
			// 機器提供サービス契約番号
			out_map.setString(JBSbatKKIFM197.KKTK_SVC_KEI_NO, JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO)));
			// 世代登録年月日時分秒
			out_map.setString(JBSbatKKIFM197.GENE_ADD_DTM, JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.GENE_ADD_DTM)));
			// 工事案件実施年月日
			out_map.setString(JBSbatKKIFM197.KOJIAK_JSSI_YMD, JBSbatStringUtil.Rtrim(haisoMap.getString(JBSbatKK_T_KJ_FIN_WK.KOJIAK_JSSI_YMD)));
			
			// サービス契約番号が設定されていない機器提供サービス契約のため、以下項目は空白を設定する。
			// サービス契約番号（機器提供サービス契約）
			out_map.setString(JBSbatKKIFM197.SVC_KEI_NO_KKTK_SVC_KEI, "");
			// サービス契約番号（工事完了ワーク）
			out_map.setString(JBSbatKKIFM197.SVC_KEI_NO_KJ_FIN, JBSbatStringUtil.Rtrim(haisoMap.getString(JBSbatKK_T_KJ_FIN_WK.SVC_KEI_NO)));
			// サービス契約番号（排他制御）
			out_map.setString(JBSbatKKIFM197.SVC_KEI_NO_EXC, "");
			// 最終更新年月日時分秒
			out_map.setString(JBSbatKKIFM197.LAST_UPD_DTM_BF, "");
			// 工事受付契機異動区分
			out_map.setString(JBSbatKKIFM197.KOJI_UK_OPTNTY_IDO_DIV, JBSbatStringUtil.Rtrim(haisoMap.getString(JBSbatKU_T_KOJIAK.KOJI_UK_OPTNTY_IDO_DIV)));
			
			out_map.setOutFlg(true);
			out_bean.addOutMapList(out_map);
			
			while(null != svckeiKaiMap)
			{
				// 出力ファイルクラスを生成し、サービス契約回線内訳番号に紐づくサービス契約番号、
				// 排他制御より取得した最終更新年月日時分秒のみを設定する。
				out_map = new JBSbatServiceInterfaceMap();
				out_map.setString(JBSbatKKIFM197.SVC_KEI_NO_EXC, JBSbatStringUtil.Rtrim(svckeiKaiMap.getString(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_NO)));
				out_map.setString(JBSbatKKIFM197.LAST_UPD_DTM_BF, JBSbatStringUtil.Rtrim(svckeiKaiMap.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM)));
				
				out_map.setOutFlg(true);
				out_bean.addOutMapList(out_map);
				
				svckeiKaiMap = db_KK_T_SVKEI_KAISEN_UW.selectNext();
			}
		}
	}
	
	/**
	 * 出力用ファイル項目を設定します。<br>
	 * @param out_bean 出力用ファイルクラス
	 * @param out_map 出力ファイルクラス
	 * @param haisoMap 配送対象物品検索結果クラス（初期検索）
	 * @param kktkMap 機器提供サービス契約検索結果クラス
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void createOutMap(JBSbatOutputItem out_bean, JBSbatServiceInterfaceMap haisoMap, JBSbatCommonDBInterface kktkMap) throws Exception
	{
		// 機器提供サービス契約検索結果のサービス契約番号でサービス契約排他制御のＰＫ検索を行う。
		String svc_kei_no = JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO));
		
		super.logPrint.printDebugLog("★出力用ファイル項目★サービス契約番号-->" + svc_kei_no);
		
		JBSbatCommonDBInterface where_map = new JBSbatCommonDBInterface();
		where_map.setValue(JBSbatKK_T_SVKEI_EXC_CTRL.SVC_KEI_NO, svc_kei_no);
		JBSbatCommonDBInterface svkei_exc = db_KK_T_SVKEI_EXC_CTRL.selectByPrimaryKeys(where_map);
		
		// 出力ファイルクラスを生成し、項目を設定する。
		JBSbatServiceInterfaceMap out_map = new JBSbatServiceInterfaceMap();
		
		// 機器提供サービス契約番号
		out_map.setString(JBSbatKKIFM197.KKTK_SVC_KEI_NO, JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO)));
		// 世代登録年月日時分秒
		out_map.setString(JBSbatKKIFM197.GENE_ADD_DTM, JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.GENE_ADD_DTM)));
		// 工事案件実施年月日
		out_map.setString(JBSbatKKIFM197.KOJIAK_JSSI_YMD, JBSbatStringUtil.Rtrim(haisoMap.getString(JBSbatKK_T_KJ_FIN_WK.KOJIAK_JSSI_YMD)));
		// サービス契約番号（機器提供サービス契約）
		out_map.setString(JBSbatKKIFM197.SVC_KEI_NO_KKTK_SVC_KEI, JBSbatStringUtil.Rtrim(kktkMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO)));
		// サービス契約番号（工事完了ワーク）
		out_map.setString(JBSbatKKIFM197.SVC_KEI_NO_KJ_FIN, JBSbatStringUtil.Rtrim(haisoMap.getString(JBSbatKK_T_KJ_FIN_WK.SVC_KEI_NO)));
		// サービス契約番号（排他制御）
		out_map.setString(JBSbatKKIFM197.SVC_KEI_NO_EXC, svc_kei_no);
		// 最終更新年月日時分秒
		out_map.setString(JBSbatKKIFM197.LAST_UPD_DTM_BF, JBSbatStringUtil.Rtrim(svkei_exc.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM)));
		// 工事受付契機異動区分
		out_map.setString(JBSbatKKIFM197.KOJI_UK_OPTNTY_IDO_DIV, JBSbatStringUtil.Rtrim(haisoMap.getString(JBSbatKU_T_KOJIAK.KOJI_UK_OPTNTY_IDO_DIV)));
		
		super.logPrint.printDebugLog("★出力用ファイル項目★工事受付契機異動区分-->" + out_map.getString(JBSbatKKIFM197.KOJI_UK_OPTNTY_IDO_DIV));
		
		out_map.setOutFlg(true);
		out_bean.addOutMapList(out_map);
	}
	
	/**
	 * サービス契約TBLを検索し、光ネット（マンション）光配線のレコードを取得します。(KK_SELECT_248)
	 * <br>
	 * @param svcKeiNo サービス契約番号。
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト。
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectSvcKei248(String svcKeiNo) throws Exception
	{
		super.logPrint.printDebugLog("selectSvcKei248_START");
		
		// サービス契約TBLを検索して光ネット（マンション）光配線のレコードを取得します。
		// サービス契約TBL検索条件項目を設定します。
		Object[] paramList = new Object[3];
		paramList[0] = super.opeDate;	// 予約適用開始日
		paramList[1] = svcKeiNo;		// サービス契約番号
		paramList[2] = super.opeDate;	// 予約適用開始日
		
		super.logPrint.printDebugLog("paramList[0]：" + paramList[0]);
		super.logPrint.printDebugLog("paramList[1]：" + paramList[1]);
		super.logPrint.printDebugLog("paramList[2]：" + paramList[2]);
		
		// サービス契約TBL検索処理を実行します。
		executeKK_T_SVC_KEI_KK_SELECT_248(paramList);
		
		// 検索結果を取得します。
		JBSbatCommonDBInterface outDbMap248 = db_KK_T_SVC_KEI.selectNext();
		
		super.logPrint.printDebugLog("selectSvcKei248_END");
		return outDbMap248;
	}
}
