/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKMskmshoImgChgTgDchs
*	ソースファイル名	：JBSbatKKMskmshoImgChgTgDchs.java
*	作成者				：富士通　
*	作成日				：2011年09月07日
*＜機能概要＞
*　申込書イメージ変換対象データ抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/07   富士通		新規作成
*	v26.00.00	2016/09/20   FJ)安井	【OM-2016-0001670】SQLへのカレント検索追加
*	v29.00.00	2016/10/03   FJ)柳		【ANK-2990-00-00】【eo電気】同時申込・量販訪販対応（STEP2-2）
*	v29.01.00	2017/04/23   FJ)舘山	【ANK-3158-00-00】mineo同時申込に対する対応
*********************************************************************/
package eo.business.service;

import java.util.HashMap;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatZDIFE007;
import eo.business.util.table.JBSbatKK_T_MSKM_DTL;
import eo.business.util.table.JBSbatKK_T_RNKI_FILE_CTRL;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatOutputFileUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKMskmshoImgChgDchs extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(連携ファイル制御)*/
	private static final String D_TBL_NAME_KK_T_RNKI_FILE_CTRL = "KK_T_RNKI_FILE_CTRL";

	/** テーブル(申込明細)*/
	private static final String D_TBL_NAME_KK_T_MSKM_DTL = "KK_T_MSKM_DTL";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** SQL定義キー(KK_SELECT_007)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_007 = "KK_SELECT_007";

	/** SQL定義キー(KK_SELECT_080)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_080 = "KK_SELECT_080";

	/** SQL定義キー(KK_SELECT_008)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_008 = "KK_SELECT_008";

	/** SQL定義キー(KK_SELECT_081)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_081 = "KK_SELECT_081";

	/** テーブルアクセスクラス(連携ファイル制御)*/
	private JBSbatSQLAccess db_KK_T_RNKI_FILE_CTRL = null;

	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 物理バッチID */
	private static final String BUTSURI_BAT_ID = "KKPRC35801";
	
	/** ファイルID */
	private static final String FILE_ID = "ZDIFE007  ";
	
	/** 全件検索用年月日 */
	private static final String ALL_SEARCH_YMD = "20110101";
	
	/** 全件検索用年月日時分秒 */
	private static final String ALL_SEARCH_YMDHMS = ALL_SEARCH_YMD + "000000000";
	
	/** 申込形態コード：書面 */
	private static final String MSKM_FORM_CD_SYOMEN = "05";
	
	/** 照査解約完了コード：照査NG */
	private static final String SHOSA_DSL_FIN_CD_NG = "2";
	
	/** 変換対象申込情報属性情報ファイル．ステータス：照査後 */
	private static final String ZDIFE007001_STAT_SHOSA_AF = "1";
	
	/** 変換対象申込情報属性情報ファイル．照査結果：照査OK */
	private static final String ZDIFE007001_SHOSA_RSLT_OK = "1";
	
	/** 変換対象申込情報属性情報ファイル．照査結果：照査NG */
	private static final String ZDIFE007001_SHOSA_RSLT_NG = "2";
	
	/** 運用年月日 */
	private String unyo_ymd = "";
	
	/** 運用年月日時分秒 */
	private String unyo_ymdhms = "";
	
	/** 前回実行年月日 */
	private String znki_run_ymd = "";
	
	/** 前回実行年月日時分秒 */
	private String znki_run_ymdhms = "";
	
	/** 改行コード */
	private static final String CRLF  = "CR+LF";
	
	/** 文字コード */
	private static final String SJIS  = "Shift-JIS";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_RNKI_FILE_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_RNKI_FILE_CTRL);
		db_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);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 抽出基準となる運用日を設定します
		// 運用年月日
		unyo_ymd = super.opeDate;
		// 運用年月日時分秒（バッチ運用日8桁 + システム時刻9桁）
		String hms = JCCBatCommon.getSysDateTimeStamp().substring(8, 17);
		unyo_ymdhms = unyo_ymd + hms;
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// 変換対象申込情報件数ファイル
		JBSbatServiceInterfaceMap outmap2 = new JBSbatServiceInterfaceMap();
		
		// 前回実行日取得OKフラグ
		boolean znki_run_ymd_stku_OK = false;
		
		// ファイル出力データ件数
		int file_out_date_cnt = 0;
		
		// (1) 前回実行日の取得を行う
		// (a) 連携ファイル制御テーブルからレコードを抽出する
		JBSbatCommonDBInterface rcvMap1 = null;
		rcvMap1 = executeKK_T_RNKI_FILE_CTRL_PKSELECT(getPKParamKK_T_RNKI_FILE_CTRL());
		
		// (b) 前回実行日に取得した前回処理実行年月日時分秒を設定する
		if(rcvMap1 != null)
		{
			znki_run_ymdhms = rcvMap1.getString(JBSbatKK_T_RNKI_FILE_CTRL.ZNKI_TRAN_RUN_DTM);
			znki_run_ymd = znki_run_ymdhms.substring(0, 8); // yyyymmdd部分のみ
			znki_run_ymd_stku_OK = true; // 前回実行日取得OK
		}
		// (c) 取得レコードが0件の場合、前回実行日は全件検索用日付を設定する
		else
		{
			znki_run_ymdhms = ALL_SEARCH_YMDHMS;
			znki_run_ymd = ALL_SEARCH_YMD;
		}
		
		// (2) 照査NG変換対象抽出を行う
		// (a) 対象となる申込書番号を取得する
		executeKK_T_MSKM_DTL_KK_SELECT_007(getParamMSKM_DTL_KK_SELECT_007());
		
		// (b) 取得した申込書番号の件数分処理を行う
		JBSbatCommonDBInterface rcvMap2 = null;
		for(rcvMap2 = db_KK_T_MSKM_DTL.selectNext(); rcvMap2 != null; rcvMap2 = db_KK_T_MSKM_DTL.selectNext())
		{
			// ANK-2990-00-00 2016/10/03 MOD START
			// // @ 対象の申込書番号からサービス契約テーブルのレコードを抽出する
			// String mskmsho_no = rcvMap2.getString(JBSbatKK_T_MSKM_DTL.MSKMSHO_NO);
			String mskmsho_no = "";
			
			// 取得項目がNVL()に変更されているため、上記@では結果を取得できない。
			// 検索結果を格納したマップから取得したキーを使用して申込書番号を取得
			for (Object keyObj : rcvMap2.getMap().keySet()) {
				String key = (String)keyObj;
				mskmsho_no = rcvMap2.getString(key);
			}
			// ANK-2990-00-00 2016/10/03 MOD END
			
			executeKK_T_SVC_KEI_KK_SELECT_080(getParamSVC_KEI_KK_SELECT_080(mskmsho_no));
			
			// A 抽出したレコードの解約完了コードが全件"照査NG"である場合
			// ファイル出力を行い、ファイル件数をインクリメントする
			boolean all_shosa_NG = true; // 全件照査NGである場合、true
			boolean rcvMap3_not_null = true; // サービス契約から抽出したレコードが存在する場合、true
			
			// ファイル出力するサービス契約の代表1件目のSYSIDを先に取り出しておく
			JBSbatCommonDBInterface rcvMap3 = db_KK_T_SVC_KEI.selectNext();
			String sysid = null;
			if(rcvMap3 != null)
			{
				sysid = rcvMap3.getString(JBSbatKK_T_SVC_KEI.SYSID);
			}
			else
			{
				rcvMap3_not_null = false; // レコードが存在しない為、出力対象外
			}
			
			for(; rcvMap3 != null; rcvMap3 = db_KK_T_SVC_KEI.selectNext())
			{
				if(!(SHOSA_DSL_FIN_CD_NG.equals(rcvMap3.getString(JBSbatKK_T_SVC_KEI.SHOSA_DSL_FIN_CD))))
				{
					all_shosa_NG = false; // 照査NG以外の値が存在した
					break; // 以後の処理は不要の為終了
				}
			}
			
			// 全件照査NG かつ サービス契約に抽出レコードが存在する
			if(all_shosa_NG && rcvMap3_not_null)
			{
				// ファイル出力
				JBSbatServiceInterfaceMap outmap1 = new JBSbatServiceInterfaceMap();
				outmap1.setString(JBSbatZDIFE007.MSKMSHO_NO, mskmsho_no);
				outmap1.setString(JBSbatZDIFE007.SYSID, sysid);
				outmap1.setString(JBSbatZDIFE007.STAT, ZDIFE007001_STAT_SHOSA_AF);
				outmap1.setString(JBSbatZDIFE007.SHOSA_RSLT, ZDIFE007001_SHOSA_RSLT_NG);
				outputBean.addOutMapList(outmap1);
				// 件数インクリメント
				file_out_date_cnt++;
			}
		}
		
		// (3) 照査OK変換対象抽出を行う
		// (a) 対象となる申込書番号を取得する
		executeKK_T_MSKM_DTL_KK_SELECT_008(getParamMSKM_DTL_KK_SELECT_008());
		
		// (b) 取得した申込書番号の件数分処理を行う
		JBSbatCommonDBInterface rcvMap4 = null;
		for(rcvMap4 = db_KK_T_MSKM_DTL.selectNext(); rcvMap4 != null; rcvMap4 = db_KK_T_MSKM_DTL.selectNext())
		{
			// ANK-2990-00-00 2016/10/03 MOD START
			// // @ 対象の申込書番号からサービス契約テーブルのレコードを抽出する
			// String mskmsho_no = rcvMap4.getString(JBSbatKK_T_MSKM_DTL.MSKMSHO_NO);
			String mskmsho_no = "";
			
			// 取得項目がNVL()に変更されているため、上記@では結果を取得できない。
			// 検索結果を格納したマップから取得したキーを使用して申込書番号を取得
			for (Object keyObj : rcvMap4.getMap().keySet()) {
				String key = (String)keyObj;
				mskmsho_no = rcvMap4.getString(key);
			}
			// ANK-2990-00-00 2016/10/03 MOD END
			
			executeKK_T_SVC_KEI_KK_SELECT_081(getParamSVC_KEI_KK_SELECT_081(mskmsho_no));
			
			// A 抽出したレコードの照査年月日が全件設定されている場合
			// ファイル出力を行い、ファイル件数をインクリメントする
			boolean shosa_ymd_all_set = true; // 全件照査年月日が設定されている場合、true
			
			// ファイル出力するサービス契約の代表1件目のSYSIDを先に取り出しておく
			JBSbatCommonDBInterface rcvMap5 = db_KK_T_SVC_KEI.selectNext();
			String sysid = null;
			if(rcvMap5 != null)
			{
				sysid = rcvMap5.getString(JBSbatKK_T_SVC_KEI.SYSID);
			}
			
			for(; rcvMap5 != null; rcvMap5 = db_KK_T_SVC_KEI.selectNext())
			{
				if(rcvMap5.getString(JBSbatKK_T_SVC_KEI.SHOSA_YMD) == null ||
						"".equals(rcvMap5.getString(JBSbatKK_T_SVC_KEI.SHOSA_YMD)))
				{
					shosa_ymd_all_set = false; // 照査年月日未設定が存在した
					break; // 以後の処理は不要の為終了
				}
			}
			
			// 照査年月日が全件設定
			if(shosa_ymd_all_set)
			{
				// ファイル出力
				JBSbatServiceInterfaceMap outmap1 = new JBSbatServiceInterfaceMap();
				outmap1.setString(JBSbatZDIFE007.MSKMSHO_NO, mskmsho_no);
				outmap1.setString(JBSbatZDIFE007.SYSID, sysid);
				outmap1.setString(JBSbatZDIFE007.STAT, ZDIFE007001_STAT_SHOSA_AF);
				outmap1.setString(JBSbatZDIFE007.SHOSA_RSLT, ZDIFE007001_SHOSA_RSLT_OK);
				outputBean.addOutMapList(outmap1);
				// 件数インクリメント
				file_out_date_cnt++;
			}
		}
		
		// (4) 件数ファイル出力を行う
		createCntFile(file_out_date_cnt);
		
		// (5) 前回実行日の更新を行う
		// (a) 連携ファイル制御テーブルを更新する
		if(znki_run_ymd_stku_OK)
		{
			Object[] setParam = getParamRNKI_FILE_CTRL_UPDATE();
			Object[] whereParam = getPKParamKK_T_RNKI_FILE_CTRL();
			executeKK_T_RNKI_FILE_CTRL_PKUPDATE(setParam, whereParam);
		}
		// (b) "(1) 前回実行日の取得"で、レコードが0件だった場合、
		// 連携ファイル制御テーブルに登録を行う
		else
		{
			executeKK_T_RNKI_FILE_CTRL_PKINSERT(getParamRNKI_FILE_CTRL_INSERT());
		}
		
		// ダブルクォート付与部品
		JKKBatCommon.setDblquoteOutputItemZengoChr(outputBean);
		
		return outputBean;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_RNKI_FILE_CTRL.close();
		db_KK_T_MSKM_DTL.close();
		db_KK_T_SVC_KEI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	BUTSURI_BAT_ID
	 *		 	FILE_ID
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_RNKI_FILE_CTRL_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("BUTSURI_BAT_ID", whereParam[0]);
		whereMap.setValue("FILE_ID", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_RNKI_FILE_CTRL.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(KK_SELECT_007)で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_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
// ▼▼▼ ANK-3158-00-00 2017-04-23 ADD START
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
// △△△ ANK-3158-00-00 2017-04-23 ADD END
		// DBアクセスを実行します
		db_KK_T_MSKM_DTL.selectBySqlDefine(paramList, KK_T_MSKM_DTL_KK_SELECT_007);
	}

	/**
	 * SQLKEY(KK_SELECT_080)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	申込書番号
	 *		 	同時申込eo光申込書番号 ← 申込書番号
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_080(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
//OM-2016-0001670 DEL STA
//		paramList.setValue(param[2].toString());
//OM-2016-0001670 DEL END
		// ANK-2990-00-00 2016/10/03 ADD START
		paramList.setValue(param[2].toString());
		// ANK-2990-00-00 2016/10/03 ADD END

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_080);
	}

	/**
	 * SQLKEY(KK_SELECT_008)で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_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_MSKM_DTL.selectBySqlDefine(paramList, KK_T_MSKM_DTL_KK_SELECT_008);
	}

	/**
	 * SQLKEY(KK_SELECT_081)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	申込書番号
	 *		 	同時申込eo光申込書番号 ← 申込書番号
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_081(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
//OM-2016-0001670 ADD STA
		paramList.setValue(param[1].toString());
//OM-2016-0001670 ADD END
		// ANK-2990-00-00 2016/10/03 ADD START
		paramList.setValue(param[2].toString());
		// ANK-2990-00-00 2016/10/03 ADD END

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_081);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	前回処理実行年月日時分秒				ZNKI_TRAN_RUN_DTM
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	BUTSURI_BAT_ID
	 *		 	FILE_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_RNKI_FILE_CTRL_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("ZNKI_TRAN_RUN_DTM", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("BUTSURI_BAT_ID", whereParam[0]);
		whereMap.setValue("FILE_ID", whereParam[1]);

		// DBアクセスを実行します
		db_KK_T_RNKI_FILE_CTRL.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	物理バッチＩＤ				BUTSURI_BAT_ID
	 *		 	ファイルＩＤ				FILE_ID
	 *		 	処理済ファイル通番				TRAN_ZUMI_FILE_SEQ
	 *		 	前回処理実行年月日時分秒				ZNKI_TRAN_RUN_DTM
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_RNKI_FILE_CTRL_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("BUTSURI_BAT_ID", setParam[0]);
		setMap.setValue("FILE_ID", setParam[1]);
		setMap.setValue("TRAN_ZUMI_FILE_SEQ", setParam[2]);
		setMap.setValue("ZNKI_TRAN_RUN_DTM", setParam[3]);
		setMap.setValue("ADD_DTM", setParam[4]);
		setMap.setValue("ADD_OPEACNT", setParam[5]);
		setMap.setValue("UPD_DTM", setParam[6]);
		setMap.setValue("UPD_OPEACNT", setParam[7]);
		setMap.setValue("DEL_DTM", setParam[8]);
		setMap.setValue("DEL_OPEACNT", setParam[9]);
		setMap.setValue("MK_FLG", setParam[10]);
	
		// DBアクセスを実行します
		db_KK_T_RNKI_FILE_CTRL.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * KK_T_RNKI_FILE_CTRL_PKでDBアクセスを実行する際に必要なPKを設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.パラメータ設定処理。
	 * </pre>
	 * <p>
	 * @return param KK_T_RNKI_FILE_CTRL_PKでDBアクセスを実行する際に必要なPK
	 * @throws Exception 
	 */
	private Object[] getPKParamKK_T_RNKI_FILE_CTRL() throws Exception 
	{
		// パラメータの設定
		Object[] param = {
				BUTSURI_BAT_ID,	// 物理バッチID
				FILE_ID			// ファイルID
		};

		return param;
	}

	/**
	 * KK_T_MSKM_DTL_KK_SELECT_007でDBアクセスを実行する際に必要なパラメータを設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.パラメータ設定処理。
	 * </pre>
	 * <p>
	 * @return param KK_T_MSKM_DTL_KK_SELECT_007でDBアクセスを実行する際に必要なパラメータ
	 * @throws Exception 
	 */
	private Object[] getParamMSKM_DTL_KK_SELECT_007() throws Exception 
	{
		// パラメータの設定
		Object[] param = {
				znki_run_ymdhms,	// 前回実行日（比較対象が申込明細照査年月日時分秒）
				unyo_ymdhms,		// 運用日（比較対象が申込明細照査年月日時分秒）
				MSKM_FORM_CD_SYOMEN	// 申込形態コード
		};

		return param;
	}

	/**
	 * KK_T_SVC_KEI_KK_SELECT_080でDBアクセスを実行する際に必要なパラメータを設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.パラメータ設定処理。
	 * </pre>
	 * <p>
	 * @param mskmsho_no 対象申込書番号
	 * @return param KK_T_SVC_KEI_KK_SELECT_080でDBアクセスを実行する際に必要なパラメータ
	 * @throws Exception 
	 */
	private Object[] getParamSVC_KEI_KK_SELECT_080(String mskmsho_no) throws Exception 
	{
		// パラメータの設定
		Object[] param = {
				mskmsho_no,		// 申込書番号
				// ANK-2990-00-00 2016/10/03 ADD START
				mskmsho_no,		// 同時申込eo光申込書番号 ← 申込書番号
				// ANK-2990-00-00 2016/10/03 ADD END
//OM-2016-0001670 MOD STA
//				znki_run_ymd,	// 前回実行日（比較対象が照査年月日）
//				unyo_ymd		// 運用日（比較対象が照査年月日）
				unyo_ymd		// 運用日
//OM-2016-0001670 MOD END
		};

		return param;
	}

	/**
	 * KK_T_MSKM_DTL_KK_SELECT_008でDBアクセスを実行する際に必要なパラメータを設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.パラメータ設定処理。
	 * </pre>
	 * <p>
	 * @return param KK_T_MSKM_DTL_KK_SELECT_008でDBアクセスを実行する際に必要なパラメータ
	 * @throws Exception 
	 */
	private Object[] getParamMSKM_DTL_KK_SELECT_008() throws Exception 
	{
		// パラメータの設定
		Object[] param = {
//OM-2016-0001670 MOD STA
//				znki_run_ymd,	// 前回実行日（比較対象がサービス開始日）
//				unyo_ymd		// 運用日（比較対象がサービス開始日）
				znki_run_ymd + "000000000",	// 前回実行日（比較対象がサービス開始日）
				unyo_ymd + "999999999"		// 運用日（比較対象がサービス開始日）
//OM-2016-0001670 MOD END
		};

		return param;
	}

	/**
	 * KK_T_SVC_KEI_KK_SELECT_081でDBアクセスを実行する際に必要なパラメータを設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.パラメータ設定処理。
	 * </pre>
	 * <p>
	 * @param mskmsho_no 対象申込書番号
	 * @return param KK_T_SVC_KEI_KK_SELECT_081でDBアクセスを実行する際に必要なパラメータ
	 * @throws Exception 
	 */
	private Object[] getParamSVC_KEI_KK_SELECT_081(String mskmsho_no) throws Exception 
	{
		// パラメータの設定
		Object[] param = {
//OM-2016-0001670 MOD STA
//				mskmsho_no // 申込書番号
				mskmsho_no,	// 申込書番号
				// ANK-2990-00-00 2016/10/03 ADD START
				mskmsho_no,		// 同時申込eo光申込書番号 ← 申込書番号
				// ANK-2990-00-00 2016/10/03 ADD END
				unyo_ymd	// 運用日
//OM-2016-0001670 MOD END
		};

		return param;
	}

	/**
	 * KK_T_RNKI_FILE_CTRL_PKUPDATEでDBアクセスを実行する際に必要なパラメータを設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.パラメータ設定処理。
	 * </pre>
	 * <p>
	 * @return param KK_T_RNKI_FILE_CTRL_PKUPDATEでDBアクセスを実行する際に必要なパラメータ
	 * @throws Exception 
	 */
	private Object[] getParamRNKI_FILE_CTRL_UPDATE() throws Exception 
	{
		// パラメータの設定
		Object[] param = {
				unyo_ymdhms  // 前回処理実行年月日時分秒（を更新するので運用日）
		};

		return param;
	}

	/**
	 * KK_T_RNKI_FILE_CTRL_PKINSERTでDBアクセスを実行する際に必要なパラメータを設定します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.パラメータ設定処理。
	 * </pre>
	 * <p>
	 * @return param KK_T_RNKI_FILE_CTRL_PKINSERTでDBアクセスを実行する際に必要なパラメータ
	 * @throws Exception 
	 */
	private Object[] getParamRNKI_FILE_CTRL_INSERT() throws Exception 
	{
		// パラメータの設定
		Object[] param = {
				BUTSURI_BAT_ID,						// 物理バッチID
				FILE_ID,							// ファイルID
				null,								// 処理済ファイル通番
				unyo_ymdhms,						// 前回処理実行年月日時分秒（を更新するので運用日）
				JCCBatCommon.getSysDateTimeStamp(),	// 登録年月日時分秒
				super.batchUserId,					// 登録オペレータアカウント
				JCCBatCommon.getSysDateTimeStamp(),	// 更新年月日時分秒
				super.batchUserId,					// 更新オペレータアカウント
				null,								// 削除年月日時分秒
				null,								// 削除オペレータアカウント
				JKKBatConst.S_MK_FLG				// 無効フラグ
		};

		return param;
	}
	
	/**
	 * 件数ファイルを作成します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.件数ファイル出力処理
	 * </pre>
	 * <p>
	 * @param int_cnt 件数カウント数
	 * @throws Exception
	 */
	private void createCntFile(int int_cnt) throws Exception
	{
		String str_cnt = String.valueOf(int_cnt);
		String[] fileNames = super.freeItem.split(JKKBatConst.S_PARAM_DELIM);
		JBSbatOutputFileUtil flgFile = new JBSbatOutputFileUtil(fileNames[0]);
		flgFile.setEncode(SJIS);
		flgFile.setLine(CRLF);
		flgFile.createWriter();
		flgFile.write("\"" + str_cnt + "\"");
		flgFile.close();
	}
}
