/*********************************************************************
*  All Rights reserved,Copyright (c) Fujitsu ,2016					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHMineokyokaiykMailMkKh
*	ソースファイル名	：JBSbatCHMineokyokaiykMailMkKh.java
*	作成者				：富士通　
*	作成日				：2016年11月10日
*＜機能概要＞
*　ｍｉｎｅｏ強制解約予告メール送信情報作成（口振）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v28.00.00	2016/11/10	FJ)塩津		新規作成(【ANK-3033-00-00】mineoの強制解約・強制解約処理の自動化
*	v33.00.00	2017/11/24	FJ)鈴木		修正	 【ANK-3335-00-00】mineo強制解約予告メールの文面変更
*********************************************************************/
package eo.business.service;


import eo.business.common.JACbatSchdlUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatCHIFE520;
import eo.business.util.file.JBSbatCHIFM096;
import eo.business.util.file.JBSbatCHIFM275;
import eo.business.util.table.JBSbatCC_M_MAIL;
import eo.business.util.table.JBSbatCH_M_PRC_SCHDL_TEIGI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatOutputFileUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHMineokyokaiykMailMkKh extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(料金スケジュール定義)*/
	private static final String D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI = "CH_M_PRC_SCHDL_TEIGI";

	/** テーブル(メール)*/
	private static final String D_TBL_NAME_CC_M_MAIL = "CC_M_MAIL";

	/** SQL定義キー(CH_SELECT_021)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_CH_SELECT_021 = "CH_SELECT_021";
	
	/** SQL定義キー(CH_SELECT_008)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_CH_SELECT_008 = "CH_SELECT_008";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String CC_M_MAIL_CH_SELECT_001 = "CH_SELECT_001";

	/** テーブルアクセスクラス(料金スケジュール定義)*/
	private JBSbatSQLAccess db_CH_M_PRC_SCHDL_TEIGI = null;

	/** テーブルアクセスクラス(メール)*/
	private JBSbatSQLAccess db_CC_M_MAIL = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 請求年月 */
	private static final String SEIKY_YM = "SEIKY_YM";
	
	/** 対応記録タイトル */
	private static final String TAIO_KIROK_TITLE =  "【mineo】強制解約予告メール（引落NG）";
	
	/** メールコード */
	private static final String MAIL_CODE = "CHM1000006";
	
	/** 件数ファイル用カウンター変数 */
	private int counter = 0;
	
	/** 改行コード */
	private static final String LF  = "LF";
	
	/** ファイル括り文字 */
	private static final String SCOPE  = "\"";

	/** メール本文 */
	private String mail_text = null;
	
	/** メール題名 */
	private String mail_title = null;
	
	/** メール送信者名 */
	private String sendm_mlad_dsp_nm = null;
	
	/** メール送信者 */
	private String sendm_mlad = null;
	
	/** メール返信先 */
	private String hnsin_mlad = null;
	
	/** エラーメール返信先 */
	private String err_mlad = null;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_M_PRC_SCHDL_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI);
		db_CC_M_MAIL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CC_M_MAIL);

		// メール情報取得
		Object[] setParamMail = {MAIL_CODE, super.opeDate, super.opeDate, super.opeDate};
		this.executeCC_M_MAIL_CH_SELECT_001(setParamMail);
		JBSbatCommonDBInterface resultMail = db_CC_M_MAIL.selectNext();
		
		//メール情報が取得できない場合、エラー出力して処理を終了する
		
		if(resultMail == null)
		{
			String[] msgParam = new String[] { "メール情報", "メールコード（CHM1000006）"};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB1520CE, msgParam);
		}
		//メール情報の設定
		mail_text = resultMail.getString(JBSbatCC_M_MAIL.MAIL_TEXT);
		mail_title = resultMail.getString(JBSbatCC_M_MAIL.MAIL_TITLE);
		sendm_mlad_dsp_nm = resultMail.getString(JBSbatCC_M_MAIL.SENDM_MLAD_DSP_NM);
		sendm_mlad = resultMail.getString(JBSbatCC_M_MAIL.SENDM_MLAD);
		hnsin_mlad = resultMail.getString(JBSbatCC_M_MAIL.HNSIN_MLAD);
		err_mlad = resultMail.getString(JBSbatCC_M_MAIL.ERR_MLAD);
		
		//支払期限日の取得
		String payKigenYm = payKigenYmdGet();
		
		//メール本文の作成
		mail_text = makeMailText(payKigenYm);
		
		// 件数ファイル用カウンター変数初期化
		this.counter = 0;
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 入力ファイルの情報がなくなったらメイン処理を実行する
		JBSbatOutputItem outputBean = new JBSbatOutputItem();

		//請求契約番号の取得
		String seiky_kei_no = inMap.getString(JBSbatCHIFM275.SEIKY_KEI_NO);
		//料金履歴情報作成
		prcrrkMake(outputBean, seiky_kei_no);
		
		//mineo強制解約予告メール送信情報（口振）作成
		mineokyoukaiMailmake(outputBean, inMap);
		
		return outputBean;

	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 本文埋め込み編集（年月）
	 * 
	 * @param ym 年月
	 * @return month
	 * @throws Exception
	 */
	private String makeMonth(String ymd) throws Exception
	{
		//返却用月
		int month = 0;
		//取得した年月を埋め込み文字用に編集する
		month = Integer.parseInt(ymd.substring(4, 6));
		 
		return "" + month ;
	}
	
	/**
	 * 本文埋め込み編集（日）
	 * 
	 * @param ym 年月
	 * @return month
	 * @throws Exception
	 */
	private String makeDay(String ymd) throws Exception
	{
		//返却用日
		int day = 0;
		
		//ANK-3335-00-00 ADD START
		String getyear = null;
		getyear = ymd.substring(0, 6);
		
		// 料金スケジュール定義アクセス部品
		JACbatSchdlUtil schdlUtil = new JACbatSchdlUtil(commonItem);
		
		// 月末日[1]
		String[] getYmd = schdlUtil.getUseStrEnd(getyear, JACStrConst.EVENT_CD_USE_STAYMD, JACStrConst.EVENT_CD_USE_ENDYMD);
		// ANK-3335-00-00 ADD END
		
		//ANK-3335-00-00 MOD START
		//取得した日を埋め込み文字用に編集する
		//day = Integer.parseInt(ymd.substring(6, 8));
		day = Integer.parseInt(getYmd[1].substring(6, 8));
		//ANK-3335-00-00 MOD END
		
		return "" + day ;
	}


