/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKGuideMskmJskAdd
*	ソースファイル名	：JBSbatKKGuideMskmJskAdd.java
*	作成者				：富士通　
*	作成日				：2012年07月19日
*＜機能概要＞
*　有料番組ガイド誌申込者配布リスト作成、更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/07/18  FJ)中作		新規作成
*	v4.01.00	2012/10/31  FJ)中作		【IT1-2012-0001781】障害対応
*	v4.02.00	2013/01/29  FJ)中作		【ST1-2013-0000253】障害対応
*	v4.03.00	2013/03/01  FJ)中作		【IT1-2013-0000306】障害対応
*	v4.04.00	2013/04/22	FJ)石原		【IT1-2013-0001011】障害対応
*	v5.00.00	2013/02/06	FJ)石原		【ANK-1371-00-00】ガイド送付リストの編集対応
*	v5.00.01	2013/03/25	FJ)中作		【IT1-2013-0000638】障害対応
*	v5.00.02	2013/04/02	FJ)松浦		【ST4-2013-0000411】性能改善
*	v5.00.03	2013/04/09	FJ)松浦		【ST4-2013-0000411】性能改善
*	v5.00.04	2013/07/23	FJ)中作		【IT1-2013-0001439】障害対応
*	v5.00.05	2013/08/07	FJ)団		【OM-2013-0000020】障害対応
*	v8.00.00	2014/04/15	FJ)磯俣		【OM-2014-0001215】障害対応
*	v10.00.00	2014/11/11	FJ)藤田		【OM-2014-0003561】住変キャンセル後にTVガイド誌が正しい住所に届かない
*	v11.00.00	2014/12/24	FJ)松本		【OM-2014-0003722】同一契約者が複数件リストに抽出された
*	v15.00.00	2015/08/30	FJ)大山		【OM-2015-0002056】性能改善対応
*	v15.00.01	2015/09/07	FJ)大山		【OM-2015-0002196】性能改善対応
*	v49.00.00	2020/05/30  FJ)Eric		ANK-3807-00-00
*********************************************************************/
package eo.business.service;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCCbatDenshiFileUtil;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.common.JKKBatStringUtil;
import eo.business.util.file.JBSbatKKIFE052;
import eo.business.util.file.JBSbatKKIFE053;
import eo.business.util.file.JBSbatKKIFE206;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_T_GUDMG_SHREQ_JSK;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_OPSVKEI_TV;
import eo.business.util.table.JBSbatKK_T_OP_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_EOH_TV;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JPCDateUtil;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.log.JBSbatLogUtil;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKGuideMskmJskAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(オプションサービス契約＜ＴＶ＞)*/
	private static final String D_TBL_NAME_KK_T_OPSVKEI_TV = "KK_T_OPSVKEI_TV";

	/** テーブル(ガイド誌送付依頼実績)*/
	private static final String D_TBL_NAME_KK_T_GUDMG_SHREQ_JSK = "KK_T_GUDMG_SHREQ_JSK";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(回線対象サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KAISEN_TG_SVKEI = "KK_T_KAISEN_TG_SVKEI";
	
	//ANK-3807-00-00 ADD START
	/** テーブル(ダウンロードファイル管理) */
	private static final String TBL_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";
	
	/** SQL定義キー(ダウンロードファイル管理　INSERT_002) */
	private static final String ZM_T_DL_FILE_KANRI_KK_INSERT_002 = "KK_INSERT_002";
	
	/** ファイル名３*/
	private static final String FILENAME1 = "有料番組ガイド申込者配布分リスト_%s.csv";
	
	private static final String FILENAME2 = "有料番組ガイド申込者配布分リスト（差分）_%s.csv";
	
	private static final String FILENAME3 = "有料番組ガイド申込者配布分リスト（%1$s回差分）_%2$s.csv";
	
	//ANK-3807-00-00 ADD END
	
	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_T_OPSVKEI_TV_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_OPSVKEI_TV_KK_SELECT_003 = "KK_SELECT_003";

	// v15.00.00 2015/08/30 Add Start
	/** SQL定義キー(KK_SELECT_009)*/
	private static final String KK_T_OPSVKEI_TV_KK_SELECT_009 = "KK_SELECT_009";

	/** SQL定義キー(KK_SELECT_010)*/
	private static final String KK_T_OPSVKEI_TV_KK_SELECT_010 = "KK_SELECT_010";
	// v15.00.00 2015/08/30 Add End

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_GUDMG_SHREQ_JSK_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_020)*/
	private static final String CK_T_CUST_KK_SELECT_020 = "KK_SELECT_020";
	
	/** SQL定義キー(KK_SELECT_028)*/
	private static final String KK_T_KAISEN_TG_SVKEI_KK_SELECT_028 = "KK_SELECT_028";

	/** テーブルアクセスクラス(オプションサービス契約＜ＴＶ＞)*/
	private JBSbatSQLAccess db_KK_T_OPSVKEI_TV = null;

	// v15.00.00 2015/08/30 Add Start
	/** テーブルアクセスクラス(オプションサービス契約＜ＴＶ＞)*/
	private JBSbatSQLAccess db_KK_T_OPSVKEI_TV2 = null;

	/** テーブルアクセスクラス(オプションサービス契約＜ＴＶ＞)*/
	private JBSbatSQLAccess db_KK_T_OPSVKEI_TV3 = null;
	// v15.00.00 2015/08/30 Add End

	/** テーブルアクセスクラス(ガイド誌送付依頼実績)*/
	private JBSbatSQLAccess db_KK_T_GUDMG_SHREQ_JSK = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(回線対象サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KAISEN_TG_SVKEI = null;
	
	//ANK-3807-00-00 ADD START
	/** DBアクセスクラス(ダウンロードファイル管理) */
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;
	//ANK-3807-00-00 ADD END
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	//ANK-3807-00-00 ADD START
	/** ファイルコード */
	private static final String FILE_CD = "0000";
	
	//ANK-3807-00-00 ADD END

	/** リスト出力（敬称）*/
	private static final String LIST_KEISHO = "様";
	
	/** ガイド誌種別（コード種別）*/
	private static final String CD_SBT_GUIDESHI = "CD01180";
	
	/** 外部送信ファイルID KKIFE052*/
	private static final String FILE_ID_052 = "KKIFE052";
	
	/** 外部送信ファイルID KKIFE053*/
	private static final String FILE_ID_053 = "KKIFE053";
	
	/** 外部送信ファイルID KKIFE206*/
	private static final String FILE_ID_206 = "KKIFE206";
	
	/** 業務パラメタキー(KK_EOHTV_GD_WAT_CKI)*/
	private static final String KK_EOHTV_GD_WAT_CKI = "KK_EOHTV_GD_WAT_CKI";
	
	/** 業務パラメタキー(KK_EOHTV_GD_FLYER_NG)*/
	private static final String KK_EOHTV_GD_FLYER_NG = "KK_EOHTV_GD_FLYER_NG";
	
	/** ガイド誌視聴地域 */
	private String[] eohTvGdWatCkiLst = null;
	
	/** ガイド誌チラシＮＧ */
	private String[] eohTvGdFlyerNgLst = null;
	
	/** 処理対象退避リスト */
	private ArrayList<JBSbatCommonDBInterface> dbList = null;
	
	/** オプション解約用マップ */
	private HashMap<String, String> opDslMap = null;
	
	/** 出力フォルダパス(外部)*/
	private String outFilePath = "";
	
	/** 出力共通電文を生成する。*/
	private JBSbatOutputItem outputBean = new JBSbatOutputItem();
	
	/** 該当データカウント*/
	private int count = 0;
	
	/**
	 *  ガイド誌送付依頼実績番号
	 */
	private String gudmgShreqJskNo = "";
	
	/** ガイド誌送付依頼実績番号（最大） */
	private int maxGudmgShreqJskNo = 0;
	
	/** ガイド誌送付依頼実績_契約者(1) */
	private HashSet<String> gudmgJskKeiSt = null;
	
	/** ガイド誌送付依頼実績_解約者(2) */
	private HashSet<String> gudmgJskKaiSt = null;
	
	/** ガイド誌顧客状態識別コード_契約者 */
	private static final String KOKYAKU_STAT_KEI = "1";
	
	/** ガイド誌顧客状態識別コード_解約者 */
	private static final String KOKYAKU_STAT_KAI = "2";
	
	/** 終了年月日 */
	private static final String LAST_YEAR = "20991231";
	
	/** 異動予約詳細コード（オプション開始） */
	private static final String IDO_RSV_DTL_CD_014 = "014";
	
	/** 異動予約詳細コード（オプション解約） */
	private static final String IDO_RSV_DTL_CD_016 = "016";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_OPSVKEI_TV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OPSVKEI_TV);
		
		// v15.00.00 2015/08/30 Add Start
		db_KK_T_OPSVKEI_TV2 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OPSVKEI_TV);
		db_KK_T_OPSVKEI_TV3 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OPSVKEI_TV);
		// v15.00.00 2015/08/30 Add End
		
		db_KK_T_GUDMG_SHREQ_JSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_GUDMG_SHREQ_JSK);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_KAISEN_TG_SVKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAISEN_TG_SVKEI);
		
		//ANK 3807-00-00 ADD START
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, TBL_ZM_T_DL_FILE_KANRI);
		//ANK 3807-00-00 ADD END
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute_START");
		
		// FREE項目取得
		String[] freeItem = super.commonItem.getFreeItem().split(";", -1);
		
		// 出力フォルダパス(中間ファイル)
		String outFilePathMidDir = freeItem[0];
		
		// 出力フォルダパス(外部)
		outFilePath = freeItem[1];
		
		super.logPrint.printDebugLog("出力フォルダパス(中間ファイル)---->" + outFilePathMidDir);
		
		super.logPrint.printDebugLog("出力フォルダパス(外部)---->" + outFilePath);
		
		// 中間ファイル読み込み
		ArrayList<String> midFileList = readFile(outFilePathMidDir);
		
		// １レコードを取得
		String[] midFileData = midFileList.get(0).split(",");
		
		 // データが存在する場合。
		if (0 != midFileData.length)
		{
			
			// ガイド誌送付依頼実績セットの設定
			setGuideJskSt(freeItem[2]);
			
			super.logPrint.printDebugLog("ガイド誌送付依頼実績_契約者 ----> " + gudmgJskKeiSt.size() + "件");
			super.logPrint.printDebugLog("ガイド誌送付依頼実績_解約者 ----> " + gudmgJskKaiSt.size() + "件");
			
			// 業務パラメータよりガイド誌視聴地域を取得
			eohTvGdWatCkiLst = JBSbatStringUtil.Rtrim(JKKBatCommon.getWorkParamSetteValue(commonItem, KK_EOHTV_GD_WAT_CKI)).split(",");
			
			// 業務パラメータよりガイド誌チラシNGを取得
			eohTvGdFlyerNgLst = JBSbatStringUtil.Rtrim(JKKBatCommon.getWorkParamSetteValue(commonItem, KK_EOHTV_GD_FLYER_NG)).split(",");
			
			// ガイド申込者データ抽出、実績登録
			guideMskmshaDataChshtJskAdd(midFileData);
		}
		
		super.logPrint.printDebugLog("execute_END");
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_OPSVKEI_TV.close();
		// v15.00.00 2015/08/30 Add Start
		db_KK_T_OPSVKEI_TV2.close();
		db_KK_T_OPSVKEI_TV3.close();
		// v15.00.00 2015/08/30 Add End
		db_KK_T_GUDMG_SHREQ_JSK.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_CK_T_CUST.close();
		db_KK_T_KAISEN_TG_SVKEI.close();
		
		//ANK-3807-00-00 ADD START
		db_ZM_T_DL_FILE_KANRI.close();
		//ANK-3807-00-00 ADD END
		
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * ガイド誌送付依頼実績_契約者、およびガイド誌送付依頼実績_解約者を設定する。
	 * @param inFilePath ファイルパス
	 * @throws Exception 業務サービス内で発生した例外全般。 
	 */
	private void setGuideJskSt(String inFilePath)  throws Exception
	{
		gudmgJskKeiSt = new HashSet<String>();
		gudmgJskKaiSt = new HashSet<String>();
		
		// 入力ファイルパス
		JBSbatInputFileUtil inFile = new JBSbatInputFileUtil(inFilePath);
		
		// 文字コード
		inFile.setEncode(JKKBatConst.SJIS);
		
		inFile.createReader();
		
		try
		{
			String rnkCd = "";
			String statCd = "";
			String[] lines = null;
			while(true)
			{
				String line = inFile.readLine();
				if(null == line)
				{
					inFile.close();
					break;
				}
				lines = line.split(",");
				rnkCd = JBSbatStringUtil.trim(lines[0].substring(1, lines[0].length()-1));
				statCd = JBSbatStringUtil.trim(lines[1].substring(1, lines[1].length()-1));
				if (!"".equals(rnkCd))
				{
					if (KOKYAKU_STAT_KEI.equals(statCd))
					{
						// 契約者追加
						gudmgJskKeiSt.add(rnkCd);
					}
					else if (KOKYAKU_STAT_KAI.equals(statCd))
					{
						// 解約者追加
						gudmgJskKaiSt.add(rnkCd);
					}
				}
			}
			
		}
		catch (IOException e)
		{
			throw new JBSbatBusinessException("EKKB0020CE", new String[]{inFilePath});
		}
		finally
		{
			inFile.close();
		}
		
	}

	/**
	 * 登録情報を基にガイド誌送付依頼実績_契約者、およびガイド誌送付依頼実績_解約者を設定する。
	 * @param setParam 登録内容
	 * @throws Exception 業務サービス内で発生した例外全般。 
	 */
	private void setGuideJskSt(Object[] setParam) throws Exception
	{
		if (!"".equals((String) setParam[17]))
		{
			if (KOKYAKU_STAT_KEI.equals(setParam[16]))
			{
				// 契約者
				if (!gudmgJskKeiSt.contains(setParam[17]))
				{
					gudmgJskKeiSt.add((String) setParam[17]);
				}
			}
			else if (KOKYAKU_STAT_KAI.equals(setParam[16]))
			{
				// 解約者
				if (!gudmgJskKaiSt.contains(setParam[17]))
				{
					gudmgJskKaiSt.add((String) setParam[17]);
				}
			}
		}
	}

	/**
	 * 有料番組ガイド誌申込者配布リスト作成と
	 * ガイド誌送付依頼実績への登録を行う。
	 * @throws Exception 業務サービス内で発生した例外全般。 
	 */
	private void guideMskmshaDataChshtJskAdd(String[] midFileData) throws Exception
	{
		// 前回抽出年月日
		String znkiChshtYmd = midFileData[0];
		
		// ガイド誌送付対象抽出回数
		String gudmgSohuTgCstCnt = midFileData[1];
		
		// 送信ファイル名
		String sendFileName = midFileData[2];
		
		// データファイル
		String sendDataFile = sendFileName + ".csv";
		
		// 件数ファイル
		String sendCntFile = sendFileName + ".cnt";
		
		// フラグファイル
		String sendFlgFile = sendFileName + ".flg";
		
		// ガイド誌送付対象年月
		String guidemgSohuTrgtYm = midFileData[3];
		
		super.logPrint.printDebugLog("前回抽出年月日---->" + znkiChshtYmd);
		super.logPrint.printDebugLog("ガイド誌送付対象抽出回数---->" + gudmgSohuTgCstCnt);
		super.logPrint.printDebugLog("データファイル名---->" + sendDataFile);
		super.logPrint.printDebugLog("件数ファイル名---->" + sendCntFile);
		super.logPrint.printDebugLog("フラグファイル名---->" + sendFlgFile);
		super.logPrint.printDebugLog("ガイド誌送付対象年月---->" + guidemgSohuTrgtYm);
		
		// 有料番組ガイド誌申込者配布リストヘッダ部作成
		editOutPutFileHeader(gudmgSohuTgCstCnt);
		
		// ガイド誌送付対象抽出回数<=2
		if(0 >= gudmgSohuTgCstCnt.compareTo("2"))
		{
			// 仮設置状態のガイド申込者データ抽出
			searchKariStcStat(znkiChshtYmd, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
			
			// TV既加入者のガイド申込者データ抽出
			searchTVKnysha(znkiChshtYmd, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
			
		}
		// ガイド誌送付対象抽出回数3回目以降
		else
		{
			// TV既加入者のガイド申込者データ抽出
			searchTVKnysha(znkiChshtYmd, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
		}
		
		// データ件数が0件の場合、設定したヘッダ行を削除します。
		if(0 == count)
		{
			outputBean.clearOutMapList();
		}
		
		// 有料番組ガイド誌申込者配布リスト出力
		//ANK-3807-00-00 MOD START
//		outPutFile(gudmgSohuTgCstCnt, sendDataFile, sendCntFile, sendFlgFile);
		outPutFile(gudmgSohuTgCstCnt, sendDataFile, sendCntFile, sendFlgFile, guidemgSohuTrgtYm);
		//ANK-3807-00-00 MOD END
		
	}
	
	/**
	 * TV既加入者のガイド申込者データを抽出し、
	 * 有料番組ガイド誌申込者配布リスト作成とガイド誌送付依頼実績への登録を行う。
	 * @param znkiChshtYmd 前回抽出年月日
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param sendFileName 送信ファイル名
	 * @param guidemgSohuTrgtYm ガイド誌送付対象年月
	 * @throws Exception 業務サービス内で発生した例外全般。 
	 */
	private void searchTVKnysha(String znkiChshtYmd, String gudmgSohuTgCstCnt, String guidemgSohuTrgtYm) throws Exception
	{
		// 抽出対象年月日月末
		String endDay = JBSbatDateUtil.getEndOfMonth(guidemgSohuTrgtYm);
		String monthEndDay = guidemgSohuTrgtYm + endDay;
		
		// 抽出対象年月日翌月の初日
		String afterMonth = JBSbatDateUtil.adjustMonth(guidemgSohuTrgtYm + "01", 1);
		
		super.logPrint.printDebugLog("抽出対象年月日月末----------> " + monthEndDay);
		super.logPrint.printDebugLog("抽出対象年月日翌月の初日----> " + afterMonth);
		super.logPrint.printDebugLog("運用日----------------------> " + opeDate);
		
/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
		dbList = new ArrayList<JBSbatCommonDBInterface>();
		opDslMap = new HashMap<String, String>();
		JBSbatCommonDBInterface dbInfoMap = null;
/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
		
		// TV既加入者のガイド申込者データを抽出
		executeKK_T_OPSVKEI_TV_KK_SELECT_003(new Object[]{opeDate, opeDate});
		
		JBSbatCommonDBInterface dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
		
		// ガイド誌送付依頼実績登録時、ガイド誌送付依頼実績番号
		maxGudmgShreqJskNo = getMaxGudmgShreqJskNo();
		
		while(null != dbInfo)
		{
			super.logPrint.printDebugLog("サービス契約番号----->" + JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO)));
			
			// オプションサービス契約.サービス開始年月日
			String svcStaymd = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STAYMD));
			
			// オプションサービス契約.サービス終了年月日
			String svcEndymd = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_OP_SVC_KEI.SVC_ENDYMD));
			
			// v15.00.00 2015/08/30 Del Start
			// オプション解約 予約適用年月日
