/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKShosaAFSmsChuushutu
*	ソースファイル名	：JBSbatKKShosaAFSmsChuushutu.java
*	作成者				：富士通　
*	作成日				：2021年04月08日
*＜機能概要＞
*　照査完了通知SMSデータ抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v25.00.00	2021/04/08	FJ) 加藤		【ANK-4009-00-00】CX戦略WG方針対応 新規作成
*	v56.00.00	2021/12/13	FJ) 吉村		【ANK-4174-00-00】開通前マイページ関連業務改善（2022年1月下旬リリース）
*	v56.00.01	2022/01/18	FJ) 吉村		【IT1-2022-0000004】照査完了通知メール作成のメール宛先出力不備
*	v56.00.02	2022/02/10	FJ) 西窪		【OM-2022-0000189】照査完了通知ＳＭＳ送信にてマイナーエラー発生。
*	v60.00.00	2022/08/17	FJ) 藤本涼		【ANK-4262-00-00】量販・訪販Webでの電子交付同意聞き取り方法変更
*********************************************************************/
package eo.business.service;


import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM919;
import eo.business.util.file.JBSbatKKIFM919002;
import eo.business.util.table.JBSbatCK_T_RRKS;
import eo.business.util.table.JBSbatFU_T_WEB_MSKM_INFO;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_T_MANSION_BUKKEN;
import eo.business.util.table.JBSbatKK_T_MSKM;
import eo.business.util.table.JBSbatKK_T_MSKM_DTL;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
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;

/**
* (クラスの機能概要) <p>
* 照査完了通知SMS抽出<BR>
* <BR>
* 照査完了通知SMSデータ抽出対象を抽出し、ファイル作成を行う。<BR> 
* ・照査完了通知SMS情報ファイル<BR>
*<BR>
* @author 富士通
*/
public class JBSbatKKShosaAFSmsChuushutu extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/

	/** テーブル(連絡先)*/
	private static final String D_TBL_NAME_CK_T_RRKS = "CK_T_RRKS";

	/** SQL定義キー(KK_SELECT_009)*/
	private static final String CK_T_RRKS_KK_SELECT_009 = "KK_SELECT_009";

	/** テーブルアクセスクラス(連絡先)*/
	private JBSbatSQLAccess db_CK_T_RRKS = null;

	// ANK-4174-00-00 ADD START
	/** テーブル(Ｗｅｂ申込情報)*/
	private static final String D_TBL_NAME_FU_T_WEB_MSKM_INFO = "FU_T_WEB_MSKM_INFO";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String FU_T_WEB_MSKM_INFO_KK_SELECT_002 = "KK_SELECT_002";

	/** テーブルアクセスクラス(連絡先)*/
	private JBSbatSQLAccess db_FU_T_WEB_MSKM_INFO = null;

	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** SQL定義キー(CK_SELECT_020)*/
	private static final String CK_T_CUST_CK_SELECT_020 = "CK_SELECT_020";

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブル(申込)*/
	private static final String D_TBL_NAME_KK_T_MSKM = "KK_T_MSKM";

	/** SQL定義キー(KK_SELECT_040)*/
	private static final String KK_T_MSKM_KK_SELECT_040 = "KK_SELECT_040";

	/** テーブルアクセスクラス(申込)*/
	private JBSbatSQLAccess db_KK_T_MSKM = null;

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** SQL定義キー(AC_SELECT_010)*/
	private static final String KK_T_SVC_KEI_AC_SELECT_010 = "AC_SELECT_010";
	// ANK-4262-00-00 ADD START
	/** SQL定義キー(KK_SELECT_006)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_006 = "KK_SELECT_006";
	// ANK-4262-00-00 ADD END
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	// ANK-4174-00-00 ADD END
	// ANK-4262-00-00 ADD START
	/** SQL定義キー(KK_SELECT_027)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_027 = "KK_SELECT_027";
	
	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;
	
	/** テーブル(申込明細)*/
	private static final String D_TBL_NAME_KK_T_MSKM_DTL = "KK_T_MSKM_DTL";
	
	/** 仮受付状態フラグ 仮受付以外*/
	private static final String KUK_STAT_FLG_0 = "0";
	/** 仮受付状態フラグ 仮受付*/
	private static final String KUK_STAT_FLG_1 = "1";
	
	/** 電子交付同意有無 同意しない*/
	private static final String DNSKH_DOI_UM_NO = "0";
	/** 電子交付同意有無 仮受付*/
	private static final String DNSKH_DOI_UM_KUK = "2";
	// ANK-4262-00-00 ADD END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CK_T_RRKS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_RRKS);
		// ANK-4174-00-00 ADD START
		db_FU_T_WEB_MSKM_INFO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_FU_T_WEB_MSKM_INFO);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_MSKM = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		// ANK-4174-00-00 ADD END
		// ANK-4262-00-00 ADD START
		db_KK_T_MSKM_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		// ANK-4262-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		String sysid = inMap.getString(JBSbatCK_T_CUST.SYSID);	// SYSID
		// ANK-4174-00-00 MOD START