/**
 * 支払期限日の取得
 * 
 * @param inMap
 * @return saikenYm
 * @throws Exception
 */
private String payKigenYmdGet() throws Exception
{
	//前回請求年月を初期設定
	String seikyYm = "";
	
	// 前回請求月を取得
	Object[] setParamSeikyYm = { JACStrConst.EVENT_CD_SIKY_TRN_DAY, super.opeDate };
	this.executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_008(setParamSeikyYm);
	
	// SQL実行結果を取得
	JBSbatCommonDBInterface map1 = new JBSbatCommonDBInterface();
	map1 = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
	
	//取得結果がある場合
	if( map1 != null){
		
		//前回請求年月に設定
		seikyYm = map1.getString("SEIKY_YM");
	 }

	// 料金スケジュール定義年月を取得
	Object[] setParamPrcSchdlTeigiYm = { seikyYm, JACStrConst.EVENT_CD_TOKSIHARAI_KIGEN_YMD };
	this.executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_021(setParamPrcSchdlTeigiYm);
	
	// SQL実行結果を取得
	JBSbatCommonDBInterface map2 = new JBSbatCommonDBInterface();
	map2 = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
	
	//支払期限日の設定
	String payKigenYmd = "";
	
	 //取得結果がある場合
	 if( map2 != null){
		
		 //イベント年月日の月を設定
		 payKigenYmd = map2.getString("EVENT_YMD");
		 
	 }
	 //取得結果がない場合
	 else{
		// エラーログを出力
		String[] msgParam = new String[] {JBSbatCH_M_PRC_SCHDL_TEIGI.TABLE_NAME, SEIKY_YM};
		throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
	 }
	 
	 return payKigenYmd;
}

/**
 * メール本文作成
 * 
 * @param saikenYm 
 * @return mailText
 * @throws Exception
 */
private String makeMailText(String payKigenYm) throws Exception
{
	 //メール本文の埋め込み文字を設定する
	// 置換文字配列の宣言
	String[] repStringText = new String[2];
	String[] chgTextNo = {"%1%", "%2%"};
	
	//上記で取得した料金スケジュール定義年月を埋め込み文字用に編集する
	String pay_kigen_month = makeMonth(payKigenYm);
	String pay_kigen_day = makeDay(payKigenYm);
	
	//置換文字列を格納していく
	repStringText[0] = pay_kigen_month;
	repStringText[1] = pay_kigen_day;
	
	//メール本文を作成する
	String mailText =  repTextDataString(mail_text, repStringText, chgTextNo);
	
	return mailText;
}

/**
 * 料金履歴情報作成
 * 
 * @param outputBean
 * @param pSeiky_kei_no
 * @return 
 * @throws Exception
 */
