/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：プロジェクト共通
*   モジュール名    ：JKKBatKKTvKsSvInfoCommon
*   ソースファイル名：JKKBatKKTvKsSvInfoCommon.java
*   作成者          ：富士通
*   日付            ：2015年11月22日
*＜機能概要＞
*   ＴＶ監視サーバ向け異動情報作成バッチ共通部品クラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v20.00.00    2015/11/22  FJ)野々下   新規作成
*	v20.00.01    2015/12/17  FJ)栗秋	 障害対応【IT2-2015-0000045】工事案件番号が設定されない、【IT2-2015-0000046】必須項目「BSPT」がNULLで連携され取込エラーになる。
*	v20.00.02    2015/12/20  FJ)栗秋	 障害対応【IT2-2015-0000045】工事案件番号が設定されない、【IT2-2015-0000047】A75：再送信（地デジ・BSコース）の場合に0になっている、STB台数のカウントの仕方が違う、住所変更キャンセル時に変更前の値が出ていない
*	v25.00.00    2016/07/06  FJ)野々下	【OM-2016-0001550】TV監視サーバ向け異動情報項目編集不備
*
**********************************************************************/
package eo.business.common;

import eo.business.util.file.JBSbatKKIFE050001;
import eo.business.util.table.JBSbatKK_T_KAISEN_USE_KEI;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_MANSION_BUKKEN;
import eo.business.util.table.JBSbatKK_T_OWNR_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_EOH_TV;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatZM_T_TAKNKIKI_WK;
import eo.business.util.table.JBSbatKU_T_SVKEI_KOJIAK;
import eo.business.util.table.JBSbatZM_M_TAKNKIKI_MODEL;
import eo.common.util.JZMAdOutputEdit;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
 * ＴＶ監視サーバ向け異動情報作成バッチ共通部品クラスです。<p>
 * <br>
 * @author 富士通
 */
public class JKKBatKKTvKsSvInfoCommon
{
	// 料金コースコード
	private static final String PCRS_CD_A37 = "A37";	// 地デジ・ＢＳコース
	//IT2-2015-0000047 2015/12/20 ADD START
	private static final String PCRS_CD_A75 = "A75";	// 再送信（地デジ・ＢＳコース）
	//IT2-2015-0000047 2015/12/20 ADD END

	// 地デジ・BS
	private static final String CHIDG_BS_0 = "0";	// STB無しメニュー契約以外
	private static final String CHIDG_BS_1 = "1";	// STB無しメニュー契約

	// テーブル
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";					// サービス契約
	private static final String D_TBL_NAME_KK_T_KAISEN_USE_KEI = "KK_T_KAISEN_USE_KEI";	// 回線使用契約
	private static final String D_TBL_NAME_ZM_M_TAKNKIKI_MODEL = "ZM_M_TAKNKIKI_MODEL";	// 宅内機器型式
	private static final String D_TBL_NAME_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";		// サービス契約＿工事案件
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";	// サービス契約回線内訳
	private static final String D_TBL_NAME_KK_T_SVC_KEI_EOH_TV = "KK_T_SVC_KEI_EOH_TV";	// サービス契約<eo光テレビ>
	private static final String D_TBL_NAME_ZM_T_TAKNKIKI_WK = "ZM_T_TAKNKIKI_WK";			// 宅内機器ワーク
	private static final String D_TBL_NAME_KK_T_SVC_KEI_UCWK = "KK_T_SVC_KEI_UCWK";		// サービス契約内訳

	// SQL定義キー
	private static final String KK_T_SVC_KEI_KK_SELECT_111 = "KK_SELECT_111";
	private static final String KK_T_SVC_KEI_KK_SELECT_146 = "KK_SELECT_146";
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_002 = "KK_SELECT_002";
	private static final String KK_T_KAISEN_USE_KEI_KK_SELECT_001 = "KK_SELECT_001";
	//IT2-2015-0000047 2015/12/20 MOD START
	//private static final String ZM_M_TAKNKIKI_MODEL_KK_SELECT_001 = "KK_SELECT_001";
	private static final String ZM_M_TAKNKIKI_MODEL_KK_SELECT_004 = "KK_SELECT_004";
	//IT2-2015-0000047 2015/12/20 MOD END
	//IT2-2015-0000047 2015/12/20 MOD START
	//private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_015 = "KK_SELECT_015";
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_053 = "KK_SELECT_053";
	//IT2-2015-0000047 2015/12/20 MOD END

	private static final String ZM_T_TAKNKIKI_WK_KK_SELECT_002 = "KK_SELECT_002";
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_124 = "KK_SELECT_124";
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_042 = "KK_SELECT_042";

	// バッチ共通パラメータ
	private JBSbatCommonItem commonItem = null;

	// 運用日
	private String sOpeDate = null;

	// テーブルアクセスクラス
	private JBSbatSQLAccess db_KK_T_SVC_KEI_111 = null;		// サービス契約
	private JBSbatSQLAccess db_KK_T_SVC_KEI_146 = null;		// サービス契約
	private JBSbatSQLAccess db_KK_T_KAISEN_USE_KEI = null;		// 回線使用契約
	private JBSbatSQLAccess db_ZM_M_TAKNKIKI_MODEL = null;		// 宅内機器型式
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;		// サービス契約＿工事案件
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;	// サービス契約回線内訳
	private JBSbatSQLAccess db_KK_T_SVC_KEI_EOH_TV = null;		// サービス契約<eo光テレビ>
	private JBSbatSQLAccess db_ZM_T_TAKNKIKI_WK = null;		// 宅内機器ワーク
	private JBSbatSQLAccess db_KK_T_SVC_KEI_UCWK = null;		// サービス契約内訳

