/*********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名			：eo顧客基幹システム
 *	モジュール名		：JBSbatKKWaoAddDataCst
 *	ソースファイル名	：JBSbatKKWaoAddDataCst.java
 *	作成者				：富士通　
 *	作成日				：2025年03月18日
 *＜機能概要＞
 *　WAO注文登録対象データ抽出部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v75.00.00	2025/03/18	FJ)井上		「案件番号：ANK-4640-00-00」typeN：追加要件対応 
 *********************************************************************/
package eo.business.service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKUBatCommon;
import eo.business.util.file.JBSbatKKIFM977;
import eo.business.util.file.JBSbatKKIFM978;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessError;
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;

/**
 * (WAO注文登録対象データ抽出部品)
 * <p>
 *<BR>
 * 
 * @author 富士通
 */
public class JBSbatKKWaoAddDataCst extends JBSbatBusinessService {
	/** ▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼ */

	/** テーブル(申込明細) */
	private static final String D_TBL_NAME_KK_T_MSKM_DTL = "KK_T_MSKM_DTL";

	/** テーブル(サービス契約) */
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(サービス契約回線内訳) */
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";

	/** テーブル(連絡先) */
	private static final String D_TBL_NAME_CK_T_RRKS = "CK_T_RRKS";

	/** テーブル(オプションサービス契約) */
	private static final String D_TBL_NAME_KK_T_OP_SVC_KEI = "KK_T_OP_SVC_KEI";

	/** テーブル(お客様) */
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(サービス契約＜eo光ネット＞) */
	private static final String D_TBL_NAME_KK_T_SVC_KEI_EOH_NET = "KK_T_SVC_KEI_EOH_NET";

	/** テーブル(オプションサービス契約＜ISP＞) */
	private static final String D_TBL_NAME_KK_T_OPSVKEI_ISP = "KK_T_OPSVKEI_ISP";

	/** テーブル(サブオプションサービス契約) */
	private static final String D_TBL_NAME_KK_T_SBOP_SVC_KEI = "KK_T_SBOP_SVC_KEI";

	/** テーブル(WAO連携情報) */
	private static final String D_TBL_NAME_KK_T_WAO_RNKI_IF = "KK_T_WAO_RNKI_IF";

	/** SQL定義キー(申込明細 KK_SELECT_045) */
	private static final String KK_T_MSKM_DTL_KK_SELECT_045 = "KK_SELECT_045";

	/** SQL定義キー(サービス契約 KK_SELECT_092) */
	private static final String KK_T_SVC_KEI_KK_SELECT_092 = "KK_SELECT_092";

	/** SQL定義キー(サービス契約回線内訳 KK_SELECT_052) */
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_052 = "KK_SELECT_052";
//	↓
	/** SQL定義キー(連絡先 CK_SELECT_006) */
	private static final String CK_T_RRKS_CK_SELECT_006 = "CK_SELECT_006";
//	↓
	/** SQL定義キー(連絡先 KK_SELECT_014) */
	private static final String CK_T_RRKS_KK_SELECT_014 = "KK_SELECT_014";

	/** SQL定義キー(オプションサービス契約 KK_SELECT_151) */
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_151 = "KK_SELECT_151";

	/** SQL定義キー(お客様 CK_SELECT_010) */
	private static final String CK_T_CUST_CK_SELECT_010 = "CK_SELECT_010";

	/** SQL定義キー(サービス契約＜eo光ネット＞ KK_SELECT_004) */
	private static final String KK_T_SVC_KEI_EOH_NET_KK_SELECT_004 = "KK_SELECT_004";

	/** SQL定義キー(オプションサービス契約＜ISP＞ KK_SELECT_037) */
	private static final String KK_T_OPSVKEI_ISP_KK_SELECT_037 = "KK_SELECT_037";

	/** SQL定義キー(サブオプションサービス契約 KK_SELECT_037) */
	private static final String KK_T_SBOP_SVC_KEI_KK_SELECT_037 = "KK_SELECT_037";

	/** SQL定義キー(WAO連携情報 KK_SELECT_004) */
	private static final String KK_T_WAO_RNKI_IF_KK_SELECT_004 = "KK_SELECT_004";

	/** テーブルアクセスクラス(申込明細) */
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;