private void prcrrkMake(JBSbatOutputItem outputBean, String pSeiky_kei_no) throws Exception
{
	//全項目つめる
	// 料金対応記録送信出力用MAP
	JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

	// 01.請求契約番号
	outMap.set(JBSbatCHIFM096.SEIKY_KEI_NO, 				pSeiky_kei_no);
	// 02.サービス契約番号
	outMap.set(JBSbatCHIFM096.SVC_KEI_NO, 					null);
	// 03.対応年月日時分秒
	outMap.set(JBSbatCHIFM096.TAIO_DTM, 					super.opeDate.concat(JCCBatCommon.getSysDateTimeStamp().substring(8)));
	// 04.料金対応記録種別コード <- "133"（mineo督促処理（バッチ））
	outMap.set(JBSbatCHIFM096.PRC_TAIO_KIROK_SBT_CD, 		"133");
	// 05.料金対応記録種別詳細コード <- "2714"（mineo強制解約予告済）
	outMap.set(JBSbatCHIFM096.PRC_TAIO_KIROK_SBT_DTL_CD, 	"2714");
	// 06.記録対象年月
	outMap.set(JBSbatCHIFM096.KIROK_TG_YM, 					null);
	// 07.督促番号
	outMap.set(JBSbatCHIFM096.TOKUSOKU_NO, 					null);
	// 08.督促異動番号
	outMap.set(JBSbatCHIFM096.TOKUSOKU_IDO_NO, 				null);
	// 09.請求番号
	outMap.set(JBSbatCHIFM096.SEIKY_NO,						null);
	// 10.金庫番号
	outMap.set(JBSbatCHIFM096.KNK_NO, 						null);
	// 11.料金スケジュール定義番号
	outMap.set(JBSbatCHIFM096.SAIKEN_NO, 					null);
	// 12.入金番号
	outMap.set(JBSbatCHIFM096.NYUKIN_NO, 					null);
	// 13.電子ファイル管理番号
	outMap.set(JBSbatCHIFM096.EFILE_KANRI_NO, 				null);
	// 14.対応履歴連動対象フラグ<- "0"(対応履歴連動非対象)
	outMap.set(JBSbatCHIFM096.TAIORRKI_RENDO_TG_FLG, 		"0");
	// 15.変更前金額
	outMap.set(JBSbatCHIFM096.AMNT_CHBF, 					null);
	// 16.変更後金額
	outMap.set(JBSbatCHIFM096.AMNT_CHAF, 					null);
	// 17.変更前督促ステータス
	outMap.set(JBSbatCHIFM096.TOKUSOKU_STAT_CHBF, 			null);
	// 18.変更後督促ステータス
	outMap.set(JBSbatCHIFM096.TOKUSOKU_STAT_CHAF, 			null);
	// 19.変更前料金グループコード
	outMap.set(JBSbatCHIFM096.PRC_GRP_CD_CHBF, 				null);
	// 20.変更後料金グループコード
	outMap.set(JBSbatCHIFM096.PRC_GRP_CD_CHAF, 				null);
	// 21.変更前料金コースコード
	outMap.set(JBSbatCHIFM096.PCRS_CD_CHBF, 				null);
	// 22.変更後料金コースコード
	outMap.set(JBSbatCHIFM096.PCRS_CD_CHAF, 				null);
	// 23.変更前料金サービスコード
	outMap.set(JBSbatCHIFM096.PRC_SVC_CD_CHBF, 				null);
	// 24.変更後料金サービスコード
	outMap.set(JBSbatCHIFM096.PRC_SVC_CD_CHAF, 				null);
	// 25.変更前金庫料金項目コード
	outMap.set(JBSbatCHIFM096.KNK_PRC_KMK_CD_CHBF, 			null);
	// 26.変更後金庫料金項目コード
	outMap.set(JBSbatCHIFM096.KNK_PRC_KMK_CD_CHAF, 			null);
	// 27.督促メールパターン <- "A3"（２ヶ月引落NGによるmineo強制解約予告メール）
	outMap.set(JBSbatCHIFM096.TOKUSOKU_ML_PTN_CD, 			"A6");
	// 28.変更前補償費扱いフラグ
	outMap.set(JBSbatCHIFM096.COMPENSATION_FLG_CHBF, 		null);
	// 29.変更後補償費扱いフラグ
	outMap.set(JBSbatCHIFM096.COMPENSATION_FLG_CHAF, 		null);
	// 30.変更前引抜き種別コード
	outMap.set(JBSbatCHIFM096.HKNK_SBT_CD_CHBF, 			null);
	// 31.変更後引抜き種別コード
	outMap.set(JBSbatCHIFM096.HKNK_SBT_CD_CHAF, 			null);
	// 32.記事
	outMap.set(JBSbatCHIFM096.KIJI, 						null);
	// 出力フラグ設定
	outMap.setOutFlg(true);
	outputBean.addOutMapList(outMap);
}

