/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKoshumoTlnRirekiMatch
*	ソースファイル名	：JBSbatKKKoshumoTlnRirekiMatch.java
*	作成者				：FJ　
*	作成日				：2011年04月27日
*＜機能概要＞
*　公衆網電話番号履歴情報マッチング部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/04/27   FJ			新規作成
*	v3.00.00	2012/03/27   FJ			モデルチームからの指摘事項修正
*										（回復、解約時の項目編集要領修正）
*   ST1-2012-0000494   2012/09/12   FJ)中野     VOIPIDを変更して連携されると公衆網通話実績に登録できない
*	v4.00.00	2013/05/06  FJ)坂本     回線対象サービス契約の取得方法不備対応
*	v8.00.00	2014/03/25  FJ)北谷     OM-2014-0001209 回復＆解約でエラー
*********************************************************************/
package eo.business.service;

import java.util.HashMap;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM009;
import eo.business.util.file.JBSbatKKIFM010;
import eo.business.util.table.JBSbatKK_T_KOSHUMO_TW_JSK;
import eo.business.util.table.JBSbatKK_T_OPSVKEI_ISP;
import eo.business.util.table.JBSbatKK_T_OP_SVC_KEI;
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.JBSbatStringUtil;

/**
* 公衆網電話番号実績テーブルとオプションサービス契約テーブル、オプションサービス契約＜ISP＞テーブルとの整合性チェックを行う。
* その結果をＳＩＰ情報連携公衆網電話番号履歴更新ファイル、整合性チェックエラーファイルに出力する。 <p>
*<BR>
* @author FJ
*/
public class JBSbatKKKoshumoTlnRirekiMatch extends JBSbatBusinessService
{
	
	/** 退避用領域キー(スキップサービス契約番号)*/
	private static final String TMP_SKIP_SVC_KEI_NO = "TMP_SKIP_SVC_KEI_NO";
	
	/** 退避用領域キー(スキップサービス契約番号)*/
	private static final String TMP_TELVISION_EONET_POSSIBLE_USE_RESULT = "TMP_TELVISION_EONET_POSSIBLE_USE_RESULT";
	
	// ST1-2012-0000494 2012/09/12 MOD START
	/** 年月日時分秒最大値*/
	//private static final String DATETIME_MAXVALUE = "20991231235959999";
	private static final String DATETIME_MAXVALUE = "20991231000000000";
	// ST1-2012-0000494 2012/09/12 MOD START

	// ST1-2012-0000494 2012/09/12 ADD START
	/** 時分秒最大値*/
	private static final String TIME_MAXVALUE = "000000000";
	// ST1-2012-0000494 2012/09/12 ADD END
	
	/** データ種別(電話番号登録処理)*/
	private static final String DATA_SBT_TURK = "1";
	
	/** データ種別(電話番号解約処理)*/
	private static final String DATA_SBT_KIYK = "2";
	
	/** データ種別(電話番号変更処理)*/
	private static final String DATA_SBT_TEL_HNKO = "3";
	
	/** データ種別(公衆網設定のユーザー変更処理)*/
	private static final String DATA_SBT_USER_HNKO = "4";
	
	/** 処理種別(回復)*/
	private static final String SHORI_SBT_KIFK = "01";
	
	/** 処理種別(登録)*/
	private static final String SHORI_SBT_TURK = "02";
	
	/** 処理種別(解約)*/
	private static final String SHORI_SBT_KIYK = "03";
	
	/** 処理種別(回復＆解約)*/
	private static final String SHORI_SBT_KIFK_KIYK = "04";
	
	/** 処理種別(登録＆解約)*/
	private static final String SHORI_SBT_TURK_KIYK = "05";
	
	/** 処理種別(番号変更)*/
	private static final String SHORI_SBT_TEL_HNKO = "06";
	
	/** 処理種別(回復＆番号変更)*/
	private static final String SHORI_SBT_KIFK_TEL_HNKO = "07";
	
	/** 処理種別(登録＆番号変更)*/
	private static final String SHORI_SBT_TURK_TEL_HNKO = "08";
	
	/** 処理種別(ユーザー変更)*/
	private static final String SHORI_SBT_USER_HNKO = "09";
	
	/** 処理種別(回復＆ユーザー変更)*/
	private static final String SHORI_SBT_KIFK_USER_HNKO = "10";
	
	/** 処理種別(登録＆ユーザー変更)*/
	private static final String SHORI_SBT_TURK_USER_HNKO = "11";
	
	/** オプションサービスコード(Ｔｅｌｖｉｓｉｏｎ)*/
	private static final String  OP_SVC_CD_TELVISION = "0070";
	
	/** オプションサービスコード(eo-netフォン)*/
	private static final String  OP_SVC_CD_EO_NET_PHONE = "0100";
	
	/** eoオプション(Ｔｅｌｖｉｓｉｏｎ)*/
	private static final String  EO_OP_TELVISION = "12";
	
	/** eoオプション(eo-netフォン)*/
	private static final String  EO_OP_EO_NET_PHONE = "10";
	