	/** テーブルアクセスクラス(サービス契約) */
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約回線内訳) */
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;

	/** テーブルアクセスクラス(連絡先) */
	private JBSbatSQLAccess db_CK_T_RRKS = null;

	/** テーブルアクセスクラス(オプションサービス契約) */
	private JBSbatSQLAccess db_KK_T_OP_SVC_KEI = null;

	/** テーブルアクセスクラス(お客様) */
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(サービス契約＜eo光ネット＞) */
	private JBSbatSQLAccess db_KK_T_SVC_KEI_EOH_NET = null;

	/** テーブルアクセスクラス(オプションサービス契約＜ISP＞) */
	private JBSbatSQLAccess db_KK_T_OPSVKEI_ISP = null;

	/** テーブルアクセスクラス(サブオプションサービス契約) */
	private JBSbatSQLAccess db_KK_T_SBOP_SVC_KEI = null;

	/** テーブルアクセスクラス(WAO連携情報) */
	private JBSbatSQLAccess db_KK_T_WAO_RNKI_IF = null;

	/** ▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲ */
	
	/** DBデータ参照コード_サービス契約 */
	private static final String DB_DATA_SVC_KEI = "svcKei";
	
	/** DBデータ参照コード_サービス契約回線内訳 */
	private static final String DB_DATA_SVKEI_KAISEN_UW = "svkeiKaisenUw";
	
	/** DBデータ参照コード_連絡先（電話番号） */
	private static final String DB_DATA_RRKS_TEL = "rrksTel";
	
	/** DBデータ参照コード_連絡先（メールアドレス） */
	private static final String DB_DATA_RRKS_MAIL = "rrksMail";
	
	/** DBデータ参照コード_お客様 */
	private static final String DB_DATA_CUST = "cust";
	
	/** DBデータ参照コード_オプションサービス契約＜ISP＞ */
	private static final String DB_DATA_OP_SV_KEI_ISP = "opsvkeiIsp";
	
	/** DBデータ参照コード_オプションサービス契約＜ISP＞(メールアドレス) */
	private static final String DB_DATA_OP_SV_KEI_ISP_MAIL = "opsvkeiIspMail";
	
	/** DBデータ参照コード_サブオプションサービス契約 */
	private static final String DB_DATA_SBOP_SVC_KEI = "sbopSvcKei";
	
	/** DBデータ参照コード_WAO連携情報 */
	private static final String DB_DATA_WAO_RNKI_IF = "waoRnkiIf";

	/** DBデータ参照コード_サービス契約＜eo光ネット＞ */
	private static final String DB_DATA_SVC_KEI_EOH_NET = "svcKeiEohNet";
	
	/** 処理区分コード_新規申込 */
	private static final String TRAN_DIV_ADD = "0";

	/** 処理区分コード_新規申込（電話申込なし） */
	private static final String TRAN_DIV_ADD_TEL_NASHI = "1";

	/** 処理区分コード_新規申込（電話申込あり） */
	private static final String TRAN_DIV_ADD_TEL_ARI = "2";

	/** 処理区分コード_コース変更 */
	private static final String TRAN_DIV_CSCH = "3";

	/** 処理区分コード_解約 */
	private static final String TRAN_DIV_DSL = "4";
	
	/** 都道府県名リスト：西日本都道府県 */
	private static final List<String> NISHI_NIHON_TODOUHUKEN = Arrays.asList(
			"福井県","石川県","富山県",
			"愛知県","岐阜県","三重県","静岡県",
			"兵庫県","京都府","滋賀県","大阪府","奈良県","和歌山県",
			"島根県","鳥取県","岡山県","山口県","広島県",
			"愛媛県","香川県","高知県","徳島県",
			"福岡県","大分県","宮崎県","佐賀県","長崎県","熊本県","鹿児島県","沖縄県"
			);

	/** WAO転用区分_新規 */
	private static final String WAO_TENYO_DIV_ADD = "01";

	/** WAO転用区分_転用 */
	private static final String WAO_TENYO_DIV_TENYO = "02";

	/** WAO転用区分_事業者変更（新規） */
	private static final String WAO_TENYO_DIV_JIGYOSHA = "03";
	
	/** WAO業務パラメータ：KK_WAO_RNK_TNT_NM" */
	private String KK_WAO_RNK_TNT_NM = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_TNT_TELNO" */
	private String KK_WAO_RNK_TNT_TELNO = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_TNT_MLAD" */
	private String KK_WAO_RNK_TNT_MLAD = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_CHUMNSTAT" */
	private String KK_WAO_RNK_CHUMNSTAT = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_WCRS_01" */
	private String KK_WAO_RNK_WCRS_01 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_ECRS_01" */
	private String KK_WAO_RNK_ECRS_01 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_WCRS_02" */
	private String KK_WAO_RNK_WCRS_02 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_ECRS_02" */
	private String KK_WAO_RNK_ECRS_02 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_WCRS_03" */
	private String KK_WAO_RNK_WCRS_03 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_ECRS_03" */
	private String KK_WAO_RNK_ECRS_03 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_WCRS_04" */
	private String KK_WAO_RNK_WCRS_04 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_ECRS_04" */
	private String KK_WAO_RNK_ECRS_04 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_WCRS_05" */
	private String KK_WAO_RNK_WCRS_05 = "";
	
	/** WAO業務パラメータ：KK_WAO_RNK_ECRS_05" */
	private String KK_WAO_RNK_ECRS_05 = "";
	
	/** WAO工事希望時間帯コードリスト" */
	private Map<String,String> WAO_KOJI_KIBO_TIMEZ_LIST = new HashMap<String, String>();

	/** 固定文字列：全角スペース */
	private static final String ZEN_SPACE = "　";
	
	/** フォーマット文字列 */
	private static final String formatStr = "%s-%s-%s";
	
	/** 出力情報 項目名Map */
	private HashMap<Object, String> indexOptionInfoMap = new HashMap<Object, String>();

	/**
	 * 初期処理
	 * 
	 * @param JBSbatCommonItem
	 *            commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception {
		/** ▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼ */
		/** ▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼ */
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_MSKM_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
		db_CK_T_RRKS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_RRKS);
		db_KK_T_OP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OP_SVC_KEI);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_SVC_KEI_EOH_NET = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_EOH_NET);
		db_KK_T_OPSVKEI_ISP = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OPSVKEI_ISP);
		db_KK_T_SBOP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SBOP_SVC_KEI);
		db_KK_T_WAO_RNKI_IF = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WAO_RNKI_IF);

		/** ▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲ */
		
		// 出力情報の項目名IDXMapを設定
		indexOptionInfoMap = setIndexOptionInfoMap();
		
		// 業務パラメータの値を設定
		KK_WAO_RNK_TNT_NM = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_TNT_NM");
		KK_WAO_RNK_TNT_TELNO = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_TNT_TELNO");
		KK_WAO_RNK_TNT_MLAD = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_TNT_MLAD");
		KK_WAO_RNK_CHUMNSTAT = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_CHUMNSTAT");
		KK_WAO_RNK_WCRS_01 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_WCRS_01");
		KK_WAO_RNK_ECRS_01 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_ECRS_01");
		KK_WAO_RNK_WCRS_02 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_WCRS_02");
		KK_WAO_RNK_ECRS_02 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_ECRS_02");
		KK_WAO_RNK_WCRS_03 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_WCRS_03");
		KK_WAO_RNK_ECRS_03 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_ECRS_03");
		KK_WAO_RNK_WCRS_04 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_WCRS_04");
		KK_WAO_RNK_ECRS_04 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_ECRS_04");
		KK_WAO_RNK_WCRS_05 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_WCRS_05");
		KK_WAO_RNK_ECRS_05 = JKKBatCommon.getWorkParamSetteValue(super.commonItem, "KK_WAO_RNK_ECRS_05");
		
		// 「WAO工事希望時間帯コードリストを設定
		WAO_KOJI_KIBO_TIMEZ_LIST.put("00","設定なし");
		WAO_KOJI_KIBO_TIMEZ_LIST.put("01","午前フリー（9時〜12時）");
		WAO_KOJI_KIBO_TIMEZ_LIST.put("02","午後フリー（13時〜17時）");
		
		/** ▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲ */
	}

	/**
	 * 主処理
	 * 
	 * @param inMap
	 *            　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		try
		{
			// 入力レコードの項目数チェック 
			if(inMap.isInputErrorFlg()) 
			{
				// エラーログを出力し続行する。
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKUB0490CE, new String[]{});
				
				throw new JBSbatBusinessError();
			}
			// インプットデータMap
			HashMap<String, String> inputMap = new HashMap<String, String>();
			inputMap.put(JBSbatKKIFM977.TRAN_DIV, cutDq(inMap.getString(JBSbatKKIFM977.TRAN_DIV)));
			inputMap.put(JBSbatKKIFM977.SVC_KEI_NO, cutDq(inMap.getString(JBSbatKKIFM977.SVC_KEI_NO)));
			inputMap.put(JBSbatKKIFM977.PCRS_CD, cutDq(inMap.getString(JBSbatKKIFM977.PCRS_CD)));
			inputMap.put(JBSbatKKIFM977.CHG_BF_PCRS_CD, cutDq(inMap.getString(JBSbatKKIFM977.CHG_BF_PCRS_CD)));
			inputMap.put(JBSbatKKIFM977.CHGE_AF_PCRS_CD, cutDq(inMap.getString(JBSbatKKIFM977.CHGE_AF_PCRS_CD)));
			inputMap.put(JBSbatKKIFM977.MSKM_DTL_NO, cutDq(inMap.getString(JBSbatKKIFM977.MSKM_DTL_NO)));
			
			// WAO注文登録送信対象データ参照データリスト
			Map<String, JBSbatCommonDBInterface> waoAddSendDataMap =  new HashMap<String, JBSbatCommonDBInterface>();
			
			// WAO注文登録送信対象データ参照リストデータリスト
			Map<String, ArrayList<String>> waoAddSendDataListMap =  new HashMap<String, ArrayList<String>>();
			
			// 出力情報 入出力インターフェースオブジェクトを生成
			JBSbatServiceInterfaceMap outmapOptionInfo = new JBSbatServiceInterfaceMap();
			// 出力情報マップを作成
			JBSbatServiceInterfaceMap optionInfoMap = new JBSbatServiceInterfaceMap();
			
			// 初期化
			initOptionInfoMap(optionInfoMap);
			
			// DBアクセス(申込明細)を実行します
			JBSbatCommonDBInterface mskmDtlMap = getMskmDtlMap(inputMap.get(JBSbatKKIFM977.MSKM_DTL_NO));
			
			// WAO注文連携抑止フラグが"1"（抑止ON）の場合は出力対象外
			if(null == mskmDtlMap){
				return outputBean;
			}
			
			// 出力共通情報設定
			
			// サービス契約番号
			optionInfoMap.set(JBSbatKKIFM978.SVC_KEI_NO, inputMap.get(JBSbatKKIFM977.SVC_KEI_NO));
			// アクターID
			optionInfoMap.set(JBSbatKKIFM978.ACTOR_ID, JKKStrConst.KARA);
			
			// DBアクセス(サービス契約)を実行します
			JBSbatCommonDBInterface svcKeiMap = getSvcKeiMap(inputMap.get(JBSbatKKIFM977.SVC_KEI_NO));
			waoAddSendDataMap.put(DB_DATA_SVC_KEI, svcKeiMap);
			// DBアクセス(サービス契約回線内訳)を実行します
			waoAddSendDataMap.put(DB_DATA_SVKEI_KAISEN_UW, getSvkeiKaisenUwMap(inputMap.get(JBSbatKKIFM977.SVC_KEI_NO)));
			// DBアクセス(連絡先（電話番号）)を実行します
			waoAddSendDataListMap.put(DB_DATA_RRKS_TEL, getRrksTelList(svcKeiMap.getString("SYSID")));
			// DBアクセス(連絡先（メールアドレス）)を実行します
			ArrayList<String> rrksMailList = getRrksMailList(svcKeiMap.getString("SYSID"));
			waoAddSendDataListMap.put(DB_DATA_RRKS_MAIL, rrksMailList);
			// DBアクセス(オプションサービス契約＜ISP＞(メールアドレス))を実行します
			waoAddSendDataListMap.put(DB_DATA_OP_SV_KEI_ISP_MAIL, getOpsvkeiIspMailMap(inputMap.get(JBSbatKKIFM977.SVC_KEI_NO),rrksMailList));
			// DBアクセス(サービス契約<eo光ネット>)を実行します
			waoAddSendDataMap.put(DB_DATA_SVC_KEI_EOH_NET, getSvcKeiEohNetMap(inputMap.get(JBSbatKKIFM977.SVC_KEI_NO)));
			
			// 処理区分'0'（新規申込）の場合
			if(TRAN_DIV_ADD.equals(inputMap.get(JBSbatKKIFM977.TRAN_DIV))){
				// オプションサービス契約より出力情報を取得する。
				
				// DBアクセス(オプションサービス契約)を実行します
				JBSbatCommonDBInterface opSvcKeiMap = getOpSvcKeiMap(inputMap.get(JBSbatKKIFM977.SVC_KEI_NO));
				
				// DBアクセス(お客様)を実行します
				waoAddSendDataMap.put(DB_DATA_CUST, getCustMap(svcKeiMap.getString("SYSID")));
				
				if(opSvcKeiMap == null || !(opSvcKeiMap.getMapSize() > 0)){
					// 処理区分：1（新規申込（電話申込なし））
					
					// csvレコード作成
					setWaoAddSendDataAddTelNashi(inputMap, waoAddSendDataMap, waoAddSendDataListMap, optionInfoMap);
					
				}else{
					// 処理区分：2（新規申込（電話申込あり））
					
					// DBアクセス(オプションサービス契約<ISP>)を実行します
					waoAddSendDataMap.put(DB_DATA_OP_SV_KEI_ISP, getOpsvkeiIspMap(opSvcKeiMap.getString("OP_SVC_KEI_NO"), opSvcKeiMap.getString("GENE_ADD_DTM")));
					// DBアクセス(サブオプションサービス契約)を実行します
					waoAddSendDataListMap.put(DB_DATA_SBOP_SVC_KEI, getSbopSvcKeiMap(opSvcKeiMap.getString("OP_SVC_KEI_NO")));
					
					// csvレコード作成
					setWaoAddSendDataAddTelAri(inputMap, waoAddSendDataMap, waoAddSendDataListMap, optionInfoMap);
					
				}
			// 処理区分'0'（新規申込）以外の場合
			}else{
				
				// DBアクセス(WAO連携情報)を実行します
				waoAddSendDataMap.put(DB_DATA_WAO_RNKI_IF, getWaoRnkiIfMap(inputMap.get(JBSbatKKIFM977.SVC_KEI_NO)));
				
				// 処理区分'3'（コース変更）の場合
				if(TRAN_DIV_CSCH.equals(inputMap.get(JBSbatKKIFM977.TRAN_DIV))){
					
					// csvレコード作成
					setWaoAddSendDataCsch(inputMap, waoAddSendDataMap, waoAddSendDataListMap, optionInfoMap);
					
				// 処理区分'4'（解約）の場合
				}else if(TRAN_DIV_DSL.equals(inputMap.get(JBSbatKKIFM977.TRAN_DIV))){
					
					// csvレコード作成
					setWaoAddSendDataDsl(inputMap, waoAddSendDataMap, waoAddSendDataListMap, optionInfoMap);
					
				}
			}
			// 括り文字付与
			optionInfoMap.setMap(JKUBatCommon.addDblQuote(optionInfoMap.getMap()));
			// 入出力インターフェースに基本情報を設定(カンマ編集)
			outmapOptionInfo.setString(JBSbatKKIFM978.WAO_ADD_SEND_DATA, JKUBatCommon.editComma(optionInfoMap, indexOptionInfoMap));
			// 出力フラグを設定
			outmapOptionInfo.setOutFlg(true);
			// 出力共通電文に入出力インターフェースを設定
			outputBean.addOutMapList(outmapOptionInfo);
		}
		catch (JBSbatBusinessError eBusiness)
		{
			// ロールバック
			commonItem.getConnection().rollback();
			throw eBusiness;
		}
		
		return outputBean;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * 
	 * @throws Exception
	 */
	public void terminal() throws Exception {
		/** ▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼ */
		/** ▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼ */
		// DBアクセスクラスをクローズします
		db_KK_T_MSKM_DTL.close();
		db_KK_T_OP_SVC_KEI.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVC_KEI_EOH_NET.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
		db_KK_T_OPSVKEI_ISP.close();
		db_KK_T_SBOP_SVC_KEI.close();
		db_KK_T_WAO_RNKI_IF.close();
		db_CK_T_CUST.close();
		db_CK_T_RRKS.close();
		/** ▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲ */
		/** ▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲ */
	}

	/** ▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼ */

	
	/**
	 * 出力情報の項目名Map
	 * @return HashMap 項目名Map
	 */	
	private HashMap<Object, String> setIndexOptionInfoMap()
	{
		this.indexOptionInfoMap.put(0, JBSbatKKIFM978.TRAN_DIV);
		this.indexOptionInfoMap.put(1, JBSbatKKIFM978.SVC_KEI_NO);
		this.indexOptionInfoMap.put(2, JBSbatKKIFM978.ACTOR_ID);
		this.indexOptionInfoMap.put(3, JBSbatKKIFM978.KMK_1);
		this.indexOptionInfoMap.put(4, JBSbatKKIFM978.KMK_2);
		this.indexOptionInfoMap.put(5, JBSbatKKIFM978.KMK_3);
		this.indexOptionInfoMap.put(6, JBSbatKKIFM978.KMK_4);
		this.indexOptionInfoMap.put(7, JBSbatKKIFM978.KMK_5);
		this.indexOptionInfoMap.put(8, JBSbatKKIFM978.KMK_6);
		this.indexOptionInfoMap.put(9, JBSbatKKIFM978.KMK_7);
		this.indexOptionInfoMap.put(10, JBSbatKKIFM978.KMK_8);
		this.indexOptionInfoMap.put(11, JBSbatKKIFM978.KMK_9);
		this.indexOptionInfoMap.put(12, JBSbatKKIFM978.KMK_10);
		this.indexOptionInfoMap.put(13, JBSbatKKIFM978.KMK_11);
		this.indexOptionInfoMap.put(14, JBSbatKKIFM978.KMK_12);
		this.indexOptionInfoMap.put(15, JBSbatKKIFM978.KMK_13);
		this.indexOptionInfoMap.put(16, JBSbatKKIFM978.KMK_14);
		this.indexOptionInfoMap.put(17, JBSbatKKIFM978.KMK_15);
		this.indexOptionInfoMap.put(18, JBSbatKKIFM978.KMK_16);
		this.indexOptionInfoMap.put(19, JBSbatKKIFM978.KMK_17);
		this.indexOptionInfoMap.put(20, JBSbatKKIFM978.KMK_18);
		this.indexOptionInfoMap.put(21, JBSbatKKIFM978.KMK_19);
		this.indexOptionInfoMap.put(22, JBSbatKKIFM978.KMK_20);
		this.indexOptionInfoMap.put(23, JBSbatKKIFM978.KMK_21);
		this.indexOptionInfoMap.put(24, JBSbatKKIFM978.KMK_22);
		this.indexOptionInfoMap.put(25, JBSbatKKIFM978.KMK_23);
		this.indexOptionInfoMap.put(26, JBSbatKKIFM978.KMK_24);
		this.indexOptionInfoMap.put(27, JBSbatKKIFM978.KMK_25);
		this.indexOptionInfoMap.put(28, JBSbatKKIFM978.KMK_26);
		this.indexOptionInfoMap.put(29, JBSbatKKIFM978.KMK_27);
		this.indexOptionInfoMap.put(30, JBSbatKKIFM978.KMK_28);
		this.indexOptionInfoMap.put(31, JBSbatKKIFM978.KMK_29);
		this.indexOptionInfoMap.put(32, JBSbatKKIFM978.KMK_30);
		this.indexOptionInfoMap.put(33, JBSbatKKIFM978.KMK_31);
		this.indexOptionInfoMap.put(34, JBSbatKKIFM978.KMK_32);
		this.indexOptionInfoMap.put(35, JBSbatKKIFM978.KMK_33);
		this.indexOptionInfoMap.put(36, JBSbatKKIFM978.KMK_34);
		this.indexOptionInfoMap.put(37, JBSbatKKIFM978.KMK_35);
		this.indexOptionInfoMap.put(38, JBSbatKKIFM978.KMK_36);
		this.indexOptionInfoMap.put(39, JBSbatKKIFM978.KMK_37);
		this.indexOptionInfoMap.put(40, JBSbatKKIFM978.KMK_38);
		this.indexOptionInfoMap.put(41, JBSbatKKIFM978.KMK_39);
		this.indexOptionInfoMap.put(42, JBSbatKKIFM978.KMK_40);
		this.indexOptionInfoMap.put(43, JBSbatKKIFM978.KMK_41);
		this.indexOptionInfoMap.put(44, JBSbatKKIFM978.KMK_42);
		this.indexOptionInfoMap.put(45, JBSbatKKIFM978.KMK_43);
		this.indexOptionInfoMap.put(46, JBSbatKKIFM978.KMK_44);
		this.indexOptionInfoMap.put(47, JBSbatKKIFM978.KMK_45);
		this.indexOptionInfoMap.put(48, JBSbatKKIFM978.KMK_46);
		this.indexOptionInfoMap.put(49, JBSbatKKIFM978.KMK_47);
		this.indexOptionInfoMap.put(50, JBSbatKKIFM978.KMK_48);
		this.indexOptionInfoMap.put(51, JBSbatKKIFM978.KMK_49);
		this.indexOptionInfoMap.put(52, JBSbatKKIFM978.KMK_50);
		this.indexOptionInfoMap.put(53, JBSbatKKIFM978.KMK_51);
		this.indexOptionInfoMap.put(54, JBSbatKKIFM978.KMK_52);
		this.indexOptionInfoMap.put(55, JBSbatKKIFM978.KMK_53);
		this.indexOptionInfoMap.put(56, JBSbatKKIFM978.KMK_54);
		this.indexOptionInfoMap.put(57, JBSbatKKIFM978.KMK_55);
		this.indexOptionInfoMap.put(58, JBSbatKKIFM978.KMK_56);
		this.indexOptionInfoMap.put(59, JBSbatKKIFM978.KMK_57);
		this.indexOptionInfoMap.put(60, JBSbatKKIFM978.KMK_58);
		this.indexOptionInfoMap.put(61, JBSbatKKIFM978.KMK_59);
		this.indexOptionInfoMap.put(62, JBSbatKKIFM978.KMK_60);
		this.indexOptionInfoMap.put(63, JBSbatKKIFM978.KMK_61);
		this.indexOptionInfoMap.put(64, JBSbatKKIFM978.KMK_62);
		this.indexOptionInfoMap.put(65, JBSbatKKIFM978.KMK_63);
		this.indexOptionInfoMap.put(66, JBSbatKKIFM978.KMK_64);
		this.indexOptionInfoMap.put(67, JBSbatKKIFM978.KMK_65);
		this.indexOptionInfoMap.put(68, JBSbatKKIFM978.KMK_66);
		this.indexOptionInfoMap.put(69, JBSbatKKIFM978.KMK_67);
		this.indexOptionInfoMap.put(70, JBSbatKKIFM978.KMK_68);
		this.indexOptionInfoMap.put(71, JBSbatKKIFM978.KMK_69);
		this.indexOptionInfoMap.put(72, JBSbatKKIFM978.KMK_70);
		
		return indexOptionInfoMap;
	}
	
	/**
	 * 出力情報Mapの初期化
	 * @param optionInfoMap
	 * @throws Exception 
	 */	
	private void initOptionInfoMap(JBSbatServiceInterfaceMap optionInfoMap) throws Exception
	{
		optionInfoMap.set(JBSbatKKIFM978.KMK_1, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_2, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_3, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_4, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_5, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_6, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_7, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_8, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_9, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_10, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_11, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_12, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_13, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_14, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_15, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_16, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_17, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_18, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_19, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_20, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_21, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_22, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_23, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_24, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_25, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_26, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_27, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_28, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_29, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_30, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_31, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_32, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_33, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_34, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_35, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_36, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_37, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_38, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_39, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_40, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_41, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_42, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_43, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_44, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_45, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_46, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_47, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_48, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_49, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_50, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_51, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_52, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_53, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_54, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_55, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_56, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_57, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_58, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_59, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_60, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_61, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_62, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_63, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_64, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_65, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_66, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_67, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_68, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_69, null);
		optionInfoMap.set(JBSbatKKIFM978.KMK_70, null);

	}
	
	/**
	 * ダブルクォートを削除
	 * 
	 * @param str
	 * @return
	 */
	private String cutDq(String str)
	{
		String ret = str;
		if (str.startsWith("\"") && str.endsWith("\""))
		{
			ret = str.substring(1, str.length() - 1);
		}
		return ret;
	}
	
	/**
	 * 申込明細番号から申込明細情報を取得します。 <br>
	 * 
	 * @param mskmDtlNo 申込明細番号
	 * @return 申込明細情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getMskmDtlMap(String mskmDtlNo)
			throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(mskmDtlNo);
		
		// 検索
		db_KK_T_MSKM_DTL.selectBySqlDefine(paramList,KK_T_MSKM_DTL_KK_SELECT_045);
		
		if(db_KK_T_MSKM_DTL != null){
			return db_KK_T_MSKM_DTL.selectNext();
		}else{
			return null;
		}
	}
	
	/**
	 * サービス契約番号からサービス契約情報を取得します。 <br>
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @return サービス契約情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getSvcKeiMap(String svcKeiNo)
			throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(svcKeiNo);
		paramList.setValue(opeDate);
		
		// 検索
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_092);
		
		if(db_KK_T_SVC_KEI != null){
			return db_KK_T_SVC_KEI.selectNext();
		}else{
			return null;
		}
	}
	
	/**
	 * サービス契約番号からサービス契約回線内訳情報を取得します。 <br>
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @return サービス契約回線内訳情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getSvkeiKaisenUwMap(String svcKeiNo)
			throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opeDate);
		paramList.setValue(opeDate);
		paramList.setValue(svcKeiNo);
		
		// 検索
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_052);
		
		if(db_KK_T_SVKEI_KAISEN_UW != null){
			return db_KK_T_SVKEI_KAISEN_UW.selectNext();
		}else{
			return null;
		}
	}

	/**
	 * SYSIDから連絡先（電話番号）情報を取得します。 <br>
	 * 
	 * @param sysId SYSID
	 * @return お連絡先（電話番号）情報
	 * @throws Exception 例外が発生した場合
	 */
	private ArrayList<String> getRrksTelList(String sysId) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opeDate);
		paramList.setValue(sysId);
		paramList.setValue("2");
		
		// 検索
		db_CK_T_RRKS.selectBySqlDefine(paramList, CK_T_RRKS_CK_SELECT_006);
		
		// 結果データ
		ArrayList<String> tells = new ArrayList<String>();
		
		if(db_CK_T_RRKS != null){
			for(JBSbatCommonDBInterface rrksMailMap = db_CK_T_RRKS.selectNext(); null != rrksMailMap ; rrksMailMap = db_CK_T_RRKS.selectNext())
			{
				if(rrksMailMap.getString("TELNO") != null && !("".equals(rrksMailMap.getString("TELNO")))){
					tells.add(rrksMailMap.getString("TELNO"));
				}
			}
		}
		
		//重複データを削除
		ArrayList<String> tellList = new ArrayList<String>(new LinkedHashSet<String>(tells));

		return tellList;
	}

	/**
	 * SYSIDから連絡先（メールアドレス）情報を取得します。 <br>
	 * 
	 * @param sysId SYSID
	 * @return 連絡先（メールアドレス）情報
	 * @throws Exception 例外が発生した場合
	 */
	private ArrayList<String> getRrksMailList(String sysId) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(sysId);
		paramList.setValue(opeDate);

		// 検索
		db_CK_T_RRKS.selectBySqlDefine(paramList, CK_T_RRKS_KK_SELECT_014);
		
		// 結果データ
		ArrayList<String> mails = new ArrayList<String>();
		if(db_CK_T_RRKS != null){
			for(JBSbatCommonDBInterface rrksMailMap = db_CK_T_RRKS.selectNext(); null != rrksMailMap ; rrksMailMap = db_CK_T_RRKS.selectNext())
			{
				if(rrksMailMap.getString("MLAD") != null && !("".equals(rrksMailMap.getString("MLAD")))){
					mails.add(rrksMailMap.getString("MLAD"));
				}
			}
		}
		
		//重複データを削除
		ArrayList<String> mailList = new ArrayList<String>(new LinkedHashSet<String>(mails));
		

		return mailList;
	}

	/**
	 * サービス契約番号からオプションサービス契約情報を取得します。 <br>
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @return オプションサービス契約情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getOpSvcKeiMap(String svcKeiNo)
			throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opeDate);
		paramList.setValue(svcKeiNo);

		// 検索
		db_KK_T_OP_SVC_KEI.selectBySqlDefine(paramList,KK_T_OP_SVC_KEI_KK_SELECT_151);
		
		if(db_KK_T_OP_SVC_KEI != null){
			return db_KK_T_OP_SVC_KEI.selectNext();
		}else{
			return null;
		}
	}

	/**
	 * SYSIDからお客様情報を取得します。 <br>
	 * 
	 * @param sysId SYSID
	 * @return お客様情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getCustMap(String sysId) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(sysId);
		paramList.setValue(opeDate);
		
		// 検索
		db_CK_T_CUST.selectBySqlDefine(paramList,CK_T_CUST_CK_SELECT_010);
		
		if(db_CK_T_CUST != null){
			return db_CK_T_CUST.selectNext();
		}else{
			return null;
		}
	}

	/**
	 * サービス契約番号からサービス契約<eo光ネット>契約情報を取得します。 <br>
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @return サービス契約<eo光ネット>情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getSvcKeiEohNetMap(String svcKeiNo) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(svcKeiNo);
		paramList.setValue(opeDate);
		
		// 検索
		db_KK_T_SVC_KEI_EOH_NET.selectBySqlDefine(paramList,KK_T_SVC_KEI_EOH_NET_KK_SELECT_004);
		
		if(db_KK_T_SVC_KEI_EOH_NET != null){
			return db_KK_T_SVC_KEI_EOH_NET.selectNext();
		}else{
			return null;
		}
	}
	
	/**
	 * オプションサービス契約番号からオプションサービス契約＜ISP＞情報を取得します。 <br>
	 * 
	 * @param opSvcKeiNo オプションサービス契約番号
	 * @param geneAddDtm 世代
	 * @return オプションサービス契約＜ISP＞情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getOpsvkeiIspMap(String opSvcKeiNo, String geneAddDtm) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue("OP_SVC_KEI_NO",opSvcKeiNo);
		paramList.setValue("GENE_ADD_DTM",geneAddDtm);

		// 検索

		return db_KK_T_OPSVKEI_ISP.selectByPrimaryKeys(paramList);
	}
	
	/**
	 * オプションサービス契約番号からオプションサービス契約＜ISP＞(メールアドレス)情報を取得します。 <br>
	 * 
	 * @param opSvcKeiNo オプションサービス契約番号
	 * @return オプションサービス契約＜ISP＞(メールアドレス)情報
	 * @throws Exception 例外が発生した場合
	 */
	private ArrayList<String> getOpsvkeiIspMailMap(String opSvcKeiNo, ArrayList<String> rrksMailList) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opSvcKeiNo);
		paramList.setValue(opeDate);

		// 検索
		db_KK_T_OPSVKEI_ISP.selectBySqlDefine(paramList, KK_T_OPSVKEI_ISP_KK_SELECT_037);
		
		// 結果データ
		ArrayList<String> mails = new ArrayList<String>();
		
		if(db_KK_T_OPSVKEI_ISP != null){
			for(JBSbatCommonDBInterface opsvkeiIspMailMap = db_KK_T_OPSVKEI_ISP.selectNext(); null != opsvkeiIspMailMap ; opsvkeiIspMailMap = db_KK_T_OPSVKEI_ISP.selectNext())
			{
				if(opsvkeiIspMailMap.getString("MLAD") != null && !("".equals(opsvkeiIspMailMap.getString("MLAD")))){
					mails.add(opsvkeiIspMailMap.getString("MLAD"));
				}
			}
		}
		
		//重複データを削除
		ArrayList<String> mailList = new ArrayList<String>(new LinkedHashSet<String>(mails));
		
		//連絡先と重複しているメールアドレスを削除
		mailList.removeAll(rrksMailList);
		

		return mailList;
	}

	/**
	 * オプションサービス契約番号からサブオプションサービス契約情報を取得します。 <br>
	 * 
	 * @param opSvcKeiNo オプションサービス契約番号
	 * @return サブオプションサービス契約情報
	 * @throws Exception 例外が発生した場合
	 */
	private ArrayList<String> getSbopSvcKeiMap(String opSvcKeiNo) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(opSvcKeiNo);
		paramList.setValue(opeDate);

		// 検索
		db_KK_T_SBOP_SVC_KEI.selectBySqlDefine(paramList,KK_T_SBOP_SVC_KEI_KK_SELECT_037);
		
		// 結果データ
		ArrayList<String> pcrsCd = new ArrayList<String>();
		
		if(db_KK_T_SBOP_SVC_KEI != null){
			for(JBSbatCommonDBInterface opsvkeiIspMailMap = db_KK_T_SBOP_SVC_KEI.selectNext(); null != opsvkeiIspMailMap ; opsvkeiIspMailMap = db_KK_T_SBOP_SVC_KEI.selectNext())
			{
				pcrsCd.add(opsvkeiIspMailMap.getString("PCRS_CD"));
			}
		}
		ArrayList<String> pcrsCdList = new ArrayList<String>(new LinkedHashSet<String>(pcrsCd));
		
		return pcrsCdList;
	}

	/**
	 * サービス契約番号からWAO連携情報情報を取得します。 <br>
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @return WAO連携情報情報
	 * @throws Exception 例外が発生した場合
	 */
	private JBSbatCommonDBInterface getWaoRnkiIfMap(String svcKeiNo) throws Exception {
		// 条件設定
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(svcKeiNo);
		
		// 検索
		db_KK_T_WAO_RNKI_IF.selectBySqlDefine(paramList,KK_T_WAO_RNKI_IF_KK_SELECT_004);
		
		if(db_KK_T_WAO_RNKI_IF != null){
			return db_KK_T_WAO_RNKI_IF.selectNext();
		}else{
			return null;
		}
	}
	
	/**
	 * WAO注文登録対象送信データ_新規申込（電話申込なし）を設定します。<br>
	 * <p>
	 * @param tranDiv 処理区分
	 * @param inMap WAO注文登録対象データ
	 * @param selectData DB参照データ
	 * @param selectListData DB参照リストデータ
	 * @param waoAddSendData WAO注文登録対象送信データ
	 * @throws Exception 
	 */	
	private void setWaoAddSendDataAddTelNashi(HashMap<String, String> inputMap, Map<String, JBSbatCommonDBInterface> selectData, Map<String, ArrayList<String>> selectListData, JBSbatServiceInterfaceMap optionInfoMap ) throws Exception
	{
		
		// 基本情報 処理区分 設定
		optionInfoMap.set(JBSbatKKIFM978.TRAN_DIV, TRAN_DIV_ADD_TEL_NASHI);
		
		// *** orders ***
		// 基本情報＞注文基本情報＞オーダー番号（注文番号）
		optionInfoMap.set(JBSbatKKIFM978.KMK_1, JKKStrConst.KARA);
		// 基本情報＞注文基本情報＞東西区分
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			if(NISHI_NIHON_TODOUHUKEN.contains(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.NISHI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.HIGASHI);
			}
		}
		// 基本情報＞注文基本情報＞注文種別
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			if(WAO_TENYO_DIV_ADD.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_3 , JKKStrConst.DIV_ADD);
			}else if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_3 , JKKStrConst.DIV_TENYO);
			}else if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_3 , JKKStrConst.DIV_JIGYOSHA);
			}
		}
		// 基本情報＞注文基本情報＞ISP担当者名
		optionInfoMap.set(JBSbatKKIFM978.KMK_4 , KK_WAO_RNK_TNT_NM);
		// 基本情報＞注文基本情報＞ISP担当者電話番号
		optionInfoMap.set(JBSbatKKIFM978.KMK_5 , KK_WAO_RNK_TNT_TELNO);
		// 基本情報＞注文基本情報＞ISP担当者メールアドレス
		optionInfoMap.set(JBSbatKKIFM978.KMK_6 , KK_WAO_RNK_TNT_MLAD);
		// 基本情報＞注文基本情報＞注文ステータス
		optionInfoMap.set(JBSbatKKIFM978.KMK_7 , KK_WAO_RNK_CHUMNSTAT);
		
		// *** ntt_production_application_hikari_services ***
		// その他取次情報＞工事申込＞工事に関する情報及びその他の申込＞工事会社からエンドユーザーへの工事前連絡
		optionInfoMap.set(JBSbatKKIFM978.KMK_8 , JKKStrConst.KARA);
		// その他取次情報＞工事申込＞工事に関する情報及びその他の申込＞工事者情報事前連絡＞希望有無
		optionInfoMap.set(JBSbatKKIFM978.KMK_9 , JKKStrConst.KIBOSHINAI);
		// その他取次情報＞工事申込＞工事に関する情報及びその他の申込＞工事時建物穴あけ不可の事前希望
		optionInfoMap.set(JBSbatKKIFM978.KMK_10 , JKKStrConst.KIBOSHINAI);
		
		// *** ntt_production_application_common_infos ***
		if(selectData.get(DB_DATA_CUST) != null){
			// サービス申込情報＞契約者情報＞お客様区分
			if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_11 , JKKStrConst.KOJIN);
			}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_11 , JKKStrConst.HOJIN);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_11 , JKKStrConst.KARA);
			}
			// サービス申込情報＞契約者情報＞契約者名＞契約者カナ名
			optionInfoMap.set(JBSbatKKIFM978.KMK_12 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_KANA")));
			// サービス申込情報＞契約者情報＞契約者名＞契約者漢字名
			optionInfoMap.set(JBSbatKKIFM978.KMK_13 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_NM")));
		}
		// サービス申込情報＞契約者情報＞契約者連絡先＞連絡先区分
		optionInfoMap.set(JBSbatKKIFM978.KMK_14 , JKKStrConst.SONOTA);
		// サービス申込情報＞契約者情報＞契約者連絡先＞連絡先電話番号
		if(selectData.get(DB_DATA_CUST) != null){
			if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_15 , ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_TELNO")));
			}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				if(selectListData.get(DB_DATA_RRKS_TEL).size() > 0){
					String telNo = "";
					for(int i = 0; selectListData.get(DB_DATA_RRKS_TEL).size()> i ; i++){
						if(telNo == ""){
							telNo += selectListData.get(DB_DATA_RRKS_TEL).get(i);
						}else{
							telNo += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_RRKS_TEL).get(i);
						}
					}
					optionInfoMap.set(JBSbatKKIFM978.KMK_15 , telNo);
					
				}else{
					optionInfoMap.set(JBSbatKKIFM978.KMK_15 , JKKStrConst.KARA);
				}
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_15 , JKKStrConst.KARA);
			}
			// サービス申込情報＞契約者情報＞契約者住所＞郵便番号
			optionInfoMap.set(JBSbatKKIFM978.KMK_16 , ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_PCD")));
			// サービス申込情報＞契約者情報＞契約者住所＞都道府県・市区町村・番地
			String keishaJusho = 
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_STATE_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_CITY_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_OAZTSU_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_AZCHO_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_BNCHIGO"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_17 , keishaJusho);
			// サービス申込情報＞契約者情報＞契約者住所＞建物名・号室
			String keishaTatemono = 
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_ADRTTM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_ADRRM"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_18 , keishaTatemono);
		}
		
		// *** ntt_offer_situation_checks ***
		if(selectData.get(DB_DATA_SVC_KEI) != null){
			if(selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO") != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO").contains(JKKStrConst.TENYO_JIGYOSHA)){
				optionInfoMap.set(JBSbatKKIFM978.KMK_19 , JKKStrConst.ARI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_19 , JKKStrConst.NASHI);
			}
		}
		
		
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			// サービス申込情報＞設置場所住所＞郵便番号
			optionInfoMap.set(JBSbatKKIFM978.KMK_20 , ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_PCD")));
			// サービス申込情報＞設置場所住所＞都道府県・市区町村・番地
			String placeJusho = 
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_CITY_NM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_OAZTSU_NM")) + 
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_AZCHO_NM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_BNCHIGO"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_21 , placeJusho);
			
			// サービス申込情報＞設置場所住所＞建物名・号室
			String placeTatemono =
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_ADRTTM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_ADRRM"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_22 , placeTatemono);
			// サービス申込情報＞光回線＞光回線品目
			optionInfoMap.set(JBSbatKKIFM978.KMK_23 , setFletshikariHinmokuType(inputMap.get(JBSbatKKIFM977.PCRS_CD),selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM")));
		}
		// サービス申込情報＞端末・機器＞申込有無
		optionInfoMap.set(JBSbatKKIFM978.KMK_24 , JKKStrConst.ARI);
		// サービス申込情報＞端末・機器＞無線LANルータ（ホームゲートウェイ）申込
		optionInfoMap.set(JBSbatKKIFM978.KMK_25 , JKKStrConst.ADD);
		
		// *** ntt_acceptances ***
		// 基本情報＞注文基本情報＞回線番号コード
		optionInfoMap.set(JBSbatKKIFM978.KMK_26 , inputMap.get(JBSbatKKIFM977.SVC_KEI_NO));
		// サービス申込情報＞転用承諾番号入力＞転用承諾番号
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_27 , ckNull(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_SHODAKU_NO")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_27 , JKKStrConst.KARA);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_CUST) != null){
			// サービス申込情報＞転用承諾番号入力＞個人／法人
			 String khjn = JKKStrConst.KARA;
			if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					khjn = JKKStrConst.KOJIN ;
				}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					khjn = JKKStrConst.HOJIN ;
				}
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_28 , khjn);
			// サービス申込情報＞転用承諾番号入力＞契約者名
			if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_29 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_NM")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_29 , JKKStrConst.KARA);
			}
		}
		// サービス申込情報＞事業者変更承諾番号＞事業者変更承諾番号／事業者変更後キャンセル承諾番号
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_30 , ckNull(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_SHODAKU_NO")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_30 , JKKStrConst.KARA);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_CUST) != null){
			// サービス申込情報＞事業者変更承諾番号＞個人／法人
			 String jigyoshaKhjn = JKKStrConst.KARA;
			if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					jigyoshaKhjn = JKKStrConst.KOJIN ;
				}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					jigyoshaKhjn = JKKStrConst.HOJIN ;
				}
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_31 , jigyoshaKhjn);
			// サービス申込情報＞事業者変更承諾番号＞契約者名
			if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_32 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_NM")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_32 , JKKStrConst.KARA);
			}
		}
		// 連絡事項＞エージェント専用備考欄＞エージェント備考1
		optionInfoMap.set(JBSbatKKIFM978.KMK_33 , JKKStrConst.KARA);
		// 連絡事項＞エージェント専用備考欄＞エージェント備考2
		optionInfoMap.set(JBSbatKKIFM978.KMK_34 , JKKStrConst.KARA);
		// 連絡事項＞エージェント専用備考欄＞エージェント備考3
		optionInfoMap.set(JBSbatKKIFM978.KMK_35 , JKKStrConst.KARA);
		// 連絡事項＞エージェント⇒オーナー＞エージェントからオーナーへの連絡事項
		String renraku = "";
		for(int i = 0; selectListData.get(DB_DATA_RRKS_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}
		}
		for(int i = 0; selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO") != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO").length() > 0){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO");
		}
		
		if(selectData.get(DB_DATA_SVC_KEI) != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO") != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO").contains(JKKStrConst.TENYO_JIGYOSHA)){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += JKKStrConst.TENYO_JIGYOSHA;
		}
		optionInfoMap.set(JBSbatKKIFM978.KMK_36 , renraku);
		
		// *** ntt_construction_infos ***
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			// 日程_工事日＞工事希望日時１＞日付
			String waoKojiKiboYmd1 = selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_YMD_1");
			String waoKojiKiboYmd1Format = JKKStrConst.KARA;
			if(waoKojiKiboYmd1 != null){
				waoKojiKiboYmd1Format = String.format(formatStr, waoKojiKiboYmd1.substring(0, 4), waoKojiKiboYmd1.substring(4, 6), waoKojiKiboYmd1.substring(6, 8));
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_37 , waoKojiKiboYmd1Format);
			// 日程_工事日＞工事希望日時１＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_38 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_1")));
			// 日程_工事日＞工事希望日時２＞日付
			String waoKojiKiboYmd2 = selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_YMD_2");
			String waoKojiKiboYmd2Format = JKKStrConst.KARA;
			if(waoKojiKiboYmd2 != null){
				waoKojiKiboYmd2Format = String.format(formatStr, waoKojiKiboYmd2.substring(0, 4), waoKojiKiboYmd2.substring(4, 6), waoKojiKiboYmd2.substring(6, 8));
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_39 , waoKojiKiboYmd2Format);
			// 日程_工事日＞工事希望日時２＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_40 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_2")));
			// 日程_工事日＞工事希望日時３＞日付
			String waoKojiKiboYmd3 = selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_YMD_3");
			String waoKojiKiboYmd3Format = JKKStrConst.KARA;
			if(waoKojiKiboYmd3 != null){
				waoKojiKiboYmd3Format = String.format(formatStr, waoKojiKiboYmd3.substring(0, 4), waoKojiKiboYmd3.substring(4, 6), waoKojiKiboYmd3.substring(6, 8));
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_41 , waoKojiKiboYmd3Format);
			// 日程_工事日＞工事希望日時３＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_42 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_3")));
			// 日程_工事日（出側）＞工事希望日時１＞日付
			optionInfoMap.set(JBSbatKKIFM978.KMK_43 , waoKojiKiboYmd1Format);
			// 日程_工事日（出側）＞工事希望日時１＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_44 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_1")));
			// 日程_工事日（出側）＞工事希望日時２＞日付
			optionInfoMap.set(JBSbatKKIFM978.KMK_45 , waoKojiKiboYmd2Format);
			// 日程_工事日（出側）＞工事希望日時２＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_46 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_2")));
			// 日程_工事日（出側）＞工事希望日時３＞日付
			optionInfoMap.set(JBSbatKKIFM978.KMK_47 , waoKojiKiboYmd3Format);
			// 日程_工事日（出側）＞工事希望日時３＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_48 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_3")));
		}
	}
	
	/**
	 * WAO注文登録対象送信データ_新規申込（電話申込あり）を設定します。<br>
	 * <p>
	 * @param tranDiv 処理区分
	 * @param inMap WAO注文登録対象データ
	 * @param selectData DB参照データ
	 * @param selectListData DB参照リストデータ
	 * @param waoAddSendData WAO注文登録対象送信データ
	 * @throws Exception 
	 */	
	private void setWaoAddSendDataAddTelAri(HashMap<String, String> inputMap, Map<String, JBSbatCommonDBInterface> selectData, Map<String, ArrayList<String>> selectListData, JBSbatServiceInterfaceMap optionInfoMap ) throws Exception
	{
		
		// 基本情報 処理区分 設定
		optionInfoMap.set(JBSbatKKIFM978.TRAN_DIV, TRAN_DIV_ADD_TEL_ARI);
		
		// *** orders ***
		// 基本情報＞注文基本情報＞オーダー番号（注文番号）
		optionInfoMap.set(JBSbatKKIFM978.KMK_1, JKKStrConst.KARA);
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			// 基本情報＞注文基本情報＞東西区分
			if(NISHI_NIHON_TODOUHUKEN.contains(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.NISHI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.HIGASHI);
			}
		}
		// 基本情報＞注文基本情報＞注文種別
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			if(WAO_TENYO_DIV_ADD.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_3 , JKKStrConst.DIV_ADD);
			}else if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_3 , JKKStrConst.DIV_TENYO);
			}else if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_3 , JKKStrConst.DIV_JIGYOSHA);
			}
		}
		// 基本情報＞注文基本情報＞ISP担当者名
		optionInfoMap.set(JBSbatKKIFM978.KMK_4 , KK_WAO_RNK_TNT_NM);
		// 基本情報＞注文基本情報＞ISP担当者電話番号
		optionInfoMap.set(JBSbatKKIFM978.KMK_5 , KK_WAO_RNK_TNT_TELNO);
		// 基本情報＞注文基本情報＞ISP担当者メールアドレス
		optionInfoMap.set(JBSbatKKIFM978.KMK_6 , KK_WAO_RNK_TNT_MLAD);
		// 基本情報＞注文基本情報＞注文ステータス
		optionInfoMap.set(JBSbatKKIFM978.KMK_7 , KK_WAO_RNK_CHUMNSTAT);
		
		// *** ntt_production_application_hikari_services ***
		// その他取次情報＞工事申込＞工事に関する情報及びその他の申込＞工事会社からエンドユーザーへの工事前連絡
		optionInfoMap.set(JBSbatKKIFM978.KMK_8 , JKKStrConst.KARA);
		// その他取次情報＞工事申込＞工事に関する情報及びその他の申込＞工事者情報事前連絡＞希望有無
		optionInfoMap.set(JBSbatKKIFM978.KMK_9 , JKKStrConst.KIBOSHINAI);
		// その他取次情報＞工事申込＞工事に関する情報及びその他の申込＞工事時建物穴あけ不可の事前希望
		optionInfoMap.set(JBSbatKKIFM978.KMK_10 , JKKStrConst.KIBOSHINAI);
		// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞料金プラン
		optionInfoMap.set(JBSbatKKIFM978.KMK_11 , JKKStrConst.PLAN);
		
		// *** ntt_production_application_common_infos ***
		if(selectData.get(DB_DATA_CUST) != null){
			// サービス申込情報＞契約者情報＞お客様区分
			if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_12 , JKKStrConst.KOJIN);
			}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_12 , JKKStrConst.HOJIN);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_12 , JKKStrConst.KARA);
			}
			// サービス申込情報＞契約者情報＞契約者名＞契約者カナ名
			optionInfoMap.set(JBSbatKKIFM978.KMK_13 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_KANA")));
			// サービス申込情報＞契約者情報＞契約者名＞契約者漢字名
			optionInfoMap.set(JBSbatKKIFM978.KMK_14 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_NM")));
		}
		// サービス申込情報＞契約者情報＞契約者連絡先＞連絡先区分
		optionInfoMap.set(JBSbatKKIFM978.KMK_15 , JKKStrConst.SONOTA);
		if(selectData.get(DB_DATA_CUST) != null){
			// サービス申込情報＞契約者情報＞契約者連絡先＞連絡先電話番号
			if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_16 , ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_TELNO")));
			}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
				if(selectListData.get(DB_DATA_RRKS_TEL).size() > 0){
					String telNo = "";
					for(int i = 0; selectListData.get(DB_DATA_RRKS_TEL).size()> i ; i++){
						if(telNo == ""){
							telNo += selectListData.get(DB_DATA_RRKS_TEL).get(i);
						}else{
							telNo += JKKStrConst.PATH_DLMT_UNIX + selectListData.get(DB_DATA_RRKS_TEL).get(i);
						}
					}
					optionInfoMap.set(JBSbatKKIFM978.KMK_16 , telNo);
					
				}else{
					optionInfoMap.set(JBSbatKKIFM978.KMK_16 , JKKStrConst.KARA);
				}
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_16 , JKKStrConst.KARA);
			}
			// サービス申込情報＞契約者情報＞契約者住所＞郵便番号
			optionInfoMap.set(JBSbatKKIFM978.KMK_17 , ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_PCD")));
			// サービス申込情報＞契約者情報＞契約者住所＞都道府県・市区町村・番地
			String keishaJusho = 
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_STATE_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_CITY_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_OAZTSU_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_AZCHO_NM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_BNCHIGO"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_18 , keishaJusho);
			// サービス申込情報＞契約者情報＞契約者住所＞建物名・号室
			String keishaTatemono = 
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_ADRTTM")) +
				ckNull(selectData.get(DB_DATA_CUST).getString("KEISHA_ADRRM"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_19 , keishaTatemono);
		}
		
		// *** ntt_offer_situation_checks ***
		if(selectData.get(DB_DATA_SVC_KEI) != null){
			if(selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO") != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO").contains(JKKStrConst.TENYO_JIGYOSHA)){
				optionInfoMap.set(JBSbatKKIFM978.KMK_20 , JKKStrConst.ARI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_20 , JKKStrConst.NASHI);
			}
		}
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			// サービス申込情報＞設置場所住所＞郵便番号
			optionInfoMap.set(JBSbatKKIFM978.KMK_21 , ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_PCD")));
			// サービス申込情報＞設置場所住所＞都道府県・市区町村・番地
			String placeJusho = 
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_CITY_NM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_OAZTSU_NM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_AZCHO_NM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_BNCHIGO"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_22 , placeJusho);
			// サービス申込情報＞設置場所住所＞建物名・号室
			String placeTatemono = 
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_ADRTTM")) +
				ckNull(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_ADRRM"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_23 , placeTatemono);
			// サービス申込情報＞光回線＞光回線品目
			optionInfoMap.set(JBSbatKKIFM978.KMK_24 , setFletshikariHinmokuType(inputMap.get(JBSbatKKIFM977.PCRS_CD),selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM")));
		}
		// サービス申込情報＞ひかり電話＞申込有無
		optionInfoMap.set(JBSbatKKIFM978.KMK_25 , JKKStrConst.ARI);
		// サービス申込情報＞ひかり電話＞ひかり電話利用
		optionInfoMap.set(JBSbatKKIFM978.KMK_26 , JKKStrConst.ADD);
		// サービス申込情報＞端末・機器＞申込有無
		optionInfoMap.set(JBSbatKKIFM978.KMK_27 , JKKStrConst.ARI);
		// サービス申込情報＞端末・機器＞無線LANルータ（ホームゲートウェイ）申込
		optionInfoMap.set(JBSbatKKIFM978.KMK_28 , JKKStrConst.ADD);
			
		// *** ntt_phone_number_new_changes ***
		if(selectData.get(DB_DATA_OP_SV_KEI_ISP) != null){
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞新電番取得有無
			if(JKKStrConst.TYPEN_BMP_SBT_0.equals(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_BMP_SBT"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_29 , JKKStrConst.ARI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_29 , JKKStrConst.NASHI);
			}
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞番号ポータビリティ希望
			if(JKKStrConst.TYPEN_BMP_SBT_0.equals(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_BMP_SBT"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_30 , JKKStrConst.KIBONASHI);
			}else if(JKKStrConst.TYPEN_BMP_SBT_1.equals(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_BMP_SBT"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_30 , JKKStrConst.BMP_SBT_STR1);
			}else if(JKKStrConst.TYPEN_BMP_SBT_2.equals(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_BMP_SBT"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_30 , JKKStrConst.BMP_SBT_STR2);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_30 , JKKStrConst.KARA);
			}
		}
		if(selectListData.get(DB_DATA_SBOP_SVC_KEI) != null && selectListData.get(DB_DATA_SBOP_SVC_KEI).size() > 0){
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞サービス情報＞共通設定＞ナンバー・ディスプレイ
			if(selectListData.get(DB_DATA_SBOP_SVC_KEI).contains(JKKStrConst.SBOPSVC_PCRS_HSNSHA_NODSP)){
				optionInfoMap.set(JBSbatKKIFM978.KMK_31 , JKKStrConst.ARI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_31 , JKKStrConst.NASHI);
			}
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞サービス情報＞共通設定＞ナンバー・リクエスト
			if(selectListData.get(DB_DATA_SBOP_SVC_KEI).contains(JKKStrConst.SBOPSVC_PCRS_HITUTI_CKSNKH)){
				optionInfoMap.set(JBSbatKKIFM978.KMK_32 , JKKStrConst.ARI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_32 , JKKStrConst.NASHI);
			}
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞サービス情報＞個別設定＞電話番号1（契約電話番号）＞サービス設定＞発信番号通知サービス
			if(selectListData.get(DB_DATA_SBOP_SVC_KEI).contains(JKKStrConst.SBOPSVC_PCRS_TELNO_TUTI)){
				optionInfoMap.set(JBSbatKKIFM978.KMK_33 , JKKStrConst.TUCHIARI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_33 , JKKStrConst.TUCHINASHI);
			}
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞サービス情報＞個別設定＞電話番号1（契約電話番号）＞サービス設定＞国際締結
			if(selectListData.get(DB_DATA_SBOP_SVC_KEI).contains(JKKStrConst.SBOPSVC_PCRS_KKSITEL_RYYS)){
				optionInfoMap.set(JBSbatKKIFM978.KMK_34 , JKKStrConst.TEIKETUNASHI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_34 , JKKStrConst.TEIKETUARI);
			}
		}
		
		// *** ntt_portability_numbers ***
		if(selectData.get(DB_DATA_OP_SV_KEI_ISP) != null){
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞番号ポータビリティ1＞移転元電話番号
			optionInfoMap.set(JBSbatKKIFM978.KMK_35 , ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_TELNO")));
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞番号ポータビリティ1＞移転元契約者名義＞漢字名
			optionInfoMap.set(JBSbatKKIFM978.KMK_36 , ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_KEISHA_NM")));
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞番号ポータビリティ1＞移転元設置場所住所＞郵便番号
			optionInfoMap.set(JBSbatKKIFM978.KMK_37 , ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_PCD")));
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞番号ポータビリティ1＞移転元設置場所住所＞都道府県・市区町村・番地
			String typenJusho = 
				ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_STATE_NM")) + 
				ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_CITY_NM")) + 
				ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_OAZTSU_NM")) +
				ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_AZCHO_NM")) +
				ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_BNCHIGO"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_38 , typenJusho);
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞番号ポータビリティ1＞移転元設置場所住所＞建物名・号室
			String typenTatemono = 
				ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_ADRTTM")) +
				ckNull(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_ADRRM"));
			optionInfoMap.set(JBSbatKKIFM978.KMK_39 , typenTatemono);
			// サービス申込情報＞ひかり電話＞電話番号（新規申込／変更）＞番号ポータビリティ1＞電話加入権の有無
			if(JKKStrConst.TYPEN_TEL_KNKN_TRAT_CD_1.equals(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_TEL_KNKN_TRAT_CD")) || 
					JKKStrConst.TYPEN_TEL_KNKN_TRAT_CD_2.equals(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_TEL_KNKN_TRAT_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_40 , JKKStrConst.ARI);
			}else if(JKKStrConst.TYPEN_TEL_KNKN_TRAT_CD_3.equals(selectData.get(DB_DATA_OP_SV_KEI_ISP).getString("TYPEN_TEL_KNKN_TRAT_CD"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_40 , JKKStrConst.NASHI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_40 , JKKStrConst.KARA);
			}
		}
		
		// *** ntt_acceptances ***
		// 基本情報＞注文基本情報＞回線番号コード
		optionInfoMap.set(JBSbatKKIFM978.KMK_41 , inputMap.get(JBSbatKKIFM977.SVC_KEI_NO));
		// サービス申込情報＞転用承諾番号入力＞転用承諾番号
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_42 , ckNull(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_SHODAKU_NO")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_42 , JKKStrConst.KARA);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_CUST) != null){
			// サービス申込情報＞転用承諾番号入力＞個人／法人
			 String khjn = JKKStrConst.KARA;
			if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					khjn = JKKStrConst.KOJIN ;
				}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					khjn = JKKStrConst.HOJIN ;
				}
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_43 , khjn);
			// サービス申込情報＞転用承諾番号入力＞契約者名
			if(WAO_TENYO_DIV_TENYO.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_44 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_NM")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_44 , JKKStrConst.KARA);
		}
		}
		// サービス申込情報＞事業者変更承諾番号＞事業者変更承諾番号／事業者変更後キャンセル承諾番号
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_45 , ckNull(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_SHODAKU_NO")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_45 , JKKStrConst.KARA);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_CUST) != null){
			// サービス申込情報＞事業者変更承諾番号＞個人／法人
			 String jigyoshaKhjn = JKKStrConst.KARA;
			if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					jigyoshaKhjn = JKKStrConst.KOJIN ;
				}else if(JKKStrConst.KEISHA_TYPE_CD_HOJIN.equals(selectData.get(DB_DATA_CUST).getString("KEISHA_TYPE_CD"))){
					jigyoshaKhjn = JKKStrConst.HOJIN ;
				}
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_46 , jigyoshaKhjn);
			// サービス申込情報＞事業者変更承諾番号＞契約者名
			if(WAO_TENYO_DIV_JIGYOSHA.equals(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_TENYO_DIV"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_47 , ckNull(selectData.get(DB_DATA_CUST).getString("CUST_NM")));
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_47 , JKKStrConst.KARA);
			}
		}
		// 連絡事項＞エージェント専用備考欄＞エージェント備考1
		optionInfoMap.set(JBSbatKKIFM978.KMK_48 , JKKStrConst.KARA);
		// 連絡事項＞エージェント専用備考欄＞エージェント備考2
		optionInfoMap.set(JBSbatKKIFM978.KMK_49 , JKKStrConst.KARA);
		// 連絡事項＞エージェント専用備考欄＞エージェント備考3
		optionInfoMap.set(JBSbatKKIFM978.KMK_50 , JKKStrConst.KARA);
		// 連絡事項＞エージェント⇒オーナー＞エージェントからオーナーへの連絡事項
		String renraku = "";
		for(int i = 0; selectListData.get(DB_DATA_RRKS_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}
		}
		for(int i = 0; selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO") != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO").length() > 0){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO");
		}
		
		if(selectData.get(DB_DATA_SVC_KEI) != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO") != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO").contains(JKKStrConst.TENYO_JIGYOSHA)){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += JKKStrConst.TENYO_JIGYOSHA;
		}
		optionInfoMap.set(JBSbatKKIFM978.KMK_51 , renraku);
		
		// *** ntt_construction_infos ***
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null){
			// 日程_工事日＞工事希望日時１＞日付
			String waoKojiKiboYmd1 = selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_YMD_1");
			String waoKojiKiboYmd1Format = JKKStrConst.KARA;
			if(waoKojiKiboYmd1 != null){
				waoKojiKiboYmd1Format = String.format(formatStr, waoKojiKiboYmd1.substring(0, 4), waoKojiKiboYmd1.substring(4, 6), waoKojiKiboYmd1.substring(6, 8));
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_52 , waoKojiKiboYmd1Format);
			// 日程_工事日＞工事希望日時１＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_53 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_1")));
			// 日程_工事日＞工事希望日時２＞日付
			String waoKojiKiboYmd2 = selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_YMD_2");
			String waoKojiKiboYmd2Format = JKKStrConst.KARA;
			if(waoKojiKiboYmd2 != null){
				waoKojiKiboYmd2Format = String.format(formatStr, waoKojiKiboYmd2.substring(0, 4), waoKojiKiboYmd2.substring(4, 6), waoKojiKiboYmd2.substring(6, 8));
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_54 , waoKojiKiboYmd2Format);
			// 日程_工事日＞工事希望日時２＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_55 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_2")));
			// 日程_工事日＞工事希望日時３＞日付
			String waoKojiKiboYmd3 = selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_YMD_3");
			String waoKojiKiboYmd3Format = JKKStrConst.KARA;
			if(waoKojiKiboYmd3 != null){
				waoKojiKiboYmd3Format = String.format(formatStr, waoKojiKiboYmd3.substring(0, 4), waoKojiKiboYmd3.substring(4, 6), waoKojiKiboYmd3.substring(6, 8));
			}
			optionInfoMap.set(JBSbatKKIFM978.KMK_56 , waoKojiKiboYmd3Format);
			// 日程_工事日＞工事希望日時３＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_57 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_3")));
			// 日程_工事日（出側）＞工事希望日時１＞日付
			optionInfoMap.set(JBSbatKKIFM978.KMK_58 , waoKojiKiboYmd1Format);
			// 日程_工事日（出側）＞工事希望日時１＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_59 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_1")));
			// 日程_工事日（出側）＞工事希望日時２＞日付
			optionInfoMap.set(JBSbatKKIFM978.KMK_60 , waoKojiKiboYmd2Format);
			// 日程_工事日（出側）＞工事希望日時２＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_61 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_2")));
			// 日程_工事日（出側）＞工事希望日時３＞日付
			optionInfoMap.set(JBSbatKKIFM978.KMK_62 , waoKojiKiboYmd3Format);
			// 日程_工事日（出側）＞工事希望日時３＞時間帯
			optionInfoMap.set(JBSbatKKIFM978.KMK_63 , WAO_KOJI_KIBO_TIMEZ_LIST.get(selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_KOJI_KIBO_TIMEZ_3")));
		}
		
	}
	
	/**
	 * WAO注文登録対象送信データ_コース変更を設定します。<br>
	 * <p>
	 * @param tranDiv 処理区分
	 * @param inMap WAO注文登録対象データ
	 * @param selectData DB参照データ
	 * @param selectListData DB参照リストデータ
	 * @param waoAddSendData WAO注文登録対象送信データ
	 * @throws Exception 
	 */	
	private void setWaoAddSendDataCsch(HashMap<String, String> inputMap, Map<String, JBSbatCommonDBInterface> selectData, Map<String, ArrayList<String>> selectListData, JBSbatServiceInterfaceMap optionInfoMap ) throws Exception
	{
		
		// 基本情報 処理区分 設定
		optionInfoMap.set(JBSbatKKIFM978.TRAN_DIV, TRAN_DIV_CSCH);
		
		// *** orders ***
		// 基本情報＞注文基本情報＞オーダー番号（注文番号）
		optionInfoMap.set(JBSbatKKIFM978.KMK_1 , JKKStrConst.KARA);
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			// 基本情報＞注文基本情報＞東西区分
			if(NISHI_NIHON_TODOUHUKEN.contains(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.NISHI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.HIGASHI);
			}
		}
		// 基本情報＞注文基本情報＞注文種別
		optionInfoMap.set(JBSbatKKIFM978.KMK_3 , JKKStrConst.DIV_CSCH);
		// 基本情報＞注文基本情報＞契約ID(CAF/COP)
		if(selectData.get(DB_DATA_WAO_RNKI_IF) != null){
			optionInfoMap.set(JBSbatKKIFM978.KMK_4 , ckNull(selectData.get(DB_DATA_WAO_RNKI_IF).getString("CAF_NO")));
		}
		// 基本情報＞注文基本情報＞ISP担当者名
		optionInfoMap.set(JBSbatKKIFM978.KMK_5 , KK_WAO_RNK_TNT_NM );
		// 基本情報＞注文基本情報＞ISP担当者電話番号
		optionInfoMap.set(JBSbatKKIFM978.KMK_6 , KK_WAO_RNK_TNT_TELNO);
		// 基本情報＞注文基本情報＞ISP担当者メールアドレス
		optionInfoMap.set(JBSbatKKIFM978.KMK_7 , KK_WAO_RNK_TNT_MLAD);
		// 基本情報＞注文基本情報＞注文ステータス
		optionInfoMap.set(JBSbatKKIFM978.KMK_8 , KK_WAO_RNK_CHUMNSTAT);
		
		// *** ntt_offer_situation_checks ***
		// サービス申込情報＞光回線＞変更有無
		optionInfoMap.set(JBSbatKKIFM978.KMK_9 , JKKStrConst.ARI);
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			// サービス申込情報＞光回線＞光回線品目
			optionInfoMap.set(JBSbatKKIFM978.KMK_10 , setFletshikariHinmokuType(inputMap.get(JBSbatKKIFM977.CHG_BF_PCRS_CD),selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM")));
		}
		
		// *** ntt_acceptances ***
		// 基本情報＞注文基本情報＞回線番号コード
		optionInfoMap.set(JBSbatKKIFM978.KMK_11 , inputMap.get(JBSbatKKIFM977.SVC_KEI_NO));
		// 連絡事項＞エージェント専用備考欄＞エージェント備考1
		optionInfoMap.set(JBSbatKKIFM978.KMK_12 , JKKStrConst.KARA);
		// 連絡事項＞エージェント⇒オーナー＞エージェントからオーナーへの連絡事項
		String renraku = "";
		for(int i = 0; selectListData.get(DB_DATA_RRKS_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}
		}
		for(int i = 0; selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO") != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO").length() > 0){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO");
		}
		
		if(selectData.get(DB_DATA_SVC_KEI) != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO") != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO").contains(JKKStrConst.TENYO_JIGYOSHA)){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += JKKStrConst.TENYO_JIGYOSHA;
		}
		optionInfoMap.set(JBSbatKKIFM978.KMK_13 , renraku);
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			// 連絡事項＞エージェント⇒オーナー＞変更詳細＞変更前
			optionInfoMap.set(JBSbatKKIFM978.KMK_14 , setFletshikariHinmokuType(inputMap.get(JBSbatKKIFM977.CHG_BF_PCRS_CD),selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM")));
			// 連絡事項＞エージェント⇒オーナー＞変更詳細＞変更後
			optionInfoMap.set(JBSbatKKIFM978.KMK_15 , setFletshikariHinmokuType(inputMap.get(JBSbatKKIFM977.CHGE_AF_PCRS_CD),selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM")));
		}
	}
	
	/**
	 * WAO注文登録対象送信データ_解約を設定します。<br>
	 * <p>
	 * @param tranDiv 処理区分
	 * @param inMap WAO注文登録対象データ
	 * @param selectData DB参照データ
	 * @param selectListData DB参照リストデータ
	 * @param waoAddSendData WAO注文登録対象送信データ
	 * @throws Exception 
	 */	
	private void setWaoAddSendDataDsl(HashMap<String, String> inputMap, Map<String, JBSbatCommonDBInterface> selectData, Map<String, ArrayList<String>> selectListData, JBSbatServiceInterfaceMap optionInfoMap ) throws Exception
	{
		
		// 基本情報 処理区分 設定
		optionInfoMap.set(JBSbatKKIFM978.TRAN_DIV, TRAN_DIV_DSL);
		
		// *** orders ***
		// 基本情報＞注文基本情報＞オーダー番号（注文番号）
		optionInfoMap.set(JBSbatKKIFM978.KMK_1 , JKKStrConst.KARA);
		if(selectData.get(DB_DATA_SVKEI_KAISEN_UW) != null){
			// 基本情報＞注文基本情報＞東西区分
			if(NISHI_NIHON_TODOUHUKEN.contains(selectData.get(DB_DATA_SVKEI_KAISEN_UW).getString("KAISEN_PLACE_STATE_NM"))){
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.NISHI);
			}else{
				optionInfoMap.set(JBSbatKKIFM978.KMK_2 , JKKStrConst.HIGASHI);
			}
		}
		// 基本情報＞注文基本情報＞注文種別
		optionInfoMap.set(JBSbatKKIFM978.KMK_3, JKKStrConst.DIV_DSL);
		// 基本情報＞注文基本情報＞契約ID(CAF/COP)
		if(selectData.get(DB_DATA_WAO_RNKI_IF) != null){
			optionInfoMap.set(JBSbatKKIFM978.KMK_4 , ckNull(selectData.get(DB_DATA_WAO_RNKI_IF).getString("CAF_NO")));
		}
		// 基本情報＞注文基本情報＞ISP担当者名
		optionInfoMap.set(JBSbatKKIFM978.KMK_5 , KK_WAO_RNK_TNT_NM);
		// 基本情報＞注文基本情報＞ISP担当者電話番号
		optionInfoMap.set(JBSbatKKIFM978.KMK_6 , KK_WAO_RNK_TNT_TELNO);
		// 基本情報＞注文基本情報＞ISP担当者メールアドレス
		optionInfoMap.set(JBSbatKKIFM978.KMK_7 , KK_WAO_RNK_TNT_MLAD);
		// 基本情報＞注文基本情報＞注文ステータス
		optionInfoMap.set(JBSbatKKIFM978.KMK_8 , KK_WAO_RNK_CHUMNSTAT);
		
		// *** ntt_acceptances ***
		// 基本情報＞注文基本情報＞回線番号コード
		optionInfoMap.set(JBSbatKKIFM978.KMK_9 , inputMap.get(JBSbatKKIFM977.SVC_KEI_NO));
		// 連絡事項＞エージェント専用備考欄＞エージェント備考1
		optionInfoMap.set(JBSbatKKIFM978.KMK_10 , JKKStrConst.KARA);
		// 連絡事項＞エージェント⇒オーナー＞エージェントからオーナーへの連絡事項
		String renraku = "";
		for(int i = 0; selectListData.get(DB_DATA_RRKS_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_RRKS_MAIL).get(i);
			}
		}
		for(int i = 0; selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).size()> i ; i++){
			if(renraku == ""){
				renraku += selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}else{
				renraku += JKKStrConst.PATH_DLMT_UNIX+selectListData.get(DB_DATA_OP_SV_KEI_ISP_MAIL).get(i);
			}
		}
		if(selectData.get(DB_DATA_SVC_KEI_EOH_NET) != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO") != null && selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO").length() > 0){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += selectData.get(DB_DATA_SVC_KEI_EOH_NET).getString("WAO_AD_BNCHI_MEMO");
		}
		
		if(selectData.get(DB_DATA_SVC_KEI) != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO") != null && selectData.get(DB_DATA_SVC_KEI).getString("WORK_RRK_BIKO").contains(JKKStrConst.TENYO_JIGYOSHA)){
			if(renraku.length() > 0){
				//全角スペース区切り
				renraku += ZEN_SPACE;
			}
			renraku += JKKStrConst.TENYO_JIGYOSHA;
		}
		optionInfoMap.set(JBSbatKKIFM978.KMK_11 , renraku);
		
	}
	
	/** 
	 * 光回線品目への設定値を返します。<br>
	 * <p>
	 * 
	 * @param pcrs_cd 料金コース
	 * @param record_cnt 東西区分
	 * @return 光回線品目
	 * @throws JBSbatBusinessException
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */
	
	private String setFletshikariHinmokuType(String pcrs_cd, String tozai_kb) throws Exception
	{
		boolean tozai_kb_flg = NISHI_NIHON_TODOUHUKEN.contains(tozai_kb);
		
		if(JKKStrConst.CD00134_AA0.equals(pcrs_cd) || JKKStrConst.CD00134_AB0.equals(pcrs_cd)){
			if(tozai_kb_flg){
				return KK_WAO_RNK_WCRS_01;
			}else{
				return KK_WAO_RNK_ECRS_01;
			}
		}else if(JKKStrConst.CD00134_AA1.equals(pcrs_cd) || JKKStrConst.CD00134_AB1.equals(pcrs_cd)){
			if(tozai_kb_flg){
				return KK_WAO_RNK_WCRS_02;
			}else{
				return KK_WAO_RNK_ECRS_02;
			}
		}else if(JKKStrConst.CD00134_AA2.equals(pcrs_cd) || JKKStrConst.CD00134_AB2.equals(pcrs_cd)){
			if(tozai_kb_flg){
				return KK_WAO_RNK_WCRS_03;
			}else{
				return KK_WAO_RNK_ECRS_03;
			}
		}else if(JKKStrConst.CD00134_AA3.equals(pcrs_cd) || JKKStrConst.CD00134_AB3.equals(pcrs_cd)){
			if(tozai_kb_flg){
				return KK_WAO_RNK_WCRS_04;
			}else{
				return KK_WAO_RNK_ECRS_04;
			}
		}else if(JKKStrConst.CD00134_AA4.equals(pcrs_cd) || JKKStrConst.CD00134_AB4.equals(pcrs_cd)){
			if(tozai_kb_flg){
				return KK_WAO_RNK_WCRS_05;
			}else{
				return KK_WAO_RNK_ECRS_05;
			}
		}
		return "";
	}
	
	/** 
	 * 取得値のNullチェック設定値を返します。<br>
	 * <p>
	 * 
	 * @param str 取得値
	 * @return 設定値
	 * @throws IOException 業務サービス内で発生した例外全般。
	 */
	
	private String ckNull(String str) throws Exception
	{
		if(str == null){
			return "";
		}else{
			return str;
		}
	}

	/** ▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲ */
}
