/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTvSrvrDslInfoChsht
*	ソースファイル名	：JBSbatKKTvSrvrDslInfoChsht.java
*	作成者				：富士通　
*	作成日				：2011年11月21日
*＜機能概要＞
*　TV監視サーバ向け解約削除情報抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/11/21   FJ)藤本	新規作成
*	v2.01.00	2012/06/05   FJ)藤本	【ST2-2012-0001064】障害対応
*	v3.00.00	2012/04/24   FJ)藤本	【ANK-0027-00-00】案件対応。
*	v3.01.00	2012/06/14   FJ)藤本	【IT1-2012-0000818】障害対応。
*	v3.02.00	2012/06/29   FJ)岡田	【SGY-2012-0000037】住所変更対応。回線内訳に紐づくSQL対応
*	v3.03.00	2012/07/03   FJ)岡田	【SGY-2012-0000037】住所変更対応。地デジ・BS判定修正対応
*	v3.04.00	2012/08/18   FJ)岡田	【IT1-2012-0000950】障害対応。
*	v3.05.00	2012/09/24   FJ)藤本	【ST2-2012-0001714】運用日の前日を抽出するように修正
*	v4.00.00	2013/01/23   FJ)中作	【ST3-2013-0000137】抽出条件を連携ファイル制御より取得するよう修正
*	v4.01.00	2013/02/23   FJ)団		【ST2-2013-0000879】障害対応
*										【KT1-2013-0000182】障害対応
*										【KT1-2013-0000183】障害対応
*										【ST1-2013-0000334】障害対応
*	v4.02.00	2013/02/25   FJ)団		【ST2-2013-0001130】障害対応
*	v4.03.00	2013/03/22   FJ)柳		【IT1-2013-0000498】対応
*	v4.04.00	2013/03/27   FJ)庭山	【ST4-2013-0000318】性能改善
*	v4.05.00	2013/04/24   FJ)団		【KT1-2013-0000183】障害対応
*	v5.00.00	2013/05/01   FJ)団		【IT1-2013-0001109】品質向上
*	v5.00.01	2013/06/26   FJ)藤本	【ST4-2013-0000481】性能改善
*********************************************************************/
package eo.business.service;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFE050001;
import eo.business.util.table.JBSbatKK_T_KAISEN_USE_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_PRG;
import eo.business.util.table.JBSbatKK_T_RNKI_FILE_CTRL;
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.JBSbatKU_T_KJAK_TG_TKKIKI;
import eo.business.util.table.JBSbatZM_M_TAKNKIKI_MODEL;
import eo.business.util.table.JBSbatZM_T_TAKNKIKI_WK;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JZMAdOutputEdit;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTvKsSvrDslDelInfChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(連携ファイル制御)*/
	private static final String D_TBL_NAME_KK_T_RNKI_FILE_CTRL = "KK_T_RNKI_FILE_CTRL";

	/** テーブル(工事案件対象宅内機器)*/
	private static final String D_TBL_NAME_KU_T_KJAK_TG_TKKIKI = "KU_T_KJAK_TG_TKKIKI";

	/** テーブル(サービス契約＿工事案件)*/
	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_UCWK = "KK_T_SVC_KEI_UCWK";

	/** テーブル(サービス契約)*/
	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_ZM_T_TAKNKIKI_WK = "ZM_T_TAKNKIKI_WK";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KU_T_KJAK_TG_TKKIKI_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(KK_SELECT_015)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_015 = "KK_SELECT_015";

	/** SQL定義キー(KK_SELECT_042)*/
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_042 = "KK_SELECT_042";

	/** SQL定義キー(KK_SELECT_043)*/
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_043 = "KK_SELECT_043";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_KAISEN_USE_KEI_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_146)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_146 = "KK_SELECT_146";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String ZM_M_TAKNKIKI_MODEL_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String ZM_T_TAKNKIKI_WK_KK_SELECT_001 = "KK_SELECT_001";

	/** テーブルアクセスクラス(連携ファイル制御)*/
	private JBSbatSQLAccess db_KK_T_RNKI_FILE_CTRL = null;

	/** テーブルアクセスクラス(工事案件対象宅内機器)*/
	private JBSbatSQLAccess db_KU_T_KJAK_TG_TKKIKI = 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_UCWK = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_113 = null;

	/** テーブルアクセスクラス(回線使用契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_USE_KEI = null;

	/** テーブルアクセスクラス(宅内機器型式)*/
	private JBSbatSQLAccess db_ZM_M_TAKNKIKI_MODEL = null;

	/** テーブルアクセスクラス(宅内機器ワーク)*/
	private JBSbatSQLAccess db_ZM_T_TAKNKIKI_WK = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 「宅内機器異動コード」"02"：STB交換 */
	private static final String TAKNKIKI_IDO_CD_STBCHNG = "02";
	
	/** 「宅内機器異動コード」"03"：STB一部撤去 */
	private static final String TAKNKIKI_IDO_CD_STBTEKKYO = "03";
	
	/** 「宅内機器異動コード」"09"：異動なし */
	private static final String TAKNKIKI_IDO_CD_IDONON = "09";
	
	/** 物理バッチID（KKPRC01601）*/
	private static final String BAT_ID = "KKPRC01701";
	
	/** ファイルID（KKIFE044）*/
	private static final String FILE_ID = "KKIFE050  ";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_RNKI_FILE_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_RNKI_FILE_CTRL);
		db_KU_T_KJAK_TG_TKKIKI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KJAK_TG_TKKIKI);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
		db_KK_T_SVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVC_KEI_113 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		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_ZM_T_TAKNKIKI_WK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_TAKNKIKI_WK);
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		// 出力ファイル用クラスの生成
		JBSbatOutputItem out_item = new JBSbatOutputItem();
		
		// 連携ファイル制御より前回TV監視サーバ向け異動情報を作成した運用日取得
		// 前回処理実行年月日
		String znkiJssiDate = getZnkiJssiDate();
		
		super.logPrint.printDebugLog("前回処理実行年月日---->" + znkiJssiDate);
		
		// 解約削除情報抽出
		BufferedReader in_reader = null;
		String in_file_nm = commonItem.getFreeItem();
		
		try
		{
			// 入力ファイルクラスを生成します。
			in_reader = new BufferedReader(new InputStreamReader(new FileInputStream(in_file_nm)));
			
			// ファイルが終了するまで読込みを繰り返します
			while (in_reader.ready())
			{
				JBSbatCommonDBInterface inMap = new JBSbatCommonDBInterface();
				String[] data = in_reader.readLine().split(",");
				inMap.setValue(JBSbatKK_T_SVC_KEI.SVC_KEI_NO, JBSbatStringUtil.Rtrim(data[0].replace("\"", "")));
				inMap.setValue(JBSbatKK_T_PRG.IDO_DIV, JBSbatStringUtil.Rtrim(data[1].replace("\"", "")));
				inMap.setValue(JBSbatKK_T_SVC_KEI.SVC_CD, JBSbatStringUtil.Rtrim(data[2].replace("\"", "")));
				inMap.setValue(JBSbatKK_T_SVC_KEI.TK_HOSHIKI_KEI_NO, JBSbatStringUtil.Rtrim(data[3].replace("\"", "")));
				inMap.setValue(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO, JBSbatStringUtil.Rtrim(data[4].replace("\"", "")));
				inMap.setValue(JBSbatKK_T_SVC_KEI.PCRS_CD, JBSbatStringUtil.Rtrim(data[5].replace("\"", "")));
				inMap.setValue(JBSbatKK_T_SVC_KEI_EOH_TV.DMPS_ANKEN_NO, JBSbatStringUtil.Rtrim(data[6].replace("\"", "")));
				
				JBSbatServiceInterfaceMap out_map = new JBSbatServiceInterfaceMap();
				
			// 回復されたデータはサービス解約年月日はクリアされるため処理不要とする。v2.01.00
			// サービス解約年月日 ＜ 回復年月日 の場合は解約後に回復されたデータのため対象外とする。
	//		String svc_dsl_ymd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_DSL_YMD));
	//		String kahk_ymd = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.KAIHK_YMD));
	//		if(!"".equals(svc_dsl_ymd) && !"".equals(kahk_ymd))
	//		{
	//			if(svc_dsl_ymd.compareTo(kahk_ymd) < 0)
	//			{
	//				out_map.setOutFlg(false);
	//				super.logPrint.printDebugLog("解約後に回復されたため出力対象外　サービス契約番号："
	//												+ JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)));
	//				super.logPrint.printDebugLog("execute_END");
	//				return out_item;
	//			}
	//		}
				
				super.logPrint.printDebugLog("サービス契約.サービス契約番号：" 
						+ JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)));
				
				// 「サービス契約番号」
				out_map.setString(JBSbatKKIFE050001.SVC_KEI_NO, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)));
				// 「異動区分」
				out_map.setString(JBSbatKKIFE050001.IDO_DIV, "07000");
				// 「異動日」
				out_map.setString(JBSbatKKIFE050001.IDO_YMD, super.opeDate);
				// 「更新日時」
				out_map.setString(JBSbatKKIFE050001.IDO_DTM, JBSbatDateUtil.getSystemDateTime());
				// 「料金プラン」
				out_map.setString(JBSbatKKIFE050001.PPLAN, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.PCRS_CD)));
				
				// 「BSPT」の設定を行う。
				boolean isMansion = this.setBSPT(out_map, inMap);
				
				// 地デジ・BSを取得します。
				String resChidgBs = this.getChidgBS(inMap);
				// 「地デジ・BS」
				out_map.setString(JBSbatKKIFE050001.CHIDG_BS, resChidgBs);
				// 「案件番号」
				out_map.setString(JBSbatKKIFE050001.ANKEN_NO, this.getKojiAkNo(inMap));
				
				// サービス契約回線内訳より、「起点変電所コード」、「利用場所住所１」、「利用場所住所２」、「利用場所住所３」の設定を行う。
				this.setSvkeiKaisenUwInf(out_map, inMap);
				
				// 「局コード」
				out_map.setString(JBSbatKKIFE050001.KYOKU_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_CD)));
				
				// サービス契約内訳より、「マンションコード」、「P-ID」、「総戸数」の設定を行う。
				this.setSvcKeiUcwkInf(out_map, inMap);
				
				// 「電障コード」
				out_map.setString(JBSbatKKIFE050001.DMPS_CD, JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI_EOH_TV.DMPS_ANKEN_NO)));
				// 「引越先サービス契約番号」（空白）
				out_map.setString(JBSbatKKIFE050001.HIKKOSHI_SK_CUST_ID, "");
				
				// 「STB台数」、「STBID1」〜「STBID5」の設定を行います。
				if (!this.setStb(out_map, inMap, resChidgBs))
				{
					// ホーム／メゾンの場合
					if (!isMansion)
					{
						// エラー（１件目「宅内機器種別コード」に"E0"（VONUBS）が無い）の場合は
						//   ファイルの出力は行わずにスキップします。
						out_map.setOutFlg(false);
						super.logPrint.printDebugLog("出力対象外　サービス契約番号：" 
								+ JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)));
						super.logPrint.printDebugLog("execute_END");
						return out_item;
					}
				}
				
				// 「予備項目１」〜「予備項目２」
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_1, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_2, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_3, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_4, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_5, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_6, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_7, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_8, "");
				out_map.setString(JBSbatKKIFE050001.YOBI_KMK_9, "");
				
				out_map.setOutFlg(true);
				out_item.addOutMapList(out_map);
			}
			in_reader.close();
		}
		catch(IOException ioe)
		{
			// ファイル未存在
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0020CE, new String[]{in_file_nm});
		}
		finally
		{
			if (in_reader != null)
			{
				in_reader.close();
			}
		}
		
		super.logPrint.printDebugLog("execute_END");
		
		return out_item;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 連携ファイル制御より前回処理実行年月日の取得
	 * <BR>
	 * @return 前回処理実行年月日
	 * @throws Exception 
	 */
	private String getZnkiJssiDate() throws Exception
	{
		String result = "";
		
		JBSbatCommonDBInterface dbMap = executeKK_T_RNKI_FILE_CTRL_PKSELECT(new Object[]{BAT_ID, FILE_ID});
		
		// 取得できた場合
		if(null != dbMap)
		{
			// 前回処理実行年月日時分秒
			String znkiJssiTimestamp = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_RNKI_FILE_CTRL.ZNKI_TRAN_RUN_DTM));
			try{
				// バッチ運用日と同日でない場合、先頭8桁を「前回運用日」とします。
				if (!opeDate.equals(znkiJssiTimestamp.substring(0, 8)))
				{
					result = znkiJssiTimestamp.substring(0, 8);
				}
				// バッチ運用日と同日の場合、バッチ運用日-1日を「前回運用日」とします。
				else
				{
					result = JBSbatDateUtil.adjustDate(opeDate, -1);
				}
			} catch (Exception e) {
				throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0090TE, new String[] {"ZNKI_TRAN_RUN_DTM:" + znkiJssiTimestamp});
			}
		}
		// 取得できない場合
		else
		{
			// 運用日-1設定
			result = JBSbatDateUtil.adjustDate(opeDate, -1);
		}
		
		return result;
	}
	
	/**
	 * 地デジ・BSを取得します。
	 * <BR>
	 * @param inMap　初期検索結果
	 * @return String　地デジ・BSコード
	 * @throws Exception
	 */
	private String getChidgBS(JBSbatCommonDBInterface inMap) throws Exception
	{
		// サービス契約の「料金コースコード」が"A37"：地デジ・ＢＳコースの場合
		if("A37".equals(JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.PCRS_CD))))
		{
			super.logPrint.printDebugLog("「料金コースコード」：地デジ・ＢＳコース「1」");
			return "1";
		}
		super.logPrint.printDebugLog("「料金コースコード」：地デジ・ＢＳコース以外「0」");
		return "0";
	}
	
	/**
	 * サービス契約_工事案件を検索し、工事案件番号を取得します。
	 * <BR>
	 * @param inMap　初期検索結果
	 * @return String　工事案件番号
	 * @throws Exception
	 */
	private String getKojiAkNo(JBSbatCommonDBInterface inMap) throws Exception
	{
		// サービス契約_工事案件の検索を行う
		String[] param = new String [2];
		param[0] = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		param[1] = opeDate;
		this.executeKU_T_SVKEI_KOJIAK_KK_SELECT_002(param);
		
		// 検索結果を取得。
		JBSbatCommonDBInterface svkei_Kojiak_Map = db_KU_T_SVKEI_KOJIAK.selectNext();
		if(null != svkei_Kojiak_Map)
		{
			return JBSbatStringUtil.Rtrim(svkei_Kojiak_Map.getString(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_NO));
		}
		return "";
	}
	
	/**
	 * サービス契約内訳を検索し、STB台数を取得します。
	 * <BR>
	 * @param inMap　初期検索結果
	 * @return String　工事案件番号
	 * @throws Exception
	 */
	private String getStbCnt(JBSbatCommonDBInterface inMap) throws Exception
	{
		// サービス契約内訳の検索を行う
		String[] param = new String [2];
		param[0] = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		param[1] = opeDate;
		this.executeKK_T_SVC_KEI_UCWK_KK_SELECT_043(param);
		
		// 検索結果を取得。
		JBSbatCommonDBInterface svc_Kei_Ucwk_Map = db_KK_T_SVC_KEI_UCWK.selectNext();
		if(null != svc_Kei_Ucwk_Map)
		{
			return JBSbatStringUtil.Rtrim(svc_Kei_Ucwk_Map.getString("STB_CNT"));
		}
		return "";
	}
	
	/**
	 * 工事案件対象宅内機器情報の設定
	 * <BR>
	 * @param out_map　出力ファイル用クラス
	 * @param inMap　初期検索結果
	 * @return boolean　「宅内機器種別コード」が"E0"（VONUBS）が無い場合はfalseを返却します。
	 * @throws Exception
	 */
	private boolean setKjakTgTkkikiInf(JBSbatServiceInterfaceMap out_map, JBSbatCommonDBInterface inMap) throws Exception
	{
		super.logPrint.printDebugLog("setKjakTgTkkikiInf_START");
		
		// 工事案件対象宅内機器の検索を行う
		String[] param = new String [2];
		param[0] = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
		param[1] = opeDate;
		this.executeKU_T_KJAK_TG_TKKIKI_KK_SELECT_003(param);
		
		// 「BSPT」の設定
		// 検索結果より先頭の１件目を取得。
		JBSbatCommonDBInterface kjakMap = db_KU_T_KJAK_TG_TKKIKI.selectNext();
		if(null != kjakMap)
		{
			super.logPrint.printDebugLog("１件目「宅内機器種別コード」:" 
					+ JBSbatStringUtil.Rtrim(kjakMap.getString(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_SBT_CD)));
			
			// １件目に"E0"（VONUBS）が無い場合はfalseを返却する。
			if(!"E0".equals(JBSbatStringUtil.Rtrim(kjakMap.getString(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_SBT_CD))))
			{
				super.logPrint.printDebugLog("「VONUBS」のレコード無し　申込明細番号：" + param[0]);
				super.logPrint.printDebugLog("setKjakTgTkkikiInf_「E0」（VONUBS）無し_END");
				return false;
			}
			
			// 「STBID1」〜「STBID5」の設定
			int stb_cnt = 1;
			
			// 取得結果の２件目よりループする。
			for(kjakMap = db_KU_T_KJAK_TG_TKKIKI.selectNext(); null != kjakMap ; kjakMap = db_KU_T_KJAK_TG_TKKIKI.selectNext())
			{
				String[] param001 = new String [2];
				param001[0] = JBSbatStringUtil.Rtrim(kjakMap.getString(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_TAKNKIKI_MODEL_CD));
				param001[1] = JBSbatStringUtil.Rtrim(kjakMap.getString(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_KIKI_SEIZO_NO));
				this.executeZM_T_TAKNKIKI_WK_KK_SELECT_001(param001);
				JBSbatCommonDBInterface stbIdMap = db_ZM_T_TAKNKIKI_WK.selectNext();
				// 「宅内機器種別コード」が"A0"（STB）の場合
				if("A0".equals(JBSbatStringUtil.Rtrim(kjakMap.getString(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_SBT_CD))))
				{
					// 「宅内機器異動コード」が"02"：STB交換、"03"：STB一部撤去、"09"：異動なしの場合に「予定STB-ID」を設定。
					String taknkiki_ido_cd = JBSbatStringUtil.Rtrim(kjakMap.getString(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_IDO_CD));
					String stb_id = "";
					if(null != stbIdMap){
						stb_id = JBSbatStringUtil.Rtrim(stbIdMap.getString(JBSbatZM_T_TAKNKIKI_WK.STB_ID));
					}
					super.logPrint.printDebugLog("「宅内機器異動コード」：" + taknkiki_ido_cd);
					super.logPrint.printDebugLog("「STB-ID」        ：" + stb_id);
					
					if(1 == stb_cnt)
					{
						if(TAKNKIKI_IDO_CD_STBCHNG.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_STBTEKKYO.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_IDONON.equals(taknkiki_ido_cd))
						{
							out_map.setString(JBSbatKKIFE050001.STB_ID_1, stb_id);
							super.logPrint.printDebugLog("↑「STBID1」へ「STB-ID」セット");
						}
						stb_cnt++;
						continue;
					}
					if(2 == stb_cnt)
					{
						if(TAKNKIKI_IDO_CD_STBCHNG.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_STBTEKKYO.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_IDONON.equals(taknkiki_ido_cd))
						{
							out_map.setString(JBSbatKKIFE050001.STB_ID_2, stb_id);
							super.logPrint.printDebugLog("↑「STBID2」へ「STB-ID」セット");
						}
						stb_cnt++;
						continue;
					}
					if(3 == stb_cnt)
					{
						if(TAKNKIKI_IDO_CD_STBCHNG.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_STBTEKKYO.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_IDONON.equals(taknkiki_ido_cd))
						{
							out_map.setString(JBSbatKKIFE050001.STB_ID_3, stb_id);
							super.logPrint.printDebugLog("↑「STBID3」へ「STB-ID」セット");
						}
						stb_cnt++;
						continue;
					}
					if(4 == stb_cnt)
					{
						if(TAKNKIKI_IDO_CD_STBCHNG.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_STBTEKKYO.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_IDONON.equals(taknkiki_ido_cd))
						{
							out_map.setString(JBSbatKKIFE050001.STB_ID_4, stb_id);
							super.logPrint.printDebugLog("↑「STBID4」へ「STB-ID」セット");
						}
						stb_cnt++;
						continue;
					}
					if(5 == stb_cnt)
					{
						if(TAKNKIKI_IDO_CD_STBCHNG.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_STBTEKKYO.equals(taknkiki_ido_cd)
								|| TAKNKIKI_IDO_CD_IDONON.equals(taknkiki_ido_cd))
						{
							out_map.setString(JBSbatKKIFE050001.STB_ID_5, stb_id);
							super.logPrint.printDebugLog("↑「STBID5」へ「STB-ID」セット");
						}
						return true;
					}
				}
			}
		}
		super.logPrint.printDebugLog("setKjakTgTkkikiInf_END");
		return true;
	}
	
	/**
	 * BSPTの設定
	 * <BR>
	 * @param out_map　出力ファイル用クラス
	 * @param inMap　初期検索結果
	 * @return boolean true：マンション物件、false：ホーム／メゾン
	 * @throws Exception
	 */
	private boolean setBSPT(JBSbatServiceInterfaceMap out_map, JBSbatCommonDBInterface inMap) throws Exception
	{
		boolean isMansion = false;
		out_map.setString(JBSbatKKIFE050001.BSPT, "");
		
		// 検索用パラメータの初期化
		String[] param = {JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)), opeDate};
		
		super.logPrint.printDebugLog("提供方式契約番号：" + JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.TK_HOSHIKI_KEI_NO)));
		
		// サービス契約．提供方式契約番号が設定されている場合
		if(!"".equals(JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.TK_HOSHIKI_KEI_NO))))
		{
			// マンション物件コードの取得を行います。
			this.executeKK_T_SVC_KEI_KK_SELECT_146(param);
			JBSbatCommonDBInterface svcKeiMap = db_KK_T_SVC_KEI.selectNext();
			
			// 検索結果がある場合
			if(null != svcKeiMap)
			{
				super.logPrint.printDebugLog("マンション物件コード：" 
						+ JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_MANSION_BUKKEN.MANSION_BUKKEN_CD)));
				
				// 取得したマンション物件コードが「001」の場合
				if("001".equals(JBSbatStringUtil.Rtrim(svcKeiMap.getString(JBSbatKK_T_MANSION_BUKKEN.MANSION_BUKKEN_CD))))
				{
					isMansion = true;
				}
			}
		}
		
		// マンションの場合
		if(isMansion)
		{
			super.logPrint.printDebugLog("★マンション★");
			
			// 回線使用契約の検索を行います。
			this.executeKK_T_KAISEN_USE_KEI_KK_SELECT_001(param);
			JBSbatCommonDBInterface kaisenUseKeiMap = db_KK_T_KAISEN_USE_KEI.selectNext();
			
			// 検索結果がある場合
			if(null != kaisenUseKeiMap)
			{
				// 取得したBSパススルー可否をBSPTに設定します。
				out_map.setString(JBSbatKKIFE050001.BSPT, 
						JBSbatStringUtil.Rtrim(kaisenUseKeiMap.getString(JBSbatKK_T_KAISEN_USE_KEI.BSPT_KH)));
			}
		}
		else
		{
			super.logPrint.printDebugLog("★ホーム／メゾン★");
			
			// ホーム／メゾンの場合、宅内機器型式の検索を行います。			
			String[] param2 = new String[3];
			param2[0] = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
			param2[1] = opeDate;
			param2[2] = opeDate;
			
			this.executeZM_M_TAKNKIKI_MODEL_KK_SELECT_001(param2);
			JBSbatCommonDBInterface taknKikiMap = db_ZM_M_TAKNKIKI_MODEL.selectNext();
			
			// 検索結果がある場合
			if(null != taknKikiMap)
			{
				// 取得したVONUBSパススルー可否をBSPTに設定します。
				out_map.setString(JBSbatKKIFE050001.BSPT, 
						JBSbatStringUtil.Rtrim(taknKikiMap.getString(JBSbatZM_M_TAKNKIKI_MODEL.VONU_BSPT_KH)));
			}
		}
		return isMansion;
	}
	
	/**
	 * サービス契約回線内訳情報の設定
	 * <BR>
	 * @param out_map　出力ファイル用クラス
	 * @param inMap　初期検索結果
	 * @throws Exception
	 */
	private void setSvkeiKaisenUwInf(JBSbatServiceInterfaceMap out_map, JBSbatCommonDBInterface inMap) throws Exception
	{
		// サービス契約回線内訳の検索を行う
		String[] param = {JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)), opeDate};
		this.executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_015(param);
		
		// 検索結果を取得、「起点変電所コード」、「利用場所住所１」、「利用場所住所２」、「利用場所住所３」の設定
		JBSbatCommonDBInterface svkeiKaisenUwMap = db_KK_T_SVKEI_KAISEN_UW.selectNext();
		if(null == svkeiKaisenUwMap)
		{
			out_map.setString(JBSbatKKIFE050001.KITEN_HDSHO_CD, "");
			out_map.setString(JBSbatKKIFE050001.USE_PLACE_AD_1, "");
			out_map.setString(JBSbatKKIFE050001.USE_PLACE_AD_2, "");
			out_map.setString(JBSbatKKIFE050001.USE_PLACE_AD_3, "");
		}
		else
		{
			// 「起点変電所コード」
			out_map.setString(JBSbatKKIFE050001.KITEN_HDSHO_CD, JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KITEN_HDSHO_CD)));
			
			String stateNm = "";		// 都道府県名
			String cityNm = "";			// 市区町村名
			String oaztsuNm = "";		// 大字通称名
			String azchoNm = "";		// 字丁目名
			String bnchigo = "";		// 番地号
			String adrttm = "";			// 住所補記・建物名
			String adrrm = "";			// 補記・部屋番号
			
			stateNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_STATE_NM));	  // 回線場所都道府県名
			cityNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_CITY_NM));	  // 回線場所市区町村名
			oaztsuNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_OAZTSU_NM)); // 回線場所大字通称名
			azchoNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AZCHO_NM));	  // 回線場所字丁目名
			bnchigo = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(
						JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_BNCHIGO));	  												  // 回線場所番地号
			adrttm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRTTM));	  // 回線場所住所補記・建物名
			
			// 住所出力編集部品（パターン５）呼出
			String[] adNm = JZMAdOutputEdit.getPtn05(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
			
			// 「回線場所都道府県名」＋「回線場所市区町村名」＋「回線場所大字通称名」
			String use_place_ad_1 = JBSbatStringUtil.Rtrim(adNm[0]);
			
			// 61桁より大きい場合は61桁以降をカットします。
			if(61 < use_place_ad_1.length())
			{
				use_place_ad_1 = use_place_ad_1.substring(0, 61);
			}
			super.logPrint.printDebugLog("「利用場所住所１」：" + use_place_ad_1);
			
			// 「利用場所住所１」
			out_map.setString(JBSbatKKIFE050001.USE_PLACE_AD_1, use_place_ad_1);
			
			// 「利用場所住所２」（「回線場所住所補記・建物名」）
			out_map.setString(JBSbatKKIFE050001.USE_PLACE_AD_2, JBSbatStringUtil.Rtrim(adNm[1]));
			
			// 「利用場所住所３」（空白）
			out_map.setString(JBSbatKKIFE050001.USE_PLACE_AD_3, JBSbatStringUtil.Rtrim(adNm[2]));
		}
	}
	
	/**
	 * サービス契約内訳情報の設定
	 * <BR>
	 * @param out_map　出力ファイル用クラス
	 * @param inMap　初期検索結果
	 * @throws Exception
	 */
	private void setSvcKeiUcwkInf(JBSbatServiceInterfaceMap out_map, JBSbatCommonDBInterface inMap) throws Exception
	{
		// サービス契約内訳の検索を行う
		String[] param = new String [2];
		param[0] = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		param[1] = opeDate;
		this.executeKK_T_SVC_KEI_UCWK_KK_SELECT_042(param);
		
		// 検索結果を取得、「マンションコード」、「P-ID」、「総戸数」の設定
		JBSbatCommonDBInterface svcKeiUcwkMap = db_KK_T_SVC_KEI_UCWK.selectNext();
		if(null == svcKeiUcwkMap)
		{
			out_map.setString(JBSbatKKIFE050001.MANSION_CD, "");
			out_map.setString(JBSbatKKIFE050001.PID, "");
			out_map.setString(JBSbatKKIFE050001.TTL_KOSU, "");
		}
		else
		{
			// 回線使用契約より「CAT-ID」
			out_map.setString(JBSbatKKIFE050001.MANSION_CD, JBSbatStringUtil.Rtrim(svcKeiUcwkMap.getString(JBSbatKK_T_KAISEN_USE_KEI.CATID)));
			// オーナ契約より「P-ID」
			String pid = JBSbatStringUtil.Rtrim(svcKeiUcwkMap.getString(JBSbatKK_T_OWNR_KEI.PID));
			out_map.setString(JBSbatKKIFE050001.PID, pid);
			
			// マンション物件より「戸数」
			String kosu = JBSbatStringUtil.Rtrim(svcKeiUcwkMap.getString(JBSbatKK_T_MANSION_BUKKEN.KOSU));
			
			// 「P-ID」＝空白以外、「戸数」が0(ゼロ)以外の場合
			if(!"".equals(pid) && !"0".equals(kosu))
			{
				// ５桁より大きい桁数の場合は「99999」とする。
				if(5 < kosu.length())
				{
					kosu = "99999";
				}
				
				// マンション物件の「戸数」
				out_map.setString(JBSbatKKIFE050001.TTL_KOSU, kosu);
			}
			else
			{
				out_map.setString(JBSbatKKIFE050001.TTL_KOSU, "");
			}
		}
	}
	
	/**
	 * 「STB台数」、「STBID1」〜「STBID5」を設定します。
	 * <BR>
	 * @param out_map　出力ファイル用クラス。
	 * @param inMap　DB検索結果。
	 * @param resChidgBs　地デジ・BS取得結果。
	 * @return boolean　「宅内機器種別コード」が"E0"（VONUBS）が無い場合はfalseを返却します。
	 * @throws Exception
	 */
	private boolean setStb(JBSbatServiceInterfaceMap out_map, JBSbatCommonDBInterface inMap, String resChidgBs) throws Exception
	{
		// No.16「STB台数」（空白）
		out_map.setString(JBSbatKKIFE050001.STB_CNT, "0");
		// No.17「STBID1」（空白）
		out_map.setString(JBSbatKKIFE050001.STB_ID_1, "");
		// No.18「STBID2」（空白）
		out_map.setString(JBSbatKKIFE050001.STB_ID_2, "");
		// No.19「STBID3」（空白）
		out_map.setString(JBSbatKKIFE050001.STB_ID_3, "");
		// No.20「STBID4」（空白）
		out_map.setString(JBSbatKKIFE050001.STB_ID_4, "");
		// No.21「STBID5」（空白）
		out_map.setString(JBSbatKKIFE050001.STB_ID_5, "");
		
		// 地デジ・BS取得結果が「0（STB無しメニュー契約以外）」の場合、
		//   「STB台数」、「STBID1」〜「STBID5」の設定を行います。
		if ("0".equals(resChidgBs))
		{
			// No.16「STB台数」（「サービス契約内訳」のサービス契約番号件数）
			out_map.setString(JBSbatKKIFE050001.STB_CNT, this.getStbCnt(inMap));
			
			// 工事案件対象宅内機器よりNo.17〜21「STBID1」〜「STBID5」の設定を行います。
			if (!this.setKjakTgTkkikiInf(out_map, inMap))
			{
				// メソッドからの戻り値がfalse（工事案件対象宅内機器検索結果の１件目が"E0"（VONUBS）で無い）場合、falseを返却します。
				return false;
			}
		}
		else
		{
			super.logPrint.printDebugLog(
					"地デジ・BS取得結果が「1（STB無しメニュー契約）」→「STB台数」、「STBID1」〜「STBID5」の設定なし");
		}
		
		return true;
	}
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_RNKI_FILE_CTRL.close();
		db_KU_T_KJAK_TG_TKKIKI.close();
		db_KU_T_SVKEI_KOJIAK.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
		db_KK_T_SVC_KEI_UCWK.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVC_KEI_113.close();
		db_KK_T_KAISEN_USE_KEI.close();
		db_ZM_M_TAKNKIKI_MODEL.close();
		db_ZM_T_TAKNKIKI_WK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(KK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	申込明細番号
	 *		 	申込明細_工事案件適用開始年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_KJAK_TG_TKKIKI_KK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KU_T_KJAK_TG_TKKIKI.selectBySqlDefine(paramList, KU_T_KJAK_TG_TKKIKI_KK_SELECT_003);
	}

	/**
	 * 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
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_002);
	}

	/**
	 * 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
	{
		// バイント変数のリストを生成します
		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);
	}

	/**
	 * 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
	{
		// バイント変数のリストを生成します
		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);
	}

	/**
	 * SQLKEY(KK_SELECT_043)で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_043(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_043);
	}

	/**
	 * 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
	{
		// バイント変数のリストを生成します
		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);
	}

	/**
	 * 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
	{
		// バイント変数のリストを生成します
		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_146);
	}

	/**
	 * 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
	{
		// バイント変数のリストを生成します
		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);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	BUTSURI_BAT_ID
	 *		 	FILE_ID
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_RNKI_FILE_CTRL_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("BUTSURI_BAT_ID", whereParam[0]);
		whereMap.setValue("FILE_ID", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_RNKI_FILE_CTRL.selectByPrimaryKeys(whereMap);
	}	
	
	/**
	 * 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_T_TAKNKIKI_WK_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_ZM_T_TAKNKIKI_WK.selectBySqlDefine(paramList, ZM_T_TAKNKIKI_WK_KK_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