	/**
	 * コンストラクタ
	 * 
	 * @param	item	バッチ共通パラメータ
	 * @throws Exception
	 */
	public JKKBatKKTvKsSvInfoCommon(
			JBSbatCommonItem	item
	) throws Exception
	{
		// 共通パラメータ設定
		this.commonItem = item;

		// 運用日取得
		sOpeDate = commonItem.getOpeDate();

		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI_111 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVC_KEI_146 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_KK_T_KAISEN_USE_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_USE_KEI);
		db_ZM_M_TAKNKIKI_MODEL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_TAKNKIKI_MODEL);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
		db_KK_T_SVC_KEI_EOH_TV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_EOH_TV);
		db_ZM_T_TAKNKIKI_WK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_TAKNKIKI_WK);
		db_KK_T_SVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
	}

	/**
	 * DBアクセスクラスクローズ
	 * 
	 * @throws Exception
	 */
	public void close() throws Exception
	{
		// DBアクセスクラスをクローズします
		if (db_KK_T_SVC_KEI_111 != null) {
			db_KK_T_SVC_KEI_111.close();
		}
		if (db_KK_T_SVC_KEI_146 != null) {
			db_KK_T_SVC_KEI_146.close();
		}
		if (db_KU_T_SVKEI_KOJIAK != null) {
			db_KU_T_SVKEI_KOJIAK.close();
		}
		if (db_KK_T_KAISEN_USE_KEI != null) {
			db_KK_T_KAISEN_USE_KEI.close();
		}
		if (db_ZM_M_TAKNKIKI_MODEL != null) {
			db_ZM_M_TAKNKIKI_MODEL.close();
		}
		if (db_KK_T_SVKEI_KAISEN_UW != null) {
			db_KK_T_SVKEI_KAISEN_UW.close();
		}
		if (db_KK_T_SVC_KEI_EOH_TV != null) {
			db_KK_T_SVC_KEI_EOH_TV.close();
		}
		if (db_ZM_T_TAKNKIKI_WK != null) {
			db_ZM_T_TAKNKIKI_WK.close();
		}
		if (db_KK_T_SVC_KEI_UCWK != null) {
			db_KK_T_SVC_KEI_UCWK.close();
		}
	}

	/**
	 * ＴＶ監視サーバ向け異動情報ファイル基本レコード作成処理です。
	 * ＴＶ監視サーバ向け異動情報ファイルの基本レコードを作成します。
	 * 
	 * @param sSvcKeiNo		サービス契約番号
	 * @return outPutMap	出力レコード情報
	 * @throws Exception	例外
	 */
	public JBSbatServiceInterfaceMap createKKIFE050BaseData(
			String	sSvcKeiNo
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]createKKIFE050BaseData START");

		JBSbatServiceInterfaceMap outPutMap = new JBSbatServiceInterfaceMap();
		JBSbatCommonDBInterface svcKei111Map = null;
		JBSbatCommonDBInterface svkeiKojiak002Map = null;
		//IT2-2015-0000047 2015/12/20 MOD START
		//JBSbatCommonDBInterface svkeiKaisenUw015Map = null;
		JBSbatCommonDBInterface svkeiKaisenUw053Map = null;
		//IT2-2015-0000047 2015/12/20 MOD START
		JBSbatCommonDBInterface svcKeiEohTvPKMap = null;
		JBSbatCommonDBInterface svckeiUcwk042Map = null;
		boolean isMansion = false;
		String sBSPT = "";
		String sChidgBs = "";

		// *****************************************************************
		// データ取得
		// *****************************************************************
		// サービス契約
		svcKei111Map = getKK_T_SVC_KEI(sSvcKeiNo);
		if (svcKei111Map == null ) {
			commonItem.getLogPrint().printDebugLog("サービス契約番号がサービス契約に存在しません。：" + sSvcKeiNo);
			commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]createKKIFE050BaseData END");
			return null;
		}
		// サービス契約_工事案件取得
		svkeiKojiak002Map = getKU_T_SVKEI_KOJIAK(sSvcKeiNo);
		// サービス契約回線内訳取得
		//IT2-2015-0000047 2015/12/20 MOD START
		//svkeiKaisenUw015Map = getKK_T_SVKEI_KAISEN_UW(sSvcKeiNo);
		svkeiKaisenUw053Map = getKK_T_SVKEI_KAISEN_UW(sSvcKeiNo);
		//IT2-2015-0000047 2015/12/20 MOD END
		// サービス契約<eo光テレビ>取得
		svcKeiEohTvPKMap = getKK_T_SVC_KEI_EOH_TV(sSvcKeiNo, svcKei111Map);
		// サービス契約内訳取得
		svckeiUcwk042Map = getKK_T_SVC_KEI_UCWK(sSvcKeiNo);
		// マンション判定:マンション物件取得
		isMansion = getMansion(sSvcKeiNo, svcKei111Map);

		// *****************************************************************
		// ファイル項目編集
		// *****************************************************************
		// サービス契約番号
		outPutMap.setString(JBSbatKKIFE050001.SVC_KEI_NO, JBSbatStringUtil.Rtrim(sSvcKeiNo));

		// 異動区分:空白(呼出元で個別に設定する)
		outPutMap.setString(JBSbatKKIFE050001.IDO_DIV, "");

		// 異動日:空白(呼出元で個別に設定する)
		outPutMap.setString(JBSbatKKIFE050001.IDO_YMD, "");

		// 更新日時
		outPutMap.setString(JBSbatKKIFE050001.IDO_DTM, JBSbatDateUtil.getSystemDateTime());

		// 料金プラン:サービス契約.料金コース(※料金プランだが設定するのは料金コース)
		outPutMap.setString(JBSbatKKIFE050001.PPLAN, JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.PCRS_CD)));

		// BSPT
		sBSPT = getBSPT(sSvcKeiNo, isMansion);
		outPutMap.setString(JBSbatKKIFE050001.BSPT, sBSPT);

		// 地デジ・BS
		//IT2-2015-0000047 2015/12/20 MOD START
		//if (!(JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.PCRS_CD)).equals(PCRS_CD_A37))) {
		//	outPutMap.setString(JBSbatKKIFE050001.CHIDG_BS, CHIDG_BS_0);
		//	sChidgBs = CHIDG_BS_0;
		//}
		//else {
		//	outPutMap.setString(JBSbatKKIFE050001.CHIDG_BS, CHIDG_BS_1);
		//	sChidgBs = CHIDG_BS_1;
		//}
		if ((JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.PCRS_CD)).equals(PCRS_CD_A37)) 
				||(JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.PCRS_CD)).equals(PCRS_CD_A75))) {
			outPutMap.setString(JBSbatKKIFE050001.CHIDG_BS, CHIDG_BS_1);
			sChidgBs = CHIDG_BS_1;
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.CHIDG_BS, CHIDG_BS_0);
			sChidgBs = CHIDG_BS_0;
		}
		//IT2-2015-0000047 2015/12/20 MOD END

		// 案件番号
		if (svkeiKojiak002Map != null) {
			outPutMap.setString(JBSbatKKIFE050001.ANKEN_NO, JBSbatStringUtil.Rtrim(svkeiKojiak002Map.getString(JBSbatKU_T_SVKEI_KOJIAK.KOJIAK_NO)));
			JBSbatStringUtil.Rtrim(svkeiKojiak002Map.getString(JBSbatKU_T_SVKEI_KOJIAK.KOJIAK_NO));
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.ANKEN_NO, "");
		}

		// 起点変電所コード
		//IT2-2015-0000047 2015/12/20 MOD START
		//if(null != svkeiKaisenUw015Map) {
		//	outPutMap.setString(JBSbatKKIFE050001.KITEN_HDSHO_CD, JBSbatStringUtil.Rtrim(svkeiKaisenUw015Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KITEN_HDSHO_CD)));
		//}
		//else {
		//	outPutMap.setString(JBSbatKKIFE050001.KITEN_HDSHO_CD, "");
		//}
		if(null != svkeiKaisenUw053Map) {
			outPutMap.setString(JBSbatKKIFE050001.KITEN_HDSHO_CD, JBSbatStringUtil.Rtrim(svkeiKaisenUw053Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KITEN_HDSHO_CD)));
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.KITEN_HDSHO_CD, "");
		}
		//IT2-2015-0000047 2015/12/20 MOD START

		// サービスコード:サービス契約.サービスコード
		outPutMap.setString(JBSbatKKIFE050001.KYOKU_CD, JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.SVC_CD)));

		// マンションコード:回線使用契約.CAT-ID
		if(null != svckeiUcwk042Map) {
			outPutMap.setString(JBSbatKKIFE050001.MANSION_CD, JBSbatStringUtil.Rtrim(svckeiUcwk042Map.getString(JBSbatKK_T_KAISEN_USE_KEI.CATID)));
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.MANSION_CD, "");
		}

		// P-ID:オーナー契約.P-ID
		if(null != svckeiUcwk042Map) {
			outPutMap.setString(JBSbatKKIFE050001.PID, JBSbatStringUtil.Rtrim(svckeiUcwk042Map.getString(JBSbatKK_T_OWNR_KEI.PID)));
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.PID, "");
		}

		// 総戸数:マンション物件.戸数
		if(null != svckeiUcwk042Map) {
			// P-IDが空白以外で、かつ、戸数が0以外の場合に設定
			if (!"".equals(JBSbatStringUtil.Rtrim(svckeiUcwk042Map.getString(JBSbatKK_T_OWNR_KEI.PID)))
			&&	!"0".equals(JBSbatStringUtil.Rtrim(svckeiUcwk042Map.getString(JBSbatKK_T_MANSION_BUKKEN.KOSU))))
			{
				// 5桁より大きい場合は「99999」を設定
				if (JBSbatStringUtil.Rtrim(svckeiUcwk042Map.getString(JBSbatKK_T_MANSION_BUKKEN.KOSU)).length() > 5) {
					outPutMap.setString(JBSbatKKIFE050001.TTL_KOSU, "99999");
				}
				// 5桁より小さい場合はマンション物件.戸数を設定
				else {
					outPutMap.setString(JBSbatKKIFE050001.TTL_KOSU, JBSbatStringUtil.Rtrim(svckeiUcwk042Map.getString(JBSbatKK_T_MANSION_BUKKEN.KOSU)));
				}
			}
			else {
				outPutMap.setString(JBSbatKKIFE050001.TTL_KOSU, "");
			}
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.TTL_KOSU, "");
		}

		// 電障コード
		if (svcKeiEohTvPKMap != null) {
			outPutMap.setString(JBSbatKKIFE050001.DMPS_CD, JBSbatStringUtil.Rtrim(svcKeiEohTvPKMap.getString(JBSbatKK_T_SVC_KEI_EOH_TV.DMPS_ANKEN_NO)));
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.DMPS_CD, "");
		}

		// 引越先サービス契約番号：空白(呼出元で個別に設定する)
		outPutMap.setString(JBSbatKKIFE050001.HIKKOSHI_SK_CUST_ID, "");

		// STB台数・STBID1〜STBID5
		this.setStb(outPutMap, sSvcKeiNo, svcKei111Map, sChidgBs);

		// 利用場所住所１〜２
		//IT2-2015-0000047 2015/12/20 MOD START
		//if (null != svkeiKaisenUw015Map) {
		if (null != svkeiKaisenUw053Map) {
		//IT2-2015-0000047 2015/12/20 MOD END
			// 住所出力編集部品（パターン５）呼出
			String[] adNm = JZMAdOutputEdit.getPtn05(
				//IT2-2015-0000047 2015/12/20 MOD START
				//	JBSbatStringUtil.Rtrim(svkeiKaisenUw015Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_STATE_NM))		// 回線場所都道府県名
				//,	JBSbatStringUtil.Rtrim(svkeiKaisenUw015Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_CITY_NM))		// 回線場所市区町村名
				//,	JBSbatStringUtil.Rtrim(svkeiKaisenUw015Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_OAZTSU_NM))	// 回線場所大字通称名
				//,	JBSbatStringUtil.Rtrim(svkeiKaisenUw015Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AZCHO_NM))		// 回線場所字丁目名
				//,	JBSbatStringUtil.Rtrim(svkeiKaisenUw015Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_BNCHIGO))		// 回線場所番地号
				//,	JBSbatStringUtil.Rtrim(svkeiKaisenUw015Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRTTM))		// 回線場所住所補記・建物名
					JBSbatStringUtil.Rtrim(svkeiKaisenUw053Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_STATE_NM))		// 回線場所都道府県名
				,	JBSbatStringUtil.Rtrim(svkeiKaisenUw053Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_CITY_NM))		// 回線場所市区町村名
				,	JBSbatStringUtil.Rtrim(svkeiKaisenUw053Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_OAZTSU_NM))	// 回線場所大字通称名
				,	JBSbatStringUtil.Rtrim(svkeiKaisenUw053Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AZCHO_NM))		// 回線場所字丁目名
				,	JBSbatStringUtil.Rtrim(svkeiKaisenUw053Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_BNCHIGO))		// 回線場所番地号
				,	JBSbatStringUtil.Rtrim(svkeiKaisenUw053Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRTTM))		// 回線場所住所補記・建物名
					//IT2-2015-0000047 2015/12/20 MOD END
				,	""																											// 補記・部屋番号は空白
			);

			// 利用場所住所１:サービス契約回線内訳.回線場所都道府県名+回線場所市区町村名+回線場所大字通称名
			if (JBSbatStringUtil.Rtrim(adNm[0]).length() > 61) {
				outPutMap.setString(JBSbatKKIFE050001.USE_PLACE_AD_1, JBSbatStringUtil.Rtrim(adNm[0]).substring(0, 61));
			}
			else {
				outPutMap.setString(JBSbatKKIFE050001.USE_PLACE_AD_1, JBSbatStringUtil.Rtrim(adNm[0]));
			}

			// 利用場所住所２:サービス契約回線内訳.回線場所住所補記・建物名
			outPutMap.setString(JBSbatKKIFE050001.USE_PLACE_AD_2, JBSbatStringUtil.Rtrim(adNm[1]));
		}
		else {
			outPutMap.setString(JBSbatKKIFE050001.USE_PLACE_AD_1, "");
			outPutMap.setString(JBSbatKKIFE050001.USE_PLACE_AD_2, "");
		}

		// 利用場所住所３：空白
		outPutMap.setString(JBSbatKKIFE050001.USE_PLACE_AD_3, "");

		// サービス契約ステータス：サービス契約.サービス契約ステータス
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_1, JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT)));

		// 予備項目２〜予備項目９
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_2, "");
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_3, "");
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_4, "");
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_5, "");
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_6, "");
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_7, "");
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_8, "");
		outPutMap.setString(JBSbatKKIFE050001.YOBI_KMK_9, "");

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]createKKIFE050BaseData END");

		return outPutMap;
	}

	/**
	 * サービス契約を取得します。
	 * <BR>
	 * @param	sSvcKeiNo				サービス契約番号
	 * @return	JBSbatCommonDBInterface	サービス契約情報
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getKK_T_SVC_KEI(
			String	sSvcKeiNo
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI START");

		JBSbatCommonDBInterface svcKei111Map = null;
		String[] param = {sSvcKeiNo, sOpeDate};

		this.executeKK_T_SVC_KEI_KK_SELECT_111(param);

		svcKei111Map = db_KK_T_SVC_KEI_111.selectNext();

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI END");

		return svcKei111Map;
	}

	/**
	 * SQLKEY(KK_SELECT_111)で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_111(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_KK_SELECT_111 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_111.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_111);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_KK_SELECT_111 END");
	}

	/**
	 * マンションの場合trueを返します。
	 * <BR>
	 * @param	sSvcKeiNo		サービス契約番号
	 * @param	svcKei111Map	サービス契約情報
	 * @return	isMansion		マンション判定
	 * @throws Exception
	 */
	private boolean getMansion(
			String					sSvcKeiNo
		,	JBSbatCommonDBInterface	svcKei111Map
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getMansion START");

		boolean isMansion = false;

		// マンション物件取得用パラメータ設定
		String[] param = {sSvcKeiNo, sOpeDate};

		// サービス契約．提供方式契約番号が設定されている場合
		if (!"".equals(JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.TK_HOSHIKI_KEI_NO)))) {
			// マンション物件取得
			this.executeKK_T_SVC_KEI_KK_SELECT_146(param);
			JBSbatCommonDBInterface svcKei146Map = db_KK_T_SVC_KEI_146.selectNext();
			if (null != svcKei146Map) {
				if ("001".equals(JBSbatStringUtil.Rtrim(svcKei146Map.getString(JBSbatKK_T_MANSION_BUKKEN.MANSION_BUKKEN_CD)))) {
					// 取得したマンション物件コードが「001」の場合はマンションと判断
					isMansion = true;
				}
			}
		}

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getMansion END");

		return isMansion;
	}

	/**
	 * SQLKEY(KK_SELECT_146)で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_146(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_KK_SELECT_146 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_146.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_146);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_KK_SELECT_146 END");
	}

	/**
	 * BSPTを取得します。
	 * <BR>
	 * @param	sSvcKeiNo		サービス契約番号
	 * @param	svcKei111Map	サービス契約情報
	 * @return	sBSPT			BSPT
	 * @throws Exception
	 */
	private String getBSPT(
			String		sSvcKeiNo
		,	boolean	isMansion
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getBSPT START");

		String sBSPT = "";

		// 回線使用契約取得用パラメータ設定
		String[] param1 = {sSvcKeiNo, sOpeDate};

		// マンションの場合は回線使用契約.BSパススルー可否を取得
		if (isMansion) {
			// 回線使用契約取得
			this.executeKK_T_KAISEN_USE_KEI_KK_SELECT_001(param1);
			JBSbatCommonDBInterface kaisenUseKei001Map = db_KK_T_KAISEN_USE_KEI.selectNext();
			if (null != kaisenUseKei001Map) {
				// 取得したBSパススルー可否をBSPTに設定します。
				sBSPT = JBSbatStringUtil.Rtrim(kaisenUseKei001Map.getString(JBSbatKK_T_KAISEN_USE_KEI.BSPT_KH));
			}
		}
		// マンション以外(ホーム/メゾン)の場合は宅内機器型式.VONUBSパススルー可否を取得
		else {
			String[] param2 = {sSvcKeiNo, sOpeDate, sOpeDate};
			// 宅内機器型式取得
			//IT2-2015-0000046 2015/12/17 MOD START
			//this.executeZM_M_TAKNKIKI_MODEL_KK_SELECT_001(param2);
			this.executeZM_M_TAKNKIKI_MODEL_KK_SELECT_004(param2);
			//IT2-2015-0000046 2015/12/17 MOD END
			JBSbatCommonDBInterface taknkikiModel001Map = db_ZM_M_TAKNKIKI_MODEL.selectNext();
			// 検索結果がある場合
			if (null != taknkikiModel001Map) {
// OM-2016-0001550 MOD START
//				// 取得したVONUBSパススルー可否をBSPTに設定します。
//				sBSPT = JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatZM_M_TAKNKIKI_MODEL.VONU_BSPT_KH));
				// 宅内機器型式情報の先頭データが解約済 or キャンセル済の場合、2件目以降にそれ以外のデータがないかチェック
				if(	JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT)).equals("910")
				||	JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT)).equals("920")
				)
				{
					// 宅内機器型式情報の先頭データのサービス契約回線内訳番号とVONUBSパススルー可否を退避
					String sSvcKeiKaisenUcwkNo = "";
					String sWkBSPT = "";
					boolean bBSPTFlg = false;
					sSvcKeiKaisenUcwkNo = JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO));
					sWkBSPT = JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatZM_M_TAKNKIKI_MODEL.VONU_BSPT_KH));

					// 再度、先頭レコードから宅内機器型式情報をチェック
					for (; null != taknkikiModel001Map; taknkikiModel001Map = db_ZM_M_TAKNKIKI_MODEL.selectNext()) {
						// 住所変更中の場合、サービス契約回線内訳が2件とれるが先頭データを有効な回線とする
						if(sSvcKeiKaisenUcwkNo.equals(JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO))))
						{
							if(	!JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT)).equals("910")
							&&	!JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT)).equals("920")
							)
							{
								// 解約済 or キャンセル済以外のデータ存在する場合は、当該データのVONUBSパススルー可否を採用する
								sBSPT = JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatZM_M_TAKNKIKI_MODEL.VONU_BSPT_KH));
								bBSPTFlg = true;
								break;
							}
						}
						else
						{
							break;
						}
					}
					if(!bBSPTFlg){
						// 2件目以降に解約済 or キャンセル済以外のデータがない場合は先頭データのVONUBSパススルー可否を採用
						sBSPT = sWkBSPT;
					}
				}
				else
				{
					// 宅内機器型式情報の先頭データが解約済 or キャンセル済以外の場合は、先頭データのVONUBSパススルー可否を採用
					sBSPT = JBSbatStringUtil.Rtrim(taknkikiModel001Map.getString(JBSbatZM_M_TAKNKIKI_MODEL.VONU_BSPT_KH));
				}