//			String opDslRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_DSL_RSV_APLY_YMD"));
			// v15.00.00 2015/08/30 Del End
			
			// 開始年月日
			String staYmd = "";
			
			// 終了年月日
			String endYmd = "";
			
			
			// v15.00.00 2015/08/30 Add Start
			// オプションの予約データを取得する。
			String[] param2 = new String[1];
			param2[0] = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_NO));

			// v15.00.01 2015/09/07 ADD START
			super.logPrint.printDebugLog("オプションサービス契約番号----->" + param2[0]);
			// v15.00.01 2015/09/07 ADD END
			
			executeKK_T_OPSVKEI_TV_KK_SELECT_009(param2);
			JBSbatCommonDBInterface dbInfo2 = db_KK_T_OPSVKEI_TV2.selectNext();
			
			// オプション開始の予約適用年月日
			String opStaRsvAplyYmd = "";
			// オプション解約 予約適用年月日
			String opDslRsvAplyYmd = "";
			// オプション開始 更新運用年月日
			String opStaUpdUnyoYmd = "";
			// オプション解約 更新運用年月日
			String opDslUpdUnyoYmd = "";
			// 異動予約詳細コード(開始)
			String staIdoRsvDtlCd = "";
			// オプション開始の申込明細番号
			String staMskmDtlNo = "";
			// 異動予約詳細コード(解約)
			String dslIdoRsvDtlCd = "";
			// サービス課金終了年月日(解約)
			String dslRsvChrgYmd = "";
			String mskmDtlNo = "";
			if(null != dbInfo2) {
				// オプション解約 予約適用年月日
				opDslRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_DSL_RSV_APLY_YMD"));
				opStaRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_STA_RSV_APLY_YMD"));
				// v15.00.01 2015/09/07 MOD START
				// オプション開始 更新運用年月日
//				opStaUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_STA_UPD_UNYO_YMD"));
				// オプション解約 更新運用年月日
//				opDslUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_DSL_UPD_UNYO_YMD"));
				// オプション開始 更新運用年月日
				opStaUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_STA_UPD_UNYO_YMD"));
				// オプション解約 更新運用年月日
				opDslUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_DSL_UPD_UNYO_YMD"));
				// v15.00.01 2015/09/07 MOD END

				// 異動予約詳細コード(開始)
				staIdoRsvDtlCd = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_STA_IDO_RSV_DTL_CD"));
				// オプション開始の申込明細番号
				staMskmDtlNo = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_STA_MSKM_DTL_NO"));
				// 異動予約詳細コード(解約)
				dslIdoRsvDtlCd = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_DSL_IDO_RSV_DTL_CD"));
				// サービス課金終了年月日(解約)
				dslRsvChrgYmd = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_DSL_SVC_CHRG_ENDYMD"));
				mskmDtlNo = JBSbatStringUtil.Rtrim(dbInfo2.getString("OP_DSL_MSKM_DTL_NO"));
			}
			
			// 元のＤＢＩＮＦＯに分割したデータを格納する。
			dbInfo.setValue("OP_DSL_RSV_APLY_YMD", opDslRsvAplyYmd);
			dbInfo.setValue("OP_STA_RSV_APLY_YMD", opStaRsvAplyYmd);
			dbInfo.setValue("OP_STA_UPD_UNYO_YMD", opStaUpdUnyoYmd);
			dbInfo.setValue("OP_DSL_UPD_UNYO_YMD", opDslUpdUnyoYmd);
			dbInfo.setValue("OP_STA_IDO_RSV_DTL_CD", staIdoRsvDtlCd);
			dbInfo.setValue("OP_STA_MSKM_DTL_NO", staMskmDtlNo);
			dbInfo.setValue("OP_DSL_IDO_RSV_DTL_CD", dslIdoRsvDtlCd);
			dbInfo.setValue("OP_DSL_SVC_CHRG_ENDYMD", dslRsvChrgYmd);
			dbInfo.setValue("OP_DSL_MSKM_DTL_NO", mskmDtlNo);
			
			// ログ出力。
			super.logPrint.printDebugLog("OP_DSL_RSV_APLY_YMD：" +  opDslRsvAplyYmd);
			super.logPrint.printDebugLog("OP_STA_RSV_APLY_YMD：" + opStaRsvAplyYmd);
			super.logPrint.printDebugLog("OP_STA_UPD_UNYO_YMD：" + opStaUpdUnyoYmd);
			super.logPrint.printDebugLog("OP_DSL_UPD_UNYO_YMD：" + opDslUpdUnyoYmd);
			super.logPrint.printDebugLog("OP_STA_IDO_RSV_DTL_CD："+ staIdoRsvDtlCd);
			super.logPrint.printDebugLog("OP_STA_MSKM_DTL_NO："+ staMskmDtlNo);
			super.logPrint.printDebugLog("OP_DSL_IDO_RSV_DTL_CD："+ dslIdoRsvDtlCd);
			super.logPrint.printDebugLog("OP_DSL_SVC_CHRG_ENDYMD："+ dslRsvChrgYmd);
			super.logPrint.printDebugLog("OP_DSL_MSKM_DTL_NO：" + mskmDtlNo);
			
			// v15.00.00 2015/08/30 Add End

			//---------オプションサービス契約絞込み----------------
			// サービス開始年月日!=""
			if(!"".equals(svcStaymd))
			{
				staYmd = svcStaymd;
			}
			else
			{
			
				// v15.00.00 2015/08/30 Del Start
				// オプション開始の予約適用年月日
//				opStaRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_STA_RSV_APLY_YMD"));
				// v15.00.00 2015/08/30 Del End
				
				if("".equals(opStaRsvAplyYmd))
				{
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
					continue;
				}
				else
				{
					// オプション開始の予約適用年月日
					staYmd = opStaRsvAplyYmd;
				}
			}
			
			// オプション解約 予約適用年月日 !=""
			if(!"".equals(opDslRsvAplyYmd))
			{
				endYmd = opDslRsvAplyYmd;
			}
			else if(!"".equals(svcEndymd))
			{
				endYmd = svcEndymd;
			}
			else
			{
				endYmd = "20991231";
			}
			
			super.logPrint.printDebugLog("開始日" + staYmd);
			super.logPrint.printDebugLog("終了日" + endYmd);
			
			super.logPrint.printDebugLog("サービス開始--->" + staYmd.compareTo(afterMonth));
			super.logPrint.printDebugLog("サービス終了--->" + endYmd.compareTo(monthEndDay));
			
			// サービス開始年月日=<抽出対象年月日翌月の初日かつ、サービス終了年月日>=抽出対象年月日月末の場合
			if(0 >= staYmd.compareTo(afterMonth) && 0 <= endYmd.compareTo(monthEndDay))
			{
				super.logPrint.printDebugLog("処理対象です");
				
			}
			else
			{
				// 次の検索処理を取得
				dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
				continue;
			}
			
			// v15.00.00 2015/08/30 Add Start
			// サービス契約の異動予約を取得する。
			String[] param3 = new String[1];
			param3[0] = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
			
			executeKK_T_OPSVKEI_TV_KK_SELECT_010(param3);
			JBSbatCommonDBInterface dbInfo3 = db_KK_T_OPSVKEI_TV3.selectNext();
			
			
			// サービス契約 解約 予約適用年月日
			String svcDslRsvAplyYmd = "";
			// サービス契約 休止受付 予約適用年月日
			String svcPauseRsvAplyYmd = "";
			// サービス契約 予約取消 予約適用年月日
			String svcPauseRlsRsvAplyYmd = "";
			
			// サービス契約解約 更新運用年月日
			String svcDslUpdUnyoYmd = "";
			
			// サービス契約休止 更新運用年月日
			String svcPauseUpdUnyoYmd = "";
			
			// サービス契約休止解除 更新運用年月日
			String svcPauseRlsUpdUnyoYmd = "";
			if(dbInfo3 != null) {
				// サービス契約 解約 予約適用年月日
				svcDslRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_DSL_RSV_APLY_YMD"));
				// サービス契約 休止受付 予約適用年月日
				svcPauseRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_PAUSE_RSV_APLY_YMD"));
				// サービス契約 予約取消 予約適用年月日
				svcPauseRlsRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_PAUSE_RLS_RSV_APLY_YMD"));

				// サービス契約解約 更新運用年月日
				svcDslUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_DSL_UPD_UNYO_YMD"));
				
				// サービス契約休止 更新運用年月日
				svcPauseUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_PAUSE_UPD_UNYO_YMD"));
				
				// サービス契約休止解除 更新運用年月日
				svcPauseRlsUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_PAUSE_RLS_UPD_UNYO_YMD"));
				
			}
			dbInfo.setValue("SVC_DSL_RSV_APLY_YMD", svcDslRsvAplyYmd);
			dbInfo.setValue("SVC_PAUSE_RSV_APLY_YMD", svcPauseRsvAplyYmd);
			dbInfo.setValue("SVC_PAUSE_RLS_RSV_APLY_YMD", svcPauseRlsRsvAplyYmd);
			
			dbInfo.setValue("SVC_DSL_UPD_UNYO_YMD", svcDslUpdUnyoYmd);
			dbInfo.setValue("SVC_PAUSE_UPD_UNYO_YMD", svcPauseUpdUnyoYmd);
			dbInfo.setValue("SVC_PAUSE_RLS_UPD_UNYO_YMD", svcPauseRlsUpdUnyoYmd);

			// ログ出力。
			super.logPrint.printDebugLog("SVC_DSL_RSV_APLY_YMD：" + svcDslRsvAplyYmd);
			super.logPrint.printDebugLog("SVC_PAUSE_RSV_APLY_YMD：" + svcPauseRsvAplyYmd);
			super.logPrint.printDebugLog("SVC_PAUSE_RLS_RSV_APLY_YMD：" + svcPauseRlsRsvAplyYmd);
			
			super.logPrint.printDebugLog("SVC_DSL_UPD_UNYO_YMD：" + svcDslUpdUnyoYmd);
			super.logPrint.printDebugLog("SVC_PAUSE_UPD_UNYO_YMD：" + svcPauseUpdUnyoYmd);
			super.logPrint.printDebugLog("SVC_PAUSE_RLS_UPD_UNYO_YMD：" + svcPauseRlsUpdUnyoYmd);
			
			// v15.00.00 2015/08/30 Add End
			//---------サービス契約絞込み----------------
			
			// ""で無い場合
			if(!"".equals(svcDslRsvAplyYmd))
			{
				super.logPrint.printDebugLog("サービス契約 解約 予約適用年月日" + svcDslRsvAplyYmd);
				super.logPrint.printDebugLog("---->" + svcDslRsvAplyYmd.compareTo(monthEndDay));
				
				// サービス契約 解約 予約適用年月日 < 抽出対象年月日月末
				if(0 > svcDslRsvAplyYmd.compareTo(monthEndDay))
				{
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
					continue;
				}
			}
			
			// v15.00.00 2015/08/30 Del Start
			// サービス契約 休止受付 予約適用年月日
