/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKnuoreDataMarge
*	ソースファイル名	：JBSbatKKKnuoreDataMarge.java
*	作成者				：FJ)原田
*	作成日				：2016年05月11日
*＜機能概要＞
*　加入御礼書マージファイル（全回線）を元に加入御礼書マージファイル（回線別）を作成する。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v25.00.00	2016/05/11  FJ)原田		【ANK-2772-04-00,ANK-2772-07-00】新規作成
*	v25.01.00	2016/05/19  FJ)中原		【ANK-2772-09-00】テレビ単独でのＫＣＮ分の契約内容通知書の発行抑止について
*	v27.00.00	2016/09/12  FJ)原田		【ANK-2985-00-00】消費者保護ルール追加対応 STEP3
*	v37.00.00	2018/04/04  FJ)中原		【ANK-3366-00-00】eo光設備卸対応
*	v37.01.00	2018/05/22  FJ)中原		【ANK-3366-00-00】eo光設備卸対応
*   v56.00.00   2021/12/09  FJ)西窪     【ANK-4174-00-00】開通前マイページ関連業務改善（2022年1月下旬リリース）
*
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM704;
import eo.business.util.file.JBSbatKKIFM690;
import eo.common.util.JKKCommonUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.util.JBSbatAplConst;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;
import java.util.HashMap;

/**
* 加入御礼書管理データを元に回線単位で集約した加入御礼書マージファイルを読み込む。 <p>
*<BR>
* @author FJ)原田
*/
public class JBSbatKKKnuoreDataMarge extends JBSbatBusinessService
{
	/** 出力ファイル定義 */
	private static final String PARAM_OTD = "OTD";
	
	/** 出力ファイル項目定義(契約内容通知書ファイル) */
	private static final String KNUORE_DEF = "KKIFM690.def";
	
	/** 既存 */
	private static final String KIZON = "3";
	
	/** 電話追加 */
	private static final String ADD_TEL = "4";
	
	// ANK-2772-09-00 ADD START
	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** SQL定義キー(KK_SELECT_329)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_329 = "KK_SELECT_329";

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	// ANK-2772-09-00 ADD END
	
	// ANK-2985-00-00 ADD START
	/** SQL定義キー(KK_SELECT_332)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_332 = "KK_SELECT_332";
	
	/** DB項目名(サービスコード) */
	private static final String SVC_CD = "SVC_CD";
	
	/** DB項目名(サービス契約番号) */
	private static final String SVC_KEI_NO = "SVC_KEI_NO";
	
	/** DB項目名(異動区分) */
	private static final String IDO_DIV = "IDO_DIV";
	
	/** DB項目名(申込書明細番号) */
	private static final String MSKMSHO_DTL_NO = "MSKMSHO_DTL_NO";
	// ANK-2985-00-00 ADD END
	// ANK-3366-00-00 ADD START
	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** SQL定義キー(KU_SELECT_001)*/
	private static final String CK_T_CUST_KU_SELECT_001 = "KU_SELECT_001";

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** DB項目名(ORSJGS_CD) */
	private static final String ORSJGS_CD = "ORSJGS_CD";
	// ANK-3366-00-00 ADD END
	

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		// ANK-2772-09-00 ADD START
		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		// ANK-2772-09-00 ADD END
		// ANK-3366-00-00 ADD START
		// DBアクセスクラスを生成します
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		// ANK-3366-00-00 ADD END
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 加入御礼書マージファイル（回線別）
		JBSbatOutputFileUtil knuoreMargeFile = commonItem.getOutPutFile();
		
		// 定義ファイルオブジェクトの生成
		String knuoreDefNm = JBSbatAplConst.getAplConstValue(PARAM_OTD) + KNUORE_DEF;
		JBSbatDefFileUtil knuoreDef = new JBSbatDefFileUtil(knuoreDefNm, knuoreMargeFile);
		
		// 新規追加識別フラグ（ネット）
		String newAddflgNet = inMap.getString(JBSbatKKIFM704.NEW_ADD_SKBT_FLG_NET);
		// 新規追加識別フラグ（電話）
		String newAddflgTel = inMap.getString(JBSbatKKIFM704.NEW_ADD_SKBT_FLG_TEL);
		// 新規追加識別フラグ（テレビ）
		String newAddflgTv = inMap.getString(JBSbatKKIFM704.NEW_ADD_SKBT_FLG_TV);
		
