/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKShohinkHsSzfileSk
*	ソースファイル名	：JBSbatKKShohinkHsSzfileSk.java
*	作成者				：富士通　
*	作成日				：2012年05月16日
*＜機能概要＞
*　商品券発送指図ファイル作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/05/16   富士通		新規作成
*	v4.00.00	2012/11/17   富士通		IT2-2012-0001702
*	v5.00.00	2013/07/18   富士通		IT1-2013-0001407（送付先識別コードの追加とコード内容の修正に伴う対応）
*	v5.00.01	2013/08/01   富士通		KT1-2013-0000778（申込日、開通日出力不備対応）
*	v5.00.02	2013/08/05   富士通		ANK-2013-0001623
*	v5.00.03	2013/08/22   富士通		OM-2013-0000665
*	v5.00.04	2013/08/24   富士通		OM-2013-0000789、OM-2013-0000807、OM-2013-0000777、OM-2013-0000834、OM-2013-0000847
*	v5.00.05	2013/08/25   富士通		OM-2013-0000968
*	v5.00.06	2013/08/25   富士通		OM-2013-0000968
*	v5.00.07	2013/10/08   富士通		ANK-1754-00-00
*	v5.00.08	2013/11/07   富士通		OM-2013-0003946
*	v5.00.09	2013/11/27   富士通		OM-2013-0004547
*	v8.00.00	2014/04/07   富士通		OM-2014-0001279
*	v10.00.00	2014/09/03   FJ)西面	ST4-2014-0000055 性能改善対応
*	v11.00.00	2014/12/10   FJ)福岡	ANK-2453-00-00
*	v26.00.00	2016/08/16   FJ)奥村	ANK-2955-00-00 契約者住所送付のサービス契約「eo電気」対応
*	v27.00.00	2016/10/11   FJ)藤原	ANK-3005-00-00 eo電気の商品券CPコード追加（STEP2）
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFE165;
import eo.business.util.file.JBSbatKKIFM198;
import eo.business.util.file.JBSbatKKIFM724;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_M_DCHSKM;
import eo.business.util.table.JBSbatKK_M_DCHSKM_SETE_JKN;
import eo.business.util.table.JBSbatKK_T_DCHSKMST;
import eo.business.util.table.JBSbatKK_T_DCHSKMST_TG_KEI;
import eo.business.util.table.JBSbatKK_T_MSKM_DTL;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCDateUtil;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKShohinkHsSzfileSk extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(サービス契約回線内訳)*/
	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_MSKM_DTL = "KK_T_MSKM_DTL";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";
	
	/** テーブル(データ抽出項目設定条件)*/
	private static final String D_TBL_NAME_KK_M_DCHSKM_SETE_JKN = "KK_M_DCHSKM_SETE_JKN";
	
	/** SQL定義キー(KK_SELECT_023)*/
	private static final String CK_T_CUST_KK_SELECT_023 = "KK_SELECT_023";

	/** SQL定義キー(KK_SELECT_025)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_025 = "KK_SELECT_025";

	/** SQL定義キー(KK_SELECT_016)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_016 = "KK_SELECT_016";

	/** SQL定義キー(KK_SELECT_032)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_032 = "KK_SELECT_032";
	
	/** SQL定義キー(KK_SELECT_269)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_269 = "KK_SELECT_269";
	
	/** SQL定義キー(KK_SELECT_269)*/
	private static final String KK_M_DCHSKM_SETE_JKN_SELECT_003 = "KK_SELECT_003";
	
	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;

	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;
	
	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL_1 = null;
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	
	/** テーブルアクセスクラス(データ抽出項目設定条件)*/
	private JBSbatSQLAccess db_KK_M_DCHSKM_SETE_JKN = null;
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 入力情報(データ抽出項目・表示用データ抽出項目コード)*/
	private String DspDchskmCd = "";

	/** 入力情報(データ抽出項目・適用数)*/
// v8.00.00 MOD START
//	private BigDecimal AplyCnt = null;
	private String AplyCnt = null;
// v8.00.00 MOD END
	
	/** 入力情報(データ抽出項目・商品発送先住所識別コード)*/
	private String GdsHassoSkAdSkbtCd = "";

	/** 入力情報(データ抽出項目・商品券金額)*/
// v8.00.00 MOD START
//	private BigDecimal ShohinkAmnt = null;
	private String ShohinkAmnt = null;
// v8.00.00 MOD END
	
	/** 入力情報(データ抽出項目・あいさつ状印字文言識別コード)*/
	private String AistjPrintMongonSkbtCd = "";

	/** 入力情報(データ抽出項目設定・抽出回数)*/
// v8.00.00 MOD START
//	private BigDecimal ChshtCnt = null;
	private String ChshtCnt = null;
// v8.00.00 MOD END
	
	/** 入力情報(データ抽出項目設定・世代登録年月日時分秒)*/
	private String GeneAddDtm = "";

	/** 入力情報(データ抽出項目設定・SYSID)*/
	private String Sysid = "";

	/** 入力情報(データ抽出項目設定・データ抽出項目設定番号)*/
	private String DchskmstNo = "";

	/** 入力情報(データ抽出項目設定・申込明細番号)*/
	private String MskmDtlNo = "";
	
	/** 入力情報(データ抽出項目設定・申込明細番号)*/
	private String UpdDtm = "";
	