//			String svcPauseRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_PAUSE_RSV_APLY_YMD"));
			// v15.00.00 2015/08/30 Del End
			
			// ""で無い場合
			if(!"".equals(svcPauseRsvAplyYmd))
			{
				super.logPrint.printDebugLog("サービス契約 休止受付 予約適用年月日" + svcPauseRsvAplyYmd);
				super.logPrint.printDebugLog("---->" + svcPauseRsvAplyYmd.compareTo(monthEndDay));
				// サービス契約 休止受付 予約適用年月日 < 抽出対象年月日月末
				if(0 > svcPauseRsvAplyYmd.compareTo(monthEndDay))
				{
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
					continue;
				}
			}
			
			// v15.00.00 2015/08/30 Del Start
			// サービス契約 予約取消 予約適用年月日
//			String svcPauseRlsRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfo3.getString("SVC_PAUSE_RLS_RSV_APLY_YMD"));
			// v15.00.00 2015/08/30 Del End
			
			// ""で無い場合
			if(!"".equals(svcPauseRlsRsvAplyYmd))
			{
				super.logPrint.printDebugLog("サービス契約 予約取消 予約適用年月日" + svcPauseRlsRsvAplyYmd);
				super.logPrint.printDebugLog("---->" + svcPauseRlsRsvAplyYmd.compareTo(monthEndDay));
				// サービス契約 予約取消 予約適用年月日 > 抽出対象年月日月末
				if(0 < svcPauseRlsRsvAplyYmd.compareTo(monthEndDay))
				{
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
					continue;
				}
			}
			

			
			// 抽出回数2回目以降
			if(0 >= "2".compareTo(gudmgSohuTgCstCnt))
			{
				// オプションサービス契約.更新運用年月日
				String updUnyoYmdOp = JBSbatStringUtil.Rtrim(dbInfo.getString("UPD_UNYO_YMD_OP"));

				// v15.00.00 2015/08/30 Del Start				
				// オプション開始 更新運用年月日
//				String opStaUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_STA_UPD_UNYO_YMD"));
				
				// オプション解約 更新運用年月日
//				String opDslUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_DSL_UPD_UNYO_YMD"));
				
				// サービス契約解約 更新運用年月日
//				String svcDslUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("SVC_DSL_UPD_UNYO_YMD"));
				
				// サービス契約休止 更新運用年月日
//				String svcPauseUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("SVC_PAUSE_UPD_UNYO_YMD"));
				
				// サービス契約休止解除 更新運用年月日
//				String svcPauseRlsUpdUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("SVC_PAUSE_RLS_UPD_UNYO_YMD"));
				// v15.00.00 2015/08/30 Del End
				
				super.logPrint.printDebugLog("前回抽出年月日-->" + znkiChshtYmd);
				
				// オプションサービス契約.更新運用年月日 >= 前回抽出年月日
				// または、オプション開始.更新運用年月日 >= 前回抽出年月日
				// または、オプション解約.更新運用年月日 >= 前回抽出年月日
				// または、サービス契約解約.更新運用年月日 >= 前回抽出年月日
				// または、サービス契約休止.更新運用年月日 >= 前回抽出年月日
				// または、サービス契約休止解除.更新運用年月日 >= 前回抽出年月日
				if(0 <= updUnyoYmdOp.compareTo(znkiChshtYmd) || 
						0 <= opStaUpdUnyoYmd.compareTo(znkiChshtYmd) || 
							0 <= opDslUpdUnyoYmd.compareTo(znkiChshtYmd) || 
								0 <= svcDslUpdUnyoYmd.compareTo(znkiChshtYmd) || 
									0 <= svcPauseUpdUnyoYmd.compareTo(znkiChshtYmd) || 
										0 <= svcPauseRlsUpdUnyoYmd.compareTo(znkiChshtYmd))
				{
					// TV既加入者のガイド申込データ処理
					editTVKnysha(dbInfo, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
					
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
				
				}
				else
				{
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
					
					continue;
				}
			}
			else
			{
/* ++++++++++ v8.00.00 変更開始 ++++++++++ */
//				// TV既加入者のガイド申込データ処理
//				editTVKnysha(dbInfo, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
				
				// 異動予約詳細コード(解約)
				// v15.00.00 2015/08/30 Del Start
//				String dslIdoRsvDtlCd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_DSL_IDO_RSV_DTL_CD"));
				// v15.00.00 2015/08/30 Del End
				
				// オプション解約の異動予約詳細コードがある場合
				if(IDO_RSV_DTL_CD_016.equals(dslIdoRsvDtlCd))
				{
					// サービス課金終了年月日(解約)
					// v15.00.00 2015/08/30 Del Start
//					String dslRsvChrgYmd = JBSbatStringUtil.Rtrim(dbInfo.getString("OP_DSL_SVC_CHRG_ENDYMD"));
					// v15.00.00 2015/08/30 Del End
					
					// サービス課金終了年月日に抽出対象年月日月末がある場合
					if(monthEndDay.equals(dslRsvChrgYmd))
					{
						// 異動予約の申込明細番号を退避する
						opDslMap.put(JBSbatStringUtil.Rtrim(dbInfo.getString("OP_DSL_MSKM_DTL_NO")), "");
						super.logPrint.printDebugLog("異動予約 オプション解約 申込明細番号--->" + dbInfo.getString("OP_DSL_MSKM_DTL_NO"));
					}
				}
				
				// 全対象データを取得
				dbList.add(dbInfo);
				// 次の検索処理を取得
				dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
				
/* ++++++++++ v8.00.00 変更終了 ++++++++++ */
			}
		}
		
/* ++++++++++ v8.00.00 追加開始 ++++++++++ */
		for (int i = 0; i < dbList.size(); i++)
		{
			dbInfoMap = dbList.get(i);
			
			// 異動予約詳細コード(開始)
			String staIdoRsvDtlCd = JBSbatStringUtil.Rtrim(dbInfoMap.getString("OP_STA_IDO_RSV_DTL_CD"));
			
			// オプション開始の異動予約詳細コードがある場合
			if(IDO_RSV_DTL_CD_014.equals(staIdoRsvDtlCd))
			{
				// オプション開始の予約適用年月日
				String staRsvAplyYmd = JBSbatStringUtil.Rtrim(dbInfoMap.getString("OP_STA_RSV_APLY_YMD"));
				
				// 予約適用年月日が抽出対象年月日翌月の初日の場合
				if(afterMonth.equals(staRsvAplyYmd))
				{
					// オプション開始の申込明細番号
					String staMskmDtlNo = JBSbatStringUtil.Rtrim(dbInfoMap.getString("OP_STA_MSKM_DTL_NO"));
					
					// オプション解約があれば処理しない
					if(opDslMap.containsKey(staMskmDtlNo))
					{
						super.logPrint.printDebugLog("異動予約 オプション解約 サービス契約番号--->" + dbInfoMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO));
						continue;
					}
				}
			}
			
			// TV既加入者のガイド申込データ処理
			editTVKnysha(dbInfoMap, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
			
		}
