/*********************************************************************
 *  All Rights reserved,Copyright (c) Fujitsu ,2016					 *
 **********************************************************************
 *＜プログラム内容＞
 *	システム名			：eo顧客基幹システム
 *	モジュール名		：JBSbatCHMineoMailAddstk
 *	ソースファイル名	：JBSbatCHMineoMailAddstk.java
 *	作成者				：富士通　
 *	作成日				：2016年11月02日
 *＜機能概要＞
 *　ｍｉｎｅｏ連絡先メールアドレス取得部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v28.00.00	2016/11/05  FJ)佐々木	【ANK-3033-00-00】mineoの利用停止・強制解約処理の自動化
 *	v32.00.00	2017/04/24  FJ)清原		【ANK-3170-00-00】mineo利用停止・強制解約予告メール送信先へのコンテンツ連絡用メールアドレス追加
 *	v41.00.00	2019/02/01	FJ)中野		【ANK-3396-00-00】利用停止スケジュールの変更対応
 *********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCHIFM274;
import eo.business.util.file.JBSbatCHIFM275;
import eo.business.util.table.JBSbatCK_T_RRKS;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.common.util.JCHStringUtil;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.application.JCCbatFrameworkException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JCCBatchEsbInterface;

/**
 * (クラスの機能概要)
 * <p>
 *<BR>
 * 
 * @author 富士通
 */
public class JBSbatCHMineoMailAddstk extends JBSbatBusinessService {
	/** ▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼ */
	/** ▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲ */
	
	// v32.00.00 ANK-3170-00-00 Add Start
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";
	
	/** SQL定義キー(CH_SELECT_013)*/
	private static final String KK_T_SVC_KEI_CH_SELECT_013 = "CH_SELECT_013";
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	// v32.00.00 ANK-3170-00-00 Add End

	/** mineo連絡先メールアドレス取得CC ユースケースID */
	private static final String USECASE_ID = "CHSV0080";

	/** mineo連絡先メールアドレス取得CC オペレーションID */
	private static final String OPERATION_ID = "CHSV0080OP";

	/** mineo連絡先メールアドレス取得CCマップ リクエストキー */
	private static final String CHSV008001CC = "CHSV008001CC";

	/** mineo連絡先メールアドレス取得処理・mineo連絡先メールアドレス取得リスト */
	private static final String CHSV0080_CHSV008001CC_LIST = "CHSV008001CCList";

	/** mineo連絡先メールアドレス取得処理・サービス契約番号（入力） */
	private static final String CHSV0080_KEY_SVC_KEI_NO = "key_svc_kei_no";

	/** mineo連絡先メールアドレス取得処理・mineo連絡先メールアドレス */
	private static final String CHSV0080_MINEOMAILADDRRESS = "mineoMailaddress";

	/** 最大処理件数 */
	private static int maxShrCnt = 0;

	/** エラーカウント */
	private static int errorcount = 0;

	/** 最大処理件数 */
	private static final String APLCONST_CH_MAX_MINEO_MAILADD_GET_CALL_CNT = "CH_MAX_MINEO_MAILADD_GET_CALL_CNT";

	/** 入力ファイルリスト */
	ArrayList<Object> inputFileList = new ArrayList<Object>();

	/** フリー項目 */
	private String[] freeItems = null;

	/**
	 * 初期処理
	 * 
	 * @param JBSbatCommonItem
	 *            commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception {
		/** ▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼ */
		/** ▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼ */
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// v32.00.00 ANK-3170-00-00 Add Start
		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		// v32.00.00 ANK-3170-00-00 Add End
		
		// FREEITEMから取得
		this.freeItems = super.freeItem.split(";");

		// 読み込むファイルの名前
		String inputDefFileName = (freeItems[0]);
		String inputFileName = (freeItems[1]);

		// ファイル読込処理
		setElecSohinkList(inputFileName, inputDefFileName);