//		boolean rc = getCK_T_RRKS_KK_SELECT_009(sysid);
		String skbtKey = inMap.getString(JBSbatFU_T_WEB_MSKM_INFO.SKBT_KEY);// 識別キー
		if (skbtKey == null)
		{
			skbtKey = "";
		}
		String mskmNo = inMap.getString(JBSbatKK_T_MSKM.MSKM_NO);// 申込番号
		// ANK-4262-00-00 ADD START
		String kukStatFlg = KUK_STAT_FLG_0;// 仮受付状態フラグ
		// ANK-4262-00-00 ADD END

		JBSbatCommonDBInterface rcvMap = new JBSbatCommonDBInterface();				// メールアドレス取得マップ
		rcvMap = getCK_T_RRKS_KK_SELECT_009(sysid);

		JBSbatCommonDBInterface knriNoRcvMap = new JBSbatCommonDBInterface();		// 管理番号取得マップ
		knriNoRcvMap = getFU_T_WEB_MSKM_INFO_KK_SELECT_002(skbtKey);

		JBSbatCommonDBInterface telnoRcvMap = new JBSbatCommonDBInterface();		// 契約者電話番号取得マップ
		telnoRcvMap = getCK_T_CUST_CK_SELECT_020(sysid);

		JBSbatCommonDBInterface mskmSvckeiRcvMap = new JBSbatCommonDBInterface();	// 申込・サービス契約取得マップ
		mskmSvckeiRcvMap = getKK_T_MSKM_KK_SELECT_040(mskmNo);
		String SvcKeiNo = mskmSvckeiRcvMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);// サービス契約番号

		JBSbatCommonDBInterface mtBukkenCdMap = new JBSbatCommonDBInterface();		// マンション物件コード取得マップ
		mtBukkenCdMap = getKK_T_SVC_KEI_AC_SELECT_010(SvcKeiNo);

		String mlad = rcvMap.getString(JBSbatCK_T_RRKS.MLAD);											// メールアドレス
		String smsSendYmd = knriNoRcvMap.getString(JBSbatFU_T_WEB_MSKM_INFO.SMS_SEND_YMD);				// SMS送信年月日
		String onetKeyNinshoFlg = knriNoRcvMap.getString(JBSbatFU_T_WEB_MSKM_INFO.ONET_KEY_NINSHO_FLG);	// ワンタイム認証キーフラグ
		// OM-2022-0000189 ADD START
		String smsSendsTelno = knriNoRcvMap.getString(JBSbatFU_T_WEB_MSKM_INFO.SMS_SENDS_TELNO);		// SMS送信先電話番号
		String telno = telnoRcvMap.getString(JBSbatCK_T_CUST.KEISHA_TELNO);								// 契約者電話番号
		// OM-2022-0000189 ADD END
		// ANK-4262-00-00 ADD START
		ArrayList<JBSbatServiceInterfaceMap> mskmDtlNoRcvMap = new ArrayList<JBSbatServiceInterfaceMap>();		// 申込明細番号取得マップ
		this.getKK_T_SVC_KEI_KK_SELECT_006(mskmDtlNoRcvMap,sysid);
		
		// 申込明細番号毎に電子交付同意有無を取得する
		for (JBSbatServiceInterfaceMap wkMap : mskmDtlNoRcvMap)
		{
			// 申込明細番号
			String mskmDtlNo = wkMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO);
			
			JBSbatCommonDBInterface dnskhDoiUmRcvMap = new JBSbatCommonDBInterface();	// 申込明細・電子交付同意有無取得マップ
			dnskhDoiUmRcvMap = getKK_T_MSKM_DTL_KK_SELECT_027(mskmDtlNo);
			String dnskhDoiUm = dnskhDoiUmRcvMap.getString(JBSbatKK_T_MSKM_DTL.DNSKH_DOI_UM);// 電子交付同意有無
			
			// 電子交付同意有無が未設定の場合、スキップ
			if (dnskhDoiUm == null || dnskhDoiUm == "")
			{
				dnskhDoiUm = DNSKH_DOI_UM_NO;
			}
			
			// 電子交付同意有無が仮受付の場合
			if (dnskhDoiUm.equals(DNSKH_DOI_UM_KUK))
			{
				// 仮受付状態フラグを仮受付に変更
				kukStatFlg = KUK_STAT_FLG_1;
			}
			// 電子交付同意有無が同意しないの場合
			else if (dnskhDoiUm.equals(DNSKH_DOI_UM_NO))
			{
				// 仮受付状態フラグを仮受付以外に変更
				kukStatFlg = KUK_STAT_FLG_0;
				break;
			}
			
		}
		// ANK-4262-00-00 ADD END

		// 照査完了通知情報(SMS送信)ファイル出力処理を行う
		// ○SMS送信条件は以下をすべて満たすもの
		// ・コンテンツ系メールアドレスが取得できないこと
		// ・WEB申込情報.SMS送信年月日が未設定、かつWEB申込情報.ワンタイム認証キーフラグが"1"(認証済)
		// ・契約者電話番号が取得できること(※携帯電話番号のみ)
		// ・契約者電話番号とWEB申込情報.SMS送信先電話番号が一致すること
	//	if (rc)
		// OM-2022-0000189 MOD START
		//if ((mlad == null || "".equals(mlad)) && smsSendYmd == null && "1".equals(onetKeyNinshoFlg))
		if ((mlad == null || "".equals(mlad)) && smsSendYmd == null && "1".equals(onetKeyNinshoFlg) && (telno != null && !"".equals(telno))
				&& telno.equals(smsSendsTelno))
		// OM-2022-0000189 MOD END
		// ANK-4174-00-00 MOD END
		{
			// 出力共通電文を生成する。
			JBSbatOutputItem outputBean = new JBSbatOutputItem();
			
			// ファイル出力（照査完了通知情報(SMS送信)ファイル)）

			// 照査完了通知SMS情報ファイル)用入出力インターフェイスオブジェクトを生成
			JBSbatServiceInterfaceMap mapKKIFM919 = new JBSbatServiceInterfaceMap();
			
			// 項目を設定

			// SYSID
			mapKKIFM919.setString(JBSbatKKIFM919.SYSID, sysid);
			// ANK-4174-00-00 MOD START
			// 契約者電話番号 
			mapKKIFM919.setString(JBSbatKKIFM919.KEISHA_TELNO,
				//	inMap.getString(JBSbatCK_T_CUST.KEISHA_TELNO));
					telnoRcvMap.getString(JBSbatCK_T_CUST.KEISHA_TELNO));
			// 管理番号
			mapKKIFM919.setString(JBSbatKKIFM919.KANRI_NO,
				//	inMap.getString(JBSbatFU_T_WEB_MSKM_INFO.KANRI_NO));
					knriNoRcvMap.getString(JBSbatFU_T_WEB_MSKM_INFO.KANRI_NO));
			// 申込番号
			mapKKIFM919.setString(JBSbatKKIFM919.MSKM_NO,
					inMap.getString(JBSbatKK_T_MSKM.MSKM_NO));
			// ANK-4174-00-00 MOD END
			// ANK-4262-00-00 ADD START
			// 仮受付状態フラグ
			mapKKIFM919.setString(JBSbatKKIFM919.KUK_STAT_FLG,kukStatFlg);
			// ANK-4262-00-00 ADD END
			
			// 出力フラグを設定
			mapKKIFM919.setOutFlg(true);
			
			// 出力共通電文入出力インターフェイスを設定する
			outputBean.addOutMapList(mapKKIFM919);
			
			// 出力共通電文を返却
			return outputBean;
		}
		
		// ANK-4174-00-00 ADD START
		// 照査完了通知情報(メール送信)ファイル出力処理を行う
		// ○メール送信条件は以下をすべて満たすもの
		// ・コンテンツ系メールアドレスが取得できること
		// ・WEB申込情報が存在しない、またはWEB申込情報.SMS送信年月日が未設定
		else if ((mlad != null && !"".equals(mlad)) && (knriNoRcvMap.getMapSize() == 0 || smsSendYmd == null || "".equals(smsSendYmd)))
		{
			// 出力共通電文を生成する。
			JBSbatOutputItem outputBean = new JBSbatOutputItem();
			
			// ファイル出力（照査完了通知情報(SMS送信)ファイル)）

			// 照査完了通知SMS情報ファイル)用入出力インターフェイスオブジェクトを生成
			JBSbatServiceInterfaceMap mapKKIFM919002 = new JBSbatServiceInterfaceMap();
			
			// 項目を設定

			// SYSID
			mapKKIFM919002.setString(JBSbatKKIFM919002.SYSID, sysid);
			// メールアドレス
			// IT1-2022-0000004 MOD START
		//	mapKKIFM919002.setString(JBSbatKKIFM919002.MLAD, mlad);
			mapKKIFM919002.setString(JBSbatKKIFM919002.SENDS_MLAD, mlad);
			// IT1-2022-0000004 MOD END
			// 管理番号
			mapKKIFM919002.setString(JBSbatKKIFM919002.KANRI_NO,
					knriNoRcvMap.getString(JBSbatFU_T_WEB_MSKM_INFO.KANRI_NO));
			// 申込番号
			mapKKIFM919002.setString(JBSbatKKIFM919002.MSKM_NO,
					inMap.getString(JBSbatKK_T_MSKM.MSKM_NO));
			// サービス契約番号
			mapKKIFM919002.setString(JBSbatKKIFM919002.SVC_KEI_NO, 
					mskmSvckeiRcvMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
			// 申込書番号
			mapKKIFM919002.setString(JBSbatKKIFM919002.MSKMSHO_NO,
					mskmSvckeiRcvMap.getString(JBSbatKK_T_MSKM_DTL.MSKMSHO_NO));
			// 住居タイプフラグ
			String mtBukkenCd = mtBukkenCdMap.getString(JBSbatKK_T_MANSION_BUKKEN.MANSION_BUKKEN_CD);
			if(mtBukkenCd == null || "".equals(mtBukkenCd))	// マンション物件コードがnullの場合"1"(ホーム)
			{
				mapKKIFM919002.setString(JBSbatKKIFM919002.JKYO_TYPE_FLG, "1");
			}
			else if ("002".equals(mtBukkenCd))				// マンション物件コードが"002"(メゾン)の場合"2"(メゾン)
			{
				mapKKIFM919002.setString(JBSbatKKIFM919002.JKYO_TYPE_FLG, "2");
			}
			else if ("001".equals(mtBukkenCd))				// マンション物件コードが"001"(マンション)の場合"3"(マンション)
			{
				mapKKIFM919002.setString(JBSbatKKIFM919002.JKYO_TYPE_FLG, "3");
			}
			// 出力フラグを設定
			mapKKIFM919002.setOutFlg(true);
			
			// 出力共通電文入出力インターフェイスを設定する
			outputBean.addOutMapList_2(mapKKIFM919002);
			
			// 出力共通電文を返却
			return outputBean;
		}
		// ANK-4174-00-00 ADD END
		
		else
		{
			return null;
		}
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		
		// DBアクセスクラスをクローズします
		db_CK_T_RRKS.close();
		// ANK-4174-00-00 ADD START
		db_FU_T_WEB_MSKM_INFO.close();
		db_CK_T_CUST.close();
		db_KK_T_MSKM.close();
		db_KK_T_SVC_KEI.close();
		// ANK-4174-00-00 ADD END
		// ANK-4262-00-00 ADD START
		db_KK_T_MSKM_DTL.close();
		// ANK-4262-00-00 ADD END

	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * SYSIDにひもづくデータを取得します。
	 * <BR>
	 * @param sysid SYSID
	 * @param 連絡先.SYSID
	 * @throws Exception 
	 * @return rcvMap
x	 */
	// ANK-4174-00-00 MOD START
//	private boolean getCK_T_RRKS_KK_SELECT_009(String sysid) throws Exception
	private JBSbatCommonDBInterface getCK_T_RRKS_KK_SELECT_009(String sysid) throws Exception
	// ANK-4174-00-00 MOD END
	{
		JBSbatCommonDBInterface rcvMap = new JBSbatCommonDBInterface();		// 結果取得用
		
		// パラメータの設定
		Object[] setParam = {
				sysid,
				super.opeDate,
		};
		// 抽出したSYSIDにひもづく連絡先.メールアドレスを取得
		executeCK_T_RRKS_SELECT_009(setParam);
	
		// データを読む
		rcvMap = db_CK_T_RRKS.selectNext();

		// ANK-4174-00-00 MOD START
	//	// 取得できなかった場合は対象となる
	//	if (rcvMap == null)
	//	{
	//		return true;
	//	}
	//	// 取得できた場合は、対象外となる
	//	else
	//	{
	//		return false;
	//	}
		if(rcvMap == null || rcvMap.getMapSize() == 0 )
		{
			return new JBSbatCommonDBInterface();	
		}
		return rcvMap;
		// ANK-4174-00-00 MOD END
	}

	/**
	 * SQLKEY(KK_SELECT_009)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SYSID
	 *		 	バッチ運用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_RRKS_SELECT_009(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_RRKS.selectBySqlDefine(paramList, CK_T_RRKS_KK_SELECT_009);
	}

	// ANK-4174-00-00 ADD START
	/**
	 * 識別キーにひもづくデータを取得します。
	 * <BR>
	 * @param skbtKey 識別キー
	 * @param Web申込情報.識別キー
	 * @throws Exception 
	 * @return knriNoRcvMap
x	 */
	private JBSbatCommonDBInterface getFU_T_WEB_MSKM_INFO_KK_SELECT_002(String skbtKey) throws Exception
	{
		JBSbatCommonDBInterface knriNoRcvMap = null;
		
		if (skbtKey == null || "".equals(skbtKey))
		{
			return new JBSbatCommonDBInterface();
		}
		// パラメータの設定
		Object[] setParam = {
				skbtKey,
		};
		// 抽出したSYSIDにひもづく連絡先.メールアドレスを取得
		executeFU_T_WEB_MSKM_INFO_KK_SELECT_002(setParam);
	
		// データを読む
		knriNoRcvMap = db_FU_T_WEB_MSKM_INFO.selectNext();

		if(knriNoRcvMap == null || knriNoRcvMap.getMapSize() == 0 )
		{
			return new JBSbatCommonDBInterface();
		}

		return knriNoRcvMap;
	}

	/**
	 * 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 executeFU_T_WEB_MSKM_INFO_KK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_FU_T_WEB_MSKM_INFO.selectBySqlDefine(paramList, FU_T_WEB_MSKM_INFO_KK_SELECT_002);
	}

	/**
	 * SYSIDにひもづくデータを取得します。
	 * <BR>
	 * @param sysid SYSID
	 * @param お客様.SYSID
	 * @throws Exception 
	 * @return telnoRcvMap
x	 */
	private JBSbatCommonDBInterface getCK_T_CUST_CK_SELECT_020(String sysid) throws Exception
	{
		JBSbatCommonDBInterface telnoRcvMap = null;
		
		// パラメータの設定
		Object[] setParam = {
				sysid,
				super.opeDate,
		};
		// 抽出したSYSIDにひもづく連絡先.メールアドレスを取得
		executeCK_T_CUST_CK_SELECT_020(setParam);
	
		// データを読む
		telnoRcvMap = db_CK_T_CUST.selectNext();

		if(telnoRcvMap == null || telnoRcvMap.getMapSize() == 0 )
		{
			return new JBSbatCommonDBInterface();
		}

		return telnoRcvMap;
	}

	/**
	 * SQLKEY(CK_SELECT_020)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SYSID
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_CUST_CK_SELECT_020(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CK_SELECT_020);
	}

	/**
	 * 申込番号にひもづくデータを取得します。
	 * <BR>
	 * @param mskmNo 申込番号
	 * @param 申込.申込番号
	 * @throws Exception 
	 * @return telnoRcvMap
x	 */
	private JBSbatCommonDBInterface getKK_T_MSKM_KK_SELECT_040(String mskmNo) throws Exception
	{
		JBSbatCommonDBInterface mskmSvckeiRcvMap = null;
		
		// パラメータの設定
		Object[] setParam = {
				mskmNo,
				super.opeDate,
				// OM-2022-0000189 ADD START
				super.opeDate,
				// OM-2022-0000189 ADD END
		};
		// 抽出した申込番号にひもづく連絡先.メールアドレスを取得
		executeKK_T_MSKM_KK_SELECT_040(setParam);
	
		// データを読む
		mskmSvckeiRcvMap = db_KK_T_MSKM.selectNext();
		
		if(mskmSvckeiRcvMap == null || mskmSvckeiRcvMap.getMapSize() == 0 )
		{
			return new JBSbatCommonDBInterface();
		}

		return mskmSvckeiRcvMap;
	}


	/**
	 * SQLKEY(KK_SELECT_040)で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_MSKM_KK_SELECT_040(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		// OM-2022-0000189 ADD START
		paramList.setValue(param[2].toString());
		// OM-2022-0000189 ADD END

		// DBアクセスを実行します
		db_KK_T_MSKM.selectBySqlDefine(paramList, KK_T_MSKM_KK_SELECT_040);
	}

	/**
	 * サービス契約番号にひもづくデータを取得します。
	 * <BR>
	 * @param SvcKeiNo サービス契約番号
	 * @param サービス契約.サービス契約番号
	 * @throws Exception 
	 * @return telnoRcvMap
x	 */
	private JBSbatCommonDBInterface getKK_T_SVC_KEI_AC_SELECT_010(String SvcKeiNo) throws Exception
	{
		JBSbatCommonDBInterface mtBukkenCdMap = new JBSbatCommonDBInterface();
		
		// パラメータの設定
		Object[] setParam = {
				SvcKeiNo,
				super.opeDate,
		};
		// 抽出した申込番号にひもづく連絡先.メールアドレスを取得
		executeKK_T_SVC_KEI_AC_SELECT_010(setParam);
	
		// データを読む
		mtBukkenCdMap = db_KK_T_SVC_KEI.selectNext();
		
		if(mtBukkenCdMap == null || mtBukkenCdMap.getMapSize() == 0 )
		{
			return new JBSbatCommonDBInterface();
		}

		return mtBukkenCdMap;
	}


	/**
	 * SQLKEY(AC_SELECT_010)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_AC_SELECT_010(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_AC_SELECT_010);
	}
	// ANK-4174-00-00 ADD END
	
	// ANK-4262-00-00 ADD START
	/**
	 * SYSIDにひもづくデータを取得します。
	 * <BR>
	 * @param sysid SYSID
	 * @throws Exception 
	 * @return telnoRcvMap
x	 */
	private void getKK_T_SVC_KEI_KK_SELECT_006(ArrayList<JBSbatServiceInterfaceMap> mskmDtlNoRcvMap, String sysid) throws Exception
	{
		// パラメータの設定
		Object[] setParam = {
				sysid,
		};
		// SYSIDにひもづくサービス契約.申込明細番号を取得
		executeKK_T_SVC_KEI_KK_SELECT_006(setParam);
		JBSbatCommonDBInterface result = db_KK_T_SVC_KEI.selectNext();
		
		// 取得したサービス契約情報をリストへ一時保持
		ArrayList<JBSbatCommonDBInterface> list = new ArrayList<JBSbatCommonDBInterface>();
		while(result != null)
		{
			list.add(result);
			result = this.db_KK_T_SVC_KEI.selectNext();
		}
		
		for(JBSbatCommonDBInterface rcvMap : list)
		{
			// サービス契約情報マップ
			JBSbatServiceInterfaceMap wkMap = new JBSbatServiceInterfaceMap();
			
			// 申込明細番号
			wkMap.setString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO, rcvMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO));
			
			// サービス契約情報マップへ追加
			mskmDtlNoRcvMap.add(wkMap);
		}
	}
	
	/**
	 * SQLKEY(KK_SELECT_006)で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_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_006);
	}
	
	/**
	 * 申込明細番号にひもづくデータを取得します。
	 * <BR>
	 * @param mskmDtlNo 申込明細番号
	 * @throws Exception 
	 * @return telnoRcvMap
x	 */
	private JBSbatCommonDBInterface getKK_T_MSKM_DTL_KK_SELECT_027(String mskmDtlNo) throws Exception
	{
		JBSbatCommonDBInterface dnskhDoiUmMap = new JBSbatCommonDBInterface();
		
		// パラメータの設定
		Object[] setParam = {
				mskmDtlNo,
		};
		// 抽出した申込明細番号にひもづく申込明細.電子交付同意有無を取得
		executeKK_T_MSKM_DTL_KK_SELECT_027(setParam);
	
		// データを読む
		dnskhDoiUmMap = db_KK_T_MSKM_DTL.selectNext();
		
		if(dnskhDoiUmMap == null || dnskhDoiUmMap.getMapSize() == 0 )
		{
			return new JBSbatCommonDBInterface();
		}

		return dnskhDoiUmMap;
	}
	
	/**
	 * SQLKEY(KK_SELECT_027)で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_MSKM_DTL_KK_SELECT_027(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_MSKM_DTL.selectBySqlDefine(paramList, KK_T_MSKM_DTL_KK_SELECT_027);
	}
	// ANK-4262-00-00 ADD END
}