		// 印刷対象外処理
		// 新規追加識別フラグ（ネット）の値が"3(既存)"・"4(電話追加)"・nullの判定
		if (newAddflgNet.equals(KIZON) || newAddflgNet.equals(ADD_TEL) || JKKCommonUtil.isNull(newAddflgNet) || newAddflgNet == "")
		{
			// 新規追加識別フラグ（電話）の値が"3(既存)"・"4(電話追加)"・nullの判定
			if (newAddflgTel.equals(KIZON) || newAddflgTel.equals(ADD_TEL) || JKKCommonUtil.isNull(newAddflgTel) || newAddflgTel == "")
			{
				// 新規追加識別フラグ（テレビ）の値が"3(既存)"・"4(電話追加)"・nullの判定
				if (newAddflgTv.equals(KIZON) || newAddflgTv.equals(ADD_TEL) || JKKCommonUtil.isNull(newAddflgTv) || newAddflgTv == "")
				{
					// 印刷対象外条件に当てはまるので処理を終了させる
					return null;
				}
			}
		}
		// ANK-2772-09-00 ADD START
		// テレビ単独時のＫＣＮ契約分印刷対象外処理
		// サービス契約番号（ネット）を設定
		String svcKeiNoNet = inMap.getString(JBSbatKKIFM704.SVC_KEI_NO_NET);
		// サービス契約番号（テレビ）を設定
		String svcKeiNoTv = inMap.getString(JBSbatKKIFM704.SVC_KEI_NO_TV);
		// サービス契約番号（電話）を設定
		String svcKeiNoTel = inMap.getString(JBSbatKKIFM704.SVC_KEI_NO_TEL);
		// サービス契約番号（ネット）がnull
		// ANK-3366-00-00 MOD START
		//if (JKKCommonUtil.isNull(svcKeiNoNet) || svcKeiNoNet == "")
		if (JKKCommonUtil.isNull(svcKeiNoNet) || svcKeiNoNet == "" || 
			( svcKeiNoNet != null && !("".equals(svcKeiNoNet)) && this.getCustOsjgsCd(inMap) )
		)
		// ANK-3366-00-00 MOD END
		{
			// サービス契約番号（電話）がnull
			if (JKKCommonUtil.isNull(svcKeiNoTel) || svcKeiNoTel == "")
			{
				// サービス契約番号（テレビ）がnull以外
				if (svcKeiNoTv != null && !("".equals(svcKeiNoTv)) )
				{
					// テレビ単独のＫＣＮが取得できた場合は印刷対象外
					boolean result = this.getSvcKeiTvKCN(inMap);
					if ( result == true)
					{
						// 印刷対象外条件に当てはまるので処理を終了させる
						return null;
					}
				}
				// ANK-3366-00-00 ADD START
				// ネット、電話、TVがすべて未設定の場合
				else
				{
					// 印刷対象外条件に当てはまるので処理を終了させる
					return null;
				}
				// ANK-3366-00-00 ADD END
			}
		}
		// ANK-2772-09-00 ADD END

		// ANK-2985-00-00 ADD START
		// 加入御礼書通知不要分の契約内容通知書抽出結果格納Map
		HashMap<String, String> kkSelect332Map = new HashMap<String, String>();
		
		if ( (svcKeiNoNet == null || "".equals(svcKeiNoNet)) || (svcKeiNoTv == null || "".equals(svcKeiNoTv)) || (svcKeiNoTel == null || "".equals(svcKeiNoTel)) )
		{
			// 加入御礼書マージファイル（全回線）に設定されているサービス契約回線内訳番号
			String svcKeiKaisenUcwkNo = inMap.getString(JBSbatKKIFM704.SVC_KEI_KAISEN_UCWK_NO);
			
			// setParam = { サービス契約回線内訳番号, 運用日, 運用日, サービス契約回線内訳番号, 運用日, 運用日, 運用日, 運用日 }
			Object[] setParam = { svcKeiKaisenUcwkNo, super.opeDate, super.opeDate, svcKeiKaisenUcwkNo, super.opeDate, super.opeDate, super.opeDate, super.opeDate };
			
			// 加入御礼書通知不要分の契約内容通知書抽出
			// 参照(サービス契約)
			// パラメタを設定する
			JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
			
			// setParamに設定した情報をparamListに格納
			paramList.setValue(setParam[0].toString());
			paramList.setValue(setParam[1].toString());
			paramList.setValue(setParam[2].toString());
			paramList.setValue(setParam[3].toString());
			paramList.setValue(setParam[4].toString());
			paramList.setValue(setParam[5].toString());
			paramList.setValue(setParam[6].toString());
			paramList.setValue(setParam[7].toString());
			
			// SELECT文を実行
			db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_332);
			
