/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCN050TelnoHktHkListSend
*	ソースファイル名	：JBSbatCN050TelnoHktHkListSend.java
*	作成者				：富士通　
*	作成日				：2013年02月05日
*＜機能概要＞
*　050番号復活不可リスト連携部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2013/02/05   富士通		新規作成
*	v1.00.01	2013/06/12   富士通		SIPパスワードの取得方法を変更
*	v54.00.00	2021/08/12   GDC)j.hortilano		【ANK-4069-00-00】EOL対応(バッチ・DBサーバリプレース対応)
*********************************************************************/
package eo.business.service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCNBatCommon;
import eo.common.constant.JCNStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.util.JBSbatBusinessFileUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCN050TelnoHktHkListSend extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(処理日付情報)*/
	private static final String D_TBL_NAME_CN_T_TRAN_YMD_INFO = "CN_T_TRAN_YMD_INFO";

	/** テーブル(業務パラメータ管理)*/
	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";

	/** テーブル(コンテンツ契約内訳)*/
	private static final String D_TBL_NAME_CN_T_CONT_KEI_UCWK = "CN_T_CONT_KEI_UCWK";

	/** SQL定義キー(CN_SELECT_002)*/
	private static final String CN_T_TRAN_YMD_INFO_CN_SELECT_002 = "CN_SELECT_002";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String ZM_M_WORK_PARAM_KNRI_CN_SELECT_001 = "CN_SELECT_001";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String CN_T_CONT_KEI_UCWK_CN_SELECT_001 = "CN_SELECT_001";

	/** SQL定義キー(CN_SELECT_002)*/
	private static final String CN_T_CONT_KEI_UCWK_CN_SELECT_002 = "CN_SELECT_002";

	/** テーブルアクセスクラス(処理日付情報)*/
	private JBSbatSQLAccess db_CN_T_TRAN_YMD_INFO = null;

	/** テーブルアクセスクラス(業務パラメータ管理)*/
	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;

	/** テーブルアクセスクラス(コンテンツ契約内訳)*/
	private JBSbatSQLAccess db_CN_T_CONT_KEI_UCWK = null;

	/** テーブルアクセスクラス(コンテンツ契約内訳)*/
	private JBSbatSQLAccess db_CN_T_CONT_KEI_UCWK_SIP_USER_PWD = null;