		/** ▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲ */
		/** ▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲ */
	}

	/**
	 * 主処理
	 * 
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public JBSbatOutputItem execute() throws Exception {
		/** ▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼ */

		ArrayList<HashMap<String, String>> inputList = new ArrayList<HashMap<String, String>>();
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		// 最大処理件数取得
		maxShrCnt = Integer.parseInt(JBSbatAplConst.getAplConstValue(APLCONST_CH_MAX_MINEO_MAILADD_GET_CALL_CNT));

		HashMap<String, String> paramMap = null;

		HashMap<String, String> inputFileRowMap = null;

		// カウント変数
		int i = 0;
		HashMap<String, HashMap<String, String>> ccRsltMap = new HashMap<String, HashMap<String, String>>();

		for (i = 0; inputFileList.size() > i; i++) 
		{
			
			// 入力ファイルのマップを取得
			inputFileRowMap = (HashMap<String, String>) inputFileList.get(i);
			

			// 格納用のマップを作成
			paramMap = new HashMap<String, String>();

			// 格納用のマップにサービス契約番号を設定
			paramMap.put(CHSV0080_KEY_SVC_KEI_NO, inputFileRowMap.get(JBSbatCHIFM274.SVC_KEI_NO));

			// 処理件数 + 1 / 最大件数の余りが0の場合サービスIFを実行する
			if ((i + 1) % maxShrCnt == 0) 
			{
				// 処理対象リストに情報を退避する
				inputList.add(paramMap);
				// 指定した件数でサービスを実行する
				executeRoop(inputList, outputBean, ccRsltMap);
				// 検索処理が完了したのでinputパラメータを初期化する
				inputList = new ArrayList<HashMap<String, String>>();

			}
			else
			{
				// 処理対象が最大処理件数に見たない場合は、処理対象リストに情報を退避する
				inputList.add(paramMap);
			}
		}

		// 最大処理件数単位の発行後、処理対象リストに未発行のレコードが存在した場合、SIFを発行する
		if (!inputList.isEmpty())
		{
			// 指定した件数以下でサービスを実行する
			executeRoop(inputList, outputBean, ccRsltMap);
		}
		// -------------------------------
		// 出力処理
		// -------------------------------
		// ファイル出力処理
		outPutElecShkHsFile(outputBean, ccRsltMap);

		// 出力ファイルの返却
		return outputBean;
		/** ▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲ */
	}

	@SuppressWarnings("unchecked")
	private void executeRoop(ArrayList<HashMap<String, String>> inputList, JBSbatOutputItem outputBean, HashMap<String, HashMap<String, String>> ccRsltMap) throws Exception {

		// mineo連絡先メールアドレス取得CC入力情報
		HashMap<String, Object> excuteMap = new HashMap<String, Object>();

		// mineo連絡先メールアドレス取得CC出力情報
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// mineo連絡先メールアドレス取得リスト
		excuteMap.put(CHSV0080_CHSV008001CC_LIST, inputList);

		// -------------------------------
		// CC呼出
		// -------------------------------

		// mineo連絡先メールアドレス取得CC呼出
		outputMap = doExecute(excuteMap);

		// -------------------------------
		// CC呼出後処理
		// -------------------------------

		// 出力リストからCCマップを取得
		HashMap<String, Object> outPutCcMap = (HashMap<String, Object>) outputMap.get(CHSV008001CC);

		// CCマップからCCリストを取得して格納
		ArrayList<HashMap<String, String>> outPutCCList = (ArrayList<HashMap<String, String>>) outPutCcMap.get(CHSV0080_CHSV008001CC_LIST);

		// 検索結果をHashMapに保持する
		setCcOuMap(outPutCCList, ccRsltMap);
	}

	/**
	 * 
	 * ｍｉｎｅｏメール送信対象情報ファイル読込
	 * 
	 * @param path
	 *            ファイルパス
	 * @param defPath
	 *            ファイル項目定義パス
	 */
	private void setElecSohinkList(String path, String defPath) throws Exception {

		JBSbatServiceInterfaceMap rowMap = null;

		// ファイル読込処理
		JBSbatInputFileUtil readObj = new JBSbatInputFileUtil(path);
		JBSbatDefFileUtil fileDef = new JBSbatDefFileUtil(JBSbatAplConst.getAplConstValue("IND") + defPath, readObj);
		try 
		{
			readObj.createReader();

			String line = "";
			while (readObj.ready()) {

				line = readObj.readLine();
				rowMap = fileDef.lineToObject(line, readObj, 0);

				// 入力ファイルリストに追加
				this.inputFileList.add((retMineoMailsendinfoMap(rowMap)));

			}
		}
		finally 
		{
			// 閉じる
			if (readObj != null) 
			{
				readObj.close();
			}
			// 初期化
			readObj = null;
		}
	}

	/**
	 * 
	 * ｍｉｎｅｏメール送信対象情報を名称付きで返却（既存名称と合わせて返却する.）
	 * 
	 * @param adRowMap
	 * @return ret
	 * @throws Exception
	 */
	private HashMap<String, String> retMineoMailsendinfoMap(JBSbatServiceInterfaceMap adRowMap) throws Exception {

		HashMap<String, String> ret = new HashMap<String, String>();

		ret.put(JBSbatCHIFM274.SVC_KEI_NO, adRowMap.getString(JBSbatCHIFM274.SVC_KEI_NO));
		ret.put(JBSbatCHIFM274.MINEO_TKSK_RSN_CD, adRowMap.getString(JBSbatCHIFM274.MINEO_TKSK_RSN_CD));
		ret.put(JBSbatCHIFM274.SEIKY_KEI_NO, adRowMap.getString(JBSbatCHIFM274.SEIKY_KEI_NO));
		ret.put(JBSbatCHIFM274.TOKUSOKU_NO, adRowMap.getString(JBSbatCHIFM274.TOKUSOKU_NO));
		// ANK-3396-00-00 ADD START
		ret.put(JBSbatCHIFM274.EARLY_USE_STP_FLG, adRowMap.getString(JBSbatCHIFM274.EARLY_USE_STP_FLG));
		// ANK-3396-00-00 ADD END
		return ret;
	}

	/**
	 * mineo連絡先メールアドレス取得CCパラメータ設定処理
	 * 
	 * @return inputList
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap<String, String>> setCCInParam() throws Exception {
		ArrayList<HashMap<String, String>> inputList = new ArrayList<HashMap<String, String>>();

		HashMap<String, String> paramMap = new HashMap<String, String>();

		// CCパラメータセット処理
		for (int i = 0; i < inputFileList.size(); i++)
		{
			// 入力ファイルのマップを取得
			HashMap<String, String> inputFileRowMap = (HashMap<String, String>) inputFileList
					.get(i);

			// 格納用のマップを作成
			paramMap = new HashMap<String, String>();

			// 格納用のマップにサービス契約番号を設定
			paramMap.put(CHSV0080_KEY_SVC_KEI_NO, inputFileRowMap.get(JBSbatCHIFM274.SVC_KEI_NO));

			// 入力リストに追加
			inputList.add(paramMap);
		}
		return inputList;
	}

	/**
	 * mineo連絡先メールアドレス取得CC呼び出し処理
	 * 
	 * @param excuteMap
	 *            入力電文
	 * @return outputMap 処理結果
	 * @throws Exception
	 */
	private HashMap<String, Object> doExecute(HashMap<String, Object> excuteMap) throws Exception {

		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		// mineo連絡先メールアドレス取得CC呼び出し
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, USECASE_ID);
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID,
				OPERATION_ID);
		// サービスに渡す業務データを格納するMAPです。
		HashMap<String, Object> inputMap = new HashMap<String, Object>();

		// inputMapにCCに必要な情報をセットする
		inputMap.put(CHSV008001CC, excuteMap);

		// サービスの処理結果が格納されるMAPを生成
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// mineo連絡先メールアドレス取得CCを呼び出す
		try 
		{
			JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
		} 
		catch (JCCbatFrameworkException e)
		{

			String[] msgParam = new String[] { "CHSV0080" };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB1540CE, msgParam);
		}
		// 処理結果を返却する
		return outputMap;
	}

	/**
	 * mineo連絡先メールアドレスCC取得結果マップ設定
	 * 
	 * @param ccRsltMap
	 * @param outputMapCcList
	 * @param ccRsltMap
	 * @param inMap
	 *            入力電文
	 * @return
	 * @return HashMap<String, Object> 処理結果
	 * @throws Exception
	 */
	private void setCcOuMap(ArrayList<HashMap<String, String>> outputMapCcList,
			HashMap<String, HashMap<String, String>> ccRsltMap)
			throws Exception {
		HashMap<String, String> ccOutPutListRowMap = new HashMap<String, String>();
		HashMap<String, String> mineoMailaddMap = null;

		for (int i = 0; i < outputMapCcList.size(); i++) 
		{
			mineoMailaddMap = new HashMap<String, String>();

			ccOutPutListRowMap = outputMapCcList.get(i);

			for (int j = 0; j < ccOutPutListRowMap.size() - 1; j++)
			{

				// 取得したメールアドレスの件数分、連番を付加したキーで格納する
				mineoMailaddMap.put(CHSV0080_MINEOMAILADDRRESS + Integer.toString(j), ccOutPutListRowMap.get(CHSV0080_MINEOMAILADDRRESS + Integer.toString(j)));
			}
			ccRsltMap.put(ccOutPutListRowMap.get(CHSV0080_KEY_SVC_KEI_NO), mineoMailaddMap);
		}
	}

	/**
	 * ファイル出力処理
	 * 
	 * @param outputBean
	 *            出力電文
	 * @param ccRsltMap
	 * @param outputMapCcList
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void outPutElecShkHsFile(JBSbatOutputItem outputBean,
			HashMap<String, HashMap<String, String>> ccRsltMap)
			throws Exception {

		// サービス契約番号
		String svcKeiNo = "";

		String mailaddress = "";

		// mineo連絡先メールアドレスマップ
		HashMap<String, String> mineoMailAddMap = null;

		// 判定用マップにレコードを格納
		HashMap<String, String> inputFileRowMap = null;

		// 出力処理
		for (int i = 0; i < inputFileList.size(); i++) 
		{
			// 判定用マップにレコードを格納
			inputFileRowMap = (HashMap<String, String>) inputFileList.get(i);

			// サービス契約番号を取得
			svcKeiNo = inputFileRowMap.get(JBSbatCHIFM274.SVC_KEI_NO);

			// サービス契約番号を元にリストを取得
			mineoMailAddMap = ccRsltMap.get(svcKeiNo);
			// ファイル出力用インスタンスの作成（ｍｉｎｅｏメール送信アドレス付加情報）
			JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();

			// 1件もmineoメールアドレスが取得できなかった場合、ワーニングを出力する。
			if (mineoMailAddMap.size() == 0)
			{

				super.logPrint.printBusinessErrorLog(
						JPCBatchMessageConstant.ECHB1530TW, new String[] {"メール宛先", svcKeiNo });
				errorcount++;
			} 
			else 
			{
				for (int j = 0; j < mineoMailAddMap.size(); j++) 
				{
					mailaddress = mineoMailAddMap
							.get(CHSV0080_MINEOMAILADDRRESS + j);

					// ｍｉｎｅｏメール送信アドレス付加情報を編集
					outmap.setString(JBSbatCHIFM275.SVC_KEI_NO, svcKeiNo);
					outmap.setString(JBSbatCHIFM275.TOKUSOKU_NO, inputFileRowMap.get(JBSbatCHIFM274.TOKUSOKU_NO));
					outmap.setString(JBSbatCHIFM275.MINEO_TKSK_RSN_CD, inputFileRowMap.get(JBSbatCHIFM274.MINEO_TKSK_RSN_CD));
					outmap.setString(JBSbatCHIFM275.SEIKY_KEI_NO, inputFileRowMap.get(JBSbatCHIFM274.SEIKY_KEI_NO));
					outmap.setString(JBSbatCHIFM275.MINEO_MAIL_ADDRESS, mailaddress);
					// ANK-3396-00-00 ADD START
					outmap.setString(JBSbatCHIFM275.EARLY_USE_STP_FLG, inputFileRowMap.get(JBSbatCHIFM274.EARLY_USE_STP_FLG));
					// ANK-3396-00-00 ADD END
					outmap.setOutFlg(true);
					outputBean.addOutMapList(outmap);
				}
			}
			// v32.00.00 ANK-3170-00-00 Add Start
			// コンテンツメール取得処理
			outContMail(outputBean, inputFileRowMap);
			// v32.00.00 ANK-3170-00-00 Add End
		}
		// エラー（メールアドレス取得失敗エラー）が存在する場合
		if (0 < errorcount )
		{
			// 単一サービス呼び出しパターンの場合は、エラー件数を設定することで警告終了する
			commonItem.setErrorCount(errorcount );
		}
		return;
	}
	
	// v32.00.00 ANK-3170-00-00 Add Start 
	/**
	 * 出力情報（コンテンツ連絡先）を作成
	 * @param outputBean 出力電文
	 * @param inputFileRowMap 入力ファイルマップ
	 * @throws Exception
	 */
	private void outContMail(JBSbatOutputItem outputBean,
			HashMap<String, String> inputFileRowMap) throws Exception 
	{
		//サービス契約番号
		String svcKeiNo = inputFileRowMap.get(JBSbatCHIFM274.SVC_KEI_NO);
		
		//コンテンツメールアドレス
		String contMallAdress = getContMailAddress(svcKeiNo);
		
		if(!JCHStringUtil.isNullBlank(contMallAdress))
		{
			//ファイル出力（コンテンツメールアドレス）
			outMailSendInfoCont(outputBean, inputFileRowMap, contMallAdress);
		}
	}

	/**
	 * コンテンツメール送信先情報出力
	 * @param outputBean 出力電文
	 * @param inputFileRowMap 入力ファイルマップ
	 * @param contMallAdress コンテンツメールアドレス
	 * @throws Exception
	 */
	private void outMailSendInfoCont(JBSbatOutputItem outputBean, HashMap<String, String> inputFileRowMap, String contMallAdress) throws Exception 
	{
		// ファイル出力用インスタンスの作成（ｍｉｎｅｏメール送信アドレス付加情報）
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();

		outmap.setString(JBSbatCHIFM275.SVC_KEI_NO, inputFileRowMap.get(JBSbatCHIFM274.SVC_KEI_NO));
		outmap.setString(JBSbatCHIFM275.TOKUSOKU_NO, inputFileRowMap.get(JBSbatCHIFM274.TOKUSOKU_NO));
		outmap.setString(JBSbatCHIFM275.MINEO_TKSK_RSN_CD, inputFileRowMap.get(JBSbatCHIFM274.MINEO_TKSK_RSN_CD));
		outmap.setString(JBSbatCHIFM275.SEIKY_KEI_NO, inputFileRowMap.get(JBSbatCHIFM274.SEIKY_KEI_NO));
		outmap.setString(JBSbatCHIFM275.MINEO_MAIL_ADDRESS, contMallAdress);
		// ANK-3396-00-00 ADD START
		outmap.setString(JBSbatCHIFM275.EARLY_USE_STP_FLG, inputFileRowMap.get(JBSbatCHIFM274.EARLY_USE_STP_FLG));
		// ANK-3396-00-00 ADD END

		outmap.setOutFlg(true);
		outputBean.addOutMapList(outmap);
	}

	/**
	 * コンテンツ連絡先メールアドレス取得
	 * @param svcKeiNo サービス契約番号
	 * @return コンテンツ連絡先メールアドレス
	 * @throws Exception
	 */
	private String getContMailAddress(String svcKeiNo) throws Exception 
	{
		String mlad = "";
		
		// パラメータの設定
		Object[] param = new Object[3];
		param[0] = svcKeiNo;
		param[1] = super.opeDate;
		param[2] = super.opeDate;
		
		//サービス契約スキーマ検索実行
		executeKK_T_SVC_KEI_CH_SELECT_013(param);
		
		JBSbatCommonDBInterface dbSvcKei = db_KK_T_SVC_KEI.selectNext();
		
		// 検索結果がなくなるまでループを行う
		while (dbSvcKei != null) 
		{
			mlad = dbSvcKei.getString(JBSbatCK_T_RRKS.MLAD);
			// 次レコードの読み取り
			dbSvcKei = db_KK_T_SVC_KEI.selectNext();
		}
		return mlad;
	}

	/**
	 * SQLKEY(CH_SELECT_013)で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_SVC_KEI_CH_SELECT_013(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_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_CH_SELECT_013);
	}
	// v32.00.00 ANK-3170-00-00 Add End
	

	/**
	 * 業務サービス終了処理
	 * 
	 * @throws Exception
	 */
	public void terminal() throws Exception {
		/** ▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼ */
		/** ▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼ */
		/** ▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲ */
		// v32.00.00 ANK-3170-00-00 Add Start
		db_KK_T_SVC_KEI.close();
		// v32.00.00 ANK-3170-00-00 Add End
		/** ▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲ */
	}

	/** ▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼ */
	/** ▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲ */
}