			// 結果を取得
			JBSbatCommonDBInterface knytcsResMap = new JBSbatCommonDBInterface();
			
			// 抽出したデータを取得
			while((knytcsResMap = db_KK_T_SVC_KEI.selectNext()) != null)
			{
				// サービスコード
				String svcCd = knytcsResMap.getString(SVC_CD);
				// サービス契約番号
				String svcKeiNo = knytcsResMap.getString(SVC_KEI_NO);
				// 異動区分
				String idoDiv = knytcsResMap.getString(IDO_DIV);
				// 申込書明細番号
				String mskmshoDtlNo = knytcsResMap.getString(MSKMSHO_DTL_NO);
				
				if ("01".equals(svcCd))
				{
					kkSelect332Map.put("SVC_KEI_NO_NET", svcKeiNo);
					kkSelect332Map.put("IDO_DIV_NET", idoDiv);
					kkSelect332Map.put("MSKMSHO_DTL_NO_NET", mskmshoDtlNo);
				}
				else if ("02".equals(svcCd))
				{
					kkSelect332Map.put("SVC_KEI_NO_TEL", svcKeiNo);
					kkSelect332Map.put("IDO_DIV_TEL", idoDiv);
					kkSelect332Map.put("MSKMSHO_DTL_NO_TEL", mskmshoDtlNo);
				}
				else if ("03".equals(svcCd))
				{
					kkSelect332Map.put("SVC_KEI_NO_TV", svcKeiNo);
					kkSelect332Map.put("IDO_DIV_TV", idoDiv);
					kkSelect332Map.put("MSKMSHO_DTL_NO_TV", mskmshoDtlNo);
				}
			}
		}
		// ANK-2985-00-00 ADD END
		
		// 加入御礼書マージファイル（回線別）のレコード設定
		// 加入御礼書マージファイル（回線別）の1レコード
		JBSbatServiceInterfaceMap knuoreMargeBetuFileLine = new JBSbatServiceInterfaceMap();
		
		// ANK-2985-00-00 ADD START
		String kkSelect332SvcKeiNoNet = new String();									// 抽出データ＿サービス契約番号（ネット）
		String kkSelect332IdoDivNet = new String();									// 抽出データ＿異動区分（ネット）
		String kkSelect332MskmshoDtlNoNet = new String();								// 抽出データ＿申込書明細番号（ネット）
		String kkSelect332SvcKeiNoTel = new String();									// 抽出データ＿サービス契約番号（電話）
		String kkSelect332IdoDivTel = new String();									// 抽出データ＿異動区分（電話）
		String kkSelect332MskmshoDtlNoTel = new String();								// 抽出データ＿申込書明細番号（電話）
		String kkSelect332SvcKeiNoTv = new String();									// 抽出データ＿サービス契約番号（テレビ）
		String kkSelect332IdoDivTv = new String();										// 抽出データ＿異動区分（テレビ）
		String kkSelect332MskmshoDtlNoTv = new String();								// 抽出データ＿申込書明細番号（テレビ）
		
		if (kkSelect332Map != null && kkSelect332Map.size() > 0)
		{
			kkSelect332SvcKeiNoNet = kkSelect332Map.get("SVC_KEI_NO_NET");				// サービス契約番号（ネット）
			kkSelect332IdoDivNet = kkSelect332Map.get("IDO_DIV_NET");						// 異動区分（ネット）
			kkSelect332MskmshoDtlNoNet = kkSelect332Map.get("MSKMSHO_DTL_NO_NET");		// 申込書明細番号（ネット）
			kkSelect332SvcKeiNoTel = kkSelect332Map.get("SVC_KEI_NO_TEL");				// サービス契約番号（電話）
			kkSelect332IdoDivTel = kkSelect332Map.get("IDO_DIV_TEL");						// 異動区分（電話）
			kkSelect332MskmshoDtlNoTel = kkSelect332Map.get("MSKMSHO_DTL_NO_TEL");		// 申込書明細番号（電話）
			kkSelect332SvcKeiNoTv = kkSelect332Map.get("SVC_KEI_NO_TV");					// サービス契約番号（テレビ）
			kkSelect332IdoDivTv = kkSelect332Map.get("IDO_DIV_TV");						// 異動区分（テレビ）
			kkSelect332MskmshoDtlNoTv = kkSelect332Map.get("MSKMSHO_DTL_NO_TV");			// 申込書明細番号（テレビ）
		}
		// ANK-2985-00-00 ADD END
		
		// SYSIDを設定
		knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SYSID, inMap.getString(JBSbatKKIFM704.SYSID));
		// ANK-3366-00-00 ADD START
		// 卸先事業者コードの取得判定
		boolean noPrintFlg = false;
		boolean result = this.getCustOsjgsCd(inMap);
		if ( result == true)
		{
			// 印刷対象外フラグを設定する。
			noPrintFlg  = true;
		}
		// ANK-3366-00-00 ADD END
		
		// サービス契約回線内訳番号を設定
		knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_KAISEN_UCWK_NO, inMap.getString(JBSbatKKIFM704.SVC_KEI_KAISEN_UCWK_NO));
		// ANK-3366-00-00 ADD START
		// 卸事業者契約のネットは印刷対象外とする
		if ( noPrintFlg == true )
		{
			
			// サービス契約番号（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_NO_NET, null);
			// 申込書明細番号（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.MSKMSHO_DTL_NO_NET, null);
			// 異動区分（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.IDO_DIV_NET, null);
		}
		// ANK-3366-00-00 ADD END
		// ANK-2985-00-00 ADD START
		// ANK-3366-00-00 MOD START
		//if ( (svcKeiNoNet == null || "".equals(svcKeiNoNet)) && kkSelect332SvcKeiNoNet != null && !"".equals(kkSelect332SvcKeiNoNet) )
		else if ( (svcKeiNoNet == null || "".equals(svcKeiNoNet)) && kkSelect332SvcKeiNoNet != null && !"".equals(kkSelect332SvcKeiNoNet) )
		// ANK-3366-00-00 MOD END
		{
			
			// サービス契約番号（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_NO_NET, kkSelect332SvcKeiNoNet);
			// 申込書明細番号（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.MSKMSHO_DTL_NO_NET, kkSelect332MskmshoDtlNoNet);
			// 異動区分（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.IDO_DIV_NET, kkSelect332IdoDivNet);
		}
		else
		{
		// ANK-2985-00-00 ADD END
			// サービス契約番号（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_NO_NET, inMap.getString(JBSbatKKIFM704.SVC_KEI_NO_NET));
			// 申込書明細番号（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.MSKMSHO_DTL_NO_NET, inMap.getString(JBSbatKKIFM704.MSKMSHO_DTL_NO_NET));
			// 異動区分（ネット）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.IDO_DIV_NET, inMap.getString(JBSbatKKIFM704.IDO_DIV_NET));
		// ANK-2985-00-00 ADD START
		}
		if ( (svcKeiNoTel == null || "".equals(svcKeiNoTel)) && kkSelect332SvcKeiNoTel != null && !"".equals(kkSelect332SvcKeiNoTel) )
		{
			
			// サービス契約番号（電話）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_NO_TEL, kkSelect332SvcKeiNoTel);
			// 申込書明細番号（電話）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.MSKMSHO_DTL_NO_TEL, kkSelect332MskmshoDtlNoTel);
			// 異動区分（電話）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.IDO_DIV_TEL, kkSelect332IdoDivTel);
		}
		else
		{
		// ANK-2985-00-00 ADD END
			// サービス契約番号（電話）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_NO_TEL, inMap.getString(JBSbatKKIFM704.SVC_KEI_NO_TEL));
			// 申込書明細番号（電話）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.MSKMSHO_DTL_NO_TEL, inMap.getString(JBSbatKKIFM704.MSKMSHO_DTL_NO_TEL));
			// 異動区分（電話）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.IDO_DIV_TEL, inMap.getString(JBSbatKKIFM704.IDO_DIV_TEL));
		// ANK-2985-00-00 ADD START
		}
		if ( (svcKeiNoTv == null || "".equals(svcKeiNoTv)) && kkSelect332SvcKeiNoTv != null && !"".equals(kkSelect332SvcKeiNoTv) )
		{
			
			// サービス契約番号（テレビ）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_NO_TV, kkSelect332SvcKeiNoTv);
			// 申込書明細番号（テレビ）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.MSKMSHO_DTL_NO_TV, kkSelect332MskmshoDtlNoTv);
			// 異動区分（テレビ）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.IDO_DIV_TV, kkSelect332IdoDivTv);
		}
		else
		{
		// ANK-2985-00-00 ADD END
			// サービス契約番号（テレビ）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.SVC_KEI_NO_TV, inMap.getString(JBSbatKKIFM704.SVC_KEI_NO_TV));
			// 申込書明細番号（テレビ）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.MSKMSHO_DTL_NO_TV, inMap.getString(JBSbatKKIFM704.MSKMSHO_DTL_NO_TV));
			// 異動区分（テレビ）を設定
			knuoreMargeBetuFileLine.set(JBSbatKKIFM690.IDO_DIV_TV, inMap.getString(JBSbatKKIFM704.IDO_DIV_TV));
		// ANK-2985-00-00 ADD START
		}
		// ANK-2985-00-00 ADD END
		
		// ANK-4174-00-00 ADD START
		// 電子交付同意済みフラグを設定
		knuoreMargeBetuFileLine.set(JBSbatKKIFM690.DNSKH_DOI_ZM_FLG, inMap.getString(JBSbatKKIFM704.DNSKH_DOI_ZM_FLG));
		// ANK-4174-00-00 ADD END
		
		
		// 契約内容通知書ファイルの1レコード分を出力
		knuoreMargeFile.print(knuoreMargeBetuFileLine, knuoreDef);

		return null;
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception {

		// ANK-2772-09-00 ADD START
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		// ANK-2772-09-00 ADD END
	}

	// ANK-2772-09-00 ADD START
	/**
	 * テレビ単独時のＫＣＮ契約分印刷対象外処理
	 * 
	 * @param inMap 入力情報
	 * @return データが取得できた場合はtrue
	 * @throws Exception 
	 */
	private boolean getSvcKeiTvKCN(JBSbatServiceInterfaceMap inMap) throws Exception
	{

		// サービス契約番号（テレビ）を設定
		String svcKeiNoTv = inMap.getString(JBSbatKKIFM704.SVC_KEI_NO_TV);

		// setParam = { サービス契約番号（テレビ）, 運用日, 運用日}
		Object[] setParam = { svcKeiNoTv, super.opeDate, super.opeDate};
		// サービス契約テレビ情報抽出
		this.executeKK_T_SVC_KEI_KK_SELECT_329(setParam);
		JBSbatCommonDBInterface result = db_KK_T_SVC_KEI.selectNext();
		if( result == null )
		{ 
			return false;
		}
		return true;
		
	}
	
	/**
	 * SQLKEY(KK_SELECT_329)で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_329(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_329);
	}
	// ANK-2772-09-00 ADD END
	// ANK-3366-00-00 ADD START
	/**
	 * 卸先事業者コードの取得判定
	 * 
	 * @param inMap 入力情報
	 * @return データが取得できた場合はtrue
	 * @throws Exception 
	 */
	private boolean getCustOsjgsCd(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// 加入御礼書マージファイル(全回線)に存在するSYSIDを元にお客様スキーマに卸先事業者コードが存在するか判定する。
		HashMap<String, String> kuSelect001Map = new HashMap<String, String>();
		// SYSID
		String workSYSID = inMap.getString(JBSbatKKIFM704.SYSID);
		
		if ( workSYSID != null && !"".equals(workSYSID) ) 
		{
			// setParam = { SYSID, 運用日 }
			Object[] setParam = { workSYSID, super.opeDate };
			
			// 卸先事業者コードの抽出
			// パラメタを設定する
			JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
			
			// setParamに設定した情報をparamListに格納
			paramList.setValue(setParam[0].toString());
			paramList.setValue(setParam[1].toString());
			
			// SELECT文を実行
			db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_KU_SELECT_001);
			
			// 結果を取得
			JBSbatCommonDBInterface cKTCustResMap = db_CK_T_CUST.selectNext();
			
			if(cKTCustResMap != null)
			{
				// 卸先事業者コード
				String osjgsCd = cKTCustResMap.getString(ORSJGS_CD);
				if ( osjgsCd == null || "".equals(osjgsCd) )
				{
					return false;
				}
			}
		}
		return true;
	}
	
	// ANK-3366-00-00 ADD END
}