// v5.00.00 ADD START
	/** 入力情報(お客様・契約者タイプコード)*/
	private String KeishaTypeCd = "";
// v5.00.00 ADD END
	
// v5.00.01 ADD START
	/** 入力情報(データ抽出項目設定・紹介コード)*/
	private String IntrCd = "";
// v5.00.01 ADD END
	
	/** 商品券発送指図情報作成ファイル出力レコード件数*/
	private long lCnt = 0;

	/** トレーラレコード括り文字*/
	private static final String SCOPE  = "\"";

// v5.00.02 ADD START
	/** 入力情報(データ抽出項目設定・データ抽出項目コード) */
	private String DchskmCd = "";
	
	/** データ抽出項目設定条件 */
	private HashMap<String, String> dchJknMst = new HashMap<String, String>();
// v5.00.02 ADD END
	
// v27.00.00 ADD START
	/** eo電気の利用場所住所出力ファイル情報格納用リスト */
	private ArrayList<JBSbatServiceInterfaceMap> outInfDataList = null;
// v27.00.00 ADD END
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
		db_KK_T_MSKM_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_M_DCHSKM_SETE_JKN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_DCHSKM_SETE_JKN);
		db_KK_T_MSKM_DTL_1 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// データ抽出項目設定条件設定
		setDchJknMst();
		
// v27.00.00 ADD START
		// 出力ファイル情報格納用リストの初期化
		outInfDataList = new ArrayList<JBSbatServiceInterfaceMap>();
// v27.00.00 ADD END
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");

		// 申込明細取得結果
		JBSbatCommonDBInterface retMSKMMap = new JBSbatCommonDBInterface();	
		// お客様情報取得結果格納用
		JBSbatCommonDBInterface rcvMapCust = new JBSbatCommonDBInterface();	
		// お客様情報取得結果格納用
		JBSbatCommonDBInterface rcvMapSvKeiKaisenUw = new JBSbatCommonDBInterface();
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// KKIFM198 出力フラグ
		boolean kkifm198Flg = false;

		/** 入力情報の設定 **/
		DspDchskmCd = inMap.getString(JBSbatKK_M_DCHSKM.DSP_DCHSKM_CD);								// 表示用データ抽出項目コード
		
// v8.00.00 MOD START
//		AplyCnt = inMap.getBigDecimal(JBSbatKK_M_DCHSKM.APLY_CNT);									// 適用数
		AplyCnt = inMap.getString(JBSbatKK_M_DCHSKM.APLY_CNT);										// 適用数
// v8.00.00 MOD END
		GdsHassoSkAdSkbtCd = inMap.getString(JBSbatKK_M_DCHSKM.GDS_HASSO_SK_AD_SKBT_CD);			// 商品発送先住所識別コード
// v8.00.00 MOD START
//		ShohinkAmnt = inMap.getBigDecimal(JBSbatKK_M_DCHSKM.SHOHINK_AMNT);							// 商品券金額
		ShohinkAmnt = inMap.getString(JBSbatKK_M_DCHSKM.SHOHINK_AMNT);								// 商品券金額
// v8.00.00 MOD END
		AistjPrintMongonSkbtCd = inMap.getString(JBSbatKK_M_DCHSKM.AISTJ_PRINT_MONGON_SKBT_CD);		// あいさつ状印字文言識別コード
// v8.00.00 MOD START
//		ChshtCnt = inMap.getBigDecimal(JBSbatKK_T_DCHSKMST.CHSHT_CNT);								// 抽出回数
		ChshtCnt = inMap.getString(JBSbatKK_T_DCHSKMST.CHSHT_CNT);									// 抽出回数
// v8.00.00 MOD END
		GeneAddDtm = inMap.getString(JBSbatKK_T_DCHSKMST.GENE_ADD_DTM);								// 世代登録年月日時分秒
		Sysid = inMap.getString(JBSbatKK_T_DCHSKMST.SYSID);											// SYSID
		DchskmstNo = inMap.getString(JBSbatKK_T_DCHSKMST.DCHSKMST_NO);								// データ抽出項目設定番号
		MskmDtlNo = inMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);								// 申込明細番号
		UpdDtm = inMap.getString(JBSbatKK_T_DCHSKMST.UPD_DTM);										// 更新年月日時分秒
// v5.00.00 ADD START
		KeishaTypeCd = inMap.getString(JBSbatCK_T_CUST.KEISHA_TYPE_CD);								// 契約者タイプコード
// v5.00.00 ADD END
// v5.00.01 ADD START
		IntrCd = inMap.getString(JBSbatKK_T_DCHSKMST.INTR_CD);										// 紹介コード
// v5.00.01 ADD END
// v5.00.02 ADD START
		DchskmCd = inMap.getString(JBSbatKK_M_DCHSKM.DCHSKM_CD);									// データ抽出項目コード
// v5.00.02 ADD END
		
		/** 出力ファイルに必要なデータの抽出 **/
		// 申込明細の抽出
		// パラメータの設定
		Object[] setParam1 = {
			MskmDtlNo  		// 申込明細番号
		};

// v5.00.06 ADD START
		// 紹介CPで紹介コードが存在しない場合、対象外
		if (isIntrCp() && JKKStringUtil.isNullBlank(IntrCd)) {
			return outputBean;
		}
