/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKGuideFileCtrlInfoChsht
*	ソースファイル名	：JBSbatKKGuideFileCtrlInfoChsht.java
*	作成者				：富士通　
*	作成日				：2012年07月18日
*＜機能概要＞
*　ガイド誌ファイル制御情報抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/07/18  FJ)中作		新規作成
*	v4.01.00	2012/10/17  FJ)中作		【IT1-2012-0001400】障害対応
*	v4.02.00	2012/11/06  FJ)岡田		【IT1-2012-0001938】障害対応
*	v4.03.00	2013/03/09  FJ)柳		【IT1-2013-0000416】障害対応
*	v4.04.00	2013/03/18  FJ)中作		【ST1-2013-0000489】障害対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM236;
import eo.business.util.table.JBSbatKK_T_GUDMG_FILE_CTL;
import eo.business.util.table.JBSbatKK_T_GUDMG_SHREQ_JSK;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKGuideFileCtrlInfoChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(ガイド誌ファイル制御)*/
	private static final String D_TBL_NAME_KK_T_GUDMG_FILE_CTL = "KK_T_GUDMG_FILE_CTL";

	/** テーブル(ガイド誌送付依頼実績)*/
	private static final String D_TBL_NAME_KK_T_GUDMG_SHREQ_JSK = "KK_T_GUDMG_SHREQ_JSK";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_GUDMG_FILE_CTL_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_GUDMG_SHREQ_JSK_KK_SELECT_001 = "KK_SELECT_001";

	/** テーブルアクセスクラス(ガイド誌ファイル制御)*/
	private JBSbatSQLAccess db_KK_T_GUDMG_FILE_CTL = null;

	/** テーブルアクセスクラス(ガイド誌送付依頼実績)*/
	private JBSbatSQLAccess db_KK_T_GUDMG_SHREQ_JSK = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 1回目 ファイル名*/
	private static final String FILE_NAME_PAYGUIDE = "%1$sPAYGUIDE";
	
	/** 2回目以降 ファイル名*/
	private static final String FILE_NAME_PAYGUIDE_SABUN = "%1$sPAYGUIDE_SABUN%2$s";
	
	/**
	 * 出力情報
	 */
	private JBSbatOutputItem outItem = null;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_GUDMG_FILE_CTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_GUDMG_FILE_CTL);
		db_KK_T_GUDMG_SHREQ_JSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_GUDMG_SHREQ_JSK);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// 出力情報
		outItem = new JBSbatOutputItem();
		
		// 前回抽出年月日
		String znkiChshtYmd = "";
		
		// ガイド誌ファイル制御情報取得
		ArrayList<JBSbatCommonDBInterface> gudmgFileCtlList = searchGudmgFileCtl();
		
		// 運用日(年月)
		String opeYm = opeDate.substring(0, 6);
		
		// 運用日(日)
		String opeDay = opeDate.substring(6);
		
		for(JBSbatCommonDBInterface info: gudmgFileCtlList)
		{
			// ガイド誌送付対象年月切替日
			String gudmgSohuTgYmSwchDay = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_SOHU_TG_YM_SWCH_DAY));
			
			// ガイド誌送付対象年月
			String guidemgSohuTrgtYm = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_TRGT_YM));
			super.logPrint.printDebugLog("ガイド誌送付対象年月---->" + guidemgSohuTrgtYm);
			
			// 前回抽出年月日（ガイド誌送付年月日）
			znkiChshtYmd = JBSbatStringUtil.Rtrim(info.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_YMD));
			super.logPrint.printDebugLog("前回抽出年月日（ガイド誌送付年月日）---->" + znkiChshtYmd);
			
			// ガイド誌送付対象年月切替日 < 運用日(日) && ガイド誌送付対象年月 = 運用日(年月)
			if(0 > gudmgSohuTgYmSwchDay.compareTo(opeDay) && guidemgSohuTrgtYm.equals(opeYm))
			{
				// 1回目の場合
				executeFirst(info, znkiChshtYmd);
				
			}
			else
			{
				// 2回目の場合
				executeSecond(info, znkiChshtYmd);
				
			}
		}
		
		super.logPrint.printDebugLog("execute_END");
		
		return outItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 1回目の処理です。ガイド誌送付依頼実績を削除し、ガイド誌ファイル制御を
	 * 更新します。
	 * 出力対象ファイルを作成します。
	 * <br>
	 * @param infoTrgt ガイド誌ファイル制御情報
	 * @param znkiChshtYmd 前回抽出年月日
	 * @throws Exception 
	 * 
	 */
	private void executeFirst(JBSbatCommonDBInterface infoTrgt, String znkiChshtYmd) throws Exception
	{
		// 【ガイド誌送付依頼実績】削除
		deleteGudmgShreqJsk(infoTrgt);
		
		// 【ガイド誌ファイル制御】更新
		updateGudmgFileCtl(infoTrgt, "1", znkiChshtYmd);
		
	}

	/**
	 * 2回目以降の処理です。ガイド誌ファイル制御を
	 * 更新します。
	 * 出力対象ファイルを作成します。
	 * <br>
	 * @param infoTrgt ガイド誌ファイル制御情報
	 * @param znkiChshtYmd 前回抽出年月日
	 * @throws Exception 
	 * 
	 */
	private void executeSecond(JBSbatCommonDBInterface infoTrgt, String znkiChshtYmd) throws Exception
	{
		// 【ガイド誌ファイル制御】更新
		updateGudmgFileCtl(infoTrgt, "2", znkiChshtYmd);
		
	}
	
	/**
	 * 【ガイド誌ファイル制御】を更新します。
	 * <br>
	 * @param infoTrgt ガイド誌ファイル制御情報
	 * @param cnt 処理回数
	 * @param znkiChshtYmd 前回抽出年月日
	 * @throws Exception 
	 */
	private void updateGudmgFileCtl(JBSbatCommonDBInterface infoTrgt, String cnt, String znkiChshtYmd) throws Exception
	{
		JBSbatCommonDBInterface map = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		// ガイド誌送付対象年月
		String guidemgSohuTrgtYm = "";
		
		// ガイド誌送付対象抽出回数
		String gudmgSohuTgCstCnt = "";
		
		String[] setParam = null;
		String[] whereParam = null;
		
		// ガイド誌ファイル制御番号
		String gudmgFileCtlNo = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_FILE_CTL_NO));
		
		// ガイド誌ファイル制御番号
		whereMap.setValue(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_FILE_CTL_NO, gudmgFileCtlNo);
		
		// 排他検索を行います
		map = db_KK_T_GUDMG_FILE_CTL.selectByPrimaryKeysForUpdateWait(whereMap);
		
		// 排他検索結果がある場合
		if (null != map)
		{
			whereParam = new String[1];
			
			setParam   = new String[3];
			
			// ガイド誌ファイル制御番号
			whereParam[0] = gudmgFileCtlNo;
			
			// 1回目の処理
			if("1".equals(cnt))
			{
				// ガイド誌送付対象年月
				// 運用日(年月)+1
				guidemgSohuTrgtYm = JBSbatDateUtil.adjustMonth(opeDate, 1).substring(0, 6);
				setParam[0] = guidemgSohuTrgtYm;
				
				// ガイド誌送付年月日
				// 運用日
				setParam[1] = opeDate;
				
				// ガイド誌送付対象抽出回数
				// "1"固定
				gudmgSohuTgCstCnt = "1";
				setParam[2] = gudmgSohuTgCstCnt;
				
			}
			// 2回目の処理
			else
			{
				
				// ガイド誌送付対象年月
				// 設定なし
				guidemgSohuTrgtYm = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_TRGT_YM));
				setParam[0] = guidemgSohuTrgtYm;
				
				// ガイド誌送付年月日
				// 運用日
				setParam[1] = opeDate;
				
				// ガイド誌送付対象抽出回数
				// 取得回数+1
				int kaisuu = Integer.parseInt(JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_SOHU_TG_CST_CNT))) + 1;
				gudmgSohuTgCstCnt = Integer.toString(kaisuu);
				
				setParam[2] = gudmgSohuTgCstCnt;
				
			}
			
			// 更新処理
			executeKK_T_GUDMG_FILE_CTL_PKUPDATE(setParam, whereParam);
			
		}
		// 検索結果なし
		else
		{
			// ガイド誌送付対象年月
			// 運用日(年月)+1
			guidemgSohuTrgtYm = JBSbatDateUtil.adjustMonth(opeDate, 1).substring(0, 6);
			
			// ガイド誌送付対象抽出回数
			// "1"固定
			gudmgSohuTgCstCnt = "1";
			
			// ガイド誌ファイル制御新規登録
			insertGudmgFileCtl(infoTrgt);
			
		}
		
		// 出力編集処理
		outMapEdit(znkiChshtYmd, gudmgSohuTgCstCnt, guidemgSohuTrgtYm);
		
	}
	
	/**
	 * 【ガイド誌ファイル制御】を登録します。
	 * <br>
	 * @param infoTrgt ガイド誌ファイル制御情報
	 * @throws Exception 
	 */
	private void insertGudmgFileCtl(JBSbatCommonDBInterface infoTrgt) throws Exception
	{
		// 新規登録データ格納*/
		String[] insertData = new String[18];
		
		// ガイド誌ファイル制御番号
		insertData[0] = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_FILE_CTL_NO));
		
		// ガイド誌送付対象年月
		String guidemgSohuTrgtYm = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_TRGT_YM));
		insertData[1] = JBSbatDateUtil.adjustMonth(guidemgSohuTrgtYm + "01", 1).substring(0, 6);
		
		// ガイド誌送付年月日
		insertData[2] = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_YMD));
		
		// ガイド誌送付対象抽出回数
		insertData[3] = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_SOHU_TG_CST_CNT));
		
		// ガイド誌送付対象年月切替日
		insertData[4] = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_SOHU_TG_YM_SWCH_DAY));
		
		executeKK_T_GUDMG_FILE_CTL_PKINSERT(insertData);
		
	}

	/**
	 * 出力編集処理を行います。
	 * @param znkiChshtYmd 前回抽出年月日
	 * @param gudmgSohuTgCstCnt ガイド誌送付対象抽出回数
	 * @param guidemgSohuTrgtYm ガイド誌送付対象年月
	 * @throws Exception 
	 */
	private void outMapEdit(String znkiChshtYmd, String gudmgSohuTgCstCnt, String guidemgSohuTrgtYm) throws Exception
	{
		// 送信ファイル名
		String sendFileName = "";
		
		// 出力情報編集処理
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// 前回抽出年月日
		outMap.setString(JBSbatKKIFM236.ZNKI_CHSHT_YMD, znkiChshtYmd);
		
		// ガイド誌送付対象抽出回数
		outMap.setString(JBSbatKKIFM236.GUDMG_SOHU_TG_CST_CNT, gudmgSohuTgCstCnt);
		
		// 1回目
		if("1".equals(gudmgSohuTgCstCnt))
		{
			// 送信ファイル名
			// yyyymmPAYGUIDE.csv
			sendFileName = String.format(FILE_NAME_PAYGUIDE, guidemgSohuTrgtYm);
			
		}
		// 2回目
		else if("2".equals(gudmgSohuTgCstCnt))
		{
			// 送信ファイル名
			// yyyymmPAYGUIDE_SABUN01.csv
			sendFileName = String.format(FILE_NAME_PAYGUIDE_SABUN, guidemgSohuTrgtYm, "01");
			
		}
		// 2回目以降
		else
		{
			// 差分N回
			gudmgSohuTgCstCnt = String.valueOf(Integer.parseInt(gudmgSohuTgCstCnt)-1);
			
			// 送信ファイル名
			// yyyymmPAYGUIDE_SABUN99.csv
			sendFileName = String.format(FILE_NAME_PAYGUIDE_SABUN, guidemgSohuTrgtYm, JBSbatStringUtil.padNumFormString(gudmgSohuTgCstCnt, 2));
			
		}
		
		// 送信ファイル名
		outMap.setString(JBSbatKKIFM236.SEND_FILE_NM, sendFileName);
		
		// ガイド誌送付対象年月
		outMap.setString(JBSbatKKIFM236.GUIDEMG_SOHU_TRGT_YM, guidemgSohuTrgtYm);
		
		// ファイルに出力する
		outMap.setOutFlg(true);
		outItem.addOutMapList(outMap);
		
	}

	/**
	 * 【ガイド誌送付依頼実績】を削除します。
	 * <br>
	 * @param infoTrgt ガイド誌ファイル制御情報
	 * @throws Exception 
	 */
	private void deleteGudmgShreqJsk(JBSbatCommonDBInterface infoTrgt) throws Exception
	{
		// ガイド誌送付対象年月
		String guidemgSohuTrgtYm = JBSbatStringUtil.Rtrim(infoTrgt.getString(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_TRGT_YM));
		
		executeKK_T_GUDMG_SHREQ_JSK_KK_SELECT_001(new Object[]{guidemgSohuTrgtYm});
		
		JBSbatCommonDBInterface dbInfo = db_KK_T_GUDMG_SHREQ_JSK.selectNext();
		
		while(null != dbInfo)
		{
			// ガイド誌送付依頼実績番号
			String gudmgShreqJskNo = JBSbatStringUtil.Rtrim(dbInfo.getString(JBSbatKK_T_GUDMG_SHREQ_JSK.GUDMG_SHREQ_JSK_NO));
			
			// 削除処理
			executeKK_T_GUDMG_SHREQ_JSK_PKDELETE(new Object[]{gudmgShreqJskNo});
			
			// 次の検索処理を取得
			dbInfo = db_KK_T_GUDMG_SHREQ_JSK.selectNext();
		}
	}

	/**
	 * ガイド誌ファイル制御情報を取得します。
	 * <br>
	 * @throws Exception 
	 */
	private ArrayList<JBSbatCommonDBInterface> searchGudmgFileCtl() throws Exception
	{
		
		ArrayList<JBSbatCommonDBInterface> dbInfoList = new ArrayList<JBSbatCommonDBInterface>();
		
		executeKK_T_GUDMG_FILE_CTL_KK_SELECT_001(new Object[]{});
		
		JBSbatCommonDBInterface dbInfo = db_KK_T_GUDMG_FILE_CTL.selectNext();
		
		// ガイド誌ファイル制御情報なし
		if(null == dbInfo)
		{
			JBSbatCommonDBInterface dbInfoZero = new JBSbatCommonDBInterface();
			
			// ガイド誌ファイル制御番号
			dbInfoZero.setValue(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_FILE_CTL_NO, "1");
			
			// ガイド誌送付対象年月
			dbInfoZero.setValue(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_TRGT_YM, opeDate.substring(0, 6));
			
			// ガイド誌送付年月日
			dbInfoZero.setValue(JBSbatKK_T_GUDMG_FILE_CTL.GUIDEMG_SOHU_YMD, opeDate);
			
			// ガイド誌送付対象抽出回数
			dbInfoZero.setValue(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_SOHU_TG_CST_CNT, "1");
			
			// ガイド誌送付対象年月切替日
			dbInfoZero.setValue(JBSbatKK_T_GUDMG_FILE_CTL.GUDMG_SOHU_TG_YM_SWCH_DAY, "01");
			
			dbInfoList.add(dbInfoZero);
			
		}
		
		while (null != dbInfo) 
		{
			dbInfoList.add(dbInfo);
			dbInfo = db_KK_T_GUDMG_FILE_CTL.selectNext();
		}
		
		return dbInfoList;
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_GUDMG_FILE_CTL.close();
		db_KK_T_GUDMG_SHREQ_JSK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ガイド誌ファイル制御番号				GUDMG_FILE_CTL_NO
	 *		 	ガイド誌送付対象年月				GUIDEMG_SOHU_TRGT_YM
	 *		 	ガイド誌送付年月日				GUIDEMG_SOHU_YMD
	 *		 	ガイド誌送付対象抽出回数				GUDMG_SOHU_TG_CST_CNT
	 *		 	ガイド誌送付対象年月切替日				GUDMG_SOHU_TG_YM_SWCH_DAY
	 *		 	登録年月日時分秒				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_FILE_CTL_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("GUDMG_FILE_CTL_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("GUDMG_SOHU_TG_YM_SWCH_DAY", setParam[4]);
		setMap.setValue("ADD_DTM", setParam[5]);
		setMap.setValue("ADD_OPEACNT", setParam[6]);
		setMap.setValue("UPD_DTM", setParam[7]);
		setMap.setValue("UPD_OPEACNT", setParam[8]);
		setMap.setValue("DEL_DTM", setParam[9]);
		setMap.setValue("DEL_OPEACNT", setParam[10]);
		setMap.setValue("MK_FLG", setParam[11]);
		setMap.setValue("ADD_UNYO_YMD", setParam[12]);
		setMap.setValue("ADD_TRN_ID", setParam[13]);
		setMap.setValue("UPD_UNYO_YMD", setParam[14]);
		setMap.setValue("UPD_TRN_ID", setParam[15]);
		setMap.setValue("DEL_UNYO_YMD", setParam[16]);
		setMap.setValue("DEL_TRN_ID", setParam[17]);
	
		// DBアクセスを実行します
		db_KK_T_GUDMG_FILE_CTL.insertByPrimaryKeys(setMap);
	}
	
	/**
	 * SQLKEY(KK_SELECT_001)で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_FILE_CTL_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_KK_T_GUDMG_FILE_CTL.selectBySqlDefine(paramList, KK_T_GUDMG_FILE_CTL_KK_SELECT_001);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_GUDMG_SHREQ_JSK_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(JBSbatKK_T_GUDMG_SHREQ_JSK.GUDMG_SHREQ_JSK_NO, whereParam[0]);
		
		// DBアクセスを実行します
		db_KK_T_GUDMG_SHREQ_JSK.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(KK_SELECT_001)で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_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_GUDMG_SHREQ_JSK.selectBySqlDefine(paramList, KK_T_GUDMG_SHREQ_JSK_KK_SELECT_001);
	}
	

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	GUDMG_FILE_CTL_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_GUDMG_FILE_CTL_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		
		setMap.setValue("GUIDEMG_SOHU_TRGT_YM", setParam[0]);
		setMap.setValue("GUIDEMG_SOHU_YMD", setParam[1]);
		setMap.setValue("GUDMG_SOHU_TG_CST_CNT", setParam[2]);
		
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("GUDMG_FILE_CTL_NO", whereParam[0]);

		// DBアクセスを実行します
		db_KK_T_GUDMG_FILE_CTL.updateByPrimaryKeys(whereMap, setMap);
	}	
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