/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** メッセージキーECNB0080KE*/
	private static final String ECNB0080KE = JPCBatchMessageConstant.ECNB0080KE;
	/** メッセージキーECNB0090AI*/
	private static final String ECNB0090AI = JPCBatchMessageConstant.ECNB0090AI;
	/** メッセージキーECNB0230KE*/
	private static final String ECNB0230KE = JPCBatchMessageConstant.ECNB0230KE;
	/** メッセージキーECNB0320KE*/
	private static final String ECNB0320KE = JPCBatchMessageConstant.ECNB0320KE;
	
	/** メッセージ出力内容*/
	private static final String CN_T_TRAN_YMD_INFO_KEY = "BAT_TRAN_CD=" + JCNStrConst.CN0301_050_TELNO_HKTHK_LIST;
	/** メッセージ出力内容*/
	private static final String ZM_M_WORK_PARAM_KNRI_KEY = "WORK_PARAM_ID=" + JCNStrConst.ZM0321_050_KIHK_PSB_PRD;
	/** メッセージ出力内容*/
	private static final String S_JOB_NAME = "050番号復活不可リスト連携";

	/** タイムスタンプ置換用文字列*/
	private static final String FILE_NM_TIMESTAMP = "YYYYMMDDhhmmss";
	
	/** 回復可能期間 */
	private String strKihkPsbPrd = "";

	/** 回復不可処理の対象日付（この日付で解約された050電話番号の情報を取得する）*/
	private String strKaiyakuymd = "";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CN_T_TRAN_YMD_INFO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_TRAN_YMD_INFO);
		db_ZM_M_WORK_PARAM_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
		db_CN_T_CONT_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_CONT_KEI_UCWK);
		db_CN_T_CONT_KEI_UCWK_SIP_USER_PWD = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_CONT_KEI_UCWK);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		// パラメータ読み出し
		String strFreeParam = commonItem.getFreeItem();
		if(strFreeParam.length() == 0)
		{
			throw new JBSbatBusinessException(ECNB0230KE);
		}
		// パラメータを区切り文字で分割する
		String[] lines = strFreeParam.split(JCNStrConst.S_PARAM_DELIM);
		// パラメータ取得
		String strFreeParam1 = lines[0];	// 050番号復活不可連携ファイル
		String strFreeParam2 = lines[1];	// 050番号復活不可連携件数ファイル
		String strFreeParam3 = lines[2];	// 050番号復活不可連携FTPフラグファイル
		
		// システム日時取得
		String strSysDateTime = JCNBatCommon.getSysDateTime();

		// 処理日付情報を取得する
		JBSbatCommonDBInterface paramList1 = new JBSbatCommonDBInterface();
		paramList1. setValue(JCNStrConst.CN0301_050_TELNO_HKTHK_LIST);  // 050電話復活不可連携のバッチコード
		executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(paramList1.getList().toArray());
		JBSbatCommonDBInterface resultMap1 = new JBSbatCommonDBInterface(); 
		String strTran_tg_ymd = "";
		for(resultMap1 = db_CN_T_TRAN_YMD_INFO.selectNext(); null != resultMap1; resultMap1 = db_CN_T_TRAN_YMD_INFO.selectNext())
		{
			strTran_tg_ymd = resultMap1.getString("TRAN_TG_YMD");
		}
		// 処理日付情報が取得できない場合、異常終了
		if("".equals(strTran_tg_ymd))
		{
			throw new JBSbatBusinessException(ECNB0080KE, new String[] {S_JOB_NAME, D_TBL_NAME_CN_T_TRAN_YMD_INFO ,CN_T_TRAN_YMD_INFO_KEY});
		}

		// 業務パラメータを取得する
		JBSbatCommonDBInterface paramList2 = new JBSbatCommonDBInterface();
		paramList2.setValue(JCNStrConst.ZM0321_050_KIHK_PSB_PRD);  // 050番号回復可能期間パラメータ
		paramList2.setValue(commonItem.getOpeDate());      // バッチ運用日
		paramList2.setValue(commonItem.getOpeDate());      // バッチ運用日
		executeZM_M_WORK_PARAM_KNRI_CN_SELECT_001(paramList2.getList().toArray());
		JBSbatCommonDBInterface resultMap2 = new JBSbatCommonDBInterface(); 
		for(resultMap2 = db_ZM_M_WORK_PARAM_KNRI.selectNext(); null != resultMap2; resultMap2 = db_ZM_M_WORK_PARAM_KNRI.selectNext())
		{
			strKihkPsbPrd = resultMap2.getString("WORK_PARAM_SETTE_VALUE");
		}
		// 業務パラメータが取得できない場合、異常終了
		if("".equals(strKihkPsbPrd))
		{
			throw new JBSbatBusinessException(ECNB0080KE, new String[] {S_JOB_NAME, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI ,ZM_M_WORK_PARAM_KNRI_KEY});
		}
		else
		{
			// 業務パラメータ管理から値が取得できた場合は、処理日付情報.処理対象年月日から業務パラメータ取得値（回復可能期間）を減算して、回復不可にする日付を導出する。
			strKaiyakuymd = JCNBatCommon.addDay(strTran_tg_ymd, Integer.valueOf(strKihkPsbPrd) * -1);
		}
		// DebugLog出力
		super.logPrint.printDebugLog("050番号復活不可リスト連携:復活不可日時=" + strKaiyakuymd);

		// 回復可能期間を超えてエイジング中に移行した050電話番号情報を取得し、リストに格納する
		JBSbatCommonDBInterface paramList3 = new JBSbatCommonDBInterface();
		paramList3.setValue(strKaiyakuymd + JCNStrConst.ZEROPAD_TIMESTAMP);   // エイジング使用終了年月日時分秒の比較条件は17桁
		paramList3.setValue(strKaiyakuymd + JCNStrConst.CN_235959_TIMESTAMP);
		paramList3.setValue(strKaiyakuymd + JCNStrConst.ZEROPAD_TIMESTAMP);   // サービス終了年月日時分秒の比較条件は14桁
		paramList3.setValue(strKaiyakuymd + JCNStrConst.CN_235959_TIMESTAMP);
		executeCN_T_CONT_KEI_UCWK_CN_SELECT_001(paramList3.getList().toArray());
		JBSbatCommonDBInterface resultMap3 = new JBSbatCommonDBInterface();
		ArrayList<String> lst050TelNoInfo = null;                                              // エイジング中に移行した050電話番号情報（1レコード分を格納）
		ArrayList<ArrayList<String>> lstAll050TelNoInfo = new ArrayList<ArrayList<String>>();  // ファイル出力用リスト（全件数分を格納）
		for(resultMap3 = db_CN_T_CONT_KEI_UCWK.selectNext(); null != resultMap3; resultMap3 = db_CN_T_CONT_KEI_UCWK.selectNext())
		{
			// 取得したレコードをStringリストに格納する
			lst050TelNoInfo = new ArrayList<String>();
			// SYSID
			String strSysid = resultMap3.getString("SYSID");
			lst050TelNoInfo.add(strSysid);
			// コンテンツ契約番号
			String strContKeiNo = resultMap3.getString("CONT_KEI_NO");
			lst050TelNoInfo.add(strContKeiNo);
			// 050電話番号
			String str050TelNo = resultMap3.getString("N_050_TELNO");
			lst050TelNoInfo.add(str050TelNo);
			// SIPユーザーID
			String strSipUserId = resultMap3.getString("N_050APL_SIP_USER_ID");
			lst050TelNoInfo.add(strSipUserId);
			// SIPユーザーパスワード
			String strSipUserPwd = resultMap3.getString("N_050APL_SIP_USER_PWD");
			if (JCNBatCommon.isNotNullCheck(strSipUserPwd)) {
				// SIP_USER_PWDが取得できた場合はそのままリストに加える
				lst050TelNoInfo.add(strSipUserPwd);
			} else {
				// SIP_USER_PWDが空の場合は、回復可能期間内で初期設定済みの過去契約からSIP_USER_PWDを取得してリストに加える
				strSipUserPwd = getSipUserPwd(strSysid, str050TelNo, strSipUserId);
				if (JCNBatCommon.isNotNullCheck(strSipUserPwd)) {
					lst050TelNoInfo.add(strSipUserPwd);
				} else {
					// 過去契約からSIP_USER_PWDが取れなかった場合は、このレコードをリスト出力対象外とする
					super.logPrint.printDebugLog("050番号復活不可リスト連携:スキップ " + "N_050_TELNO=" + str050TelNo
							+ " SYSID=" + strSysid + " CONT_KEI_NO=" + strContKeiNo + " N_050APL_SIP_USER_ID=" + strSipUserId
							+ " N_050APL_SIP_USER_PWD=" + strSipUserPwd);
					continue;
				}
			}
			lstAll050TelNoInfo.add(lst050TelNoInfo);
			// DebugLog出力
			super.logPrint.printDebugLog("050番号復活不可リスト連携:出力 " + "N_050_TELNO=" + str050TelNo
					+ " SYSID=" + strSysid + " CONT_KEI_NO=" + strContKeiNo + " N_050APL_SIP_USER_ID=" + strSipUserId
					+ " N_050APL_SIP_USER_PWD=" + strSipUserPwd);
		}
		
		// 050番号復活不可リスト連携ファイル出力
		String strSendDataFileName = strFreeParam1.replace(FILE_NM_TIMESTAMP, strSysDateTime);
		boolean bDoubleQuote = true;
		createSendFile(strSendDataFileName, lstAll050TelNoInfo, bDoubleQuote);

		// 050番号復活不可リスト連携件数ファイル出力
		ArrayList<ArrayList<String>> lstAllSendCount = new ArrayList<ArrayList<String>>();
		ArrayList<String> lstSendCount = new ArrayList<String>();
		lstSendCount.add(String.valueOf(lstAll050TelNoInfo.size()));
		lstAllSendCount.add(lstSendCount);
		String strSendCountFileName = strFreeParam2.replace(FILE_NM_TIMESTAMP, strSysDateTime);
		bDoubleQuote = false;
		createSendFile(strSendCountFileName, lstAllSendCount, bDoubleQuote);
		
		// 050番号復活不可リスト連携FTPフラグファイル出力
		String strFtpFlgFileName = strFreeParam3.replace(FILE_NM_TIMESTAMP, strSysDateTime);
		bDoubleQuote = false;
		createSendFile(strFtpFlgFileName, new ArrayList<ArrayList<String>>(), bDoubleQuote);
		
		// 処理結果ログ出力
		super.logPrint.printBusinessErrorLog(ECNB0090AI, new String[]{strSendDataFileName, String.valueOf(lstAll050TelNoInfo.size())});
		super.logPrint.printBusinessErrorLog(ECNB0090AI, new String[]{strSendCountFileName, String.valueOf(lstSendCount.size())});
		super.logPrint.printBusinessErrorLog(ECNB0090AI, new String[]{strFtpFlgFileName, "0"});
		
		// ANK-4069-00-00 DEL START
		//// FTP配信処理
		//ArrayList<String> ftpList = new ArrayList<String>();
		//ftpList.add(strSendDataFileName);
		//ftpList.add(strSendCountFileName);
		//ftpList.add(strFtpFlgFileName);
		//boolean updFlg = JCNBatCommon.putFTP(commonItem, ftpList, JCNStrConst.S_IFID_050HKTHKLIST_SEND, new HashMap<String, Object>());
		//if(!updFlg)
		//{
		//	throw new JBSbatBusinessException(ECNB0320KE, new String[] {strSendDataFileName});
		//}
		// ANK-4069-00-00 DEL END
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CN_T_TRAN_YMD_INFO.close();
		db_ZM_M_WORK_PARAM_KNRI.close();
		db_CN_T_CONT_KEI_UCWK.close();
		db_CN_T_CONT_KEI_UCWK_SIP_USER_PWD.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(CN_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	バッチ処理コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CN_T_TRAN_YMD_INFO.selectBySqlDefine(paramList, CN_T_TRAN_YMD_INFO_CN_SELECT_002);
	}

	/**
	 * SQLKEY(CN_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	業務パラメータID
	 *		 	業務パラメータ適用開始年月日
	 *		 	業務パラメータ適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_WORK_PARAM_KNRI_CN_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_ZM_M_WORK_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_WORK_PARAM_KNRI_CN_SELECT_001);
	}

	/**
	 * SQLKEY(CN_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 executeCN_T_CONT_KEI_UCWK_CN_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_CN_T_CONT_KEI_UCWK.selectBySqlDefine(paramList, CN_T_CONT_KEI_UCWK_CN_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * SQLKEY(CN_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	050電話番号
	 *		 	SYSID
	 *		 	SIP_USER_ID
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_CONT_KEI_UCWK_CN_SELECT_002(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_CN_T_CONT_KEI_UCWK_SIP_USER_PWD.selectBySqlDefine(paramList, CN_T_CONT_KEI_UCWK_CN_SELECT_002);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 初期設定済みのSIP_USER_PWDを取得する。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.回復可能期間内で初期設定済みの過去契約からSIP_USER_PWDを取得する。<br>
	 *
	 * </pre>
	 * <p>
	 * @param  sysid           検索対象のSYSID
	 * @param  telno           検索対象の050電話番号
	 * @param  sip_user_id     検索対象のSIP_USER_ID
	 * @throws Exception       業務サービス内で発生した例外全般。
	 */
	private String getSipUserPwd(String sysid, String telno, String sipid) throws Exception
	{
		String rtnStr = new String("");
		// 初期設定済みの過去契約からSIP_USER_PWDを取得してリストに加える
		JBSbatCommonDBInterface paramList3 = new JBSbatCommonDBInterface();
		paramList3.setValue(sysid);         // SYSID
		paramList3.setValue(telno);         // 050電話番号
		paramList3.setValue(sipid);         // 050電話番号
		executeCN_T_CONT_KEI_UCWK_CN_SELECT_002(paramList3.getList().toArray());
		JBSbatCommonDBInterface resultMap = new JBSbatCommonDBInterface();

		// 過去契約からSIPIDを取得する
		for(resultMap = db_CN_T_CONT_KEI_UCWK_SIP_USER_PWD.selectNext(); null != resultMap; resultMap = db_CN_T_CONT_KEI_UCWK_SIP_USER_PWD.selectNext())
		{
			// コンテンツ契約番号
			String strContKeiNo = resultMap.getString("CONT_KEI_NO");
			// 050アプリ払い出し種別コード
			String str050AplHradsiSbtCd = resultMap.getString("N_050_TELNO_HRADSI_SBT_CD");
			// 050アプリ設定状態コード
			String str050AplSetteStatCd = resultMap.getString("N_050APL_SETTE_STAT_CD");
			// SIPユーザーパスワード
			String strSipUserPwd = resultMap.getString("N_050APL_SIP_USER_PWD");
			// サービス終了日時
			String strSvcEndDtm = resultMap.getString("SVC_END_DTM");
			// DebugLog出力
			super.logPrint.printDebugLog("050番号復活不可リスト連携:過去契約の確認 " + "N_050_TELNO=" + telno + " SYSID=" + sysid
					+ " CONT_KEI_NO=" + strContKeiNo + " N_050APL_SIP_USER_ID=" + sipid + " N_050_TELNO_HRADSI_SBT_CD=" + str050AplHradsiSbtCd
					+ " N_050APL_SETTE_STAT_CD=" + str050AplSetteStatCd+ " N_050APL_SIP_USER_PWD=" + strSipUserPwd + " SVC_END_DTM=" + strSvcEndDtm);
			// SIP_USER_PWDの取得処理
			if (JCNStrConst.N_050APL_SETTE_STAT_CD_SUMI.equals(str050AplSetteStatCd)) {
				// 初期設定済みのデータが見つかった！SIP_USER_PWDを取得して処理終了
				rtnStr = strSipUserPwd;
				break;
			} else if (JCNStrConst.N_050APL_SETTE_STAT_CD_SINKI.equals(str050AplSetteStatCd)) {
				// 初期設定未完了だが、同一050電話番号とSIPIDの新規契約が見つかったので、これより古い契約は参照してはいけない。
				break;
			}
		}
		return rtnStr;
	}
	
	/**
	 * 連携用ファイルの出力を行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で出力ファイル名(フルパス)を設定します。<br>
	 *
	 * 2.引数をもとに連携用ファイルを出力します。<br>
	 * 
	 * </pre>
	 * <p>
	 * @param strFilePass      ファイル名。
	 * @param lstAllOutPutData ファイル出力内容リスト。サイズ0のリストが指定された場合は0バイトの空ファイルを作成する。
	 * @param bDoubleQuote     データ部分をダブルクォートで囲む場合はtrueを設定する。
	 * @throws Exception       業務サービス内で発生した例外全般。
	 */
	private static void createSendFile(String strFilePass, ArrayList<ArrayList<String>> lstAllOutPutData, boolean bDoubleQuote) throws Exception
	{
		JBSbatBusinessFileUtil obj1 = null;
		try
		{
			// 出力ファイル生成
			obj1 = JCCBatCommon.createBusinessFileUtil(strFilePass, JCNStrConst.SJIS, 
					JCNStrConst.S_LINE_SEPARAOR_LF, JCNStrConst.S_SEP_CAM);
			if(bDoubleQuote)
			{
				for(ArrayList<String> lstOutPutData: lstAllOutPutData)
				{
					JCNBatCommon.printDoubleQuoteBusinessFileUtil(obj1, lstOutPutData);
				}
			}
			else
			{
				for(ArrayList<String> lstOutPutData: lstAllOutPutData)
				{
					JCNBatCommon.printBusinessFileUtil(obj1, lstOutPutData);
				}
			}
		}
		catch (IOException ie)
		{
			throw new JBSbatBusinessException(ECNB0320KE, new String[] {strFilePass});
		}
		finally
		{
			if(obj1 != null)
			{
				JCNBatCommon.closeBusinessFileUtil(obj1);
			}
		}
	}
}