// v5.00.06 ADD END
//10.00.00 2014/09/03 Del Start
//		// お客様よりデータ抽出
//		executeKK_T_MSKM_DTL_KK_SELECT_016(setParam1);
//		retMSKMMap = db_KK_T_MSKM_DTL.selectNext();
//10.00.00 2014/09/03 Del End

// v5.00.00 ADD START
		// データ抽出項目・商品券発送先住所識別コード・お客様．契約者タイプコードにより、発送先住所を決定する。
//		if (GdsHassoSkAdSkbtCd.equals("1")) { 
		String adFlg = "";
		if (GdsHassoSkAdSkbtCd.equals("1"))
		{
			// 商品券発送先住所識別コード："1"（法人・個人ともに契約者住所）のため、AdFlgに"1"を設定
			adFlg = "1";
		}
		else if(GdsHassoSkAdSkbtCd.equals("2"))
		{
			if(KeishaTypeCd.equals(JBSbatKKConst.KEISHA_TYPE_CD_KOJIN))
			{
				adFlg = "2";
			}
			else if(KeishaTypeCd.equals(JBSbatKKConst.KEISHA_TYPE_CD_HOJIN))
			{
				adFlg = "1";
			}
		}
		else if(GdsHassoSkAdSkbtCd.equals("3"))
		{
			if(KeishaTypeCd.equals(JBSbatKKConst.KEISHA_TYPE_CD_KOJIN))
			{
				adFlg = "1";
			}
			else if(KeishaTypeCd.equals(JBSbatKKConst.KEISHA_TYPE_CD_HOJIN))
			{
				adFlg = "2";
			}
		}
		else if(GdsHassoSkAdSkbtCd.equals("4"))
		{
			// 商品券発送先住所識別コード："4"（法人・個人ともに利用場所住所）のため、AdFlgに"2"を設定
			adFlg = "2";
		}
		if(!KeishaTypeCd.equals(JBSbatKKConst.KEISHA_TYPE_CD_KOJIN) && !KeishaTypeCd.equals(JBSbatKKConst.KEISHA_TYPE_CD_HOJIN))
		{
			// 契約者タイプが、法人でも個人でもない場合は処理を行わない
			String errMsg = "データ抽出項目設定番号=" + DchskmstNo + " 契約者タイプが\"法人\"・\"個人\"のいずれでもありません";
			super.logPrint.printBusinessErrorLog("EKKB0010CW", new String[]{errMsg});
			adFlg = "";
		}

		if (adFlg.equals("1")) {
// v5.00.00 ADD END
		/** お客様より商品券発送先住所を抽出 **/
			// パラメータの設定
			Object[] setParam = {
// v11.00.00 MOD START
//					super.opeDate,   							// 運用日
					JPCDateUtil.addDay(super.opeDate, 1),   	// 運用日＋１
// v11.00.00 MOD END
					this.Sysid,			// SYSID
					this.DchskmstNo,	// データ抽出項目設定番号
					super.opeDate,   	// 運用日
					super.opeDate		// v5.00.02 ADD 運用日
//					super.opeDate		// v5.00.02 ADD 運用日 => v5.00.06 DEL
// ANK-2955-00-00 ADD START
					,
					JPCDateUtil.addDay(super.opeDate, 1),   	// 運用日＋１
					this.Sysid,			// SYSID
					this.DchskmstNo,	// データ抽出項目設定番号
					super.opeDate   	// 運用日
// ANK-2955-00-00 ADD END
			};

			// お客様よりデータ抽出
			executeCK_T_CUST_KK_SELECT_023(setParam);

			// データ取得分処理を繰り返し、商品券発送指図情報作成ファイルの情報を設定す
			while(null != (rcvMapCust = db_CK_T_CUST.selectNext()))
			{
// v5.00.02 ADD START
				// 出力チェック
				if (!isRecordOutput((String) rcvMapCust.getValue(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT)))
// v5.00.04 mod start
//					continue;
					break;
// v5.00.04 mod end
//v10.00.00 2014/09/03 Add Start

					// お客様よりデータ抽出
					executeKK_T_MSKM_DTL_KK_SELECT_016(setParam1);
					retMSKMMap = db_KK_T_MSKM_DTL.selectNext();
//v10.00.00 2014/09/03 Add End

				
// v5.00.02 ADD END
				
				// 商品券発送指図情報作成ファイル出力データ格納用
				JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();

				// 項目を設定
				outmap.setString(JBSbatKKIFE165.SVC_KEI_NO, rcvMapCust.getValue(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO)); 	// お客様ID(データ抽出項目設定対象契約・サービス契約番号)
				outmap.setString(JBSbatKKIFE165.MSKM_YMD, retMSKMMap.getValue(JBSbatKK_T_MSKM_DTL.MSKM_YMD)); 				// 申込日(申込明細・申込年月日)
				outmap.setString(JBSbatKKIFE165.KIT_YMD,  rcvMapCust.getValue(JBSbatKK_T_SVC_KEI.SVC_STA_YMD));				// 開通日(サービス契約・サービス開始年月日)
// v5.00.01 ADD START
				setIsIntrCdUmu(outmap);
// v5.00.01 ADD END
				
// v5.00.09 ADD START
				setIsNotIntrCdUmu(outmap, (String) rcvMapCust.getValue(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO));
// v5.00.09 ADD END
				
				outmap.setString(JBSbatKKIFE165.CAMPAIGN_CD, DspDchskmCd); 													// キャンペーンコード(データ抽出項目・表示用データ抽出項目コード)
				outmap.setString(JBSbatKKIFE165.POST_CD, rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_PCD)); 					// 郵便番号
				outmap.setString(JBSbatKKIFE165.SOHUS_NAME, rcvMapCust.getValue(JBSbatCK_T_CUST.CUST_NM)); 					// 送付先名
				// 商品券発送先住所（お客様）
				outmap.setString(JBSbatKKIFE165.SOHUS_AD, rnktAd(rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_STATE_NM),
																rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_CITY_NM),
																rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_OAZTSU_NM),
																rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_AZCHO_NM),
																rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_BNCHIGO),
																rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_ADRTTM),
																rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_ADRRM)));
				outmap.setString(JBSbatKKIFE165.SOHUS_TEL,  rcvMapCust.getValue(JBSbatCK_T_CUST.KEISHA_TELNO));				// 電話番号（契約者電話番号）
				outmap.setString(JBSbatKKIFE165.SHNK_KNGK, ShohinkAmnt); 													// 商品券金額（データ抽出項目・商品券金額）
				outmap.setString(JBSbatKKIFE165.AISTJ_SKBT_CD, AistjPrintMongonSkbtCd); 									// あいさつ状種別（データ抽出項目・発送文言判定値）