/* ++++++++++ v8.00.00 追加終了 ++++++++++ */
	}
	
	/**
	 * TV既加入者のガイド申込者データの
	 * 有料番組ガイド誌申込者配布リスト作成とガイド誌送付依頼実績への登録を行う。
	 * @param dbInfo 処理対象
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param guidemgSohuTrgtYm ガイド誌送付対象年月
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void editTVKnysha(JBSbatCommonDBInterface dbInfo,
			String gudmgSohuTgCstCnt, String guidemgSohuTrgtYm) throws Exception 
	{
		// ガイド誌顧客状態識別コード
		String kokykuStat = getKokykuStat(dbInfo);
		
		super.logPrint.printDebugLog("ガイド誌送付対象抽出回数------>" + gudmgSohuTgCstCnt);
		
		super.logPrint.printDebugLog("ガイド誌顧客状態識別コード------>" + kokykuStat);
		
		// ガイド誌送付対象抽出回数 = "1"
		if("1".equals(gudmgSohuTgCstCnt))
		{
			// ガイド誌送付依頼実績登録
			createGudmgShreqJskData(dbInfo, guidemgSohuTrgtYm, gudmgSohuTgCstCnt, kokykuStat);
			
			// 有料番組ガイド申込者配布分リストデータ作成
			editOutPutFile(dbInfo, gudmgSohuTgCstCnt, kokykuStat);
			
			// ガイド誌送付依頼実績番号カウントアップ
			maxGudmgShreqJskNo = maxGudmgShreqJskNo + 1;
			
			// 件数をカウントアップ
			count++;
		}
		// ガイド誌送付対象抽出回数 != "1"
		else
		{
			// ガイド誌送付依頼実績を参照し、抽出済のデータか判断する
			if(!isGudmgShreqJsk(dbInfo, kokykuStat))
			{
				// ガイド誌送付依頼実績登録
				createGudmgShreqJskData(dbInfo, guidemgSohuTrgtYm, gudmgSohuTgCstCnt, kokykuStat);
				
				// 有料番組ガイド申込者配布分リストデータ作成
				editOutPutFile(dbInfo, gudmgSohuTgCstCnt, kokykuStat);
				
				// ガイド誌送付依頼実績番号カウントアップ
				maxGudmgShreqJskNo = maxGudmgShreqJskNo + 1;
				
				// 件数をカウントアップ
				count++;
			}
		}
	}

	/**
	 * 仮設置状態のガイド申込者データを抽出し、
	 * 有料番組ガイド誌申込者配布リスト作成とガイド誌送付依頼実績への登録を行う。
	 * @param znkiChshtYmd 前回抽出年月日
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param guidemgSohuTrgtYm ガイド誌送付対象年月
	 * @throws Exception 業務サービス内で発生した例外全般。 
	 */
	private void searchKariStcStat(String znkiChshtYmd, String gudmgSohuTgCstCnt, String guidemgSohuTrgtYm) throws Exception
	{
		// 仮設置状態のガイド申込者データを抽出
		executeKK_T_OPSVKEI_TV_KK_SELECT_002(new Object[]{opeDate, opeDate, opeDate, opeDate, opeDate});
		
		JBSbatCommonDBInterface dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
		
		// ガイド誌送付依頼実績登録時、ガイド誌送付依頼実績番号
		maxGudmgShreqJskNo = getMaxGudmgShreqJskNo();
		
		super.logPrint.printDebugLog("");
		
		while(null != dbInfo)
		{
			// 抽出回数2回目
			if("2".equals(gudmgSohuTgCstCnt))
			{
				// 機器提供サービス契約.更新運用年月日
				String updUnyoYmd = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.UPD_UNYO_YMD));
				
				// 機器提供サービス契約.更新運用年月日 >= 前回抽出年月日
				if(0 <= updUnyoYmd.compareTo(znkiChshtYmd))
				{
					// 仮設置状態のガイド申込データ処理
					editKariStcStat(dbInfo, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
					
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
					
				}
				else
				{
					// 次の検索処理を取得
					dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
					
					continue;
				}
			}
			else
			{
				// 仮設置状態のガイド申込データ処理
				editKariStcStat(dbInfo, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
				
				// 次の検索処理を取得
				dbInfo = db_KK_T_OPSVKEI_TV.selectNext();
			}
		}
	}
	
	/**
	 * 仮設置状態のガイド申込者データの
	 * 有料番組ガイド誌申込者配布リスト作成とガイド誌送付依頼実績への登録を行う。
	 * @param dbInfo 処理対象
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param guidemgSohuTrgtYm ガイド誌送付対象年月
	 * @throws Exception 業務サービス内で発生した例外全般。 
	 */
	private void editKariStcStat(JBSbatCommonDBInterface dbInfo, String gudmgSohuTgCstCnt, String guidemgSohuTrgtYm) throws Exception
	{
		// ガイド誌送付対象抽出回数 = "1"
		if("1".equals(gudmgSohuTgCstCnt))
		{
			// OM-2014-0003722 ADD START
			// ガイド誌送付依頼実績を参照し、抽出済のデータか判断する
			if(!isGudmgShreqJsk(dbInfo, "1"))
			{
			// OM-2014-0003722 ADD END
				// ガイド誌送付依頼実績登録
				createGudmgShreqJskData(dbInfo, guidemgSohuTrgtYm, gudmgSohuTgCstCnt, KOKYAKU_STAT_KEI);
				
				// 有料番組ガイド申込者配布分リスト出力
				editOutPutFile(dbInfo, gudmgSohuTgCstCnt, KOKYAKU_STAT_KEI);
				
				// ガイド誌送付依頼実績番号カウントアップ
				maxGudmgShreqJskNo = maxGudmgShreqJskNo + 1;
				
				// 件数をカウントアップ
				count++;
			// OM-2014-0003722 ADD START
			}
			// OM-2014-0003722 ADD END
		}
		// ガイド誌送付対象抽出回数 != "1"
		else
		{
			// ガイド誌送付依頼実績を参照し、抽出済のデータか判断する
			if(!isGudmgShreqJsk(dbInfo, "1"))
			{
				// ガイド誌送付依頼実績登録
				createGudmgShreqJskData(dbInfo, guidemgSohuTrgtYm, gudmgSohuTgCstCnt, KOKYAKU_STAT_KEI);
				
				// 有料番組ガイド申込者配布分リスト出力
				editOutPutFile(dbInfo, gudmgSohuTgCstCnt, KOKYAKU_STAT_KEI);
				
				// ガイド誌送付依頼実績番号カウントアップ
				maxGudmgShreqJskNo = maxGudmgShreqJskNo + 1;
				
				// 件数をカウントアップ
				count++;
			}
		}
	}

	/**
	 * ガイド誌送付依頼実績を参照し、抽出済のデータか判断する。
	 * @param info 対象データ
	 * @param kokykuStat ガイド誌顧客状態識別コード
	 * @throws Exception 
	 */
	private boolean isGudmgShreqJsk(JBSbatCommonDBInterface info, String kokykuStat) throws Exception
	{
		// 外部連携契約コード
		String outRnkiKeiCd = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_SVC_KEI_EOH_TV.OUT_RNKI_KEI_CD));
		super.logPrint.printDebugLog("外部連携契約コード---->" + outRnkiKeiCd);
		
		if (KOKYAKU_STAT_KEI.equals(kokykuStat))
		{
			if (gudmgJskKeiSt.contains(outRnkiKeiCd))
			{
				super.logPrint.printDebugLog("ガイド誌送付依頼実績が存在しました。");
				return true;
			}
			super.logPrint.printDebugLog("ガイド誌送付依頼実績が存在しません。");
			return false;
		}
		else
		{
			if (gudmgJskKaiSt.contains(outRnkiKeiCd))
			{
				super.logPrint.printDebugLog("ガイド誌送付依頼実績が存在しました。");
				return true;
			}
			super.logPrint.printDebugLog("ガイド誌送付依頼実績が存在しません。");
			return false;
		}
	}
	
	/**
	 * 有料番組ガイド申込者配布分リストヘッダ部作成を行う。
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @throws Exception 
	 */
	private void editOutPutFileHeader(String gudmgSohuTgCstCnt) throws Exception
	{
		// ヘッダ部の出力
		outputBean.addOutMapList(createHeader(gudmgSohuTgCstCnt));
	}
	
	/**
	 * 有料番組ガイド申込者配布分リスト作成を行う。
	 * @param info 対象データ
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param kokykuStat ガイド誌顧客状態識別コード
	 * @throws Exception 
	 */
	private void editOutPutFile(JBSbatCommonDBInterface info, String gudmgSohuTgCstCnt, String kokykuStat) throws Exception
	{
		// データ部の出力
		outputBean.addOutMapList(createData(info, gudmgSohuTgCstCnt, kokykuStat));
	}
	
	/**
	 * 有料番組ガイド申込者配布分リスト出力を行う。
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param sendDataFile データファイル名
	 * @param sendCntFile  件数ファイル名
	 * @paramsendFlgFile フラグファイル名
	 * @param guidemgSohuTrgtYm
	 * @throws Exception 
	 */
		//ANK-3807-00-00 MOD START