/**
 * mineo強制解約予告メール送信情報（口振）作成
 * 
 * @param outputBean
 * @param inMap
 * @return 
 * @throws Exception
 */
private void mineokyoukaiMailmake(JBSbatOutputItem outputBean, JBSbatServiceInterfaceMap inMap) throws Exception
{
	//全項目つめる
	// mineo強制解約予告メール送信情報（口振）出力用MAP
	JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

	// お客様ID <- サービス契約番号
	outMap.set(JBSbatCHIFE520.SVC_KEI_NO, inMap.getString(JBSbatCHIFM275.SVC_KEI_NO));
	// メール宛先 <- メール宛先
	outMap.set(JBSbatCHIFE520.SENDS_MLAD, inMap.getString(JBSbatCHIFM275.MINEO_MAIL_ADDRESS));
	// メール送信者名 <- メール送信者名
	outMap.set(JBSbatCHIFE520.SENDM_MLAD_DSP_NM, sendm_mlad_dsp_nm);
	// メール送信者 <- メール送信者
	outMap.set(JBSbatCHIFE520.SENDM_MLAD, sendm_mlad);
	// メール返信先 <- 返信先メールアドレス
	outMap.set(JBSbatCHIFE520.HNSIN_MLAD, hnsin_mlad);
	// エラーメール返信先 <- エラーメールアドレス
	outMap.set(JBSbatCHIFE520.HNSIN_ERR_MLAD, err_mlad);
	// ＢＣＣ <- スペース
	outMap.set(JBSbatCHIFE520.BCC_MLAD, " ");
	//メール題名 <- メール題名
	outMap.set(JBSbatCHIFE520.MAIL_TITLE, mail_title);
	//メール本文 <- メール本文
	outMap.set(JBSbatCHIFE520.MAIL_TEXT, mail_text);
	//対応記録タイトル <- 対応記録タイトル
	outMap.set(JBSbatCHIFE520.TAIO_KIROK_TITLE, TAIO_KIROK_TITLE);
	// 出力フラグ設定
	outMap.setOutFlg(true);
	outputBean.addOutMapList_2(outMap);
	
	//件数カウントアップ
	this.counter++;
}
	/**
	 * 文字列内の可変文字を置き換える
	 * <p>
	 * </p>
	 * @param textData 可変文字を含む文字列
	 * @param param    変換する文字列
	 * @return 変換結果（改行コード変更後）
	 */
	private String repTextDataString(String textData, String[] param, String[] chgNo)
	{
		for(int i = 0; i < param.length; i++)
		{
			if (param[i] != null)
			{
				textData = textData.replaceFirst(chgNo[i], param[i]);
			}
		}
		
		return textData;
	}
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// 件数ファイルオブジェクト
		JBSbatOutputFileUtil cntFile = null;
		
		try
		{
			// フリーパラメータをチェック
			if(super.freeItem == null || "".equals(super.freeItem))
			{
				// 件数ファイルパラメータ異常
				throw new Exception();
			}
			
			// 件数ファイル作成
			cntFile = new JBSbatOutputFileUtil(super.freeItem);
			cntFile.setEncode(JKKBatConst.SJIS);
			cntFile.setLine(LF);
			cntFile.createWriter();
			StringBuffer sb = new StringBuffer();
			sb.append(SCOPE);
			sb.append(String.format("%05d",this.counter));
			sb.append(SCOPE);
			cntFile.write(sb.toString());
		}
		catch(Exception e)
		{
			// 出力ファイルの作成に失敗
			String rsn = "件数ファイルの作成に失敗（";
			StringBuffer buf = new StringBuffer();
			buf.append("出力件数パス：");
			buf.append(super.freeItem);	
			buf.append("）");
			// エラーを投げる
			throw new JBSbatBusinessException("ECHB1550CE", new String[]{ rsn, buf.toString() });
		}
		finally
		{
			// 件数ファイルオブジェクトを閉じる
			if(cntFile != null)
			{
				// 件数ファイルを閉じる
				cntFile.close();
				cntFile = null;
			}
		}
		// DBアクセスクラスをクローズします
		db_CH_M_PRC_SCHDL_TEIGI.close();
		db_CC_M_MAIL.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(CH_SELECT_021)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	前回の請求年月、イベントコード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_021(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_CH_SELECT_021);
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(CH_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 executeCH_M_PRC_SCHDL_TEIGI_CH_SELECT_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_CH_SELECT_008);
	}

	/**
	 * SQLKEY(CH_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 executeCC_M_MAIL_CH_SELECT_001(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());

		// DBアクセスを実行します
		db_CC_M_MAIL.selectBySqlDefine(paramList, CC_M_MAIL_CH_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