// v5.00.04 start
				// 出力判定
				if (!isOutPut(outmap, (String) rcvMapCust.getValue(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT))) {
					break;
				}
// v5.00.04 end
				outmap.setOutFlg(true);
				outputBean.addOutMapList(outmap);
				lCnt++;
				kkifm198Flg = true;
				
// v5.00.04 start
				break;
// v5.00.04 end
			}
// v5.00.00 ADD START
//		}else{
		}
		else if (adFlg.equals("2"))
		{
// v5.00.00 ADD END
			
		/** サービス契約回線内訳より商品券発送先住所を抽出 **/

			// パラメータの設定
			Object[] setParam = {
					this.DchskmstNo,   	// データ抽出項目設定番号
					super.opeDate,		// 運用日
					super.opeDate,		// 運用日
					super.opeDate,   	// 運用日
//					super.opeDate,   	// 運用日 => v5.00.06 DEL
					this.Sysid			// SYSID
// v27.00.00 ADD START
					,
					JPCDateUtil.addDay(super.opeDate, 1),   	// 運用日＋１
					this.Sysid,			// SYSID
					this.DchskmstNo,	// データ抽出項目設定番号
					super.opeDate   	// 運用日
// v27.00.00 ADD END
			};

			// サービス契約回線内訳よりデータ抽出
			executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_025(setParam);
			
			// データ取得分処理を繰り返し、商品券発送指図情報作成ファイルの情報を設定する
			while(null != (rcvMapSvKeiKaisenUw = db_KK_T_SVKEI_KAISEN_UW.selectNext()))
			{
				
// v5.00.02 ADD START
				// 出力チェック
				if (!isRecordOutput((String) rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT)))
// v5.00.04 mod start
//					continue;
					break;
// v5.00.04 mod end
// v5.00.02 ADD END
//v10.00.00 2014/09/03 Add Start

					// お客様よりデータ抽出
					executeKK_T_MSKM_DTL_KK_SELECT_016(setParam1);
					retMSKMMap = db_KK_T_MSKM_DTL.selectNext();
//v10.00.00 2014/09/03 Add End
				
// v27.00.00 ADD START
					// サービスコードがeo電気の場合、別ファイル出力データを抽出
					if((JBSbatKKConst.SVC_CD_ELEC_SVC).equals(rcvMapSvKeiKaisenUw.getString(JBSbatKK_T_SVC_KEI.SVC_CD))){
						
						// 申込日の取得
						String mskmYmd = retMSKMMap.getString(JBSbatKK_T_MSKM_DTL.MSKM_YMD);
						// 出力データを作成
						setEcleOutputFile(rcvMapSvKeiKaisenUw,mskmYmd);
						// KKIFM198 出力フラグを出力しないようにする
						kkifm198Flg = false;
						
						break;
					}
// v27.00.00 ADD END
						
				// 商品券発送指図情報作成ファイル出力データ格納用
				JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();	

				// 項目を設定
				outmap.setString(JBSbatKKIFE165.SVC_KEI_NO, rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO)); 		// お客様ID(データ抽出項目設定対象契約・サービス契約番号)
				outmap.setString(JBSbatKKIFE165.MSKM_YMD, retMSKMMap.getValue(JBSbatKK_T_MSKM_DTL.MSKM_YMD)); 							// 申込日(申込明細・申込年月日)
				outmap.setString(JBSbatKKIFE165.KIT_YMD,  rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVC_KEI.SVC_STA_YMD));				// 開通日(サービス契約・サービス開始年月日)
// v5.00.01 ADD START
				setIsIntrCdUmu(outmap);
// v5.00.01 ADD END
				
// v5.00.09 ADD START
				setIsNotIntrCdUmu(outmap, (String) rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO));
