/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTrgtWribSvcKeiUpdate
*	ソースファイル名	：JBSbatKKTrgtWribSvcKeiUpdate.java
*	作成者				：富士通　
*	作成日				：2011年07月09日
*＜機能概要＞
*　対象割引サービス契約更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/09  FJ)久保田	新規作成
*	v2.00.00	2012/04/15  FJ)藤本		【TAI-2012-0000027】排他制御対応
*	v2.01.00	2012/04/24  FJ)藤本		【IT2-2012-0000477】障害対応
*	v4.00.00	2013/01/11  FJ)岡田		【ST2-2013-0000041】障害対応
*	v5.00.00	2013/08/25  FJ)中作		【OM-2013-0000812】障害対応
*********************************************************************/
package eo.business.service;

import java.util.HashMap;
import java.util.Iterator;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM048;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_UCWK;
import eo.business.util.table.JBSbatKK_T_SVKEI_EXC_CTRL;
import eo.business.util.table.JBSbatKK_T_WRISVC_TG_KEI;
import eo.framework.application.JBSbatBusinessException;
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.log.JBSbatLogUtil;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTrgtWribSvcKeiUpdate extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(割引サービス契約)*/
	private static final String D_TBL_NAME_KK_T_WRIB_SVC_KEI = "KK_T_WRIB_SVC_KEI";

	/** テーブル(割引サービス対象契約)*/
	private static final String D_TBL_NAME_KK_T_WRISVC_TG_KEI = "KK_T_WRISVC_TG_KEI";

	/** テーブル(サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_UCWK = "KK_T_SVC_KEI_UCWK";

	/** テーブル(サービス契約排他制御)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_EXC_CTRL = "KK_T_SVKEI_EXC_CTRL";
	
	/** SQL定義キー(KK_SELECT_029)*/
	private static final String KK_T_WRISVC_TG_KEI_KK_SELECT_029 = "KK_SELECT_029";

	/** SQL定義キー(KK_SELECT_014)*/
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_014 = "KK_SELECT_014";

	/** テーブルアクセスクラス(割引サービス契約)*/
	private JBSbatSQLAccess db_KK_T_WRIB_SVC_KEI = null;

	/** テーブルアクセスクラス(割引サービス対象契約)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_TG_KEI = null;

	/** テーブルアクセスクラス(サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_UCWK = null;

	/** テーブルアクセスクラス(サービス契約排他制御)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_EXC_CTRL = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/


	/**
	 *  割引サービス契約番号
	 */
	protected String wribSvcKeiNo = "";
	
	/**
	 *  世代登録年月日時分秒
	 */
	protected String geneAddDtm = "";
	
	/**
	 *  サービス契約番号
	 */
	protected String svcKeiNo = "";
	
	/**
	 *  最終更新年月日時分秒（更新前）
	 */
	protected String lastUpdDtmBf = "";
	
	/** 
	 * サービス契約番号マップ
	 */
	private HashMap<String, String> svcKeiNoMap = null;

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_WRIB_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRIB_SVC_KEI);
		db_KK_T_WRISVC_TG_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_TG_KEI);
		db_KK_T_SVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
		db_KK_T_SVKEI_EXC_CTRL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_EXC_CTRL);
		// サービス契約番号マップの初期化
		svcKeiNoMap = new HashMap<String, String>();
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// 中間ファイルの読み込みを行います。
		getKkifm077(inMap);
		
		// サービス契約番号の排他チェックを行います。
		this.checkHaita();
		
		// SQL実行結果取得用mapを生成（割引サービス契約）
		JBSbatCommonDBInterface wribSvcKeiMap = new JBSbatCommonDBInterface(); 
		
		// 割引サービス契約テーブルに排他制御処理を実行する
		wribSvcKeiMap.setValue("WRIB_SVC_KEI_NO", wribSvcKeiNo);
		wribSvcKeiMap.setValue("GENE_ADD_DTM", geneAddDtm);
		db_KK_T_WRIB_SVC_KEI.selectByPrimaryKeysForUpdateWait(wribSvcKeiMap);
		
		// 設定項目を設定します
		String [] setParam = {commonItem.getOpeDate()};
		super.logPrint.printDebugLog("setParam(契約締結年月日)：：：：：" +  setParam[0]);
		
		// 条件項目を設定します
		String [] whereParam = {wribSvcKeiNo, geneAddDtm};
		super.logPrint.printDebugLog("whereParam(WRIB_SVC_KEI_NO )：：" +  whereParam[0]);
		super.logPrint.printDebugLog("whereParam(GENE_ADD_DTM)：：：：" +  whereParam[1]);
		
		// 割引サービス契約のPK更新を実行する
		executeKK_T_WRIB_SVC_KEI_PKUPDATE(setParam, whereParam);
		
		// 読み込んだファイルの最終レコードの場合。
		if(commonItem.isEndRecordFlg())
		{
			// 保持しているサービス契約番号でサービス契約排他制御の更新を行います。
			Iterator<String> iteSvcKeiNo = svcKeiNoMap.keySet().iterator();
			while(iteSvcKeiNo.hasNext())
			{
				// 格納されているキーを取得
				String key = iteSvcKeiNo.next();
				
				// キーでサービス契約番号を取得
				String svcKeiNo = svcKeiNoMap.get(key);
				
				if(null != svcKeiNo)
				{
					// サービス契約排他制御の最終更新年月日時分秒の更新を行う。
					JBSbatCommonDBInterface paramMap = new JBSbatCommonDBInterface();
					JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
					
					// サービス契約番号を設定
					whereMap.setValue(JBSbatKK_T_SVKEI_EXC_CTRL.SVC_KEI_NO, svcKeiNo);
					
					// 最終更新年月日時分秒を更新。
					paramMap.setValue(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM, JBSbatDateUtil.getSystemDateTimeStamp());
					db_KK_T_SVKEI_EXC_CTRL.updateByPrimaryKeys(whereMap, paramMap);
				}
			}
		}
		
		super.logPrint.printDebugLog("execute_END");
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_WRIB_SVC_KEI.close();
		db_KK_T_WRISVC_TG_KEI.close();
		db_KK_T_SVC_KEI_UCWK.close();
		db_KK_T_SVKEI_EXC_CTRL.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	契約締結年月日				KEI_CNC_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	WRIB_SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRIB_SVC_KEI_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("KEI_CNC_YMD", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("WRIB_SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		db_KK_T_WRIB_SVC_KEI.updateByPrimaryKeys(whereMap, setMap);
	}
	
	/**
	 * SQLKEY(KK_SELECT_029)で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_WRISVC_TG_KEI_KK_SELECT_029(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_WRISVC_TG_KEI.selectBySqlDefine(paramList, KK_T_WRISVC_TG_KEI_KK_SELECT_029);
	}

	/**
	 * SQLKEY(KK_SELECT_014)で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_UCWK_KK_SELECT_014(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_SVC_KEI_UCWK_KK_SELECT_014);
	}
	
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 
	 * 中間ファイルの読み込みを行います。
	 * 
	 * @param inMap 中間ファイルの値。
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void getKkifm077(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		wribSvcKeiNo   = inMap.getString(JBSbatKKIFM048.WRIB_SVC_KEI_NO);		// 割引サービス契約番号
		geneAddDtm     = inMap.getString(JBSbatKKIFM048.GENE_ADD_DTM);			// 世代登録年月日時分秒
		svcKeiNo       = inMap.getString(JBSbatKKIFM048.SVC_KEI_NO);			// サービス契約番号
		lastUpdDtmBf   = inMap.getString(JBSbatKKIFM048.LAST_UPD_DTM_BF);		// 最終更新年月日時分秒（更新前）
	}
	
	/**
	 * 排他チェックを行います。
	 * <br>
	 * @param svc_kei_no サービス契約番号
	 * @param last_upd_dtm_Bf 最終更新年月日時分秒
	 * @throws Exception 
	 */
	private void checkHaita() throws Exception
	{
		// サービス契約番号に値が無い場合
		if ("".equals(svcKeiNo))
		{
			// 割引サービス対象契約TBLより割引サービス契約番号に紐づくサービス契約内訳番号を取得します。
			// 割引サービス対象契約TBL検索「KK_T_WRISVC_TG_KEI_KK_SELECT_029」
			JBSbatCommonDBInterface outMap029 = this.selectWrisvcTgKei029(wribSvcKeiNo);
			
			// 検索結果件数分、サービス契約内訳TBLを検索します。
			while (null != outMap029)
			{
				// サービス契約内訳番号
				String svcKeiUcwkNo = JBSbatStringUtil.Rtrim(
						outMap029.getString(JBSbatKK_T_WRISVC_TG_KEI.SVC_KEI_UCWK_NO));
				
				super.logPrint.printDebugLog("★サービス契約内訳番号：" +  svcKeiUcwkNo);
				
				// サービス契約内訳TBLよりサービス契約内訳番号に紐づくサービス契約番号を取得します。
				// サービス契約内訳TBL検索「KK_T_SVC_KEI_UCWK_KK_SELECT_014」
				String svcKeiNoRes = this.selectSvcKeiUcwk014(svcKeiUcwkNo);
				
				if (!"".equals(svcKeiNoRes))
				{
					// 取得したサービス契約番号で、サービス契約排他制御を行います。
					svcKeiNo = svcKeiNoRes;
					
					// サービス契約番号保持マップに未設定のサービス契約番号の場合
					if (null == svcKeiNoMap.get(svcKeiNo))
					{
//						// サービス契約排他制御より最終更新日時を取得します。
//						String lastUpdDtmAf = searchSvkeiExcCtrl();
//						
//						// 「最終更新年月日時分秒（更新前）」には、取得した「最終更新日時」をセットして、
//						// タイムスタンプ比較なしで排他制御処理を実行します。
//						lastUpdDtmBf = lastUpdDtmAf;
//						
//						if (null == isTimeStampCheck(lastUpdDtmAf))
//						{
//							throw new JBSbatBusinessException("EKKB0360KE", new String[]{"サービス契約排他制御TBL", svcKeiNo});
//						}
						
						// 排他チェックOKの場合にマップに保持します。
						svcKeiNoMap.put(svcKeiNo, svcKeiNo);
					}
				}
				
				// 次のレコードを取得します。
				outMap029 = db_KK_T_WRISVC_TG_KEI.selectNext();
			}
			
			// 使用したクラス変数を初期化しておきます。
			svcKeiNo = "";			// サービス契約番号
			lastUpdDtmBf = "";		// 最終更新年月日時分秒（更新前）
			
		}
		// サービス契約番号に値がある場合
		else
		{
			// サービス契約番号保持マップに未設定のサービス契約番号の場合
			if(null == svcKeiNoMap.get(svcKeiNo))
			{
//				// サービス契約排他制御より最終更新日時を取得し同じ場合排他をかけます。
//				String lastUpdDtmAf = searchSvkeiExcCtrl();
//				if(null == isTimeStampCheck(lastUpdDtmAf))
//				{
//					throw new JBSbatBusinessException("EKKB0360KE", new String[]{"サービス契約排他制御TBL", svcKeiNo});
//				}
				// 排他チェックOKの場合にマップに保持します。
				svcKeiNoMap.put(svcKeiNo, svcKeiNo);
			}
		}
	}
	
	/**
	 * サービス契約排他制御テーブルの検索を行います。
	 * <br>
	 * @param svc_kei_no サービス契約番号
	 * @throws Exception 
	 */
/*	private String searchSvkeiExcCtrl() throws Exception
	{
		// SQL実行結果取得用mapを生成（サービス契約TBL）
		JBSbatCommonDBInterface pkMap = new JBSbatCommonDBInterface();
	
		// 条件項目を設定します
		pkMap.setValue(JBSbatKK_T_SVKEI_EXC_CTRL.SVC_KEI_NO, svcKeiNo);
		super.logPrint.printDebugLog("pkParam(ｻｰﾋﾞｽ契約番号)：：：：：：" +  svcKeiNo);
	
		// PK検索を行う
		JBSbatCommonDBInterface outMap = db_KK_T_SVKEI_EXC_CTRL.selectByPrimaryKeys(pkMap);
		if(null == outMap)
		{
			return "";
		}
		
		return outMap.getString(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM);
	}
*/	
	/**
	 * タイムスタンプチェックを実施します。
	 * <br>
	 * @param lastUpdDtmAf 最終更新年月日時分秒。
	 * @throws Exception 
	 */
/*	private JBSbatCommonDBInterface isTimeStampCheck(String lastUpdDtmAf) throws Exception
	{
		// ログレベルがデバッグモードの場合
		if(super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
		{
			super.logPrint.printDebugLog("更新年月日時分秒(初期検索)：" + lastUpdDtmBf);
			super.logPrint.printDebugLog("更新年月日時分秒(直前値)::：" + lastUpdDtmAf);
		}
		
		// タイムスタンプチェックの実施。
		if(lastUpdDtmAf.equals(lastUpdDtmBf))
		{
			JBSbatCommonDBInterface svkeiExcCtrlMap = new JBSbatCommonDBInterface();
			
			// サービス契約排他制御テーブルに排他制御処理を実行する
			svkeiExcCtrlMap.setValue(JBSbatKK_T_SVKEI_EXC_CTRL.SVC_KEI_NO, svcKeiNo);
			JBSbatCommonDBInterface dbmap = db_KK_T_SVKEI_EXC_CTRL.selectByPrimaryKeysForUpdateWait(svkeiExcCtrlMap);
			
			if(super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
			{
				super.logPrint.printDebugLog("タイムスタンプチェック結果_OK");
			}
			return dbmap;
		}
	
		if(super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
		{
			super.logPrint.printDebugLog("タイムスタンプチェック結果_NG");
		}
		return null;
	}
*/	
	/**
	 * 割引サービス対象契約TBLの検索を行います。(KK_SELECT_029)
	 * <br>
	 * @param wribSvcKeiNoPara 割引サービス契約番号
	 * @return JBSbatCommonDBInterface 入出力インターフェースオブジェクト
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectWrisvcTgKei029(String wribSvcKeiNoPara) throws Exception
	{
		super.logPrint.printDebugLog("selectWrisvcTgKei029_START");
		
		// 割引サービス対象契約TBLを検索してサービス契約番号がNullのレコードを取得します。
		// 割引サービス対象契約TBL検索条件項目を設定します。
		Object[] paramList = new Object[1];
		
		paramList[0] = wribSvcKeiNoPara;		// 割引サービス契約番号
		super.logPrint.printDebugLog("paramList[0]：" + paramList[0]);
		
		// 割引サービス対象契約TBL検索処理を実行します。
		executeKK_T_WRISVC_TG_KEI_KK_SELECT_029(paramList);
		
		// 検索結果を取得します。
		JBSbatCommonDBInterface outDbMap = db_KK_T_WRISVC_TG_KEI.selectNext();
		
		super.logPrint.printDebugLog("selectWrisvcTgKei029_END");
		
		return outDbMap;
	}
	
	/**
	 * サービス契約内訳TBLの検索を行います。(KK_SELECT_014)
	 * <br>
	 * @param svcKeiUcwkNo サービス契約内訳番号
	 * @return String サービス契約番号
	 * @throws Exception メソッド内で発生した例外全般
	 */
	private String selectSvcKeiUcwk014(String svcKeiUcwkNo) throws Exception
	{
		super.logPrint.printDebugLog("selectSvcKeiUcwk014_START");
		
		// サービス契約番号
		String svcKeiNoRes = "";
		
		// サービス契約内訳TBLを検索してサービス契約内訳番号に紐づくサービス契約番号を取得します。
		// サービス契約内訳TBL検索条件項目を設定します。
		Object[] paramList = new Object[2];
		
		paramList[0] = svcKeiUcwkNo;		// サービス契約内訳番号
		paramList[1] = super.opeDate;		// 予約適用年月日
		super.logPrint.printDebugLog("paramList[0]：" + paramList[0]);
		super.logPrint.printDebugLog("paramList[1]：" + paramList[1]);
		
		// サービス契約内訳TBL検索処理を実行します。
		executeKK_T_SVC_KEI_UCWK_KK_SELECT_014(paramList);
		
		// 検索結果を取得します。
		JBSbatCommonDBInterface outDbMap = db_KK_T_SVC_KEI_UCWK.selectNext();
		
		// 検索結果を判断します。
		if (null != outDbMap)
		{
			// サービス契約番号
			svcKeiNoRes = JBSbatStringUtil.Rtrim(outDbMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_NO));
		}
		
		super.logPrint.printDebugLog("selectSvcKeiUcwk014_END");
		
		return svcKeiNoRes;
	}
	
}