// OM-2016-0001550 MOD END
			}
		}

		//IT2-2015-0000046 2015/12/17 ADD START
		if (!sBSPT.equals("1")){
			sBSPT = "0";
		}
		//IT2-2015-0000046 2015/12/17 ADD END

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getBSPT END");

		return sBSPT;
	}

	/**
	 * SQLKEY(KK_SELECT_001)で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_KAISEN_USE_KEI_KK_SELECT_001(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_KAISEN_USE_KEI_KK_SELECT_001 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KAISEN_USE_KEI.selectBySqlDefine(paramList, KK_T_KAISEN_USE_KEI_KK_SELECT_001);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_KAISEN_USE_KEI_KK_SELECT_001 END");
	}

	//IT2-2015-0000047 2015/12/20 ADD START
	//	/**
	//	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	//	 * <p>
	//	 * <b>処理フロー</b><br>
	//	 * <pre>
	//	 * 1.引数でバイント変数を設定します。<br>
	//	 *
	//	 * 2.DBアクセスを実行します。<br>
	//	 * 
	//	 * 3.メソッドの呼び出し方です。<br>
	//	 *		引数:
	//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	//	 *		 	サービス契約番号
	//	 *		 	予約適用年月日
	//	 *		 	予約適用年月日
	//	 * </pre>
	//	 * <p>
	//	 * @param param バイント変数の値配列。
	//	 * @throws Exception 業務サービス内で発生した例外全般。
	//	 */
	//	private void executeZM_M_TAKNKIKI_MODEL_KK_SELECT_001(Object[] param) throws Exception
	//	{
	//		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeZM_M_TAKNKIKI_MODEL_KK_SELECT_001 START");
	//
	//		// バイント変数のリストを生成します
	//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
	//		paramList.setValue(param[0].toString());
	//		paramList.setValue(param[1].toString());
	//		paramList.setValue(param[2].toString());
	//
	//		// DBアクセスを実行します
	//		db_ZM_M_TAKNKIKI_MODEL.selectBySqlDefine(paramList, ZM_M_TAKNKIKI_MODEL_KK_SELECT_001);
	//
	//		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeZM_M_TAKNKIKI_MODEL_KK_SELECT_001 END");
	//	}
	//IT2-2015-0000047 2015/12/20 DEL END
	//IT2-2015-0000047 2015/12/20 ADD START
	/**
	 * SQLKEY(KK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_TAKNKIKI_MODEL_KK_SELECT_004(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeZM_M_TAKNKIKI_MODEL_KK_SELECT_004 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_M_TAKNKIKI_MODEL.selectBySqlDefine(paramList, ZM_M_TAKNKIKI_MODEL_KK_SELECT_004);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeZM_M_TAKNKIKI_MODEL_KK_SELECT_004 END");
	}
	//IT2-2015-0000047 2015/12/20 ADD END
	/**
	 * サービス契約_工事案件を取得します。
	 * <BR>
	 * @param	sSvcKeiNo				サービス契約番号
	 * @return	JBSbatCommonDBInterface	サービス契約_工事案件情報
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getKU_T_SVKEI_KOJIAK(
			String	sSvcKeiNo
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKU_T_SVKEI_KOJIAK START");

		JBSbatCommonDBInterface svkeiKojiak002Map = null;
		String[] param = {sSvcKeiNo, sOpeDate, sOpeDate};

		this.executeKU_T_SVKEI_KOJIAK_KK_SELECT_002(param);

		svkeiKojiak002Map = db_KU_T_SVKEI_KOJIAK.selectNext();

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKU_T_SVKEI_KOJIAK END");

		return svkeiKojiak002Map;
	}

	/**
	 * SQLKEY(KK_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	SVKEI_KOJIAK_TSTAYMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_SVKEI_KOJIAK_KK_SELECT_002(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKU_T_SVKEI_KOJIAK_KK_SELECT_002 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		//IT2-2015-0000045 2015/12/17 DEL START
		//paramList.setValue(param[2].toString());
		//IT2-2015-0000045 2015/12/17 DEL END

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_002);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKU_T_SVKEI_KOJIAK_KK_SELECT_002 END");
	}

	/**
	 * サービス契約回線内訳を取得します。
	 * <BR>
	 * @param	sSvcKeiNo				サービス契約番号
	 * @return	JBSbatCommonDBInterface	サービス契約回線内訳情報
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getKK_T_SVKEI_KAISEN_UW(
			String	sSvcKeiNo
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI START");

		//IT2-2015-0000047 2015/12/20 MOD START
		//JBSbatCommonDBInterface svkeiKaisenUw015Map = null;
		//String[] param = {sSvcKeiNo, sOpeDate};
		//
		//this.executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_015(param);
		//
		//svkeiKaisenUw015Map = db_KK_T_SVKEI_KAISEN_UW.selectNext();
		//
		//commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI END");
		//
		//return svkeiKaisenUw015Map;
		JBSbatCommonDBInterface svkeiKaisenUw053Map = null;
		String[] param = {sSvcKeiNo, sOpeDate};

		this.executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_053(param);

		svkeiKaisenUw053Map = db_KK_T_SVKEI_KAISEN_UW.selectNext();

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI END");

		return svkeiKaisenUw053Map;
		//IT2-2015-0000047 2015/12/20 MOD END
	}

	//IT2-2015-0000047 2015/12/20 DEL END
	//	/**
	//	 * SQLKEY(KK_SELECT_015)でDBアクセスを行います。<br>
	//	 * <p>
	//	 * <b>処理フロー</b><br>
	//	 * <pre>
	//	 * 1.引数でバイント変数を設定します。<br>
	//	 *
	//	 * 2.DBアクセスを実行します。<br>
	//	 * 
	//	 * 3.メソッドの呼び出し方です。<br>
	//	 *		引数:
	//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	//	 *		 	SVC_KEI_NO
	//	 *		 	回線内訳使用開始年月日
	//	 * </pre>
	//	 * <p>
	//	 * @param param バイント変数の値配列。
	//	 * @throws Exception 業務サービス内で発生した例外全般。
	//	 */
	//	private void executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_015(Object[] param) throws Exception
	//	{
	//		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_015 START");
	//
	//		// バイント変数のリストを生成します
	//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
	//		paramList.setValue(param[0].toString());
	//		paramList.setValue(param[1].toString());
	//
	//		// DBアクセスを実行します
	//		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_015);
	//
	//		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_015 END");
	//	}
	//IT2-2015-0000047 2015/12/20 DEL END
	//IT2-2015-0000047 2015/12/20 ADD START
	/**
	 * SQLKEY(KK_SELECT_053)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SVC_KEI_NO
	 *		 	回線内訳使用開始年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_053(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_053 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_053);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_053 END");
	}
	//IT2-2015-0000047 2015/12/20 ADD END

	/**
	 * サービス契約<eo光テレビ>を取得します。
	 * <BR>
	 * @param	sSvcKeiNo				サービス契約番号
	 * @param	svcKei111Map			サービス契約情報
	 * @return	JBSbatCommonDBInterface	サービス契約<eo光テレビ>情報
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getKK_T_SVC_KEI_EOH_TV(
			String					sSvcKeiNo
		,	JBSbatCommonDBInterface	svcKei111Map
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI_EOH_TV START");

		JBSbatCommonDBInterface svcKeiEohTvPKMap = null;
		String[] whereParam = {sSvcKeiNo, JBSbatStringUtil.Rtrim(svcKei111Map.getString(JBSbatKK_T_SVC_KEI.GENE_ADD_DTM))};

		svcKeiEohTvPKMap = this.executeKK_T_SVC_KEI_EOH_TV_PKSELECT(whereParam);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI_EOH_TV END");

		return svcKeiEohTvPKMap;
	}

	/**
	 * 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_EOH_TV_PKSELECT(Object[] whereParam) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_EOH_TV_PKSELECT START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_EOH_TV_PKSELECT END");

		// DBアクセスを実行します
		return db_KK_T_SVC_KEI_EOH_TV.selectByPrimaryKeys(whereMap);
	}

	/**
	 * 「STB台数」、「STBID1」〜「STBID5」を設定します。
	 * <BR>
	 * @param out_map　出力ファイル用クラス。
	 * @param svcKei111Map	KK_SELECT_111_検索結果
	 * @param resChidgBs	地デジ・BS取得結果。
	 * @return なし
	 * @throws Exception
	 */
	private void setStb(
			JBSbatServiceInterfaceMap	outPutMap
		,	String						sSvcKeiNo
		,	JBSbatCommonDBInterface		svcKei111Map
		,	String						sChidgBs
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]setStb START");

		// STB台数:空白
		outPutMap.setString(JBSbatKKIFE050001.STB_CNT, "0");
		// STBID1〜5:空白
		outPutMap.setString(JBSbatKKIFE050001.STB_ID_1, "");
		outPutMap.setString(JBSbatKKIFE050001.STB_ID_2, "");
		outPutMap.setString(JBSbatKKIFE050001.STB_ID_3, "");
		outPutMap.setString(JBSbatKKIFE050001.STB_ID_4, "");
		outPutMap.setString(JBSbatKKIFE050001.STB_ID_5, "");

		// 地デジ・BSが「0（STB無しメニュー契約以外）」の場合、STB台数/STBID1〜5を設定
		if ("0".equals(sChidgBs)) {
			// STB台数:サービス契約内訳のサービス契約番号件数
			outPutMap.setString(JBSbatKKIFE050001.STB_CNT, this.getStbCnt(sSvcKeiNo));

			// STBID1〜STBID5:宅内機器ワークより設定
			String[] param = {sOpeDate, sSvcKeiNo, sOpeDate};
			this.setTaknkikiWkInf(outPutMap, param);
		}

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]setStb END");

		return;
	}

	/**
	 * サービス契約内訳を検索し、STB台数を取得します。
	 * <BR>
	 * @param svcKei111Map　KK_SELECT_111_検索結果
	 * @return String　工事案件番号
	 * @throws Exception
	 */
	private String getStbCnt(
			String sSvcKeiNo
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getStbCnt START");
		//IT2-2015-0000047 2015/12/20 MOD START
		//String[] param = {sSvcKeiNo, sOpeDate};
		String[] param = {sSvcKeiNo, sOpeDate, sOpeDate};
		//IT2-2015-0000047 2015/12/20 MOD END

		this.executeKK_T_SVC_KEI_UCWK_KK_SELECT_124(param);

		JBSbatCommonDBInterface svc_Kei_Ucwk_Map = db_KK_T_SVC_KEI_UCWK.selectNext();
		if (null != svc_Kei_Ucwk_Map) {
			commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getStbCnt END");
			return JBSbatStringUtil.Rtrim(svc_Kei_Ucwk_Map.getString("STB_CNT"));
		}

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getStbCnt END");

		return "";
	}

	/**
	 * SQLKEY(KK_SELECT_124)で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_UCWK_KK_SELECT_124(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_UCWK_KK_SELECT_124 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		//IT2-2015-0000047 2015/12/20 ADD START
		paramList.setValue(param[2].toString());
		//IT2-2015-0000047 2015/12/20 ADD END

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_SVC_KEI_UCWK_KK_SELECT_124);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_UCWK_KK_SELECT_124 END");
	}

	/**
	 * 宅内機器ワーク情報の設定
	 * <BR>
	 * @param out_map		出力ファイル用クラス
	 * @param svcKei111Map	KK_SELECT_111_検索結果
	 * @return なし
	 * @throws Exception
	 */
	private void setTaknkikiWkInf(
			JBSbatServiceInterfaceMap	outPutMap
		,	Object[]					param
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]setTaknkikiWkInf START");


		this.executeZM_T_TAKNKIKI_WK_KK_SELECT_002(param);

		JBSbatCommonDBInterface taknkikiWkMap = db_ZM_T_TAKNKIKI_WK.selectNext();
		if (taknkikiWkMap != null) {
			// STBID1〜STBID5設定
			int stb_cnt = 1;
			for (; null != taknkikiWkMap; taknkikiWkMap = db_ZM_T_TAKNKIKI_WK.selectNext()) {
				if (1 == stb_cnt) {
					outPutMap.setString(JBSbatKKIFE050001.STB_ID_1, JBSbatStringUtil.Rtrim(taknkikiWkMap.getString("STB_ID")));
					stb_cnt++;
					continue;
				}
				if (2 == stb_cnt) {
					outPutMap.setString(JBSbatKKIFE050001.STB_ID_2, JBSbatStringUtil.Rtrim(taknkikiWkMap.getString("STB_ID")));
					stb_cnt++;
					continue;
				}
				if (3 == stb_cnt) {
					outPutMap.setString(JBSbatKKIFE050001.STB_ID_3, JBSbatStringUtil.Rtrim(taknkikiWkMap.getString("STB_ID")));
					stb_cnt++;
					continue;
				}
				if (4 == stb_cnt) {
					outPutMap.setString(JBSbatKKIFE050001.STB_ID_4, JBSbatStringUtil.Rtrim(taknkikiWkMap.getString("STB_ID")));
					stb_cnt++;
					continue;
				}
				if (5 == stb_cnt) {
					outPutMap.setString(JBSbatKKIFE050001.STB_ID_5, JBSbatStringUtil.Rtrim(taknkikiWkMap.getString("STB_ID")));
					commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]setTaknkikiWkInf END");
					return;
				}
			}
		}

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]setTaknkikiWkInf END");

		return;
	}

	/**
	 * 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 void executeZM_T_TAKNKIKI_WK_KK_SELECT_002(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeZM_T_TAKNKIKI_WK_KK_SELECT_002 START");

		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_T_TAKNKIKI_WK.selectBySqlDefine(paramList, ZM_T_TAKNKIKI_WK_KK_SELECT_002);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeZM_T_TAKNKIKI_WK_KK_SELECT_002 END");
	}

	/**
	 * サービス契約内訳を取得します。
	 * <BR>
	 * @param	sSvcKeiNo				サービス契約番号
	 * @return	JBSbatCommonDBInterface	サービス契約内訳情報
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getKK_T_SVC_KEI_UCWK(
			String	sSvcKeiNo
	) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI_UCWK START");

		JBSbatCommonDBInterface svckeiUcwk042Map = null;
		String[] param = {sSvcKeiNo, sOpeDate};

		this.executeKK_T_SVC_KEI_UCWK_KK_SELECT_042(param);

		svckeiUcwk042Map = db_KK_T_SVC_KEI_UCWK.selectNext();

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]getKK_T_SVC_KEI_UCWK END");

		return svckeiUcwk042Map;
	}

	/**
	 * SQLKEY(KK_SELECT_042)で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_UCWK_KK_SELECT_042(Object[] param) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_UCWK_KK_SELECT_042 START");

		// バイント変数のリストを生成します
		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_042);

		commonItem.getLogPrint().printDebugLog("[JKKBatKKTvKsSvInfoCommon]executeKK_T_SVC_KEI_UCWK_KK_SELECT_042 END");
	}
}