// v5.00.09 ADD END
				
				outmap.setString(JBSbatKKIFE165.CAMPAIGN_CD, DspDchskmCd); 																// キャンペーンコード(データ抽出項目・表示用データ抽出項目コード)
				outmap.setString(JBSbatKKIFE165.POST_CD, rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_PCD)); 	// 郵便番号（回線場所郵便番号）
				outmap.setString(JBSbatKKIFE165.SOHUS_NAME, rcvMapSvKeiKaisenUw.getValue(JBSbatCK_T_CUST.CUST_NM)); 					// 送付先名（お客様名）
				// 商品券発送先住所（サービス契約回線内訳）
				outmap.setString(JBSbatKKIFE165.SOHUS_AD, rnktAd(rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_STATE_NM),
																rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_CITY_NM),
																rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_OAZTSU_NM),
																rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AZCHO_NM),
																rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_BNCHIGO),
																rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRTTM),
																rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRRM)));
				outmap.setString(JBSbatKKIFE165.SOHUS_TEL,rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_TELNO));	// 電話番号（回線場所電話番号）
				outmap.setString(JBSbatKKIFE165.SHNK_KNGK, ShohinkAmnt); 																// 商品券金額（データ抽出項目・商品券金額）
				outmap.setString(JBSbatKKIFE165.AISTJ_SKBT_CD, AistjPrintMongonSkbtCd); 												// あいさつ状種別（データ抽出項目・発送文言判定値）
// v5.00.04 start
				// 出力判定
				if (!isOutPut(outmap, (String) rcvMapSvKeiKaisenUw.getValue(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT))) {
					break;
				}
// v5.00.04 end
				outmap.setOutFlg(true);
				outputBean.addOutMapList(outmap);
				lCnt++;
				kkifm198Flg = true;
// v5.00.04 start
				break;
// v5.00.04 end
			}

		}
		// 送付先が「1:契約者住所」の場合は「お客様」よりデータを取得 */
		// A．お客様の抽出
	    // 送付先が「2:利用場所住所」の場合は「サービス契約回線内訳」よりデータを取得 */
		// B．サービス契約回線内訳の抽出
		// C．申込明細の抽出

		// データ抽出項目設定更新対象ファイルの情報を設定
		// 入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap2 = new JBSbatServiceInterfaceMap();

		if (kkifm198Flg)
		{
			// 商品券発送指図ファイル(KKIFE165)に出力した場合にKKIFM198を出力する
			
			// 項目を設定
			outmap2.setString(JBSbatKKIFM198.KK1351_APLY_CNT, this.AplyCnt); 		// データ抽出項目・適用数
			outmap2.setString(JBSbatKKIFM198.KK1391_CHSHT_CNT, this.ChshtCnt);		// データ抽出項目設定・抽出回数
			outmap2.setString(JBSbatKKIFM198.KK1391_DCHSKMST_NO, this.DchskmstNo); 	// データ抽出項目設定・データ抽出項目設定番号
			outmap2.setString(JBSbatKKIFM198.KK1391_GENE_ADD_DTM, this.GeneAddDtm);	// データ抽出項目設定・世代登録年月日時分秒
			outmap2.setString(JBSbatKKIFM198.KK1391_UPD_DTM,this.UpdDtm ); 			// データ抽出項目設定・更新年月日時分秒
	
			// 出力共通電文に入出力インターフェースを設定する。
			// 出力フラグを設定
			outmap2.setOutFlg(true);
	
			// 出力共通電文に入出力インターフェースを設定する。
			outputBean.addOutMapList_2(outmap2);
		}