//	private void outPutFile(String gudmgSohuTgCstCnt, String sendDataFile, String sendCntFile, String sendFlgFile) throws Exception
	private void outPutFile(String gudmgSohuTgCstCnt, String sendDataFile, String sendCntFile, String sendFlgFile, String guidemgSohuTrgtYm) throws Exception
		//ANK-3807-00-00 MOD END
	{
		// ファイルID
		String fileId = "";
		
		// ガイド誌送付対象抽出回数
		// 1回目
		if("1".equals(gudmgSohuTgCstCnt))
		{
			fileId = FILE_ID_052;
		}
		// 2回目
		else if("2".equals(gudmgSohuTgCstCnt))
		{
			fileId = FILE_ID_053;
		}
		// 3回目以降
		else
		{
			fileId = FILE_ID_206;
		}
		//ANK-3807-00-00 ADD START		
		this.outFilePath = this.outFilePath.concat("/");
		//ANK-3807-00-00 ADD END
		
		// ファイル(外部IF)を出力します。
		// データファイル
		JKKBatCommon.outFile(super.commonItem, outputBean, fileId, outFilePath, sendDataFile);
		
		//ANK-3807-00-00 DEL START
		// 件数ファイル
//		createFile(outFilePath + sendCntFile, true);
		
		// フラグファイル
//		createFile(outFilePath + sendFlgFile, false);
		
		// FTP送信
		// データファイル
//		execFTP(outFilePath + sendDataFile, fileId);
		
		// 件数ファイル
//		execFTP(outFilePath + sendCntFile, fileId);
		
		// フラグファイル
//		execFTP(outFilePath + sendFlgFile, fileId);
		
		//ANK-3807-00-00 DEL END
		
		//ANK-3807-00-00 ADD START
		
		String fileNm = "";
		
		if (FILE_ID_052.equals(fileId)) {
			fileNm = String.format(FILENAME1, guidemgSohuTrgtYm);
		} else if (FILE_ID_053.equals(fileId)) {
			fileNm = String.format(FILENAME2, guidemgSohuTrgtYm);
		} else if (FILE_ID_206.equals(fileId)) {
			fileNm = String.format(FILENAME3, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
		}		

		
		// 電子ファイル管理・ダウンロードファイル管理登録
		String delYmd = JPCDateUtil.addMonth(opeDate, 1);
		addEfileKanriDlFileKanri(this.count, FILE_CD, this.outFilePath
				.concat(sendDataFile), delYmd, fileNm);
		
		//ANK-3807-00-00 ADD END
		
		
	}

	/**
	 * 指定されたファイルを出力します。<br>
	 * <p>
	 * @param file_name ファイル名(フルパス)
	 * @param isCntFile ファイル作成フラグ(true：件数ファイル　false：フラグファイル)
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void createFile(String file_name, boolean isCntFile) throws IOException, JBSbatBusinessException
	{
		// 一時ファイル読込み処理
		BufferedWriter wr = null;
		try
		{
			// ファイルの生成(SJIS)
			wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file_name), JKKBatConst.SJIS));
			
			if(isCntFile)
			{
				// 件数を""(ダブルクォート)で囲み、改行する。
				wr.write("\"" + count + "\"");
				wr.write("\r\n");
			}
			// ファイル出力
			wr.flush();
		}
		catch(IOException e)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0250CE, new String[]{file_name, e.getMessage()});
		}
		finally
		{
			if (null != wr)
			{
				wr.close();
			}
		}
	}
	
	/**
	 * ESB連携部品を使用してファイル送信を行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.ファイルパスが空の場合、エラーとします。<br>
	 * 
	 * 2.連携部品の引数を作成します。<br>
	 * 
	 * 3.ESB連携部品を実行します。<br>
	 * 
	 * 4.処理結果が正常以外の場合、エラーを発生させます。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param file_path　転送対象ファイルパス。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void execFTP(String file_path, String fileId) throws Exception
	{
		ArrayList<String> file_list = new ArrayList<String>(1);
		HashMap<String, Object> out_map = new HashMap<String, Object>(3);
		
		file_list.add(file_path);
		
		// 転送処理を実行します
		boolean result = JCCBatCommon.putFTP(super.commonItem, file_list, fileId, JCCBatCommon.ISI, out_map);
		
		// エラー判定をします
		if(!result)
		{
			String kbn = out_map.get("ERR_KBN").toString();
			String err_msg = "";
			
			// ファイルエラーの場合
			if ("2".equals(kbn))
			{
				err_msg = (String)((HashMap)((ArrayList)out_map.get("FILE_ERR")).get(0)).get("ERR_MESSAGE");
			}
			else
			{
				err_msg = (String)((HashMap)out_map.get("CONNECT_ERR")).get("ERR_MESSAGE");
			}
			
			throw new JBSbatBusinessException("EKKB0200CE", new String[]{file_path, err_msg});
		}
	}
	
	/**
	 * 
	 *  有料番組ガイド申込者配布Listファイル送信のデータ作成を行います。
	 * @param info 対象データ
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param kokykuStat ガイド誌顧客状態識別コード
	 * @return JBSbatServiceInterfaceMap
	 * @throws Exception 
	 */
	private JBSbatServiceInterfaceMap createData(JBSbatCommonDBInterface info, String gudmgSohuTgCstCnt, String kokykuStat) throws Exception
	{
		// 入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		// ガイド誌送付依頼実績PK検索
		JBSbatCommonDBInterface dbMap = executeKK_T_GUDMG_SHREQ_JSK_PKSELECT(new Object[]{gudmgShreqJskNo});
		
		// ガイド誌種別コードで名称取得し名称の左１文字を取得
		String guideSbt = getGuideSbt(info);
		
		// ガイド誌送付先都道府県名 + ガイド誌送付先市区町村名の格納
		String serchSohusState = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_STATE_NM)) + JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_CITY_NM));
		
		// ガイド誌送付対象抽出回数
		// 1回目
		if("1".equals(gudmgSohuTgCstCnt))
		{
			// 「ガイド誌送付依頼実績」のガイド誌送付先郵便番号
			outmap.setString(JBSbatKKIFE052.PCD, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_PCD)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先都道府県名
			outmap.setString(JBSbatKKIFE052.AD_1, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_STATE_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先市区町村名
			outmap.setString(JBSbatKKIFE052.AD_2, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_CITY_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先大字通称名
			outmap.setString(JBSbatKKIFE052.CHO, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_OAZTSU_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先字丁目名
			outmap.setString(JBSbatKKIFE052.BNCHI, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_AZCHO_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先番地号
			outmap.setString(JBSbatKKIFE052.GOU, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_BNCHIGO)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先住所補記・建物名
			outmap.setString(JBSbatKKIFE052.TOU, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_ADRTTM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先住所補記・部屋番号
			outmap.setString(JBSbatKKIFE052.ADRRM, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_ADRRM)));
			
			// nullを設定
			outmap.setString(JBSbatKKIFE052.SHUGJ_NM, "");
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先名
			// 45桁にカットします
			outmap.setString(JBSbatKKIFE052.KANJI_NM_1, JKKBatStringUtil.getLCutString(JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_NM_1)),45));
			
			// nullを設定
			outmap.setString(JBSbatKKIFE052.KANJI_NM_2, "");
			
			// 固定値（"様"）
			outmap.setString(JBSbatKKIFE052.KISHO, LIST_KEISHO);
			
			// 顧客状態
			outmap.setString(JBSbatKKIFE052.CUST_STAT, kokykuStat);
			
			// 「サービス契約（eo光TV)」の外部連携契約コード
			outmap.setString(JBSbatKKIFE052.CD, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_SVC_KEI_EOH_TV.OUT_RNKI_KEI_CD)));
			
			// 「オプションサービス契約（TV)」のケーブルガイド申込数
			outmap.setString(JBSbatKKIFE052.GUIDE_HASSO_CNT, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.CABLE_GUIDE_MSKM_CNT)));
			
			// ガイド誌種別
			outmap.setString(JBSbatKKIFE052.GUIDE_SBT, guideSbt);
			
			// 「オプションサービス契約（TV)」のガイド誌発送方法コード
			outmap.setString(JBSbatKKIFE052.HASSO_WAY, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_HASSO_WAY_CD)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先電話番号
			outmap.setString(JBSbatKKIFE052.TEL, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_TELNO)));
			
			// 「ガイド誌送付依頼実績」のサービス終了年月日
			String svcEndymd = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.SVC_ENDYMD));
			
			// 「ガイド誌送付依頼実績」のサービス終了年月日に「20991231」が設定されている場合
			if(LAST_YEAR.equals(svcEndymd))
			{
				// サービス終了年月日
				outmap.setString(JBSbatKKIFE052.GUIDE_SOHU_ENDYMD, "00000000");
			}
			else
			{
				// サービス終了年月日を設定
				outmap.setString(JBSbatKKIFE052.GUIDE_SOHU_ENDYMD, svcEndymd);
			}
			
			// 地域フラグの設定
			outmap.setString(JBSbatKKIFE052.CKI_FLG, getCkiFlg(serchSohusState, eohTvGdWatCkiLst));
			
			// チラシ送付フラグの設定
			outmap.setString(JBSbatKKIFE052.CHIRASHI_SOFU_FLG, getChirashiSofuFlg(JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO)), eohTvGdFlyerNgLst));
			
			// 予備フラグ1の設定
			outmap.setString(JBSbatKKIFE052.YOBI_FLG_1, "00");
			
			// 予備フラグ2の設定
			outmap.setString(JBSbatKKIFE052.YOBI_FLG_2, "00");
			
			// 予備フラグ3の設定
			outmap.setString(JBSbatKKIFE052.YOBI_FLG_3, "00");
		
		}
		// 2回目
		else if("2".equals(gudmgSohuTgCstCnt))
		{
			// 「ガイド誌送付依頼実績」のガイド誌送付先郵便番号
			outmap.setString(JBSbatKKIFE053.PCD, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_PCD)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先都道府県名
			outmap.setString(JBSbatKKIFE053.AD_1, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_STATE_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先市区町村名
			outmap.setString(JBSbatKKIFE053.AD_2, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_CITY_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先大字通称名
			outmap.setString(JBSbatKKIFE053.CHO, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_OAZTSU_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先字丁目名
			outmap.setString(JBSbatKKIFE053.BNCHI, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_AZCHO_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先番地号
			outmap.setString(JBSbatKKIFE053.GOU, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_BNCHIGO)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先住所補記・建物名
			outmap.setString(JBSbatKKIFE053.TOU, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_ADRTTM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先住所補記・部屋番号
			outmap.setString(JBSbatKKIFE053.ADRRM, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_ADRRM)));
			
			// nullを設定
			outmap.setString(JBSbatKKIFE053.SHUGJ_NM, "");
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先名
			// 45桁にカットします
			outmap.setString(JBSbatKKIFE053.KANJI_NM_1, JKKBatStringUtil.getLCutString(JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_NM_1)),45));
			
			// nullを設定
			outmap.setString(JBSbatKKIFE053.KANJI_NM_2, "");
			
			// 固定値（"様"）
			outmap.setString(JBSbatKKIFE053.KISHO, LIST_KEISHO);
			
			// 顧客状態
			outmap.setString(JBSbatKKIFE053.CUST_STAT, kokykuStat);
			
			// 「サービス契約（eo光TV)」の外部連携契約コード
			outmap.setString(JBSbatKKIFE053.CD, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_SVC_KEI_EOH_TV.OUT_RNKI_KEI_CD)));
			
			// 「オプションサービス契約（TV)」のケーブルガイド申込数
			outmap.setString(JBSbatKKIFE053.GUIDE_HASSO_CNT, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.CABLE_GUIDE_MSKM_CNT)));
			
			// ガイド誌種別
			outmap.setString(JBSbatKKIFE053.GUIDE_SBT, guideSbt);
			
			// 「オプションサービス契約（TV)」のガイド誌発送方法コード
			outmap.setString(JBSbatKKIFE053.HASSO_WAY, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_HASSO_WAY_CD)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先電話番号
			outmap.setString(JBSbatKKIFE053.TEL, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_TELNO)));
			
			// 「ガイド誌送付依頼実績」のサービス終了年月日
			String svcEndymd = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.SVC_ENDYMD));
			
			// 「ガイド誌送付依頼実績」のサービス終了年月日に「20991231」が設定されている場合
			if(LAST_YEAR.equals(svcEndymd))
			{
				// サービス終了年月日
				outmap.setString(JBSbatKKIFE053.GUIDE_SOHU_ENDYMD, "00000000");
			}
			else
			{
				// サービス終了年月日を設定
				outmap.setString(JBSbatKKIFE053.GUIDE_SOHU_ENDYMD, svcEndymd);
			}
			
			// 地域フラグの設定
			outmap.setString(JBSbatKKIFE053.CKI_FLG, getCkiFlg(serchSohusState, eohTvGdWatCkiLst));
			
			// チラシ送付フラグの設定
			outmap.setString(JBSbatKKIFE053.CHIRASHI_SOFU_FLG, getChirashiSofuFlg(JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO)), eohTvGdFlyerNgLst));
			
			// 予備フラグ1の設定
			outmap.setString(JBSbatKKIFE053.YOBI_FLG_1, "00");
			
			// 予備フラグ2の設定
			outmap.setString(JBSbatKKIFE053.YOBI_FLG_2, "00");
			
			// 予備フラグ3の設定
			outmap.setString(JBSbatKKIFE053.YOBI_FLG_3, "00");
		}
		// 3回目以降
		else
		{
			// 「ガイド誌送付依頼実績」のガイド誌送付先郵便番号
			outmap.setString(JBSbatKKIFE206.PCD, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_PCD)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先都道府県名
			outmap.setString(JBSbatKKIFE206.AD_1, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_STATE_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先市区町村名
			outmap.setString(JBSbatKKIFE206.AD_2, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_CITY_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先大字通称名
			outmap.setString(JBSbatKKIFE206.CHO, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_OAZTSU_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先字丁目名
			outmap.setString(JBSbatKKIFE206.BNCHI, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_AZCHO_NM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先番地号
			outmap.setString(JBSbatKKIFE206.GOU, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_BNCHIGO)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先住所補記・建物名
			outmap.setString(JBSbatKKIFE206.TOU, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_ADRTTM)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先住所補記・部屋番号
			outmap.setString(JBSbatKKIFE206.ADRRM, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_ADRRM)));
			
			// nullを設定
			outmap.setString(JBSbatKKIFE206.SHUGJ_NM, "");
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先名
			// 45桁にカットします
			outmap.setString(JBSbatKKIFE206.KANJI_NM_1, JKKBatStringUtil.getLCutString(JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_NM_1)),45));
			
			// nullを設定
			outmap.setString(JBSbatKKIFE206.KANJI_NM_2, "");
			
			// 固定値（"様"）
			outmap.setString(JBSbatKKIFE206.KISHO, LIST_KEISHO);
			
			// 顧客状態
			outmap.setString(JBSbatKKIFE206.CUST_STAT, kokykuStat);
			
			// 「サービス契約（eo光TV)」の外部連携契約コード
			outmap.setString(JBSbatKKIFE206.CD, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_SVC_KEI_EOH_TV.OUT_RNKI_KEI_CD)));
			
			// 「オプションサービス契約（TV)」のケーブルガイド申込数
			outmap.setString(JBSbatKKIFE206.GUIDE_HASSO_CNT, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.CABLE_GUIDE_MSKM_CNT)));
			
			// ガイド誌種別
			outmap.setString(JBSbatKKIFE206.GUIDE_SBT, guideSbt);
			
			// 「オプションサービス契約（TV)」のガイド誌発送方法コード
			outmap.setString(JBSbatKKIFE206.HASSO_WAY, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_HASSO_WAY_CD)));
			
			// 「ガイド誌送付依頼実績」のガイド誌送付先電話番号
			outmap.setString(JBSbatKKIFE206.TEL, JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUIDEMG_SOHUS_TELNO)));
			
			// 「ガイド誌送付依頼実績」のサービス終了年月日
			String svcEndymd = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.SVC_ENDYMD));
			
			// 「ガイド誌送付依頼実績」のサービス終了年月日に「20991231」が設定されている場合
			if(LAST_YEAR.equals(svcEndymd))
			{
				// サービス終了年月日
				outmap.setString(JBSbatKKIFE206.GUIDE_SOHU_ENDYMD, "00000000");
			}
			else
			{
				// サービス終了年月日を設定
				outmap.setString(JBSbatKKIFE206.GUIDE_SOHU_ENDYMD, svcEndymd);
			}
			
			// 「オプションサービス契約」のサービス契約番号
			outmap.setString(JBSbatKKIFE206.CUST_ID, JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO)));
			
			// 地域フラグの設定
			outmap.setString(JBSbatKKIFE206.CKI_FLG, getCkiFlg(serchSohusState, eohTvGdWatCkiLst));
			
			// チラシ送付フラグの設定
			outmap.setString(JBSbatKKIFE206.CHIRASHI_SOFU_FLG, getChirashiSofuFlg(JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO)), eohTvGdFlyerNgLst));
			
			// 予備フラグ1の設定
			outmap.setString(JBSbatKKIFE206.YOBI_FLG_1, "00");
			
			// 予備フラグ2の設定
			outmap.setString(JBSbatKKIFE206.YOBI_FLG_2, "00");
			
			// 予備フラグ3の設定
			outmap.setString(JBSbatKKIFE206.YOBI_FLG_3, "00");
		}
		
		// 出力フラグ
		outmap.setOutFlg(true);
		
		return outmap;
	}
	
	/**
	 * 
	 *  有料番組ガイド申込者配布Listファイル送信のヘッダ作成を行います。
	 * @return JBSbatServiceInterfaceMap
	 * @throws Exception 
	 */
	private JBSbatServiceInterfaceMap createHeader(String gudmgSohuTgCstCnt) throws Exception
	{
		// 入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		// ガイド誌送付対象抽出回数
		// 1回目
		if("1".equals(gudmgSohuTgCstCnt))
		{
			outmap.setString(JBSbatKKIFE052.PCD, "郵便番号");
			outmap.setString(JBSbatKKIFE052.AD_1, "住所1");
			outmap.setString(JBSbatKKIFE052.AD_2, "住所2");
			outmap.setString(JBSbatKKIFE052.CHO, "丁目");
			outmap.setString(JBSbatKKIFE052.BNCHI, "番地");
			outmap.setString(JBSbatKKIFE052.GOU, "号");
			outmap.setString(JBSbatKKIFE052.TOU, "棟");
			outmap.setString(JBSbatKKIFE052.ADRRM, "室");
			outmap.setString(JBSbatKKIFE052.SHUGJ_NM, "集合住宅名");
			outmap.setString(JBSbatKKIFE052.KANJI_NM_1, "漢字氏名1");
			outmap.setString(JBSbatKKIFE052.KANJI_NM_2, "漢字氏名2");
			outmap.setString(JBSbatKKIFE052.KISHO, "敬称");
			outmap.setString(JBSbatKKIFE052.CUST_STAT, "顧客状態");
			outmap.setString(JBSbatKKIFE052.CD, "コード");
			outmap.setString(JBSbatKKIFE052.GUIDE_HASSO_CNT, "ガイド誌発送部数");
			outmap.setString(JBSbatKKIFE052.GUIDE_SBT, "ガイド誌種別");
			outmap.setString(JBSbatKKIFE052.HASSO_WAY, "発送方法");
			outmap.setString(JBSbatKKIFE052.TEL, "TEL");
			outmap.setString(JBSbatKKIFE052.GUIDE_SOHU_ENDYMD, "ガイド送付終了日");
			outmap.setString(JBSbatKKIFE052.CKI_FLG, "地域フラグ");
			outmap.setString(JBSbatKKIFE052.CHIRASHI_SOFU_FLG, "チラシ送付フラグ");
			outmap.setString(JBSbatKKIFE052.YOBI_FLG_1, "予備フラグ1");
			outmap.setString(JBSbatKKIFE052.YOBI_FLG_2, "予備フラグ2");
			outmap.setString(JBSbatKKIFE052.YOBI_FLG_3, "予備フラグ3");
		}
		// 2回目
		else if("2".equals(gudmgSohuTgCstCnt))
		{
			outmap.setString(JBSbatKKIFE053.PCD, "郵便番号");
			outmap.setString(JBSbatKKIFE053.AD_1, "住所1");
			outmap.setString(JBSbatKKIFE053.AD_2, "住所2");
			outmap.setString(JBSbatKKIFE053.CHO, "丁目");
			outmap.setString(JBSbatKKIFE053.BNCHI, "番地");
			outmap.setString(JBSbatKKIFE053.GOU, "号");
			outmap.setString(JBSbatKKIFE053.TOU, "棟");
			outmap.setString(JBSbatKKIFE053.ADRRM, "室");
			outmap.setString(JBSbatKKIFE053.SHUGJ_NM, "集合住宅名");
			outmap.setString(JBSbatKKIFE053.KANJI_NM_1, "漢字氏名1");
			outmap.setString(JBSbatKKIFE053.KANJI_NM_2, "漢字氏名2");
			outmap.setString(JBSbatKKIFE053.KISHO, "敬称");
			outmap.setString(JBSbatKKIFE053.CUST_STAT, "顧客状態");
			outmap.setString(JBSbatKKIFE053.CD, "コード");
			outmap.setString(JBSbatKKIFE053.GUIDE_HASSO_CNT, "ガイド誌発送部数");
			outmap.setString(JBSbatKKIFE053.GUIDE_SBT, "ガイド誌種別");
			outmap.setString(JBSbatKKIFE053.HASSO_WAY, "発送方法");
			outmap.setString(JBSbatKKIFE053.TEL, "TEL");
			outmap.setString(JBSbatKKIFE053.GUIDE_SOHU_ENDYMD, "ガイド送付終了日");
			outmap.setString(JBSbatKKIFE053.CKI_FLG, "地域フラグ");
			outmap.setString(JBSbatKKIFE053.CHIRASHI_SOFU_FLG, "チラシ送付フラグ");
			outmap.setString(JBSbatKKIFE053.YOBI_FLG_1, "予備フラグ1");
			outmap.setString(JBSbatKKIFE053.YOBI_FLG_2, "予備フラグ2");
			outmap.setString(JBSbatKKIFE053.YOBI_FLG_3, "予備フラグ3");
		}
		// 3回目以降
		else
		{
			outmap.setString(JBSbatKKIFE206.PCD, "郵便番号");
			outmap.setString(JBSbatKKIFE206.AD_1, "住所1");
			outmap.setString(JBSbatKKIFE206.AD_2, "住所2");
			outmap.setString(JBSbatKKIFE206.CHO, "丁目");
			outmap.setString(JBSbatKKIFE206.BNCHI, "番地");
			outmap.setString(JBSbatKKIFE206.GOU, "号");
			outmap.setString(JBSbatKKIFE206.TOU, "棟");
			outmap.setString(JBSbatKKIFE206.ADRRM, "室");
			outmap.setString(JBSbatKKIFE206.SHUGJ_NM, "集合住宅名");
			outmap.setString(JBSbatKKIFE206.KANJI_NM_1, "漢字氏名1");
			outmap.setString(JBSbatKKIFE206.KANJI_NM_2, "漢字氏名2");
			outmap.setString(JBSbatKKIFE206.KISHO, "敬称");
			outmap.setString(JBSbatKKIFE206.CUST_STAT, "顧客状態");
			outmap.setString(JBSbatKKIFE206.CD, "コード");
			outmap.setString(JBSbatKKIFE206.GUIDE_HASSO_CNT, "ガイド誌発送部数");
			outmap.setString(JBSbatKKIFE206.GUIDE_SBT, "ガイド誌種別");
			outmap.setString(JBSbatKKIFE206.HASSO_WAY, "発送方法");
			outmap.setString(JBSbatKKIFE206.TEL, "TEL");
			outmap.setString(JBSbatKKIFE206.GUIDE_SOHU_ENDYMD, "ガイド送付終了日");
			outmap.setString(JBSbatKKIFE206.CUST_ID, "お客さまID");
			outmap.setString(JBSbatKKIFE206.CKI_FLG, "地域フラグ");
			outmap.setString(JBSbatKKIFE206.CHIRASHI_SOFU_FLG, "チラシ送付フラグ");
			outmap.setString(JBSbatKKIFE206.YOBI_FLG_1, "予備フラグ1");
			outmap.setString(JBSbatKKIFE206.YOBI_FLG_2, "予備フラグ2");
			outmap.setString(JBSbatKKIFE206.YOBI_FLG_3, "予備フラグ3");
		}
		
		// 出力フラグ
		outmap.setOutFlg(true);
		
		return outmap;
	}
	
	/**
	 * 
	 * ガイド誌種別名称を取得します。<br>
	 * @param info 対象データ
	 * @return String
	 * @throws Exception 
	 * 
	 */
	private String getGuideSbt(JBSbatCommonDBInterface info) throws Exception
	{
		String result = "";
		
		// ガイド誌種別コード
		String guideSbtCd = JBSbatStringUtil.Rtrim((info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SBT_CD)));
		
		if("".equals(guideSbtCd))
		{
			return result;
		}
		
		JBSbatCommonDBInterface dbInfo = executeZM_M_CD_NM_KANRI_PKSELECT(new Object[]{CD_SBT_GUIDESHI, guideSbtCd});
		
		if(null != dbInfo)
		{
			result = JBSbatStringUtil.Rtrim((dbInfo.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM)));
			
			super.logPrint.printDebugLog("ガイド誌種別名称[" + result + "]");
			result = String.valueOf(result.charAt(0));
		}
		
		return result;
	}
	
	/**
	 * ガイド誌送付依頼実績登録を行う。
	 * @param info 対象データ
	 * @param guidemgSohuTrgtYm ガイド誌送付対象年月
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param kokykuStat ガイド誌顧客識別状態コード
	 * @throws Exception 
	 */
	private void createGudmgShreqJskData(JBSbatCommonDBInterface info, String guidemgSohuTrgtYm, String gudmgSohuTgCstCnt, String kokykuStat) throws Exception
	{
		// ガイド誌送付先郵便番号
		String guidemgSohusPcd      = "";
		
		// ガイド誌送付先都道府県名
		String guidemgSohusStateNm  = "";
		
		// ガイド誌送付先市区町村名
		String guidemgSohusCityNm   = "";
		
		// ガイド誌送付先大字通称名
		String guidemgSohusOaztsuNm = "";
		
		// ガイド誌送付先字丁目名
		String guidemgSohusAzchoNm  = "";
		
		// ガイド誌送付先番地号
		String guidemgSohusBnchigo  = "";
		
		// ガイド誌送付先住所補記・建物名
		String guidemgSohusAdrttm   = "";
		
		// ガイド誌送付先住所補記・部屋番号
		String guidemgSohusAdrrm    = "";
		
		// ガイド誌送付先名１
		String guidemgSohusNm1      = "";
		
		// ガイド誌送付先電話番号
		String guidemgSohusTelno    = "";
		
		// システム日付を取得
		String sysDate = JCCBatCommon.getSysDateTimeStamp();
		
		// ガイド誌送付先個別指定フラグ
		String guidemgShsKsiteiFlg = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SHS_KSITEI_FLG));
		
		super.logPrint.printDebugLog("ガイド誌送付先個別指定フラグ--->" + guidemgShsKsiteiFlg);
		
		// ガイド誌送付先個別指定フラグ="0：個別指定なし"
		if("0".equals(guidemgShsKsiteiFlg))
		{
			// SYSID
			String sysId = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SYSID));
			
			// サービス契約番号
			String svcKeiNo = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO));
			
			// SYSIDをキーにお客様情報取得
			JBSbatCommonDBInterface custMap = searchCustInfo(sysId);
			
			// サービス契約番号をキーにサービス契約回線内訳情報取得
			JBSbatCommonDBInterface svkeiKaisenUwMap = searchSvkeiKaisenUwInfo(svcKeiNo);
			
			// ガイド誌送付先郵便番号 ←サービス契約回線内訳.回線場所郵便番号
			guidemgSohusPcd = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_PCD));
			
			// ガイド誌送付先都道府県名 ←サービス契約回線内訳.回線場所都道府県名
			guidemgSohusStateNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_STATE_NM));
			
			// ガイド誌送付先市区町村名 ←サービス契約回線内訳.回線場所市区町村名
			guidemgSohusCityNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_CITY_NM));
			
			// ガイド誌送付先大字通称名 ←サービス契約回線内訳.回線場所大字通称名
			guidemgSohusOaztsuNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_OAZTSU_NM));
			
			// ガイド誌送付先字丁目名 ←サービス契約回線内訳.回線場所字丁目名
			guidemgSohusAzchoNm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AZCHO_NM));
			
			// ガイド誌送付先番地号 ←サービス契約回線内訳.回線場所番地号
			guidemgSohusBnchigo = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_BNCHIGO));
			
			// ガイド誌送付先住所補記・建物名 ←サービス契約回線内訳.回線場所住所補記・建物名
			guidemgSohusAdrttm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRTTM));
			
			// ガイド誌送付先住所補記・部屋番号 ←サービス契約回線内訳.回線場所住所補記・部屋番号
			guidemgSohusAdrrm = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRRM));
			
			// ガイド誌送付先名１ ←お客様.お客様名
			guidemgSohusNm1 = JBSbatStringUtil.Rtrim(custMap.getString(JBSbatCK_T_CUST.CUST_NM));
			
			// ガイド誌送付先電話番号 ←サービス契約回線内訳.回線場所電話番号
			guidemgSohusTelno = JBSbatStringUtil.Rtrim(svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_TELNO));
			
		}
		// ガイド誌送付先個別指定フラグ="1"
		else
		{
			// ガイド誌送付先郵便番号
			guidemgSohusPcd = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_PCD));
			
			// ガイド誌送付先都道府県名
			guidemgSohusStateNm = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_STATE_NM));
			
			// ガイド誌送付先市区町村名
			guidemgSohusCityNm = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_CITY_NM));
			
			// ガイド誌送付先大字通称名
			guidemgSohusOaztsuNm = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_OAZTSU_NM));
			
			// ガイド誌送付先字丁目名
			guidemgSohusAzchoNm = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_AZCHO_NM));
			
			// ガイド誌送付先番地号
			guidemgSohusBnchigo = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_BNCHIGO));
			
			// ガイド誌送付先住所補記・建物名
			guidemgSohusAdrttm = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_ADRTTM));
			
			// ガイド誌送付先住所補記・部屋番号
			guidemgSohusAdrrm = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_ADRRM));
			
			// ガイド誌送付先名１
			guidemgSohusNm1 = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_NM));
			
			// ガイド誌送付先電話番号
			guidemgSohusTelno = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_SOHUS_TELNO));
		}
		
		// 新規登録データ格納
		Object[] setParam = new Object[36];
		
		// ガイド誌送付依頼実績番号
		// ファイル出力時再検索で使用
		gudmgShreqJskNo = JBSbatStringUtil.padNumFormString(String.valueOf(maxGudmgShreqJskNo), 12);
		
		setParam[0] = gudmgShreqJskNo;
		
		// ガイド誌送付対象年月
		setParam[1] = guidemgSohuTrgtYm;
		
		// ガイド誌送付年月日
		setParam[2] = opeDate;
		
		// ガイド誌送付対象抽出回数
		setParam[3] = gudmgSohuTgCstCnt;
		
		// ガイド誌送付先郵便番号
		setParam[4] = guidemgSohusPcd;
		
		// ガイド誌送付先都道府県名
		setParam[5] = guidemgSohusStateNm;
		
		// ガイド誌送付先市区町村名
		setParam[6] = guidemgSohusCityNm;
		
		// ガイド誌送付先大字通称名
		setParam[7] = guidemgSohusOaztsuNm;
		
		// ガイド誌送付先字丁目名
		setParam[8] = guidemgSohusAzchoNm;
		
		// ガイド誌送付先番地号
		setParam[9] = guidemgSohusBnchigo;
		
		// ガイド誌送付先住所補記・建物名
		setParam[10] = guidemgSohusAdrttm;
		
		// ガイド誌送付先住所補記・部屋番号
		setParam[11] = guidemgSohusAdrrm;
		
		// ガイド誌送付先集合住宅名
		setParam[12] = "";
		
		// ガイド誌送付先名１
		setParam[13] = guidemgSohusNm1;
		
		// ガイド誌送付先名２
		setParam[14] = "";
		
		// ガイド誌送付先名敬称
		setParam[15] = LIST_KEISHO;
		
		// ガイド誌顧客状態識別コード
		setParam[16] = kokykuStat;
		
		// 外部連携契約コード
		setParam[17] = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_SVC_KEI_EOH_TV.OUT_RNKI_KEI_CD));
		
		// ケーブルガイド申込数
		setParam[18] = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.CABLE_GUIDE_MSKM_CNT));
		
		// ガイド誌種別コード名
		setParam[19] = getGuideSbt(info);
		
		// ガイド誌発送方法コード
		setParam[20] = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OPSVKEI_TV.GUIDEMG_HASSO_WAY_CD));
		
		// ガイド誌送付先電話番号
		setParam[21] = guidemgSohusTelno;
		
		// オプション解約 予約適用年月日
		String opDslRsvAplyYmd = JBSbatStringUtil.Rtrim(info.getString("OP_DSL_RSV_APLY_YMD"));
		
		// サービス契約解約 予約適用年月日
		String svcDslRsvAplyYmd = JBSbatStringUtil.Rtrim(info.getString("SVC_DSL_RSV_APLY_YMD"));
		
		// オプション解約 予約適用年月日 != ""
		if(!"".equals(opDslRsvAplyYmd))
		{
			// サービス終了年月日
			setParam[22] = opDslRsvAplyYmd;
		}
		
		// サービス契約解約 予約適用年月日 != ""
		else if(!"".equals(svcDslRsvAplyYmd))
		{
			// サービス終了年月日
			setParam[22] = svcDslRsvAplyYmd;
		}
		else
		{
			// サービス終了年月日
			setParam[22] = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SVC_ENDYMD));
		}
		
		// 登録年月日時分秒
		setParam[23] = sysDate;
		
		// 登録オペレータアカウント
		setParam[24] = super.batchUserId;
		
		// 更新年月日時分秒
		setParam[25] = sysDate;
		
		// 更新オペレータアカウント
		setParam[26] = super.batchUserId;
		
		// 削除年月日時分秒設定
		setParam[27] = "";
		
		// 削除オペレータアカウント
		setParam[28] = "";
		
		// 無効フラグ
		setParam[29] = "0";
		
		// 登録運用年月日
		setParam[30] = "";
		
		// 登録処理ＩＤ
		setParam[31] = "";
		
		// 更新運用年月日
		setParam[32] = "";
		
		// 更新処理ＩＤ
		setParam[33] = "";
		
		// 削除運用年月日
		setParam[34] = "";
		
		// 削除処理ＩＤ
		setParam[35] = "";
		
		setGuideJskSt(setParam);
		
		executeKK_T_GUDMG_SHREQ_JSK_PKINSERT(setParam);
	}

	/**
	 * お客様情報を取得します。
	 * @param sysId SYSID
	 * @throws Exception 
	 */
	private JBSbatCommonDBInterface searchCustInfo(String sysId) throws Exception
	{
		executeCK_T_CUST_KK_SELECT_020(new Object[]{sysId, opeDate});
		
		return db_CK_T_CUST.selectNext();
	}

	/**
	 * サービス契約回線内訳情報を取得します。
	 * @param svcKeiNo サービス契約番号
	 * @throws Exception 
	 */
	private JBSbatCommonDBInterface searchSvkeiKaisenUwInfo(String svcKeiNo) throws Exception
	{
		// OM-2014-0003561 住変キャンセル後にTVガイド誌が正しい住所に届かない 2014/11/11 藤田 MOD START
//		executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_028(new Object[]{svcKeiNo, opeDate});
		executeKK_T_KAISEN_TG_SVKEI_KK_SELECT_028(new Object[]{svcKeiNo, opeDate, opeDate});
		// OM-2014-0003561 住変キャンセル後にTVガイド誌が正しい住所に届かない 2014/11/11 藤田 MOD END
		
		return db_KK_T_KAISEN_TG_SVKEI.selectNext();
	}
	
	/**
	 * "契約者"か"解約者"か判定します。
	 * @param info 対象データ
	 * @return String "1":契約者
	 *                 "2":解約者
	 * @throws Exception 
	 */
	private String getKokykuStat(JBSbatCommonDBInterface info) throws Exception
	{
		String result = "";
		
		// サービス契約解約判定
		String svcDslRsvAplyYmd = JBSbatStringUtil.Rtrim(info.getString("SVC_DSL_RSV_APLY_YMD"));
		
		if (super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
		{
			// サービス契約番号
			String svcKeiNo = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_OP_SVC_KEI.SVC_KEI_NO));
			super.logPrint.printDebugLog("サービス契約番号------>" + svcKeiNo);
		}
		
		if ("".equals(svcDslRsvAplyYmd))
		{
			super.logPrint.printDebugLog("異動予約に存在しません。");
			result = KOKYAKU_STAT_KEI;
		}
		else
		{
			super.logPrint.printDebugLog("異動予約に存在します。");
			result = KOKYAKU_STAT_KAI;
		}
		
		return result;
	}
	
	/**
	 * ガイド誌送付依頼実績のガイド誌送付依頼実績番号最大値取得
	 * @return int
	 * @throws Exception 
	 */
	private int getMaxGudmgShreqJskNo() throws Exception
	{
		int result = 0;
		
		executeKK_T_GUDMG_SHREQ_JSK_KK_SELECT_003(new Object[]{});
		
		JBSbatCommonDBInterface dbInfo = db_KK_T_GUDMG_SHREQ_JSK.selectNext();
		
		if(null != dbInfo)
		{
			String max = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUDMG_SHREQ_JSK_NO));
			
			if("".equals(max))
			{
				return result + 1;
			}
			else
			{
				result = Integer.parseInt(max) + 1;
			}
		}
		
		return result;
	}
	
	/**
	 * ファイル読み込み処理を行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で読込ファイルディレクトリ(フルパス)を設定します。<br>
	 *
	 * 2.引数を元にファイル読込を行い、行をListへ格納します。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param strFileDir    出力ディレクトリ(フルパス)。
	 * @return resultList   返却用List
	 * @throws Exception    業務サービス内で発生した例外全般。
	 */
	private static ArrayList<String> readFile(String strFileDir) throws Exception
	{
		ArrayList<String> resultList = new  ArrayList<String>();
		
		// 出力ファイルパス
		JBSbatInputFileUtil inFile = new JBSbatInputFileUtil(strFileDir);
		
		// 文字コード
		inFile.setEncode(JKKBatConst.SJIS);
		
		inFile.createReader();
		
		try
		{
			while(true)
			{
				String line = inFile.readLine();
				if(null == line)
				{
					inFile.close();
					break;
				}
				resultList.add(line);
			}
		
			return resultList;
		}
		catch (IOException e)
		{
			throw new JBSbatBusinessException("EKKB0020CE", new String[]{strFileDir});
		}
		finally
		{
			inFile.close();
		}
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * 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 executeKK_T_OPSVKEI_TV_KK_SELECT_002(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());

		// DBアクセスを実行します
		db_KK_T_OPSVKEI_TV.selectBySqlDefine(paramList, KK_T_OPSVKEI_TV_KK_SELECT_002);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ガイド誌送付依頼実績番号				GUDMG_SHREQ_JSK_NO
	 *		 	ガイド誌送付対象年月				GUIDEMG_SOHU_TRGT_YM
	 *		 	ガイド誌送付年月日				GUIDEMG_SOHU_YMD
	 *		 	ガイド誌送付対象抽出回数				GUDMG_SOHU_TG_CST_CNT
	 *		 	ガイド誌送付先郵便番号				GUIDEMG_SOHUS_PCD
	 *		 	ガイド誌送付先都道府県名				GUIDEMG_SOHUS_STATE_NM
	 *		 	ガイド誌送付先市区町村名				GUIDEMG_SOHUS_CITY_NM
	 *		 	ガイド誌送付先大字通称名				GUIDEMG_SOHUS_OAZTSU_NM
	 *		 	ガイド誌送付先字丁目名				GUIDEMG_SOHUS_AZCHO_NM
	 *		 	ガイド誌送付先番地号				GUIDEMG_SOHUS_BNCHIGO
	 *		 	ガイド誌送付先住所補記・建物名				GUIDEMG_SOHUS_ADRTTM
	 *		 	ガイド誌送付先住所補記・部屋番号				GUIDEMG_SOHUS_ADRRM
	 *		 	ガイド誌送付先集合住宅名				GUIDEMG_SOHUS_SHUGJ_NM
	 *		 	ガイド誌送付先１				GUIDEMG_SOHUS_NM_1
	 *		 	ガイド誌送付先名２				GUIDEMG_SOHUS_NM_2
	 *		 	ガイド誌送付先名敬称				GUIDEMG_SOHUS_NM_KISHO
	 *		 	ガイド誌顧客状態識別コード				GUIDEMG_CUST_STAT_SKCD
	 *		 	外部連携契約コード				OUT_RNKI_KEI_CD
	 *		 	ケーブルガイド申込数				CABLE_GUIDE_MSKM_CNT
	 *		 	ガイド誌種別コード名				GUIDEMG_SBT_CD_NM
	 *		 	ガイド誌発送方法コード				GUIDEMG_HASSO_WAY_CD
	 *		 	ガイド誌送付先電話番号				GUIDEMG_SOHUS_TELNO
	 *		 	サービス終了年月日				SVC_ENDYMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_GUDMG_SHREQ_JSK_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("GUDMG_SHREQ_JSK_NO", setParam[0]);
		setMap.setValue("GUIDEMG_SOHU_TRGT_YM", setParam[1]);
		setMap.setValue("GUIDEMG_SOHU_YMD", setParam[2]);
		setMap.setValue("GUDMG_SOHU_TG_CST_CNT", setParam[3]);
		setMap.setValue("GUIDEMG_SOHUS_PCD", setParam[4]);
		setMap.setValue("GUIDEMG_SOHUS_STATE_NM", setParam[5]);
		setMap.setValue("GUIDEMG_SOHUS_CITY_NM", setParam[6]);
		setMap.setValue("GUIDEMG_SOHUS_OAZTSU_NM", setParam[7]);
		setMap.setValue("GUIDEMG_SOHUS_AZCHO_NM", setParam[8]);
		setMap.setValue("GUIDEMG_SOHUS_BNCHIGO", setParam[9]);
		setMap.setValue("GUIDEMG_SOHUS_ADRTTM", setParam[10]);
		setMap.setValue("GUIDEMG_SOHUS_ADRRM", setParam[11]);
		setMap.setValue("GUIDEMG_SOHUS_SHUGJ_NM", setParam[12]);
		setMap.setValue("GUIDEMG_SOHUS_NM_1", setParam[13]);
		setMap.setValue("GUIDEMG_SOHUS_NM_2", setParam[14]);
		setMap.setValue("GUIDEMG_SOHUS_NM_KISHO", setParam[15]);
		setMap.setValue("GUIDEMG_CUST_STAT_SKCD", setParam[16]);
		setMap.setValue("OUT_RNKI_KEI_CD", setParam[17]);
		setMap.setValue("CABLE_GUIDE_MSKM_CNT", setParam[18]);
		setMap.setValue("GUIDEMG_SBT_CD_NM", setParam[19]);
		setMap.setValue("GUIDEMG_HASSO_WAY_CD", setParam[20]);
		setMap.setValue("GUIDEMG_SOHUS_TELNO", setParam[21]);
		setMap.setValue("SVC_ENDYMD", setParam[22]);
		setMap.setValue("ADD_DTM", setParam[23]);
		setMap.setValue("ADD_OPEACNT", setParam[24]);
		setMap.setValue("UPD_DTM", setParam[25]);
		setMap.setValue("UPD_OPEACNT", setParam[26]);
		setMap.setValue("DEL_DTM", setParam[27]);
		setMap.setValue("DEL_OPEACNT", setParam[28]);
		setMap.setValue("MK_FLG", setParam[29]);
		setMap.setValue("ADD_UNYO_YMD", setParam[30]);
		setMap.setValue("ADD_TRN_ID", setParam[31]);
		setMap.setValue("UPD_UNYO_YMD", setParam[32]);
		setMap.setValue("UPD_TRN_ID", setParam[33]);
		setMap.setValue("DEL_UNYO_YMD", setParam[34]);
		setMap.setValue("DEL_TRN_ID", setParam[35]);
	
		db_KK_T_GUDMG_SHREQ_JSK.insertByPrimaryKeys(setMap);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	CD_SBT_CD
	 *		 	CD_DIV
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeZM_M_CD_NM_KANRI_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("CD_SBT_CD", whereParam[0]);
		whereMap.setValue("CD_DIV", whereParam[1]);

		// DBアクセスを実行します
		return db_ZM_M_CD_NM_KANRI.selectByPrimaryKeys(whereMap);
	}
	
	/**
	 * 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 executeKK_T_OPSVKEI_TV_KK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_OPSVKEI_TV.selectBySqlDefine(paramList, KK_T_OPSVKEI_TV_KK_SELECT_003);
	}
	
	// v15.00.00 2015/08/30 Add Start
	
	/**
	 * SQLKEY(KK_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_OPSVKEI_TV_KK_SELECT_009(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_OPSVKEI_TV2.selectBySqlDefine(paramList, KK_T_OPSVKEI_TV_KK_SELECT_009);
	}
	
	
	/**
	 * SQLKEY(KK_SELECT_009)で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_OPSVKEI_TV_KK_SELECT_010(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_OPSVKEI_TV3.selectBySqlDefine(paramList, KK_T_OPSVKEI_TV_KK_SELECT_010);
	}
	
	// v15.00.00 2015/08/30 Add End
	/**
	 * 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 executeKK_T_GUDMG_SHREQ_JSK_KK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_KK_T_GUDMG_SHREQ_JSK.selectBySqlDefine(paramList, KK_T_GUDMG_SHREQ_JSK_KK_SELECT_003);
	}
	
	/**
	 * SQLKEY(KK_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_KK_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_KK_SELECT_020);
	}
	
	/**
	 * SQLKEY(KK_SELECT_028)で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_KAISEN_TG_SVKEI_KK_SELECT_028(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		// OM-2014-0003561 住変キャンセル後にTVガイド誌が正しい住所に届かない 2014/11/11 藤田 ADD START
		paramList.setValue(param[2].toString());
		// OM-2014-0003561 住変キャンセル後にTVガイド誌が正しい住所に届かない 2014/11/11 藤田 ADD END

		// DBアクセスを実行します
		db_KK_T_KAISEN_TG_SVKEI.selectBySqlDefine(paramList, KK_T_KAISEN_TG_SVKEI_KK_SELECT_028);
	}
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_GUDMG_SHREQ_JSK_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("GUDMG_SHREQ_JSK_NO", whereParam[0]);
		
		// DBアクセスを実行します
		return db_KK_T_GUDMG_SHREQ_JSK.selectByPrimaryKeys(whereMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 地域フラグの編集を行います。<br>
	 * <p>
	 * @param serchSohusState 送付先都道府県(ガイド誌送付先都道府県名 + ガイド誌送付先市区町村名)
	 * @param kntvGudmgWatCki 業務パラメタから取得したガイド誌視聴地域
	 * @return ckiFlg 編集後地域フラグ
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getCkiFlg(String serchSohusState, String[] kntvGudmgWatCki) throws Exception
	{
		// 地域フラグの初期値を設定
		String ckiFlg = "00";
		
		// 送付先データが未設定の場合、初期値を返却
		if ( serchSohusState == null )
		{
			return ckiFlg;
		}
		
		if ( kntvGudmgWatCki != null && kntvGudmgWatCki.length != 0 )
		{
			for ( int i = 0; i < kntvGudmgWatCki.length; i++ )
			{
				// 部分一致で都道府県名を検索
				if ( serchSohusState.indexOf(kntvGudmgWatCki[i]) != -1 )
				{
					// 該当する地域のコードを設定
					ckiFlg = kntvGudmgWatCki[i - 1];
					
					break;
				}
			}
		}
		
		return ckiFlg;
	}
	
	/**
	 * チラシ送付フラグの編集を行います。<br>
	 * <p>
	 * @param svcKeiNo サービス契約番号
	 * @param kntvGudmgFlyer 業務パラメタから取得したガイド誌チラシNG
	 * @return ckiFlg 編集後地域フラグ
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getChirashiSofuFlg(String svcKeiNo, String[] kntvGudmgFlyer) throws Exception
	{
		// チラシ送付フラグの初期値を設定
		String chirashiSofuFlg = "00";
		
		if ( kntvGudmgFlyer != null && kntvGudmgFlyer.length != 0 )
		{
			for ( int i = 0; i < kntvGudmgFlyer.length; i++ )
			{
				// 一致するサービス契約番号が存在するかの判定
				if ( kntvGudmgFlyer[i].equals(svcKeiNo) ){
					
					chirashiSofuFlg = "99";
					
					break;
				}
			}
		}
		
		return chirashiSofuFlg;
	}
	
	
	// ANK-3807-00-00 ADD START
	/**
	 * 電子ファイル管理・ダウンロードファイル管理へ登録します。
	 * <br>
	 * @param dataCnt データ件数
	 * @param fileCd ファイルコード
	 * @param filePath
	 * @param fileDelYmd ファイル削除年月日
	 * @param fileName
	 * @throws Exception 例外が発生した場合
	 */
	private void addEfileKanriDlFileKanri(int dataCnt, String fileCd, String filePath,
			String fileDelYmd, String fileName) throws Exception
	{
		// 電子ファイル管理登録
		String[] ret = JCCbatDenshiFileUtil.createDenshiFile(this.commonItem, fileCd,
				filePath, fileDelYmd);
		
		// ダウンロードファイル管理登録
		String[] paramIns = {
				JKKStrConst.TRAN_KANRI_NO_225								// 処理管理番号
				, fileName												// ダウンロードファイル名
				, String.valueOf(dataCnt)								// データ件数
				, ret[0]												// 電子ファイル管理番号
				, ret[1]												// 世代登録年月日時分秒
		};
		
		executeZM_T_DL_FILE_KANRI_KK_INSERT_002(paramIns);
	}

	/**
	 * SQLKEY(KK_INSERT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *			TRN_KANRI_NO
	 *			FILE_NM
	 *			DATA_CNT
	 *			EFILE_KANRI_NO
	 *			GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_T_DL_FILE_KANRI_KK_INSERT_002(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());
		
		// DBアクセスを実行します
		db_ZM_T_DL_FILE_KANRI.executeBySqlDefine(paramList, ZM_T_DL_FILE_KANRI_KK_INSERT_002);
	}
	// ANK-3807-00-00 ADD END
}