	/** エラーメッセージ(オプションサービス契約検索件数0件時エラー)*/
	private static final String  ERR_MSG_01 = "オプションサービス契約検索件数0件時エラー";
	
	/** エラーメッセージ(電話番号あり状態にて、電話番号登録データ連携時エラー)*/
	private static final String  ERR_MSG_02 = "電話番号あり状態にて、電話番号登録データ連携時エラー";
	
	/** エラーメッセージ(登録・処理種別エラー)*/
	private static final String  ERR_MSG_03 = "登録・処理種別エラー";
	
	/** エラーメッセージ(解約・処理種別エラー)*/
	private static final String  ERR_MSG_04 = "解約・処理種別エラー";
	
	/** エラーメッセージ(電話番号変更・処理種別エラー)*/
	private static final String  ERR_MSG_05 = "電話番号変更・処理種別エラー";
	
	/** エラーメッセージ(電話番号変更・処理種別エラー)*/
	private static final String  ERR_MSG_06 = "VOIPユーザID変更・処理種別エラー";
	
	/** エラーメッセージ(本体サービス解約時エラー)*/
	private static final String  ERR_MSG_07 = "本体サービス解約時エラー";
	
	/** エラーメッセージ(未取込データワーニング)*/
	private static final String  ERR_MSG_08 = "未取込データワーニング";
	
	/** エラーメッセージ(オプションサービス検索件数0件時エラー)*/
	private static final String  ERR_MSG_09 = "オプションサービス検索件数0件時エラー";
	
	// OM-2014-0001209 2014/03/25 start
	/** エラーメッセージ(オプションサービス検索件数0件時エラー)*/
	private static final String  ERR_MSG_10 = "回復＆解約はＳＩＰ情報連携公衆網電話番号履歴更新ファイルに出力されなくなりました";
	// OM-2014-0001209 2014/03/25 end
	
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(オプションサービス契約)*/
	private static final String D_TBL_NAME_KK_T_OP_SVC_KEI = "KK_T_OP_SVC_KEI";