//		// 項目を設定
//		outmap2.setString(JBSbatKKIFM198.KK1351_APLY_CNT, this.AplyCnt); 		// データ抽出項目・適用数
//		outmap2.setString(JBSbatKKIFM198.KK1391_CHSHT_CNT, this.ChshtCnt);		// データ抽出項目設定・抽出回数
//		outmap2.setString(JBSbatKKIFM198.KK1391_DCHSKMST_NO, this.DchskmstNo); 	// データ抽出項目設定・データ抽出項目設定番号
//		outmap2.setString(JBSbatKKIFM198.KK1391_GENE_ADD_DTM, this.GeneAddDtm);	// データ抽出項目設定・世代登録年月日時分秒
//		outmap2.setString(JBSbatKKIFM198.KK1391_UPD_DTM,this.UpdDtm ); 			// データ抽出項目設定・更新年月日時分秒
//
//		// 出力共通電文に入出力インターフェースを設定する。
//		// 出力フラグを設定
//		outmap2.setOutFlg(true);
//
//		// 出力共通電文に入出力インターフェースを設定する。
//		outputBean.addOutMapList_2(outmap2);

		super.logPrint.printDebugLog("execute_END");
		
		// 出力共通電文を返却
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{

// v8.00.00 DEL START
//		/** トレーラーレコード出力処理 **/
//		writeTrailer();
// v8.00.00 DEL END

		/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CK_T_CUST.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
		db_KK_T_MSKM_DTL.close();
		db_KK_T_MSKM_DTL_1.close();
		db_KK_T_SVC_KEI.close();
		db_KK_M_DCHSKM_SETE_JKN.close();
		
// v27.00.00 ADD STRAT
		// eo電気契約の利用場所住所発送用ファイルを出力する。
		// フリーパラメータの取得
		String[] fItem = super.freeItem.split(JKKBatConst.S_PARAM_DELIM);
		
		// 起動パラメータ FREE より、eo電気契約の利用場所住所発送用ファイル名を取得する。
		String elecFileDef = fItem[0];
		String elecFileName = fItem[1];
		
		// ファイル形式の設定
		JBSbatOutputFileUtil outputFileUtil = new JBSbatOutputFileUtil(elecFileName);
		// 文字コード設定
		outputFileUtil.setEncode(JKKBatConst.SJIS);
		// 改行コード設定
		outputFileUtil.setLine(JBSbatKKConst.LINE_CRLF);
		// 定義ファイルのパスを設定
		String dataFileDefName = JBSbatAplConst.getAplConstValue("IND") + elecFileDef;
		// 定義ファイルの設定
		JBSbatDefFileUtil dataFileDef = new JBSbatDefFileUtil(dataFileDefName,outputFileUtil);
		// ファイルを作成する
		outputFileUtil.createWriter();
		// ファイル出力
		createFile(outputFileUtil,dataFileDef,elecFileName);
		
// v27.00.00 ADD END
		
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
// v5.00.04 start
	/**
	 * 出力判定
	 * 
	 * 以下状態は,出力しない
	 * ・申込日が未設定
	 * ・解約済で,サービス開始年月日が未設定（締結済→解約を表す）
	 * ・開通日が運用日より前
	 * 
	 * @param  outMap
	 * @param  stat
	 * @throws Exception ]
	 * 
	 */
	private boolean isOutPut(JBSbatServiceInterfaceMap outMap, String stat) throws Exception {
		
		// 申込日が未設定は出力対象外
		if (JKKStringUtil.isNullBlank(outMap.getString(JBSbatKKIFE165.MSKM_YMD))) {
			return false;
		}
		
// v5.00.05 MOD START
//		// 解約済 且つ サービス開始年月日が未設定
//		if (JBSbatKKConst.SVC_KEI_STAT_DLS_ZM.equals(stat) &&
//				JKKStringUtil.isNullBlank(outMap.getString(JBSbatKKIFE165.KIT_YMD))) {
//			return false;
//		}
		// サービス開始年月日が未設定
		if (JKKStringUtil.isNullBlank(outMap.getString(JBSbatKKIFE165.KIT_YMD))) {
			return false;
		}
// v5.00.05 MOD END
		
		// 開通日が運用日より前
		if (!JKKStringUtil.isNullBlank(outMap.getString(JBSbatKKIFE165.KIT_YMD)) &&
// v5.00.05 MOD START
//				opeDate.compareTo(outMap.getString(JBSbatKKIFE165.KIT_YMD)) == -1) {
				opeDate.compareTo(outMap.getString(JBSbatKKIFE165.KIT_YMD)) < 0) {
// v5.00.05 MOD END
			return false;
		}
		
		return true;
	}
	
// v5.00.04 end
	
// v5.00.02 ADD START
	/**
	 * レコード出力対象有無を判定
	 * @param  uwStat  サービス契約ステータス
	 * @param  keiStat サービス契約回線内訳ステータス
	 * @return true：対象、false：対象外
	 */
	private boolean isRecordOutput(String keiStat) {
		
// v5.00.07 DEL START
//		// 紹介CP
//		final List<String> comIntrCpKeiStat      = Arrays.asList(new String[] { JBSbatKKConst.SVC_KEI_STAT_CNCL_ZM });			// キャンセル済
// v5.00.07 DEL END
		// 紹介CP以外
		final List<String> comNotIntrCpKeiStat   = Arrays.asList(new String[] {
																					JBSbatKKConst.SVC_KEI_STAT_SVCTK_CHU,		// サービス提供中
																					JBSbatKKConst.SVC_KEI_STAT_PAUSE_STP_CHU,	// 休止・中断中
																					JBSbatKKConst.SVC_KEI_STAT_STP_CHU,			// 停止中
																					JBSbatKKConst.SVC_KEI_STAT_DLS_ZM			// 解約済
																				});	
		if (isIntrCp()) {
// v5.00.07 MOD START
//			if (!comIntrCpKeiStat.contains(keiStat))
// v5.00.07 MOD END
				return true;
		} else {
			if (comNotIntrCpKeiStat.contains(keiStat))
				return true;
		}
		return false;
	}
	
	/** 
	 * 紹介CP判定
	 * @return true:紹介CP、false:それ以外
	 */
	private boolean isIntrCp() {
		if (!JKKStringUtil.isNullBlank(dchJknMst.get(DchskmCd))) {
			return true;
		}
		return false;
	}
	
	/**
	 * データ抽出項目設定条件を設定する。
	 * @throws Exception 
	 */
	private void setDchJknMst() throws Exception {
		executeKK_M_DCHSKM_SETE_JKN_KK_SELECT_003();
		JBSbatCommonDBInterface dataMap = new JBSbatCommonDBInterface();
		while(null != (dataMap = db_KK_M_DCHSKM_SETE_JKN.selectNext())) {
			String obj = (String) dataMap.getValue(JBSbatKK_M_DCHSKM_SETE_JKN.DCHSKM_CD);
			dchJknMst.put(obj, obj);
		}
	}
// v5.00.02 ADD END
	
// v5.00.09 ADD START
	/**
	 * 
	 * 紹介コード有無により,出力する値を再設定する
	 * 
	 * @param 
	 * @param 
	 * @throws Exception 
	 */
	private void setIsNotIntrCdUmu(JBSbatServiceInterfaceMap outMap, String svcKeiNo) throws Exception {
		
		if (JKKStringUtil.isNullBlank(IntrCd)) {
			
			JBSbatCommonDBInterface svcInf = new JBSbatCommonDBInterface();
			executeKK_T_MSKM_DTL_KK_SELECT_032(new Object[] { svcKeiNo, super.opeDate});
			
			outMap.setString(JBSbatKKIFE165.MSKM_YMD, "");
			
			while(null != (svcInf = db_KK_T_MSKM_DTL_1.selectNext())) {
				
				// [申込日][開通日]設定
				outMap.setString(JBSbatKKIFE165.MSKM_YMD, svcInf.getValue(JBSbatKK_T_MSKM_DTL.MSKM_YMD));
				
				break;
			}
		}
	}
	/**
	 * SQLKEY(KK_SELECT_032)で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_032(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_MSKM_DTL_1.selectBySqlDefine(paramList, KK_T_MSKM_DTL_KK_SELECT_032);
	}
// v5.00.09 ADD END
	
// v5.00.01 ADD START
	/**
	 * 
	 * 紹介コード有無により,出力する値を再設定する
	 * 
	 * @param 
	 * @throws Exception 
	 */
	private void setIsIntrCdUmu(JBSbatServiceInterfaceMap outMap) throws Exception {
		
		if (!JKKStringUtil.isNullBlank(IntrCd)) {
			JBSbatCommonDBInterface svcInf = new JBSbatCommonDBInterface();
// v5.00.08 MOD START
//			executeKK_T_SVC_KEI_KK_SELECT_269(new Object[] { this.IntrCd, super.opeDate });
			executeKK_T_SVC_KEI_KK_SELECT_269(new Object[] { this.IntrCd, super.opeDate, super.opeDate });
// v5.00.08 MOD END
			
			outMap.setString(JBSbatKKIFE165.MSKM_YMD, "");
			outMap.setString(JBSbatKKIFE165.KIT_YMD,  "");
			
			while(null != (svcInf = db_KK_T_SVC_KEI.selectNext())) {
				
				// [申込日][開通日]設定
				outMap.setString(JBSbatKKIFE165.MSKM_YMD, svcInf.getValue(JBSbatKK_T_MSKM_DTL.MSKM_YMD));
				outMap.setString(JBSbatKKIFE165.KIT_YMD,  svcInf.getValue(JBSbatKK_T_SVC_KEI.SVC_STA_YMD));
				
				break;
			}
		}
	}
	/**
	 * SQLKEY(KK_SELECT_269)で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_269(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_269);
	}
// v5.00.01 ADD END
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_023)で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_KK_SELECT_023(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
// ANK-2955-00-00 ADD START
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
// ANK-2955-00-00 ADD END
		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_KK_SELECT_023);
	}

	/**
	 * SQLKEY(KK_SELECT_025)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	データ抽出項目設定番号
	 *		 	予約適用年月日
	 *		 	回線内訳使用開始年月日
	 *		 	回線内訳使用終了年月日
	 *		 	予約適用年月日
	 *		 	SYSID
	 *			予約適用年月日
	 *			SYSID
	 *			データ抽出項目設定番号
	 *			予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_025(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
// v27.00.00 ADD START
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
// v27.00.00 ADD END
		
		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_025);
	}

	/**
	 * SQLKEY(KK_SELECT_016)で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_016(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_016);
	}
	
	/**
	 * SQLKEY(KK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_DCHSKM_SETE_JKN_KK_SELECT_003() throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// DBアクセスを実行します
		db_KK_M_DCHSKM_SETE_JKN.selectBySqlDefine(paramList, KK_M_DCHSKM_SETE_JKN_SELECT_003);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 住所文字列の連結
	 * 連結する住所文字列に区切り文字（全角スペース）の設定を制御する。
	 * @param path1〜7 パス文字列
	 * @return 連結したパス文字列
	 */
	private String rnktAd(Object path1, Object path2,Object path3,Object path4,Object path5,Object path6,Object path7)
	{
		String Ad = null; 
		if (path1 != null) {
			Ad = path1.toString() + "　";
		}
		if (path2 != null)
		{
			Ad = Ad + path2.toString() + "　";
		}
		if (path3 != null)
		{
			Ad = Ad + path3.toString() + "　";
		}
		if (path4 != null)
		{
			Ad = Ad + path4.toString() + "　";
		}
		if (path5 != null)
		{
			Ad = Ad + path5.toString() + "　";
		}
		if (path6 != null)
		{
			Ad = Ad + path6.toString() + "　";
		}
		if (path7 != null)
		{
			Ad = Ad + path7.toString();
		}
		return JBSbatStringUtil.Rtrim(Ad);
	}
// v8.00.00 DEL START
//	/**
//	 * 出力ファイルにトレーラーレコードを付与します。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.トレーラーレコード付与処理。<br>
//	 * </pre>
//	 * <p>
//	 * @throws Exception 
//	 */
//	private void writeTrailer() throws Exception
//	{
//		// エンドフラグを設定する
//		String endFlg = "E";
//		// データレコード数を設定する
//		long DateCnt = lCnt;
//		// 出力年月日を設定する
//		String opeYmd = super.opeDate;
//
//		JBSbatOutputFileUtil out_obj = super.commonItem.getOutPutFile();
//		// ファイル出力
//// v5.00.03 start
////		out_obj.write(SCOPE + endFlg + SCOPE + "," + DateCnt + SCOPE + "," + SCOPE + opeYmd + SCOPE);
//		out_obj.write(SCOPE + endFlg + SCOPE + "," + SCOPE + DateCnt + SCOPE + "," + SCOPE + opeYmd + SCOPE);
//// v5.00.03 end
//		// ファイルクローズ
//		out_obj.close();
//	}
// v8.00.00 DEL END
	
// v27.00.00 ADD START
	/**
	 * eo電気の送付先が利用場所住所用のデータを作成する
	 * 
	 * @param 商品券発送指図情報作成ファイルの情報
	 * @param 申込日
	 * @return 
	 */
	private void setEcleOutputFile(JBSbatCommonDBInterface rcvMapElecinfo ,String mskmymd) throws Exception {
		
		// eo電気用ファイルデータ格納用マップ
		JBSbatServiceInterfaceMap outDataMap = new JBSbatServiceInterfaceMap();
		
		// 項目を設定
		outDataMap.setString(JBSbatKKIFM724.SVC_KEI_NO, rcvMapElecinfo.getValue(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO)); 		// お客様ID(データ抽出項目設定対象契約・サービス契約番号)
		outDataMap.setString(JBSbatKKIFM724.MSKM_YMD, mskmymd); 																// 申込日(申込明細・申込年月日)
		outDataMap.setString(JBSbatKKIFM724.KIT_YMD,  rcvMapElecinfo.getValue(JBSbatKK_T_SVC_KEI.SVC_STA_YMD));					// 開通日(サービス契約・サービス開始年月日)
		
		// 紹介コード有無により,出力する値を再設定する
		setIsIntrCdUmu(outDataMap);
		
		// 紹介コード有無により,出力する値を再設定する
		setIsNotIntrCdUmu(outDataMap, rcvMapElecinfo.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO));
		
		outDataMap.setString(JBSbatKKIFM724.CAMPAIGN_CD, DspDchskmCd); 															// キャンペーンコード(データ抽出項目・表示用データ抽出項目コード)
		outDataMap.setString(JBSbatKKIFM724.POST_CD, ""); 																		// 郵便番号（空白を設定）
		outDataMap.setString(JBSbatKKIFM724.SOHUS_NAME, rcvMapElecinfo.getValue(JBSbatCK_T_CUST.CUST_NM)); 						// 送付先名（お客様名）
		outDataMap.setString(JBSbatKKIFM724.SOHUS_AD, "");																		// 商品券発送先住所（空白を設定）
		outDataMap.setString(JBSbatKKIFM724.SOHUS_TEL,rcvMapElecinfo.getValue(JBSbatCK_T_CUST.KEISHA_TELNO));					// 電話番号（契約者電話番号）
		outDataMap.setString(JBSbatKKIFM724.SHNK_KNGK, ShohinkAmnt); 															// 商品券金額（データ抽出項目・商品券金額）
		outDataMap.setString(JBSbatKKIFM724.AISTJ_SKBT_CD, AistjPrintMongonSkbtCd); 											// あいさつ状種別（データ抽出項目・発送文言判定値）
		outDataMap.setString(JBSbatKKIFM724.APLY_CNT, this.AplyCnt); 															// データ抽出項目・適用数
		outDataMap.setString(JBSbatKKIFM724.CHSHT_CNT, this.ChshtCnt);															// データ抽出項目設定・抽出回数
		outDataMap.setString(JBSbatKKIFM724.DCHSKMST_NO, this.DchskmstNo); 														// データ抽出項目設定・データ抽出項目設定番号
		outDataMap.setString(JBSbatKKIFM724.GENE_ADD_DTM, this.GeneAddDtm);														// データ抽出項目設定・世代登録年月日時分秒
		outDataMap.setString(JBSbatKKIFM724.UPD_DTM,this.UpdDtm ); 																// データ抽出項目設定・更新年月日時分秒
		
		// 出力判定
		if (!isOutPut(outDataMap, rcvMapElecinfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT))) {
			return;
		}
		
		// 出力ファイルを追加
		this.outInfDataList.add(outDataMap);
	}
	
	/**
	 * eo電気利用場所発送用商品券情報ファイルを出力する
	 * 
	 * @param ファイルの情報 
	 * @param ファイル定義情報 
	 * @param 出力ファイル名
	 * @throws Exception 
	 */
	private void createFile(JBSbatOutputFileUtil outputFileUtil, JBSbatDefFileUtil dataFileDef, String elecFileName) throws Exception {
		
		Iterator<JBSbatServiceInterfaceMap> it = this.outInfDataList.iterator();
		
		// データ数分繰り返し
		while(it.hasNext())
		{
			// データを取得
			JBSbatServiceInterfaceMap data = it.next();
			// ファイルに書き込み
			outputFileUtil.print(data, dataFileDef);
		}
			
		// ファイルのクローズ
		if (outputFileUtil != null)
		{
			outputFileUtil.close();
		}
	}
// v27.00.00 ADD END

}
