/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHKssaidkNkinDataMake
*	ソースファイル名	：JBSbatCHKssaidkNkinDataMake.java
*	作成者				：富士通　
*	作成日				：2017年04月06日
*＜機能概要＞
*　決済代行会社入金データ作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2017/04/06   富士通		新規作成
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCHIFM043;
import eo.business.util.table.JBSbatCH_T_KSDKCP_NKIF_RCV;
import eo.business.util.table.JBSbatCH_T_SEIKY;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JPCUtilCommon;
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;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHKssaidkNkinDataMake extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(決済代行会社入金情報受信)*/
	private static final String D_TBL_NAME_CH_T_KSDKCP_NKIF_RCV = "CH_T_KSDKCP_NKIF_RCV";

	/** テーブル(請求)*/
	private static final String D_TBL_NAME_CH_T_SEIKY = "CH_T_SEIKY";

	/** テーブル(請求契約)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_KEI = "KK_T_SEIKY_KEI";

	/** SQL定義キー(CH_SELECT_045)*/
	private static final String CH_T_SEIKY_CH_SELECT_045 = "CH_SELECT_045";

	/** SQL定義キー(CH_SELECT_017)*/
	private static final String KK_T_SEIKY_KEI_CH_SELECT_017 = "CH_SELECT_017";
	
	/** テーブルアクセスクラス(決済代行会社入金情報受信)*/
	private JBSbatSQLAccess db_CH_T_KSDKCP_NKIF_RCV = null;

	/** テーブルアクセスクラス(請求)*/
	private JBSbatSQLAccess db_CH_T_SEIKY = null;

	/** テーブルアクセスクラス(請求契約)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI = null;
	
	/** 請求契約有無フラグ（無）*/
	private static final String KK_T_SEIKY_KEI_NASHI = "0";
	
	/** 請求契約有無フラグ（有）*/
	private static final String KK_T_SEIKY_KEI_ARI = "1";
	
	//請求契約番号
	private String seiky_kei_no = null;
	
	//請求年月
	private String seiky_ym = null;
	
	//請求書発行シーケンス
	private String seiky_seq = null;
	
	//請求番号
	private String seiky_no = null;
	
	//決済代行会社入金情報受信番号
	private String ksdkcp_nkif_rcv_no = null;
	
	//請求契約有無フラグ
	private String seiky_kei_umu_flg = "0";
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_T_KSDKCP_NKIF_RCV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_KSDKCP_NKIF_RCV);
		db_CH_T_SEIKY = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY);
		db_KK_T_SEIKY_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 出力情報データ格納マップ
		JBSbatServiceInterfaceMap outMap 		= new JBSbatServiceInterfaceMap();
		// 出力情報マップ
		JBSbatOutputItem outputItem 			= new JBSbatOutputItem();
		
		//請求番号初期化
		seiky_no = null;
		//請求契約有無フラグ初期化
		seiky_kei_umu_flg = KK_T_SEIKY_KEI_NASHI;
		
		//請求契約番号取得
		seiky_kei_no = inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.SEIKY_KEI_NO);
		//請求年月取得
		seiky_ym = inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.SEIKY_YM);
		
		//請求書発行シーケンス取得
		seiky_seq = inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.SKS_HAKKO_SEQ);
		//請求書発行シーケンスの2桁目取得
		if (seiky_seq != null && seiky_seq.length() == 2)
		{
			seiky_seq = seiky_seq.substring(1, 2);
		}
		//決済代行会社入金情報受信番号取得
		ksdkcp_nkif_rcv_no = inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.KSDKCP_NKIF_RCV_NO);
		
		//請求情報存在チェックを行う
		this.chkseiky();
		
		//請求情報が未存在の場合請求契約存在チェックを行う。
		if (seiky_no == null)
		{
			//請求契約存在チェック
			this.chkseikykei();
		}
		else
		{
			//請求契約有無フラグ：有
			seiky_kei_umu_flg = KK_T_SEIKY_KEI_ARI;
		}
		
		//決済代行会社入金情報受信スキーマ更新
		this.updateksdk();
		
		//ファイル出力処理
		outMap = makeCvsNknCgData(inMap);
		outputItem.addOutMapList(outMap);
		
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 出力情報作成
	 * @param  resultMap 入力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 * @return outDataMap 出力情報
	 * @throws Exception 
	 */
	private JBSbatServiceInterfaceMap makeCvsNknCgData(
			JBSbatServiceInterfaceMap inMap) throws Exception {
		// 出力情報格納マップ
		JBSbatServiceInterfaceMap outDataMap = new JBSbatServiceInterfaceMap();
		
		//決済代行会社入金情報受信種別コード
		String nyukinsbt = inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.KSDKCP_NKIF_RCV_SBT_CD);
		//通知年月日設定用
		String tch_ymd = inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.KSDKCP_NKIF_TRN_DTM).substring(0, 8);

		// 1.請求契約番号
		outDataMap.set(JBSbatCHIFM043.SEIKY_KEI_NO, 				seiky_kei_no);
		// 2.請求年月 
		outDataMap.set(JBSbatCHIFM043.SEIKY_YM, 					seiky_ym);
		// 3.請求番号
		outDataMap.set(JBSbatCHIFM043.SEIKY_NO, 					seiky_no);
		// 4.請求発行シーケンス
		outDataMap.set(JBSbatCHIFM043.SKS_HAKKO_SEQ, 				JPCUtilCommon.fillZero(seiky_seq, 2, false));
		// 5.入金経路コード
		outDataMap.set(JBSbatCHIFM043.NYUKIN_ROUTE_CD, 				JACStrConst.NYKNKEIRCD_KESSAI_SMBC);
		// 6.収納機関コード
		outDataMap.set(JBSbatCHIFM043.SHUNOKIKAN_CD, 				JACStrConst.SHNKKNCD_CVS_SMBC);
		// 7.収納年月日
		outDataMap.set(JBSbatCHIFM043.OUT_ORG_SHUNO_YMD, 			inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.SHUNO_YMD)); 
		// 8.入金額
		outDataMap.set(JBSbatCHIFM043.NYUKIN_AMNT, 					inMap.getBigDecimal(JBSbatCH_T_KSDKCP_NKIF_RCV.NYUKIN_AMNT));
		// 9.領収年月
		outDataMap.set(JBSbatCHIFM043.RECEIPT_YMD, 					inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.SHUNO_YMD));
		// 10.領収時分秒
		outDataMap.set(JBSbatCHIFM043.RECEIPT_HMS, 					inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.SHUNO_HM));
		
		// 11.入金処理済フラグ
		outDataMap.set(JBSbatCHIFM043.NYUKIN_SYRZM_FLG, 			JACStrConst.SPACE_1);
		
		//確報の場合、未処理"0"を設定
		if(JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_KAKHO.equals(nyukinsbt))
		{
			// 11.入金処理済フラグ
			outDataMap.set(JBSbatCHIFM043.NYUKIN_SYRZM_FLG, 		JACStrConst.NKIN_SYORI_ZUMI_FLG_MI);
		}
		// 12.窓口金融機関コード
		outDataMap.set(JBSbatCHIFM043.MADOGUCHI_BANK_CD, 			JACStrConst.KARA_MOJI);
		// 13.窓口金融機関支店コード
		outDataMap.set(JBSbatCHIFM043.MADOGUCHI_BANK_SHITEN_CD, 	JACStrConst.KARA_MOJI);
		// 14.コンビニエンスストアコード
		outDataMap.set(JBSbatCHIFM043.CVSTORE_CD, 					JACStrConst.KARA_MOJI);
		// 15.コンビニ受付店コード
		outDataMap.set(JBSbatCHIFM043.CVSTORE_UK_TEN_CD, 			JACStrConst.KARA_MOJI);
		// 16.コンビニリアル業務区分コード
		outDataMap.set(JBSbatCHIFM043.WORK_DIV, 					JACStrConst.KARA_MOJI);
		// 17.コンビニリアル速報通知年月日
		outDataMap.set(JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_YMD,	JACStrConst.KARA_MOJI);
		// 18.コンビニリアル速報通知時分秒
		outDataMap.set(JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_HMS,	JACStrConst.KARA_MOJI);
		// 19.コンビニリアル速報処理済フラグ
		outDataMap.set(JBSbatCHIFM043.CVS_REAL_SOKHO_SYRZM_FLG,		JACStrConst.KARA_MOJI);
		
		// 20.コンビニデータ種別
		//決済代行会社入金情報受信種別コードが速報の場合
		if (JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_SOKHO.equals(nyukinsbt))
		{
			// 20.コンビニデータ種別
			outDataMap.set(JBSbatCHIFM043.CVSTORE_DATA_SBT, 			"01");
		}
		//決済代行会社入金情報受信種別コードが確報の場合
		if (JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_KAKHO.equals(nyukinsbt))
		{
			// 20.コンビニデータ種別
			outDataMap.set(JBSbatCHIFM043.CVSTORE_DATA_SBT, 			"02");
		}
		//決済代行会社入金情報受信種別コードが取消の場合
		if (JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_TORIKESHI.equals(nyukinsbt))
		{
			// 20.コンビニデータ種別
			outDataMap.set(JBSbatCHIFM043.CVSTORE_DATA_SBT, 			"03");
		}
		
		// 21.コンビ二速報通知年月日
		outDataMap.set(JBSbatCHIFM043.CVSTORE_SOKHO_TCH_YMD, 		JACStrConst.KARA_MOJI);
		//決済代行会社入金情報受信種別コードが速報の場合
		if (JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_SOKHO.equals(nyukinsbt))
		{
			//決済代行会社入金情報処理年月日時分秒（時分秒除く）を設定
			outDataMap.set(JBSbatCHIFM043.CVSTORE_SOKHO_TCH_YMD, 	tch_ymd);
		}
		
		// 22.コンビニ速報処理済フラグ
		outDataMap.set(JBSbatCHIFM043.CVSTORE_SOKHO_SYRZM_FLG, 		JACStrConst.KARA_MOJI);
		//決済代行会社入金情報受信種別コードが速報の場合
		if (JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_SOKHO.equals(nyukinsbt))
		{
			// 22.コンビニ速報処理済フラグ
			outDataMap.set(JBSbatCHIFM043.CVSTORE_SOKHO_SYRZM_FLG, 	JACStrConst.NKIN_SYORI_ZUMI_FLG_MI);
		}
		
		// 23.コンビニ確報通知年月日
		outDataMap.set(JBSbatCHIFM043.CVSTORE_KAKHO_TCH_YMD, 		JACStrConst.KARA_MOJI);
		//決済代行会社入金情報受信種別コードが確報の場合
		if (JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_KAKHO.equals(nyukinsbt))
		{
			// 23.コンビニ確報通知年月日
			outDataMap.set(JBSbatCHIFM043.CVSTORE_KAKHO_TCH_YMD, 	tch_ymd);
		}
		
		// 24.コンビニ取消通知年月日
		outDataMap.set(JBSbatCHIFM043.CVSTORE_SOKHO_CL_TCH_YMD, 	JACStrConst.KARA_MOJI);
		//決済代行会社入金情報受信種別コードが取消の場合
		if (JACStrConst.KESSAI_NYUKIN_INFO_TYPE_CD_TORIKESHI.equals(nyukinsbt))
		{
			// 24.コンビニ取消通知年月日
			outDataMap.set(JBSbatCHIFM043.CVSTORE_SOKHO_CL_TCH_YMD, 	tch_ymd);
		}
		// 25.コンビニ支払予定年月日
		outDataMap.set(JBSbatCHIFM043.CVSTORE_PAY_RSV_YMD, 			inMap.getString(JBSbatCH_T_KSDKCP_NKIF_RCV.HRIKOMI_RSV_YMD));
		// 26.コンビニ収納代行会社
		outDataMap.set(JBSbatCHIFM043.CVSTORE_KAKNO_DAIKO_COMP, 	JACStrConst.KARA_MOJI);
		// 27.振替結果コード
		outDataMap.set(JBSbatCHIFM043.FURIKAE_RSLT_CD, 				JACStrConst.KARA_MOJI);
		// 28.履歴詳細区分
		outDataMap.set(JBSbatCHIFM043.RIREKI_DTL_DIV, 				JACStrConst.KARA_MOJI);
		// 29.請求契約有無
		outDataMap.set(JBSbatCHIFM043.SEIKY_KEI_UMU,				seiky_kei_umu_flg);
		// 出力フラグ
		outDataMap.setOutFlg(true);
		return outDataMap;
	}

	/**
	 * 決済代行会社入金情報受信スキーマ更新
	 * @param  
	 * @throws Exception 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updateksdk() throws Exception {
		
		// 条件値
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		// 決済代行会社入金情報受信番号
		whereParam.setValue(ksdkcp_nkif_rcv_no);

		// 設定値
		JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();

		// 請求情報が未存在の場合
		if (seiky_no == null)
		{
			// 入金登録状態コード(処理済（エラー）)
			setParam.setValue(JACStrConst.NYUKIN_ADD_STAT_CD_ZUMI_ERR);
		}
		else
		{
			// 入金登録状態コード（処理済）
			setParam.setValue(JACStrConst.NYUKIN_ADD_STAT_CD_ZUMI);
		}
		
		//決済代行会社入金情報受信更新
		this.executeCH_T_KSDKCP_NKIF_RCV_PKUPDATE(setParam.getList().toArray(), whereParam.getList().toArray());

	}

	/**
	 * 請求契約情報存在チェック
	 * @param  
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void chkseikykei() throws Exception {
JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 請求契約番号
		paramList.setValue(seiky_kei_no);
		// 請求契約.予約適用年月日
		paramList.setValue(super.opeDate);

		executeKK_T_SEIKY_KEI_CH_SELECT_017(paramList.getList().toArray());
		// 結果を取得
		JBSbatCommonDBInterface dbMap =  db_KK_T_SEIKY_KEI.selectNext();
		if(dbMap == null)
		{
			//請求契約有無フラグ：無
			seiky_kei_umu_flg = KK_T_SEIKY_KEI_NASHI;
			// ワーニング出力（請求契約情報を取得することができませんでした）
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1630CW);
		}
		else
		{
			//請求契約有無フラグ：有
			seiky_kei_umu_flg = KK_T_SEIKY_KEI_ARI;
		}
		
	}

	/**
	 * 請求情報存在チェック
	 * @param  
	 * @throws Exception 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void chkseiky() throws Exception {
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 請求年月
		paramList.setValue(seiky_ym);
		// 請求先番号
		paramList.setValue(seiky_kei_no);
		// 群番号＋発行シーケンス
		paramList.setValue("6".concat(seiky_seq));

		executeCH_T_SEIKY_CH_SELECT_045(paramList.getList().toArray());
		// 結果を取得
		JBSbatCommonDBInterface dbMap =  db_CH_T_SEIKY.selectNext();
		if(dbMap == null)
		{
			seiky_no = null;
			// ワーニング出力（請求情報を取得することができませんでした）
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB0920AW);
		}
		else
		{
			seiky_no = dbMap.getString(JBSbatCH_T_SEIKY.SEIKY_NO);

		}
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_T_KSDKCP_NKIF_RCV.close();
		db_CH_T_SEIKY.close();
		db_KK_T_SEIKY_KEI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * SQLKEY(CH_SELECT_045)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SEIKY_YM
	 *		 	SEIKY_KEI_NO
	 *		 	EAN_BARCODE
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_CH_SELECT_045(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY.selectBySqlDefine(paramList, CH_T_SEIKY_CH_SELECT_045);
	}

	/**
	 * SQLKEY(CH_SELECT_017)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SEIKY_KEI_NO
	 *		 	RSV_APLY_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_KEI_CH_SELECT_017(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SEIKY_KEI.selectBySqlDefine(paramList, KK_T_SEIKY_KEI_CH_SELECT_017);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	入金登録状態コード				NYUKIN_ADD_STAT_CD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	KSDKCP_NKIF_RCV_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_KSDKCP_NKIF_RCV_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("NYUKIN_ADD_STAT_CD", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("KSDKCP_NKIF_RCV_NO", whereParam[0]);

		// DBアクセスを実行します
		db_CH_T_KSDKCP_NKIF_RCV.updateByPrimaryKeys(whereMap, setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