	/** テーブル(公衆網通話実績)*/
	private static final String D_TBL_NAME_KK_T_KOSHUMO_TW_JSK = "KK_T_KOSHUMO_TW_JSK";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(オプションサービス)*/
	private static final String D_TBL_NAME_KK_M_OP_SVC = "KK_M_OP_SVC";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_006)*/
	private static final String KK_T_KOSHUMO_TW_JSK_KK_SELECT_006 = "KK_SELECT_006";

	/** SQL定義キー(KK_SELECT_007)*/
	private static final String KK_T_KOSHUMO_TW_JSK_KK_SELECT_007 = "KK_SELECT_007";

	/** SQL定義キー(KK_SELECT_010)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_010 = "KK_SELECT_010";

	/** SQL定義キー(KK_SELECT_011)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_011 = "KK_SELECT_011";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_M_OP_SVC_KK_SELECT_001 = "KK_SELECT_001";

	/** テーブルアクセスクラス(オプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_OP_SVC_KEI = null;

	/** テーブルアクセスクラス(公衆網通話実績)*/
	private JBSbatSQLAccess db_KK_T_KOSHUMO_TW_JSK = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(オプションサービス)*/
	private JBSbatSQLAccess db_KK_M_OP_SVC = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_OP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OP_SVC_KEI);
		db_KK_T_KOSHUMO_TW_JSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KOSHUMO_TW_JSK);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_M_OP_SVC = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_OP_SVC);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @param outputInItem 入力情報
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		String voipUserId = JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_USER_ID));
		String voipTelno = JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_TELNO));
		String svcKeiNo = JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.SVC_KEI_NO));
		String twEndDtm = JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.TW_END_DTM));
		
		// 退避用領域
		JBSbatServiceInterfaceMap tmpMap = null;
		Map<String, Boolean> telvisionEonetPossibleUseREsult = null;
		if (outputInItem.isTmpList())
		{
			// 退避用領域の情報を取得
			tmpMap = (JBSbatServiceInterfaceMap)outputInItem.getTmpList().get(0);
			String skipSvcKeiNo = tmpMap.getString(TMP_SKIP_SVC_KEI_NO);
			
			// スキップサービス契約番号と等しいサービス契約番号の場合、処理終了
			if (svcKeiNo.equals(skipSvcKeiNo))
			{
				return outputInItem;
			}
			
			telvisionEonetPossibleUseREsult = (Map<String, Boolean>)tmpMap.get(TMP_TELVISION_EONET_POSSIBLE_USE_RESULT);
		}
		else
		{
			// 退避用領域が存在しない場合、生成
			tmpMap = new JBSbatServiceInterfaceMap();
			outputInItem.addTmpList(tmpMap);
			telvisionEonetPossibleUseREsult = new HashMap<String, Boolean>();
			tmpMap.set(TMP_TELVISION_EONET_POSSIBLE_USE_RESULT, telvisionEonetPossibleUseREsult);
		}
		
		// データ種別
		String dataSbt = "";
		// 処理種別
		String shoriSbt = "";
		// エラーメッセージ
		String errMsg = "";
		
		// DB情報格納マップ
		JBSbatCommonDBInterface opSvcKeiMap = null;
		JBSbatCommonDBInterface voipTelnoSaiKoshumoTwJskMap = null;
		JBSbatCommonDBInterface voipUserIDSaiKoshumoTwJskMap = null;
		JBSbatCommonDBInterface voipUserIDSaiOpSvcKeiMap = null;

		// オプションサービス契約情報を取得する
		opSvcKeiMap = getOpSvcKeiInf(svcKeiNo, voipUserId);
		if (opSvcKeiMap == null)
		{
			// 整合性チェックエラーファイル出力
			setSeigouseiChkErrFile(outputInItem, inMap, null, ERR_MSG_01);
			// スキップサービス契約番号を退避用領域に設定
			tmpMap.setString(TMP_SKIP_SVC_KEI_NO, svcKeiNo);
			// 処理終了
			return outputInItem;
		}
		else
		{
			// オプションサービス契約の処理対象判定
			if (!judgeOpSvcKei(inMap, opSvcKeiMap))
			{
				// 処理終了
				return outputInItem;
			}
		}
		
		// データ種別判定処理
		if (!DATETIME_MAXVALUE.equals(twEndDtm))
		{
			// 通話終了年月日時分秒が初期値でない場合、電話番号解約処理
			dataSbt = DATA_SBT_KIYK;
			
			// 公衆網電話番号の異なる公衆網通話実績情報を取得する
			voipTelnoSaiKoshumoTwJskMap = getVoipTelnoSaiKoshumoTwJskInf(svcKeiNo, voipUserId, voipTelno, twEndDtm);
			if (voipTelnoSaiKoshumoTwJskMap != null)
			{
				// レコードが存在する場合、電話番号変更処理
				dataSbt = DATA_SBT_TEL_HNKO;
			}
			else
			{
				// ＶＯＩＰユーザーＩＤの異なる公衆網通話実績契約情報を取得する
				voipUserIDSaiKoshumoTwJskMap = getVoipUserIDSaiKoshmoTwJskInf(svcKeiNo, voipUserId, voipTelno, twEndDtm);
				if (voipUserIDSaiKoshumoTwJskMap != null)
				{
					// レコードが存在する場合、公衆網設定のユーザー変更処理
					dataSbt = DATA_SBT_USER_HNKO;

					voipUserIDSaiOpSvcKeiMap = getOpSvcKeiInf(
							JBSbatStringUtil.trim(voipUserIDSaiKoshumoTwJskMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.SVC_KEI_NO)),
							JBSbatStringUtil.trim(voipUserIDSaiKoshumoTwJskMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_USER_ID)));
					
					if (voipUserIDSaiOpSvcKeiMap == null)
					{
						// 整合性チェックエラーファイル出力
						setSeigouseiChkErrFile(outputInItem, inMap, null, ERR_MSG_01);
						// スキップサービス契約番号を退避用領域に設定
						tmpMap.setString(TMP_SKIP_SVC_KEI_NO, svcKeiNo);
						// 処理終了
						return outputInItem;
					}
				}
			}
		}
		else
		{
			// 通話終了年月日時分秒が初期値の場合、電話番号登録処理
			dataSbt = DATA_SBT_TURK;
		}
		
		// 処理種別判定
		String[] shoriSbtResult = judgeShoriSbt(dataSbt, inMap, opSvcKeiMap, voipUserIDSaiOpSvcKeiMap);
		shoriSbt = shoriSbtResult[0];
		errMsg = shoriSbtResult[1];
		
		// 整合性チェック
		if (isNull(errMsg))
		{
			if (checkSvcKeiKiyk3Days(svcKeiNo, commonItem.getOpeDate()))
			{
				errMsg = ERR_MSG_07;
			}
			else if(checkSvcKeiShusKiyk1Days(svcKeiNo, commonItem.getOpeDate()))
			{
				errMsg = ERR_MSG_08;
			}
			else 
			{
				String opSvcCd = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_CD));
				Boolean telvisionEonetPossibleUse = telvisionEonetPossibleUseREsult.get(opSvcCd);
				if (telvisionEonetPossibleUse == null)
				{
					telvisionEonetPossibleUse = checkTelvisionEonetPossibleUse(opSvcCd, commonItem.getOpeDate(), shoriSbt);
					telvisionEonetPossibleUseREsult.put(opSvcCd, telvisionEonetPossibleUse);
				}
				if(telvisionEonetPossibleUse)
				{
					errMsg = ERR_MSG_09;
				}
			}
		}
		
		if (!isNull(errMsg))
		{
			// 整合性チェックエラーファイル出力
			setSeigouseiChkErrFile(outputInItem, inMap, opSvcKeiMap, errMsg);
			// スキップサービス契約番号を退避用領域に設定
			tmpMap.setString(TMP_SKIP_SVC_KEI_NO, svcKeiNo);
		}
		else
		{
			// SIP情報連携公衆網電話番号履歴更新ファイル出力
			setSipInfKoshumoTelRrkUpdFile(outputInItem, inMap, opSvcKeiMap,
					voipTelnoSaiKoshumoTwJskMap, voipUserIDSaiKoshumoTwJskMap, shoriSbt);
			// スキップサービス契約番号を退避用領域に設定
			tmpMap.setString(TMP_SKIP_SVC_KEI_NO, svcKeiNo);
		}
		
		return outputInItem;
		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_OP_SVC_KEI.close();
		db_KK_T_KOSHUMO_TW_JSK.close();
		db_KK_T_SVC_KEI.close();
		db_KK_M_OP_SVC.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	VoIPユーザーID
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_OP_SVC_KEI_KK_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());

		// DBアクセスを実行します
		db_KK_T_OP_SVC_KEI.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_001);
	}

	/**
	 * SQLKEY(KK_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	VoIPユーザーID
	 *		 	VoIP電話番号
	 *		 	通話開始年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KOSHUMO_TW_JSK_KK_SELECT_006(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_KK_T_KOSHUMO_TW_JSK.selectBySqlDefine(paramList, KK_T_KOSHUMO_TW_JSK_KK_SELECT_006);
	}

	/**
	 * SQLKEY(KK_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	VoIPユーザーID
	 *		 	VoIP電話番号
	 *		 	通話開始年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KOSHUMO_TW_JSK_KK_SELECT_007(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_KK_T_KOSHUMO_TW_JSK.selectBySqlDefine(paramList, KK_T_KOSHUMO_TW_JSK_KK_SELECT_007);
	}

	/**
	 * SQLKEY(KK_SELECT_010)で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_KK_SELECT_010(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());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 ADD START
		paramList.setValue(param[7].toString());
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 ADD END

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_010);
	}

	/**
	 * SQLKEY(KK_SELECT_011)で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_KK_SELECT_011(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());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 ADD START
		paramList.setValue(param[7].toString());
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 ADD END

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_011);
	}

	/**
	 * 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_M_OP_SVC_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_M_OP_SVC.selectBySqlDefine(paramList, KK_M_OP_SVC_KK_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	
	
	/**
	 * オプションサービス契約情報を取得する。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.オプションサービス契約にアクセスするSQLを実行する。<br>
	 *
	 * 2.取得結果を返却する。<br>
	 * </pre>
	 * <p>
	 * @param svcKeiNo サービス契約番号。
	 * @param voipUserId ＶＯＩＰユーザーＩＤ。
	 * @return JBSbatCommonDBInterface 取得結果を保持したMap。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getOpSvcKeiInf(String svcKeiNo, String voipUserId) throws Exception
	{
		String[] param = {this.commonItem.getOpeDate(), voipUserId, svcKeiNo};
		
		executeKK_T_OP_SVC_KEI_KK_SELECT_001(param);
		
		return db_KK_T_OP_SVC_KEI.selectNext();
	}
	
	/**
	 * VoIP電話番号が異なる公衆網通話実績情報を取得する。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.公衆網通話実績情報にアクセスするSQLを実行する。<br>
	 *
	 * 2.取得結果を返却する。<br>
	 * </pre>
	 * <p>
	 * @param svcKeiNo サービス契約番号。
	 * @param voipUserId VoIPユーザーID。
	 * @param voipTelno VoIP電話番号。
	 * @param twEndDtm 通話終了年月日時分秒。
	 * @return JBSbatCommonDBInterface 取得結果を保持したMap。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getVoipTelnoSaiKoshumoTwJskInf(String svcKeiNo,
			String voipUserId, String voipTelno, String twEndDtm) throws Exception
	{
		String[] param = {svcKeiNo, voipUserId, voipTelno, twEndDtm};
		
		executeKK_T_KOSHUMO_TW_JSK_KK_SELECT_006(param);
		
		return db_KK_T_KOSHUMO_TW_JSK.selectNext();
	}
	
	/**
	 * VoIPユーザーIDが異なる公衆網通話実績情報を取得する。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.公衆網通話実績情報にアクセスするSQLを実行する。<br>
	 *
	 * 2.取得結果を返却する。<br>
	 * </pre>
	 * <p>
	 * @param svcKeiNo サービス契約番号。
	 * @param voipUserId VoIPユーザーID。
	 * @param voipTelno VoIP電話番号。
	 * @param twEndDtm 通話終了年月日時分秒。
	 * @return JBSbatCommonDBInterface 取得結果を保持したMap。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface getVoipUserIDSaiKoshmoTwJskInf(String svcKeiNo,
			String voipUserId, String voipTelno, String twEndDtm) throws Exception
	{
		String[] param = {svcKeiNo, voipUserId, voipTelno, twEndDtm};
		
		executeKK_T_KOSHUMO_TW_JSK_KK_SELECT_007(param);
		
		return db_KK_T_KOSHUMO_TW_JSK.selectNext();
	}
	
	/**
	 * サービス契約解約3日以降判定を行う。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.サービス契約にアクセスするSQLを実行する。<br>
	 *
	 * 2.取得結果よりエラー判定を行い、その結果を返却する。<br>
	 * </pre>
	 * <p>
	 * @param svcKeiNo サービス契約番号。
	 * @param opeDate バッチ運用日。
	 * @return boolean 判定結果(true：エラー、false：非エラー)。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private boolean checkSvcKeiKiyk3Days(String svcKeiNo, String opeDate) throws Exception
	{
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 MOD START
		//String[] param = {svcKeiNo, opeDate, opeDate, opeDate, opeDate, opeDate, opeDate};
		String[] param = {svcKeiNo, opeDate, opeDate, opeDate, opeDate, opeDate, opeDate, opeDate};
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 MOD END
		
		executeKK_T_SVC_KEI_KK_SELECT_010(param);
		JBSbatCommonDBInterface map = db_KK_T_SVC_KEI.selectNext();
		
		if (map.getBigDecimal("COUNT_NUM").intValue() == 0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * サービス契約照査前・解約1日後判定を行う。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.サービス契約にアクセスするSQLを実行する。<br>
	 *
	 * 2.取得結果よりエラー判定を行い、その結果を返却する。<br>
	 * </pre>
	 * <p>
	 * @param svcKeiNo サービス契約番号。
	 * @param opeDate バッチ運用日。
	 * @return boolean 判定結果(true：エラー、false：非エラー)。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private boolean checkSvcKeiShusKiyk1Days(String svcKeiNo, String opeDate) throws Exception
	{
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 MOD START
		//String[] param = {svcKeiNo, opeDate, opeDate, opeDate, opeDate, opeDate, opeDate};
		String[] param = {svcKeiNo, opeDate, opeDate, opeDate, opeDate, opeDate, opeDate, opeDate};
		// 2013/05/06 回線対象サービス契約の取得方法不備対応 MOD END
		
		executeKK_T_SVC_KEI_KK_SELECT_011(param);
		JBSbatCommonDBInterface map = db_KK_T_SVC_KEI.selectNext();
		
		if (map.getBigDecimal("COUNT_NUM").intValue() == 0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	/**
	 * Ｔｅｌｖｉｓｉｏｎ・eo-netフォン使用可能判定を行う。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.サービス契約にアクセスするSQLを実行する。<br>
	 *
	 * 2.取得結果よりエラー判定を行い、その結果を返却する。<br>
	 * </pre>
	 * <p>
	 * @param opSvcCd オプションサービスコード。
	 * @param opeDate バッチ運用日。
	 * @param shoriSbt 処理種別。
	 * @return boolean 判定結果(true：エラー、false：非エラー)。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private boolean checkTelvisionEonetPossibleUse(String opSvcCd, String opeDate, String shoriSbt) throws Exception
	{
		boolean bool = !(SHORI_SBT_KIFK.equals(shoriSbt) ||
				SHORI_SBT_TURK.equals(shoriSbt) ||
				SHORI_SBT_KIFK_KIYK.equals(shoriSbt) ||
				SHORI_SBT_TURK_KIYK.equals(shoriSbt) ||
				SHORI_SBT_KIFK_TEL_HNKO.equals(shoriSbt) ||
				SHORI_SBT_TURK_TEL_HNKO.equals(shoriSbt) ||
				SHORI_SBT_KIFK_USER_HNKO.equals(shoriSbt) ||
				SHORI_SBT_TURK_USER_HNKO.equals(shoriSbt));
		if (bool)
		{
			return false;
		}
		
		String[] param = {opSvcCd, opeDate};
		
		executeKK_M_OP_SVC_KK_SELECT_001(param);
		JBSbatCommonDBInterface map = db_KK_M_OP_SVC.selectNext();
		
		if (map.getBigDecimal("COUNT_NUM").intValue() == 0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	/**
	 * オプションサービス契約の処理対象判定を行う。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数情報を元にオプションサービス契約の処理対象判定を行い、その結果を返却する。<br>
	 * </pre>
	 * <p>
	 * @param inMap 入力電文。
	 * @param opSvcKeiMap オプションサービス契約マップ。
	 * @return boolean 判定結果(true：処理対象、false：処理対象外)。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private boolean judgeOpSvcKei(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface opSvcKeiMap) throws Exception
	{
		// 引数の各マップから値を取得
		String twStaDtm = JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.TW_STA_DTM));
		String twEndDtm = JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.TW_END_DTM));
		String opSvcStaDtm = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STAYMD));
		String opSvcEndDtm = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_ENDYMD));
		// ST1-2012-0000494 ADD START
		String opSvcStaHms = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STA_HMS));
		String opSvcEndHms = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_END_HMS));
		
		
		opSvcStaDtm = opSvcStaDtm + opSvcStaHms;
		opSvcEndDtm = opSvcEndDtm + opSvcEndHms;
		// ST1-2012-0000494 ADD END
		
		if (opSvcStaDtm.compareTo(twStaDtm) < 0)
		{
			// オプションサービス契約.サービス開始年月日時分秒 < 入力マップ.公衆網電話番号実績.公衆網電話番号実績開始年月日時分秒
			return true;
		}
		if (!DATETIME_MAXVALUE.equals(opSvcEndDtm) &&
				!DATETIME_MAXVALUE.equals(twEndDtm) &&
				opSvcEndDtm.compareTo(twEndDtm) < 0)
		{
			// オプションサービス契約.サービス終了年月日時分秒 < 入力マップ.公衆網電話番号実績.公衆網電話番号実績終了年月日時分秒
			// ※両項目とも"20991231000000000"以外であること
			return true;
		}
		if (DATETIME_MAXVALUE.equals(opSvcEndDtm) &&
				!DATETIME_MAXVALUE.equals(twEndDtm))
		{
			// オプションサービス契約.サービス終了年月日時分秒 = "20991231000000000"、且つ、
			// 入力マップ.公衆網電話番号実績.公衆網電話番号実績終了年月日時分秒 ≠ "20991231000000000"
			return true;
		}
		
		return false;
	}
	
	/**
	 * 処理種別の判定を行う。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数情報を元に処理種別の判定を行う。<br>
	 * </pre>
	 * <p>
	 * @param dataSbt データ種別。
	 * @param inMap 入力電文。
	 * @param opSvcKeiMap オプションサービス契約マップ。
	 * @param voipUserIDSaiOpSvcKeiMap VoipユーザーID差異オプションサービス契約マップ。
	 * @return String[] 判定結果(1件目：処理種別、2件目：エラーメッセージ)。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String[] judgeShoriSbt(String dataSbt, JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface opSvcKeiMap,
			JBSbatCommonDBInterface voipUserIDSaiOpSvcKeiMap) throws Exception
	{
		// 結果返却用変数
		String[] result = {"", ""};
		// 処理種別
		String shoriSbt = "";
		// エラーメッセージ
		String errMsg = "";
		
		// 引数の各マップから値を取得
		String voipTelno = JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_TELNO));
		String koshumoTelno = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OPSVKEI_ISP.KOSHUMO_TELNO));
		// ST1-2012-0000494 2012/09/12 MOD START
//		String svcStaDtm = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STAYMD));
//		String svcEndDtm = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_ENDYMD));
		String svcStaDtm = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STAYMD))
							+ JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STA_HMS));
		String svcEnd = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_ENDYMD));
		// ST1-2012-0000494 2012/09/12 MOD END
		String honkanyuYmd = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.HONKANYU_YMD));
		
		// ST1-2012-0000494 2012/09/12 ADD START
		String svcEndDtm = null;
		String svcEndDtmClm = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_END_HMS));

		if (svcEnd == null || svcEnd.length() == 0)
		{
			// サービス終了年月日が空の場合はMAX値として扱う
			svcEndDtm=DATETIME_MAXVALUE;
		}
		else
		{
			if (svcEndDtmClm == null || svcEndDtmClm.length() == 0)
			{
				// サービス終了年月日時分秒が空の場合はMAX値として扱う。
				svcEndDtm=svcEnd + TIME_MAXVALUE;
			}
			else
			{
				// サービス終了年月日時分秒が空でない場合は結合して扱う。
				svcEndDtm=svcEnd + svcEndDtmClm;
			}
		}
		// ST1-2012-0000494 2012/09/12 ADD END
		
		if (DATA_SBT_TURK.equals(dataSbt))
		{
			// データ種別が電話番号登録処理の場合
			boolean bool01 = !isNull(honkanyuYmd) &&
					!DATETIME_MAXVALUE.equals(svcEndDtm) &&
					((!isNull(koshumoTelno) && koshumoTelno.equals(voipTelno)) ||
					isNull(koshumoTelno));
			if (!isNull(honkanyuYmd) &&
					!isNull(koshumoTelno) &&
					!isNull(svcStaDtm) &&
					DATETIME_MAXVALUE.equals(svcEndDtm))
			{
				errMsg = ERR_MSG_02;
			}
			else if(bool01)
			{
				shoriSbt = SHORI_SBT_KIFK;
			}
			else if (!isNull(honkanyuYmd) &&
					isNull(koshumoTelno) &&
					isNull(svcStaDtm) &&
					DATETIME_MAXVALUE.equals(svcEndDtm))
			{
				shoriSbt = SHORI_SBT_TURK;
			}
			else
			{
				errMsg = ERR_MSG_03;
			}
		}
		else if (DATA_SBT_KIYK.equals(dataSbt))
		{
			// データ種別が電話番号解約処理の場合
			boolean bool01 = !isNull(honkanyuYmd) &&
					!isNull(koshumoTelno) &&
					!isNull(svcStaDtm) &&
					DATETIME_MAXVALUE.equals(svcEndDtm) &&
					koshumoTelno.equals(voipTelno);
			boolean bool02 = !isNull(honkanyuYmd) &&
					!DATETIME_MAXVALUE.equals(svcEndDtm) &&
					((!isNull(koshumoTelno) && koshumoTelno.equals(voipTelno)) ||
					isNull(koshumoTelno));
			if (bool01)
			{
				shoriSbt = SHORI_SBT_KIYK;
			}
			else if(bool02)
			{
				// OM-2014-0001209 2014/03/25 start
				//shoriSbt = SHORI_SBT_KIFK_KIYK;
				errMsg = ERR_MSG_10;
				// OM-2014-0001209 2014/03/25 end
			}
			else if (!isNull(honkanyuYmd) &&
					isNull(koshumoTelno) &&
					isNull(svcStaDtm) &&
					DATETIME_MAXVALUE.equals(svcEndDtm))
			{
				shoriSbt = SHORI_SBT_TURK_KIYK;
			}
			else
			{
				errMsg = ERR_MSG_04;
			}
		}
		else if (DATA_SBT_TEL_HNKO.equals(dataSbt))
		{
			// データ種別が電話番号変更処理の場合
			boolean bool01 = !isNull(honkanyuYmd) &&
					!DATETIME_MAXVALUE.equals(svcEndDtm) &&
					((!isNull(koshumoTelno) && koshumoTelno.equals(voipTelno)) ||
					isNull(koshumoTelno));
			if (!isNull(honkanyuYmd) &&
					!isNull(koshumoTelno) &&
					DATETIME_MAXVALUE.equals(svcEndDtm) &&
					koshumoTelno.equals(voipTelno))
			{
				shoriSbt = SHORI_SBT_TEL_HNKO;
			}
			else if(bool01)
			{
				shoriSbt = SHORI_SBT_KIFK_TEL_HNKO;
			}
			else if (!isNull(honkanyuYmd) &&
					isNull(koshumoTelno) &&
					isNull(svcStaDtm) &&
					DATETIME_MAXVALUE.equals(svcEndDtm))
			{
				shoriSbt = SHORI_SBT_TURK_TEL_HNKO;
			}
			else
			{
				errMsg = ERR_MSG_05;
			}
		}
		else if (DATA_SBT_USER_HNKO.equals(dataSbt))
		{
			// データ種別が公衆網設定のユーザー変更処理の場合
			String saiKoshumoTelno = JBSbatStringUtil.trim(voipUserIDSaiOpSvcKeiMap.getString(JBSbatKK_T_OPSVKEI_ISP.KOSHUMO_TELNO));
			String saiSvcStaDtm = JBSbatStringUtil.trim(voipUserIDSaiOpSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STAYMD));
			String saiSvcEndDtm = JBSbatStringUtil.trim(voipUserIDSaiOpSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_ENDYMD));
			String saiHnkanyuYmd = JBSbatStringUtil.trim(voipUserIDSaiOpSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.HONKANYU_YMD));
			
			boolean checkFlg = false;
			
			if (!isNull(saiHnkanyuYmd) &&
					isNull(saiKoshumoTelno) &&
					isNull(saiSvcStaDtm) &&
					DATETIME_MAXVALUE.equals(saiSvcEndDtm))
			{
				checkFlg = true;
			}
			else if(!isNull(saiHnkanyuYmd) &&
					!DATETIME_MAXVALUE.equals(saiSvcEndDtm))
			{
				checkFlg = true;
			}
			
			if (checkFlg)
			{
				if (!isNull(koshumoTelno) &&
						!isNull(honkanyuYmd) &&
						DATETIME_MAXVALUE.equals(svcEndDtm) &&
						koshumoTelno.equals(voipTelno))
				{
					shoriSbt = SHORI_SBT_USER_HNKO;
				}
				else if(!isNull(koshumoTelno) &&
						!isNull(honkanyuYmd) &&
						!DATETIME_MAXVALUE.equals(svcEndDtm))
				{
					shoriSbt = SHORI_SBT_KIFK_USER_HNKO;
				}
				else if (!isNull(honkanyuYmd) &&
						isNull(koshumoTelno) &&
						isNull(svcStaDtm) &&
						DATETIME_MAXVALUE.equals(svcEndDtm))
				{
					shoriSbt = SHORI_SBT_TURK_USER_HNKO;
				}
				else
				{
					errMsg = ERR_MSG_06;
				}
			}
			else
			{
				errMsg = ERR_MSG_06;
			}
		}
		
		result[0] = shoriSbt;
		result[1] = errMsg;
		return result;
	}
	
	/**
	 * ＳＩＰ情報連携公衆網電話番号履歴更新ファイルへの出力情報を設定する。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数情報を元にＳＩＰ情報連携公衆網電話番号履歴更新ファイルへの出力情報を設定する。<br>
	 * </pre>
	 * <p>
	 * @param outputInItem 入力情報
	 * @param inMap 入力電文。
	 * @param opSvcKeiMap オプションサービス契約マップ。
	 * @param voipTelnoSaiKoshumoTwJskMap VoIP電話番号差異公衆網通話実績マップ。
	 * @param voipUserIDSaiKoshumoTwJskMap VoIPユーザーID差異公衆網通話実績マップ。
	 * @param shoriSbt 処理種別。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setSipInfKoshumoTelRrkUpdFile(JBSbatOutputItem outputInItem,
			JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface opSvcKeiMap,
			JBSbatCommonDBInterface voipTelnoSaiKoshumoTwJskMap,
			JBSbatCommonDBInterface voipUserIDSaiKoshumoTwJskMap,
			String shoriSbt) throws Exception
	{
		// ＳＩＰ情報連携公衆網電話番号履歴更新ファイル
		JBSbatServiceInterfaceMap fileMap = new JBSbatServiceInterfaceMap();
		
		fileMap.setString(JBSbatKKIFM009.SHK_TISH_KKN, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.SHUK_TG_YMD)));
		fileMap.setString(JBSbatKKIFM009.SVC_KEI_NO, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.SVC_KEI_NO)));
		fileMap.setString(JBSbatKKIFM009.VOIP_USER_ID, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_USER_ID)));
		if (voipUserIDSaiKoshumoTwJskMap != null)
		{
			fileMap.setString(JBSbatKKIFM009.CHAF_VOIP_USER_ID,
					JBSbatStringUtil.trim(voipUserIDSaiKoshumoTwJskMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_USER_ID)));
		}
		fileMap.setString(JBSbatKKIFM009.KOSHUMO_TELNO, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_TELNO)));
		if (voipTelnoSaiKoshumoTwJskMap != null)
		{
			fileMap.setString(JBSbatKKIFM009.CHAF_KOSHUMO_TELNO,
					JBSbatStringUtil.trim(voipTelnoSaiKoshumoTwJskMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_TELNO)));
		}
		fileMap.setString(JBSbatKKIFM009.SVC_STA_DTM, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.TW_STA_DTM)));
		fileMap.setString(JBSbatKKIFM009.SVC_END_DTM, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.TW_END_DTM)));
		fileMap.setString(JBSbatKKIFM009.SHR_DTM, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.ADD_DTM)));
		fileMap.setString(JBSbatKKIFM009.TIO_NO, shoriSbt);
		fileMap.setString(JBSbatKKIFM009.OP_SVC_KEI_NO, JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_NO)));
		fileMap.setString(JBSbatKKIFM009.OPSVKEI_GENE_ADD_DTM, JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.GENE_ADD_DTM)));
		fileMap.setString(JBSbatKKIFM009.OPSVKEI_ISP_GENE_ADD_DTM, JBSbatStringUtil.trim(opSvcKeiMap.getString("OPSVKEI_ISP_GENE_ADD_DTM")));
		
		// レコード出力判定フラグを設定
		fileMap.setOutFlg(true);
		
		outputInItem.addOutMapList(fileMap);
	}
	
	/**
	 * 整合性チェックエラーファイルへの出力情報を設定する。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数情報を元に 整合性チェックエラーファイルへの出力情報を設定する。<br>
	 * </pre>
	 * <p>
	 * @param outputInItem 入力情報
	 * @param inMap 入力電文。
	 * @param opSvcKeiMap オプションサービス契約マップ。
	 * @param errMsg エラーメッセージ。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setSeigouseiChkErrFile(JBSbatOutputItem outputInItem,
			JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface opSvcKeiMap, String errMsg) throws Exception
	{
		// 整合性チェックエラーファイル
		JBSbatServiceInterfaceMap fileMap = new JBSbatServiceInterfaceMap();
		
		String trkJti = "";
		String eoOp = "";
		
		if (opSvcKeiMap != null)
		{
			trkJti = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_STAT));
			String opSvcCd = JBSbatStringUtil.trim(opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_CD));
			if (OP_SVC_CD_TELVISION.equals(opSvcCd))
			{
				eoOp = EO_OP_TELVISION;
			}
			else if (OP_SVC_CD_EO_NET_PHONE.equals(opSvcCd))
			{
				eoOp = EO_OP_EO_NET_PHONE;
			}
		}
		
		fileMap.setString(JBSbatKKIFM010.SVC_KEI_NO, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.SVC_KEI_NO)));
		fileMap.setString(JBSbatKKIFM010.VOIP_USER_ID, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.VOIP_USER_ID)));
		fileMap.setString(JBSbatKKIFM010.TRK_JTI, trkJti);
		fileMap.setString(JBSbatKKIFM010.EO_OP, eoOp);
		fileMap.setString(JBSbatKKIFM010.ER_NIYU, errMsg);
		fileMap.setString(JBSbatKKIFM010.SHR_DTM, JBSbatStringUtil.trim(inMap.getString(JBSbatKK_T_KOSHUMO_TW_JSK.ADD_DTM)));
		
		// レコード出力判定フラグを設定
		fileMap.setOutFlg(true);
		
		outputInItem.addOutMapList_2(fileMap);
	}
	
	/**
	 * オブジェクトに値が設定されているか判定します。
	 * <br>
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	private boolean isNull(Object arg0) 
	{

		if (arg0 == null) 
		{
			return true;
		}

		return 0 == arg0.toString().length();
	}
}
